Showing preview only (503K chars total). Download the full file or copy to clipboard to get everything.
Repository: ElemeFE/mint-ui
Branch: master
Commit: c875541634c1
Files: 236
Total size: 453.0 KB
Directory structure:
gitextract_b1q96e11/
├── .eslintignore
├── .eslintrc
├── .github/
│ ├── CONTRIBUTING_en-us.md
│ ├── CONTRIBUTING_zh-cn.md
│ ├── ISSUE_TEMPLATE.md
│ └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .travis.yml
├── FAQ.md
├── LICENSE
├── Makefile
├── README.md
├── build/
│ ├── bin/
│ │ ├── build-all.js
│ │ └── build-entry.js
│ ├── config.js
│ ├── cooking.common.js
│ ├── cooking.component.js
│ ├── cooking.conf.js
│ ├── cooking.demo.js
│ └── release.sh
├── components.json
├── example/
│ ├── app.vue
│ ├── demos.vue
│ ├── entry.js
│ ├── index.tpl
│ ├── nav.config.json
│ ├── pages/
│ │ ├── action-sheet.vue
│ │ ├── badge.vue
│ │ ├── button.vue
│ │ ├── cell-swipe.vue
│ │ ├── cell.vue
│ │ ├── checklist.vue
│ │ ├── datetime-picker.vue
│ │ ├── field.vue
│ │ ├── header.vue
│ │ ├── index-list.vue
│ │ ├── indicator.vue
│ │ ├── infinite-scroll.vue
│ │ ├── lazyload.vue
│ │ ├── message-box.vue
│ │ ├── navbar.vue
│ │ ├── palette-button.vue
│ │ ├── picker.vue
│ │ ├── popup.vue
│ │ ├── progress.vue
│ │ ├── pull-down.vue
│ │ ├── pull-up.vue
│ │ ├── radio.vue
│ │ ├── range.vue
│ │ ├── search.vue
│ │ ├── spinner.vue
│ │ ├── swipe.vue
│ │ ├── switch.vue
│ │ ├── tab-container.vue
│ │ ├── tabbar.vue
│ │ └── toast.vue
│ └── route.js
├── lerna.json
├── lib/
│ ├── index.js
│ └── style.css
├── package.json
├── packages/
│ ├── README.md
│ ├── actionsheet/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── actionsheet.vue
│ ├── badge/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── badge.vue
│ ├── button/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── button.vue
│ ├── cell/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── cell.vue
│ ├── cell-swipe/
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── cell-swipe.vue
│ ├── checklist/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── checklist.vue
│ ├── datetime-picker/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── datetime-picker.vue
│ ├── field/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── field.vue
│ ├── header/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ └── header.vue
│ ├── index-list/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── index-list.vue
│ ├── index-section/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── index-section.vue
│ ├── indicator/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── indicator.vue
│ ├── infinite-scroll/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ ├── directive.js
│ │ └── infinite-scroll.js
│ ├── lazyload/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ └── lazyload.js
│ ├── loadmore/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── loadmore.vue
│ ├── message-box/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ ├── message-box.js
│ │ └── message-box.vue
│ ├── navbar/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── navbar.vue
│ ├── palette-button/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── palette-button.vue
│ ├── picker/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── draggable.js
│ │ ├── picker-slot.vue
│ │ ├── picker.vue
│ │ └── translate.js
│ ├── popup/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── popup.vue
│ ├── progress/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── progress.vue
│ ├── radio/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── radio.vue
│ ├── range/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── draggable.js
│ │ └── index.vue
│ ├── search/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── search.vue
│ ├── spinner/
│ │ ├── README.md
│ │ ├── components.json
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── spinner/
│ │ │ ├── common.vue
│ │ │ ├── double-bounce.vue
│ │ │ ├── fading-circle.vue
│ │ │ ├── snake.vue
│ │ │ └── triple-bounce.vue
│ │ └── spinner.vue
│ ├── swipe/
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── swipe-item.vue
│ │ └── swipe.vue
│ ├── swipe-item/
│ │ ├── README.md
│ │ └── index.js
│ ├── switch/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── switch.vue
│ ├── tab-container/
│ │ ├── README.md
│ │ ├── _index.js
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── tab-container.vue
│ ├── tab-container-item/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ └── tab-container-item.vue
│ ├── tab-item/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── tab-item.vue
│ ├── tabbar/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── tabbar.vue
│ └── toast/
│ ├── README.md
│ ├── index.js
│ └── src/
│ ├── toast.js
│ └── toast.vue
└── src/
├── assets/
│ └── font/
│ └── iconfont.css
├── index.js
├── mixins/
│ └── emitter.js
├── style/
│ ├── empty.css
│ ├── popup.css
│ └── var.css
└── utils/
├── clickoutside.js
├── dom.js
├── merge.js
└── popup/
├── index.js
└── popup-manager.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .eslintignore
================================================
release.sh
node_modules
lib
================================================
FILE: .eslintrc
================================================
{
"plugins": ["vue"],
"extends": ["elemefe"]
}
================================================
FILE: .github/CONTRIBUTING_en-us.md
================================================
# Mint UI Contributing Guide
Hi! Thank you for choosing Mint UI.
Mint UI is a mobile component library for Vue.js. It provides abundant CSS and JS components for building mobile applications. With it, you can create web pages in cohesive style ever faster.
We are excited that you are interested in contributing to Mint UI. Before submitting your contribution though, please make sure to take a moment and read through the following guidelines.
## Issue Guidelines
- Issues are exclusively for bug reports and feature requests. Other questions may be closed directly.
- Before submitting an issue, please check if similar problems have already been issued.
- Please specify which version of Mint UI you are using, and provide OS and browser information. [JSFiddle](https://jsfiddle.net/) is recommended to build a live demo so that your issue can be reproduced clearly.
## Pull Request Guidelines
- Fork this repository to your own account. Do not create branches here.
- **DO NOT** include files inside `lib` directory.
- Rebase before creating a PR to keep commit history clear.
- If you are fixing a bug, please include detailed description of the bug in the PR.
- Merging a PR takes two maintainers: one approves the changes after reviewing, and then the other reviews and merges.
## Code Style
Just comply with the [ESLint](https://github.com/ElemeFE/eslint-config-elemefe) configuration of [ElemeFE](https://github.com/elemefe).
================================================
FILE: .github/CONTRIBUTING_zh-cn.md
================================================
# Mint UI Contributing Guide
Hi! 首先感谢你使用 Mint UI。
Mint UI 是一套基于 Vue.js 的移动端组件库,它包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要。通过它,可以快速构建出风格统一的页面,提升开发效率。
Mint UI 的成长离不开大家的支持,如果你愿意为 Mint UI 贡献代码或提供建议,请阅读以下内容。
## Issue 规范
- issue 仅用于提交 Bug 或 Feature,其它内容可能会被直接关闭。
- 在提交 issue 之前,请搜索相关内容是否已被提出。
- 请说明 Mint UI 的版本号,并提供操作系统和浏览器信息。推荐使用 [JSFiddle](https://jsfiddle.net/) 生成在线 demo,这能够更直观地重现问题。
## Pull Request 规范
- 请先 fork 一份到自己的项目下,不要直接在仓库下建分支。
- **不要提交** `lib` 里面打包的文件。
- 提交 PR 前请 rebase,确保 commit 记录的整洁。
- 如果是修复 bug,请在 PR 中给出描述信息。
- 合并代码需要两名维护人员参与:一人进行 review 后 approve,另一人再次 review,通过后即可合并。
## 代码规范
遵循饿了么前端的 [ESLint](https://github.com/ElemeFE/eslint-config-elemefe) 即可
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!--
请使用 https://eleme-issue.surge.sh?repo=mint 提交 issue,否则 issue 会被直接关闭。提交 issue 前请务必查看 FAQ:https://github.com/ElemeFE/mint-ui/blob/master/FAQ.md。
-->
<!--
issue 仅用于提交 bug 或 feature 以及设计相关的内容,其它疑问请到 gitter 聊天室找社区里面的小伙伴聊一聊:https://gitter.im/ElemeFE/mint-ui
-->
<!--
Issues are exclusively for bug reports and feature requests. For other questions, please visit gitter: https://gitter.im/ElemeFE/mint-ui
-->
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
Please makes sure these boxes are checked before submitting your PR, thank you!
* [ ] Make sure you follow the contributing guide.
* [ ] Rebase before creating a PR to keep commit history clear.
* [ ] Add some descriptions and refer relative issues for you PR.
================================================
FILE: .gitignore
================================================
*.log*
.cache
.DS_Store
.idea
.vscode/
packages/**/lib
lib/*
!lib/index.js
!lib/style.css
node_modules
example/dist
================================================
FILE: .travis.yml
================================================
sudo: false
language: node_js
node_js:
- "5"
script: make dist
================================================
FILE: FAQ.md
================================================
## FAQ
### 给组件绑定的事件为什么无法触发?
在 Vue 2.0 中,为自定义组件绑定原生事件必须使用 `.native` 修饰符:
```html
<mt-button @click.native="handleButtonClick">Click Me</mt-button>
```
### 在项目中引入 Mint UI,但是 CSS 报错/字体文件报错/组件没有样式是什么原因?
请参考 webpack 文档,在 webpack 的 loaders 中正确配置 file-loader、css-loader 和 style-loader。
### 在项目中引入 Mint UI,报 `Uncaught Error: Module build failed: SyntaxError: 'with' in strict mode` 是什么原因?
请避免你使用的编译器处理 Mint UI。比如,若是使用 webpack,请在 loaders 中配置:
```javascript
{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/
}
```
### 将 Mint UI 克隆至本地,运行时为何会报错/跑不起来?
首先,确保克隆的是 master 分支的最新代码,并且文件完整。其次,确保本地的 node 版本在 4.0 以上,npm 版本在 3.0 以上。最后,请按照 README 的方法启动开发环境:
```bash
npm run dev
```
或是直接打包:
```bash
npm run dist
```
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2016 mint-ui
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.
================================================
FILE: Makefile
================================================
.PHONY: dist
default: help
dev:
npm run dev
dist:
npm run dist
dist-all:
node build/bin/build-all.js
deploy:
npm run deploy
pub:
npm run pub
pub-all:
npm run pub:all
help:
@echo " \033[35mmake\033[0m \033[1m命令使用说明\033[0m"
@echo " \033[35mmake install\033[0m\t\033[0m\t--- 安装依赖"
@echo " \033[35mmake dev\033[0m\t\033[0m\t--- 开发模式"
@echo " \033[35mmake dist\033[0m\t\033[0m\t--- 编译项目,生成目标文件"
@echo " \033[35mmake dist-all\033[0m\t--- 分别编译每个组件项目"
@echo " \033[35mmake deploy\033[0m\t\033[0m\t--- 部署 demo"
@echo " \033[35mmake pub\033[0m\t\033[0m\t--- 发布到 npm 上"
@echo " \033[35mmake pub-all\033[0m\t\033[0m\t--- 发布各组件到 npm 上"
================================================
FILE: README.md
================================================
# Mint UI
[](https://travis-ci.org/ElemeFE/mint-ui)
[](https://www.npmjs.com/package/mint-ui)
[](https://npmjs.org/package/mint-ui)


[](https://gitter.im/ElemeFE/mint-ui?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
> Mobile UI elements for **Vue 2.0**
- [Homepage](http://mint-ui.github.io)
- [Documentation](http://mint-ui.github.io/docs)
## Installation
```shell
npm i mint-ui -S
# for Vue 1.x
npm i mint-ui@1 -S
```
## Usage
Import all components.
```javascript
import Vue from 'vue';
import Mint from 'mint-ui';
import 'mint-ui/lib/style.css';
Vue.use(Mint);
```
Or import specified component. (Use [babel-plugin-component](https://www.npmjs.com/package/babel-plugin-component))
```javascript
import { Cell, Checklist } from 'mint-ui';
Vue.component(Cell.name, Cell);
Vue.component(Checklist.name, Checklist);
```
Equals to
```javascript
import Vue from 'vue';
import Mint from 'mint-ui';
import 'mint-ui/lib/style.css';
Vue.use(Mint);
// import specified component
import MtRadio from 'mint-ui/lib/radio';
import 'mint-ui/lib/radio/style.css';
Vue.component(MtRadio.name, MtRadio);
```
## babel-plugin-component
- Auto import css file
- Modular import component
Installation
```shell
npm i babel-plugin-component -D
```
Usage
.babelrc
```json
{
"plugins": ["other-plugin", ["component", [
{ "libraryName": "mint-ui", "style": true }
]]]
}
```
## CDN
RawGit
- https://cdn.rawgit.com/ElemeFE/mint-ui/master/lib/index.js
- https://cdn.rawgit.com/ElemeFE/mint-ui/master/lib/style.css
NPMCDN
- https://unpkg.com/mint-ui/lib/index.js
- https://unpkg.com/mint-ui/lib/style.css
## Development
```shell
npm run dev
```
## Contribution
Please make sure to read the [Contributing Guide](https://github.com/ElemeFE/mint-ui/blob/master/.github/CONTRIBUTING_en-us.md) before making a pull request.
## License
MIT
================================================
FILE: build/bin/build-all.js
================================================
'use strict';
const components = require('../../components.json');
const execSync = require('child_process').execSync;
const existsSync = require('fs').existsSync;
const path = require('path');
let componentPaths = [];
delete components.font;
Object.keys(components).forEach(key => {
const filePath = path.join(__dirname, `../../packages/${key}/cooking.conf.js`);
if (existsSync(filePath)) {
componentPaths.push(`packages/${key}/cooking.conf.js`);
}
});
const paths = componentPaths.join(',');
const cli = `node_modules/.bin/cooking build -c ${paths} -p`;
execSync(cli, {
stdio: 'inherit'
});
================================================
FILE: build/bin/build-entry.js
================================================
var Components = require('../../components.json');
var fs = require('fs');
var render = require('json-templater/string');
var uppercamelcase = require('uppercamelcase');
var path = require('path');
var OUTPUT_PATH = path.join(__dirname, '../../src/index.js');
var IMPORT_TEMPLATE = 'import {{name}} from \'../packages/{{package}}\';';
var ISNTALL_COMPONENT_TEMPLATE = ' Vue.component({{name}}.name, {{name}});';
var MAIN_TEMPLATE = `{{include}}
import '../src/assets/font/iconfont.css';
import merge from './utils/merge';
const version = '{{version}}';
const install = function(Vue, config = {}) {
if (install.installed) return;
{{install}}
Vue.use(InfiniteScroll);
Vue.use(Lazyload, merge({
loading: require('./assets/loading-spin.svg'),
attempt: 3
}, config.lazyload));
Vue.$messagebox = Vue.prototype.$messagebox = MessageBox;
Vue.$toast = Vue.prototype.$toast = Toast;
Vue.$indicator = Vue.prototype.$indicator = Indicator;
};
// auto install
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue);
};
module.exports = {
install,
version,
{{list}}
};
`;
delete Components.font;
var ComponentNames = Object.keys(Components);
var includeComponentTemplate = [];
var installTemplate = [];
var listTemplate = [];
ComponentNames.forEach(name => {
var componentName = uppercamelcase(name);
includeComponentTemplate.push(render(IMPORT_TEMPLATE, {
name: componentName,
package: name
}));
if ([
// directives
'InfiniteScroll',
'Lazyload',
// services
'MessageBox',
'Toast',
'Indicator'
].indexOf(componentName) === -1) {
installTemplate.push(render(ISNTALL_COMPONENT_TEMPLATE, {
name: componentName,
component: name
}));
}
listTemplate.push(` ${componentName}`);
});
var template = render(MAIN_TEMPLATE, {
include: includeComponentTemplate.join('\n'),
install: installTemplate.join('\n'),
version: process.env.VERSION || require('../../package.json').version,
list: listTemplate.join(',\n')
});
fs.writeFileSync(OUTPUT_PATH, template);
console.log('[build entry] DONE:', OUTPUT_PATH);
================================================
FILE: build/config.js
================================================
var Components = require('../components.json');
var path = require('path');
var dependencies = require('../package.json').dependencies;
var externals = {};
var pkg = {};
Object.keys(Components).forEach(function(key) {
externals[`mint-ui/packages/${key}/index.js`] = `mint-ui/lib/${key}`;
externals[`mint-ui/packages/${key}/style.css`] = `mint-ui/lib/${key}/style.css`;
});
Object.keys(dependencies).forEach(function(key) {
externals[key] = key;
pkg[key] = key;
});
exports.externals = Object.assign({
vue: {
root: 'Vue',
commonjs: 'vue',
commonjs2: 'vue',
amd: 'vue'
}
}, externals);
exports.pkg = Object.assign({
vue: 'vue'
}, pkg);
exports.alias = {
'mint-ui': path.join(__dirname, '..'),
'src': path.join(__dirname, '../src')
};
exports.jsexclude = /node_modules|lib/;
exports.extends = ['vue2', 'saladcss', 'buble'];
================================================
FILE: build/cooking.common.js
================================================
var cooking = require('cooking');
var config = require('./config');
cooking.set({
entry: './src/index.js',
dist: './lib/',
clean: false,
template: false,
format: 'cjs',
minimize: false,
moduleName: 'MINT',
extractCSS: 'style.css',
extends: ['vue2', 'saladcss', 'buble'],
alias: config.alias,
externals: config.pkg
});
cooking.remove('output.publicPath');
cooking.add('output.filename', 'mint-ui.common.js');
cooking.add('performance.hints', false);
cooking.add('loader.js.exclude', config.jsexclude);
module.exports = cooking.resolve();
================================================
FILE: build/cooking.component.js
================================================
var cooking = require('cooking');
var Components = require('../components.json');
var webpack = require('webpack');
var config = require('./config');
cooking.set({
entry: Components,
dist: './lib/',
clean: false,
template: false,
minimize: false,
format: 'cjs',
extractCSS: '[name]/style.css',
extends: ['vue2', 'saladcss', 'buble'],
alias: config.alias,
externals: config.externals
});
cooking.remove('output.publicPath');
cooking.add('output.filename', '[name]/index.js');
cooking.add('loader.js.exclude', config.jsexclude);
cooking.add('plugins.Define', new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('component')
}));
module.exports = cooking.resolve();
================================================
FILE: build/cooking.conf.js
================================================
var cooking = require('cooking');
var config = require('./config');
cooking.set({
entry: './src/index.js',
dist: './lib/',
clean: false,
template: false,
format: 'umd',
moduleName: 'MINT',
extractCSS: 'style.min.css',
extends: ['vue2', 'saladcss', 'buble'],
alias: config.alias,
externals: { vue: config.externals.vue }
});
cooking.remove('output.publicPath');
cooking.add('output.filename', 'index.js');
cooking.add('loader.js.exclude', config.jsexclude);
cooking.add('vue.preserveWhitespace', false);
module.exports = cooking.resolve();
================================================
FILE: build/cooking.demo.js
================================================
var cooking = require('cooking');
var webpack = require('webpack');
var config = require('./config');
cooking.set({
entry: './example/entry.js',
dist: './example/dist',
template: './example/index.tpl',
devServer: {
port: 8790,
host: require('my-local-ip')(),
publicPath: '/',
log: false
},
clean: true,
hash: true,
publicPath: '/mint-ui/',
assetsPath: 'static',
urlLoaderLimit: 10000,
extractCSS: true,
sourceMap: true,
extends: ['vue2', 'lint', 'saladcss', 'buble'],
alias: config.alias,
externals: process.env.NODE_ENV === 'production' ? {
vue: 'Vue',
'vue-router': 'VueRouter',
'fastclick': 'FastClick'
} : {}
});
cooking.add('loader.js.exclude', config.jsexclude);
if (process.env.NODE_ENV !== 'production') {
cooking.add('plugins.Define', new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development')
}));
}
module.exports = cooking.resolve();
================================================
FILE: build/release.sh
================================================
set -e
echo "[Mint UI for Vue 2.0]Enter release version: "
read VERSION
read -p "Releasing $VERSION - are you sure? (y/n)" -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "Releasing $VERSION ..."
# build
VERSION=$VERSION npm run dist
# commit
git add -A
git commit -m "[build] $VERSION"
npm version $VERSION --message "[release] $VERSION"
# publish
git push eleme refs/tags/v$VERSION
git push eleme master
npm publish
fi
================================================
FILE: components.json
================================================
{
"font": "./src/assets/font/iconfont.css",
"header": "./packages/header/index.js",
"button": "./packages/button/index.js",
"cell": "./packages/cell/index.js",
"cell-swipe": "./packages/cell-swipe/index.js",
"field": "./packages/field/index.js",
"badge": "./packages/badge/index.js",
"switch": "./packages/switch/index.js",
"spinner": "./packages/spinner/index.js",
"tab-item": "./packages/tab-item/index.js",
"tab-container-item": "./packages/tab-container-item/index.js",
"tab-container": "./packages/tab-container/index.js",
"navbar": "./packages/navbar/index.js",
"tabbar": "./packages/tabbar/index.js",
"search": "./packages/search/index.js",
"checklist": "./packages/checklist/index.js",
"radio": "./packages/radio/index.js",
"loadmore": "./packages/loadmore/index.js",
"actionsheet": "./packages/actionsheet/index.js",
"popup": "./packages/popup/index.js",
"swipe": "./packages/swipe/index.js",
"swipe-item": "./packages/swipe-item/index.js",
"range": "./packages/range/index.js",
"picker": "./packages/picker/index.js",
"progress": "./packages/progress/index.js",
"toast": "./packages/toast/index.js",
"indicator": "./packages/indicator/index.js",
"message-box": "./packages/message-box/index.js",
"infinite-scroll": "./packages/infinite-scroll/index.js",
"lazyload": "./packages/lazyload/index.js",
"datetime-picker": "./packages/datetime-picker/index.js",
"index-list": "./packages/index-list/index.js",
"index-section": "./packages/index-section/index.js",
"palette-button": "./packages/palette-button/index.js"
}
================================================
FILE: example/app.vue
================================================
<template>
<div>
<router-link class="page-back" v-if="visible" :to="'/'">
<i class="mintui mintui-back"></i>
</router-link>
<router-view></router-view>
</div>
</template>
<style>
@reset-global mobile;
html, body {
background-color: #fafafa;
-webkit-overflow-scrolling: touch;
user-select: none;
}
a {
color: inherit;
}
.page-back {
display: inline-block;
position: absolute 12px * * 10px;
width: 40px;
height: 40px;
text-align: center;
i {
font-size: 24px;
line-height: 40px;
}
}
</style>
<script type="text/babel">
import 'src/assets/font/iconfont.css';
export default {
computed: {
visible() {
return ['/', '/header', '/search'].indexOf(this.$route.path) < 0;
}
}
};
</script>
================================================
FILE: example/demos.vue
================================================
<template>
<section class="page-demo">
<div v-for="group in navs">
<div class="page-title" v-text="group.title"></div>
<mt-cell
v-for="item in group.list"
:to="item.path"
is-link>
<div slot="title">
<i :class="['indexicon', 'icon-' + item.icon]"></i>
<span>{{ item.name }}</span>
</div>
</mt-cell>
</div>
</section>
</template>
<style>
.page-demo {
padding-bottom: 50px;
.indexicon {
font-size: 22px;
color: #26a2ff;
display: inline-block;
width: 30px;
vertical-align: middle;
&.icon-swipe {
font-size: 26px;
}
&.icon-checklist {
font-size: 18px;
}
}
}
@component-namespace page {
@component title {
font-size: 20px;
margin: 20px auto;
text-align: center;
display: block;
line-height: 1;
}
@component part {
margin-bottom: 15px;
}
}
</style>
<script type="text/babel">
import { navs } from './route';
export default {
data() {
return {
navs: []
};
},
created() {
this.navs = navs;
}
};
</script>
================================================
FILE: example/entry.js
================================================
import Vue from 'vue';
import App from './app';
import routes from './route';
import { install as Mint } from 'src/index';
import VueRouter from 'vue-router';
document.addEventListener('DOMContentLoaded', function() {
if (window.FastClick) window.FastClick.attach(document.body);
}, false);
Vue.use(Mint);
Vue.use(VueRouter);
const router = new VueRouter({
base: __dirname,
routes
});
new Vue({ // eslint-disable-line
el: '#app',
render: h => h(App),
router
});
let indexScrollTop = 0;
router.beforeEach((route, redirect, next) => {
if (route.path !== '/') {
indexScrollTop = document.body.scrollTop;
}
document.title = route.meta.title || document.title;
next();
});
router.afterEach(route => {
if (route.path !== '/') {
document.body.scrollTop = 0;
} else {
Vue.nextTick(() => {
document.body.scrollTop = indexScrollTop;
});
}
});
================================================
FILE: example/index.tpl
================================================
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>Mint UI</title>
<link rel="stylesheet" href="//at.alicdn.com/t/font_1469597443_9221172.css">
</head>
<body>
<div id="app"></div><% if (process.env.NODE_ENV === 'production') { %>
<script src="//unpkg.com/vue@2.2.6/dist/vue.js"></script>
<script src="//unpkg.com/vue-router@2.4.0/dist/vue-router.js"></script>
<script src="//unpkg.com/fastclick@1.0.6/lib/fastclick.js"></script><% } %>
</body>
</html>
================================================
FILE: example/nav.config.json
================================================
[
{
"title": "JS Components",
"list": [
{
"path": "/toast",
"name": "Toast",
"icon": "toast"
},
{
"path": "/indicator",
"name": "Indicator",
"icon": "indicator"
},
{
"path": "/pull-down",
"name": "Pull down",
"icon": "pull-down"
},
{
"path": "/pull-up",
"name": "Pull up",
"icon": "pull-up"
},
{
"path": "/infinite-scroll",
"name": "Infinite scroll",
"icon": "infinite-scroll"
},
{
"path": "/message-box",
"name": "Message box",
"icon": "message-box"
},
{
"path": "/action-sheet",
"name": "Action sheet",
"icon": "action-sheet"
},
{
"path": "/popup",
"name": "Popup",
"icon": "popup"
},
{
"path": "/swipe",
"name": "Swipe",
"icon": "swipe"
},
{
"path": "/lazyload",
"name": "Lazy load",
"icon": "lazyload"
},
{
"path": "/range",
"name": "Range",
"icon": "range"
},
{
"path": "/progress",
"name": "Progress",
"icon": "progress"
},
{
"path": "/picker",
"name": "Picker",
"icon": "picker"
},
{
"path": "/datetime-picker",
"name": "Datetime Picker",
"icon": "time"
},
{
"path": "/index-list",
"name": "Index List",
"icon": "alphabet"
},
{
"path": "/palette-button",
"name": "Palette Button",
"icon": "alphabet"
}
]
},
{
"title": "CSS Components",
"list": [
{
"path": "/header",
"name": "Header",
"icon": "header"
},
{
"path": "/tabbar",
"name": "Tabbar",
"icon": "tabbar"
},
{
"path": "/navbar",
"name": "Navbar",
"icon": "navbar"
},
{
"path": "/button",
"name": "Button",
"icon": "button"
},
{
"path": "/cell",
"name": "Cell",
"icon": "cell"
},
{
"path": "/cell-swipe",
"name": "Cell Swipe",
"icon": "cell"
},
{
"path": "/spinner",
"name": "Spinner",
"icon": "spinner"
},
{
"path": "/tab-container",
"name": "TabContainer",
"icon": "panel"
},
{
"path": "/search",
"name": "Search",
"icon": "searchbar"
}
]
},
{
"title": "Form Components",
"list": [
{
"path": "/switch",
"name": "Switch",
"icon": "switch"
},
{
"path": "/checklist",
"name": "Checklist",
"icon": "checklist"
},
{
"path": "/radio",
"name": "Radio",
"icon": "radio"
},
{
"path": "/field",
"name": "Field",
"icon": "field"
},
{
"path": "/badge",
"name": "Badge",
"icon": "badge"
}
]
}
]
================================================
FILE: example/pages/action-sheet.vue
================================================
<template>
<div class="page-actionsheet">
<h1 class="page-title">Action Sheet</h1>
<div class="page-actionsheet-wrapper">
<mt-button @click.native="sheetVisible = true" size="large">点击上拉 action sheet</mt-button>
<mt-button @click.native="sheetVisible2 = true" size="large">不带取消按钮的 action sheet</mt-button>
</div>
<mt-actionsheet :actions="actions" v-model="sheetVisible"></mt-actionsheet>
<mt-actionsheet :actions="actions2" v-model="sheetVisible2" cancel-text=""></mt-actionsheet>
</div>
</template>
<style>
@component-namespace page {
@component actionsheet {
@descendent wrapper {
padding: 0 20px;
position: absolute 50% * * *;
width: 100%;
transform: translateY(-50%);
button:first-child {
margin-bottom: 20px;
}
}
}
}
</style>
<script type="text/babel">
export default {
data() {
return {
sheetVisible: false,
sheetVisible2: false,
actions: [],
actions2: []
};
},
methods: {
takePhoto() {
console.log('taking photo');
},
openAlbum() {
console.log('opening album');
},
goBack() {
history.go(-1);
}
},
mounted() {
this.actions = [{
name: '拍照',
method: this.takePhoto
}, {
name: '从相册中选择',
method: this.openAlbum
}];
this.actions2 = [{
name: '确定'
}, {
name: '返回上一步',
method: this.goBack
}];
}
};
</script>
================================================
FILE: example/pages/badge.vue
================================================
<template>
<div class="page-badge">
<div class="page-title">Badge</div>
<div class="page-badge-container">
<div class="page-part">
<mt-badge type="primary" size="large">30</mt-badge>
<mt-badge type="error" size="large">10</mt-badge>
<mt-badge type="success" size="large">10</mt-badge>
<mt-badge type="warning" size="large">10</mt-badge>
</div>
<div class="page-part">
<mt-badge type="primary">30</mt-badge>
<mt-badge type="error">10</mt-badge>
<mt-badge type="success">10</mt-badge>
<mt-badge type="warning">10</mt-badge>
</div>
<div class="page-part">
<mt-badge type="primary" size="small">30</mt-badge>
<mt-badge type="error" size="small">10</mt-badge>
<mt-badge type="success" size="small">10</mt-badge>
<mt-badge type="warning" size="small">10</mt-badge>
</div>
<div class="page-part">
<mt-badge size="small" color="#888">自定义颜色</mt-badge>
</div>
</div>
<div class="page-part">
<mt-cell title="徽章">
<span style="margin-right: 5px;">未读消息</span>
<mt-badge type="error" size="small">10</mt-badge>
</mt-cell>
</div>
</div>
</template>
<script>
export default {
name: 'page-badge'
};
</script>
<style lang="css">
.page-badge-container {
padding: 0 10px;
}
</style>
================================================
FILE: example/pages/button.vue
================================================
<template>
<div class="page-button">
<h1 class="page-title">Button</h1>
<div class="page-button-group">
<mt-button size="large">default</mt-button>
<mt-button size="large" type="primary">primary</mt-button>
<mt-button size="large" type="danger">danger</mt-button>
</div>
<div class="page-button-group">
<mt-button>default</mt-button>
<mt-button type="primary">primary</mt-button>
<mt-button type="danger">danger</mt-button>
</div>
<div class="page-button-group">
<mt-button size="small">default</mt-button>
<mt-button size="small" type="primary">primary</mt-button>
<mt-button size="small" type="danger">danger</mt-button>
</div>
<div class="page-button-group">
<mt-button disabled size="large">default</mt-button>
<mt-button disabled size="large" type="primary">primary</mt-button>
<mt-button disabled size="large" type="danger">danger</mt-button>
</div>
<div class="page-button-group">
<mt-button plain size="large">default</mt-button>
<mt-button plain size="large" type="primary">primary</mt-button>
<mt-button plain size="large" type="danger">danger</mt-button>
</div>
<div class="page-button-group">
<mt-button>
<img src="../assets/100x100.png" height="20" width="20" slot="icon">
带自定义图标
</mt-button>
</div>
</div>
</template>
<script>
export default {
name: 'button'
};
</script>
<style lang="css">
@component-namespace page {
@component button {
padding: 0 15px 15px;
@descendent group {
margin-bottom: 15px;
& > * {
margin-bottom: 15px;
}
}
}
}
</style>
================================================
FILE: example/pages/cell-swipe.vue
================================================
<template>
<div class="page-cell">
<div class="page-title">Cell Swipe</div>
<mt-cell-swipe
v-for="n in 15"
:right="rightButtons"
title="swipe me">
</mt-cell-swipe>
</div>
</template>
<script>
export default {
created() {
this.rightButtons = [
{
content: 'Mark as Unread',
style: { background: 'lightgray', color: '#fff' }
},
{
content: 'Delete',
style: { background: 'red', color: '#fff' },
handler: () => this.$messagebox('delete')
}
];
},
methods: {
leftButtonHandler(evt) {
console.log(123);
}
}
};
</script>
================================================
FILE: example/pages/cell.vue
================================================
<template>
<div class="page-cell">
<div class="page-title">Cell</div>
<mt-cell title="标题文字"></mt-cell>
<mt-cell title="标题文字" value="说明文字"></mt-cell>
<mt-cell title="标题文字" icon="more" value="带 icon"></mt-cell>
<mt-cell title="标题文字" icon="more">
<span>icon 是图片</span>
<img slot="icon" src="../assets/100x100.png" width="24" height="24">
</mt-cell>
<mt-cell title="标题文字" is-link value="带链接"></mt-cell>
<mt-cell title="标题文字" is-link>
<span style="color: green">这里是元素</span>
</mt-cell>
<mt-cell title="标题文字">
<mt-button size="small" type="primary" icon="back">按钮</mt-button>
</mt-cell>
<mt-cell title="标题" label="描述信息" is-link></mt-cell>
<mt-cell title="原生跳转" label="跳转到 https://mint-ui.github.io" is-link to="https://mint-ui.github.io"></mt-cell>
<mt-cell title="路由跳转" label="跳转到 /#/toast" is-link :to="{ name: 'Toast' }"></mt-cell>
</div>
</template>
================================================
FILE: example/pages/checklist.vue
================================================
<template>
<div class="page-checklist">
<div class="page-title">Checklist</div>
<mt-checklist
class="page-part"
title="复选框列表"
v-model="value1"
:options="options1">
</mt-checklist>
<div>
<mt-cell title="选中的项">{{ value1 }}</mt-cell>
</div>
<mt-checklist
class="page-part"
title="第二个复选框列表"
v-model="value2"
:options="options2">
</mt-checklist>
<div>
<mt-cell title="选中的项">{{ value2 }}</mt-cell>
</div>
<mt-checklist
class="page-part"
title="最多选两个"
:max="2"
v-model="value3"
:options="options3">
</mt-checklist>
<div>
<mt-cell title="选中的项">{{ value3 }}</mt-cell>
</div>
<mt-checklist
align="right"
class="page-part"
title="右对齐"
v-model="value4"
:options="options4">
</mt-checklist>
</div>
</template>
<script>
export default {
name: 'page-checklist',
data() {
return {
value1: [],
value2: ['选中禁用的值'],
value3: ['选项A'],
value4: []
};
},
created() {
this.options1 = ['选项A', '选项B', '选项C'];
this.options3 = ['选项A', '选项B', '选项C', '选项D'];
this.options4 = ['选项A', '选项B', '选项C', '选项D'];
this.options2 = [
{
label: '被禁用',
value: '值F',
disabled: true
},
{
label: '选中禁用',
value: '选中禁用的值',
disabled: true
},
{
label: '选项A',
value: '值A'
},
{
label: '选项B',
value: '值B'
}
];
}
};
</script>
<style lang="css">
.page-checklist .page-part {
margin-top: 40px;
}
</style>
================================================
FILE: example/pages/datetime-picker.vue
================================================
<template>
<div class="page-datetime">
<h1 class="page-title">Datetime Picker</h1>
<div class="page-datetime-wrapper">
<mt-button @click.native="open('picker1')" size="large">点击弹出 DateTime Picker</mt-button>
<mt-button @click.native="open('picker2')" size="large">点击弹出 Date Picker</mt-button>
<mt-button @click.native="open('picker3')" size="large">点击弹出 Time Picker</mt-button>
<mt-button @click.native="open('picker4')" size="large">自定义模板</mt-button>
<mt-button @click.native="open('picker5')" size="large">设定初始值</mt-button>
</div>
<mt-datetime-picker
ref="picker1"
v-model="value"
:closeOnClickModal="false"
@visible-change="handleVisibleChange"
@confirm="handleChange">
</mt-datetime-picker>
<mt-datetime-picker
ref="picker2"
type="date"
v-model="value2"
@confirm="handleChange">
</mt-datetime-picker>
<mt-datetime-picker
ref="picker3"
type="time"
v-model="value3"
@confirm="handleChange">
</mt-datetime-picker>
<mt-datetime-picker
ref="picker4"
type="date"
v-model="value4"
year-format="{value} 年"
month-format="{value} 月"
date-format="{value} 日"
@confirm="handleChange">
</mt-datetime-picker>
<mt-datetime-picker
ref="picker5"
type="time"
v-model="value5"
@confirm="handleChange">
</mt-datetime-picker>
</div>
</template>
<style>
@component-namespace page {
@component datetime {
@descendent wrapper {
padding: 0 20px;
position: absolute 50% * * *;
width: 100%;
transform: translateY(-50%);
button:not:(last-child) {
margin-bottom: 20px;
}
}
}
}
</style>
<script type="text/babel">
import { Toast } from 'src/index';
export default {
data() {
return {
value: null,
value2: null,
value3: null,
value4: null,
value5: '04:32',
visible: false,
visible2: false,
visible3: false,
visible4: false,
visible5: false
};
},
methods: {
open(picker) {
this.$refs[picker].open();
},
handleChange(value) {
Toast({
message: '已选择 ' + value.toString(),
position: 'bottom'
});
},
handleVisibleChange(isVisible) {
console.log('弹窗是否展示:', isVisible);
}
}
};
</script>
================================================
FILE: example/pages/field.vue
================================================
<template>
<div class="page-field">
<div class="page-title">Field</div>
<div class="page-part">
<mt-field label="用户名" placeholder="请输入用户名" :attr="{ maxlength: 10 }"></mt-field>
<mt-field label="邮箱" placeholder="请输入邮箱" type="email"></mt-field>
<mt-field label="密码" placeholder="请输入密码" type="password"></mt-field>
<mt-field label="手机号" placeholder="请输入手机号" type="tel"></mt-field>
<mt-field label="网站" placeholder="请输入网址" type="url"></mt-field>
<mt-field label="数字" placeholder="请输入数字" type="number"></mt-field>
<mt-field label="生日" placeholder="请输入生日" type="date"></mt-field>
<mt-field label="自我介绍" placeholder="自我介绍" type="textarea" rows="4"></mt-field>
</div>
<div class="page-part">
<mt-field placeholder="登录邮箱" type="email"></mt-field>
<mt-field placeholder="密码" type="password"></mt-field>
</div>
<div class="page-part">
<mt-field label="邮箱" placeholder="成功状态" state="success"></mt-field>
<mt-field label="邮箱" placeholder="失败状态" state="error"></mt-field>
<mt-field label="邮箱" placeholder="警告状态" state="warning"></mt-field>
</div>
<div class="page-part">
<mt-field label="验证码" placeholder="输入验证码">
<img src="../assets/100x100.png" height="48px" width="100px">
</mt-field>
</div>
</div>
</template>
<script>
export default {
name: 'page-field'
};
</script>
================================================
FILE: example/pages/header.vue
================================================
<template>
<div>
<mt-header fixed title="固定在顶部"></mt-header>
<div class="page-header-main">
<div class="page-title">Header</div>
<mt-header title="标题过长会隐藏后面的内容啊哈哈哈哈">
<router-link to="/" slot="left">
<mt-button icon="back">返回</mt-button>
</router-link>
<mt-button icon="more" slot="right"></mt-button>
</mt-header>
<mt-header title="多个按钮">
<router-link to="/" slot="left">
<mt-button icon="back">返回</mt-button>
</router-link>
<mt-button @click="handleClose">关闭</mt-button>
<mt-button icon="more" slot="right"></mt-button>
</mt-header>
<mt-header title="左侧仅文字">
<router-link to="/" slot="left">
<mt-button>返回</mt-button>
</router-link>
</mt-header>
<mt-header title="右侧仅文字">
<router-link to="/" slot="right">
<mt-button>分享</mt-button>
</router-link>
</mt-header>
<mt-header title="仅图标">
<router-link to="/" slot="left">
<mt-button icon="back"></mt-button>
</router-link>
<mt-button slot="right" icon="more"></mt-button>
</mt-header>
</div>
</div>
</template>
<script>
export default {
name: 'header',
data() {
return {
};
},
methods: {
handleClose() {
alert('close this page');
}
}
};
</script>
<style lang="css">
@component-namespace page {
@component header {
@descendent main {
margin-top: 50px;
min-height: 120vh;
> * {
margin-bottom: 15px;
}
}
}
}
</style>
================================================
FILE: example/pages/index-list.vue
================================================
<template>
<div class="page-indexlist">
<h1 class="page-title">Index List</h1>
<p class="page-indexlist-desc">此例请使用手机查看</p>
<div class="page-indexlist-wrapper">
<mt-index-list>
<mt-index-section v-for="item in alphabet" :index="item.initial">
<mt-cell v-for="cell in item.cells" :title="cell"></mt-cell>
</mt-index-section>
</mt-index-list>
</div>
</div>
</template>
<style>
@component-namespace page {
@component indexlist {
@descendent desc {
text-align: center;
color: #666;
padding-bottom: 5px;
}
@descendent wrapper {
width: 100%;
border-top: solid 1px #ddd;
}
}
}
</style>
<script type="text/babel">
const NAMES = ['Aaron', 'Alden', 'Austin', 'Baldwin', 'Braden', 'Carl', 'Chandler', 'Clyde', 'David', 'Edgar', 'Elton', 'Floyd', 'Freeman', 'Gavin', 'Hector', 'Henry', 'Ian', 'Jason', 'Joshua', 'Kane', 'Lambert', 'Matthew', 'Morgan', 'Neville', 'Oliver', 'Oscar', 'Perry', 'Quinn', 'Ramsey', 'Scott', 'Seth', 'Spencer', 'Timothy', 'Todd', 'Trevor', 'Udolf', 'Victor', 'Vincent', 'Walton', 'Willis', 'Xavier', 'Yvonne', 'Zack', 'Zane'];
export default {
data() {
return {
alphabet: []
};
},
created() {
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('').forEach(initial => {
let cells = NAMES.filter(name => name[0] === initial);
this.alphabet.push({
initial,
cells
});
});
}
};
</script>
================================================
FILE: example/pages/indicator.vue
================================================
<template>
<div class="page-indicator">
<h1 class="page-title">Indicator</h1>
<div class="page-indicator-wrapper">
<mt-button @click.native="openIndicator" size="large">点击弹出 Indicator</mt-button>
<mt-button @click.native="openIndicatorWithSpinner" size="large">可配置 spinner</mt-button>
<mt-button @click.native="openIndicatorWithText" size="large">点击弹出带有文字的 Indicator</mt-button>
</div>
</div>
</template>
<style>
@component-namespace page {
@component indicator {
@descendent wrapper {
padding: 0 20px;
position: absolute 50% * * *;
width: 100%;
transform: translateY(-50%);
button:not(:last-child) {
margin-bottom: 20px;
}
}
}
}
</style>
<script type="text/babel">
import { Indicator } from 'src/index';
export default {
methods: {
openIndicator() {
Indicator.open();
setTimeout(() => Indicator.close(), 2000);
},
openIndicatorWithSpinner() {
Indicator.open({ spinnerType: 'fading-circle' });
setTimeout(() => Indicator.close(), 2000);
},
openIndicatorWithText() {
Indicator.open('加载中...');
setTimeout(() => Indicator.close(), 2000);
}
},
beforeDestroy() {
Indicator.close();
}
};
</script>
================================================
FILE: example/pages/infinite-scroll.vue
================================================
<template>
<div class="page-infinite">
<h1 class="page-title">Infinite Scroll</h1>
<p class="page-infinite-desc">当即将滚动至列表底部时, 自动加载更多数据</p>
<div class="page-infinite-wrapper" ref="wrapper" :style="{ height: wrapperHeight + 'px' }">
<ul class="page-infinite-list" v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="50">
<li v-for="item in list" class="page-infinite-listitem">{{ item }}</li>
</ul>
<p v-show="loading" class="page-infinite-loading">
<mt-spinner type="fading-circle"></mt-spinner>
加载中...
</p>
</div>
</div>
</template>
<style>
@component-namespace page {
@component infinite {
@descendent desc {
text-align: center;
color: #666;
padding-bottom: 5px;
border-bottom: solid 1px #eee;
}
@descendent listitem {
height: 50px;
line-height: 50px;
border-bottom: solid 1px #eee;
text-align: center;
&:first-child {
border-top: solid 1px #eee;
}
}
@descendent wrapper {
margin-top: -1px;
overflow: scroll;
}
@descendent loading {
text-align: center;
height: 50px;
line-height: 50px;
div {
display: inline-block;
vertical-align: middle;
margin-right: 5px;
}
}
}
}
</style>
<script type="text/babel">
export default {
data() {
return {
list: [],
loading: false,
allLoaded: false,
wrapperHeight: 0
};
},
methods: {
loadMore() {
this.loading = true;
setTimeout(() => {
let last = this.list[this.list.length - 1];
for (let i = 1; i <= 10; i++) {
this.list.push(last + i);
}
this.loading = false;
}, 2500);
}
},
mounted() {
this.wrapperHeight = document.documentElement.clientHeight - this.$refs.wrapper.getBoundingClientRect().top;
for (let i = 1; i <= 20; i++) {
this.list.push(i);
}
}
};
</script>
================================================
FILE: example/pages/lazyload.vue
================================================
<template>
<div class="page-lazyload">
<h1 class="page-title">Lazy Load</h1>
<ul class="page-lazyload-list">
<li class="page-lazyload-listitem" v-for="item in list">
<img v-lazy="item" class="page-lazyload-image">
</li>
</ul>
</div>
</template>
<style>
@component-namespace page {
@component lazyload {
@descendent list {
text-align: center;
}
@descendent listitem {
width: 300px;
margin: 0 auto;
margin-bottom: 10px;
background-color: #ddd;
}
@descendent image {
display: block;
width: 100%;
}
@descendent image[lazy=loading] {
width: 40px;
height: 300px;
margin: auto;
}
}
}
</style>
<script type="text/babel">
export default {
data() {
return {
list: [
'http://fuss10.elemecdn.com/b/18/0678e57cb1b226c04888e7f244c20jpeg.jpeg',
'http://fuss10.elemecdn.com/3/1e/42634e29812e6594c98a89e922c60jpeg.jpeg',
'http://fuss10.elemecdn.com/1/c5/95c37272d3e554317dcec1e17a9f5jpeg.jpeg',
'http://fuss10.elemecdn.com/7/85/e478e4b26af74f4539c79f31fde80jpeg.jpeg',
'http://fuss10.elemecdn.com/b/df/b630636b444346e38cef6c59f6457jpeg.jpeg',
'http://fuss10.elemecdn.com/7/a5/596ab03934612236f807b92906fd8jpeg.jpeg'
]
};
}
};
</script>
================================================
FILE: example/pages/message-box.vue
================================================
<template>
<div class="page-msgbox">
<h1 class="page-title">Message Box</h1>
<div class="page-msgbox-wrapper">
<mt-button @click.native="openAlert" size="large">打开 alert 提示框</mt-button>
<mt-button @click.native="openConfirm" size="large">打开 confirm 提示框</mt-button>
<mt-button @click.native="openPrompt" size="large">打开 prompt 提示框</mt-button>
</div>
</div>
</template>
<style>
@component-namespace page {
@component msgbox {
@descendent wrapper {
padding: 0 20px;
position: absolute 50% * * *;
width: 100%;
transform: translateY(-50%);
button:not(:last-child) {
margin-bottom: 20px;
}
}
}
}
</style>
<script type="text/babel">
import { MessageBox } from 'src/index';
export default {
methods: {
openAlert() {
MessageBox.alert('操作成功!', '提示');
},
openConfirm() {
MessageBox.confirm('确定执行此操作?', '提示');
},
openPrompt() {
MessageBox.prompt(' ', '请输入姓名').then(({ value }) => {
if (value) {
MessageBox.alert(`你的名字是 ${ value }`, '输入成功');
}
});
}
}
};
</script>
================================================
FILE: example/pages/navbar.vue
================================================
<template>
<div class="page-navbar">
<div class="page-title">Navbar</div>
<mt-navbar class="page-part" v-model="selected">
<mt-tab-item id="1">选项一</mt-tab-item>
<mt-tab-item id="2">选项二</mt-tab-item>
<mt-tab-item id="3">选项三</mt-tab-item>
</mt-navbar>
<div>
<mt-cell class="page-part" title="当前选中">{{ selected }}</mt-cell>
</div>
<mt-tab-container v-model="selected">
<mt-tab-container-item id="1">
<mt-cell v-for="n in 10" :title="'内容 ' + n" />
</mt-tab-container-item>
<mt-tab-container-item id="2">
<mt-cell v-for="n in 4" :title="'测试 ' + n" />
</mt-tab-container-item>
<mt-tab-container-item id="3">
<mt-cell v-for="n in 6" :title="'选项 ' + n" />
</mt-tab-container-item>
</mt-tab-container>
</div>
</template>
<script>
export default {
name: 'page-navbar',
data() {
return {
selected: '1'
};
}
};
</script>
================================================
FILE: example/pages/palette-button.vue
================================================
<template>
<div style="text-align:center;padding-top:200px;">
<mt-palette-button content="+" @expand="main_log('expand')" @expanded="main_log('expanded')" @collapse="main_log('collapse')"
direction="rt" class="pb" :radius="80" ref="target_1" mainButtonStyle="color:#fff;background-color:#26a2ff;"
style="left:30px;">
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(1)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(2)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(3)"></div>
</mt-palette-button>
<mt-palette-button content="+" @expand="main_log('expand')" @expanded="main_log('expanded')" @collapse="main_log('collapse')"
direction="t" class="pb" :radius="80" ref="target_2" mainButtonStyle="color:yellow;background-color:#26a2ff;" :offset="Math.PI / 12"
style="left:calc(50% - 30px);">
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(1)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(2)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(3)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(4)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(5)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(6)"></div>
</mt-palette-button>
<mt-palette-button content="+" @expand="main_log('expand')" @expanded="main_log('expanded')" @collapse="main_log('collapse')"
direction="lt" class="pb" :radius="100" ref="target_3"
style="right:30px;">
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(1)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(2)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(3)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(4)"></div>
<div class="my-icon-button indexicon icon-popup" @touchstart="sub_log(5)"></div>
</mt-palette-button>
</div>
</template>
<script>
export default {
methods: {
main_log(val) {
console.log('main_log', val);
},
sub_log(val) {
console.log('sub_log', val);
this.$refs.target_1.collapse();
}
}
};
</script>
<style>
.pb{
width: 60px;
height: 60px;
line-height: 60px;
color: #FFF;
position:absolute;
bottom: 30px;
}
.my-icon-button{
width:30px;
height:30px;
border-radius:50%;
background-color:#26a2ff;
color: #fff;
line-height:30px;
text-align:center;
}
.mint-main-button{
color: #000;
background-color:#26a2ff;
}
</style>
================================================
FILE: example/pages/picker.vue
================================================
<template>
<div class="page-picker">
<h1 class="page-title">Picker</h1>
<div class="page-picker-wrapper">
<mt-picker :slots="yearSlot" @change="onYearChange" :visible-item-count="3"></mt-picker>
</div>
<p class="page-picker-desc">出生年份: {{ year }}</p>
<div class="page-picker-wrapper">
<mt-picker :slots="dateSlots" @change="onDateChange" :visible-item-count="3"></mt-picker>
</div>
<p class="page-picker-desc">在校时间: {{ dateStart }} 至 {{ dateEnd }}</p>
<div class="page-picker-wrapper">
<mt-picker :slots="addressSlots" @change="onAddressChange" :visible-item-count="5"></mt-picker>
</div>
<p class="page-picker-desc">地址: {{ addressProvince }} {{ addressCity }}</p>
<!-- defaultIndex 参数变化 -->
<div class="page-picker-wrapper">
<mt-picker :slots="numberSlot" @change="onNumberChange" :visible-item-count="3"></mt-picker>
</div>
<p class="page-picker-desc">动态默认选项: {{ number }}</p>
</div>
</template>
<style>
@component-namespace page {
@component picker {
padding: 0 10px 20px;
@descendent wrapper {
background-color: #fff;
text-align: center;
}
@descendent desc {
margin: 10px 0 50px;
}
.mint-button {
margin-top: 15px;
}
}
}
</style>
<script type="text/babel">
const address = {
'北京': ['北京'],
'广东': ['广州', '深圳', '珠海', '汕头', '韶关', '佛山', '江门', '湛江', '茂名', '肇庆', '惠州', '梅州', '汕尾', '河源', '阳江', '清远', '东莞', '中山', '潮州', '揭阳', '云浮'],
'上海': ['上海'],
'天津': ['天津'],
'重庆': ['重庆'],
'辽宁': ['沈阳', '大连', '鞍山', '抚顺', '本溪', '丹东', '锦州', '营口', '阜新', '辽阳', '盘锦', '铁岭', '朝阳', '葫芦岛'],
'江苏': ['南京', '苏州', '无锡', '常州', '镇江', '南通', '泰州', '扬州', '盐城', '连云港', '徐州', '淮安', '宿迁'],
'湖北': ['武汉', '黄石', '十堰', '荆州', '宜昌', '襄樊', '鄂州', '荆门', '孝感', '黄冈', '咸宁', '随州', '恩施土家族苗族自治州', '仙桃', '天门', '潜江', '神农架林区'],
'四川': ['成都', '自贡', '攀枝花', '泸州', '德阳', '绵阳', '广元', '遂宁', '内江', '乐山', '南充', '眉山', '宜宾', '广安', '达州', '雅安', '巴中', '资阳', '阿坝藏族羌族自治州', '甘孜藏族自治州', '凉山彝族自治州'],
'陕西': ['西安', '铜川', '宝鸡', '咸阳', '渭南', '延安', '汉中', '榆林', '安康', '商洛'],
'河北': ['石家庄', '唐山', '秦皇岛', '邯郸', '邢台', '保定', '张家口', '承德', '沧州', '廊坊', '衡水'],
'山西': ['太原', '大同', '阳泉', '长治', '晋城', '朔州', '晋中', '运城', '忻州', '临汾', '吕梁'],
'河南': ['郑州', '开封', '洛阳', '平顶山', '安阳', '鹤壁', '新乡', '焦作', '濮阳', '许昌', '漯河', '三门峡', '南阳', '商丘', '信阳', '周口', '驻马店'],
'吉林': ['长春', '吉林', '四平', '辽源', '通化', '白山', '松原', '白城', '延边朝鲜族自治州'],
'黑龙江': ['哈尔滨', '齐齐哈尔', '鹤岗', '双鸭山', '鸡西', '大庆', '伊春', '牡丹江', '佳木斯', '七台河', '黑河', '绥化', '大兴安岭地区'],
'内蒙古': ['呼和浩特', '包头', '乌海', '赤峰', '通辽', '鄂尔多斯', '呼伦贝尔', '巴彦淖尔', '乌兰察布', '锡林郭勒盟', '兴安盟', '阿拉善盟'],
'山东': ['济南', '青岛', '淄博', '枣庄', '东营', '烟台', '潍坊', '济宁', '泰安', '威海', '日照', '莱芜', '临沂', '德州', '聊城', '滨州', '菏泽'],
'安徽': ['合肥', '芜湖', '蚌埠', '淮南', '马鞍山', '淮北', '铜陵', '安庆', '黄山', '滁州', '阜阳', '宿州', '巢湖', '六安', '亳州', '池州', '宣城'],
'浙江': ['杭州', '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州', '丽水'],
'福建': ['福州', '厦门', '莆田', '三明', '泉州', '漳州', '南平', '龙岩', '宁德'],
'湖南': ['长沙', '株洲', '湘潭', '衡阳', '邵阳', '岳阳', '常德', '张家界', '益阳', '郴州', '永州', '怀化', '娄底', '湘西土家族苗族自治州'],
'广西': ['南宁', '柳州', '桂林', '梧州', '北海', '防城港', '钦州', '贵港', '玉林', '百色', '贺州', '河池', '来宾', '崇左'],
'江西': ['南昌', '景德镇', '萍乡', '九江', '新余', '鹰潭', '赣州', '吉安', '宜春', '抚州', '上饶'],
'贵州': ['贵阳', '六盘水', '遵义', '安顺', '铜仁地区', '毕节地区', '黔西南布依族苗族自治州', '黔东南苗族侗族自治州', '黔南布依族苗族自治州'],
'云南': ['昆明', '曲靖', '玉溪', '保山', '昭通', '丽江', '普洱', '临沧', '德宏傣族景颇族自治州', '怒江傈僳族自治州', '迪庆藏族自治州', '大理白族自治州', '楚雄彝族自治州', '红河哈尼族彝族自治州', '文山壮族苗族自治州', '西双版纳傣族自治州'],
'西藏': ['拉萨', '那曲地区', '昌都地区', '林芝地区', '山南地区', '日喀则地区', '阿里地区'],
'海南': ['海口', '三亚', '五指山', '琼海', '儋州', '文昌', '万宁', '东方', '澄迈县', '定安县', '屯昌县', '临高县', '白沙黎族自治县', '昌江黎族自治县', '乐东黎族自治县', '陵水黎族自治县', '保亭黎族苗族自治县', '琼中黎族苗族自治县'],
'甘肃': ['兰州', '嘉峪关', '金昌', '白银', '天水', '武威', '酒泉', '张掖', '庆阳', '平凉', '定西', '陇南', '临夏回族自治州', '甘南藏族自治州'],
'宁夏': ['银川', '石嘴山', '吴忠', '固原', '中卫'],
'青海': ['西宁', '海东地区', '海北藏族自治州', '海南藏族自治州', '黄南藏族自治州', '果洛藏族自治州', '玉树藏族自治州', '海西蒙古族藏族自治州'],
'新疆': ['乌鲁木齐', '克拉玛依', '吐鲁番地区', '哈密地区', '和田地区', '阿克苏地区', '喀什地区', '克孜勒苏柯尔克孜自治州', '巴音郭楞蒙古自治州', '昌吉回族自治州', '博尔塔拉蒙古自治州', '石河子', '阿拉尔', '图木舒克', '五家渠', '伊犁哈萨克自治州'],
'香港': ['香港'],
'澳门': ['澳门'],
'台湾': ['台北市', '高雄市', '台北县', '桃园县', '新竹县', '苗栗县', '台中县', '彰化县', '南投县', '云林县', '嘉义县', '台南县', '高雄县', '屏东县', '宜兰县', '花莲县', '台东县', '澎湖县', '基隆市', '新竹市', '台中市', '嘉义市', '台南市']
};
export default {
methods: {
onYearChange(picker, values) {
this.year = values[0];
},
onNumberChange(picker, values) {
this.number = values[0];
},
onDateChange(picker, values) {
if (values[0] > values[1]) {
picker.setSlotValue(1, values[0]);
}
this.dateStart = values[0];
this.dateEnd = values[1];
},
onAddressChange(picker, values) {
picker.setSlotValues(1, address[values[0]]);
this.addressProvince = values[0];
this.addressCity = values[1];
}
},
data() {
return {
year: '1984',
number: 0,
yearSlot: [{
flex: 1,
values: ['1984', '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992', '1993', '1994', '1995'],
className: 'slot1'
}],
numberSlot: [{
flex: 1,
defaultIndex: 0,
values: [0, 1, 2, 3, 4, 5, 6],
className: 'slot1'
}],
dateSlots: [
{
flex: 1,
values: ['2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'],
className: 'slot1',
textAlign: 'right'
}, {
divider: true,
content: '-',
className: 'slot2'
}, {
flex: 1,
values: ['2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'],
className: 'slot3',
textAlign: 'left'
}
],
dateStart: '2002',
dateEnd: '2002',
addressSlots: [
{
flex: 1,
values: Object.keys(address),
className: 'slot1',
textAlign: 'center'
}, {
divider: true,
content: '-',
className: 'slot2'
}, {
flex: 1,
values: ['北京'],
className: 'slot3',
textAlign: 'center'
}
],
addressProvince: '北京',
addressCity: '北京'
};
},
mounted() {
this.$nextTick(() => {
let step = 0;
setInterval(() => {
this.numberSlot[0].defaultIndex = step++;
if (step > this.numberSlot[0].values.length - 1) {
step = 0;
}
}, 1000);
});
}
};
</script>
================================================
FILE: example/pages/popup.vue
================================================
<template>
<div class="page-popup">
<h1 class="page-title">Popup</h1>
<div class="page-popup-wrapper">
<mt-button @click.native="popupVisible1 = true" size="large" ref="button">中部弹出 popup</mt-button>
<mt-button @click.native="popupVisible2 = true" size="large">上侧弹出 popup</mt-button>
<mt-button @click.native="popupVisible3 = true" size="large">右侧弹出 popup</mt-button>
<mt-button @click.native="popupVisible4 = true" size="large">下侧弹出 popup</mt-button>
</div>
<mt-popup v-model="popupVisible1" popup-transition="popup-fade" class="mint-popup-1" :style="{ top: buttonBottom + 10 + 'px' }">
<h1>popup</h1>
<p>/ ˈpɑpˌʌp /</p>
<p>n. 弹出式; [棒]内野飞球; 自动起跳式装置</p>
<p>adj. 弹起的; 有自动起跳装置的</p>
</mt-popup>
<mt-popup v-model="popupVisible2" position="top" class="mint-popup-2" :modal="false">
<p>更新成功</p>
</mt-popup>
<mt-popup v-model="popupVisible3" position="right" class="mint-popup-3" :modal="false">
<mt-button @click.native="popupVisible3 = false" size="large" type="primary">关闭 popup</mt-button>
</mt-popup>
<mt-popup v-model="popupVisible4" position="bottom" class="mint-popup-4">
<mt-picker :slots="dateSlots" @change="onDateChange" :visible-item-count="5" :show-toolbar="false"></mt-picker>
</mt-popup>
</div>
</template>
<style>
@component-namespace page {
@component popup {
@descendent wrapper {
padding: 0 20px;
position: absolute 50% * * *;
width: 100%;
transform: translateY(-50%);
button:not(:last-child) {
margin-bottom: 20px;
}
}
.mint-popup-1 {
width: 200px;
border-radius: 8px;
padding: 10px;
transform: translate(-50%, 0);
h1 {
font-size: 20px;
color: #26a2ff;
}
p {
margin-bottom: 10px;
}
}
.mint-popup-1::before {
triangle: 10px top #fff;
content: '';
position: absolute;
top: -20px;
right: 50px;
}
.mint-popup-2 {
width: 100%;
height: 50px;
text-align: center;
background-color: rgba(0,0,0,.7);
backface-visibility: hidden;
}
.mint-popup-2 p {
line-height: 50px;
color: #fff;
}
.mint-popup-3 {
width: 100%;
height: 100%;
background-color: #fff;
}
.mint-popup-3 .mint-button {
position: absolute;
width: 90%;
top: 50%;
left: 5%;
transform: translateY(-50%);
}
.mint-popup-4 {
width: 100%;
.picker-slot-wrapper, .picker-item {
backface-visibility: hidden;
}
}
}
}
</style>
<script type="text/babel">
export default {
data() {
return {
popupVisible1: false,
popupVisible2: false,
popupVisible3: false,
popupVisible4: false,
buttonBottom: 0,
dateSlots: [
{
flex: 1,
values: ['2016-01', '2016-02', '2016-03', '2016-04', '2016-05', '2016-06'],
className: 'slot1',
textAlign: 'right'
}, {
divider: true,
content: '-',
className: 'slot2'
}, {
flex: 1,
values: ['2016-01', '2016-02', '2016-03', '2016-04', '2016-05', '2016-06'],
className: 'slot3',
textAlign: 'left'
}
]
};
},
watch: {
popupVisible2(val) {
if (val) {
setTimeout(() => {
this.popupVisible2 = false;
}, 2000);
}
}
},
methods: {
onDateChange(picker, values) {
if (values[0] > values[1]) {
picker.setSlotValue(1, values[0]);
}
this.dateStart = values[0];
this.dateEnd = values[1];
}
},
mounted() {
this.buttonBottom = this.$refs.button.$el.getBoundingClientRect().bottom;
}
};
</script>
================================================
FILE: example/pages/progress.vue
================================================
<template>
<div class="page-progress">
<h1 class="page-title">Progress</h1>
<mt-cell title="默认">
<mt-progress></mt-progress>
</mt-cell>
<mt-cell title="设置 value">
<mt-progress :value="20"></mt-progress>
</mt-cell>
<mt-cell title="左右文字">
<mt-progress :value="40">
<div slot="start">0%</div>
<div slot="end">100%</div>
</mt-progress>
</mt-cell>
<mt-cell title="定义线宽">
<mt-progress :value="60" :bar-height="5"></mt-progress>
</mt-cell>
<div class="page-progress-wrapper">
<mt-button size="large" type="primary" @click.native="uploadFile">上传文件</mt-button>
<mt-progress :value="value" v-if="progressVisible" transition="progress-fade">
<div slot="end">{{ value }}%</div>
</mt-progress>
</div>
</div>
</template>
<style>
@component-namespace page {
@component progress {
.mint-cell-value {
flex: 2.5;
position: relative;
top: -20px;
}
.mt-progress {
width: 100%;
position: absolute;
top: 5px;
}
@descendent wrapper {
padding: 0 10px;
margin-top: 50px;
.mt-progress {
position: relative;
}
.progress-fade-transition {
transition: opacity .3s;
}
.progress-fade-enter,
.progress-fade-leave {
opacity: 0;
}
}
}
}
</style>
<script type="text/babel">
import { Toast } from 'src/index';
export default {
data() {
return {
progressVisible: false,
value: 0,
uploading: false,
timer: null
};
},
watch: {
value(val) {
if (val >= 100) {
this.uploading = false;
this.progressVisible = false;
setTimeout(() => Toast({ message: '上传成功', position: 'bottom', duration: 1000 }), 200);
clearTimeout(this.timer);
}
}
},
methods: {
uploadFile() {
if (!this.uploading) {
this.value = 0;
this.progressVisible = true;
this.uploading = true;
this.timer = setInterval(() => this.value++, 10);
}
}
}
};
</script>
================================================
FILE: example/pages/pull-down.vue
================================================
<template>
<div class="page-loadmore">
<h1 class="page-title">Pull down</h1>
<p class="page-loadmore-desc">在列表顶端, 按住 - 下拉 - 释放可以获取更多数据</p>
<p class="page-loadmore-desc">此例请使用手机查看</p>
<p class="page-loadmore-desc">translate : {{ translate }}</p>
<div class="loading-background" :style="{ transform: 'scale3d(' + moveTranslate + ',' + moveTranslate + ',1)' }">
translateScale : {{ moveTranslate }}
</div>
<div class="page-loadmore-wrapper" ref="wrapper" :style="{ height: wrapperHeight + 'px' }">
<mt-loadmore :top-method="loadTop" @translate-change="translateChange" @top-status-change="handleTopChange" ref="loadmore">
<ul class="page-loadmore-list">
<li v-for="item in list" class="page-loadmore-listitem">{{ item }}</li>
</ul>
<div slot="top" class="mint-loadmore-top">
<span v-show="topStatus !== 'loading'" :class="{ 'is-rotate': topStatus === 'drop' }">↓</span>
<span v-show="topStatus === 'loading'">
<mt-spinner type="snake"></mt-spinner>
</span>
</div>
</mt-loadmore>
</div>
</div>
</template>
<style>
@component-namespace page {
@component loadmore {
width: 100%;
overflow-x: hidden;
@descendent desc {
text-align: center;
color: #666;
padding-bottom: 5px;
&:last-of-type {
border-bottom: solid 1px #eee;
}
}
@descendent listitem {
height: 50px;
line-height: 50px;
border-bottom: solid 1px #eee;
text-align: center;
&:first-child {
border-top: solid 1px #eee;
}
}
@descendent wrapper {
margin-top: -1px;
overflow: scroll;
}
.mint-spinner {
display: inline-block;
vertical-align: middle;
}
}
}
@component loading-background{
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
transition: .2s linear;
}
@component mint-loadmore-top {
span {
display: inline-block;
transition: .2s linear;
vertical-align: middle;
@when rotate {
transform: rotate(180deg);
}
}
}
</style>
<script type="text/babel">
export default {
data() {
return {
list: [],
topStatus: '',
wrapperHeight: 0,
translate: 0,
moveTranslate: 0
};
},
methods: {
handleTopChange(status) {
this.moveTranslate = 1;
this.topStatus = status;
},
translateChange(translate) {
const translateNum = +translate;
this.translate = translateNum.toFixed(2);
this.moveTranslate = (1 + translateNum / 70).toFixed(2);
},
loadTop() {
setTimeout(() => {
let firstValue = this.list[0];
for (let i = 1; i <= 10; i++) {
this.list.unshift(firstValue - i);
}
this.$refs.loadmore.onTopLoaded();
}, 1500);
}
},
created() {
for (let i = 1; i <= 20; i++) {
this.list.push(i);
}
},
mounted() {
this.wrapperHeight = document.documentElement.clientHeight - this.$refs.wrapper.getBoundingClientRect().top;
}
};
</script>
================================================
FILE: example/pages/pull-up.vue
================================================
<template>
<div class="page-loadmore">
<h1 class="page-title">Pull up</h1>
<p class="page-loadmore-desc">在列表底部, 按住 - 上拉 - 释放可以获取更多数据</p>
<p class="page-loadmore-desc">此例请使用手机查看</p>
<div class="page-loadmore-wrapper" ref="wrapper" :style="{ height: wrapperHeight + 'px' }">
<mt-loadmore :bottom-method="loadBottom" @bottom-status-change="handleBottomChange" :bottom-all-loaded="allLoaded" ref="loadmore">
<ul class="page-loadmore-list">
<li v-for="item in list" class="page-loadmore-listitem">{{ item }}</li>
</ul>
<div slot="bottom" class="mint-loadmore-bottom">
<span v-show="bottomStatus !== 'loading'" :class="{ 'is-rotate': bottomStatus === 'drop' }">↑</span>
<span v-show="bottomStatus === 'loading'">
<mt-spinner type="snake"></mt-spinner>
</span>
</div>
</mt-loadmore>
</div>
</div>
</template>
<style>
@component-namespace page {
@component loadmore {
@descendent desc {
text-align: center;
color: #666;
padding-bottom: 5px;
&:last-of-type {
border-bottom: solid 1px #eee;
}
}
@descendent listitem {
height: 50px;
line-height: 50px;
border-bottom: solid 1px #eee;
text-align: center;
&:first-child {
border-top: solid 1px #eee;
}
}
@descendent wrapper {
overflow: scroll;
}
.mint-spinner {
display: inline-block;
vertical-align: middle;
}
}
}
@component mint-loadmore-bottom {
span {
display: inline-block;
transition: .2s linear;
vertical-align: middle;
@when rotate {
transform: rotate(180deg);
}
}
}
</style>
<script type="text/babel">
export default {
data() {
return {
list: [],
allLoaded: false,
bottomStatus: '',
wrapperHeight: 0
};
},
methods: {
handleBottomChange(status) {
this.bottomStatus = status;
},
loadBottom() {
setTimeout(() => {
let lastValue = this.list[this.list.length - 1];
if (lastValue < 40) {
for (let i = 1; i <= 10; i++) {
this.list.push(lastValue + i);
}
} else {
this.allLoaded = true;
}
this.$refs.loadmore.onBottomLoaded();
}, 1500);
}
},
created() {
for (let i = 1; i <= 20; i++) {
this.list.push(i);
}
},
mounted() {
this.wrapperHeight = document.documentElement.clientHeight - this.$refs.wrapper.getBoundingClientRect().top;
}
};
</script>
================================================
FILE: example/pages/radio.vue
================================================
<template>
<div class="page-radio">
<div class="page-title">radio</div>
<mt-radio
class="page-part"
title="单选框列表"
v-model="value1"
:options="options1" />
<div>
<mt-cell title="选中的项">{{ value1 }}</mt-cell>
</div>
<mt-radio
class="page-part"
title="第二个单选框列表"
v-model="value2"
:options="options2" />
<div>
<mt-cell title="选中的项">{{ value2 }}</mt-cell>
</div>
<mt-radio
align="right"
class="page-part"
title="右对齐"
v-model="value3"
:options="options3" />
</div>
</template>
<script>
export default {
name: 'page-radio',
data() {
return {
value1: '',
value2: '值A',
value3: ''
};
},
created() {
this.options1 = ['选项A', '选项B', '选项C'];
this.options3 = ['选项A', '选项B', '选项C'];
this.options2 = [
{
label: '被禁用',
value: '值F',
disabled: true
},
{
label: '选项A',
value: '值A'
},
{
label: '选项B',
value: '值B'
}
];
}
};
</script>
<style lang="css">
.page-radio .page-part {
margin-top: 40px;
}
</style>
================================================
FILE: example/pages/range.vue
================================================
<template>
<div class="page-range">
<h1 class="page-title">Range</h1>
<p class="page-range-header">基本功能</p>
<mt-cell v-for="item in cells1" :title="item.title" :label="'value:' + item.value">
<mt-range v-model="item.value">
<div slot="start" v-if="item.start">{{ item.start }}</div>
<div slot="end" v-if="item.end">{{ item.end }}</div>
</mt-range>
</mt-cell>
<p class="page-range-header">自定义</p>
<mt-cell v-for="item in cells2" :title="item.title" :label="'value:' + item.value">
<mt-range v-model="item.value" :min="item.min || 0" :max="item.max || 100" :step="item.step || 1" :bar-height="item.barHeight || 1" :disabled="item.disabled">
<div slot="start" v-if="item.start">{{ item.start }}</div>
<div slot="end" v-if="item.end">{{ item.end }}</div>
</mt-range>
</mt-cell>
<p class="page-range-header">场景举例</p>
<mt-cell v-for="item in cells3" :title="item.title" :label="'value:' + item.value">
<mt-range v-model="item.value" :min="item.min || 0" :max="item.max || 100" :step="item.step || 1">
<div slot="start" v-if="item.start" :style="{ 'font-size': item.start + 'px' }">{{ item.start }}</div>
<div slot="end" v-if="item.end" :style="{ 'font-size': item.end + 'px' }">{{ item.end }}</div>
</mt-range>
</mt-cell>
</div>
</template>
<style>
@component-namespace page {
@component range {
.mt-range {
width: 100%;
}
.mint-cell-value {
flex: 2.5;
position: relative;
}
@descendent header {
margin-bottom: 8px;
padding-left: 15px;
&:not(:first-of-type) {
margin-top: 28px;
}
}
@descendent desc {
padding: 5px 0 5px 5%;
}
}
}
</style>
<script type="text/babel">
export default {
data() {
return {
value1: 0,
value2: 20,
value3: 0,
value4: 0,
value5: 10,
value6: 0,
value7: 40,
value8: 14,
cells1: null,
cells2: null,
cells3: null
};
},
mounted() {
this.cells1 = [{
title: '默认',
value: this.value1
}, {
title: '预设 value',
value: this.value2
}, {
title: '左右文字',
value: this.value3,
start: '0',
end: '100'
}];
this.cells2 = [{
title: '定义步长',
value: this.value4,
step: 10
}, {
title: '定义区间',
value: this.value5,
start: '10',
end: '90',
min: 10,
max: 90
}, {
title: '定义线宽',
value: this.value6,
barHeight: 5
}, {
title: '置为无效',
value: this.value7,
disabled: true
}];
this.cells3 = [{
title: '字体大小',
value: this.value8,
start: '14',
end: '22',
min: 14,
max: 22,
step: 2
}];
}
};
</script>
================================================
FILE: example/pages/search.vue
================================================
<template>
<div class="page-search">
<mt-search autofocus v-model="value" :result="filterResult"></mt-search>
</div>
</template>
<script>
export default {
name: 'page-search',
data() {
return {
value: '',
defaultResult: [
'Apple',
'Banana',
'Orange',
'Durian',
'Lemon',
'Peach',
'Cherry',
'Berry',
'Core',
'Fig',
'Haw',
'Melon',
'Plum',
'Pear',
'Peanut',
'Other'
]
};
},
computed: {
filterResult() {
return this.defaultResult.filter(value => new RegExp(this.value, 'i').test(value));
}
}
};
</script>
<style lang="css">
.page-search {
height: 100%;
}
</style>
================================================
FILE: example/pages/spinner.vue
================================================
<template>
<div class="page-spinner">
<div class="page-title">Spinner</div>
<mt-cell title="snake">
<mt-spinner color="#26a2ff" type="snake"></mt-spinner>
</mt-cell>
<mt-cell title="double-bounce">
<mt-spinner color="#26a2ff" type="double-bounce"></mt-spinner>
</mt-cell>
<mt-cell title="triple-bounce">
<mt-spinner color="#26a2ff" type="triple-bounce"></mt-spinner>
</mt-cell>
<mt-cell title="fading-circle">
<mt-spinner color="#26a2ff" type="fading-circle"></mt-spinner>
</mt-cell>
</div>
</template>
<script>
export default {
name: 'page-spinner',
data() {
return {
};
}
};
</script>
<style lang="css">
@component-namespace page {
@component spinner {
.mint-cell {
min-height: 50px;
}
}
}
</style>
================================================
FILE: example/pages/swipe.vue
================================================
<template>
<div class="page-swipe">
<h1 class="page-title">Swipe</h1>
<p class="page-swipe-desc">基础用法</p>
<mt-swipe :auto="4000">
<mt-swipe-item class="slide1">1</mt-swipe-item>
<mt-swipe-item class="slide2">2</mt-swipe-item>
<mt-swipe-item class="slide3">3</mt-swipe-item>
</mt-swipe>
<p class="page-swipe-desc">隐藏 indicators</p>
<mt-swipe :show-indicators="false">
<mt-swipe-item class="slide1">1</mt-swipe-item>
<mt-swipe-item class="slide2">2</mt-swipe-item>
<mt-swipe-item class="slide3">3</mt-swipe-item>
</mt-swipe>
<p class="page-swipe-desc">取消自动播放</p>
<mt-swipe :auto="0">
<mt-swipe-item class="slide1">1</mt-swipe-item>
<mt-swipe-item class="slide2">2</mt-swipe-item>
<mt-swipe-item class="slide3">3</mt-swipe-item>
</mt-swipe>
<p class="page-swipe-desc">设置默认显示页</p>
<mt-swipe :auto="0" :defaultIndex="1">
<mt-swipe-item class="slide1">1</mt-swipe-item>
<mt-swipe-item class="slide2">2</mt-swipe-item>
<mt-swipe-item class="slide3">3</mt-swipe-item>
</mt-swipe>
<p class="page-swipe-desc">单个幻灯片</p>
<mt-swipe :show-indicators="false">
<mt-swipe-item class="slide1">SINGLE SLIDE</mt-swipe-item>
</mt-swipe>
</div>
</template>
<style>
@component-namespace page {
@component swipe {
@descendent desc {
text-align: center;
color: #666;
margin-bottom: 5px;
}
.mint-swipe {
height: 200px;
color: #fff;
font-size: 30px;
text-align: center;
margin-bottom: 20px;
}
.mint-swipe-item {
line-height: 200px;
}
.slide1 {
background-color: #0089dc;
color: #fff;
}
.slide2 {
background-color: #ffd705;
color: #000;
}
.slide3 {
background-color: #ff2d4b;
color: #fff;
}
}
}
</style>
================================================
FILE: example/pages/switch.vue
================================================
<template>
<div class="page-switch">
<div class="page-title">Switch</div>
<div class="page-part page-switch-padding">
<mt-switch v-model="value1" @change="handleChange">
<label v-text="value1"></label>
</mt-switch>
</div>
<div class="page-part page-switch-padding">
<mt-switch v-model="value4" @change="handleChange">
<label v-text="value4"></label>
</mt-switch>
</div>
<mt-cell :title="'选项 ' + value2">
<mt-switch v-model="value2" @change="handleChange"></mt-switch>
</mt-cell>
<mt-cell :title="'选项 ' + value3">
<mt-switch v-model="value3" @change="handleChange"></mt-switch>
</mt-cell>
</div>
</template>
<script>
export default {
name: 'page-switch',
data() {
return {
value1: false,
value2: false,
value3: true,
value4: true
};
},
methods: {
handleChange(event) {
console.log(event);
}
}
};
</script>
<style lang="css">
@component-namespace page {
@component switch {
@descendent padding {
padding: 0 10px;
}
}
}
</style>
================================================
FILE: example/pages/tab-container.vue
================================================
<template>
<div>
<div class="nav">
<mt-button size="small" @click.native.prevent="active = 'tab-container1'">tab 1</mt-button>
<mt-button size="small" @click.native.prevent="active = 'tab-container2'">tab 2</mt-button>
<mt-button size="small" @click.native.prevent="active = 'tab-container3'">tab 3</mt-button>
</div>
<div class="page-tab-container">
<mt-tab-container class="page-tabbar-tab-container" v-model="active" swipeable>
<mt-tab-container-item id="tab-container1">
<mt-cell v-for="n in 10" title="tab-container 1"></mt-cell>
</mt-tab-container-item>
<mt-tab-container-item id="tab-container2">
<mt-cell v-for="n in 5" title="tab-container 2"></mt-cell>
</mt-tab-container-item>
<mt-tab-container-item id="tab-container3">
<mt-cell v-for="n in 7" title="tab-container 3"></mt-cell>
</mt-tab-container-item>
</mt-tab-container>
</div>
</div>
</template>
<script>
export default {
name: 'page-tab-container',
data() {
return {
active: 'tab-container1'
};
}
};
</script>
<style lang="css" scoped>
.item {
display: inline-block;
}
.nav {
padding: 10px;
}
.link {
color: inherit;
padding: 20px;
display: block;
}
</style>
================================================
FILE: example/pages/tabbar.vue
================================================
<template>
<div class="page-tabbar">
<div class="page-wrap">
<div class="page-title">Tabbar</div>
<div>
<mt-cell class="page-part" title="当前选中" :value="selected" />
</div>
<mt-tab-container class="page-tabbar-container" v-model="selected">
<mt-tab-container-item id="外卖">
<mt-cell v-for="n in 10" :title="'餐厅 ' + n" />
</mt-tab-container-item>
<mt-tab-container-item id="订单">
<mt-cell v-for="n in 5" :title="'订单 ' + n" />
</mt-tab-container-item>
<mt-tab-container-item id="发现">
<mt-cell v-for="n in 7" :title="'发现 ' + n" />
</mt-tab-container-item>
<mt-tab-container-item id="我的">
<div class="page-part">
<mt-cell v-for="n in 12" :title="'我的 ' + n" />
</div>
<router-link to="/">
<mt-button type="danger" size="large">退出</mt-button>
</router-link>
</mt-tab-container-item>
</mt-tab-container>
</div>
<mt-tabbar v-model="selected" fixed>
<mt-tab-item id="外卖">
<img slot="icon" src="../assets/100x100.png">
外卖
</mt-tab-item>
<mt-tab-item id="订单">
<img slot="icon" src="../assets/100x100.png">
订单
</mt-tab-item>
<mt-tab-item id="发现">
<img slot="icon" src="../assets/100x100.png">
发现
</mt-tab-item>
<mt-tab-item id="我的">
<img slot="icon" src="../assets/100x100.png">
我的
</mt-tab-item>
</mt-tabbar>
</div>
</template>
<script>
export default {
name: 'page-tabbar',
data() {
return {
selected: '外卖'
};
}
};
</script>
<style>
.page-tabbar {
overflow: hidden;
height: 100vh;
}
.page-wrap {
overflow: auto;
height: 100%;
padding-bottom: 100px;
}
</style>
================================================
FILE: example/pages/toast.vue
================================================
<template>
<div class="page-toast">
<h1 class="page-title">Toast</h1>
<div class="page-toast-wrapper">
<mt-button @click.native="openToast" size="large">点击弹出 Toast</mt-button>
<mt-button @click.native="openToastWithIcon" size="large">点击弹出带有 icon 的 Toast</mt-button>
<mt-button @click.native="openBottomToast" size="large">自定义 Toast 位置</mt-button>
</div>
</div>
</template>
<style>
@component-namespace page {
@component toast {
@descendent wrapper {
padding: 0 20px;
position: absolute 50% * * *;
width: 100%;
transform: translateY(-50%);
button:not(:last-child) {
margin-bottom: 20px;
}
}
}
}
</style>
<script type="text/babel">
import { Toast } from 'src/index';
export default {
methods: {
openToast() {
Toast('提示信息');
},
openToastWithIcon() {
Toast({
message: '操作成功',
iconClass: 'mintui mintui-success'
});
},
openBottomToast() {
Toast({
message: '提示信息',
position: 'bottom'
});
}
}
};
</script>
================================================
FILE: example/route.js
================================================
import NavConfig from './nav.config.json';
const registerRoute = (config) => {
let route = [];
config.map(nav =>
nav.list.map(page =>
route.push({
name: page.name,
path: page.path,
component: require(`./pages${page.path}`),
meta: {
title: page.title || page.name,
description: page.description
}
})
)
);
return { route, navs: config };
};
const route = registerRoute(NavConfig);
route.route.push({
path: '/',
component: require('./demos.vue')
});
export const navs = route.navs;
export default route.route;
================================================
FILE: lerna.json
================================================
{
"lerna": "2.0.0-beta.18",
"version": "independent"
}
================================================
FILE: lib/index.js
================================================
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define("MINT",["vue"],e):"object"==typeof exports?exports.MINT=e(require("vue")):t.MINT=e(t.Vue)}(this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=202)}([function(t,e){t.exports=function(t,e,n,i,a){var s,r=t=t||{},o=typeof t.default;"object"!==o&&"function"!==o||(s=t,r=t.default);var l="function"==typeof r?r.options:r;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns),i&&(l._scopeId=i);var u;if(a?(u=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},l._ssrRegister=u):n&&(u=n),u){var c=l.functional,d=c?l.render:l.beforeCreate;c?l.render=function(t,e){return u.call(e),d(t,e)}:l.beforeCreate=d?[].concat(d,u):[u]}return{esModule:s,exports:r,options:l}}},function(e,n){e.exports=t},function(t,e,n){"use strict";var i=n(135),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";function i(t,e){if(!t||!e)return!1;if(e.indexOf(" ")!==-1)throw new Error("className should not contain space.");return t.classList?t.classList.contains(e):(" "+t.className+" ").indexOf(" "+e+" ")>-1}function a(t,e){if(t){for(var n=t.className,a=(e||"").split(" "),s=0,r=a.length;s<r;s++){var o=a[s];o&&(t.classList?t.classList.add(o):i(t,o)||(n+=" "+o))}t.classList||(t.className=n)}}function s(t,e){if(t&&e){for(var n=e.split(" "),a=" "+t.className+" ",s=0,r=n.length;s<r;s++){var o=n[s];o&&(t.classList?t.classList.remove(o):i(t,o)&&(a=a.replace(" "+o+" "," ")))}t.classList||(t.className=u(a))}}var r=n(1),o=n.n(r);n.d(e,"c",function(){return h}),e.a=a,e.b=s;var l=o.a.prototype.$isServer,u=(l?0:Number(document.documentMode),function(t){return(t||"").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,"")}),c=function(){return!l&&document.addEventListener?function(t,e,n){t&&e&&n&&t.addEventListener(e,n,!1)}:function(t,e,n){t&&e&&n&&t.attachEvent("on"+e,n)}}(),d=function(){return!l&&document.removeEventListener?function(t,e,n){t&&e&&t.removeEventListener(e,n,!1)}:function(t,e,n){t&&e&&t.detachEvent("on"+e,n)}}(),h=function(t,e,n){var i=function(){n&&n.apply(this,arguments),d(t,e,i)};c(t,e,i)}},function(t,e){},function(t,e,n){var i=n(0)(n(40),null,null,null,null);t.exports=i.exports},function(t,e,n){"use strict";var i,a=n(1),s=n.n(a),r=n(11),o=n(91),l=1,u=[],c=function(t){if(u.indexOf(t)===-1){var e=function(t){var e=t.__vue__;if(!e){var n=t.previousSibling;n.__vue__&&(e=n.__vue__)}return e};s.a.transition(t,{afterEnter:function(t){var n=e(t);n&&n.doAfterOpen&&n.doAfterOpen()},afterLeave:function(t){var n=e(t);n&&n.doAfterClose&&n.doAfterClose()}})}},d=function(){if(!s.a.prototype.$isServer){if(void 0!==i)return i;var t=document.createElement("div");t.style.visibility="hidden",t.style.width="100px",t.style.position="absolute",t.style.top="-9999px",document.body.appendChild(t);var e=t.offsetWidth;t.style.overflow="scroll";var n=document.createElement("div");n.style.width="100%",t.appendChild(n);var a=n.offsetWidth;return t.parentNode.removeChild(t),e-a}},h=function(t){return 3===t.nodeType&&(t=t.nextElementSibling||t.nextSibling,h(t)),t};e.a={props:{value:{type:Boolean,default:!1},transition:{type:String,default:""},openDelay:{},closeDelay:{},zIndex:{},modal:{type:Boolean,default:!1},modalFade:{type:Boolean,default:!0},modalClass:{},lockScroll:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!1},closeOnClickModal:{type:Boolean,default:!1}},created:function(){this.transition&&c(this.transition)},beforeMount:function(){this._popupId="popup-"+l++,o.a.register(this._popupId,this)},beforeDestroy:function(){o.a.deregister(this._popupId),o.a.closeModal(this._popupId),this.modal&&null!==this.bodyOverflow&&"hidden"!==this.bodyOverflow&&(document.body.style.overflow=this.bodyOverflow,document.body.style.paddingRight=this.bodyPaddingRight),this.bodyOverflow=null,this.bodyPaddingRight=null},data:function(){return{opened:!1,bodyOverflow:null,bodyPaddingRight:null,rendered:!1}},watch:{value:function(t){var e=this;if(t){if(this._opening)return;this.rendered?this.open():(this.rendered=!0,s.a.nextTick(function(){e.open()}))}else this.close()}},methods:{open:function(t){var e=this;this.rendered||(this.rendered=!0,this.$emit("input",!0));var i=n.i(r.a)({},this,t,this.$props);this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),clearTimeout(this._openTimer);var a=Number(i.openDelay);a>0?this._openTimer=setTimeout(function(){e._openTimer=null,e.doOpen(i)},a):this.doOpen(i)},doOpen:function(t){if(!this.$isServer&&(!this.willOpen||this.willOpen())&&!this.opened){this._opening=!0,this.visible=!0,this.$emit("input",!0);var e=h(this.$el),n=t.modal,a=t.zIndex;if(a&&(o.a.zIndex=a),n&&(this._closing&&(o.a.closeModal(this._popupId),this._closing=!1),o.a.openModal(this._popupId,o.a.nextZIndex(),e,t.modalClass,t.modalFade),t.lockScroll)){this.bodyOverflow||(this.bodyPaddingRight=document.body.style.paddingRight,this.bodyOverflow=document.body.style.overflow),i=d();var s=document.documentElement.clientHeight<document.body.scrollHeight;i>0&&s&&(document.body.style.paddingRight=i+"px"),document.body.style.overflow="hidden"}"static"===getComputedStyle(e).position&&(e.style.position="absolute"),e.style.zIndex=o.a.nextZIndex(),this.opened=!0,this.onOpen&&this.onOpen(),this.transition||this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var t=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var e=Number(this.closeDelay);e>0?this._closeTimer=setTimeout(function(){t._closeTimer=null,t.doClose()},e):this.doClose()}},doClose:function(){var t=this;this.visible=!1,this.$emit("input",!1),this._closing=!0,this.onClose&&this.onClose(),this.lockScroll&&setTimeout(function(){t.modal&&"hidden"!==t.bodyOverflow&&(document.body.style.overflow=t.bodyOverflow,document.body.style.paddingRight=t.bodyPaddingRight),t.bodyOverflow=null,t.bodyPaddingRight=null},200),this.opened=!1,this.transition||this.doAfterClose()},doAfterClose:function(){o.a.closeModal(this._popupId),this._closing=!1}}}},function(t,e,n){"use strict";var i=n(148),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(149),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(154),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i="@@clickoutsideContext";e.a={bind:function(t,e,n){var a=function(e){n.context&&!t.contains(e.target)&&n.context[t[i].methodName]()};t[i]={documentHandler:a,methodName:e.expression,arg:e.arg||"click"},document.addEventListener(t[i].arg,a)},update:function(t,e){t[i].methodName=e.expression},unbind:function(t){document.removeEventListener(t[i].arg,t[i].documentHandler)},install:function(t){t.directive("clickoutside",{bind:this.bind,unbind:this.unbind})}}},function(t,e,n){"use strict";e.a=function(t){for(var e=arguments,n=1,i=arguments.length;n<i;n++){var a=e[n]||{};for(var s in a)if(a.hasOwnProperty(s)){var r=a[s];void 0!==r&&(t[s]=r)}}return t}},function(t,e){},function(t,e,n){function i(t){n(105)}var a=n(0)(n(42),n(178),i,null,null);t.exports=a.exports},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(60),a=n(55),s=n(2),r=n(56),o=n(59),l=n(54),u=n(83),c=n(9),d=n(86),h=n(84),f=n(85),p=n(72),m=n(87),v=n(80),g=n(57),b=n(77),y=n(69),x=n(53),w=n(8),C=n(82),T=n(81),_=n(78),S=n(7),E=n(76),k=n(88),$=n(63),M=n(70),V=n(64),I=n(67),L=n(58),D=n(61),P=n(62),A=n(73),N=n(92),O=(n.n(N),n(11)),B="2.2.13",F=function(t,e){void 0===e&&(e={}),F.installed||(t.component(i.a.name,i.a),t.component(a.a.name,a.a),t.component(s.a.name,s.a),t.component(r.a.name,r.a),t.component(o.a.name,o.a),t.component(l.a.name,l.a),t.component(u.a.name,u.a),t.component(c.a.name,c.a),t.component(d.a.name,d.a),t.component(h.a.name,h.a),t.component(f.a.name,f.a),t.component(p.a.name,p.a),t.component(m.a.name,m.a),t.component(v.a.name,v.a),t.component(g.a.name,g.a),t.component(b.a.name,b.a),t.component(y.a.name,y.a),t.component(x.a.name,x.a),t.component(w.a.name,w.a),t.component(C.a.name,C.a),t.component(T.a.name,T.a),t.component(_.a.name,_.a),t.component(S.a.name,S.a),t.component(E.a.name,E.a),t.component(L.a.name,L.a),t.component(D.a.name,D.a),t.component(P.a.name,P.a),t.component(A.a.name,A.a),t.use(V.a),t.use(I.a,n.i(O.a)({loading:n(129),attempt:3},e.lazyload)),t.$messagebox=t.prototype.$messagebox=M.a,t.$toast=t.prototype.$toast=k.a,t.$indicator=t.prototype.$indicator=$.a)};"undefined"!=typeof window&&window.Vue&&F(window.Vue),t.exports={install:F,version:B,Header:i.a,Button:a.a,Cell:s.a,CellSwipe:r.a,Field:o.a,Badge:l.a,Switch:u.a,Spinner:c.a,TabItem:d.a,TabContainerItem:h.a,TabContainer:f.a,Navbar:p.a,Tabbar:m.a,Search:v.a,Checklist:g.a,Radio:b.a,Loadmore:y.a,Actionsheet:x.a,Popup:w.a,Swipe:C.a,SwipeItem:T.a,Range:_.a,Picker:S.a,Progress:E.a,Toast:k.a,Indicator:$.a,MessageBox:M.a,InfiniteScroll:V.a,Lazyload:I.a,DatetimePicker:L.a,IndexList:D.a,IndexSection:P.a,PaletteButton:A.a}},function(t,e,n){"use strict";t.exports=function(t,e,n){if("function"==typeof Array.prototype.findIndex)return t.findIndex(e,n);if("function"!=typeof e)throw new TypeError("predicate must be a function");var i=Object(t),a=i.length;if(0===a)return-1;for(var s=0;s<a;s++)if(e.call(n,i[s],s,i))return s;return-1}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(6),a=n(12);n.n(a);e.default={name:"mt-actionsheet",mixins:[i.a],props:{modal:{default:!0},modalFade:{default:!1},lockScroll:{default:!1},closeOnClickModal:{default:!0},cancelText:{type:String,default:"取消"},actions:{type:Array,default:function(){return[]}}},data:function(){return{currentValue:!1}},watch:{currentValue:function(t){this.$emit("input",t)},value:function(t){this.currentValue=t}},methods:{itemClick:function(t,e){t.method&&"function"==typeof t.method&&t.method(t,e),this.currentValue=!1}},mounted:function(){this.value&&(this.rendered=!0,this.currentValue=!0,this.open())}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-badge",props:{color:String,type:{type:String,default:"primary"},size:{type:String,default:"normal"}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-button",methods:{handleClick:function(t){this.$emit("click",t)}},props:{icon:String,disabled:Boolean,nativeType:String,plain:Boolean,type:{type:String,default:"default",validator:function(t){return["default","danger","primary"].indexOf(t)>-1}},size:{type:String,default:"normal",validator:function(t){return["small","normal","large"].indexOf(t)>-1}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),a=n(2),s=n(10);e.default={name:"mt-cell-swipe",components:{XCell:a.a},directives:{Clickoutside:s.a},props:{to:String,left:Array,right:Array,icon:String,title:String,label:String,isLink:Boolean,value:{}},data:function(){return{start:{x:0,y:0}}},mounted:function(){this.wrap=this.$refs.cell.$el.querySelector(".mint-cell-wrapper"),this.leftElm=this.$refs.left,this.rightElm=this.$refs.right,this.leftWrapElm=this.leftElm.parentNode,this.rightWrapElm=this.rightElm.parentNode,this.leftWidth=this.leftElm.getBoundingClientRect().width,this.rightWidth=this.rightElm.getBoundingClientRect().width,this.leftDefaultTransform=this.translate3d(-this.leftWidth-1),this.rightDefaultTransform=this.translate3d(this.rightWidth),this.rightWrapElm.style.webkitTransform=this.rightDefaultTransform,this.leftWrapElm.style.webkitTransform=this.leftDefaultTransform},methods:{resetSwipeStatus:function(){this.swiping=!1,this.opened=!0,this.offsetLeft=0},translate3d:function(t){return"translate3d("+t+"px, 0, 0)"},setAnimations:function(t){this.wrap.style.transitionDuration=t,this.rightWrapElm.style.transitionDuration=t,this.leftWrapElm.style.transitionDuration=t},swipeMove:function(t){void 0===t&&(t=0),this.wrap.style.webkitTransform=this.translate3d(t),this.rightWrapElm.style.webkitTransform=this.translate3d(this.rightWidth+t),this.leftWrapElm.style.webkitTransform=this.translate3d(-this.leftWidth+t),t&&(this.swiping=!0)},swipeLeaveTransition:function(t){var e=this;setTimeout(function(){return e.swipeLeave=!0,t>0&&-e.offsetLeft>.4*e.rightWidth?(e.swipeMove(-e.rightWidth),void e.resetSwipeStatus()):t<0&&e.offsetLeft>.4*e.leftWidth?(e.swipeMove(e.leftWidth),void e.resetSwipeStatus()):(e.swipeMove(0),void n.i(i.c)(e.wrap,"webkitTransitionEnd",function(t){e.wrap.style.webkitTransform="",e.rightWrapElm.style.webkitTransform=e.rightDefaultTransform,e.leftWrapElm.style.webkitTransform=e.leftDefaultTransform,e.swipeLeave=!1,e.swiping=!1}))},0)},startDrag:function(t){t=t.changedTouches?t.changedTouches[0]:t,this.dragging=!0,this.start.x=t.pageX,this.start.y=t.pageY,this.direction=""},onDrag:function(t){if(this.opened)return this.swiping||(this.swipeMove(0),this.setAnimations("")),void(this.opened=!1);if(this.dragging){var e,n=t.changedTouches?t.changedTouches[0]:t,i=n.pageY-this.start.y,a=this.offsetLeft=n.pageX-this.start.x,s=Math.abs(i),r=Math.abs(a);if(this.setAnimations("0ms"),""===this.direction&&(this.direction=r>s?"horizonal":"vertical"),"horizonal"===this.direction){if(t.preventDefault(),t.stopPropagation(),e=!(r<5||r>=5&&s>=1.73*r),!e)return;a<0&&-a>this.rightWidth||a>0&&a>this.leftWidth||a>0&&!this.leftWidth||a<0&&!this.rightWidth||this.swipeMove(a)}}},endDrag:function(){this.direction="",this.setAnimations(""),this.swiping&&this.swipeLeaveTransition(this.offsetLeft>0?-1:1)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-cell",props:{to:[String,Object],icon:String,title:String,label:String,isLink:Boolean,value:{}},computed:{href:function(){var t=this;if(this.to&&!this.added&&this.$router){var e=this.$router.match(this.to);return e.matched.length?(this.$nextTick(function(){t.added=!0,t.$el.addEventListener("click",t.handleClick)}),e.fullPath||e.path):this.to}return this.to}},methods:{handleClick:function(t){t.preventDefault(),this.$router.push(this.href)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2);e.default={name:"mt-checklist",props:{max:Number,title:String,align:String,options:{type:Array,required:!0},value:Array},components:{XCell:i.a},data:function(){return{currentValue:this.value}},computed:{limit:function(){return this.max<this.currentValue.length}},watch:{value:function(t){this.currentValue=t},currentValue:function(t){this.limit&&t.pop(),this.$emit("input",t)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(7),a=n(8),s={Y:"year",M:"month",D:"date",H:"hour",m:"minute"};e.default={name:"mt-datetime-picker",props:{cancelText:{type:String,default:"取消"},confirmText:{type:String,default:"确定"},type:{type:String,default:"datetime"},startDate:{type:Date,default:function(){return new Date((new Date).getFullYear()-10,0,1)}},endDate:{type:Date,default:function(){return new Date((new Date).getFullYear()+10,11,31)}},startHour:{type:Number,default:0},endHour:{type:Number,default:23},yearFormat:{type:String,default:"{value}"},monthFormat:{type:String,default:"{value}"},dateFormat:{type:String,default:"{value}"},hourFormat:{type:String,default:"{value}"},minuteFormat:{type:String,default:"{value}"},visibleItemCount:{type:Number,default:7},closeOnClickModal:{type:Boolean,default:!0},value:null},data:function(){return{visible:!1,startYear:null,endYear:null,startMonth:1,endMonth:12,startDay:1,endDay:31,currentValue:null,selfTriggered:!1,dateSlots:[],shortMonthDates:[],longMonthDates:[],febDates:[],leapFebDates:[]}},components:{"mt-picker":i.a,"mt-popup":a.a},methods:{open:function(){this.visible=!0},close:function(){this.visible=!1},isLeapYear:function(t){return t%400===0||t%100!==0&&t%4===0},isShortMonth:function(t){return[4,6,9,11].indexOf(t)>-1},getMonthEndDay:function(t,e){return this.isShortMonth(e)?30:2===e?this.isLeapYear(t)?29:28:31},getTrueValue:function(t){if(t){for(;isNaN(parseInt(t,10));)t=t.slice(1);return parseInt(t,10)}},getValue:function(t){var e,n=this;if("time"===this.type)e=t.map(function(t){return("0"+n.getTrueValue(t)).slice(-2)}).join(":");else{var i=this.getTrueValue(t[0]),a=this.getTrueValue(t[1]),s=this.getTrueValue(t[2]),r=this.getMonthEndDay(i,a);s>r&&(this.selfTriggered=!0,s=1);var o=this.typeStr.indexOf("H")>-1?this.getTrueValue(t[this.typeStr.indexOf("H")]):0,l=this.typeStr.indexOf("m")>-1?this.getTrueValue(t[this.typeStr.indexOf("m")]):0;e=new Date(i,a-1,s,o,l)}return e},onChange:function(t){var e=t.$children.filter(function(t){return void 0!==t.currentValue}).map(function(t){return t.currentValue});return this.selfTriggered?void(this.selfTriggered=!1):void(0!==e.length&&(this.currentValue=this.getValue(e),this.handleValueChange()))},fillValues:function(t,e,n){for(var i=this,a=[],r=e;r<=n;r++)r<10?a.push(i[s[t]+"Format"].replace("{value}",("0"+r).slice(-2))):a.push(i[s[t]+"Format"].replace("{value}",r));return a},pushSlots:function(t,e,n,i){t.push({flex:1,values:this.fillValues(e,n,i)})},generateSlots:function(){var t=this,e=[],n={Y:this.rims.year,M:this.rims.month,D:this.rims.date,H:this.rims.hour,m:this.rims.min},i=this.typeStr.split("");i.forEach(function(i){n[i]&&t.pushSlots.apply(null,[e,i].concat(n[i]))}),"Hm"===this.typeStr&&e.splice(1,0,{divider:!0,content:":"}),this.dateSlots=e,this.handleExceededValue()},handleExceededValue:function(){var t=this,e=[];if("time"===this.type){var n=this.currentValue.split(":");e=[this.hourFormat.replace("{value}",n[0]),this.minuteFormat.replace("{value}",n[1])]}else e=[this.yearFormat.replace("{value}",this.getYear(this.currentValue)),this.monthFormat.replace("{value}",("0"+this.getMonth(this.currentValue)).slice(-2)),this.dateFormat.replace("{value}",("0"+this.getDate(this.currentValue)).slice(-2))],"datetime"===this.type&&e.push(this.hourFormat.replace("{value}",("0"+this.getHour(this.currentValue)).slice(-2)),this.minuteFormat.replace("{value}",("0"+this.getMinute(this.currentValue)).slice(-2)));this.dateSlots.filter(function(t){return void 0!==t.values}).map(function(t){return t.values}).forEach(function(t,n){t.indexOf(e[n])===-1&&(e[n]=t[0])}),this.$nextTick(function(){t.setSlotsByValues(e)})},setSlotsByValues:function(t){var e=this.$refs.picker.setSlotValue;"time"===this.type&&(e(0,t[0]),e(1,t[1])),"time"!==this.type&&(e(0,t[0]),e(1,t[1]),e(2,t[2]),"datetime"===this.type&&(e(3,t[3]),e(4,t[4]))),[].forEach.call(this.$refs.picker.$children,function(t){return t.doOnValueChange()})},rimDetect:function(t,e){var n="start"===e?0:1,i="start"===e?this.startDate:this.endDate;this.getYear(this.currentValue)===i.getFullYear()&&(t.month[n]=i.getMonth()+1,this.getMonth(this.currentValue)===i.getMonth()+1&&(t.date[n]=i.getDate(),this.getDate(this.currentValue)===i.getDate()&&(t.hour[n]=i.getHours(),this.getHour(this.currentValue)===i.getHours()&&(t.min[n]=i.getMinutes()))))},isDateString:function(t){return/\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}/.test(t)},getYear:function(t){return this.isDateString(t)?t.split(" ")[0].split(/-|\/|\./)[0]:t.getFullYear()},getMonth:function(t){return this.isDateString(t)?t.split(" ")[0].split(/-|\/|\./)[1]:t.getMonth()+1},getDate:function(t){return this.isDateString(t)?t.split(" ")[0].split(/-|\/|\./)[2]:t.getDate()},getHour:function(t){if(this.isDateString(t)){var e=t.split(" ")[1]||"00:00:00";return e.split(":")[0]}return t.getHours()},getMinute:function(t){if(this.isDateString(t)){var e=t.split(" ")[1]||"00:00:00";return e.split(":")[1]}return t.getMinutes()},confirm:function(){this.visible=!1,this.$emit("confirm",this.currentValue)},handleValueChange:function(){this.$emit("input",this.currentValue)}},computed:{rims:function(){if(!this.currentValue)return{year:[],month:[],date:[],hour:[],min:[]};var t;return"time"===this.type?t={hour:[this.startHour,this.endHour],min:[0,59]}:(t={year:[this.startDate.getFullYear(),this.endDate.getFullYear()],month:[1,12],date:[1,this.getMonthEndDay(this.getYear(this.currentValue),this.getMonth(this.currentValue))],hour:[0,23],min:[0,59]},this.rimDetect(t,"start"),this.rimDetect(t,"end"),t)},typeStr:function(){return"time"===this.type?"Hm":"date"===this.type?"YMD":"YMDHm"}},watch:{value:function(t){this.currentValue=t},rims:function(){this.generateSlots()},visible:function(t){this.$emit("visible-change",t)}},mounted:function(){this.currentValue=this.value,this.value||(this.type.indexOf("date")>-1?this.currentValue=this.startDate:this.currentValue=("0"+this.startHour).slice(-2)+":00"),this.generateSlots()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),a=n(10);e.default={name:"mt-field",data:function(){return{active:!1,currentValue:this.value}},directives:{Clickoutside:a.a},props:{type:{type:String,default:"text"},rows:String,label:String,placeholder:String,readonly:Boolean,disabled:Boolean,disableClear:Boolean,state:{type:String,default:"default"},value:{},attr:Object},components:{XCell:i.a},methods:{doCloseActive:function(){this.active=!1},handleInput:function(t){this.currentValue=t.target.value},handleClear:function(){this.disabled||this.readonly||(this.currentValue="")}},watch:{value:function(t){this.currentValue=t},currentValue:function(t){this.$emit("input",t)},attr:{immediate:!0,handler:function(t){var e=this;this.$nextTick(function(){var n=[e.$refs.input,e.$refs.textarea];n.forEach(function(e){e&&t&&Object.keys(t).map(function(n){return e.setAttribute(n,t[n])})})})}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-header",props:{fixed:Boolean,title:String}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-index-list",props:{height:Number,showIndicator:{type:Boolean,default:!0}},data:function(){return{sections:[],navWidth:0,indicatorTime:null,moving:!1,firstSection:null,currentIndicator:"",currentHeight:this.height,navOffsetX:0}},watch:{sections:function(){this.init()},height:function(t){t&&(this.currentHeight=t)}},methods:{init:function(){var t=this;this.$nextTick(function(){t.navWidth=t.$refs.nav.clientWidth});var e=this.$refs.content.getElementsByTagName("li");e.length>0&&(this.firstSection=e[0])},handleTouchStart:function(t){"LI"===t.target.tagName&&(this.navOffsetX=t.changedTouches[0].clientX,this.scrollList(t.changedTouches[0].clientY),this.indicatorTime&&clearTimeout(this.indicatorTime),this.moving=!0,window.addEventListener("touchmove",this.handleTouchMove),window.addEventListener("touchend",this.handleTouchEnd))},handleTouchMove:function(t){t.preventDefault(),this.scrollList(t.changedTouches[0].clientY)},handleTouchEnd:function(){var t=this;this.indicatorTime=setTimeout(function(){t.moving=!1,t.currentIndicator=""},500),window.removeEventListener("touchmove",this.handleTouchMove),window.removeEventListener("touchend",this.handleTouchEnd)},scrollList:function(t){var e=document.elementFromPoint(this.navOffsetX,t);if(e&&e.classList.contains("mint-indexlist-navitem")){this.currentIndicator=e.innerText;var n,i=this.sections.filter(function(t){return t.index===e.innerText});i.length>0&&(n=i[0].$el,this.$refs.content.scrollTop=n.getBoundingClientRect().top-this.firstSection.getBoundingClientRect().top)}}},mounted:function(){var t=this;this.currentHeight||(window.scrollTo(0,0),requestAnimationFrame(function(){t.currentHeight=document.documentElement.clientHeight-t.$refs.content.getBoundingClientRect().top})),this.init()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-index-section",props:{index:{type:String,required:!0}},mounted:function(){this.$parent.sections.push(this)},beforeDestroy:function(){var t=this.$parent.sections.indexOf(this);t>-1&&this.$parent.sections.splice(t,1)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(9);e.default={data:function(){return{visible:!1}},components:{Spinner:i.a},computed:{convertedSpinnerType:function(){switch(this.spinnerType){case"double-bounce":return 1;case"triple-bounce":return 2;case"fading-circle":return 3;default:return 0}}},props:{text:String,spinnerType:{type:String,default:"snake"}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(13),a=n.n(i);e.default={name:"mt-loadmore",components:{spinner:a.a},props:{maxDistance:{type:Number,default:0},autoFill:{type:Boolean,default:!0},distanceIndex:{type:Number,default:2},topPullText:{type:String,default:"下拉刷新"},topDropText:{type:String,default:"释放更新"},topLoadingText:{type:String,default:"加载中..."},topDistance:{type:Number,default:70},topMethod:{type:Function},bottomPullText:{type:String,default:"上拉刷新"},bottomDropText:{type:String,default:"释放更新"},bottomLoadingText:{type:String,default:"加载中..."},bottomDistance:{type:Number,default:70},bottomMethod:{type:Function},bottomAllLoaded:{type:Boolean,default:!1}},data:function(){return{translate:0,scrollEventTarget:null,containerFilled:!1,topText:"",topDropped:!1,bottomText:"",bottomDropped:!1,bottomReached:!1,direction:"",startY:0,startScrollTop:0,currentY:0,topStatus:"",bottomStatus:""}},computed:{transform:function(){return 0===this.translate?null:"translate3d(0, "+this.translate+"px, 0)"}},watch:{topStatus:function(t){switch(this.$emit("top-status-change",t),t){case"pull":this.topText=this.topPullText;break;case"drop":this.topText=this.topDropText;break;case"loading":this.topText=this.topLoadingText}},bottomStatus:function(t){switch(this.$emit("bottom-status-change",t),t){case"pull":this.bottomText=this.bottomPullText;break;case"drop":this.bottomText=this.bottomDropText;break;case"loading":this.bottomText=this.bottomLoadingText}}},methods:{onTopLoaded:function(){var t=this;this.translate=0,setTimeout(function(){t.topStatus="pull"},200)},onBottomLoaded:function(){var t=this;this.bottomStatus="pull",this.bottomDropped=!1,this.$nextTick(function(){t.scrollEventTarget===window?document.body.scrollTop+=50:t.scrollEventTarget.scrollTop+=50,t.translate=0}),this.bottomAllLoaded||this.containerFilled||this.fillContainer()},getScrollEventTarget:function(t){for(var e=t;e&&"HTML"!==e.tagName&&"BODY"!==e.tagName&&1===e.nodeType;){var n=document.defaultView.getComputedStyle(e).overflowY;if("scroll"===n||"auto"===n)return e;e=e.parentNode}return window},getScrollTop:function(t){return t===window?Math.max(window.pageYOffset||0,document.documentElement.scrollTop):t.scrollTop},bindTouchEvents:function(){this.$el.addEventListener("touchstart",this.handleTouchStart),this.$el.addEventListener("touchmove",this.handleTouchMove),this.$el.addEventListener("touchend",this.handleTouchEnd)},init:function(){this.topStatus="pull",this.bottomStatus="pull",this.topText=this.topPullText,this.scrollEventTarget=this.getScrollEventTarget(this.$el),"function"==typeof this.bottomMethod&&(this.fillContainer(),this.bindTouchEvents()),"function"==typeof this.topMethod&&this.bindTouchEvents()},fillContainer:function(){var t=this;this.autoFill&&this.$nextTick(function(){t.scrollEventTarget===window?t.containerFilled=t.$el.getBoundingClientRect().bottom>=document.documentElement.getBoundingClientRect().bottom:t.containerFilled=t.$el.getBoundingClientRect().bottom>=t.scrollEventTarget.getBoundingClientRect().bottom,t.containerFilled||(t.bottomStatus="loading",t.bottomMethod())})},checkBottomReached:function(){return this.scrollEventTarget===window?document.body.scrollTop+document.documentElement.clientHeight>=document.body.scrollHeight:this.$el.getBoundingClientRect().bottom<=this.scrollEventTarget.getBoundingClientRect().bottom+1},handleTouchStart:function(t){this.startY=t.touches[0].clientY,this.startScrollTop=this.getScrollTop(this.scrollEventTarget),this.bottomReached=!1,"loading"!==this.topStatus&&(this.topStatus="pull",this.topDropped=!1),"loading"!==this.bottomStatus&&(this.bottomStatus="pull",this.bottomDropped=!1)},handleTouchMove:function(t){if(!(this.startY<this.$el.getBoundingClientRect().top&&this.startY>this.$el.getBoundingClientRect().bottom)){this.currentY=t.touches[0].clientY;var e=(this.currentY-this.startY)/this.distanceIndex;this.direction=e>0?"down":"up","function"==typeof this.topMethod&&"down"===this.direction&&0===this.getScrollTop(this.scrollEventTarget)&&"loading"!==this.topStatus&&(t.preventDefault(),t.stopPropagation(),this.maxDistance>0?this.translate=e<=this.maxDistance?e-this.startScrollTop:this.translate:this.translate=e-this.startScrollTop,this.translate<0&&(this.translate=0),this.topStatus=this.translate>=this.topDistance?"drop":"pull"),"up"===this.direction&&(this.bottomReached=this.bottomReached||this.checkBottomReached()),"function"==typeof this.bottomMethod&&"up"===this.direction&&this.bottomReached&&"loading"!==this.bottomStatus&&!this.bottomAllLoaded&&(t.preventDefault(),t.stopPropagation(),this.maxDistance>0?this.translate=Math.abs(e)<=this.maxDistance?this.getScrollTop(this.scrollEventTarget)-this.startScrollTop+e:this.translate:this.translate=this.getScrollTop(this.scrollEventTarget)-this.startScrollTop+e,this.translate>0&&(this.translate=0),this.bottomStatus=-this.translate>=this.bottomDistance?"drop":"pull"),this.$emit("translate-change",this.translate)}},handleTouchEnd:function(){"down"===this.direction&&0===this.getScrollTop(this.scrollEventTarget)&&this.translate>0&&(this.topDropped=!0,"drop"===this.topStatus?(this.translate="50",this.topStatus="loading",this.topMethod()):(this.translate="0",this.topStatus="pull")),"up"===this.direction&&this.bottomReached&&this.translate<0&&(this.bottomDropped=!0,this.bottomReached=!1,"drop"===this.bottomStatus?(this.translate="-50",this.bottomStatus="loading",this.bottomMethod()):(this.translate="0",this.bottomStatus="pull")),this.$emit("translate-change",this.translate),this.direction=""}},mounted:function(){this.init()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(6),a="确定",s="取消";e.default={mixins:[i.a],props:{modal:{default:!0},showClose:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!1},closeOnClickModal:{default:!0},closeOnPressEscape:{default:!0},inputType:{type:String,default:"text"}},computed:{confirmButtonClasses:function(){var t="mint-msgbox-btn mint-msgbox-confirm "+this.confirmButtonClass;return this.confirmButtonHighlight&&(t+=" mint-msgbox-confirm-highlight"),t},cancelButtonClasses:function(){var t="mint-msgbox-btn mint-msgbox-cancel "+this.cancelButtonClass;return this.cancelButtonHighlight&&(t+=" mint-msgbox-cancel-highlight"),t}},methods:{doClose:function(){var t=this;this.value=!1,this._closing=!0,this.onClose&&this.onClose(),setTimeout(function(){t.modal&&"hidden"!==t.bodyOverflow&&(document.body.style.overflow=t.bodyOverflow,document.body.style.paddingRight=t.bodyPaddingRight),t.bodyOverflow=null,t.bodyPaddingRight=null},200),this.opened=!1,this.transition||this.doAfterClose()},handleAction:function(t){if("prompt"!==this.$type||"confirm"!==t||this.validate()){var e=this.callback;this.value=!1,e(t)}},validate:function(){if("prompt"===this.$type){var t=this.inputPattern;if(t&&!t.test(this.inputValue||""))return this.editorErrorMessage=this.inputErrorMessage||"输入的数据不合法!",this.$refs.input.classList.add("invalid"),!1;var e=this.inputValidator;if("function"==typeof e){var n=e(this.inputValue);if(n===!1)return this.editorErrorMessage=this.inputErrorMessage||"输入的数据不合法!",
this.$refs.input.classList.add("invalid"),!1;if("string"==typeof n)return this.editorErrorMessage=n,!1}}return this.editorErrorMessage="",this.$refs.input.classList.remove("invalid"),!0},handleInputType:function(t){"range"!==t&&this.$refs.input&&(this.$refs.input.type=t)}},watch:{inputValue:function(){"prompt"===this.$type&&this.validate()},value:function(t){var e=this;this.handleInputType(this.inputType),t&&"prompt"===this.$type&&setTimeout(function(){e.$refs.input&&e.$refs.input.focus()},500)},inputType:function(t){this.handleInputType(t)}},data:function(){return{title:"",message:"",type:"",showInput:!1,inputValue:null,inputPlaceholder:"",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,confirmButtonText:a,cancelButtonText:s,confirmButtonClass:"",confirmButtonDisabled:!1,cancelButtonClass:"",editorErrorMessage:null,callback:null}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-navbar",props:{fixed:Boolean,value:{}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-palette-button",data:function(){return{transforming:!1,expanded:!1}},props:{content:{type:String,default:""},offset:{type:Number,default:Math.PI/4},direction:{type:String,default:"lt"},radius:{type:Number,default:90},mainButtonStyle:{type:String,default:""}},methods:{toggle:function(t){this.transforming||(this.expanded?this.collapse(t):this.expand(t))},onMainAnimationEnd:function(t){this.transforming=!1,this.$emit("expanded")},expand:function(t){this.expanded=!0,this.transforming=!0,this.$emit("expand",t)},collapse:function(t){this.expanded=!1,this.$emit("collapse",t)}},mounted:function(){var t=this;this.slotChildren=[];for(var e=0;e<this.$slots.default.length;e++)3!==t.$slots.default[e].elm.nodeType&&t.slotChildren.push(t.$slots.default[e]);for(var n="",i=Math.PI*(3+Math.max(["lt","t","rt","r","rb","b","lb","l"].indexOf(this.direction),0))/4,a=0;a<this.slotChildren.length;a++){var s=(Math.PI-2*t.offset)/(t.slotChildren.length-1)*a+t.offset+i,r=(Math.cos(s)*t.radius).toFixed(2),o=(Math.sin(s)*t.radius).toFixed(2),l=".expand .palette-button-"+t._uid+"-sub-"+a+"{transform:translate("+r+"px,"+o+"px) rotate(720deg);transition-delay:"+.03*a+"s}";n+=l,t.slotChildren[a].elm.className+=" palette-button-"+t._uid+"-sub-"+a}this.styleNode=document.createElement("style"),this.styleNode.type="text/css",this.styleNode.rel="stylesheet",this.styleNode.title="palette button style",this.styleNode.appendChild(document.createTextNode(n)),document.getElementsByTagName("head")[0].appendChild(this.styleNode)},destroyed:function(){this.styleNode&&this.styleNode.parentNode.removeChild(this.styleNode)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(74),a=n(75),s=n(3),r=n(90),o=n(1),l=n.n(o);l.a.prototype.$isServer||n(128);var u=function(t,e){if(t){var n=a.a.transformProperty;t.style[n]=t.style[n].replace(/rotateX\(.+?deg\)/gi,"")+" rotateX("+e+"deg)"}},c=36,d={3:-45,5:-20,7:-15};e.default={name:"picker-slot",props:{values:{type:Array,default:function(){return[]}},value:{},visibleItemCount:{type:Number,default:5},valueKey:String,rotateEffect:{type:Boolean,default:!1},divider:{type:Boolean,default:!1},textAlign:{type:String,default:"center"},flex:{},className:{},content:{},itemHeight:{type:Number,default:c},defaultIndex:{type:Number,default:0,require:!1}},data:function(){return{currentValue:this.value,mutatingValues:this.values,dragging:!1,animationFrameId:null}},mixins:[r.a],computed:{flexStyle:function(){return{flex:this.flex,"-webkit-box-flex":this.flex,"-moz-box-flex":this.flex,"-ms-flex":this.flex}},classNames:function(){var t="picker-slot-",e=[];this.rotateEffect&&e.push(t+"absolute");var n=this.textAlign||"center";return e.push(t+n),this.divider&&e.push(t+"divider"),this.className&&e.push(this.className),e.join(" ")},contentHeight:function(){return this.itemHeight*this.visibleItemCount},valueIndex:function(){var t=this,e=this.valueKey;if(this.currentValue instanceof Object){for(var n=0,i=this.mutatingValues.length;n<i;n++)if(t.currentValue[e]===t.mutatingValues[n][e])return n;return-1}return this.mutatingValues.indexOf(this.currentValue)},dragRange:function(){var t=this.mutatingValues,e=this.visibleItemCount,n=this.itemHeight;return[-n*(t.length-Math.ceil(e/2)),n*Math.floor(e/2)]},minTranslateY:function(){return this.itemHeight*(Math.ceil(this.visibleItemCount/2)-this.mutatingValues.length)},maxTranslateY:function(){return this.itemHeight*Math.floor(this.visibleItemCount/2)}},methods:{value2Translate:function(t){var e=this.mutatingValues,n=e.indexOf(t),i=Math.floor(this.visibleItemCount/2),a=this.itemHeight;if(n!==-1)return(n-i)*-a},translate2Value:function(t){var e=this.itemHeight;t=Math.round(t/e)*e;var n=-(t-Math.floor(this.visibleItemCount/2)*e)/e;return this.mutatingValues[n]},updateRotate:function(t,e){var i=this;if(!this.divider){var r=this.dragRange,o=this.$refs.wrapper;e||(e=o.querySelectorAll(".picker-item")),void 0===t&&(t=a.a.getElementTranslate(o).top);var l=Math.ceil(this.visibleItemCount/2),c=d[this.visibleItemCount]||-20;[].forEach.call(e,function(e,a){var o=a*i.itemHeight,d=r[1]-t,h=o-d,f=h/i.itemHeight,p=c*f;p>180&&(p=180),p<-180&&(p=-180),u(e,p),Math.abs(f)>l?n.i(s.a)(e,"picker-item-far"):n.i(s.b)(e,"picker-item-far")})}},planUpdateRotate:function(){var t=this,e=this.$refs.wrapper;cancelAnimationFrame(this.animationFrameId),this.animationFrameId=requestAnimationFrame(function(){t.updateRotate()}),n.i(s.c)(e,a.a.transitionEndProperty,function(){cancelAnimationFrame(t.animationFrameId),t.animationFrameId=null})},initEvents:function(){var t,e,s,r=this,o=this.$refs.wrapper,l={};n.i(i.a)(o,{start:function(t){cancelAnimationFrame(r.animationFrameId),r.animationFrameId=null,l={range:r.dragRange,start:new Date,startLeft:t.pageX,startTop:t.pageY,startTranslateTop:a.a.getElementTranslate(o).top},s=o.querySelectorAll(".picker-item")},drag:function(n){r.dragging=!0,l.left=n.pageX,l.top=n.pageY;var i=l.top-l.startTop,u=l.startTranslateTop+i;a.a.translateElement(o,null,u),t=u-e||u,e=u,r.rotateEffect&&r.updateRotate(e,s)},end:function(e){r.dragging=!1;var n,i,s=7,u=a.a.getElementTranslate(o).top,c=new Date-l.start,d=Math.abs(l.startTranslateTop-u),h=r.itemHeight,f=r.visibleItemCount;d<6&&(n=r.$el.getBoundingClientRect(),i=Math.floor((e.clientY-(n.top+(f-1)*h/2))/h)*h,i>r.maxTranslateY&&(i=r.maxTranslateY),t=0,u-=i);var p;c<300&&(p=u+t*s);var m=l.range;r.$nextTick(function(){var t;t=p?Math.round(p/h)*h:Math.round(u/h)*h,t=Math.max(Math.min(t,m[1]),m[0]),a.a.translateElement(o,null,t),r.currentValue=r.translate2Value(t),r.rotateEffect&&r.planUpdateRotate()}),l={}}})},doOnValueChange:function(){var t=this.currentValue,e=this.$refs.wrapper;a.a.translateElement(e,null,this.value2Translate(t))},doOnValuesChange:function(){var t=this,e=this.$el,n=e.querySelectorAll(".picker-item");[].forEach.call(n,function(e,n){a.a.translateElement(e,null,t.itemHeight*n)}),this.rotateEffect&&this.planUpdateRotate()}},mounted:function(){this.ready=!0,this.divider||(this.initEvents(),this.doOnValueChange()),this.rotateEffect&&this.doOnValuesChange()},watch:{values:function(t){this.mutatingValues=t},mutatingValues:function(t){var e=this;this.valueIndex===-1&&(this.currentValue=(t||[])[0]),this.rotateEffect&&this.$nextTick(function(){e.doOnValuesChange()})},currentValue:function(t){this.doOnValueChange(),this.rotateEffect&&this.planUpdateRotate(),this.$emit("input",t),this.dispatch("picker","slotValueChange",this)},defaultIndex:function(t){void 0!==this.mutatingValues[t]&&this.mutatingValues.length>=t+1&&(this.currentValue=this.mutatingValues[t])}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-picker",componentName:"picker",props:{slots:{type:Array},showToolbar:{type:Boolean,default:!1},visibleItemCount:{type:Number,default:5},valueKey:String,rotateEffect:{type:Boolean,default:!1},itemHeight:{type:Number,default:36}},created:function(){this.$on("slotValueChange",this.slotValueChange),this.slotValueChange()},methods:{slotValueChange:function(){this.$emit("change",this,this.values)},getSlot:function(t){var e,n=this.slots||[],i=0,a=this.$children.filter(function(t){return"picker-slot"===t.$options.name});return n.forEach(function(n,s){n.divider||(t===i&&(e=a[s]),i++)}),e},getSlotValue:function(t){var e=this.getSlot(t);return e?e.currentValue:null},setSlotValue:function(t,e){var n=this.getSlot(t);n&&(n.currentValue=e)},getSlotValues:function(t){var e=this.getSlot(t);return e?e.mutatingValues:null},setSlotValues:function(t,e){var n=this.getSlot(t);n&&(n.mutatingValues=e)},getValues:function(){return this.values},setValues:function(t){var e=this,n=this.slotCount;if(t=t||[],n!==t.length)throw new Error("values length is not equal slot count.");t.forEach(function(t,n){e.setSlotValue(n,t)})}},computed:{values:{get:function(){var t=this.slots||[],e=[],n=0;return t.forEach(function(t){t.divider||(t.valueIndex=n++,e[t.valueIndex]=(t.values||[])[t.defaultIndex||0])}),e}},slotCount:function(){var t=this.slots||[],e=0;return t.forEach(function(t){t.divider||e++}),e}},components:{PickerSlot:n(147)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(6),a=n(1),s=n.n(a);s.a.prototype.$isServer||n(12),e.default={name:"mt-popup",mixins:[i.a],props:{modal:{default:!0},modalFade:{default:!1},lockScroll:{default:!1},closeOnClickModal:{default:!0},popupTransition:{type:String,default:"popup-slide"},position:{type:String,default:""}},data:function(){return{currentValue:!1,currentTransition:this.popupTransition}},watch:{currentValue:function(t){this.$emit("input",t)},value:function(t){this.currentValue=t}},beforeMount:function(){"popup-fade"!==this.popupTransition&&(this.currentTransition="popup-slide-"+this.position)},mounted:function(){this.value&&(this.rendered=!0,this.currentValue=!0,this.open())}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-progress",props:{value:Number,barHeight:{type:Number,default:3}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2);e.default={name:"mt-radio",props:{title:String,align:String,options:{type:Array,required:!0},value:String},data:function(){return{currentValue:this.value}},watch:{value:function(t){this.currentValue=t},currentValue:function(t){this.$emit("input",t)}},components:{XCell:i.a}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(79);e.default={name:"mt-range",props:{min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},disabled:{type:Boolean,default:!1},value:{type:Number},barHeight:{type:Number,default:1}},computed:{progress:function(){var t=this.value;return"undefined"==typeof t||null===t?0:Math.floor((t-this.min)/(this.max-this.min)*100)}},mounted:function(){var t=this,e=this.$refs.thumb,a=this.$refs.content,s=function(){var t=a.getBoundingClientRect(),n=e.getBoundingClientRect();return{left:n.left-t.left,top:n.top-t.top,thumbBoxLeft:n.left}},r={};n.i(i.a)(e,{start:function(e){if(!t.disabled){var n=s(),i=e.clientX-n.thumbBoxLeft;r={thumbStartLeft:n.left,thumbStartTop:n.top,thumbClickDetalX:i}}},drag:function(e){if(!t.disabled){var n=a.getBoundingClientRect(),i=e.pageX-n.left-r.thumbStartLeft-r.thumbClickDetalX,s=Math.ceil((t.max-t.min)/t.step),o=r.thumbStartLeft+i-(r.thumbStartLeft+i)%(n.width/s),l=o/n.width;l<0?l=0:l>1&&(l=1),t.$emit("input",Math.round(t.min+l*(t.max-t.min)))}},end:function(){t.disabled||(t.$emit("change",t.value),r={})}})}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(2);e.default={name:"mt-search",data:function(){return{visible:!1,currentValue:this.value}},components:{XCell:i.a},watch:{currentValue:function(t){this.$emit("input",t)},value:function(t){this.currentValue=t}},props:{value:String,autofocus:Boolean,show:Boolean,cancelText:{default:"取消"},placeholder:{default:"搜索"},result:Array},mounted:function(){this.autofocus&&this.$refs.input.focus()}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=["snake","double-bounce","triple-bounce","fading-circle"],a=function(t){return"[object Number]"==={}.toString.call(t)?(i.length<=t&&(console.warn("'"+t+"' spinner not found, use the default spinner."),t=0),i[t]):(i.indexOf(t)===-1&&(console.warn("'"+t+"' spinner not found, use the default spinner."),t=i[0]),t)};e.default={name:"mt-spinner",computed:{spinner:function(){return"spinner-"+a(this.type)}},components:{SpinnerSnake:n(156),SpinnerDoubleBounce:n(155),SpinnerTripleBounce:n(157),SpinnerFadingCircle:n(13)},props:{type:{default:0},size:{type:Number,default:28},color:{type:String,default:"#ccc"}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={computed:{spinnerColor:function(){return this.color||this.$parent.color||"#ccc"},spinnerSize:function(){return(this.size||this.$parent.size||28)+"px"}},props:{size:Number,color:String}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),a=n.n(i);e.default={name:"double-bounce",mixins:[a.a]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),a=n.n(i);e.default={name:"fading-circle",mixins:[a.a],created:function(){if(!this.$isServer){this.styleNode=document.createElement("style");var t=".circle-color-"+this._uid+" > div::before { background-color: "+this.spinnerColor+"; }";this.styleNode.type="text/css",this.styleNode.rel="stylesheet",this.styleNode.title="fading circle style",document.getElementsByTagName("head")[0].appendChild(this.styleNode),this.styleNode.appendChild(document.createTextNode(t))}},destroyed:function(){this.styleNode&&this.styleNode.parentNode.removeChild(this.styleNode)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),a=n.n(i);e.default={name:"snake",mixins:[a.a]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),a=n.n(i);e.default={name:"triple-bounce",mixins:[a.a],computed:{spinnerSize:function(){return(this.size||this.$parent.size||28)/3+"px"},bounceStyle:function(){return{width:this.spinnerSize,height:this.spinnerSize,backgroundColor:this.spinnerColor}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-swipe-item",mounted:function(){this.$parent&&this.$parent.swipeItemCreated(this)},destroyed:function(){this.$parent&&this.$parent.swipeItemDestroyed(this)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(3);e.default={name:"mt-swipe",created:function(){this.dragState={}},data:function(){return{ready:!1,dragging:!1,userScrolling:!1,animating:!1,index:0,pages:[],timer:null,reInitTimer:null,noDrag:!1,isDone:!1}},props:{speed:{type:Number,default:300},defaultIndex:{type:Number,default:0},auto:{type:Number,default:3e3},continuous:{type:Boolean,default:!0},showIndicators:{type:Boolean,default:!0},noDragWhenSingle:{type:Boolean,default:!0},prevent:{type:Boolean,default:!1},stopPropagation:{type:Boolean,default:!1}},watch:{index:function(t){this.$emit("change",t)}},methods:{swipeItemCreated:function(){var t=this;this.ready&&(clearTimeout(this.reInitTimer),this.reInitTimer=setTimeout(function(){t.reInitPages()},100))},swipeItemDestroyed:function(){var t=this;this.ready&&(clearTimeout(this.reInitTimer),this.reInitTimer=setTimeout(function(){t.reInitPages()},100))},rafTranslate:function(t,e,n,i,a){function s(){return Math.abs(o-n)<.5?(this.animating=!1,o=n,t.style.webkitTransform="",a&&(a.style.webkitTransform=""),cancelAnimationFrame(l),void(i&&i())):(o=r*o+(1-r)*n,t.style.webkitTransform="translate3d("+o+"px, 0, 0)",a&&(a.style.webkitTransform="translate3d("+(o-n)+"px, 0, 0)"),void(l=requestAnimationFrame(s.bind(this))))}var r=.88;this.animating=!0;var o=e,l=0;s.call(this)},translate:function(t,e,a,s){var r=arguments,o=this;if(a){this.animating=!0,t.style.webkitTransition="-webkit-transform "+a+"ms ease-in-out",setTimeout(function(){t.style.webkitTransform="translate3d("+e+"px, 0, 0)"},50);var l=!1,u=function(){l||(l=!0,o.animating=!1,t.style.webkitTransition="",t.style.webkitTransform="",s&&s.apply(o,r))};n.i(i.c)(t,"webkitTransitionEnd",u),setTimeout(u,a+100)}else t.style.webkitTransition="",t.style.webkitTransform="translate3d("+e+"px, 0, 0)"},reInitPages:function(){var t=this.$children;this.noDrag=1===t.length&&this.noDragWhenSingle;var e=[],a=Math.floor(this.defaultIndex),s=a>=0&&a<t.length?a:0;this.index=s,t.forEach(function(t,a){e.push(t.$el),n.i(i.b)(t.$el,"is-active"),a===s&&n.i(i.a)(t.$el,"is-active")}),this.pages=e},doAnimate:function(t,e){var a=this;if(0!==this.$children.length&&(e||!(this.$children.length<2))){var s,r,o,l,u,c,d=this.speed||300,h=this.index,f=this.pages,p=f.length;e?(s=e.prevPage,o=e.currentPage,r=e.nextPage,l=e.pageWidth,u=e.offsetLeft,c=e.speedX):(l=this.$el.clientWidth,o=f[h],s=f[h-1],r=f[h+1],this.continuous&&f.length>1&&(s||(s=f[f.length-1]),r||(r=f[0])),s&&(s.style.display="block",this.translate(s,-l)),r&&(r.style.display="block",this.translate(r,l)));var m,v=this.$children[h].$el;"prev"===t?(h>0&&(m=h-1),this.continuous&&0===h&&(m=p-1)):"next"===t&&(h<p-1&&(m=h+1),this.continuous&&h===p-1&&(m=0));var g=function(){if(void 0!==m){var t=a.$children[m].$el;n.i(i.b)(v,"is-active"),n.i(i.a)(t,"is-active"),a.index=m}a.isDone&&a.end(),s&&(s.style.display=""),r&&(r.style.display="")};setTimeout(function(){"next"===t?(a.isDone=!0,a.before(o),c?a.rafTranslate(o,u,-l,g,r):(a.translate(o,-l,d,g),r&&a.translate(r,0,d))):"prev"===t?(a.isDone=!0,a.before(o),c?a.rafTranslate(o,u,l,g,s):(a.translate(o,l,d,g),s&&a.translate(s,0,d))):(a.isDone=!1,a.translate(o,0,d,g),"undefined"!=typeof u?(s&&u>0&&a.translate(s,l*-1,d),r&&u<0&&a.translate(r,l,d)):(s&&a.translate(s,l*-1,d),r&&a.translate(r,l,d)))},10)}},next:function(){this.doAnimate("next")},prev:function(){this.doAnimate("prev")},before:function(){this.$emit("before",this.index)},end:function(){this.$emit("end",this.index)},doOnTouchStart:function(t){if(!this.noDrag){var e=this.$el,n=this.dragState,i=t.touches[0];n.startTime=new Date,n.startLeft=i.pageX,n.startTop=i.pageY,n.startTopAbsolute=i.clientY,n.pageWidth=e.offsetWidth,n.pageHeight=e.offsetHeight;var a=this.$children[this.index-1],s=this.$children[this.index],r=this.$children[this.index+1];this.continuous&&this.pages.length>1&&(a||(a=this.$children[this.$children.length-1]),r||(r=this.$children[0])),n.prevPage=a?a.$el:null,n.dragPage=s?s.$el:null,n.nextPage=r?r.$el:null,n.prevPage&&(n.prevPage.style.display="block"),n.nextPage&&(n.nextPage.style.display="block")}},doOnTouchMove:function(t){if(!this.noDrag){var e=this.dragState,n=t.touches[0];e.speedX=n.pageX-e.currentLeft,e.currentLeft=n.pageX,e.currentTop=n.pageY,e.currentTopAbsolute=n.clientY;var i=e.currentLeft-e.startLeft,a=e.currentTopAbsolute-e.startTopAbsolute,s=Math.abs(i),r=Math.abs(a);if(s<5||s>=5&&r>=1.73*s)return void(this.userScrolling=!0);this.userScrolling=!1,t.preventDefault(),i=Math.min(Math.max(-e.pageWidth+1,i),e.pageWidth-1);var o=i<0?"next":"prev";e.prevPage&&"prev"===o&&this.translate(e.prevPage,i-e.pageWidth),this.translate(e.dragPage,i),e.nextPage&&"next"===o&&this.translate(e.nextPage,i+e.pageWidth)}},doOnTouchEnd:function(){if(!this.noDrag){var t=this.dragState,e=new Date-t.startTime,n=null,i=t.currentLeft-t.startLeft,a=t.currentTop-t.startTop,s=t.pageWidth,r=this.index,o=this.pages.length;if(e<300){var l=Math.abs(i)<5&&Math.abs(a)<5;(isNaN(i)||isNaN(a))&&(l=!0),l&&this.$children[this.index].$emit("tap")}e<300&&void 0===t.currentLeft||((e<300||Math.abs(i)>s/2)&&(n=i<0?"next":"prev"),this.continuous||(0===r&&"prev"===n||r===o-1&&"next"===n)&&(n=null),this.$children.length<2&&(n=null),this.doAnimate(n,{offsetLeft:i,pageWidth:t.pageWidth,prevPage:t.prevPage,currentPage:t.dragPage,nextPage:t.nextPage,speedX:t.speedX}),this.dragState={})}},initTimer:function(){var t=this;this.auto>0&&!this.timer&&(this.timer=setInterval(function(){return!t.continuous&&t.index>=t.pages.length-1?t.clearTimer():void(t.dragging||t.animating||t.next())},this.auto))},clearTimer:function(){clearInterval(this.timer),this.timer=null}},destroyed:function(){this.timer&&this.clearTimer(),this.reInitTimer&&(clearTimeout(this.reInitTimer),this.reInitTimer=null)},mounted:function(){var t=this;this.ready=!0,this.initTimer(),this.reInitPages();var e=this.$el;e.addEventListener("touchstart",function(e){t.prevent&&e.preventDefault(),t.stopPropagation&&e.stopPropagation(),t.animating||(t.dragging=!0,t.userScrolling=!1,t.doOnTouchStart(e))}),e.addEventListener("touchmove",function(e){t.dragging&&(t.timer&&t.clearTimer(),t.doOnTouchMove(e))}),e.addEventListener("touchend",function(e){return t.userScrolling?(t.dragging=!1,void(t.dragState={})):void(t.dragging&&(t.initTimer(),t.doOnTouchEnd(e),t.dragging=!1))})}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-switch",props:{value:Boolean,disabled:{type:Boolean,default:!1}},computed:{currentValue:{get:function(){return this.value},set:function(t){this.$emit("input",t)}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-tab-container-item",props:["id"]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),a=n(15),s=n.n(a);e.default={name:"mt-tab-container",props:{value:{},swipeable:Boolean},data:function(){return{start:{x:0,y:0},swiping:!1,activeItems:[],pageWidth:0,currentActive:this.value}},watch:{value:function(t){this.currentActive=t},currentActive:function(t,e){if(this.$emit("input",t),this.swipeable){var n=s()(this.$children,function(t){return t.id===e});this.swipeLeaveTransition(n)}}},mounted:function(){this.swipeable&&(this.wrap=this.$refs.wrap,this.pageWidth=this.wrap.clientWidth,this.limitWidth=this.pageWidth/4)},methods:{swipeLeaveTransition:function(t){var e=this;void 0===t&&(t=0),"number"!=typeof this.index&&(this.index=s()(this.$children,function(t){return t.id===e.currentActive}),this.swipeMove(-t*this.pageWidth)),setTimeout(function(){e.wrap.classList.add("swipe-transition"),e.swipeMove(-e.index*e.pageWidth),n.i(i.c)(e.wrap,"webkitTransitionEnd",function(t){e.wrap.classList.remove("swipe-transition"),e.wrap.style.webkitTransform="",e.swiping=!1,e.index=null})},0)},swipeMove:function(t){this.wrap.style.webkitTransform="translate3d("+t+"px, 0, 0)",this.swiping=!0},startDrag:function(t){this.swipeable&&(t=t.changedTouches?t.changedTouches[0]:t,this.dragging=!0,this.start.x=t.pageX,this.start.y=t.pageY)},onDrag:function(t){var e=this;if(this.dragging){var n,i=t.changedTouches?t.changedTouches[0]:t,a=i.pageY-this.start.y,r=i.pageX-this.start.x,o=Math.abs(a),l=Math.abs(r);if(n=!(l<5||l>=5&&o>=1.73*l)){t.preventDefault();var u=this.$children.length-1,c=s()(this.$children,function(t){return t.id===e.currentActive}),d=c*this.pageWidth,h=r-d,f=Math.abs(h);if(f>u*this.pageWidth||h>0&&h<this.pageWidth)return void(this.swiping=!1);this.offsetLeft=r,this.index=c,this.swipeMove(h)}}},endDrag:function(){if(this.swiping){this.dragging=!1;var t=this.offsetLeft>0?-1:1,e=Math.abs(this.offsetLeft)>this.limitWidth;if(e){this.index+=t;var n=this.$children[this.index];if(n)return void(this.currentActive=n.id)}this.swipeLeaveTransition()}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-tab-item",props:["id"]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={name:"mt-tabbar",props:{fixed:Boolean,value:{}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:{message:String,className:{type:String,default:""},position:{type:String,default:"middle"},iconClass:{type:String,default:""}},data:function(){return{visible:!1}},computed:{customClass:function(){var t=[];switch(this.position){case"top":t.push("is-placetop");break;case"bottom":t.push("is-placebottom");break;default:t.push("is-placemiddle")}return t.push(this.className),t.join(" ")}}}},function(t,e,n){"use strict";var i=n(131),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(132),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(133),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(134),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(136),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(137),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(138),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(139),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(140),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(141),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i,a=n(1),s=n.n(a),r=s.a.extend(n(142));e.a={open:function(t){void 0===t&&(t={}),i||(i=new r({el:document.createElement("div")})),i.visible||(i.text="string"==typeof t?t:t.text||"",i.spinnerType=t.spinnerType||"snake",document.body.appendChild(i.$el),s.a.nextTick(function(){i.visible=!0}))},close:function(){i&&(i.visible=!1)}}},function(t,e,n){"use strict";var i=n(4),a=(n.n(i),n(66));n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(1),a=n.n(i),s="@@InfiniteScroll",r=function(t,e){var n,i,a,s,r,o=function(){t.apply(s,r),i=n};return function(){if(s=this,r=arguments,n=Date.now(),a&&(clearTimeout(a),a=null),i){var t=e-(n-i);t<0?o():a=setTimeout(function(){o()},t)}else o()}},o=function(t){return t===window?Math.max(window.pageYOffset||0,document.documentElement.scrollTop):t.scrollTop},l=a.a.prototype.$isServer?{}:document.defaultView.getComputedStyle,u=function(t){for(var e=t;e&&"HTML"!==e.tagName&&"BODY"!==e.tagName&&1===e.nodeType;){var n=l(e).overflowY;if("scroll"===n||"auto"===n)return e;e=e.parentNode}return window},c=function(t){return t===window?document.documentElement.clientHeight:t.clientHeight},d=function(t){return t===window?o(window):t.getBoundingClientRect().top+o(window)},h=function(t){for(var e=t.parentNode;e;){if("HTML"===e.tagName)return!0;if(11===e.nodeType)return!1;e=e.parentNode}return!1},f=function(){if(!this.binded){this.binded=!0;var t=this,e=t.el;t.scrollEventTarget=u(e),t.scrollListener=r(p.bind(t),200),t.scrollEventTarget.addEventListener("scroll",t.scrollListener);var n=e.getAttribute("infinite-scroll-disabled"),i=!1;n&&(this.vm.$watch(n,function(e){t.disabled=e,!e&&t.immediateCheck&&p.call(t)}),i=Boolean(t.vm[n])),t.disabled=i;var a=e.getAttribute("infinite-scroll-distance"),s=0;a&&(s=Number(t.vm[a]||a),isNaN(s)&&(s=0)),t.distance=s;var o=e.getAttribute("infinite-scroll-immediate-check"),l=!0;o&&(l=Boolean(t.vm[o])),t.immediateCheck=l,l&&p.call(t);var c=e.getAttribute("infinite-scroll-listen-for-event");c&&t.vm.$on(c,function(){p.call(t)})}},p=function(t){var e=this.scrollEventTarget,n=this.el,i=this.distance;if(t===!0||!this.disabled){var a=o(e),s=a+c(e),r=!1;if(e===n)r=e.scrollHeight-s<=i;else{var l=d(n)-d(e)+n.offsetHeight+a;r=s+i>=l}r&&this.expression&&this.expression()}};e.a={bind:function(t,e,n){t[s]={el:t,vm:n.context,expression:e.value};var i=arguments,a=function(){t[s].vm.$nextTick(function(){h(t)&&f.call(t[s],i),t[s].bindTryCount=0;var e=function(){t[s].bindTryCount>10||(t[s].bindTryCount++,h(t)?f.call(t[s],i):setTimeout(e,50))};e()})};return t[s].vm._isMounted?void a():void t[s].vm.$on("hook:mounted",a)},unbind:function(t){t[s]&&t[s].scrollEventTarget&&t[s].scrollEventTarget.removeEventListener("scroll",t[s].scrollListener)}}},function(t,e,n){"use strict";var i=n(65),a=n(4),s=(n.n(a),n(1)),r=n.n(s),o=function(t){t.directive("InfiniteScroll",i.a)};!r.a.prototype.$isServer&&window.Vue&&(window.infiniteScroll=i.a,r.a.use(o)),i.a.install=o,e.a=i.a},function(t,e,n){"use strict";var i=n(4),a=(n.n(i),n(68));n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(130),a=n.n(i),s=n(4);n.n(s);e.a=a.a},function(t,e,n){"use strict";var i=n(143),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(71);n.d(e,"a",function(){return i.a})},function(t,e,n){"use strict";var i,a,s=n(1),r=n.n(s),o=n(144),l=n.n(o),u="确定",c="取消",d={title:"提示",message:"",type:"",showInput:!1,showClose:!0,modalFade:!1,lockScroll:!1,closeOnClickModal:!0,inputValue:null,inputPlaceholder:"",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,confirmButtonPosition:"right",confirmButtonHighlight:!1,cancelButtonHighlight:!1,confirmButtonText:u,cancelButtonText:c,confirmButtonClass:"",cancelButtonClass:""},h=function(t){for(var e=arguments,n=1,i=arguments.length;n<i;n++){var a=e[n];for(var s in a)if(a.hasOwnProperty(s)){var r=a[s];void 0!==r&&(t[s]=r)}}return t},f=r.a.extend(l.a),p=[],m=function(t){if(i){var e=i.callback;if("function"==typeof e&&(a.showInput?e(a.inputValue,t):e(t)),i.resolve){var n=i.options.$type;"confirm"===n||"prompt"===n?"confirm"===t?a.showInput?i.resolve({value:a.inputValue,action:t}):i.resolve(t):"cancel"===t&&i.reject&&i.reject(t):i.resolve(t)}}},v=function(){a=new f({el:document.createElement("div")}),a.callback=m},g=function(){if(a||v(),(!a.value||a.closeTimer)&&p.length>0){i=p.shift();var t=i.options;for(var e in t)t.hasOwnProperty(e)&&(a[e]=t[e]);void 0===t.callback&&(a.callback=m),["modal","showClose","closeOnClickModal","closeOnPressEscape"].forEach(function(t){void 0===a[t]&&(a[t]=!0)}),document.body.appendChild(a.$el),r.a.nextTick(function(){a.value=!0})}},b=function(t,e){return"string"==typeof t?(t={title:t},arguments[1]&&(t.message=arguments[1]),arguments[2]&&(t.type=arguments[2])):t.callback&&!e&&(e=t.callback),"undefined"!=typeof Promise?new Promise(function(n,i){p.push({options:h({},d,b.defaults||{},t),callback:e,resolve:n,reject:i}),g()}):(p.push({options:h({},d,b.defaults||{},t),callback:e}),void g())};b.setDefaults=function(t){b.defaults=t},b.alert=function(t,e,n){return"object"==typeof e&&(n=e,e=""),b(h({title:e,message:t,$type:"alert",closeOnPressEscape:!1,closeOnClickModal:!1},n))},b.confirm=function(t,e,n){return"object"==typeof e&&(n=e,e=""),b(h({title:e,message:t,$type:"confirm",showCancelButton:!0},n))},b.prompt=function(t,e,n){return"object"==typeof e&&(n=e,e=""),b(h({title:e,message:t,showCancelButton:!0,showInput:!0,$type:"prompt"},n))},b.close=function(){a&&(a.value=!1,p=[],i=null)},e.a=b},function(t,e,n){"use strict";var i=n(145),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(146),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(1),a=n.n(i),s=!1,r=!a.a.prototype.$isServer&&"ontouchstart"in window;e.a=function(t,e){var n=function(t){e.drag&&e.drag(r?t.changedTouches[0]||t.touches[0]:t)},i=function(t){r||(document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i)),document.onselectstart=null,document.ondragstart=null,s=!1,e.end&&e.end(r?t.changedTouches[0]||t.touches[0]:t)};t.addEventListener(r?"touchstart":"mousedown",function(t){s||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},r||(document.addEventListener("mousemove",n),document.addEventListener("mouseup",i)),s=!0,e.start&&(t.preventDefault(),e.start(r?t.changedTouches[0]||t.touches[0]:t)))}),r&&(t.addEventListener("touchmove",n),t.addEventListener("touchend",i),t.addEventListener("touchcancel",i))}},function(t,e,n){"use strict";var i=n(1),a=n.n(i),s={};if(!a.a.prototype.$isServer){var r,o=document.documentElement.style,l=!1;window.opera&&"[object Opera]"===Object.prototype.toString.call(opera)?r="presto":"MozAppearance"in o?r="gecko":"WebkitAppearance"in o?r="webkit":"string"==typeof navigator.cpuClass&&(r="trident");var u={trident:"-ms-",gecko:"-moz-",webkit:"-webkit-",
presto:"-o-"}[r],c={trident:"ms",gecko:"Moz",webkit:"Webkit",presto:"O"}[r],d=document.createElement("div"),h=c+"Perspective",f=c+"Transform",p=u+"transform",m=c+"Transition",v=u+"transition",g=c.toLowerCase()+"TransitionEnd";void 0!==d.style[h]&&(l=!0);var b=function(t){var e={left:0,top:0};if(null===t||null===t.style)return e;var n=t.style[f],i=/translate\(\s*(-?\d+(\.?\d+?)?)px,\s*(-?\d+(\.\d+)?)px\)\s*translateZ\(0px\)/gi.exec(n);return i&&(e.left=+i[1],e.top=+i[3]),e},y=function(t,e,n){if((null!==e||null!==n)&&null!==t&&void 0!==t&&null!==t.style&&(t.style[f]||0!==e||0!==n)){if(null===e||null===n){var i=b(t);null===e&&(e=i.left),null===n&&(n=i.top)}x(t),l?t.style[f]+=" translate("+(e?e+"px":"0px")+","+(n?n+"px":"0px")+") translateZ(0px)":t.style[f]+=" translate("+(e?e+"px":"0px")+","+(n?n+"px":"0px")+")"}},x=function(t){if(null!==t&&null!==t.style){var e=t.style[f];e&&(e=e.replace(/translate\(\s*(-?\d+(\.?\d+?)?)px,\s*(-?\d+(\.\d+)?)px\)\s*translateZ\(0px\)/g,""),t.style[f]=e)}};s={transformProperty:f,transformStyleName:p,transitionProperty:m,transitionStyleName:v,transitionEndProperty:g,getElementTranslate:b,translateElement:y,cancelTranslateElement:x}}e.a=s},function(t,e,n){"use strict";var i=n(150),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(151),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(152),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(1),a=n.n(i),s=!1,r=!a.a.prototype.$isServer&&"ontouchstart"in window;e.a=function(t,e){var n=function(t){e.drag&&e.drag(r?t.changedTouches[0]||t.touches[0]:t)},i=function(t){r||(document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",i)),document.onselectstart=null,document.ondragstart=null,s=!1,e.end&&e.end(r?t.changedTouches[0]||t.touches[0]:t)};t.addEventListener(r?"touchstart":"mousedown",function(t){s||(t.preventDefault(),document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},r||(document.addEventListener("mousemove",n),document.addEventListener("mouseup",i)),s=!0,e.start&&e.start(r?t.changedTouches[0]||t.touches[0]:t))}),r&&(t.addEventListener("touchmove",n),t.addEventListener("touchend",i),t.addEventListener("touchcancel",i))}},function(t,e,n){"use strict";var i=n(153),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(4),a=(n.n(i),n(158)),s=n.n(a);n.d(e,"a",function(){return s.a})},function(t,e,n){"use strict";var i=n(159),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(160),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(161),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(162),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(163),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(164),a=n.n(i);n.d(e,"a",function(){return a.a})},function(t,e,n){"use strict";var i=n(89);n.d(e,"a",function(){return i.a})},function(t,e,n){"use strict";var i=n(1),a=n.n(i),s=a.a.extend(n(165)),r=[],o=function(){if(r.length>0){var t=r[0];return r.splice(0,1),t}return new s({el:document.createElement("div")})},l=function(t){t&&r.push(t)},u=function(t){t.target.parentNode&&t.target.parentNode.removeChild(t.target)};s.prototype.close=function(){this.visible=!1,this.$el.addEventListener("transitionend",u),this.closed=!0,l(this)};var c=function(t){void 0===t&&(t={});var e=t.duration||3e3,n=o();return n.closed=!1,clearTimeout(n.timer),n.message="string"==typeof t?t:t.message,n.position=t.position||"middle",n.className=t.className||"",n.iconClass=t.iconClass||"",document.body.appendChild(n.$el),a.a.nextTick(function(){n.visible=!0,n.$el.removeEventListener("transitionend",u),~e&&(n.timer=setTimeout(function(){n.closed||n.close()},e))}),n};e.a=c},function(t,e,n){"use strict";function i(t,e,n){this.$children.forEach(function(a){var s=a.$options.componentName;s===t?a.$emit.apply(a,[e].concat(n)):i.apply(a,[t,e].concat(n))})}e.a={methods:{dispatch:function(t,e,n){for(var i=this.$parent,a=i.$options.componentName;i&&(!a||a!==t);)i=i.$parent,i&&(a=i.$options.componentName);i&&i.$emit.apply(i,[e].concat(n))},broadcast:function(t,e,n){i.call(this,t,e,n)}}}},function(t,e,n){"use strict";var i=n(1),a=n.n(i),s=n(3),r=!1,o=function(){if(!a.a.prototype.$isServer){var t=u.modalDom;return t?r=!0:(r=!1,t=document.createElement("div"),u.modalDom=t,t.addEventListener("touchmove",function(t){t.preventDefault(),t.stopPropagation()}),t.addEventListener("click",function(){u.doOnModalClick&&u.doOnModalClick()})),t}},l={},u={zIndex:2e3,modalFade:!0,getInstance:function(t){return l[t]},register:function(t,e){t&&e&&(l[t]=e)},deregister:function(t){t&&(l[t]=null,delete l[t])},nextZIndex:function(){return u.zIndex++},modalStack:[],doOnModalClick:function(){var t=u.modalStack[u.modalStack.length-1];if(t){var e=u.getInstance(t.id);e&&e.closeOnClickModal&&e.close()}},openModal:function(t,e,i,l,u){if(!a.a.prototype.$isServer&&t&&void 0!==e){this.modalFade=u;for(var c=this.modalStack,d=0,h=c.length;d<h;d++){var f=c[d];if(f.id===t)return}var p=o();if(n.i(s.a)(p,"v-modal"),this.modalFade&&!r&&n.i(s.a)(p,"v-modal-enter"),l){var m=l.trim().split(/\s+/);m.forEach(function(t){return n.i(s.a)(p,t)})}setTimeout(function(){n.i(s.b)(p,"v-modal-enter")},200),i&&i.parentNode&&11!==i.parentNode.nodeType?i.parentNode.appendChild(p):document.body.appendChild(p),e&&(p.style.zIndex=e),p.style.display="",this.modalStack.push({id:t,zIndex:e,modalClass:l})}},closeModal:function(t){var e=this.modalStack,i=o();if(e.length>0){var a=e[e.length-1];if(a.id===t){if(a.modalClass){var r=a.modalClass.trim().split(/\s+/);r.forEach(function(t){return n.i(s.b)(i,t)})}e.pop(),e.length>0&&(i.style.zIndex=e[e.length-1].zIndex)}else for(var l=e.length-1;l>=0;l--)if(e[l].id===t){e.splice(l,1);break}}0===e.length&&(this.modalFade&&n.i(s.a)(i,"v-modal-leave"),setTimeout(function(){0===e.length&&(i.parentNode&&i.parentNode.removeChild(i),i.style.display="none",u.modalDom=void 0),n.i(s.b)(i,"v-modal-leave")},200))}};!a.a.prototype.$isServer&&window.addEventListener("keydown",function(t){if(27===t.keyCode&&u.modalStack.length>0){var e=u.modalStack[u.modalStack.length-1];if(!e)return;var n=u.getInstance(e.id);n.closeOnPressEscape&&n.close()}}),e.a=u},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){},function(t,e){!function(t){for(var e=0,n=["webkit","moz"],i=t.requestAnimationFrame,a=t.cancelAnimationFrame,s=n.length;--s>=0&&!i;)i=t[n[s]+"RequestAnimationFrame"],a=t[n[s]+"CancelAnimationFrame"];i&&a||(i=function(t){var n=+new Date,i=Math.max(e+16,n);return setTimeout(function(){t(e=i)},i-n)},a=clearTimeout),t.requestAnimationFrame=i,t.cancelAnimationFrame=a}(window)},function(t,e){t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBmaWxsPSJ3aGl0ZSI+CiAgPHBhdGggb3BhY2l0eT0iLjI1IiBkPSJNMTYgMCBBMTYgMTYgMCAwIDAgMTYgMzIgQTE2IDE2IDAgMCAwIDE2IDAgTTE2IDQgQTEyIDEyIDAgMCAxIDE2IDI4IEExMiAxMiAwIDAgMSAxNiA0Ii8+CiAgPHBhdGggZD0iTTE2IDAgQTE2IDE2IDAgMCAxIDMyIDE2IEwyOCAxNiBBMTIgMTIgMCAwIDAgMTYgNHoiPgogICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAgMTYgMTYiIHRvPSIzNjAgMTYgMTYiIGR1cj0iMC44cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgPC9wYXRoPgo8L3N2Zz4K"},function(t,e,n){!function(e,n){t.exports=n()}(this,function(){"use strict";function t(t,e){if(t.length){var n=t.indexOf(e);return n>-1?t.splice(n,1):void 0}}function e(t,e){if(!t||!e)return t||{};if(t instanceof Object)for(var n in e)t[n]=e[n];return t}function n(t,e){for(var n=!1,i=0,a=t.length;i<a;i++)if(e(t[i])){n=!0;break}return n}function i(t,e){if("IMG"===t.tagName&&t.getAttribute("data-srcset")){var n=t.getAttribute("data-srcset"),i=[],a=t.parentNode,s=a.offsetWidth*e,r=void 0,o=void 0,l=void 0;n=n.trim().split(","),n.map(function(t){t=t.trim(),r=t.lastIndexOf(" "),r===-1?(o=t,l=999998):(o=t.substr(0,r),l=parseInt(t.substr(r+1,t.length-r-2),10)),i.push([l,o])}),i.sort(function(t,e){if(t[0]<e[0])return-1;if(t[0]>e[0])return 1;if(t[0]===e[0]){if(e[1].indexOf(".webp",e[1].length-5)!==-1)return 1;if(t[1].indexOf(".webp",t[1].length-5)!==-1)return-1}return 0});for(var u="",c=void 0,d=i.length,h=0;h<d;h++)if(c=i[h],c[0]>=s){u=c[1];break}return u}}function a(t,e){for(var n=void 0,i=0,a=t.length;i<a;i++)if(e(t[i])){n=t[i];break}return n}function s(){if(!h)return!1;var t=!0,e=document;try{var n=e.createElement("object");n.type="image/webp",n.innerHTML="!",e.body.appendChild(n),t=!n.offsetWidth,e.body.removeChild(n)}catch(e){t=!1}return t}function r(t,e){var n=null,i=0;return function(){if(!n){var a=Date.now()-i,s=this,r=arguments,o=function(){i=Date.now(),n=!1,t.apply(s,r)};a>=e?o():n=setTimeout(o,e)}}}function o(){if(h){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}}function l(t){return null!==t&&"object"===("undefined"==typeof t?"undefined":u(t))}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},d=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),h="undefined"!=typeof window,f=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return h&&window.devicePixelRatio||t},p=o(),m={on:function(t,e,n){p?t.addEventListener(e,n,{passive:!0}):t.addEventListener(e,n,!1)},off:function(t,e,n){t.removeEventListener(e,n)}},v=function(t,e,n){var i=new Image;i.src=t.src,i.onload=function(){e({naturalHeight:i.naturalHeight,naturalWidth:i.naturalWidth,src:i.src})},i.onerror=function(t){n(t)}},g=function(t,e){return"undefined"!=typeof getComputedStyle?getComputedStyle(t,null).getPropertyValue(e):t.style[e]},b=function(t){return g(t,"overflow")+g(t,"overflow-y")+g(t,"overflow-x")},y=function(t){if(h){if(!(t instanceof HTMLElement))return window;for(var e=t;e&&e!==document.body&&e!==document.documentElement&&e.parentNode;){if(/(scroll|auto)/.test(b(e)))return e;e=e.parentNode}return window}},x={},w=function(){function t(e){var n=e.el,i=e.src,a=e.error,s=e.loading,r=e.bindType,o=e.$parent,l=e.options,u=e.elRenderer;c(this,t),this.el=n,this.src=i,this.error=a,this.loading=s,this.bindType=r,this.attempt=0,this.naturalHeight=0,this.naturalWidth=0,this.options=l,this.initState(),this.performanceData={init:Date.now(),loadStart:null,loadEnd:null},this.rect=n.getBoundingClientRect(),this.$parent=o,this.elRenderer=u,this.render("loading",!1)}return d(t,[{key:"initState",value:function(){this.state={error:!1,loaded:!1,rendered:!1}}},{key:"record",value:function(t){this.performanceData[t]=Date.now()}},{key:"update",value:function(t){var e=t.src,n=t.loading,i=t.error;this.src=e,this.loading=n,this.error=i,this.attempt=0,this.initState()}},{key:"getRect",value:function(){this.rect=this.el.getBoundingClientRect()}},{key:"checkInView",value:function(){return this.getRect(),this.rect.top<window.innerHeight*this.options.preLoad&&this.rect.bottom>0&&this.rect.left<window.innerWidth*this.options.preLoad&&this.rect.right>0}},{key:"load",value:function(){var t=this;return this.attempt>this.options.attempt-1&&this.state.error?void(this.options.silent||console.log("error end")):this.state.loaded||x[this.src]?this.render("loaded",!0):(this.render("loading",!1),this.attempt++,this.record("loadStart"),void v({src:this.src},function(e){t.src=e.src,t.naturalHeight=e.naturalHeight,t.naturalWidth=e.naturalWidth,t.state.loaded=!0,t.state.error=!1,t.record("loadEnd"),t.render("loaded",!1),x[t.src]=1},function(e){t.state.error=!0,t.state.loaded=!1,t.render("error",!1)}))}},{key:"render",value:function(t,e){this.elRenderer(this,t,e)}},{key:"performance",value:function(){var t="loading",e=0;return this.state.loaded&&(t="loaded",e=(this.performanceData.loadEnd-this.performanceData.loadStart)/1e3),this.state.error&&(t="error"),{src:this.src,state:t,time:e}}},{key:"destroy",value:function(){this.el=null,this.src=null,this.error=null,this.loading=null,this.bindType=null,this.attempt=0}}]),t}(),C="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",T=["scroll","wheel","mousewheel","resize","animationend","transitionend","touchmove"],_=function(o){return function(){function u(t){var e=this,n=t.preLoad,i=t.error,a=t.loading,o=t.attempt,l=t.silent,d=t.scale,h=t.listenEvents,p=(t.hasbind,t.filter),m=t.adapter;c(this,u),this.ListenerQueue=[],this.options={silent:l||!0,preLoad:n||1.3,error:i||C,loading:a||C,attempt:o||3,scale:f(d),ListenEvents:h||T,hasbind:!1,supportWebp:s(),filter:p||{},adapter:m||{}},this.initEvent(),this.lazyLoadHandler=r(function(){var t=!1;e.ListenerQueue.forEach(function(e){e.state.loaded||(t=e.checkInView(),t&&e.load())})},200)}return d(u,[{key:"config",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e(this.options,t)}},{key:"addLazyBox",value:function(t){this.ListenerQueue.push(t),this.options.hasbind=!0,this.initListen(window,!0)}},{key:"add",value:function(t,e,a){var s=this;if(n(this.ListenerQueue,function(e){return e.el===t}))return this.update(t,e),o.nextTick(this.lazyLoadHandler);var r=this.valueFormatter(e.value),l=r.src,u=r.loading,c=r.error;o.nextTick(function(){var n=i(t,s.options.scale);n&&(l=n);var r=Object.keys(e.modifiers)[0],d=void 0;r&&(d=a.context.$refs[r],d=d?d.$el||d:document.getElementById(r)),d||(d=y(t));var h=new w({bindType:e.arg,$parent:d,el:t,loading:u,error:c,src:l,elRenderer:s.elRenderer.bind(s),options:s.options});s.ListenerQueue.push(s.listenerFilter(h)),s.ListenerQueue.length&&!s.options.hasbind&&(s.options.hasbind=!0,s.initListen(window,!0),d&&s.initListen(d,!0),s.lazyLoadHandler(),o.nextTick(function(){return s.lazyLoadHandler()}))})}},{key:"update",value:function(t,e){var n=this,i=this.valueFormatter(e.value),s=i.src,r=i.loading,l=i.error,u=a(this.ListenerQueue,function(e){return e.el===t});u&&u.src!==s&&u.update({src:s,loading:r,error:l}),this.lazyLoadHandler(),o.nextTick(function(){return n.lazyLoadHandler()})}},{key:"remove",value:function(e){if(e){var n=a(this.ListenerQueue,function(t){return t.el===e});n&&t(this.ListenerQueue,n)&&n.destroy(),this.options.hasbind&&!this.ListenerQueue.length&&this.initListen(window,!1)}}},{key:"removeComponent",value:function(e){e&&t(this.ListenerQueue,e),this.options.hasbind&&!this.ListenerQueue.length&&this.initListen(window,!1)}},{key:"initListen",value:function(t,e){var n=this;this.options.hasbind=e,this.options.ListenEvents.forEach(function(i){return m[e?"on":"off"](t,i,n.lazyLoadHandler)})}},{key:"initEvent",value:function(){var e=this;this.Event={listeners:{loading:[],loaded:[],error:[]}},this.$on=function(t,n){e.Event.listeners[t].push(n)},this.$once=function(t,n){function i(){a.$off(t,i),n.apply(a,arguments)}var a=e;e.$on(t,i)},this.$off=function(n,i){return i?void t(e.Event.listeners[n],i):void(e.Event.listeners[n]=[])},this.$emit=function(t,n,i){e.Event.listeners[t].forEach(function(t){return t(n,i)})}}},{key:"performance",value:function(){var t=[];return this.ListenerQueue.map(function(e){t.push(e.performance())}),t}},{key:"elRenderer",value:function(t,e,n){if(t.el){var i=t.el,a=t.bindType,s=void 0;switch(e){case"loading":s=t.loading;break;case"error":s=t.error;break;default:s=t.src}a?i.style[a]="url("+s+")":i.getAttribute("src")!==s&&i.setAttribute("src",s),i.setAttribute("lazy",e),this.$emit(e,t,n),this.options.adapter[e]&&this.options.adapter[e](t,this.options)}}},{key:"listenerFilter",value:function(t){return this.options.filter.webp&&this.options.supportWebp&&(t.src=this.options.filter.webp(t,this.options)),this.options.filter.customer&&(t.src=this.options.filter.customer(t,this.options)),t}},{key:"valueFormatter",value:function(t){var e=t,n=this.options.loading,i=this.options.error;return l(t)&&(t.src||this.options.silent||console.error("Vue Lazyload warning: miss src with "+t),e=t.src,n=t.loading||this.options.loading,i=t.error||this.options.error),{src:e,loading:n,error:i}}}]),u}()},S=function(t){return{props:{tag:{type:String,default:"div"}},render:function(t){return this.show===!1?t(this.tag):t(this.tag,null,this.$slots.default)},data:function(){return{state:{loaded:!1},rect:{},show:!1}},mounted:function(){t.addLazyBox(this),t.lazyLoadHandler()},beforeDestroy:function(){t.removeComponent(this)},methods:{getRect:function(){this.rect=this.$el.getBoundingClientRect()},checkInView:function(){return this.getRect(),h&&this.rect.top<window.innerHeight*t.options.preLoad&&this.rect.bottom>0&&this.rect.left<window.innerWidth*t.options.preLoad&&this.rect.right>0},load:function(){this.show=!0,this.state.loaded=!0,this.$emit("show",this)}}}},E={install:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=_(t),a=new i(n),s="2"===t.version.split(".")[0];t.prototype.$Lazyload=a,n.lazyComponent&&t.component("lazy-component",S(a)),s?t.directive("lazy",{bind:a.add.bind(a),update:a.update.bind(a),componentUpdated:a.lazyLoadHandler.bind(a),unbind:a.remove.bind(a)}):t.directive("lazy",{bind:a.lazyLoadHandler.bind(a),update:function(t,n){e(this.vm.$refs,this.vm.$els),a.add(this.el,{modifiers:this.modifiers||{},arg:this.arg,value:t,oldValue:n},{context:this.vm})},unbind:function(){a.remove(this.el)}})}};return E})},function(t,e,n){function i(t){n(101)}var a=n(0)(n(16),n(174),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(103)}var a=n(0)(n(17),n(176),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(107)}var a=n(0)(n(18),n(180),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(99)}var a=n(0)(n(19),n(172),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(114)}var a=n(0)(n(20),n(188),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(125)}var a=n(0)(n(21),n(199),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(110)}var a=n(0)(n(22),n(184),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(117)}var a=n(0)(n(23),n(190),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(109)}var a=n(0)(n(24),n(182),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(94)}var a=n(0)(n(25),n(167),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(95)}var a=n(0)(n(26),n(168),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(120)}var a=n(0)(n(27),n(194),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(122)}var a=n(0)(n(28),n(196),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(115),n(116)}var a=n(0)(n(29),n(189),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(124)}var a=n(0)(n(30),n(198),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(113)}var a=n(0)(n(31),n(187),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(93)}var a=n(0)(n(32),n(166),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(127)}var a=n(0)(n(33),n(201),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(121)}var a=n(0)(n(34),n(195),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(97)}var a=n(0)(n(35),n(170),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(119)}var a=n(0)(n(36),n(193),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(123)}var a=n(0)(n(37),n(197),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(126)}var a=n(0)(n(38),n(200),i,null,null);t.exports=a.exports},function(t,e,n){var i=n(0)(n(39),n(192),null,null,null);t.exports=i.exports},function(t,e,n){function i(t){n(112)}var a=n(0)(n(41),n(186),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(104)}var a=n(0)(n(43),n(177),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(100)}var a=n(0)(n(44),n(173),i,null,null);t.exports=a.exports},function(t,e,n){var i=n(0)(n(45),n(183),null,null,null);t.exports=i.exports},function(t,e,n){function i(t){n(96)}var a=n(0)(n(46),n(169),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(108)}var a=n(0)(n(47),n(181),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(118)}var a=n(0)(n(48),n(191),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(102)}var a=n(0)(n(49),n(175),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(106)}var a=n(0)(n(50),n(179),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(111)}var a=n(0)(n(51),n(185),i,null,null);t.exports=a.exports},function(t,e,n){function i(t){n(98)}var a=n(0)(n(52),n(171),i,null,null);t.exports=a.exports},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"picker-slot",class:t.classNames,style:t.flexStyle},[t.divider?t._e():n("div",{ref:"wrapper",staticClass:"picker-slot-wrapper",class:{dragging:t.dragging},style:{height:t.contentHeight+"px"}},t._l(t.mutatingValues,function(e){return n("div",{staticClass:"picker-item",class:{"picker-selected":e===t.currentValue},style:{height:t.itemHeight+"px",lineHeight:t.itemHeight+"px"}},[t._v("\n "+t._s("object"==typeof e&&e[t.valueKey]?e[t.valueKey]:e)+"\n ")])})),t.divider?n("div",[t._v(t._s(t.content))]):t._e()])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-indexlist"},[n("ul",{ref:"content",staticClass:"mint-indexlist-content",style:{height:t.currentHeight+"px","margin-right":t.navWidth+"px"}},[t._t("default")],2),n("div",{ref:"nav",staticClass:"mint-indexlist-nav",on:{touchstart:t.handleTouchStart}},[n("ul",{staticClass:"mint-indexlist-navlist"},t._l(t.sections,function(e){return n("li",{staticClass:"mint-indexlist-navitem"},[t._v(t._s(e.index))])}))]),t.showIndicator?n("div",{directives:[{name:"show",rawName:"v-show",value:t.moving,expression:"moving"}],staticClass:"mint-indexlist-indicator"},[t._v(t._s(t.currentIndicator))]):t._e()])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("li",{staticClass:"mint-indexsection"},[n("p",{staticClass:"mint-indexsection-index"},[t._v(t._s(t.index))]),n("ul",[t._t("default")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-swipe"},[n("div",{ref:"wrap",staticClass:"mint-swipe-items-wrap"},[t._t("default")],2),n("div",{directives:[{name:"show",rawName:"v-show",value:t.showIndicators,expression:"showIndicators"}],staticClass:"mint-swipe-indicators"},t._l(t.pages,function(e,i){return n("div",{staticClass:"mint-swipe-indicator",class:{"is-active":i===t.index}})}))])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mt-progress"},[t._t("start"),n("div",{staticClass:"mt-progress-content"},[n("div",{staticClass:"mt-progress-runway",style:{height:t.barHeight+"px"}}),n("div",{staticClass:"mt-progress-progress",style:{width:t.value+"%",height:t.barHeight+"px"}})]),t._t("end")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:"mint-toast-pop"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.visible,expression:"visible"}],staticClass:"mint-toast",class:t.customClass,style:{padding:""===t.iconClass?"10px":"20px"}},[""!==t.iconClass?n("i",{staticClass:"mint-toast-icon",class:t.iconClass}):t._e(),n("span",{staticClass:"mint-toast-text",style:{"padding-top":""===t.iconClass?"0":"10px"}},[t._v(t._s(t.message))])])])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("x-cell",{directives:[{name:"clickoutside",rawName:"v-clickoutside:touchstart",value:t.swipeMove,expression:"swipeMove",arg:"touchstart"}],ref:"cell",staticClass:"mint-cell-swipe",attrs:{title:t.title,icon:t.icon,label:t.label,to:t.to,"is-link":t.isLink,value:t.value},nativeOn:{click:function(e){t.swipeMove()},touchstart:function(e){t.startDrag(e)},touchmove:function(e){t.onDrag(e)},touchend:function(e){t.endDrag(e)}}},[n("div",{ref:"right",staticClass:"mint-cell-swipe-buttongroup",slot:"right"},t._l(t.right,function(e){return n("a",{staticClass:"mint-cell-swipe-button",style:e.style,domProps:{innerHTML:t._s(e.content)},on:{click:function(n){n.preventDefault(),n.stopPropagation(),e.handler&&e.handler(),t.swipeMove()}}})})),n("div",{ref:"left",staticClass:"mint-cell-swipe-buttongroup",slot:"left"},t._l(t.left,function(e){return n("a",{staticClass:"mint-cell-swipe-button",style:e.style,domProps:{innerHTML:t._s(e.content)},on:{click:function(n){n.preventDefault(),n.stopPropagation(),e.handler&&e.handler(),t.swipeMove()}}})})),t._t("default"),t.$slots.title?n("span",{slot:"title"},[t._t("title")],2):t._e(),t.$slots.icon?n("span",{slot:"icon"},[t._t("icon")],2):t._e()],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-spinner-triple-bounce"},[n("div",{staticClass:"mint-spinner-triple-bounce-bounce1",style:t.bounceStyle}),n("div",{staticClass:"mint-spinner-triple-bounce-bounce2",style:t.bounceStyle}),n("div",{staticClass:"mint-spinner-triple-bounce-bounce3",style:t.bounceStyle})])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:"actionsheet-float"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.currentValue,expression:"currentValue"}],staticClass:"mint-actionsheet"},[n("ul",{staticClass:"mint-actionsheet-list",style:{"margin-bottom":t.cancelText?"5px":"0"}},t._l(t.actions,function(e,i){return n("li",{staticClass:"mint-actionsheet-listitem",on:{click:function(n){n.stopPropagation(),t.itemClick(e,i)}}},[t._v(t._s(e.name))])})),t.cancelText?n("a",{staticClass:"mint-actionsheet-button",on:{click:function(e){e.stopPropagation(),t.currentValue=!1}}},[t._v(t._s(t.cancelText))]):t._e()])])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-tab-container",on:{touchstart:t.startDrag,mousedown:t.startDrag,touchmove:t.onDrag,mousemove:t.onDrag,mouseup:t.endDrag,touchend:t.endDrag}},[n("div",{ref:"wrap",staticClass:"mint-tab-container-wrap"},[t._t("default")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("span",{staticClass:"mint-badge",class:["is-"+t.type,"is-size-"+t.size],style:{backgroundColor:t.color}},[t._t("default")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-spinner-snake",style:{"border-top-color":t.spinnerColor,"border-left-color":t.spinnerColor,"border-bottom-color":t.spinnerColor,height:t.spinnerSize,width:t.spinnerSize}})},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:["mint-spinner-fading-circle circle-color-"+t._uid],style:{width:t.spinnerSize,height:t.spinnerSize}},t._l(12,function(t){return n("div",{staticClass:"mint-spinner-fading-circle-circle",class:["is-circle"+(t+1)]})}))},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("a",{staticClass:"mint-tab-item",class:{"is-selected":t.$parent.value===t.id},on:{click:function(e){t.$parent.$emit("input",t.id)}}},[n("div",{staticClass:"mint-tab-item-icon"},[t._t("icon")],2),n("div",{staticClass:"mint-tab-item-label"},[t._t("default")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("button",{staticClass:"mint-button",class:["mint-button--"+t.type,"mint-button--"+t.size,{"is-disabled":t.disabled,"is-plain":t.plain}],attrs:{type:t.nativeType,disabled:t.disabled},on:{click:t.handleClick}},[t.icon||t.$slots.icon?n("span",{staticClass:"mint-button-icon"},[t._t("icon",[t.icon?n("i",{staticClass:"mintui",class:"mintui-"+t.icon}):t._e()])],2):t._e(),n("label",{staticClass:"mint-button-text"},[t._t("default")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("label",{staticClass:"mint-switch"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.currentValue,expression:"currentValue"}],staticClass:"mint-switch-input",attrs:{disabled:t.disabled,type:"checkbox"},domProps:{checked:Array.isArray(t.currentValue)?t._i(t.currentValue,null)>-1:t.currentValue},on:{change:function(e){t.$emit("change",t.currentValue)},__c:function(e){var n=t.currentValue,i=e.target,a=!!i.checked;if(Array.isArray(n)){var s=null,r=t._i(n,s);a?r<0&&(t.currentValue=n.concat(s)):r>-1&&(t.currentValue=n.slice(0,r).concat(n.slice(r+1)))}else t.currentValue=a}}}),n("span",{staticClass:"mint-switch-core"}),n("div",{staticClass:"mint-switch-label"},[t._t("default")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("header",{staticClass:"mint-header",class:{"is-fixed":t.fixed}},[n("div",{staticClass:"mint-header-button is-left"},[t._t("left")],2),n("h1",{staticClass:"mint-header-title",domProps:{textContent:t._s(t.title)}}),n("div",{staticClass:"mint-header-button is-right"},[t._t("right")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-swipe-item"},[t._t("default")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("mt-popup",{staticClass:"mint-datetime",attrs:{closeOnClickModal:t.closeOnClickModal,position:"bottom"},model:{value:t.visible,callback:function(e){t.visible=e},expression:"visible"}},[n("mt-picker",{ref:"picker",staticClass:"mint-datetime-picker",attrs:{slots:t.dateSlots,"visible-item-count":t.visibleItemCount,"show-toolbar":""},on:{change:t.onChange}},[n("span",{staticClass:"mint-datetime-action mint-datetime-cancel",on:{click:function(e){t.visible=!1,t.$emit("cancel")}}},[t._v(t._s(t.cancelText))]),n("span",{staticClass:"mint-datetime-action mint-datetime-confirm",on:{click:t.confirm}},[t._v(t._s(t.confirmText))])])],1)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-tabbar",class:{"is-fixed":t.fixed}},[t._t("default")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-spinner-double-bounce",style:{width:t.spinnerSize,height:t.spinnerSize}},[n("div",{staticClass:"mint-spinner-double-bounce-bounce1",style:{backgroundColor:t.spinnerColor}}),n("div",{staticClass:"mint-spinner-double-bounce-bounce2",style:{backgroundColor:t.spinnerColor}})])},staticRenderFns:[]};
},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-palette-button",class:{expand:t.expanded,"mint-palette-button-active":t.transforming},on:{animationend:t.onMainAnimationEnd,webkitAnimationEnd:t.onMainAnimationEnd,mozAnimationEnd:t.onMainAnimationEnd}},[n("div",{staticClass:"mint-sub-button-container"},[t._t("default")],2),n("div",{staticClass:"mint-main-button",style:t.mainButtonStyle,on:{touchstart:t.toggle}},[t._v("\n "+t._s(t.content)+"\n ")])])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("a",{staticClass:"mint-cell",attrs:{href:t.href}},[t.isLink?n("span",{staticClass:"mint-cell-mask"}):t._e(),n("div",{staticClass:"mint-cell-left"},[t._t("left")],2),n("div",{staticClass:"mint-cell-wrapper"},[n("div",{staticClass:"mint-cell-title"},[t._t("icon",[t.icon?n("i",{staticClass:"mintui",class:"mintui-"+t.icon}):t._e()]),t._t("title",[n("span",{staticClass:"mint-cell-text",domProps:{textContent:t._s(t.title)}}),t.label?n("span",{staticClass:"mint-cell-label",domProps:{textContent:t._s(t.label)}}):t._e()])],2),n("div",{staticClass:"mint-cell-value",class:{"is-link":t.isLink}},[t._t("default",[n("span",{domProps:{textContent:t._s(t.value)}})])],2),t.isLink?n("i",{staticClass:"mint-cell-allow-right"}):t._e()]),n("div",{staticClass:"mint-cell-right"},[t._t("right")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-msgbox-wrapper"},[n("transition",{attrs:{name:"msgbox-bounce"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.value,expression:"value"}],staticClass:"mint-msgbox"},[""!==t.title?n("div",{staticClass:"mint-msgbox-header"},[n("div",{staticClass:"mint-msgbox-title"},[t._v(t._s(t.title))])]):t._e(),""!==t.message?n("div",{staticClass:"mint-msgbox-content"},[n("div",{staticClass:"mint-msgbox-message",domProps:{innerHTML:t._s(t.message)}}),n("div",{directives:[{name:"show",rawName:"v-show",value:t.showInput,expression:"showInput"}],staticClass:"mint-msgbox-input"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.inputValue,expression:"inputValue"}],ref:"input",attrs:{placeholder:t.inputPlaceholder},domProps:{value:t.inputValue},on:{input:function(e){e.target.composing||(t.inputValue=e.target.value)}}}),n("div",{staticClass:"mint-msgbox-errormsg",style:{visibility:t.editorErrorMessage?"visible":"hidden"}},[t._v(t._s(t.editorErrorMessage))])])]):t._e(),n("div",{staticClass:"mint-msgbox-btns"},[n("button",{directives:[{name:"show",rawName:"v-show",value:t.showCancelButton,expression:"showCancelButton"}],class:[t.cancelButtonClasses],on:{click:function(e){t.handleAction("cancel")}}},[t._v(t._s(t.cancelButtonText))]),n("button",{directives:[{name:"show",rawName:"v-show",value:t.showConfirmButton,expression:"showConfirmButton"}],class:[t.confirmButtonClasses],on:{click:function(e){t.handleAction("confirm")}}},[t._v(t._s(t.confirmButtonText))])])])])],1)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("x-cell",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:t.doCloseActive,expression:"doCloseActive"}],staticClass:"mint-field",class:[{"is-textarea":"textarea"===t.type,"is-nolabel":!t.label}],attrs:{title:t.label}},["textarea"===t.type?n("textarea",{directives:[{name:"model",rawName:"v-model",value:t.currentValue,expression:"currentValue"}],ref:"textarea",staticClass:"mint-field-core",attrs:{placeholder:t.placeholder,rows:t.rows,disabled:t.disabled,readonly:t.readonly},domProps:{value:t.currentValue},on:{change:function(e){t.$emit("change",t.currentValue)},input:function(e){e.target.composing||(t.currentValue=e.target.value)}}}):n("input",{ref:"input",staticClass:"mint-field-core",attrs:{placeholder:t.placeholder,number:"number"===t.type,type:t.type,disabled:t.disabled,readonly:t.readonly},domProps:{value:t.currentValue},on:{change:function(e){t.$emit("change",t.currentValue)},focus:function(e){t.active=!0},input:t.handleInput}}),t.disableClear?t._e():n("div",{directives:[{name:"show",rawName:"v-show",value:t.currentValue&&"textarea"!==t.type&&t.active,expression:"currentValue && type !== 'textarea' && active"}],staticClass:"mint-field-clear",on:{click:t.handleClear}},[n("i",{staticClass:"mintui mintui-field-error"})]),t.state?n("span",{staticClass:"mint-field-state",class:["is-"+t.state]},[n("i",{staticClass:"mintui",class:["mintui-field-"+t.state]})]):t._e(),n("div",{staticClass:"mint-field-other"},[t._t("default")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{directives:[{name:"show",rawName:"v-show",value:t.$parent.swiping||t.id===t.$parent.currentActive,expression:"$parent.swiping || id === $parent.currentActive"}],staticClass:"mint-tab-container-item"},[t._t("default")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("span",[n(t.spinner,{tag:"component"})],1)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-radiolist",on:{change:function(e){t.$emit("change",t.currentValue)}}},[n("label",{staticClass:"mint-radiolist-title",domProps:{textContent:t._s(t.title)}}),t._l(t.options,function(e){return n("x-cell",[n("label",{staticClass:"mint-radiolist-label",slot:"title"},[n("span",{staticClass:"mint-radio",class:{"is-right":"right"===t.align}},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.currentValue,expression:"currentValue"}],staticClass:"mint-radio-input",attrs:{type:"radio",disabled:e.disabled},domProps:{value:e.value||e,checked:t._q(t.currentValue,e.value||e)},on:{__c:function(n){t.currentValue=e.value||e}}}),n("span",{staticClass:"mint-radio-core"})]),n("span",{staticClass:"mint-radio-label",domProps:{textContent:t._s(e.label||e)}})])])})],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:"mint-indicator"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.visible,expression:"visible"}],staticClass:"mint-indicator"},[n("div",{staticClass:"mint-indicator-wrapper",style:{padding:t.text?"20px":"15px"}},[n("spinner",{staticClass:"mint-indicator-spin",attrs:{type:t.convertedSpinnerType,size:32}}),n("span",{directives:[{name:"show",rawName:"v-show",value:t.text,expression:"text"}],staticClass:"mint-indicator-text"},[t._v(t._s(t.text))])],1),n("div",{staticClass:"mint-indicator-mask",on:{touchmove:function(t){t.stopPropagation(),t.preventDefault()}}})])])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:t.currentTransition}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.currentValue,expression:"currentValue"}],staticClass:"mint-popup",class:[t.position?"mint-popup-"+t.position:""]},[t._t("default")],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-loadmore"},[n("div",{staticClass:"mint-loadmore-content",class:{"is-dropped":t.topDropped||t.bottomDropped},style:{transform:t.transform}},[t._t("top",[t.topMethod?n("div",{staticClass:"mint-loadmore-top"},["loading"===t.topStatus?n("spinner",{staticClass:"mint-loadmore-spinner",attrs:{size:20,type:"fading-circle"}}):t._e(),n("span",{staticClass:"mint-loadmore-text"},[t._v(t._s(t.topText))])],1):t._e()]),t._t("default"),t._t("bottom",[t.bottomMethod?n("div",{staticClass:"mint-loadmore-bottom"},["loading"===t.bottomStatus?n("spinner",{staticClass:"mint-loadmore-spinner",attrs:{size:20,type:"fading-circle"}}):t._e(),n("span",{staticClass:"mint-loadmore-text"},[t._v(t._s(t.bottomText))])],1):t._e()])],2)])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mt-range",class:{"mt-range--disabled":t.disabled}},[t._t("start"),n("div",{ref:"content",staticClass:"mt-range-content"},[n("div",{staticClass:"mt-range-runway",style:{"border-top-width":t.barHeight+"px"}}),n("div",{staticClass:"mt-range-progress",style:{width:t.progress+"%",height:t.barHeight+"px"}}),n("div",{ref:"thumb",staticClass:"mt-range-thumb",style:{left:t.progress+"%"}})]),t._t("end")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-navbar",class:{"is-fixed":t.fixed}},[t._t("default")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-checklist",class:{"is-limit":t.max<=t.currentValue.length},on:{change:function(e){t.$emit("change",t.currentValue)}}},[n("label",{staticClass:"mint-checklist-title",domProps:{textContent:t._s(t.title)}}),t._l(t.options,function(e){return n("x-cell",[n("label",{staticClass:"mint-checklist-label",slot:"title"},[n("span",{staticClass:"mint-checkbox",class:{"is-right":"right"===t.align}},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.currentValue,expression:"currentValue"}],staticClass:"mint-checkbox-input",attrs:{type:"checkbox",disabled:e.disabled},domProps:{value:e.value||e,checked:Array.isArray(t.currentValue)?t._i(t.currentValue,e.value||e)>-1:t.currentValue},on:{__c:function(n){var i=t.currentValue,a=n.target,s=!!a.checked;if(Array.isArray(i)){var r=e.value||e,o=t._i(i,r);s?o<0&&(t.currentValue=i.concat(r)):o>-1&&(t.currentValue=i.slice(0,o).concat(i.slice(o+1)))}else t.currentValue=s}}}),n("span",{staticClass:"mint-checkbox-core"})]),n("span",{staticClass:"mint-checkbox-label",domProps:{textContent:t._s(e.label||e)}})])])})],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"mint-search"},[n("div",{staticClass:"mint-searchbar"},[n("div",{staticClass:"mint-searchbar-inner"},[n("i",{staticClass:"mintui mintui-search"}),n("input",{directives:[{name:"model",rawName:"v-model",value:t.currentValue,expression:"currentValue"}],ref:"input",staticClass:"mint-searchbar-core",attrs:{type:"search",placeholder:t.placeholder},domProps:{value:t.currentValue},on:{click:function(e){t.visible=!0},input:function(e){e.target.composing||(t.currentValue=e.target.value)}}})]),n("a",{directives:[{name:"show",rawName:"v-show",value:t.visible,expression:"visible"}],staticClass:"mint-searchbar-cancel",domProps:{textContent:t._s(t.cancelText)},on:{click:function(e){t.visible=!1,t.currentValue=""}}})]),n("div",{directives:[{name:"show",rawName:"v-show",value:t.show||t.currentValue,expression:"show || currentValue"}],staticClass:"mint-search-list"},[n("div",{staticClass:"mint-search-list-warp"},[t._t("default",t._l(t.result,function(t,e){return n("x-cell",{key:e,attrs:{title:t}})}))],2)])])},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"picker",class:{"picker-3d":t.rotateEffect}},[t.showToolbar?n("div",{staticClass:"picker-toolbar"},[t._t("default")],2):t._e(),n("div",{staticClass:"picker-items"},[t._l(t.slots,function(e){return n("picker-slot",{attrs:{valueKey:t.valueKey,values:e.values||[],"text-align":e.textAlign||"center","visible-item-count":t.visibleItemCount,"class-name":e.className,flex:e.flex,"rotate-effect":t.rotateEffect,divider:e.divider,content:e.content,itemHeight:t.itemHeight,"default-index":e.defaultIndex},model:{value:t.values[e.valueIndex],callback:function(n){var i=t.values,a=e.valueIndex;Array.isArray(i)?i.splice(a,1,n):t.values[e.valueIndex]=n},expression:"values[slot.valueIndex]"}})}),n("div",{staticClass:"picker-center-highlight",style:{height:t.itemHeight+"px",marginTop:-t.itemHeight/2+"px"}})],2)])},staticRenderFns:[]}},function(t,e,n){t.exports=n(14)}])});
================================================
FILE: lib/style.css
================================================
/* Cell Component */
/* Header Component */
/* Button Component */
/* Tab Item Component */
/* Tabbar Component */
/* Navbar Component */
/* Checklist Component */
/* Radio Component */
/* z-index */
.mint-header {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
background-color: #26a2ff;
box-sizing: border-box;
color: #fff;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 14px;
height: 40px;
line-height: 1;
padding: 0 10px;
position: relative;
text-align: center;
white-space: nowrap;
}
.mint-header .mint-button {
background-color: transparent;
border: 0;
box-shadow: none;
color: inherit;
display: inline-block;
padding: 0;
font-size: inherit
}
.mint-header .mint-button::after {
content: none;
}
.mint-header.is-fixed {
top: 0;
right: 0;
left: 0;
position: fixed;
z-index: 1;
}
.mint-header-button {
-webkit-box-flex: .5;
-ms-flex: .5;
flex: .5;
}
.mint-header-button > a {
color: inherit;
}
.mint-header-button.is-right {
text-align: right;
}
.mint-header-button.is-left {
text-align: left;
}
.mint-header-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: inherit;
font-weight: 400;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
/* Cell Component */
/* Header Component */
/* Button Component */
/* Tab Item Component */
/* Tabbar Component */
/* Navbar Component */
/* Checklist Component */
/* Radio Component */
/* z-index */
.mint-button {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border-radius: 4px;
border: 0;
box-sizing: border-box;
color: inherit;
display: block;
font-size: 18px;
height: 41px;
outline: 0;
overflow: hidden;
position: relative;
text-align: center
}
.mint-button::after {
background-color: #000;
content: " ";
opacity: 0;
top: 0;
right: 0;
bottom: 0;
left: 0;
position: absolute
}
.mint-button:not(.is-disabled):active::after {
opacity: .4
}
.mint-button.is-disabled {
opacity: .6
}
.mint-button-icon {
vertical-align: middle;
display: inline-block
}
.mint-button--default {
color: #656b79;
background-color: #f6f8fa;
box-shadow: 0 0 1px #b8bbbf
}
.mint-button--default.is-plain {
border: 1px solid #5a5a5a;
background-color: transparent;
box-shadow: none;
color: #5a5a5a
}
.mint-button--primary {
color: #fff;
background-color: #26a2ff
}
.mint-button--primary.is-plain {
border: 1px solid #26a2ff;
background-color: transparent;
color: #26a2ff
}
.mint-button--danger {
color: #fff;
background-color: #ef4f4f
}
.mint-button--danger.is-plain {
border: 1px solid #ef4f4f;
background-color: transparent;
color: #ef4f4f
}
.mint-button--large {
display: block;
width: 100%
}
.mint-button--normal {
display: inline-block;
padding: 0 12px
}
.mint-button--small {
display: inline-block;
font-size: 14px;
padding: 0 12px;
height: 33px
}
/* Cell Component */
/* Header Component */
/* Button Component */
/* Tab Item Component */
/* Tabbar Component */
/* Navbar Component */
/* Checklist Component */
/* Radio Component */
/* z-index */
.mint-cell {
background-color:#fff;
box-sizing:border-box;
color:inherit;
min-height:48px;
display:block;
overflow:hidden;
gitextract_b1q96e11/
├── .eslintignore
├── .eslintrc
├── .github/
│ ├── CONTRIBUTING_en-us.md
│ ├── CONTRIBUTING_zh-cn.md
│ ├── ISSUE_TEMPLATE.md
│ └── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .travis.yml
├── FAQ.md
├── LICENSE
├── Makefile
├── README.md
├── build/
│ ├── bin/
│ │ ├── build-all.js
│ │ └── build-entry.js
│ ├── config.js
│ ├── cooking.common.js
│ ├── cooking.component.js
│ ├── cooking.conf.js
│ ├── cooking.demo.js
│ └── release.sh
├── components.json
├── example/
│ ├── app.vue
│ ├── demos.vue
│ ├── entry.js
│ ├── index.tpl
│ ├── nav.config.json
│ ├── pages/
│ │ ├── action-sheet.vue
│ │ ├── badge.vue
│ │ ├── button.vue
│ │ ├── cell-swipe.vue
│ │ ├── cell.vue
│ │ ├── checklist.vue
│ │ ├── datetime-picker.vue
│ │ ├── field.vue
│ │ ├── header.vue
│ │ ├── index-list.vue
│ │ ├── indicator.vue
│ │ ├── infinite-scroll.vue
│ │ ├── lazyload.vue
│ │ ├── message-box.vue
│ │ ├── navbar.vue
│ │ ├── palette-button.vue
│ │ ├── picker.vue
│ │ ├── popup.vue
│ │ ├── progress.vue
│ │ ├── pull-down.vue
│ │ ├── pull-up.vue
│ │ ├── radio.vue
│ │ ├── range.vue
│ │ ├── search.vue
│ │ ├── spinner.vue
│ │ ├── swipe.vue
│ │ ├── switch.vue
│ │ ├── tab-container.vue
│ │ ├── tabbar.vue
│ │ └── toast.vue
│ └── route.js
├── lerna.json
├── lib/
│ ├── index.js
│ └── style.css
├── package.json
├── packages/
│ ├── README.md
│ ├── actionsheet/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── actionsheet.vue
│ ├── badge/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── badge.vue
│ ├── button/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── button.vue
│ ├── cell/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── cell.vue
│ ├── cell-swipe/
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── cell-swipe.vue
│ ├── checklist/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── checklist.vue
│ ├── datetime-picker/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── datetime-picker.vue
│ ├── field/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── field.vue
│ ├── header/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ └── header.vue
│ ├── index-list/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── index-list.vue
│ ├── index-section/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── index-section.vue
│ ├── indicator/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── indicator.vue
│ ├── infinite-scroll/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ ├── directive.js
│ │ └── infinite-scroll.js
│ ├── lazyload/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ └── lazyload.js
│ ├── loadmore/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── loadmore.vue
│ ├── message-box/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ ├── message-box.js
│ │ └── message-box.vue
│ ├── navbar/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── navbar.vue
│ ├── palette-button/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── palette-button.vue
│ ├── picker/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── draggable.js
│ │ ├── picker-slot.vue
│ │ ├── picker.vue
│ │ └── translate.js
│ ├── popup/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── popup.vue
│ ├── progress/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── progress.vue
│ ├── radio/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── radio.vue
│ ├── range/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── draggable.js
│ │ └── index.vue
│ ├── search/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── search.vue
│ ├── spinner/
│ │ ├── README.md
│ │ ├── components.json
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── spinner/
│ │ │ ├── common.vue
│ │ │ ├── double-bounce.vue
│ │ │ ├── fading-circle.vue
│ │ │ ├── snake.vue
│ │ │ └── triple-bounce.vue
│ │ └── spinner.vue
│ ├── swipe/
│ │ ├── README.md
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── swipe-item.vue
│ │ └── swipe.vue
│ ├── swipe-item/
│ │ ├── README.md
│ │ └── index.js
│ ├── switch/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── switch.vue
│ ├── tab-container/
│ │ ├── README.md
│ │ ├── _index.js
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── tab-container.vue
│ ├── tab-container-item/
│ │ ├── README.md
│ │ ├── index.js
│ │ └── src/
│ │ └── tab-container-item.vue
│ ├── tab-item/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── tab-item.vue
│ ├── tabbar/
│ │ ├── README.md
│ │ ├── cooking.conf.js
│ │ ├── index.js
│ │ ├── package.json
│ │ └── src/
│ │ └── tabbar.vue
│ └── toast/
│ ├── README.md
│ ├── index.js
│ └── src/
│ ├── toast.js
│ └── toast.vue
└── src/
├── assets/
│ └── font/
│ └── iconfont.css
├── index.js
├── mixins/
│ └── emitter.js
├── style/
│ ├── empty.css
│ ├── popup.css
│ └── var.css
└── utils/
├── clickoutside.js
├── dom.js
├── merge.js
└── popup/
├── index.js
└── popup-manager.js
SYMBOL INDEX (83 symbols across 7 files)
FILE: lib/index.js
function e (line 1) | function e(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{...
function i (line 1) | function i(t,e){if(!t||!e)return!1;if(e.indexOf(" ")!==-1)throw new Erro...
function a (line 1) | function a(t,e){if(t){for(var n=t.className,a=(e||"").split(" "),s=0,r=a...
function s (line 1) | function s(t,e){if(t&&e){for(var n=e.split(" "),a=" "+t.className+" ",s=...
function i (line 1) | function i(t){n(105)}
function s (line 2) | function s(){return Math.abs(o-n)<.5?(this.animating=!1,o=n,t.style.webk...
function i (line 3) | function i(t,e,n){this.$children.forEach(function(a){var s=a.$options.co...
function t (line 3) | function t(t,e){if(t.length){var n=t.indexOf(e);return n>-1?t.splice(n,1...
function e (line 3) | function e(t,e){if(!t||!e)return t||{};if(t instanceof Object)for(var n ...
function n (line 3) | function n(t,e){for(var n=!1,i=0,a=t.length;i<a;i++)if(e(t[i])){n=!0;bre...
function i (line 3) | function i(t,e){if("IMG"===t.tagName&&t.getAttribute("data-srcset")){var...
function a (line 3) | function a(t,e){for(var n=void 0,i=0,a=t.length;i<a;i++)if(e(t[i])){n=t[...
function s (line 3) | function s(){if(!h)return!1;var t=!0,e=document;try{var n=e.createElemen...
function r (line 3) | function r(t,e){var n=null,i=0;return function(){if(!n){var a=Date.now()...
function o (line 3) | function o(){if(h){var t=!1;try{var e=Object.defineProperty({},"passive"...
function l (line 3) | function l(t){return null!==t&&"object"===("undefined"==typeof t?"undefi...
function t (line 3) | function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.en...
function t (line 3) | function t(e){var n=e.el,i=e.src,a=e.error,s=e.loading,r=e.bindType,o=e....
function u (line 3) | function u(t){var e=this,n=t.preLoad,i=t.error,a=t.loading,o=t.attempt,l...
function i (line 3) | function i(){a.$off(t,i),n.apply(a,arguments)}
function i (line 3) | function i(t){n(101)}
function i (line 3) | function i(t){n(103)}
function i (line 3) | function i(t){n(107)}
function i (line 3) | function i(t){n(99)}
function i (line 3) | function i(t){n(114)}
function i (line 3) | function i(t){n(125)}
function i (line 3) | function i(t){n(110)}
function i (line 3) | function i(t){n(117)}
function i (line 3) | function i(t){n(109)}
function i (line 3) | function i(t){n(94)}
function i (line 3) | function i(t){n(95)}
function i (line 3) | function i(t){n(120)}
function i (line 3) | function i(t){n(122)}
function i (line 3) | function i(t){n(115),n(116)}
function i (line 3) | function i(t){n(124)}
function i (line 3) | function i(t){n(113)}
function i (line 3) | function i(t){n(93)}
function i (line 3) | function i(t){n(127)}
function i (line 3) | function i(t){n(121)}
function i (line 3) | function i(t){n(97)}
function i (line 3) | function i(t){n(119)}
function i (line 3) | function i(t){n(123)}
function i (line 3) | function i(t){n(126)}
function i (line 3) | function i(t){n(112)}
function i (line 3) | function i(t){n(104)}
function i (line 3) | function i(t){n(100)}
function i (line 3) | function i(t){n(96)}
function i (line 3) | function i(t){n(108)}
function i (line 3) | function i(t){n(118)}
function i (line 3) | function i(t){n(102)}
function i (line 3) | function i(t){n(106)}
function i (line 3) | function i(t){n(111)}
function i (line 3) | function i(t){n(98)}
FILE: packages/indicator/index.js
method open (line 7) | open(options = {}) {
method close (line 23) | close() {
FILE: packages/infinite-scroll/src/directive.js
method bind (line 169) | bind(el, binding, vnode) {
method unbind (line 204) | unbind(el) {
FILE: src/mixins/emitter.js
function broadcast (line 1) | function broadcast(componentName, eventName, params) {
method dispatch (line 14) | dispatch(componentName, eventName, params) {
method broadcast (line 29) | broadcast(componentName, eventName, params) {
FILE: src/utils/clickoutside.js
method bind (line 12) | bind(el, binding, vnode) {
method update (line 26) | update(el, binding) {
method unbind (line 30) | unbind(el) {
method install (line 36) | install(Vue) {
FILE: src/utils/dom.js
constant SPECIAL_CHARS_REGEXP (line 6) | const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
constant MOZ_HACK_REGEXP (line 7) | const MOZ_HACK_REGEXP = /^moz([A-Z])/;
function hasClass (line 67) | function hasClass(el, cls) {
function addClass (line 78) | function addClass(el, cls) {
function removeClass (line 101) | function removeClass(el, cls) {
function setStyle (line 161) | function setStyle(element, styleName, value) {
FILE: src/utils/popup/index.js
method afterEnter (line 23) | afterEnter(el) {
method afterLeave (line 30) | afterLeave(el) {
method created (line 110) | created() {
method beforeMount (line 116) | beforeMount() {
method beforeDestroy (line 121) | beforeDestroy() {
method data (line 132) | data() {
method value (line 142) | value(val) {
method open (line 160) | open(options) {
method doOpen (line 185) | doOpen(props) {
method doAfterOpen (line 240) | doAfterOpen() {
method close (line 244) | close() {
method doClose (line 265) | doClose() {
method doAfterClose (line 290) | doAfterClose() {
Condensed preview — 236 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (499K chars).
[
{
"path": ".eslintignore",
"chars": 28,
"preview": "release.sh\nnode_modules\nlib\n"
},
{
"path": ".eslintrc",
"chars": 50,
"preview": "{\n \"plugins\": [\"vue\"],\n \"extends\": [\"elemefe\"]\n}"
},
{
"path": ".github/CONTRIBUTING_en-us.md",
"chars": 1447,
"preview": "# Mint UI Contributing Guide\n\nHi! Thank you for choosing Mint UI.\n\nMint UI is a mobile component library for Vue.js. It "
},
{
"path": ".github/CONTRIBUTING_zh-cn.md",
"chars": 665,
"preview": "# Mint UI Contributing Guide\n\nHi! 首先感谢你使用 Mint UI。\n\nMint UI 是一套基于 Vue.js 的移动端组件库,它包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要。通过它,可"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 412,
"preview": "<!--\n请使用 https://eleme-issue.surge.sh?repo=mint 提交 issue,否则 issue 会被直接关闭。提交 issue 前请务必查看 FAQ:https://github.com/ElemeFE/"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 262,
"preview": "Please makes sure these boxes are checked before submitting your PR, thank you!\n\n* [ ] Make sure you follow the contribu"
},
{
"path": ".gitignore",
"chars": 117,
"preview": "*.log*\n.cache\n.DS_Store\n.idea\n.vscode/\npackages/**/lib\nlib/*\n!lib/index.js\n!lib/style.css\nnode_modules\nexample/dist\n\n"
},
{
"path": ".travis.yml",
"chars": 65,
"preview": "sudo: false\nlanguage: node_js\nnode_js:\n - \"5\"\nscript: make dist\n"
},
{
"path": "FAQ.md",
"chars": 718,
"preview": "## FAQ\n\n### 给组件绑定的事件为什么无法触发?\n\n在 Vue 2.0 中,为自定义组件绑定原生事件必须使用 `.native` 修饰符:\n```html\n<mt-button @click.native=\"handleButton"
},
{
"path": "LICENSE",
"chars": 1074,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2016 mint-ui\n\nPermission is hereby granted, free of charge, to any person obtaining"
},
{
"path": "Makefile",
"chars": 667,
"preview": ".PHONY: dist\ndefault: help\n\ndev:\n\tnpm run dev\n\ndist:\n\tnpm run dist\n\ndist-all:\n\tnode build/bin/build-all.js\n\ndeploy:\n\tnpm"
},
{
"path": "README.md",
"chars": 2410,
"preview": "# Mint UI\n\n[](https://travis-ci.org/ElemeFE/mint"
},
{
"path": "build/bin/build-all.js",
"chars": 612,
"preview": "'use strict';\n\nconst components = require('../../components.json');\nconst execSync = require('child_process').execSync;\n"
},
{
"path": "build/bin/build-entry.js",
"chars": 2123,
"preview": "var Components = require('../../components.json');\nvar fs = require('fs');\nvar render = require('json-templater/string')"
},
{
"path": "build/config.js",
"chars": 859,
"preview": "var Components = require('../components.json');\nvar path = require('path');\nvar dependencies = require('../package.json'"
},
{
"path": "build/cooking.common.js",
"chars": 562,
"preview": "var cooking = require('cooking');\nvar config = require('./config');\n\ncooking.set({\n entry: './src/index.js',\n dist: '."
},
{
"path": "build/cooking.component.js",
"chars": 702,
"preview": "var cooking = require('cooking');\nvar Components = require('../components.json');\nvar webpack = require('webpack');\nvar "
},
{
"path": "build/cooking.conf.js",
"chars": 562,
"preview": "var cooking = require('cooking');\nvar config = require('./config');\n\ncooking.set({\n entry: './src/index.js',\n dist: '."
},
{
"path": "build/cooking.demo.js",
"chars": 940,
"preview": "var cooking = require('cooking');\nvar webpack = require('webpack');\nvar config = require('./config');\n\ncooking.set({\n e"
},
{
"path": "build/release.sh",
"chars": 483,
"preview": "set -e\necho \"[Mint UI for Vue 2.0]Enter release version: \"\nread VERSION\n\nread -p \"Releasing $VERSION - are you sure? (y/"
},
{
"path": "components.json",
"chars": 1592,
"preview": "{\n \"font\": \"./src/assets/font/iconfont.css\",\n \"header\": \"./packages/header/index.js\",\n \"button\": \"./packages/button/i"
},
{
"path": "example/app.vue",
"chars": 811,
"preview": "<template>\n <div>\n <router-link class=\"page-back\" v-if=\"visible\" :to=\"'/'\">\n <i class=\"mintui mintui-back\"></i>"
},
{
"path": "example/demos.vue",
"chars": 1184,
"preview": "<template>\n <section class=\"page-demo\">\n <div v-for=\"group in navs\">\n <div class=\"page-title\" v-text=\"group.tit"
},
{
"path": "example/entry.js",
"chars": 887,
"preview": "import Vue from 'vue';\nimport App from './app';\nimport routes from './route';\nimport { install as Mint } from 'src/index"
},
{
"path": "example/index.tpl",
"chars": 628,
"preview": "<!DOCTYPE html>\n<html>\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, user-s"
},
{
"path": "example/nav.config.json",
"chars": 3173,
"preview": "[\n {\n \"title\": \"JS Components\",\n \"list\": [\n {\n \"path\": \"/toast\",\n \"name\": \"Toast\",\n \"ic"
},
{
"path": "example/pages/action-sheet.vue",
"chars": 1556,
"preview": "<template>\n <div class=\"page-actionsheet\">\n <h1 class=\"page-title\">Action Sheet</h1>\n <div class=\"page-actionshee"
},
{
"path": "example/pages/badge.vue",
"chars": 1384,
"preview": "<template>\n <div class=\"page-badge\">\n <div class=\"page-title\">Badge</div>\n\n <div class=\"page-badge-container\">\n "
},
{
"path": "example/pages/button.vue",
"chars": 1711,
"preview": "<template>\n <div class=\"page-button\">\n <h1 class=\"page-title\">Button</h1>\n <div class=\"page-button-group\">\n "
},
{
"path": "example/pages/cell-swipe.vue",
"chars": 682,
"preview": "<template>\n <div class=\"page-cell\">\n <div class=\"page-title\">Cell Swipe</div>\n <mt-cell-swipe\n v-for=\"n in 1"
},
{
"path": "example/pages/cell.vue",
"chars": 934,
"preview": "<template>\n <div class=\"page-cell\">\n <div class=\"page-title\">Cell</div>\n <mt-cell title=\"标题文字\"></mt-cell>\n <mt"
},
{
"path": "example/pages/checklist.vue",
"chars": 1646,
"preview": "<template>\n <div class=\"page-checklist\">\n <div class=\"page-title\">Checklist</div>\n\n <mt-checklist\n class=\"pa"
},
{
"path": "example/pages/datetime-picker.vue",
"chars": 2472,
"preview": "<template>\n <div class=\"page-datetime\">\n <h1 class=\"page-title\">Datetime Picker</h1>\n <div class=\"page-datetime-w"
},
{
"path": "example/pages/field.vue",
"chars": 1402,
"preview": "<template>\n <div class=\"page-field\">\n <div class=\"page-title\">Field</div>\n <div class=\"page-part\">\n <mt-fiel"
},
{
"path": "example/pages/header.vue",
"chars": 1618,
"preview": "<template>\n <div>\n <mt-header fixed title=\"固定在顶部\"></mt-header>\n <div class=\"page-header-main\">\n <div class=\""
},
{
"path": "example/pages/index-list.vue",
"chars": 1519,
"preview": "<template>\n <div class=\"page-indexlist\">\n <h1 class=\"page-title\">Index List</h1>\n <p class=\"page-indexlist-desc\">"
},
{
"path": "example/pages/indicator.vue",
"chars": 1326,
"preview": "<template>\n <div class=\"page-indicator\">\n <h1 class=\"page-title\">Indicator</h1>\n <div class=\"page-indicator-wrapp"
},
{
"path": "example/pages/infinite-scroll.vue",
"chars": 2135,
"preview": "<template>\n <div class=\"page-infinite\">\n <h1 class=\"page-title\">Infinite Scroll</h1>\n <p class=\"page-infinite-des"
},
{
"path": "example/pages/lazyload.vue",
"chars": 1399,
"preview": "<template>\n <div class=\"page-lazyload\">\n <h1 class=\"page-title\">Lazy Load</h1>\n <ul class=\"page-lazyload-list\">\n "
},
{
"path": "example/pages/message-box.vue",
"chars": 1187,
"preview": "<template>\n <div class=\"page-msgbox\">\n <h1 class=\"page-title\">Message Box</h1>\n <div class=\"page-msgbox-wrapper\">"
},
{
"path": "example/pages/navbar.vue",
"chars": 949,
"preview": "<template>\n <div class=\"page-navbar\">\n <div class=\"page-title\">Navbar</div>\n <mt-navbar class=\"page-part\" v-model"
},
{
"path": "example/pages/palette-button.vue",
"chars": 2803,
"preview": "<template>\n <div style=\"text-align:center;padding-top:200px;\">\n <mt-palette-button content=\"+\" @expand=\"main_log('ex"
},
{
"path": "example/pages/picker.vue",
"chars": 6881,
"preview": "<template>\n <div class=\"page-picker\">\n <h1 class=\"page-title\">Picker</h1>\n <div class=\"page-picker-wrapper\">\n "
},
{
"path": "example/pages/popup.vue",
"chars": 4029,
"preview": "<template>\n <div class=\"page-popup\">\n <h1 class=\"page-title\">Popup</h1>\n <div class=\"page-popup-wrapper\">\n <"
},
{
"path": "example/pages/progress.vue",
"chars": 2216,
"preview": "<template>\n <div class=\"page-progress\">\n <h1 class=\"page-title\">Progress</h1>\n <mt-cell title=\"默认\">\n <mt-pro"
},
{
"path": "example/pages/pull-down.vue",
"chars": 3264,
"preview": "<template>\n <div class=\"page-loadmore\">\n <h1 class=\"page-title\">Pull down</h1>\n <p class=\"page-loadmore-desc\">在列表"
},
{
"path": "example/pages/pull-up.vue",
"chars": 2710,
"preview": "<template>\n <div class=\"page-loadmore\">\n <h1 class=\"page-title\">Pull up</h1>\n <p class=\"page-loadmore-desc\">在列表底部"
},
{
"path": "example/pages/radio.vue",
"chars": 1168,
"preview": "<template>\n <div class=\"page-radio\">\n <div class=\"page-title\">radio</div>\n\n <mt-radio\n class=\"page-part\"\n "
},
{
"path": "example/pages/range.vue",
"chars": 2974,
"preview": "<template>\n <div class=\"page-range\">\n <h1 class=\"page-title\">Range</h1>\n <p class=\"page-range-header\">基本功能</p>\n "
},
{
"path": "example/pages/search.vue",
"chars": 758,
"preview": "<template>\n <div class=\"page-search\">\n <mt-search autofocus v-model=\"value\" :result=\"filterResult\"></mt-search>\n </"
},
{
"path": "example/pages/spinner.vue",
"chars": 818,
"preview": "<template>\n <div class=\"page-spinner\">\n <div class=\"page-title\">Spinner</div>\n\n <mt-cell title=\"snake\">\n <mt"
},
{
"path": "example/pages/swipe.vue",
"chars": 1935,
"preview": "<template>\n <div class=\"page-swipe\">\n <h1 class=\"page-title\">Swipe</h1>\n <p class=\"page-swipe-desc\">基础用法</p>\n "
},
{
"path": "example/pages/switch.vue",
"chars": 1112,
"preview": "<template>\n <div class=\"page-switch\">\n <div class=\"page-title\">Switch</div>\n <div class=\"page-part page-switch-pa"
},
{
"path": "example/pages/tab-container.vue",
"chars": 1310,
"preview": "<template>\n <div>\n <div class=\"nav\">\n <mt-button size=\"small\" @click.native.prevent=\"active = 'tab-container1'\""
},
{
"path": "example/pages/tabbar.vue",
"chars": 1828,
"preview": "<template>\n <div class=\"page-tabbar\">\n <div class=\"page-wrap\">\n <div class=\"page-title\">Tabbar</div>\n <div"
},
{
"path": "example/pages/toast.vue",
"chars": 1150,
"preview": "<template>\n <div class=\"page-toast\">\n <h1 class=\"page-title\">Toast</h1>\n <div class=\"page-toast-wrapper\">\n <"
},
{
"path": "example/route.js",
"chars": 604,
"preview": "import NavConfig from './nav.config.json';\n\nconst registerRoute = (config) => {\n let route = [];\n config.map(nav =>\n "
},
{
"path": "lerna.json",
"chars": 59,
"preview": "{\n \"lerna\": \"2.0.0-beta.18\",\n \"version\": \"independent\"\n}\n"
},
{
"path": "lib/index.js",
"chars": 108187,
"preview": "!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"vue\")):\"function\"==typeof def"
},
{
"path": "lib/style.css",
"chars": 52639,
"preview": "/* Cell Component */\n/* Header Component */\n/* Button Component */\n/* Tab Item Component */\n/* Tabbar Component */\n/* Na"
},
{
"path": "package.json",
"chars": 2415,
"preview": "{\n \"name\": \"mint-ui\",\n \"version\": \"2.2.13\",\n \"description\": \"Mobile UI elements for vue.js\",\n \"keywords\": [\n \"com"
},
{
"path": "packages/README.md",
"chars": 0,
"preview": ""
},
{
"path": "packages/actionsheet/README.md",
"chars": 1536,
"preview": "# Overview\nmint-actionsheet is an action sheet component for vue.js\n\n# Installation\nFirst, install `mint-actionsheet` fr"
},
{
"path": "packages/actionsheet/cooking.conf.js",
"chars": 435,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/actionsheet/index.js",
"chars": 49,
"preview": "export { default } from './src/actionsheet.vue';\n"
},
{
"path": "packages/actionsheet/package.json",
"chars": 351,
"preview": "{\n \"name\": \"mint-actionsheet\",\n \"description\": \"An action sheet component for vue.js\",\n \"version\": \"0.1.0\",\n \"main\":"
},
{
"path": "packages/actionsheet/src/actionsheet.vue",
"chars": 2617,
"preview": "<template>\n <transition name=\"actionsheet-float\">\n <div v-show=\"currentValue\" class=\"mint-actionsheet\">\n <ul cl"
},
{
"path": "packages/badge/README.md",
"chars": 12,
"preview": "# mint-badge"
},
{
"path": "packages/badge/cooking.conf.js",
"chars": 429,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/badge/index.js",
"chars": 43,
"preview": "export { default } from './src/badge.vue';\n"
},
{
"path": "packages/badge/package.json",
"chars": 303,
"preview": "{\n \"name\": \"mint-badge\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n "
},
{
"path": "packages/badge/src/badge.vue",
"chars": 1561,
"preview": "<template>\n <span\n class=\"mint-badge\"\n :style=\"{ backgroundColor: color }\"\n :class=\"['is-' + type, 'is-size-' "
},
{
"path": "packages/button/README.md",
"chars": 13,
"preview": "# mint-button"
},
{
"path": "packages/button/cooking.conf.js",
"chars": 430,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/button/index.js",
"chars": 44,
"preview": "export { default } from './src/button.vue';\n"
},
{
"path": "packages/button/package.json",
"chars": 305,
"preview": "{\n \"name\": \"mint-button\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n "
},
{
"path": "packages/button/src/button.vue",
"chars": 3892,
"preview": "<template>\n <button\n :type=\"nativeType\"\n class=\"mint-button\"\n :class=\"['mint-button--' + type, 'mint-button--'"
},
{
"path": "packages/cell/README.md",
"chars": 11,
"preview": "# mint-cell"
},
{
"path": "packages/cell/cooking.conf.js",
"chars": 428,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/cell/index.js",
"chars": 42,
"preview": "export { default } from './src/cell.vue';\n"
},
{
"path": "packages/cell/package.json",
"chars": 302,
"preview": "{\n \"name\": \"mint-cell\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n \""
},
{
"path": "packages/cell/src/cell.vue",
"chars": 4929,
"preview": "<template>\n <a class=\"mint-cell\" :href=\"href\">\n <span class=\"mint-cell-mask\" v-if=\"isLink\"></span>\n <div class=\"m"
},
{
"path": "packages/cell-swipe/cooking.conf.js",
"chars": 433,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/cell-swipe/index.js",
"chars": 48,
"preview": "export { default } from './src/cell-swipe.vue';\n"
},
{
"path": "packages/cell-swipe/package.json",
"chars": 310,
"preview": "{\n \"name\": \"mint-cell-swipe\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe"
},
{
"path": "packages/cell-swipe/src/cell-swipe.vue",
"chars": 6511,
"preview": "<template>\n <x-cell\n v-clickoutside:touchstart=\"swipeMove\"\n @click.native=\"swipeMove()\"\n @touchstart.native=\"s"
},
{
"path": "packages/checklist/README.md",
"chars": 16,
"preview": "# mint-checklist"
},
{
"path": "packages/checklist/cooking.conf.js",
"chars": 433,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/checklist/index.js",
"chars": 47,
"preview": "export { default } from './src/checklist.vue';\n"
},
{
"path": "packages/checklist/package.json",
"chars": 311,
"preview": "{\n \"name\": \"mint-checklist\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\""
},
{
"path": "packages/checklist/src/checklist.vue",
"chars": 3739,
"preview": "<template>\n <div @change=\"$emit('change', currentValue)\" class=\"mint-checklist\" :class=\"{ 'is-limit': max <= currentVal"
},
{
"path": "packages/datetime-picker/README.md",
"chars": 22,
"preview": "# mint-datetime-picker"
},
{
"path": "packages/datetime-picker/cooking.conf.js",
"chars": 438,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/datetime-picker/index.js",
"chars": 53,
"preview": "export { default } from './src/datetime-picker.vue';\n"
},
{
"path": "packages/datetime-picker/package.json",
"chars": 323,
"preview": "{\n \"name\": \"mint-datetime-picker\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"el"
},
{
"path": "packages/datetime-picker/src/datetime-picker.vue",
"chars": 11910,
"preview": "<template>\n <mt-popup v-model=\"visible\" :closeOnClickModal=\"closeOnClickModal\" position=\"bottom\" class=\"mint-datetime\">"
},
{
"path": "packages/field/README.md",
"chars": 12,
"preview": "# mint-field"
},
{
"path": "packages/field/cooking.conf.js",
"chars": 429,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/field/index.js",
"chars": 43,
"preview": "export { default } from './src/field.vue';\n"
},
{
"path": "packages/field/package.json",
"chars": 303,
"preview": "{\n \"name\": \"mint-field\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n "
},
{
"path": "packages/field/src/field.vue",
"chars": 4841,
"preview": "<template>\n <x-cell\n class=\"mint-field\"\n :title=\"label\"\n v-clickoutside=\"doCloseActive\"\n :class=\"[{\n '"
},
{
"path": "packages/header/README.md",
"chars": 13,
"preview": "# mint-header"
},
{
"path": "packages/header/index.js",
"chars": 44,
"preview": "export { default } from './src/header.vue';\n"
},
{
"path": "packages/header/src/header.vue",
"chars": 2035,
"preview": "<template>\n <header\n class=\"mint-header\"\n :class=\"{ 'is-fixed': fixed }\">\n <div class=\"mint-header-button is-l"
},
{
"path": "packages/index-list/README.md",
"chars": 17,
"preview": "# mint-index-list"
},
{
"path": "packages/index-list/cooking.conf.js",
"chars": 433,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/index-list/index.js",
"chars": 48,
"preview": "export { default } from './src/index-list.vue';\n"
},
{
"path": "packages/index-list/package.json",
"chars": 313,
"preview": "{\n \"name\": \"mint-index-list\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe"
},
{
"path": "packages/index-list/src/index-list.vue",
"chars": 4647,
"preview": "<template>\n <div class=\"mint-indexlist\">\n <ul class=\"mint-indexlist-content\" ref=\"content\" :style=\"{ 'height': curre"
},
{
"path": "packages/index-section/README.md",
"chars": 20,
"preview": "# mint-index-section"
},
{
"path": "packages/index-section/cooking.conf.js",
"chars": 436,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/index-section/index.js",
"chars": 51,
"preview": "export { default } from './src/index-section.vue';\n"
},
{
"path": "packages/index-section/package.json",
"chars": 319,
"preview": "{\n \"name\": \"mint-index-section\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elem"
},
{
"path": "packages/index-section/src/index-section.vue",
"chars": 869,
"preview": "<template>\n <li class=\"mint-indexsection\">\n <p class=\"mint-indexsection-index\">{{ index }}</p>\n <ul>\n <slot>"
},
{
"path": "packages/indicator/README.md",
"chars": 1084,
"preview": "# Overview\nvue-indicator is a mobile loading indicator plugin for vue.js.\n\n# Installation\nFirst, install `vue-indicator`"
},
{
"path": "packages/indicator/cooking.conf.js",
"chars": 433,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/indicator/index.js",
"chars": 619,
"preview": "import Vue from 'vue';\n\nconst Indicator = Vue.extend(require('./src/indicator.vue'));\nlet instance;\n\nexport default {\n "
},
{
"path": "packages/indicator/package.json",
"chars": 311,
"preview": "{\n \"name\": \"mint-indicator\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\""
},
{
"path": "packages/indicator/src/indicator.vue",
"chars": 2069,
"preview": "<template>\n <transition name=\"mint-indicator\">\n <div class=\"mint-indicator\" v-show=\"visible\">\n <div class=\"mint"
},
{
"path": "packages/infinite-scroll/README.md",
"chars": 22,
"preview": "# mint-infinite-scroll"
},
{
"path": "packages/infinite-scroll/index.js",
"chars": 90,
"preview": "import 'mint-ui/src/style/empty.css';\nexport { default } from './src/infinite-scroll.js';\n"
},
{
"path": "packages/infinite-scroll/src/directive.js",
"chars": 5386,
"preview": "import Vue from 'vue';\nconst ctx = '@@InfiniteScroll';\n\nvar throttle = function(fn, delay) {\n var now, lastExec, timer,"
},
{
"path": "packages/infinite-scroll/src/infinite-scroll.js",
"chars": 390,
"preview": "import InfiniteScroll from './directive';\nimport 'mint-ui/src/style/empty.css';\nimport Vue from 'vue';\n\nconst install = "
},
{
"path": "packages/lazyload/README.md",
"chars": 15,
"preview": "# mint-lazyload"
},
{
"path": "packages/lazyload/index.js",
"chars": 83,
"preview": "import 'mint-ui/src/style/empty.css';\nexport { default } from './src/lazyload.js';\n"
},
{
"path": "packages/lazyload/src/lazyload.js",
"chars": 101,
"preview": "import Lazyload from 'vue-lazyload';\nimport 'mint-ui/src/style/empty.css';\n\nexport default Lazyload;\n"
},
{
"path": "packages/loadmore/README.md",
"chars": 5041,
"preview": "# Overview\nmint-loadmore is a two-direction mobile pull-to-refresh component for vue.js.\n\n# Installation\n```bash\n$ npm i"
},
{
"path": "packages/loadmore/cooking.conf.js",
"chars": 432,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/loadmore/index.js",
"chars": 46,
"preview": "export { default } from './src/loadmore.vue';\n"
},
{
"path": "packages/loadmore/package.json",
"chars": 307,
"preview": "{\n \"name\": \"mint-loadmore\",\n \"description\": \"\",\n \"version\": \"0.1.2\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\","
},
{
"path": "packages/loadmore/src/loadmore.vue",
"chars": 10653,
"preview": "<template>\n <div class=\"mint-loadmore\">\n <div class=\"mint-loadmore-content\" :class=\"{ 'is-dropped': topDropped || bo"
},
{
"path": "packages/message-box/README.md",
"chars": 18,
"preview": "# mint-message-box"
},
{
"path": "packages/message-box/index.js",
"chars": 48,
"preview": "export { default } from './src/message-box.js';\n"
},
{
"path": "packages/message-box/src/message-box.js",
"chars": 4807,
"preview": "var CONFIRM_TEXT = '确定';\nvar CANCEL_TEXT = '取消';\n\nvar defaults = {\n title: '提示',\n message: '',\n type: '',\n showInput"
},
{
"path": "packages/message-box/src/message-box.vue",
"chars": 7774,
"preview": "<template>\n <div class=\"mint-msgbox-wrapper\">\n <transition name=\"msgbox-bounce\">\n <div class=\"mint-msgbox\" v-sh"
},
{
"path": "packages/navbar/README.md",
"chars": 13,
"preview": "# mint-navbar"
},
{
"path": "packages/navbar/cooking.conf.js",
"chars": 430,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/navbar/index.js",
"chars": 44,
"preview": "export { default } from './src/navbar.vue';\n"
},
{
"path": "packages/navbar/package.json",
"chars": 305,
"preview": "{\n \"name\": \"mint-navbar\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n "
},
{
"path": "packages/navbar/src/navbar.vue",
"chars": 1326,
"preview": "<template>\n <div class=\"mint-navbar\" :class=\"{ 'is-fixed': fixed }\">\n <slot></slot>\n </div>\n</template>\n\n<script>\n/"
},
{
"path": "packages/palette-button/README.md",
"chars": 669,
"preview": "# Overview\npalette-button is a set of buttons that can expand and collapse\n\n# Usage\n\nsee example\n\n# Option\n- content: th"
},
{
"path": "packages/palette-button/cooking.conf.js",
"chars": 586,
"preview": "var cooking = require('cooking');\nvar path = require('path');\n\ncooking.set({\n entry: {\n index: path.join(__dirname, "
},
{
"path": "packages/palette-button/index.js",
"chars": 52,
"preview": "export { default } from './src/palette-button.vue';\n"
},
{
"path": "packages/palette-button/package.json",
"chars": 332,
"preview": "{\n \"name\": \"mint-palette-button\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"cia"
},
{
"path": "packages/palette-button/src/palette-button.vue",
"chars": 4124,
"preview": "<template>\n <div class=\"mint-palette-button\" :class=\"{ expand: expanded, 'mint-palette-button-active': transforming }\"\n"
},
{
"path": "packages/picker/README.md",
"chars": 2486,
"preview": "# Overview\nvue-picker is a multi-slot picker based on vue.js.\n\n# Install\n\n```Bash\nnpm install vue-picker --save\n```\n\n```"
},
{
"path": "packages/picker/cooking.conf.js",
"chars": 430,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/picker/index.js",
"chars": 44,
"preview": "export { default } from './src/picker.vue';\n"
},
{
"path": "packages/picker/package.json",
"chars": 426,
"preview": "{\n \"name\": \"mint-picker\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"homepage\": \"https://g"
},
{
"path": "packages/picker/src/draggable.js",
"chars": 1450,
"preview": "let isDragging = false;\nimport Vue from 'vue';\n\nconst supportTouch = !Vue.prototype.$isServer && 'ontouchstart' in windo"
},
{
"path": "packages/picker/src/picker-slot.vue",
"chars": 12517,
"preview": "<template>\n <div class=\"picker-slot\" :class=\"classNames\" :style=\"flexStyle\">\n <div v-if=\"!divider\" ref=\"wrapper\" cla"
},
{
"path": "packages/picker/src/picker.vue",
"chars": 4515,
"preview": "<template>\n <div class=\"picker\" :class=\"{ 'picker-3d': rotateEffect }\">\n <div class=\"picker-toolbar\" v-if=\"showToolb"
},
{
"path": "packages/picker/src/translate.js",
"chars": 3217,
"preview": "var exportObj = {};\nimport Vue from 'vue';\nif (!Vue.prototype.$isServer) {\n var docStyle = document.documentElement.sty"
},
{
"path": "packages/popup/README.md",
"chars": 1981,
"preview": "# Overview\nmint-popup is a popup component for vue.js\n\n# Installation\nFirst, install `mint-popup` from npm:\n```bash\n$ np"
},
{
"path": "packages/popup/cooking.conf.js",
"chars": 429,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/popup/index.js",
"chars": 43,
"preview": "export { default } from './src/popup.vue';\n"
},
{
"path": "packages/popup/package.json",
"chars": 303,
"preview": "{\n \"name\": \"mint-popup\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n "
},
{
"path": "packages/popup/src/popup.vue",
"chars": 2845,
"preview": "<template>\n <transition :name=\"currentTransition\">\n <div v-show=\"currentValue\" class=\"mint-popup\" :class=\"[position "
},
{
"path": "packages/progress/README.md",
"chars": 462,
"preview": "# mint-progress\n> A mint component\n\n## Installation\n```shell\nnpm i mint-progress -D\n```\n\n## Usage\n```javascript\nimport V"
},
{
"path": "packages/progress/cooking.conf.js",
"chars": 432,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/progress/index.js",
"chars": 46,
"preview": "export { default } from './src/progress.vue';\n"
},
{
"path": "packages/progress/package.json",
"chars": 309,
"preview": "{\n \"name\": \"mint-progress\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\","
},
{
"path": "packages/progress/src/progress.vue",
"chars": 1425,
"preview": "<template>\n <div class=\"mt-progress\">\n <slot name=\"start\"></slot>\n <div class=\"mt-progress-content\">\n <div c"
},
{
"path": "packages/radio/README.md",
"chars": 12,
"preview": "# mint-radio"
},
{
"path": "packages/radio/cooking.conf.js",
"chars": 429,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/radio/index.js",
"chars": 43,
"preview": "export { default } from './src/radio.vue';\n"
},
{
"path": "packages/radio/package.json",
"chars": 303,
"preview": "{\n \"name\": \"mint-radio\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n "
},
{
"path": "packages/radio/src/radio.vue",
"chars": 3242,
"preview": "<template>\n <div class=\"mint-radiolist\" @change=\"$emit('change', currentValue)\">\n <label class=\"mint-radiolist-title"
},
{
"path": "packages/range/README.md",
"chars": 435,
"preview": "# mint-range\n> A mint component\n\n## Installation\n```shell\nnpm i mint-range -D\n```\n\n## Usage\n```javascript\nimport Vue fro"
},
{
"path": "packages/range/cooking.conf.js",
"chars": 429,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/range/index.js",
"chars": 43,
"preview": "export { default } from './src/index.vue';\n"
},
{
"path": "packages/range/package.json",
"chars": 313,
"preview": "{\n \"name\": \"mint-range\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"long.zhang@e"
},
{
"path": "packages/range/src/draggable.js",
"chars": 1447,
"preview": "let isDragging = false;\nimport Vue from 'vue';\nconst supportTouch = !Vue.prototype.$isServer && 'ontouchstart' in window"
},
{
"path": "packages/range/src/index.vue",
"chars": 4236,
"preview": "<template>\n <div class=\"mt-range\" :class=\"{ 'mt-range--disabled': disabled }\">\n <slot name=\"start\"></slot>\n <div "
},
{
"path": "packages/search/README.md",
"chars": 13,
"preview": "# mint-search"
},
{
"path": "packages/search/cooking.conf.js",
"chars": 430,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/search/index.js",
"chars": 44,
"preview": "export { default } from './src/search.vue';\n"
},
{
"path": "packages/search/package.json",
"chars": 305,
"preview": "{\n \"name\": \"mint-search\",\n \"description\": \"\",\n \"version\": \"0.1.0\",\n \"main\": \"lib/index.js\",\n \"author\": \"elemefe\",\n "
},
{
"path": "packages/search/src/search.vue",
"chars": 3195,
"preview": "<template>\n <div class=\"mint-search\">\n <div class=\"mint-searchbar\">\n <div class=\"mint-searchbar-inner\">\n "
},
{
"path": "packages/spinner/README.md",
"chars": 1377,
"preview": "# mint-spinner\n> spinner.\n\n## Install\n```shell\nnpm i mint-spinner -S\n```\n\n## Required\n```shell\nnpm i babel-plugin-compon"
},
{
"path": "packages/spinner/components.json",
"chars": 228,
"preview": "{\n \"index\": \"./index.js\",\n \"double-bounce\": \"./src/spinner/double-bounce.vue\",\n \"fading-circle\": \"./src/spinner/fadin"
},
{
"path": "packages/spinner/cooking.conf.js",
"chars": 841,
"preview": "var cooking = require('cooking');\nvar Components = require('./components.json');\nvar path = require('path');\nvar config "
},
{
"path": "packages/spinner/index.js",
"chars": 41,
"preview": "export { default } from './src/spinner';\n"
},
{
"path": "packages/spinner/package.json",
"chars": 496,
"preview": "{\n \"name\": \"mint-spinner\",\n \"version\": \"2.0.0\",\n \"description\": \"A spinner component for vue.js\",\n \"main\": \"lib/inde"
},
{
"path": "packages/spinner/src/spinner/common.vue",
"chars": 310,
"preview": "<script>\n export default {\n computed: {\n spinnerColor() {\n return this.color || this.$parent.color || '#"
},
{
"path": "packages/spinner/src/spinner/double-bounce.vue",
"chars": 1099,
"preview": "<template>\n <div class=\"mint-spinner-double-bounce\" :style=\"{\n width: spinnerSize,\n height: spinnerSize\n }"
},
{
"path": "packages/spinner/src/spinner/fading-circle.vue",
"chars": 1835,
"preview": "<template>\n <div :class=\"['mint-spinner-fading-circle circle-color-' + _uid]\" :style=\"{\n width: spinnerSize,\n "
},
{
"path": "packages/spinner/src/spinner/snake.vue",
"chars": 686,
"preview": "<template>\n <div class=\"mint-spinner-snake\" :style=\"{\n 'border-top-color': spinnerColor,\n 'border-left-color': sp"
},
{
"path": "packages/spinner/src/spinner/triple-bounce.vue",
"chars": 1281,
"preview": "<template>\n <div class=\"mint-spinner-triple-bounce\">\n <div class=\"mint-spinner-triple-bounce-bounce1\" :style=\"bounce"
},
{
"path": "packages/spinner/src/spinner.vue",
"chars": 1640,
"preview": "<template>\n <span><component :is=\"spinner\"></component></span>\n</template>\n\n<script>\nconst SPINNERS = [\n 'snake',\n 'd"
},
{
"path": "packages/swipe/README.md",
"chars": 12,
"preview": "# mint-swipe"
},
{
"path": "packages/swipe/index.js",
"chars": 43,
"preview": "export { default } from './src/swipe.vue';\n"
},
{
"path": "packages/swipe/package.json",
"chars": 95,
"preview": "{\n \"private\": true,\n \"dependencies\": {\n \"wind-dom\": \"0.0.3\"\n },\n \"name\": \"mint-swipe\"\n}\n"
},
{
"path": "packages/swipe/src/swipe-item.vue",
"chars": 322,
"preview": "<template>\n <div class=\"mint-swipe-item\">\n <slot></slot>\n </div>\n</template>\n\n<script>\n export default {\n name:"
},
{
"path": "packages/swipe/src/swipe.vue",
"chars": 15595,
"preview": "<style>\n @component-namespace mint {\n @component swipe {\n overflow: hidden;\n position: relative;\n hei"
},
{
"path": "packages/swipe-item/README.md",
"chars": 17,
"preview": "# mint-swipe-item"
},
{
"path": "packages/swipe-item/index.js",
"chars": 93,
"preview": "import 'mint-ui/src/style/empty.css';\nexport { default } from '../swipe/src/swipe-item.vue';\n"
},
{
"path": "packages/switch/README.md",
"chars": 13,
"preview": "# mint-switch"
},
{
"path": "packages/switch/cooking.conf.js",
"chars": 430,
"preview": "var cooking = require('cooking');\nvar path = require('path');\nvar config = require('../../build/config');\n\ncooking.set({"
},
{
"path": "packages/switch/index.js",
"chars": 44,
"preview": "export { default } from './src/switch.vue';\n"
}
]
// ... and 36 more files (download for full content)
About this extraction
This page contains the full source code of the ElemeFE/mint-ui GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 236 files (453.0 KB), approximately 137.0k tokens, and a symbol index with 83 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.