Full Code of ElemeFE/mint-ui for AI

master c875541634c1 cached
236 files
453.0 KB
137.0k tokens
83 symbols
1 requests
Download .txt
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

[![Build Status](https://travis-ci.org/ElemeFE/mint-ui.svg?branch=master)](https://travis-ci.org/ElemeFE/mint-ui)
[![npm](https://img.shields.io/npm/v/mint-ui.svg?maxAge=3600)](https://www.npmjs.com/package/mint-ui)
[![NPM downloads](http://img.shields.io/npm/dm/mint-ui.svg)](https://npmjs.org/package/mint-ui)
![JS gzip size](http://img.badgesize.io/elemefe/mint-ui/master/lib/index.js.svg?compression=gzip&label=gzip%20size:%20JS)
![CSS gzip size](http://img.badgesize.io/elemefe/mint-ui/master/lib/style.css.svg?compression=gzip&label=gzip%20size:%20CSS)
[![Join the chat at https://gitter.im/ElemeFE/mint-ui](https://badges.gitter.im/ElemeFE/mint-ui.svg)](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;
 
Download .txt
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
Download .txt
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[![Build Status](https://travis-ci.org/ElemeFE/mint-ui.svg?branch=master)](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.

Copied to clipboard!