diff --git a/_book/.babelrc b/_book/.babelrc new file mode 100644 index 0000000..41789ca --- /dev/null +++ b/_book/.babelrc @@ -0,0 +1,5 @@ +{ + "presets": ["es2015", "stage-2"], + "plugins": ["transform-runtime"], + "comments": false +} diff --git a/_book/.codeclimate.yml b/_book/.codeclimate.yml new file mode 100644 index 0000000..14313fc --- /dev/null +++ b/_book/.codeclimate.yml @@ -0,0 +1,25 @@ +--- +engines: + csslint: + enabled: true + duplication: + enabled: true + config: + languages: + - ruby + - javascript + - python + - php + eslint: + enabled: true + fixme: + enabled: true +ratings: + paths: + - "src/components/Select.vue" +exclude_paths: +- dist/ +- test/ +- docs/ +- config/ +- build/ diff --git a/_book/.csslintrc b/_book/.csslintrc new file mode 100644 index 0000000..aacba95 --- /dev/null +++ b/_book/.csslintrc @@ -0,0 +1,2 @@ +--exclude-exts=.min.css +--ignore=adjoining-classes,box-model,ids,order-alphabetical,unqualified-attributes diff --git a/_book/.eslintignore b/_book/.eslintignore new file mode 100644 index 0000000..96212a3 --- /dev/null +++ b/_book/.eslintignore @@ -0,0 +1 @@ +**/*{.,-}min.js diff --git a/_book/.eslintrc b/_book/.eslintrc new file mode 100644 index 0000000..7f2ceaf --- /dev/null +++ b/_book/.eslintrc @@ -0,0 +1,185 @@ +{ + "plugins": [ + "html" + ], + + "env": { + "browser": true, + "node": true + }, + + "ecmaFeatures": { + "arrowFunctions": true, + "destructuring": true, + "classes": true, + "defaultParams": true, + "blockBindings": true, + "modules": true, + "objectLiteralComputedProperties": true, + "objectLiteralShorthandMethods": true, + "objectLiteralShorthandProperties": true, + "restParams": true, + "spread": true, + "forOf": true, + "generators": true, + "templateStrings": true, + "superInFunctions": true, + "experimentalObjectRestSpread": true + }, + + "rules": { + "accessor-pairs": 2, + "array-bracket-spacing": 0, + "block-scoped-var": 0, + "brace-style": [2, "1tbs", { "allowSingleLine": true }], + "camelcase": 0, + "comma-dangle": [2, "never"], + "comma-spacing": [2, { "before": false, "after": true }], + "comma-style": [2, "last"], + "complexity": 0, + "computed-property-spacing": 0, + "consistent-return": 0, + "consistent-this": 0, + "constructor-super": 2, + "curly": [2, "multi-line"], + "default-case": 0, + "dot-location": [2, "property"], + "dot-notation": 0, + "eol-last": 2, + "eqeqeq": [2, "allow-null"], + "func-names": 0, + "func-style": 0, + "generator-star-spacing": [2, { "before": true, "after": true }], + "guard-for-in": 0, + "handle-callback-err": [2, "^(err|error)$" ], + "indent": [2, 2, { "SwitchCase": 1 }], + "key-spacing": [2, { "beforeColon": false, "afterColon": true }], + "linebreak-style": 0, + "lines-around-comment": 0, + "max-nested-callbacks": 0, + "new-cap": [2, { "newIsCap": true, "capIsNew": false }], + "new-parens": 2, + "newline-after-var": 0, + "no-alert": 0, + "no-array-constructor": 2, + "no-caller": 2, + "no-catch-shadow": 0, + "no-cond-assign": 2, + "no-console": 0, + "no-constant-condition": 0, + "no-continue": 0, + "no-control-regex": 2, + "no-debugger": 2, + "no-delete-var": 2, + "no-div-regex": 0, + "no-dupe-args": 2, + "no-dupe-keys": 2, + "no-duplicate-case": 2, + "no-else-return": 0, + "no-empty": 0, + "no-empty-character-class": 2, + "no-empty-label": 2, + "no-eq-null": 0, + "no-eval": 2, + "no-ex-assign": 2, + "no-extend-native": 2, + "no-extra-bind": 2, + "no-extra-boolean-cast": 2, + "no-extra-parens": 0, + "no-extra-semi": 0, + "no-fallthrough": 2, + "no-floating-decimal": 2, + "no-func-assign": 2, + "no-implied-eval": 2, + "no-inline-comments": 0, + "no-inner-declarations": [2, "functions"], + "no-invalid-regexp": 2, + "no-irregular-whitespace": 2, + "no-iterator": 2, + "no-label-var": 2, + "no-labels": 2, + "no-lone-blocks": 2, + "no-lonely-if": 0, + "no-loop-func": 0, + "no-mixed-requires": 0, + "no-mixed-spaces-and-tabs": 2, + "no-multi-spaces": 2, + "no-multi-str": 2, + "no-multiple-empty-lines": [2, { "max": 1 }], + "no-native-reassign": 2, + "no-negated-in-lhs": 2, + "no-nested-ternary": 0, + "no-new": 2, + "no-new-func": 0, + "no-new-object": 2, + "no-new-require": 2, + "no-new-wrappers": 2, + "no-obj-calls": 2, + "no-octal": 2, + "no-octal-escape": 2, + "no-param-reassign": 0, + "no-path-concat": 0, + "no-process-env": 0, + "no-process-exit": 0, + "no-proto": 0, + "no-redeclare": 2, + "no-regex-spaces": 2, + "no-restricted-modules": 0, + "no-return-assign": 2, + "no-script-url": 0, + "no-self-compare": 2, + "no-sequences": 2, + "no-shadow": 0, + "no-shadow-restricted-names": 2, + "no-spaced-func": 2, + "no-sparse-arrays": 2, + "no-sync": 0, + "no-ternary": 0, + "no-this-before-super": 2, + "no-throw-literal": 2, + "no-trailing-spaces": 2, + "no-undef": 2, + "no-undef-init": 2, + "no-undefined": 0, + "no-underscore-dangle": 0, + "no-unexpected-multiline": 2, + "no-unneeded-ternary": 2, + "no-unreachable": 2, + "no-unused-expressions": 0, + "no-unused-vars": [2, { "vars": "all", "args": "none" }], + "no-use-before-define": 0, + "no-var": 0, + "no-void": 0, + "no-warning-comments": 0, + "no-with": 2, + "object-curly-spacing": 0, + "object-shorthand": 0, + "one-var": [2, { "initialized": "never" }], + "operator-assignment": 0, + "operator-linebreak": [2, "after", { "overrides": { "?": "before", ":": "before" } }], + "padded-blocks": 0, + "prefer-const": 0, + "quote-props": 0, + "quotes": [2, "single", "avoid-escape"], + "radix": 2, + "semi": [2, "never"], + "semi-spacing": 0, + "sort-vars": 0, + "space-after-keywords": [2, "always"], + "space-before-blocks": [2, "always"], + "space-before-function-paren": [2, "always"], + "space-in-parens": [2, "never"], + "space-infix-ops": 2, + "space-return-throw-case": 2, + "space-unary-ops": [2, { "words": true, "nonwords": false }], + "spaced-comment": [2, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!"] }], + "strict": 0, + "use-isnan": 2, + "valid-jsdoc": 0, + "valid-typeof": 2, + "vars-on-top": 0, + "wrap-iife": [2, "any"], + "wrap-regex": 0, + "yoda": [2, "never"] + } +} diff --git a/_book/.gitignore b/_book/.gitignore new file mode 100644 index 0000000..9e75cf3 --- /dev/null +++ b/_book/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +node_modules +npm-debug.log +.idea +test/unit/coverage +.coveralls.yml +.flowconfig diff --git a/_book/.travis.yml b/_book/.travis.yml new file mode 100644 index 0000000..15dc6f2 --- /dev/null +++ b/_book/.travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - "5" + - "5.1" +after_success: + - codeclimate-test-reporter < ./test/unit/coverage/lcov.info diff --git a/_book/CONTRIBUTING.md b/_book/CONTRIBUTING.md new file mode 100644 index 0000000..a8e6d01 --- /dev/null +++ b/_book/CONTRIBUTING.md @@ -0,0 +1,10 @@ +## Pull Requests + +Looks like you want to help out on vue-select.. awesome! Here's a couple things to keep in mind when contributing. + +1. If your PR contains multiple commits, try to keep those commits succinct, with descriptive messages. This makes it easier to understand your thought process. +2. Don't run the build before submitting. The build is only run and committed immediately before a new release, and submitting a PR with a build included is just more to parse. +3. If your PR fixes or references an open issue, be sure to reference it in your message. +4. If you're adding new functionality, make sure your code has good test coverage. + +:tada: Thanks for contributing, and an even bigger thanks for reading these guidelines! diff --git a/_book/LICENSE.md b/_book/LICENSE.md new file mode 100644 index 0000000..54c6f9d --- /dev/null +++ b/_book/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Jeff Sagal & vue-select contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/_book/bower.json b/_book/bower.json new file mode 100644 index 0000000..398c0de --- /dev/null +++ b/_book/bower.json @@ -0,0 +1,32 @@ +{ + "name": "vue-select", + "description": "A native Vue.js select component that provides similar functionality to Select2/Chosen without the overhead of jQuery.", + "main": "dist/vue-select.js", + "authors": [ + "Jeff Sagal " + ], + "repository": { + "type": "git", + "url": "https://github.com/sagalbot/vue-select" + }, + "license": "MIT", + "keywords": [ + "vue.js", + "vue-select", + "select2", + "tagging" + ], + "moduleType": [ + "amd", + "node", + "es6" + ], + "homepage": "http://sagalbot.github.io/vue-select/", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/_book/build/build.js b/_book/build/build.js new file mode 100644 index 0000000..6017cc6 --- /dev/null +++ b/_book/build/build.js @@ -0,0 +1,31 @@ +// https://github.com/shelljs/shelljs +require('shelljs/global') +env.NODE_ENV = 'production' + +var path = require('path') +var config = require('../config') +var ora = require('ora') +var webpack = require('webpack') +var webpackConfig = require('./webpack.prod.conf') + +var spinner = ora('building UMD module...') +spinner.start() + +var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory) +rm('-rf', assetsPath) +mkdir('-p', assetsPath) + +/** + * Build the /dist/ folder + */ +webpack(webpackConfig, function (err, stats) { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n') +}) \ No newline at end of file diff --git a/_book/build/dev-client.js b/_book/build/dev-client.js new file mode 100644 index 0000000..18aa1e2 --- /dev/null +++ b/_book/build/dev-client.js @@ -0,0 +1,9 @@ +/* eslint-disable */ +require('eventsource-polyfill') +var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') + +hotClient.subscribe(function (event) { + if (event.action === 'reload') { + window.location.reload() + } +}) diff --git a/_book/build/dev-server.js b/_book/build/dev-server.js new file mode 100644 index 0000000..b4d8133 --- /dev/null +++ b/_book/build/dev-server.js @@ -0,0 +1,65 @@ +var path = require('path') +var express = require('express') +var webpack = require('webpack') +var config = require('../config') +var proxyMiddleware = require('http-proxy-middleware') +var webpackConfig = process.env.NODE_ENV === 'testing' + ? require('./webpack.prod.conf') + : require('./webpack.dev.conf') + +// default port where dev server listens for incoming traffic +var port = process.env.PORT || config.dev.port +// Define HTTP proxies to your custom API backend +// https://github.com/chimurai/http-proxy-middleware +var proxyTable = config.dev.proxyTable + +var app = express() +var compiler = webpack(webpackConfig) + +var devMiddleware = require('webpack-dev-middleware')(compiler, { + publicPath: webpackConfig.output.publicPath, + stats: { + colors: true, + chunks: false + } +}) + +var hotMiddleware = require('webpack-hot-middleware')(compiler) +// force page reload when html-webpack-plugin template changes +compiler.plugin('compilation', function (compilation) { + compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { + hotMiddleware.publish({ action: 'reload' }) + cb() + }) +}) + +// proxy api requests +Object.keys(proxyTable).forEach(function (context) { + var options = proxyTable[context] + if (typeof options === 'string') { + options = { target: options } + } + app.use(proxyMiddleware(context, options)) +}) + +// handle fallback for HTML5 history API +app.use(require('connect-history-api-fallback')()) + +// serve webpack bundle output +app.use(devMiddleware) + +// enable hot-reload and state-preserving +// compilation error display +app.use(hotMiddleware) + +// serve pure static assets +var staticPath = path.posix.join(config.build.assetsPublicPath, config.build.assetsSubDirectory) +app.use(staticPath, express.static('./static')) + +module.exports = app.listen(port, function (err) { + if (err) { + console.log(err) + return + } + console.log('Listening at http://localhost:' + port + '\n') +}) diff --git a/_book/build/utils.js b/_book/build/utils.js new file mode 100644 index 0000000..d294e35 --- /dev/null +++ b/_book/build/utils.js @@ -0,0 +1,56 @@ +var path = require('path') +var config = require('../config') +var ExtractTextPlugin = require('extract-text-webpack-plugin') + +exports.assetsPath = function (_path) { + return path.posix.join(config.build.assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + // generate loader string to be used with extract text plugin + function generateLoaders (loaders) { + var sourceLoader = loaders.map(function (loader) { + var extraParamChar + if (/\?/.test(loader)) { + loader = loader.replace(/\?/, '-loader?') + extraParamChar = '&' + } else { + loader = loader + '-loader' + extraParamChar = '?' + } + return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '') + }).join('!') + + if (options.extract) { + return ExtractTextPlugin.extract('vue-style-loader', sourceLoader) + } else { + return ['vue-style-loader', sourceLoader].join('!') + } + } + + // http://vuejs.github.io/vue-loader/configurations/extract-css.html + return { + css: generateLoaders(['css']), + postcss: generateLoaders(['css']), + less: generateLoaders(['css', 'less']), + sass: generateLoaders(['css', 'sass?indentedSyntax']), + scss: generateLoaders(['css', 'sass']), + stylus: generateLoaders(['css', 'stylus']), + styl: generateLoaders(['css', 'stylus']) + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + var output = [] + var loaders = exports.cssLoaders(options) + for (var extension in loaders) { + var loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + loader: loader + }) + } + return output +} diff --git a/_book/build/webpack.base.conf.js b/_book/build/webpack.base.conf.js new file mode 100644 index 0000000..e96c076 --- /dev/null +++ b/_book/build/webpack.base.conf.js @@ -0,0 +1,71 @@ +var path = require('path') +var config = require('../config') +var utils = require('./utils') +var projectRoot = path.resolve(__dirname, '../') + +module.exports = { + entry: { + app: process.argv.indexOf('--docs') > 0 ? './docs/docs.js' : './src/dev.js', + }, + output: { + path: config.build.assetsRoot, + publicPath: config.build.assetsPublicPath, + filename: '[name].js' + }, + resolve: { + extensions: ['', '.js', '.vue'], + fallback: [path.join(__dirname, '../node_modules')], + alias: { + 'src': path.resolve(__dirname, '../src'), + 'assets': path.resolve(__dirname, '../docs/assets'), + 'mixins': path.resolve(__dirname, '../src/mixins'), + 'components': path.resolve(__dirname, '../src/components'), + 'docs': path.resolve(__dirname, '../docs'), + 'vue$': 'vue/dist/vue.common.js', + } + }, + resolveLoader: { + fallback: [path.join(__dirname, '../node_modules')] + }, + module: { + loaders: [ + { + test: /\.vue$/, + loader: 'vue-loader' + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: projectRoot, + exclude: /node_modules/ + }, + { + test: /\.json$/, + loader: 'json-loader' + }, + { + test: /\.html$/, + loader: 'vue-html-loader' + }, + { + test: /\.(png|jpe?g|gif)(\?.*)?$/, + loader: 'url', + query: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf|svg)(\?.*)?$/, + loader: 'url', + query: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + }, + vue: { + loaders: utils.cssLoaders() + } +} diff --git a/_book/build/webpack.dev.conf.js b/_book/build/webpack.dev.conf.js new file mode 100644 index 0000000..ca16387 --- /dev/null +++ b/_book/build/webpack.dev.conf.js @@ -0,0 +1,39 @@ +var config = require('../config') +var webpack = require('webpack') +var merge = require('webpack-merge') +var utils = require('./utils') +var baseWebpackConfig = require('./webpack.base.conf') +var HtmlWebpackPlugin = require('html-webpack-plugin') + +// add hot-reload related code to entry chunks +Object.keys(baseWebpackConfig.entry).forEach(function (name) { + baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) +}) + +module.exports = merge(baseWebpackConfig, { + module: { + loaders: utils.styleLoaders().concat({ test: /\.md$/, loader: "html!markdown" }) + }, + // eval-source-map is faster for development + devtool: '#eval-source-map', + plugins: [ + new webpack.DefinePlugin({ + 'process.env': config.dev.env + }), + // https://github.com/glenjamin/webpack-hot-middleware#installation--usage + new webpack.optimize.OccurenceOrderPlugin(), + new webpack.HotModuleReplacementPlugin(), + new webpack.NoErrorsPlugin(), + // https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: 'index.html', + template: process.argv.indexOf('--docs') > 0 ? './docs/docs.html' : 'dev.html', + inject: true + }) + ], + markdownLoader: { + highlight: function (code) { + return require('highlight.js').highlightAuto(code).value; + } + } +}) diff --git a/_book/build/webpack.prod.conf.js b/_book/build/webpack.prod.conf.js new file mode 100644 index 0000000..06c9457 --- /dev/null +++ b/_book/build/webpack.prod.conf.js @@ -0,0 +1,32 @@ +const webpack = require('webpack') +const base = require('./webpack.base.conf') +const config = require('../config') + +base.entry = { + lib: './src/index.js' +} + +base.output = { + path: config.build.assetsRoot, + publicPath: config.build.assetsPublicPath, + filename: 'vue-select.js', + library: 'VueSelect', + libraryTarget: 'umd' +} + +var webpackConfig = Object.assign({}, base) + +webpackConfig.devtool = '#source-map' +webpackConfig.plugins = (webpackConfig.plugins || []).concat([ + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: '"production"' + } + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { warnings: false } + }), + new webpack.optimize.OccurenceOrderPlugin(), +]) + +module.exports = webpackConfig diff --git a/_book/config/dev.env.js b/_book/config/dev.env.js new file mode 100644 index 0000000..efead7c --- /dev/null +++ b/_book/config/dev.env.js @@ -0,0 +1,6 @@ +var merge = require('webpack-merge') +var prodEnv = require('./prod.env') + +module.exports = merge(prodEnv, { + NODE_ENV: '"development"' +}) diff --git a/_book/config/index.js b/_book/config/index.js new file mode 100644 index 0000000..601fe91 --- /dev/null +++ b/_book/config/index.js @@ -0,0 +1,21 @@ +// see http://vuejs-templates.github.io/webpack for documentation. +var path = require('path') + +module.exports = { + build: { + env: require('./prod.env'), + assetsRoot: path.resolve(__dirname, '../dist'), + assetsSubDirectory: '', + assetsPublicPath: '/', + productionSourceMap: true + }, + dev: { + env: require('./dev.env'), + port: 8080, + proxyTable: {} + }, + umd: { + assetsRoot: path.resolve(__dirname, '../umd'), + assetsPublicPath: '/' + } +} diff --git a/_book/config/prod.env.js b/_book/config/prod.env.js new file mode 100644 index 0000000..773d263 --- /dev/null +++ b/_book/config/prod.env.js @@ -0,0 +1,3 @@ +module.exports = { + NODE_ENV: '"production"' +} diff --git a/_book/config/test.env.js b/_book/config/test.env.js new file mode 100644 index 0000000..89f90de --- /dev/null +++ b/_book/config/test.env.js @@ -0,0 +1,6 @@ +var merge = require('webpack-merge') +var devEnv = require('./dev.env') + +module.exports = merge(devEnv, { + NODE_ENV: '"testing"' +}) diff --git a/_book/dev.html b/_book/dev.html new file mode 100644 index 0000000..8425919 --- /dev/null +++ b/_book/dev.html @@ -0,0 +1,45 @@ + + + + + + Vue Select Dev + + + + + + + + +
+ + + + + + + + +
+ + + diff --git a/_book/dist/vue-select.js b/_book/dist/vue-select.js new file mode 100644 index 0000000..5397610 --- /dev/null +++ b/_book/dist/vue-select.js @@ -0,0 +1,3 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueSelect=e():t.VueSelect=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="/",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.mixins=e.VueSelect=void 0;var o=n(84),i=r(o),a=n(42),s=r(a);e.default=i.default,e.VueSelect=i.default,e.mixins=s.default},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){t.exports=!n(9)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(11),o=n(33),i=n(25),a=Object.defineProperty;e.f=n(2)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(59),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(4),o=n(14);t.exports=n(2)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(23)("wks"),o=n(15),i=n(1).Symbol,a="function"==typeof i,s=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))};s.store=r},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(38),o=n(17);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(13);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(1),o=n(6),i=n(56),a=n(7),s="prototype",u=function(t,e,n){var l,c,f,p=t&u.F,d=t&u.G,h=t&u.S,b=t&u.P,v=t&u.B,y=t&u.W,g=d?o:o[e]||(o[e]={}),m=g[s],x=d?r:h?r[e]:(r[e]||{})[s];d&&(n=e);for(l in n)c=!p&&x&&void 0!==x[l],c&&l in g||(f=c?x[l]:n[l],g[l]=d&&"function"!=typeof x[l]?n[l]:v&&c?i(f,r):y&&x[l]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[s]=t[s],e}(f):b&&"function"==typeof f?i(Function.call,f):f,b&&((g.virtual||(g.virtual={}))[l]=f,t&u.R&&m&&!m[l]&&a(m,l,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(4).f,o=n(3),i=n(8)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(23)("keys"),o=n(15);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(1),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(13);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(1),o=n(6),i=n(19),a=n(27),s=n(4).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||s(e,t,{value:a.f(t)})}},function(t,e,n){e.f=n(8)},function(t,e){"use strict";t.exports={props:{loading:{type:Boolean,default:!1},onSearch:{type:Function,default:function(t,e){}}},data:function(){return{mutableLoading:!1}},watch:{search:function(){this.search.length>0&&(this.onSearch(this.search,this.toggleLoading),this.$emit("search",this.search,this.toggleLoading))},loading:function(t){this.mutableLoading=t}},methods:{toggleLoading:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return null==t?this.mutableLoading=!this.mutableLoading:this.mutableLoading=t}}}},function(t,e){"use strict";t.exports={watch:{typeAheadPointer:function(){this.maybeAdjustScroll()}},methods:{maybeAdjustScroll:function(){var t=this.pixelsToPointerTop(),e=this.pixelsToPointerBottom();return t<=this.viewport().top?this.scrollTo(t):e>=this.viewport().bottom?this.scrollTo(this.viewport().top+this.pointerHeight()):void 0},pixelsToPointerTop:function t(){var t=0;if(this.$refs.dropdownMenu)for(var e=0;e0&&(this.typeAheadPointer--,this.maybeAdjustScroll&&this.maybeAdjustScroll())},typeAheadDown:function(){this.typeAheadPointer";for(e.style.display="none",n(58).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(o+"script"+a+"document.F=Object"+o+"/script"+a),t.close(),l=t.F;r--;)delete l[u][i[r]];return l()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[u]=r(t),n=new s,s[u]=null,n[a]=t):n=l(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(38),o=n(17).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(3),o=n(5),i=n(55)(!1),a=n(22)("IE_PROTO");t.exports=function(t,e){var n,s=o(t),u=0,l=[];for(n in s)n!=a&&r(s,n)&&l.push(n);for(;e.length>u;)r(s,n=e[u++])&&(~i(l,n)||l.push(n));return l}},function(t,e,n){t.exports=n(7)},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(44),i=r(o),a=n(47),s=r(a),u=n(48),l=r(u),c=n(29),f=r(c),p=n(30),d=r(p),h=n(28),b=r(h);e.default={mixins:[f.default,d.default,b.default],props:{value:{default:null},options:{type:Array,default:function(){return[]}},maxHeight:{type:String,default:"400px"},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"fade"},clearSearchOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},getOptionLabel:{type:Function,default:function(t){return"object"===("undefined"==typeof t?"undefined":(0,l.default)(t))&&this.label&&t[this.label]?t[this.label]:t}},onChange:{type:Function,default:function(t){this.$emit("input",t)}},taggable:{type:Boolean,default:!1},pushTags:{type:Boolean,default:!1},createOption:{type:Function,default:function(t){return"object"===(0,l.default)(this.mutableOptions[0])&&(t=(0,s.default)({},this.label,t)),this.$emit("option:created",t),t}},resetOnOptionsChange:{type:Boolean,default:!1},noDrop:{type:Boolean,default:!1}},data:function(){return{search:"",open:!1,mutableValue:null,mutableOptions:[]}},watch:{value:function(t){this.mutableValue=t},mutableValue:function(t,e){this.multiple?this.onChange?this.onChange(t):null:this.onChange&&t!==e?this.onChange(t):null},options:function(t){this.mutableOptions=t},mutableOptions:function(){!this.taggable&&this.resetOnOptionsChange&&(this.mutableValue=this.multiple?[]:null)},multiple:function(t){this.mutableValue=t?[]:null}},created:function(){this.mutableValue=this.value,this.mutableOptions=this.options.slice(0),this.mutableLoading=this.loading,this.$on("option:created",this.maybePushTag)},methods:{select:function(t){this.isOptionSelected(t)?this.deselect(t):(this.taggable&&!this.optionExists(t)&&(t=this.createOption(t)),this.multiple&&!this.mutableValue?this.mutableValue=[t]:this.multiple?this.mutableValue.push(t):this.mutableValue=t),this.onAfterSelect(t)},deselect:function(t){var e=this;if(this.multiple){var n=-1;this.mutableValue.forEach(function(r){(r===t||"object"===("undefined"==typeof r?"undefined":(0,l.default)(r))&&r[e.label]===t[e.label])&&(n=r)});var r=this.mutableValue.indexOf(n);this.mutableValue.splice(r,1)}else this.mutableValue=null},onAfterSelect:function(t){this.multiple||(this.open=!this.open,this.$refs.search.blur()),this.clearSearchOnSelect&&(this.search="")},toggleDropdown:function(t){t.target!==this.$refs.openIndicator&&t.target!==this.$refs.search&&t.target!==this.$refs.toggle&&t.target!==this.$el||(this.open?this.$refs.search.blur():(this.open=!0,this.$refs.search.focus()))},isOptionSelected:function(t){var e=this;if(this.multiple&&this.mutableValue){var n=!1;return this.mutableValue.forEach(function(r){"object"===("undefined"==typeof r?"undefined":(0,l.default)(r))&&r[e.label]===t[e.label]?n=!0:"object"===("undefined"==typeof r?"undefined":(0,l.default)(r))&&r[e.label]===t?n=!0:r===t&&(n=!0)}),n}return this.mutableValue===t},onEscape:function(){this.search.length?this.search="":this.$refs.search.blur()},onSearchBlur:function(){this.open=!1,this.$emit("search:blur")},onSearchFocus:function(){this.open=!0,this.$emit("search:focus")},maybeDeleteValue:function(){if(!this.$refs.search.value.length&&this.mutableValue)return this.multiple?this.mutableValue.pop():this.mutableValue=null},optionExists:function(t){var e=this,n=!1;return this.mutableOptions.forEach(function(r){"object"===("undefined"==typeof r?"undefined":(0,l.default)(r))&&r[e.label]===t?n=!0:r===t&&(n=!0)}),n},maybePushTag:function(t){this.pushTags&&this.mutableOptions.push(t)}},computed:{dropdownClasses:function(){return{open:this.dropdownOpen,searchable:this.searchable,unsearchable:!this.searchable,loading:this.mutableLoading}},dropdownOpen:function(){return!this.noDrop&&(this.open&&!this.mutableLoading)},searchPlaceholder:function(){if(this.isValueEmpty&&this.placeholder)return this.placeholder},filteredOptions:function(){var t=this,e=this.mutableOptions.filter(function(e){return"object"===("undefined"==typeof e?"undefined":(0,l.default)(e))&&e.hasOwnProperty(t.label)?e[t.label].toLowerCase().indexOf(t.search.toLowerCase())>-1:"object"!==("undefined"==typeof e?"undefined":(0,l.default)(e))||e.hasOwnProperty(t.label)?e.toLowerCase().indexOf(t.search.toLowerCase())>-1:console.warn('[vue-select warn]: Label key "option.'+t.label+'" does not exist in options object.\nhttp://sagalbot.github.io/vue-select/#ex-labels')});return this.taggable&&this.search.length&&!this.optionExists(this.search)&&e.unshift(this.search),e},isValueEmpty:function(){return!this.mutableValue||("object"===(0,l.default)(this.mutableValue)?!(0,i.default)(this.mutableValue).length:!this.mutableValue.length)},valueAsArray:function(){return this.multiple?this.mutableValue:this.mutableValue?[this.mutableValue]:[]}}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(28),i=r(o),a=n(30),s=r(a),u=n(29),l=r(u);e.default={ajax:i.default,pointer:s.default,pointerScroll:l.default}},function(t,e,n){t.exports={default:n(49),__esModule:!0}},function(t,e,n){t.exports={default:n(50),__esModule:!0}},function(t,e,n){t.exports={default:n(51),__esModule:!0}},function(t,e,n){t.exports={default:n(52),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(43),i=r(o);e.default=function(t,e,n){return e in t?(0,i.default)(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(46),i=r(o),a=n(45),s=r(a),u="function"==typeof s.default&&"symbol"==typeof i.default?function(t){return typeof t}:function(t){return t&&"function"==typeof s.default&&t.constructor===s.default&&t!==s.default.prototype?"symbol":typeof t};e.default="function"==typeof s.default&&"symbol"===u(i.default)?function(t){return"undefined"==typeof t?"undefined":u(t)}:function(t){return t&&"function"==typeof s.default&&t.constructor===s.default&&t!==s.default.prototype?"symbol":"undefined"==typeof t?"undefined":u(t)}},function(t,e,n){n(74);var r=n(6).Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},function(t,e,n){n(75),t.exports=n(6).Object.keys},function(t,e,n){n(78),n(76),n(79),n(80),t.exports=n(6).Symbol},function(t,e,n){n(77),n(81),t.exports=n(27).f("iterator")},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var r=n(5),o=n(72),i=n(71);t.exports=function(t){return function(e,n,a){var s,u=r(e),l=o(u.length),c=i(a,l);if(t&&n!=n){for(;l>c;)if(s=u[c++],s!=s)return!0}else for(;l>c;c++)if((t||c in u)&&u[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var r=n(53);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(10),o=n(37),i=n(20);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,s=n(t),u=i.f,l=0;s.length>l;)u.call(t,a=s[l++])&&e.push(a);return e}},function(t,e,n){t.exports=n(1).document&&document.documentElement},function(t,e,n){var r=n(31);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(31);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(35),o=n(14),i=n(21),a={};n(7)(a,n(8)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(10),o=n(5);t.exports=function(t,e){for(var n,i=o(t),a=r(i),s=a.length,u=0;s>u;)if(i[n=a[u++]]===e)return n}},function(t,e,n){var r=n(15)("meta"),o=n(13),i=n(3),a=n(4).f,s=0,u=Object.isExtensible||function(){return!0},l=!n(9)(function(){return u(Object.preventExtensions({}))}),c=function(t){a(t,r,{value:{i:"O"+ ++s,w:{}}})},f=function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!u(t))return"F";if(!e)return"E";c(t)}return t[r].i},p=function(t,e){if(!i(t,r)){if(!u(t))return!0;if(!e)return!1;c(t)}return t[r].w},d=function(t){return l&&h.NEED&&u(t)&&!i(t,r)&&c(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:f,getWeak:p,onFreeze:d}},function(t,e,n){var r=n(4),o=n(11),i=n(10);t.exports=n(2)?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),s=a.length,u=0;s>u;)r.f(t,n=a[u++],e[n]);return t}},function(t,e,n){var r=n(20),o=n(14),i=n(5),a=n(25),s=n(3),u=n(33),l=Object.getOwnPropertyDescriptor;e.f=n(2)?l:function(t,e){if(t=i(t),e=a(e,!0),u)try{return l(t,e)}catch(t){}if(s(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(5),o=n(36).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return o(t)}catch(t){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?s(t):o(r(t))}},function(t,e,n){var r=n(3),o=n(40),i=n(22)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(12),o=n(6),i=n(9);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(t,e,n){var r=n(24),o=n(16);t.exports=function(t){return function(e,n){var i,a,s=String(o(e)),u=r(n),l=s.length;return u<0||u>=l?t?"":void 0:(i=s.charCodeAt(u),i<55296||i>56319||u+1===l||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):i:t?s.slice(u,u+2):(i-55296<<10)+(a-56320)+65536)}}},function(t,e,n){var r=n(24),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(24),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){"use strict";var r=n(54),o=n(62),i=n(18),a=n(5);t.exports=n(34)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):"keys"==e?o(0,n):"values"==e?o(0,t[n]):o(0,[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){var r=n(12);r(r.S+r.F*!n(2),"Object",{defineProperty:n(4).f})},function(t,e,n){var r=n(40),o=n(10);n(69)("keys",function(){return function(t){return o(r(t))}})},function(t,e){},function(t,e,n){"use strict";var r=n(70)(!0);n(34)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(1),o=n(3),i=n(2),a=n(12),s=n(39),u=n(64).KEY,l=n(9),c=n(23),f=n(21),p=n(15),d=n(8),h=n(27),b=n(26),v=n(63),y=n(57),g=n(60),m=n(11),x=n(5),w=n(25),O=n(14),S=n(35),_=n(67),j=n(66),k=n(4),P=n(10),A=j.f,C=k.f,M=_.f,E=r.Symbol,T=r.JSON,V=T&&T.stringify,L="prototype",$=d("_hidden"),F=d("toPrimitive"),N={}.propertyIsEnumerable,B=c("symbol-registry"),D=c("symbols"),I=c("op-symbols"),z=Object[L],R="function"==typeof E,H=r.QObject,U=!H||!H[L]||!H[L].findChild,W=i&&l(function(){return 7!=S(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=A(z,e);r&&delete z[e],C(t,e,n),r&&t!==z&&C(z,e,r)}:C,J=function(t){var e=D[t]=S(E[L]);return e._k=t,e},G=R&&"symbol"==typeof E.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof E},K=function(t,e,n){return t===z&&K(I,e,n),m(t),e=w(e,!0),m(n),o(D,e)?(n.enumerable?(o(t,$)&&t[$][e]&&(t[$][e]=!1),n=S(n,{enumerable:O(0,!1)})):(o(t,$)||C(t,$,O(1,{})),t[$][e]=!0),W(t,e,n)):C(t,e,n)},Y=function(t,e){m(t);for(var n,r=y(e=x(e)),o=0,i=r.length;i>o;)K(t,n=r[o++],e[n]);return t},Q=function(t,e){return void 0===e?S(t):Y(S(t),e)},Z=function(t){var e=N.call(this,t=w(t,!0));return!(this===z&&o(D,t)&&!o(I,t))&&(!(e||!o(this,t)||!o(D,t)||o(this,$)&&this[$][t])||e)},q=function(t,e){if(t=x(t),e=w(e,!0),t!==z||!o(D,e)||o(I,e)){var n=A(t,e);return!n||!o(D,e)||o(t,$)&&t[$][e]||(n.enumerable=!0),n}},X=function(t){for(var e,n=M(x(t)),r=[],i=0;n.length>i;)o(D,e=n[i++])||e==$||e==u||r.push(e);return r},tt=function(t){for(var e,n=t===z,r=M(n?I:x(t)),i=[],a=0;r.length>a;)!o(D,e=r[a++])||n&&!o(z,e)||i.push(D[e]);return i};R||(E=function(){if(this instanceof E)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===z&&e.call(I,n),o(this,$)&&o(this[$],t)&&(this[$][t]=!1),W(this,t,O(1,n))};return i&&U&&W(z,t,{configurable:!0,set:e}),J(t)},s(E[L],"toString",function(){return this._k}),j.f=q,k.f=K,n(36).f=_.f=X,n(20).f=Z,n(37).f=tt,i&&!n(19)&&s(z,"propertyIsEnumerable",Z,!0),h.f=function(t){return J(d(t))}),a(a.G+a.W+a.F*!R,{Symbol:E});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)d(et[nt++]);for(var et=P(d.store),nt=0;et.length>nt;)b(et[nt++]);a(a.S+a.F*!R,"Symbol",{for:function(t){return o(B,t+="")?B[t]:B[t]=E(t)},keyFor:function(t){if(G(t))return v(B,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){U=!0},useSimple:function(){U=!1}}),a(a.S+a.F*!R,"Object",{create:Q,defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:q,getOwnPropertyNames:X,getOwnPropertySymbols:tt}),T&&a(a.S+a.F*(!R||l(function(){var t=E();return"[null]"!=V([t])||"{}"!=V({a:t})||"{}"!=V(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!G(t)){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return e=r[1],"function"==typeof e&&(n=e),!n&&g(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!G(e))return e}),r[1]=e,V.apply(T,r)}}}),E[L][F]||n(7)(E[L],F,E[L].valueOf),f(E,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},function(t,e,n){n(26)("asyncIterator")},function(t,e,n){n(26)("observable")},function(t,e,n){n(73);for(var r=n(1),o=n(7),i=n(18),a=n(8)("toStringTag"),s=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var l=s[u],c=r[l],f=c&&c.prototype;f&&!f[a]&&o(f,a,l),i[l]=i.Array}},function(t,e,n){e=t.exports=n(83)(),e.push([t.id,'.v-select{position:relative;font-family:sans-serif}.v-select,.v-select *{box-sizing:border-box}.v-select .open-indicator{position:absolute;bottom:6px;right:10px;display:inline-block;cursor:pointer;pointer-events:all;transition:all .15s cubic-bezier(1,-.115,.975,.855);transition-timing-function:cubic-bezier(1,-.115,.975,.855);opacity:1;transition:opacity .1s;height:20px;width:10px}.v-select .open-indicator:before{border-color:rgba(60,60,60,.5);border-style:solid;border-width:3px 3px 0 0;content:"";display:inline-block;height:10px;width:10px;vertical-align:top;transform:rotate(133deg);transition:all .15s cubic-bezier(1,-.115,.975,.855);transition-timing-function:cubic-bezier(1,-.115,.975,.855);box-sizing:inherit}.v-select.open .open-indicator:before{transform:rotate(315deg)}.v-select.loading .open-indicator{opacity:0}.v-select.open .open-indicator{bottom:1px}.v-select .dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;padding:0;background:none;border:1px solid rgba(60,60,60,.26);border-radius:4px;white-space:normal;transition:border-radius .25s}.v-select .dropdown-toggle:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.v-select.searchable .dropdown-toggle{cursor:text}.v-select.unsearchable .dropdown-toggle{cursor:pointer}.v-select.open .dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.v-select .dropdown-menu{display:block;position:absolute;top:100%;left:0;z-index:1000;min-width:160px;padding:5px 0;margin:0;width:100%;overflow-y:scroll;border:1px solid rgba(0,0,0,.26);box-shadow:0 3px 6px 0 rgba(0,0,0,.15);border-top:none;border-radius:0 0 4px 4px;text-align:left;list-style:none;background:#fff}.v-select .no-options{text-align:center}.v-select .selected-tag{color:#333;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;height:26px;margin:4px 1px 0 3px;padding:1px .25em;float:left;line-height:24px}.v-select .selected-tag .close{float:none;margin-right:0;font-size:20px;appearance:none;padding:0;cursor:pointer;background:0 0;border:0;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.v-select input[type=search]::-webkit-search-cancel-button,.v-select input[type=search]::-webkit-search-decoration,.v-select input[type=search]::-webkit-search-results-button,.v-select input[type=search]::-webkit-search-results-decoration{display:none}.v-select input[type=search]::-ms-clear{display:none}.v-select input[type=search],.v-select input[type=search]:focus{appearance:none;-webkit-appearance:none;-moz-appearance:none;line-height:1.42857143;font-size:1em;height:34px;display:inline-block;border:none;outline:none;margin:0;padding:0 .5em;width:10em;max-width:100%;background:none;position:relative;box-shadow:none;float:left;clear:none}.v-select.unsearchable input[type=search]{max-width:1px}.v-select li{line-height:1.42857143}.v-select li>a{display:block;padding:3px 20px;clear:both;color:#333;white-space:nowrap}.v-select li:hover{cursor:pointer}.v-select .dropdown-menu .active>a{color:#333;background:rgba(50,50,50,.1)}.v-select .dropdown-menu>.highlight>a{background:#5897fb;color:#fff}.v-select .highlight:not(:last-child){margin-bottom:0}.v-select .spinner{opacity:0;position:absolute;top:5px;right:10px;font-size:5px;text-indent:-9999em;overflow:hidden;border-top:.9em solid hsla(0,0%,39%,.1);border-right:.9em solid hsla(0,0%,39%,.1);border-bottom:.9em solid hsla(0,0%,39%,.1);border-left:.9em solid rgba(60,60,60,.45);transform:translateZ(0);animation:vSelectSpinner 1.1s infinite linear;transition:opacity .1s}.v-select .spinner,.v-select .spinner:after{border-radius:50%;width:5em;height:5em}.v-select.loading .spinner{opacity:1}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fade-enter-active,.fade-leave-active{transition:opacity .15s cubic-bezier(1,.5,.8,1)}.fade-enter,.fade-leave-to{opacity:0}',""])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e=0&&y.splice(e,1)}function s(t){var e=document.createElement("style");return e.type="text/css",i(t,e),e}function u(t,e){var n,r,o;if(e.singleton){var i=v++;n=b||(b=s(e)),r=l.bind(null,n,i,!1),o=l.bind(null,n,i,!0)}else n=s(e),r=c.bind(null,n),o=function(){a(n)};return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return; +r(t=e)}else o()}}function l(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=g(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function c(t,e){var n=e.css,r=e.media,o=e.sourceMap;if(r&&t.setAttribute("media",r),o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}var f={},p=function(t){var e;return function(){return"undefined"==typeof e&&(e=t.apply(this,arguments)),e}},d=p(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),h=p(function(){return document.head||document.getElementsByTagName("head")[0]}),b=null,v=0,y=[];t.exports=function(t,e){e=e||{},"undefined"==typeof e.singleton&&(e.singleton=d()),"undefined"==typeof e.insertAt&&(e.insertAt="bottom");var n=o(t);return r(n,e),function(t){for(var i=[],a=0;a 0 ? floor : ceil)(it);\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.1 ToPrimitive(input [, PreferredType])\n\tvar isObject = __webpack_require__(13);\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tmodule.exports = function(it, S){\n\t if(!isObject(it))return it;\n\t var fn, val;\n\t if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n\t if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n\t throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(1)\n\t , core = __webpack_require__(6)\n\t , LIBRARY = __webpack_require__(19)\n\t , wksExt = __webpack_require__(27)\n\t , defineProperty = __webpack_require__(4).f;\n\tmodule.exports = function(name){\n\t var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n\t if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports.f = __webpack_require__(8);\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t\tprops: {\n\t\t\tloading: {\n\t\t\t\ttype: Boolean,\n\t\t\t\tdefault: false\n\t\t\t},\n\t\n\t\t\tonSearch: {\n\t\t\t\ttype: Function,\n\t\t\t\tdefault: function _default(search, loading) {}\n\t\t\t}\n\t\t},\n\t\n\t\tdata: function data() {\n\t\t\treturn {\n\t\t\t\tmutableLoading: false\n\t\t\t};\n\t\t},\n\t\n\t\n\t\twatch: {\n\t\t\tsearch: function search() {\n\t\t\t\tif (this.search.length > 0) {\n\t\t\t\t\tthis.onSearch(this.search, this.toggleLoading);\n\t\t\t\t\tthis.$emit('search', this.search, this.toggleLoading);\n\t\t\t\t}\n\t\t\t},\n\t\t\tloading: function loading(val) {\n\t\t\t\tthis.mutableLoading = val;\n\t\t\t}\n\t\t},\n\t\n\t\tmethods: {\n\t\t\ttoggleLoading: function toggleLoading() {\n\t\t\t\tvar toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\n\t\t\t\tif (toggle == null) {\n\t\t\t\t\treturn this.mutableLoading = !this.mutableLoading;\n\t\t\t\t}\n\t\t\t\treturn this.mutableLoading = toggle;\n\t\t\t}\n\t\t}\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = {\n\t watch: {\n\t typeAheadPointer: function typeAheadPointer() {\n\t this.maybeAdjustScroll();\n\t }\n\t },\n\t\n\t methods: {\n\t maybeAdjustScroll: function maybeAdjustScroll() {\n\t var pixelsToPointerTop = this.pixelsToPointerTop();\n\t var pixelsToPointerBottom = this.pixelsToPointerBottom();\n\t\n\t if (pixelsToPointerTop <= this.viewport().top) {\n\t return this.scrollTo(pixelsToPointerTop);\n\t } else if (pixelsToPointerBottom >= this.viewport().bottom) {\n\t return this.scrollTo(this.viewport().top + this.pointerHeight());\n\t }\n\t },\n\t pixelsToPointerTop: function pixelsToPointerTop() {\n\t var pixelsToPointerTop = 0;\n\t if (this.$refs.dropdownMenu) {\n\t for (var i = 0; i < this.typeAheadPointer; i++) {\n\t pixelsToPointerTop += this.$refs.dropdownMenu.children[i].offsetHeight;\n\t }\n\t }\n\t return pixelsToPointerTop;\n\t },\n\t pixelsToPointerBottom: function pixelsToPointerBottom() {\n\t return this.pixelsToPointerTop() + this.pointerHeight();\n\t },\n\t pointerHeight: function pointerHeight() {\n\t var element = this.$refs.dropdownMenu ? this.$refs.dropdownMenu.children[this.typeAheadPointer] : false;\n\t return element ? element.offsetHeight : 0;\n\t },\n\t viewport: function viewport() {\n\t return {\n\t top: this.$refs.dropdownMenu ? this.$refs.dropdownMenu.scrollTop : 0,\n\t bottom: this.$refs.dropdownMenu ? this.$refs.dropdownMenu.offsetHeight + this.$refs.dropdownMenu.scrollTop : 0\n\t };\n\t },\n\t scrollTo: function scrollTo(position) {\n\t return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.scrollTop = position : null;\n\t }\n\t }\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = {\n\t data: function data() {\n\t return {\n\t typeAheadPointer: -1\n\t };\n\t },\n\t\n\t\n\t watch: {\n\t filteredOptions: function filteredOptions() {\n\t this.typeAheadPointer = 0;\n\t }\n\t },\n\t\n\t methods: {\n\t typeAheadUp: function typeAheadUp() {\n\t if (this.typeAheadPointer > 0) {\n\t this.typeAheadPointer--;\n\t if (this.maybeAdjustScroll) {\n\t this.maybeAdjustScroll();\n\t }\n\t }\n\t },\n\t typeAheadDown: function typeAheadDown() {\n\t if (this.typeAheadPointer < this.filteredOptions.length - 1) {\n\t this.typeAheadPointer++;\n\t if (this.maybeAdjustScroll) {\n\t this.maybeAdjustScroll();\n\t }\n\t }\n\t },\n\t typeAheadSelect: function typeAheadSelect() {\n\t if (this.filteredOptions[this.typeAheadPointer]) {\n\t this.select(this.filteredOptions[this.typeAheadPointer]);\n\t } else if (this.taggable && this.search.length) {\n\t this.select(this.search);\n\t }\n\t\n\t if (this.clearSearchOnSelect) {\n\t this.search = \"\";\n\t }\n\t }\n\t }\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = function(it){\n\t return toString.call(it).slice(8, -1);\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(13)\n\t , document = __webpack_require__(1).document\n\t // in old IE typeof document.createElement is 'object'\n\t , is = isObject(document) && isObject(document.createElement);\n\tmodule.exports = function(it){\n\t return is ? document.createElement(it) : {};\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = !__webpack_require__(2) && !__webpack_require__(9)(function(){\n\t return Object.defineProperty(__webpack_require__(32)('div'), 'a', {get: function(){ return 7; }}).a != 7;\n\t});\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(19)\n\t , $export = __webpack_require__(12)\n\t , redefine = __webpack_require__(39)\n\t , hide = __webpack_require__(7)\n\t , has = __webpack_require__(3)\n\t , Iterators = __webpack_require__(18)\n\t , $iterCreate = __webpack_require__(61)\n\t , setToStringTag = __webpack_require__(21)\n\t , getPrototypeOf = __webpack_require__(68)\n\t , ITERATOR = __webpack_require__(8)('iterator')\n\t , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n\t , FF_ITERATOR = '@@iterator'\n\t , KEYS = 'keys'\n\t , VALUES = 'values';\n\t\n\tvar returnThis = function(){ return this; };\n\t\n\tmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n\t $iterCreate(Constructor, NAME, next);\n\t var getMethod = function(kind){\n\t if(!BUGGY && kind in proto)return proto[kind];\n\t switch(kind){\n\t case KEYS: return function keys(){ return new Constructor(this, kind); };\n\t case VALUES: return function values(){ return new Constructor(this, kind); };\n\t } return function entries(){ return new Constructor(this, kind); };\n\t };\n\t var TAG = NAME + ' Iterator'\n\t , DEF_VALUES = DEFAULT == VALUES\n\t , VALUES_BUG = false\n\t , proto = Base.prototype\n\t , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n\t , $default = $native || getMethod(DEFAULT)\n\t , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n\t , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n\t , methods, key, IteratorPrototype;\n\t // Fix native\n\t if($anyNative){\n\t IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n\t if(IteratorPrototype !== Object.prototype){\n\t // Set @@toStringTag to native iterators\n\t setToStringTag(IteratorPrototype, TAG, true);\n\t // fix for some old engines\n\t if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n\t }\n\t }\n\t // fix Array#{values, @@iterator}.name in V8 / FF\n\t if(DEF_VALUES && $native && $native.name !== VALUES){\n\t VALUES_BUG = true;\n\t $default = function values(){ return $native.call(this); };\n\t }\n\t // Define iterator\n\t if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n\t hide(proto, ITERATOR, $default);\n\t }\n\t // Plug for library\n\t Iterators[NAME] = $default;\n\t Iterators[TAG] = returnThis;\n\t if(DEFAULT){\n\t methods = {\n\t values: DEF_VALUES ? $default : getMethod(VALUES),\n\t keys: IS_SET ? $default : getMethod(KEYS),\n\t entries: $entries\n\t };\n\t if(FORCED)for(key in methods){\n\t if(!(key in proto))redefine(proto, key, methods[key]);\n\t } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n\t }\n\t return methods;\n\t};\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n\tvar anObject = __webpack_require__(11)\n\t , dPs = __webpack_require__(65)\n\t , enumBugKeys = __webpack_require__(17)\n\t , IE_PROTO = __webpack_require__(22)('IE_PROTO')\n\t , Empty = function(){ /* empty */ }\n\t , PROTOTYPE = 'prototype';\n\t\n\t// Create object with fake `null` prototype: use iframe Object with cleared prototype\n\tvar createDict = function(){\n\t // Thrash, waste and sodomy: IE GC bug\n\t var iframe = __webpack_require__(32)('iframe')\n\t , i = enumBugKeys.length\n\t , lt = '<'\n\t , gt = '>'\n\t , iframeDocument;\n\t iframe.style.display = 'none';\n\t __webpack_require__(58).appendChild(iframe);\n\t iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n\t // createDict = iframe.contentWindow.Object;\n\t // html.removeChild(iframe);\n\t iframeDocument = iframe.contentWindow.document;\n\t iframeDocument.open();\n\t iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n\t iframeDocument.close();\n\t createDict = iframeDocument.F;\n\t while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n\t return createDict();\n\t};\n\t\n\tmodule.exports = Object.create || function create(O, Properties){\n\t var result;\n\t if(O !== null){\n\t Empty[PROTOTYPE] = anObject(O);\n\t result = new Empty;\n\t Empty[PROTOTYPE] = null;\n\t // add \"__proto__\" for Object.getPrototypeOf polyfill\n\t result[IE_PROTO] = O;\n\t } else result = createDict();\n\t return Properties === undefined ? result : dPs(result, Properties);\n\t};\n\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\n\tvar $keys = __webpack_require__(38)\n\t , hiddenKeys = __webpack_require__(17).concat('length', 'prototype');\n\t\n\texports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n\t return $keys(O, hiddenKeys);\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports) {\n\n\texports.f = Object.getOwnPropertySymbols;\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar has = __webpack_require__(3)\n\t , toIObject = __webpack_require__(5)\n\t , arrayIndexOf = __webpack_require__(55)(false)\n\t , IE_PROTO = __webpack_require__(22)('IE_PROTO');\n\t\n\tmodule.exports = function(object, names){\n\t var O = toIObject(object)\n\t , i = 0\n\t , result = []\n\t , key;\n\t for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n\t // Don't enum bug & hidden keys\n\t while(names.length > i)if(has(O, key = names[i++])){\n\t ~arrayIndexOf(result, key) || result.push(key);\n\t }\n\t return result;\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(7);\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.13 ToObject(argument)\n\tvar defined = __webpack_require__(16);\n\tmodule.exports = function(it){\n\t return Object(defined(it));\n\t};\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _keys = __webpack_require__(44);\n\t\n\tvar _keys2 = _interopRequireDefault(_keys);\n\t\n\tvar _defineProperty2 = __webpack_require__(47);\n\t\n\tvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\t\n\tvar _typeof2 = __webpack_require__(48);\n\t\n\tvar _typeof3 = _interopRequireDefault(_typeof2);\n\t\n\tvar _pointerScroll = __webpack_require__(29);\n\t\n\tvar _pointerScroll2 = _interopRequireDefault(_pointerScroll);\n\t\n\tvar _typeAheadPointer = __webpack_require__(30);\n\t\n\tvar _typeAheadPointer2 = _interopRequireDefault(_typeAheadPointer);\n\t\n\tvar _ajax = __webpack_require__(28);\n\t\n\tvar _ajax2 = _interopRequireDefault(_ajax);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = {\n\t mixins: [_pointerScroll2.default, _typeAheadPointer2.default, _ajax2.default],\n\t\n\t props: {\n\t value: {\n\t default: null\n\t },\n\t\n\t options: {\n\t type: Array,\n\t default: function _default() {\n\t return [];\n\t }\n\t },\n\t\n\t maxHeight: {\n\t type: String,\n\t default: '400px'\n\t },\n\t\n\t searchable: {\n\t type: Boolean,\n\t default: true\n\t },\n\t\n\t multiple: {\n\t type: Boolean,\n\t default: false\n\t },\n\t\n\t placeholder: {\n\t type: String,\n\t default: ''\n\t },\n\t\n\t transition: {\n\t type: String,\n\t default: 'fade'\n\t },\n\t\n\t clearSearchOnSelect: {\n\t type: Boolean,\n\t default: true\n\t },\n\t\n\t label: {\n\t type: String,\n\t default: 'label'\n\t },\n\t\n\t getOptionLabel: {\n\t type: Function,\n\t default: function _default(option) {\n\t if ((typeof option === 'undefined' ? 'undefined' : (0, _typeof3.default)(option)) === 'object') {\n\t if (this.label && option[this.label]) {\n\t return option[this.label];\n\t }\n\t }\n\t return option;\n\t }\n\t },\n\t\n\t onChange: {\n\t type: Function,\n\t default: function _default(val) {\n\t this.$emit('input', val);\n\t }\n\t },\n\t\n\t taggable: {\n\t type: Boolean,\n\t default: false\n\t },\n\t\n\t pushTags: {\n\t type: Boolean,\n\t default: false\n\t },\n\t\n\t createOption: {\n\t type: Function,\n\t default: function _default(newOption) {\n\t if ((0, _typeof3.default)(this.mutableOptions[0]) === 'object') {\n\t newOption = (0, _defineProperty3.default)({}, this.label, newOption);\n\t }\n\t this.$emit('option:created', newOption);\n\t return newOption;\n\t }\n\t },\n\t\n\t resetOnOptionsChange: {\n\t type: Boolean,\n\t default: false\n\t },\n\t\n\t noDrop: {\n\t type: Boolean,\n\t default: false\n\t }\n\t },\n\t\n\t data: function data() {\n\t return {\n\t search: '',\n\t open: false,\n\t mutableValue: null,\n\t mutableOptions: []\n\t };\n\t },\n\t\n\t\n\t watch: {\n\t value: function value(val) {\n\t this.mutableValue = val;\n\t },\n\t mutableValue: function mutableValue(val, old) {\n\t if (this.multiple) {\n\t this.onChange ? this.onChange(val) : null;\n\t } else {\n\t this.onChange && val !== old ? this.onChange(val) : null;\n\t }\n\t },\n\t options: function options(val) {\n\t this.mutableOptions = val;\n\t },\n\t mutableOptions: function mutableOptions() {\n\t if (!this.taggable && this.resetOnOptionsChange) {\n\t this.mutableValue = this.multiple ? [] : null;\n\t }\n\t },\n\t multiple: function multiple(val) {\n\t this.mutableValue = val ? [] : null;\n\t }\n\t },\n\t\n\t created: function created() {\n\t this.mutableValue = this.value;\n\t this.mutableOptions = this.options.slice(0);\n\t this.mutableLoading = this.loading;\n\t\n\t this.$on('option:created', this.maybePushTag);\n\t },\n\t\n\t\n\t methods: {\n\t select: function select(option) {\n\t if (this.isOptionSelected(option)) {\n\t this.deselect(option);\n\t } else {\n\t if (this.taggable && !this.optionExists(option)) {\n\t option = this.createOption(option);\n\t }\n\t\n\t if (this.multiple && !this.mutableValue) {\n\t this.mutableValue = [option];\n\t } else if (this.multiple) {\n\t this.mutableValue.push(option);\n\t } else {\n\t this.mutableValue = option;\n\t }\n\t }\n\t\n\t this.onAfterSelect(option);\n\t },\n\t deselect: function deselect(option) {\n\t var _this = this;\n\t\n\t if (this.multiple) {\n\t var ref = -1;\n\t this.mutableValue.forEach(function (val) {\n\t if (val === option || (typeof val === 'undefined' ? 'undefined' : (0, _typeof3.default)(val)) === 'object' && val[_this.label] === option[_this.label]) {\n\t ref = val;\n\t }\n\t });\n\t var index = this.mutableValue.indexOf(ref);\n\t this.mutableValue.splice(index, 1);\n\t } else {\n\t this.mutableValue = null;\n\t }\n\t },\n\t onAfterSelect: function onAfterSelect(option) {\n\t if (!this.multiple) {\n\t this.open = !this.open;\n\t this.$refs.search.blur();\n\t }\n\t\n\t if (this.clearSearchOnSelect) {\n\t this.search = '';\n\t }\n\t },\n\t toggleDropdown: function toggleDropdown(e) {\n\t if (e.target === this.$refs.openIndicator || e.target === this.$refs.search || e.target === this.$refs.toggle || e.target === this.$el) {\n\t if (this.open) {\n\t this.$refs.search.blur();\n\t } else {\n\t this.open = true;\n\t this.$refs.search.focus();\n\t }\n\t }\n\t },\n\t isOptionSelected: function isOptionSelected(option) {\n\t var _this2 = this;\n\t\n\t if (this.multiple && this.mutableValue) {\n\t var selected = false;\n\t this.mutableValue.forEach(function (opt) {\n\t if ((typeof opt === 'undefined' ? 'undefined' : (0, _typeof3.default)(opt)) === 'object' && opt[_this2.label] === option[_this2.label]) {\n\t selected = true;\n\t } else if ((typeof opt === 'undefined' ? 'undefined' : (0, _typeof3.default)(opt)) === 'object' && opt[_this2.label] === option) {\n\t selected = true;\n\t } else if (opt === option) {\n\t selected = true;\n\t }\n\t });\n\t return selected;\n\t }\n\t\n\t return this.mutableValue === option;\n\t },\n\t onEscape: function onEscape() {\n\t if (!this.search.length) {\n\t this.$refs.search.blur();\n\t } else {\n\t this.search = '';\n\t }\n\t },\n\t onSearchBlur: function onSearchBlur() {\n\t this.open = false;\n\t this.$emit('search:blur');\n\t },\n\t onSearchFocus: function onSearchFocus() {\n\t this.open = true;\n\t this.$emit('search:focus');\n\t },\n\t maybeDeleteValue: function maybeDeleteValue() {\n\t if (!this.$refs.search.value.length && this.mutableValue) {\n\t return this.multiple ? this.mutableValue.pop() : this.mutableValue = null;\n\t }\n\t },\n\t optionExists: function optionExists(option) {\n\t var _this3 = this;\n\t\n\t var exists = false;\n\t\n\t this.mutableOptions.forEach(function (opt) {\n\t if ((typeof opt === 'undefined' ? 'undefined' : (0, _typeof3.default)(opt)) === 'object' && opt[_this3.label] === option) {\n\t exists = true;\n\t } else if (opt === option) {\n\t exists = true;\n\t }\n\t });\n\t\n\t return exists;\n\t },\n\t maybePushTag: function maybePushTag(option) {\n\t if (this.pushTags) {\n\t this.mutableOptions.push(option);\n\t }\n\t }\n\t },\n\t\n\t computed: {\n\t dropdownClasses: function dropdownClasses() {\n\t return {\n\t open: this.dropdownOpen,\n\t searchable: this.searchable,\n\t unsearchable: !this.searchable,\n\t loading: this.mutableLoading\n\t };\n\t },\n\t dropdownOpen: function dropdownOpen() {\n\t return this.noDrop ? false : this.open && !this.mutableLoading;\n\t },\n\t searchPlaceholder: function searchPlaceholder() {\n\t if (this.isValueEmpty && this.placeholder) {\n\t return this.placeholder;\n\t }\n\t },\n\t filteredOptions: function filteredOptions() {\n\t var _this4 = this;\n\t\n\t var options = this.mutableOptions.filter(function (option) {\n\t if ((typeof option === 'undefined' ? 'undefined' : (0, _typeof3.default)(option)) === 'object' && option.hasOwnProperty(_this4.label)) {\n\t return option[_this4.label].toLowerCase().indexOf(_this4.search.toLowerCase()) > -1;\n\t } else if ((typeof option === 'undefined' ? 'undefined' : (0, _typeof3.default)(option)) === 'object' && !option.hasOwnProperty(_this4.label)) {\n\t return console.warn('[vue-select warn]: Label key \"option.' + _this4.label + '\" does not exist in options object.\\nhttp://sagalbot.github.io/vue-select/#ex-labels');\n\t }\n\t return option.toLowerCase().indexOf(_this4.search.toLowerCase()) > -1;\n\t });\n\t if (this.taggable && this.search.length && !this.optionExists(this.search)) {\n\t options.unshift(this.search);\n\t }\n\t return options;\n\t },\n\t isValueEmpty: function isValueEmpty() {\n\t if (this.mutableValue) {\n\t if ((0, _typeof3.default)(this.mutableValue) === 'object') {\n\t return !(0, _keys2.default)(this.mutableValue).length;\n\t }\n\t return !this.mutableValue.length;\n\t }\n\t\n\t return true;\n\t },\n\t valueAsArray: function valueAsArray() {\n\t if (this.multiple) {\n\t return this.mutableValue;\n\t } else if (this.mutableValue) {\n\t return [this.mutableValue];\n\t }\n\t\n\t return [];\n\t }\n\t }\n\t\n\t};\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _ajax = __webpack_require__(28);\n\t\n\tvar _ajax2 = _interopRequireDefault(_ajax);\n\t\n\tvar _typeAheadPointer = __webpack_require__(30);\n\t\n\tvar _typeAheadPointer2 = _interopRequireDefault(_typeAheadPointer);\n\t\n\tvar _pointerScroll = __webpack_require__(29);\n\t\n\tvar _pointerScroll2 = _interopRequireDefault(_pointerScroll);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = { ajax: _ajax2.default, pointer: _typeAheadPointer2.default, pointerScroll: _pointerScroll2.default };\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(49), __esModule: true };\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(50), __esModule: true };\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(51), __esModule: true };\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = { \"default\": __webpack_require__(52), __esModule: true };\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _defineProperty = __webpack_require__(43);\n\t\n\tvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (obj, key, value) {\n\t if (key in obj) {\n\t (0, _defineProperty2.default)(obj, key, {\n\t value: value,\n\t enumerable: true,\n\t configurable: true,\n\t writable: true\n\t });\n\t } else {\n\t obj[key] = value;\n\t }\n\t\n\t return obj;\n\t};\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _iterator = __webpack_require__(46);\n\t\n\tvar _iterator2 = _interopRequireDefault(_iterator);\n\t\n\tvar _symbol = __webpack_require__(45);\n\t\n\tvar _symbol2 = _interopRequireDefault(_symbol);\n\t\n\tvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n\t return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t} : function (obj) {\n\t return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n\t};\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(74);\n\tvar $Object = __webpack_require__(6).Object;\n\tmodule.exports = function defineProperty(it, key, desc){\n\t return $Object.defineProperty(it, key, desc);\n\t};\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(75);\n\tmodule.exports = __webpack_require__(6).Object.keys;\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(78);\n\t__webpack_require__(76);\n\t__webpack_require__(79);\n\t__webpack_require__(80);\n\tmodule.exports = __webpack_require__(6).Symbol;\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(77);\n\t__webpack_require__(81);\n\tmodule.exports = __webpack_require__(27).f('iterator');\n\n/***/ },\n/* 53 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(it){\n\t if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n\t return it;\n\t};\n\n/***/ },\n/* 54 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(){ /* empty */ };\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// false -> Array#indexOf\n\t// true -> Array#includes\n\tvar toIObject = __webpack_require__(5)\n\t , toLength = __webpack_require__(72)\n\t , toIndex = __webpack_require__(71);\n\tmodule.exports = function(IS_INCLUDES){\n\t return function($this, el, fromIndex){\n\t var O = toIObject($this)\n\t , length = toLength(O.length)\n\t , index = toIndex(fromIndex, length)\n\t , value;\n\t // Array#includes uses SameValueZero equality algorithm\n\t if(IS_INCLUDES && el != el)while(length > index){\n\t value = O[index++];\n\t if(value != value)return true;\n\t // Array#toIndex ignores holes, Array#includes - not\n\t } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n\t if(O[index] === el)return IS_INCLUDES || index || 0;\n\t } return !IS_INCLUDES && -1;\n\t };\n\t};\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// optional / simple context binding\n\tvar aFunction = __webpack_require__(53);\n\tmodule.exports = function(fn, that, length){\n\t aFunction(fn);\n\t if(that === undefined)return fn;\n\t switch(length){\n\t case 1: return function(a){\n\t return fn.call(that, a);\n\t };\n\t case 2: return function(a, b){\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function(a, b, c){\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function(/* ...args */){\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar getKeys = __webpack_require__(10)\n\t , gOPS = __webpack_require__(37)\n\t , pIE = __webpack_require__(20);\n\tmodule.exports = function(it){\n\t var result = getKeys(it)\n\t , getSymbols = gOPS.f;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = pIE.f\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n\t } return result;\n\t};\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1).document && document.documentElement;\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\tvar cof = __webpack_require__(31);\n\tmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n\t return cof(it) == 'String' ? it.split('') : Object(it);\n\t};\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.2.2 IsArray(argument)\n\tvar cof = __webpack_require__(31);\n\tmodule.exports = Array.isArray || function isArray(arg){\n\t return cof(arg) == 'Array';\n\t};\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar create = __webpack_require__(35)\n\t , descriptor = __webpack_require__(14)\n\t , setToStringTag = __webpack_require__(21)\n\t , IteratorPrototype = {};\n\t\n\t// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\t__webpack_require__(7)(IteratorPrototype, __webpack_require__(8)('iterator'), function(){ return this; });\n\t\n\tmodule.exports = function(Constructor, NAME, next){\n\t Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n\t setToStringTag(Constructor, NAME + ' Iterator');\n\t};\n\n/***/ },\n/* 62 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(done, value){\n\t return {value: value, done: !!done};\n\t};\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys = __webpack_require__(10)\n\t , toIObject = __webpack_require__(5);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 64 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar META = __webpack_require__(15)('meta')\n\t , isObject = __webpack_require__(13)\n\t , has = __webpack_require__(3)\n\t , setDesc = __webpack_require__(4).f\n\t , id = 0;\n\tvar isExtensible = Object.isExtensible || function(){\n\t return true;\n\t};\n\tvar FREEZE = !__webpack_require__(9)(function(){\n\t return isExtensible(Object.preventExtensions({}));\n\t});\n\tvar setMeta = function(it){\n\t setDesc(it, META, {value: {\n\t i: 'O' + ++id, // object ID\n\t w: {} // weak collections IDs\n\t }});\n\t};\n\tvar fastKey = function(it, create){\n\t // return primitive with prefix\n\t if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\t if(!has(it, META)){\n\t // can't set metadata to uncaught frozen object\n\t if(!isExtensible(it))return 'F';\n\t // not necessary to add metadata\n\t if(!create)return 'E';\n\t // add missing metadata\n\t setMeta(it);\n\t // return object ID\n\t } return it[META].i;\n\t};\n\tvar getWeak = function(it, create){\n\t if(!has(it, META)){\n\t // can't set metadata to uncaught frozen object\n\t if(!isExtensible(it))return true;\n\t // not necessary to add metadata\n\t if(!create)return false;\n\t // add missing metadata\n\t setMeta(it);\n\t // return hash weak collections IDs\n\t } return it[META].w;\n\t};\n\t// add metadata on freeze-family methods calling\n\tvar onFreeze = function(it){\n\t if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n\t return it;\n\t};\n\tvar meta = module.exports = {\n\t KEY: META,\n\t NEED: false,\n\t fastKey: fastKey,\n\t getWeak: getWeak,\n\t onFreeze: onFreeze\n\t};\n\n/***/ },\n/* 65 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(4)\n\t , anObject = __webpack_require__(11)\n\t , getKeys = __webpack_require__(10);\n\t\n\tmodule.exports = __webpack_require__(2) ? Object.defineProperties : function defineProperties(O, Properties){\n\t anObject(O);\n\t var keys = getKeys(Properties)\n\t , length = keys.length\n\t , i = 0\n\t , P;\n\t while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n\t return O;\n\t};\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar pIE = __webpack_require__(20)\n\t , createDesc = __webpack_require__(14)\n\t , toIObject = __webpack_require__(5)\n\t , toPrimitive = __webpack_require__(25)\n\t , has = __webpack_require__(3)\n\t , IE8_DOM_DEFINE = __webpack_require__(33)\n\t , gOPD = Object.getOwnPropertyDescriptor;\n\t\n\texports.f = __webpack_require__(2) ? gOPD : function getOwnPropertyDescriptor(O, P){\n\t O = toIObject(O);\n\t P = toPrimitive(P, true);\n\t if(IE8_DOM_DEFINE)try {\n\t return gOPD(O, P);\n\t } catch(e){ /* empty */ }\n\t if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n\t};\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\tvar toIObject = __webpack_require__(5)\n\t , gOPN = __webpack_require__(36).f\n\t , toString = {}.toString;\n\t\n\tvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n\t ? Object.getOwnPropertyNames(window) : [];\n\t\n\tvar getWindowNames = function(it){\n\t try {\n\t return gOPN(it);\n\t } catch(e){\n\t return windowNames.slice();\n\t }\n\t};\n\t\n\tmodule.exports.f = function getOwnPropertyNames(it){\n\t return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n\t};\n\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\n\tvar has = __webpack_require__(3)\n\t , toObject = __webpack_require__(40)\n\t , IE_PROTO = __webpack_require__(22)('IE_PROTO')\n\t , ObjectProto = Object.prototype;\n\t\n\tmodule.exports = Object.getPrototypeOf || function(O){\n\t O = toObject(O);\n\t if(has(O, IE_PROTO))return O[IE_PROTO];\n\t if(typeof O.constructor == 'function' && O instanceof O.constructor){\n\t return O.constructor.prototype;\n\t } return O instanceof Object ? ObjectProto : null;\n\t};\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// most Object methods by ES6 should accept primitives\n\tvar $export = __webpack_require__(12)\n\t , core = __webpack_require__(6)\n\t , fails = __webpack_require__(9);\n\tmodule.exports = function(KEY, exec){\n\t var fn = (core.Object || {})[KEY] || Object[KEY]\n\t , exp = {};\n\t exp[KEY] = exec(fn);\n\t $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n\t};\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(24)\n\t , defined = __webpack_require__(16);\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tmodule.exports = function(TO_STRING){\n\t return function(that, pos){\n\t var s = String(defined(that))\n\t , i = toInteger(pos)\n\t , l = s.length\n\t , a, b;\n\t if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar toInteger = __webpack_require__(24)\n\t , max = Math.max\n\t , min = Math.min;\n\tmodule.exports = function(index, length){\n\t index = toInteger(index);\n\t return index < 0 ? max(index + length, 0) : min(index, length);\n\t};\n\n/***/ },\n/* 72 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 7.1.15 ToLength\n\tvar toInteger = __webpack_require__(24)\n\t , min = Math.min;\n\tmodule.exports = function(it){\n\t return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n\t};\n\n/***/ },\n/* 73 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar addToUnscopables = __webpack_require__(54)\n\t , step = __webpack_require__(62)\n\t , Iterators = __webpack_require__(18)\n\t , toIObject = __webpack_require__(5);\n\t\n\t// 22.1.3.4 Array.prototype.entries()\n\t// 22.1.3.13 Array.prototype.keys()\n\t// 22.1.3.29 Array.prototype.values()\n\t// 22.1.3.30 Array.prototype[@@iterator]()\n\tmodule.exports = __webpack_require__(34)(Array, 'Array', function(iterated, kind){\n\t this._t = toIObject(iterated); // target\n\t this._i = 0; // next index\n\t this._k = kind; // kind\n\t// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , kind = this._k\n\t , index = this._i++;\n\t if(!O || index >= O.length){\n\t this._t = undefined;\n\t return step(1);\n\t }\n\t if(kind == 'keys' )return step(0, index);\n\t if(kind == 'values')return step(0, O[index]);\n\t return step(0, [index, O[index]]);\n\t}, 'values');\n\t\n\t// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\tIterators.Arguments = Iterators.Array;\n\t\n\taddToUnscopables('keys');\n\taddToUnscopables('values');\n\taddToUnscopables('entries');\n\n/***/ },\n/* 74 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(12);\n\t// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n\t$export($export.S + $export.F * !__webpack_require__(2), 'Object', {defineProperty: __webpack_require__(4).f});\n\n/***/ },\n/* 75 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 Object.keys(O)\n\tvar toObject = __webpack_require__(40)\n\t , $keys = __webpack_require__(10);\n\t\n\t__webpack_require__(69)('keys', function(){\n\t return function keys(it){\n\t return $keys(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 76 */\n/***/ function(module, exports) {\n\n\n\n/***/ },\n/* 77 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(70)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(34)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 78 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar global = __webpack_require__(1)\n\t , has = __webpack_require__(3)\n\t , DESCRIPTORS = __webpack_require__(2)\n\t , $export = __webpack_require__(12)\n\t , redefine = __webpack_require__(39)\n\t , META = __webpack_require__(64).KEY\n\t , $fails = __webpack_require__(9)\n\t , shared = __webpack_require__(23)\n\t , setToStringTag = __webpack_require__(21)\n\t , uid = __webpack_require__(15)\n\t , wks = __webpack_require__(8)\n\t , wksExt = __webpack_require__(27)\n\t , wksDefine = __webpack_require__(26)\n\t , keyOf = __webpack_require__(63)\n\t , enumKeys = __webpack_require__(57)\n\t , isArray = __webpack_require__(60)\n\t , anObject = __webpack_require__(11)\n\t , toIObject = __webpack_require__(5)\n\t , toPrimitive = __webpack_require__(25)\n\t , createDesc = __webpack_require__(14)\n\t , _create = __webpack_require__(35)\n\t , gOPNExt = __webpack_require__(67)\n\t , $GOPD = __webpack_require__(66)\n\t , $DP = __webpack_require__(4)\n\t , $keys = __webpack_require__(10)\n\t , gOPD = $GOPD.f\n\t , dP = $DP.f\n\t , gOPN = gOPNExt.f\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , PROTOTYPE = 'prototype'\n\t , HIDDEN = wks('_hidden')\n\t , TO_PRIMITIVE = wks('toPrimitive')\n\t , isEnum = {}.propertyIsEnumerable\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , OPSymbols = shared('op-symbols')\n\t , ObjectProto = Object[PROTOTYPE]\n\t , USE_NATIVE = typeof $Symbol == 'function'\n\t , QObject = global.QObject;\n\t// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\n\tvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(dP({}, 'a', {\n\t get: function(){ return dP(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = gOPD(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t dP(it, key, D);\n\t if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n\t} : dP;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n\t sym._k = tag;\n\t return sym;\n\t};\n\t\n\tvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n\t return typeof it == 'symbol';\n\t} : function(it){\n\t return it instanceof $Symbol;\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n\t anObject(it);\n\t key = toPrimitive(key, true);\n\t anObject(D);\n\t if(has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return dP(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key = toPrimitive(key, true));\n\t if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t it = toIObject(it);\n\t key = toPrimitive(key, true);\n\t if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n\t var D = gOPD(it, key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = gOPN(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i){\n\t if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n\t } return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var IS_OP = it === ObjectProto\n\t , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i){\n\t if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n\t } return result;\n\t};\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!USE_NATIVE){\n\t $Symbol = function Symbol(){\n\t if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n\t var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n\t var $set = function(value){\n\t if(this === ObjectProto)$set.call(OPSymbols, value);\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t };\n\t if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n\t return wrap(tag);\n\t };\n\t redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t $GOPD.f = $getOwnPropertyDescriptor;\n\t $DP.f = $defineProperty;\n\t __webpack_require__(36).f = gOPNExt.f = $getOwnPropertyNames;\n\t __webpack_require__(20).f = $propertyIsEnumerable;\n\t __webpack_require__(37).f = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(19)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t\n\t wksExt.f = function(name){\n\t return wrap(wks(name));\n\t }\n\t}\n\t\n\t$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\t\n\tfor(var symbols = (\n\t // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\t\n\tfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\t\n\t$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t if(isSymbol(key))return keyOf(SymbolRegistry, key);\n\t throw TypeError(key + ' is not a symbol!');\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t});\n\t\n\t$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t})), 'JSON', {\n\t stringify: function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , replacer, $replacer;\n\t while(arguments.length > i)args.push(arguments[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t }\n\t});\n\t\n\t// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n\t$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(7)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 79 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(26)('asyncIterator');\n\n/***/ },\n/* 80 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(26)('observable');\n\n/***/ },\n/* 81 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(73);\n\tvar global = __webpack_require__(1)\n\t , hide = __webpack_require__(7)\n\t , Iterators = __webpack_require__(18)\n\t , TO_STRING_TAG = __webpack_require__(8)('toStringTag');\n\t\n\tfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n\t var NAME = collections[i]\n\t , Collection = global[NAME]\n\t , proto = Collection && Collection.prototype;\n\t if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n\t Iterators[NAME] = Iterators.Array;\n\t}\n\n/***/ },\n/* 82 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(83)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \".v-select{position:relative;font-family:sans-serif}.v-select,.v-select *{box-sizing:border-box}.v-select .open-indicator{position:absolute;bottom:6px;right:10px;display:inline-block;cursor:pointer;pointer-events:all;transition:all .15s cubic-bezier(1,-.115,.975,.855);transition-timing-function:cubic-bezier(1,-.115,.975,.855);opacity:1;transition:opacity .1s;height:20px;width:10px}.v-select .open-indicator:before{border-color:rgba(60,60,60,.5);border-style:solid;border-width:3px 3px 0 0;content:\\\"\\\";display:inline-block;height:10px;width:10px;vertical-align:top;transform:rotate(133deg);transition:all .15s cubic-bezier(1,-.115,.975,.855);transition-timing-function:cubic-bezier(1,-.115,.975,.855);box-sizing:inherit}.v-select.open .open-indicator:before{transform:rotate(315deg)}.v-select.loading .open-indicator{opacity:0}.v-select.open .open-indicator{bottom:1px}.v-select .dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;padding:0;background:none;border:1px solid rgba(60,60,60,.26);border-radius:4px;white-space:normal;transition:border-radius .25s}.v-select .dropdown-toggle:after{visibility:hidden;display:block;font-size:0;content:\\\" \\\";clear:both;height:0}.v-select.searchable .dropdown-toggle{cursor:text}.v-select.unsearchable .dropdown-toggle{cursor:pointer}.v-select.open .dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.v-select .dropdown-menu{display:block;position:absolute;top:100%;left:0;z-index:1000;min-width:160px;padding:5px 0;margin:0;width:100%;overflow-y:scroll;border:1px solid rgba(0,0,0,.26);box-shadow:0 3px 6px 0 rgba(0,0,0,.15);border-top:none;border-radius:0 0 4px 4px;text-align:left;list-style:none;background:#fff}.v-select .no-options{text-align:center}.v-select .selected-tag{color:#333;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;height:26px;margin:4px 1px 0 3px;padding:1px .25em;float:left;line-height:24px}.v-select .selected-tag .close{float:none;margin-right:0;font-size:20px;appearance:none;padding:0;cursor:pointer;background:0 0;border:0;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.v-select input[type=search]::-webkit-search-cancel-button,.v-select input[type=search]::-webkit-search-decoration,.v-select input[type=search]::-webkit-search-results-button,.v-select input[type=search]::-webkit-search-results-decoration{display:none}.v-select input[type=search]::-ms-clear{display:none}.v-select input[type=search],.v-select input[type=search]:focus{appearance:none;-webkit-appearance:none;-moz-appearance:none;line-height:1.42857143;font-size:1em;height:34px;display:inline-block;border:none;outline:none;margin:0;padding:0 .5em;width:10em;max-width:100%;background:none;position:relative;box-shadow:none;float:left;clear:none}.v-select.unsearchable input[type=search]{max-width:1px}.v-select li{line-height:1.42857143}.v-select li>a{display:block;padding:3px 20px;clear:both;color:#333;white-space:nowrap}.v-select li:hover{cursor:pointer}.v-select .dropdown-menu .active>a{color:#333;background:rgba(50,50,50,.1)}.v-select .dropdown-menu>.highlight>a{background:#5897fb;color:#fff}.v-select .highlight:not(:last-child){margin-bottom:0}.v-select .spinner{opacity:0;position:absolute;top:5px;right:10px;font-size:5px;text-indent:-9999em;overflow:hidden;border-top:.9em solid hsla(0,0%,39%,.1);border-right:.9em solid hsla(0,0%,39%,.1);border-bottom:.9em solid hsla(0,0%,39%,.1);border-left:.9em solid rgba(60,60,60,.45);transform:translateZ(0);animation:vSelectSpinner 1.1s infinite linear;transition:opacity .1s}.v-select .spinner,.v-select .spinner:after{border-radius:50%;width:5em;height:5em}.v-select.loading .spinner{opacity:1}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fade-enter-active,.fade-leave-active{transition:opacity .15s cubic-bezier(1,.5,.8,1)}.fade-enter,.fade-leave-to{opacity:0}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ },\n/* 83 */\n/***/ function(module, exports) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\n\n/***/ },\n/* 84 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\n\t/* styles */\n\t__webpack_require__(88)\n\t\n\tvar Component = __webpack_require__(85)(\n\t /* script */\n\t __webpack_require__(41),\n\t /* template */\n\t __webpack_require__(86),\n\t /* scopeId */\n\t null,\n\t /* cssModules */\n\t null\n\t)\n\t\n\tmodule.exports = Component.exports\n\n\n/***/ },\n/* 85 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function normalizeComponent (\n\t rawScriptExports,\n\t compiledTemplate,\n\t scopeId,\n\t cssModules\n\t) {\n\t var esModule\n\t var scriptExports = rawScriptExports = rawScriptExports || {}\n\t\n\t // ES6 modules interop\n\t var type = typeof rawScriptExports.default\n\t if (type === 'object' || type === 'function') {\n\t esModule = rawScriptExports\n\t scriptExports = rawScriptExports.default\n\t }\n\t\n\t // Vue.extend constructor export interop\n\t var options = typeof scriptExports === 'function'\n\t ? scriptExports.options\n\t : scriptExports\n\t\n\t // render functions\n\t if (compiledTemplate) {\n\t options.render = compiledTemplate.render\n\t options.staticRenderFns = compiledTemplate.staticRenderFns\n\t }\n\t\n\t // scopedId\n\t if (scopeId) {\n\t options._scopeId = scopeId\n\t }\n\t\n\t // inject cssModules\n\t if (cssModules) {\n\t var computed = options.computed || (options.computed = {})\n\t Object.keys(cssModules).forEach(function (key) {\n\t var module = cssModules[key]\n\t computed[key] = function () { return module }\n\t })\n\t }\n\t\n\t return {\n\t esModule: esModule,\n\t exports: scriptExports,\n\t options: options\n\t }\n\t}\n\n\n/***/ },\n/* 86 */\n/***/ function(module, exports) {\n\n\tmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n\t return _c('div', {\n\t staticClass: \"dropdown v-select\",\n\t class: _vm.dropdownClasses\n\t }, [_c('div', {\n\t ref: \"toggle\",\n\t staticClass: \"dropdown-toggle\",\n\t on: {\n\t \"mousedown\": function($event) {\n\t $event.preventDefault();\n\t _vm.toggleDropdown($event)\n\t }\n\t }\n\t }, [_vm._l((_vm.valueAsArray), function(option) {\n\t return _c('span', {\n\t key: option.index,\n\t staticClass: \"selected-tag\"\n\t }, [_vm._v(\"\\n \" + _vm._s(_vm.getOptionLabel(option)) + \"\\n \"), (_vm.multiple) ? _c('button', {\n\t staticClass: \"close\",\n\t attrs: {\n\t \"type\": \"button\"\n\t },\n\t on: {\n\t \"click\": function($event) {\n\t _vm.deselect(option)\n\t }\n\t }\n\t }, [_c('span', {\n\t attrs: {\n\t \"aria-hidden\": \"true\"\n\t }\n\t }, [_vm._v(\"×\")])]) : _vm._e()])\n\t }), _vm._v(\" \"), _c('input', {\n\t directives: [{\n\t name: \"model\",\n\t rawName: \"v-model\",\n\t value: (_vm.search),\n\t expression: \"search\"\n\t }],\n\t ref: \"search\",\n\t staticClass: \"form-control\",\n\t style: ({\n\t width: _vm.isValueEmpty ? '100%' : 'auto'\n\t }),\n\t attrs: {\n\t \"type\": \"search\",\n\t \"placeholder\": _vm.searchPlaceholder,\n\t \"readonly\": !_vm.searchable\n\t },\n\t domProps: {\n\t \"value\": (_vm.search)\n\t },\n\t on: {\n\t \"keydown\": [function($event) {\n\t if (_vm._k($event.keyCode, \"delete\", [8, 46])) { return null; }\n\t _vm.maybeDeleteValue($event)\n\t }, function($event) {\n\t if (_vm._k($event.keyCode, \"up\", 38)) { return null; }\n\t $event.preventDefault();\n\t _vm.typeAheadUp($event)\n\t }, function($event) {\n\t if (_vm._k($event.keyCode, \"down\", 40)) { return null; }\n\t $event.preventDefault();\n\t _vm.typeAheadDown($event)\n\t }],\n\t \"keyup\": [function($event) {\n\t if (_vm._k($event.keyCode, \"esc\", 27)) { return null; }\n\t _vm.onEscape($event)\n\t }, function($event) {\n\t if (_vm._k($event.keyCode, \"enter\", 13)) { return null; }\n\t $event.preventDefault();\n\t _vm.typeAheadSelect($event)\n\t }],\n\t \"blur\": _vm.onSearchBlur,\n\t \"focus\": _vm.onSearchFocus,\n\t \"input\": function($event) {\n\t if ($event.target.composing) { return; }\n\t _vm.search = $event.target.value\n\t }\n\t }\n\t }), _vm._v(\" \"), (!_vm.noDrop) ? _c('i', {\n\t ref: \"openIndicator\",\n\t staticClass: \"open-indicator\",\n\t attrs: {\n\t \"role\": \"presentation\"\n\t }\n\t }) : _vm._e(), _vm._v(\" \"), _vm._t(\"spinner\", [_c('div', {\n\t directives: [{\n\t name: \"show\",\n\t rawName: \"v-show\",\n\t value: (_vm.mutableLoading),\n\t expression: \"mutableLoading\"\n\t }],\n\t staticClass: \"spinner\"\n\t }, [_vm._v(\"Loading...\")])])], 2), _vm._v(\" \"), _c('transition', {\n\t attrs: {\n\t \"name\": _vm.transition\n\t }\n\t }, [(_vm.dropdownOpen) ? _c('ul', {\n\t ref: \"dropdownMenu\",\n\t staticClass: \"dropdown-menu\",\n\t style: ({\n\t 'max-height': _vm.maxHeight\n\t })\n\t }, [_vm._l((_vm.filteredOptions), function(option, index) {\n\t return _c('li', {\n\t key: index,\n\t class: {\n\t active: _vm.isOptionSelected(option), highlight: index === _vm.typeAheadPointer\n\t },\n\t on: {\n\t \"mouseover\": function($event) {\n\t _vm.typeAheadPointer = index\n\t }\n\t }\n\t }, [_c('a', {\n\t on: {\n\t \"mousedown\": function($event) {\n\t $event.preventDefault();\n\t _vm.select(option)\n\t }\n\t }\n\t }, [_vm._v(\"\\n \" + _vm._s(_vm.getOptionLabel(option)) + \"\\n \")])])\n\t }), _vm._v(\" \"), (!_vm.filteredOptions.length) ? _c('li', {\n\t staticClass: \"no-options\"\n\t }, [_vm._t(\"no-options\", [_vm._v(\"Sorry, no matching options.\")])], 2) : _vm._e()], 2) : _vm._e()])], 1)\n\t},staticRenderFns: []}\n\n/***/ },\n/* 87 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\n\t\tAuthor Tobias Koppers @sokra\n\t*/\n\tvar stylesInDom = {},\n\t\tmemoize = function(fn) {\n\t\t\tvar memo;\n\t\t\treturn function () {\n\t\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\t\treturn memo;\n\t\t\t};\n\t\t},\n\t\tisOldIE = memoize(function() {\n\t\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\n\t\t}),\n\t\tgetHeadElement = memoize(function () {\n\t\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\n\t\t}),\n\t\tsingletonElement = null,\n\t\tsingletonCounter = 0,\n\t\tstyleElementsInsertedAtTop = [];\n\t\n\tmodule.exports = function(list, options) {\n\t\tif(false) {\n\t\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t\t}\n\t\n\t\toptions = options || {};\n\t\t// Force single-tag solution on IE6-9, which has a hard limit on the # of \n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// Select.vue?4bae156c","import ajax from './ajax'\nimport pointer from './typeAheadPointer'\nimport pointerScroll from './pointerScroll'\n\nexport default { ajax, pointer, pointerScroll }\n\n\n\n// WEBPACK FOOTER //\n// ./src/mixins/index.js","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 43\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 44\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/symbol.js\n// module id = 45\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/symbol/iterator.js\n// module id = 46\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/defineProperty.js\n// module id = 47\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/typeof.js\n// module id = 48\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/define-property.js\n// module id = 49\n// module chunks = 0","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/keys.js\n// module id = 50\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/symbol/index.js\n// module id = 51\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/symbol/iterator.js\n// module id = 52\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_a-function.js\n// module id = 53\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_add-to-unscopables.js\n// module id = 54\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_array-includes.js\n// module id = 55\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_ctx.js\n// module id = 56\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_enum-keys.js\n// module id = 57\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_html.js\n// module id = 58\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iobject.js\n// module id = 59\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_is-array.js\n// module id = 60\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-create.js\n// module id = 61\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iter-step.js\n// module id = 62\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_keyof.js\n// module id = 63\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_meta.js\n// module id = 64\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-dps.js\n// module id = 65\n// module chunks = 0","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-gopd.js\n// module id = 66\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-gopn-ext.js\n// module id = 67\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-gpo.js\n// module id = 68\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-sap.js\n// module id = 69\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_string-at.js\n// module id = 70\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-index.js\n// module id = 71\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-length.js\n// module id = 72\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.array.iterator.js\n// module id = 73\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.define-property.js\n// module id = 74\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.keys.js\n// module id = 75\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.string.iterator.js\n// module id = 77\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.symbol.js\n// module id = 78\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 79\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es7.symbol.observable.js\n// module id = 80\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/web.dom.iterable.js\n// module id = 81\n// module chunks = 0","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".v-select{position:relative;font-family:sans-serif}.v-select,.v-select *{box-sizing:border-box}.v-select .open-indicator{position:absolute;bottom:6px;right:10px;display:inline-block;cursor:pointer;pointer-events:all;transition:all .15s cubic-bezier(1,-.115,.975,.855);transition-timing-function:cubic-bezier(1,-.115,.975,.855);opacity:1;transition:opacity .1s;height:20px;width:10px}.v-select .open-indicator:before{border-color:rgba(60,60,60,.5);border-style:solid;border-width:3px 3px 0 0;content:\\\"\\\";display:inline-block;height:10px;width:10px;vertical-align:top;transform:rotate(133deg);transition:all .15s cubic-bezier(1,-.115,.975,.855);transition-timing-function:cubic-bezier(1,-.115,.975,.855);box-sizing:inherit}.v-select.open .open-indicator:before{transform:rotate(315deg)}.v-select.loading .open-indicator{opacity:0}.v-select.open .open-indicator{bottom:1px}.v-select .dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;padding:0;background:none;border:1px solid rgba(60,60,60,.26);border-radius:4px;white-space:normal;transition:border-radius .25s}.v-select .dropdown-toggle:after{visibility:hidden;display:block;font-size:0;content:\\\" \\\";clear:both;height:0}.v-select.searchable .dropdown-toggle{cursor:text}.v-select.unsearchable .dropdown-toggle{cursor:pointer}.v-select.open .dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.v-select .dropdown-menu{display:block;position:absolute;top:100%;left:0;z-index:1000;min-width:160px;padding:5px 0;margin:0;width:100%;overflow-y:scroll;border:1px solid rgba(0,0,0,.26);box-shadow:0 3px 6px 0 rgba(0,0,0,.15);border-top:none;border-radius:0 0 4px 4px;text-align:left;list-style:none;background:#fff}.v-select .no-options{text-align:center}.v-select .selected-tag{color:#333;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;height:26px;margin:4px 1px 0 3px;padding:1px .25em;float:left;line-height:24px}.v-select .selected-tag .close{float:none;margin-right:0;font-size:20px;appearance:none;padding:0;cursor:pointer;background:0 0;border:0;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.v-select input[type=search]::-webkit-search-cancel-button,.v-select input[type=search]::-webkit-search-decoration,.v-select input[type=search]::-webkit-search-results-button,.v-select input[type=search]::-webkit-search-results-decoration{display:none}.v-select input[type=search]::-ms-clear{display:none}.v-select input[type=search],.v-select input[type=search]:focus{appearance:none;-webkit-appearance:none;-moz-appearance:none;line-height:1.42857143;font-size:1em;height:34px;display:inline-block;border:none;outline:none;margin:0;padding:0 .5em;width:10em;max-width:100%;background:none;position:relative;box-shadow:none;float:left;clear:none}.v-select.unsearchable input[type=search]{max-width:1px}.v-select li{line-height:1.42857143}.v-select li>a{display:block;padding:3px 20px;clear:both;color:#333;white-space:nowrap}.v-select li:hover{cursor:pointer}.v-select .dropdown-menu .active>a{color:#333;background:rgba(50,50,50,.1)}.v-select .dropdown-menu>.highlight>a{background:#5897fb;color:#fff}.v-select .highlight:not(:last-child){margin-bottom:0}.v-select .spinner{opacity:0;position:absolute;top:5px;right:10px;font-size:5px;text-indent:-9999em;overflow:hidden;border-top:.9em solid hsla(0,0%,39%,.1);border-right:.9em solid hsla(0,0%,39%,.1);border-bottom:.9em solid hsla(0,0%,39%,.1);border-left:.9em solid rgba(60,60,60,.45);transform:translateZ(0);animation:vSelectSpinner 1.1s infinite linear;transition:opacity .1s}.v-select .spinner,.v-select .spinner:after{border-radius:50%;width:5em;height:5em}.v-select.loading .spinner{opacity:1}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fade-enter-active,.fade-leave-active{transition:opacity .15s cubic-bezier(1,.5,.8,1)}.fade-enter,.fade-leave-to{opacity:0}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/vue-loader/lib/style-rewriter.js?id=data-v-3e06dd28!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/Select.vue\n// module id = 82\n// module chunks = 0","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 83\n// module chunks = 0","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader!../../node_modules/vue-loader/lib/style-rewriter?id=data-v-3e06dd28!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Select.vue\")\n\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Select.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler?id=data-v-3e06dd28!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Select.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Select.vue\n// module id = 84\n// module chunks = 0","module.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = options.computed || (options.computed = {})\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/component-normalizer.js\n// module id = 85\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"dropdown v-select\",\n class: _vm.dropdownClasses\n }, [_c('div', {\n ref: \"toggle\",\n staticClass: \"dropdown-toggle\",\n on: {\n \"mousedown\": function($event) {\n $event.preventDefault();\n _vm.toggleDropdown($event)\n }\n }\n }, [_vm._l((_vm.valueAsArray), function(option) {\n return _c('span', {\n key: option.index,\n staticClass: \"selected-tag\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.getOptionLabel(option)) + \"\\n \"), (_vm.multiple) ? _c('button', {\n staticClass: \"close\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": function($event) {\n _vm.deselect(option)\n }\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"×\")])]) : _vm._e()])\n }), _vm._v(\" \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.search),\n expression: \"search\"\n }],\n ref: \"search\",\n staticClass: \"form-control\",\n style: ({\n width: _vm.isValueEmpty ? '100%' : 'auto'\n }),\n attrs: {\n \"type\": \"search\",\n \"placeholder\": _vm.searchPlaceholder,\n \"readonly\": !_vm.searchable\n },\n domProps: {\n \"value\": (_vm.search)\n },\n on: {\n \"keydown\": [function($event) {\n if (_vm._k($event.keyCode, \"delete\", [8, 46])) { return null; }\n _vm.maybeDeleteValue($event)\n }, function($event) {\n if (_vm._k($event.keyCode, \"up\", 38)) { return null; }\n $event.preventDefault();\n _vm.typeAheadUp($event)\n }, function($event) {\n if (_vm._k($event.keyCode, \"down\", 40)) { return null; }\n $event.preventDefault();\n _vm.typeAheadDown($event)\n }],\n \"keyup\": [function($event) {\n if (_vm._k($event.keyCode, \"esc\", 27)) { return null; }\n _vm.onEscape($event)\n }, function($event) {\n if (_vm._k($event.keyCode, \"enter\", 13)) { return null; }\n $event.preventDefault();\n _vm.typeAheadSelect($event)\n }],\n \"blur\": _vm.onSearchBlur,\n \"focus\": _vm.onSearchFocus,\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.search = $event.target.value\n }\n }\n }), _vm._v(\" \"), (!_vm.noDrop) ? _c('i', {\n ref: \"openIndicator\",\n staticClass: \"open-indicator\",\n attrs: {\n \"role\": \"presentation\"\n }\n }) : _vm._e(), _vm._v(\" \"), _vm._t(\"spinner\", [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.mutableLoading),\n expression: \"mutableLoading\"\n }],\n staticClass: \"spinner\"\n }, [_vm._v(\"Loading...\")])])], 2), _vm._v(\" \"), _c('transition', {\n attrs: {\n \"name\": _vm.transition\n }\n }, [(_vm.dropdownOpen) ? _c('ul', {\n ref: \"dropdownMenu\",\n staticClass: \"dropdown-menu\",\n style: ({\n 'max-height': _vm.maxHeight\n })\n }, [_vm._l((_vm.filteredOptions), function(option, index) {\n return _c('li', {\n key: index,\n class: {\n active: _vm.isOptionSelected(option), highlight: index === _vm.typeAheadPointer\n },\n on: {\n \"mouseover\": function($event) {\n _vm.typeAheadPointer = index\n }\n }\n }, [_c('a', {\n on: {\n \"mousedown\": function($event) {\n $event.preventDefault();\n _vm.select(option)\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.getOptionLabel(option)) + \"\\n \")])])\n }), _vm._v(\" \"), (!_vm.filteredOptions.length) ? _c('li', {\n staticClass: \"no-options\"\n }, [_vm._t(\"no-options\", [_vm._v(\"Sorry, no matching options.\")])], 2) : _vm._e()], 2) : _vm._e()])], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler.js?id=data-v-3e06dd28!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Select.vue\n// module id = 86\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar stylesInDom = {},\n\tmemoize = function(fn) {\n\t\tvar memo;\n\t\treturn function () {\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\treturn memo;\n\t\t};\n\t},\n\tisOldIE = memoize(function() {\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\n\t}),\n\tgetHeadElement = memoize(function () {\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\n\t}),\n\tsingletonElement = null,\n\tsingletonCounter = 0,\n\tstyleElementsInsertedAtTop = [];\n\nmodule.exports = function(list, options) {\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of + + + + diff --git a/_book/src/dev.js b/_book/src/dev.js new file mode 100644 index 0000000..50f02e3 --- /dev/null +++ b/_book/src/dev.js @@ -0,0 +1,34 @@ +import Vue from 'vue' +import vSelect from './components/Select.vue' +import countries from 'docs/data/advanced.js' +import debounce from 'lodash/debounce' +import resource from 'vue-resource' + +Vue.use(resource) + +Vue.component('v-select', vSelect) + +Vue.config.devtools = true + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + data: { + placeholder: "placeholder", + value: null, + options: countries, + ajaxRes: [] + }, + methods: { + search(search, loading) { + loading(true) + this.getRepositories(search, loading, this) + }, + getRepositories: debounce((search, loading, vm) => { + vm.$http.get(`https://api.github.com/search/repositories?q=${search}`).then(res => { + vm.ajaxRes = res.data.items + loading(false) + }) + }, 250) + } +}) diff --git a/_book/src/index.js b/_book/src/index.js new file mode 100644 index 0000000..c92e4d5 --- /dev/null +++ b/_book/src/index.js @@ -0,0 +1,5 @@ +import VueSelect from './components/Select.vue' +import mixins from './mixins/index' + +export default VueSelect +export { VueSelect, mixins } diff --git a/_book/src/mixins/ajax.js b/_book/src/mixins/ajax.js new file mode 100644 index 0000000..b897053 --- /dev/null +++ b/_book/src/mixins/ajax.js @@ -0,0 +1,72 @@ +module.exports = { + props: { + /** + * Toggles the adding of a 'loading' class to the main + * .v-select wrapper. Useful to control UI state when + * results are being processed through AJAX. + */ + loading: { + type: Boolean, + default: false + }, + + /** + * Accept a callback function that will be + * run when the search text changes. + * + * loading() accepts a boolean value, and can + * be used to toggle a loading class from + * the onSearch callback. + * + * @param {search} String Current search text + * @param {loading} Function(bool) Toggle loading class + */ + onSearch: { + type: Function, + default: function(search, loading){} + } + }, + + data() { + return { + mutableLoading: false + } + }, + + watch: { + /** + * If a callback & search text has been provided, + * invoke the onSearch callback. + */ + search() { + if (this.search.length > 0) { + this.onSearch(this.search, this.toggleLoading) + this.$emit('search', this.search, this.toggleLoading) + } + }, + /** + * Sync the loading prop with the internal + * mutable loading value. + * @param val + */ + loading(val) { + this.mutableLoading = val + } + }, + + methods: { + /** + * Toggle this.loading. Optionally pass a boolean + * value. If no value is provided, this.loading + * will be set to the opposite of it's current value. + * @param toggle Boolean + * @returns {*} + */ + toggleLoading(toggle = null) { + if (toggle == null) { + return this.mutableLoading = !this.mutableLoading + } + return this.mutableLoading = toggle + } + } +} diff --git a/_book/src/mixins/index.js b/_book/src/mixins/index.js new file mode 100644 index 0000000..991ad77 --- /dev/null +++ b/_book/src/mixins/index.js @@ -0,0 +1,5 @@ +import ajax from './ajax' +import pointer from './typeAheadPointer' +import pointerScroll from './pointerScroll' + +export default { ajax, pointer, pointerScroll } diff --git a/_book/src/mixins/pointerScroll.js b/_book/src/mixins/pointerScroll.js new file mode 100644 index 0000000..5950959 --- /dev/null +++ b/_book/src/mixins/pointerScroll.js @@ -0,0 +1,81 @@ +// flow + +module.exports = { + watch: { + typeAheadPointer() { + this.maybeAdjustScroll() + } + }, + + methods: { + /** + * Adjust the scroll position of the dropdown list + * if the current pointer is outside of the + * overflow bounds. + * @returns {*} + */ + maybeAdjustScroll() { + let pixelsToPointerTop = this.pixelsToPointerTop() + let pixelsToPointerBottom = this.pixelsToPointerBottom() + + if ( pixelsToPointerTop <= this.viewport().top) { + return this.scrollTo( pixelsToPointerTop ) + } else if (pixelsToPointerBottom >= this.viewport().bottom) { + return this.scrollTo( this.viewport().top + this.pointerHeight() ) + } + }, + + /** + * The distance in pixels from the top of the dropdown + * list to the top of the current pointer element. + * @returns {number} + */ + pixelsToPointerTop() { + let pixelsToPointerTop = 0 + if( this.$refs.dropdownMenu ) { + for (let i = 0; i < this.typeAheadPointer; i++) { + pixelsToPointerTop += this.$refs.dropdownMenu.children[i].offsetHeight + } + } + return pixelsToPointerTop + }, + + /** + * The distance in pixels from the top of the dropdown + * list to the bottom of the current pointer element. + * @returns {*} + */ + pixelsToPointerBottom() { + return this.pixelsToPointerTop() + this.pointerHeight() + }, + + /** + * The offsetHeight of the current pointer element. + * @returns {number} + */ + pointerHeight() { + let element = this.$refs.dropdownMenu ? this.$refs.dropdownMenu.children[this.typeAheadPointer] : false + return element ? element.offsetHeight : 0 + }, + + /** + * The currently viewable portion of the dropdownMenu. + * @returns {{top: (string|*|number), bottom: *}} + */ + viewport() { + return { + top: this.$refs.dropdownMenu ? this.$refs.dropdownMenu.scrollTop: 0, + bottom: this.$refs.dropdownMenu ? this.$refs.dropdownMenu.offsetHeight + this.$refs.dropdownMenu.scrollTop : 0 + } + }, + + /** + * Scroll the dropdownMenu to a given position. + * @param position + * @returns {*} + */ + scrollTo(position) { + return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.scrollTop = position : null + }, + } +} diff --git a/_book/src/mixins/typeAheadPointer.js b/_book/src/mixins/typeAheadPointer.js new file mode 100644 index 0000000..26c9374 --- /dev/null +++ b/_book/src/mixins/typeAheadPointer.js @@ -0,0 +1,60 @@ +module.exports = { + data() { + return { + typeAheadPointer: -1 + } + }, + + watch: { + filteredOptions() { + this.typeAheadPointer = 0 + } + }, + + methods: { + /** + * Move the typeAheadPointer visually up the list by + * subtracting the current index by one. + * @return {void} + */ + typeAheadUp() { + if (this.typeAheadPointer > 0) { + this.typeAheadPointer-- + if( this.maybeAdjustScroll ) { + this.maybeAdjustScroll() + } + } + }, + + /** + * Move the typeAheadPointer visually down the list by + * adding the current index by one. + * @return {void} + */ + typeAheadDown() { + if (this.typeAheadPointer < this.filteredOptions.length - 1) { + this.typeAheadPointer++ + if( this.maybeAdjustScroll ) { + this.maybeAdjustScroll() + } + } + }, + + /** + * Select the option at the current typeAheadPointer position. + * Optionally clear the search input on selection. + * @return {void} + */ + typeAheadSelect() { + if( this.filteredOptions[ this.typeAheadPointer ] ) { + this.select( this.filteredOptions[ this.typeAheadPointer ] ); + } else if (this.taggable && this.search.length){ + this.select(this.search) + } + + if( this.clearSearchOnSelect ) { + this.search = ""; + } + }, + } +} \ No newline at end of file diff --git a/_book/static/.gitkeep b/_book/static/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/_book/static/favicon.ico b/_book/static/favicon.ico new file mode 100644 index 0000000..cd9cac6 Binary files /dev/null and b/_book/static/favicon.ico differ diff --git a/_book/static/vue-logo.png b/_book/static/vue-logo.png new file mode 100644 index 0000000..78e8734 Binary files /dev/null and b/_book/static/vue-logo.png differ diff --git a/_book/test/unit/index.js b/_book/test/unit/index.js new file mode 100644 index 0000000..d1830c1 --- /dev/null +++ b/_book/test/unit/index.js @@ -0,0 +1,12 @@ +// Polyfill fn.bind() for PhantomJS +/* eslint-disable no-extend-native */ +Function.prototype.bind = require('function-bind') + +// require all test files (files that ends with .spec.js) +var testsContext = require.context('./specs', true, /\.spec$/) +testsContext.keys().forEach(testsContext) + +// require all src files except main.js for coverage. +// you can also change this to match only the subset of files that +// you want coverage for. +var srcContext = require('../../src/components/Select.vue') \ No newline at end of file diff --git a/_book/test/unit/karma.conf.js b/_book/test/unit/karma.conf.js new file mode 100644 index 0000000..304072f --- /dev/null +++ b/_book/test/unit/karma.conf.js @@ -0,0 +1,78 @@ +// This is a karma config file. For more details see +// http://karma-runner.github.io/0.13/config/configuration-file.html +// we are also using it with karma-webpack +// https://github.com/webpack/karma-webpack + +var path = require('path') +var merge = require('webpack-merge') +var baseConfig = require('../../build/webpack.base.conf') +var utils = require('../../build/utils') +var webpack = require('webpack') +var projectRoot = path.resolve(__dirname, '../../') + +var webpackConfig = merge(baseConfig, { + // use inline sourcemap for karma-sourcemap-loader + module: { + loaders: utils.styleLoaders() + }, + devtool: '#inline-source-map', + vue: { + loaders: { + js: 'isparta' + } + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': require('../../config/test.env') + }) + ] +}) + +// no need for app entry during tests +delete webpackConfig.entry + +// make sure isparta loader is applied before eslint +webpackConfig.module.preLoaders = webpackConfig.module.preLoaders || [] +webpackConfig.module.preLoaders.unshift({ + test: /\.js$/, + loader: 'isparta', + include: path.resolve(projectRoot, 'src') +}) + +// only apply babel for test files when using isparta +webpackConfig.module.loaders.some(function (loader, i) { + if (loader.loader === 'babel') { + loader.include = path.resolve(projectRoot, 'test/unit') + return true + } +}) + +module.exports = function (config) { + config.set({ + // to run in additional browsers: + // 1. install corresponding karma launcher + // http://karma-runner.github.io/0.13/config/browsers.html + // 2. add it to the `browsers` array below. + browsers: ['PhantomJS'], + frameworks: ['jasmine'], + reporters: ['spec', 'coverage'], + files: ['./index.js'], + preprocessors: { + './index.js': ['webpack', 'sourcemap'] + }, + webpack: webpackConfig, + webpackMiddleware: { + noInfo: true + }, + specReporter: { + suppressSkipped: true + }, + coverageReporter: { + dir: './coverage', + reporters: [ + { type: 'lcov', subdir: '.' }, + { type: 'text-summary' } + ] + } + }) +} diff --git a/_book/test/unit/specs/Select.spec.js b/_book/test/unit/specs/Select.spec.js new file mode 100644 index 0000000..7457d21 --- /dev/null +++ b/_book/test/unit/specs/Select.spec.js @@ -0,0 +1,1190 @@ +// flow +/* global describe, it, expect */ + +import Vue from 'vue' +import vSelect from 'src/components/Select.vue' +import pointerScroll from 'src/mixins/pointerScroll.js' + +// http://vue-loader.vuejs.org/en/workflow/testing-with-mocks.html +const Mock = require('!!vue?inject!src/components/Select.vue') + +Vue.component('v-select', vSelect) + +/** + * Simulate a DOM event. + * @param target + * @param event + * @param process + * @returns {Event} + */ +function trigger(target, event, process) { + var e = document.createEvent('HTMLEvents') + e.initEvent(event, true, true) + if (process) process(e) + target.dispatchEvent(e) + return e +} + +/** + * Simulate a Mouse event. + * @param target + * @param event + * @param process + * @returns {Event} + */ +function triggerMouse(target, event, process) { + var e = document.createEvent('MouseEvent') + e.initEvent('event', true, true) + if (process) process(e) + target.dispatchEvent(e) + return e +} + +/** + * Simulate a Focus event. + * @param target + * @param event + * @param process + * @returns {Event} + */ +function triggerFocusEvent(target, event, process) { + var e = document.createEvent('FocusEvent') + e.initEvent('event', true, true) + if (process) process(e) + target.dispatchEvent(e) + return e +} + +/** + * Optionally set the search term, then simulate a return keypress. + * @param vm + * @param search + */ +function searchSubmit(vm, search = false) { + if (search) { + vm.$children[0].search = search + } + + trigger(vm.$children[0].$refs.search, 'keyup', function (e) { + e.keyCode = 13 + }) +} + +describe('Select.vue', () => { + + describe('Selecting values', () => { + it('can accept an array with pre-selected values', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: 'one', + options: ['one', 'two', 'three'] + } + }).$mount() + expect(vm.$children[0].mutableValue).toEqual(vm.value) + }) + + it('can accept an array of objects and pre-selected value (single)', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: {label: 'This is Foo', value: 'foo'}, + options: [{label: 'This is Foo', value: 'foo'}, {label: 'This is Bar', value: 'bar'}] + } + }).$mount() + expect(vm.$children[0].mutableValue).toEqual(vm.value) + }) + + it('can accept an array of objects and pre-selected values (multiple)', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'This is Foo', value: 'foo'}, {label: 'This is Bar', value: 'bar'}], + options: [{label: 'This is Foo', value: 'foo'}, {label: 'This is Bar', value: 'bar'}] + } + }).$mount() + expect(vm.$children[0].mutableValue).toEqual(vm.value) + }) + + it('can deselect a pre-selected object', () => { + const vm = new Vue({ + template: '
', + data: { + value: [{label: 'This is Foo', value: 'foo'}, {label: 'This is Bar', value: 'bar'}], + options: [{label: 'This is Foo', value: 'foo'}, {label: 'This is Bar', value: 'bar'}] + } + }).$mount() + vm.$children[0].select({label: 'This is Foo', value: 'foo'}) + expect(vm.$children[0].mutableValue.length).toEqual(1) + }) + + it('can deselect a pre-selected string', () => { + const vm = new Vue({ + template: '
', + data: { + value: ['foo', 'bar'], + options: ['foo','bar'] + } + }).$mount() + vm.$children[0].select('foo') + expect(vm.$children[0].mutableValue.length).toEqual(1) + }), + + it('can deselect an option when multiple is false', () => { + const vm = new Vue({ + template: `
`, + }).$mount() + vm.$children[0].deselect('foo') + expect(vm.$children[0].mutableValue).toEqual(null) + }) + + it('can determine if the value prop is empty', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [], + options: ['one', 'two', 'three'] + } + }).$mount() + var select = vm.$children[0] + expect(select.isValueEmpty).toEqual(true) + + select.select(['one']) + expect(select.isValueEmpty).toEqual(false) + + select.select([{l: 'f'}]) + expect(select.isValueEmpty).toEqual(false) + + select.select('one') + expect(select.isValueEmpty).toEqual(false) + + select.select({label: 'foo', value: 'foo'}) + expect(select.isValueEmpty).toEqual(false) + + select.select('') + expect(select.isValueEmpty).toEqual(true) + + select.select(null) + expect(select.isValueEmpty).toEqual(true) + }) + + it('should reset the selected values when the multiple property changes', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one'], + multiple: true, + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.multiple = false + + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual(null) + vm.multiple = true + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual([]) + done() + }) + }) + }) + + it('can retain values present in a new array of options', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one'], + options: ['one', 'two', 'three'] + } + }).$mount() + vm.options = ['one', 'five', 'six'] + expect(vm.$children[0].mutableValue).toEqual(['one']) + }) + + it('can determine if an object is already selected', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'one'}], + options: [{label: 'one'}] + } + }).$mount() + + expect(vm.$children[0].isOptionSelected({label: 'one'})).toEqual(true) + }) + + it('can use v-model syntax for a two way binding to a parent component', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: 'foo', + options: ['foo','bar','baz'] + } + }).$mount() + + expect(vm.$children[0].value).toEqual('foo') + expect(vm.$children[0].mutableValue).toEqual('foo') + + vm.$children[0].mutableValue = 'bar' + + Vue.nextTick(() => { + expect(vm.value).toEqual('bar') + done() + }) + }), + + it('can check if a string value is selected when the value is an object and multiple is true', () => { + const vm = new Vue({ + template: `
`, + }).$mount() + expect(vm.$children[0].isOptionSelected('foo')).toEqual(true) + }), + + describe('change Event', () => { + it('will trigger the input event when the selection changes', (done) => { + const vm = new Vue({ + template: `
`, + data: { + foo: '' + } + }).$mount() + + vm.$refs.select.select('bar') + + Vue.nextTick(() => { + expect(vm.foo).toEqual('bar') + done() + }) + }) + + it('should run change when multiple is true and the value changes', (done) => { + const vm = new Vue({ + template: `
`, + data: { + foo: '' + } + }).$mount() + + vm.$refs.select.select('bar') + + Vue.nextTick(() => { + expect(vm.foo).toEqual(['foo','bar']) + done() + }) + + }) + }) + }) + + describe('Filtering Options', () => { + it('should filter an array of strings', () => { + const vm = new Vue({ + template: `
`, + data: {value: 'foo'} + }).$mount() + vm.$refs.select.search = 'ba' + expect(vm.$refs.select.filteredOptions).toEqual(['bar','baz']) + }) + + it('should filter without case-sensitivity', () => { + const vm = new Vue({ + template: `
`, + data: {value: 'foo'} + }).$mount() + vm.$refs.select.search = 'ba' + expect(vm.$refs.select.filteredOptions).toEqual(['Bar','Baz']) + }) + + it('can filter an array of objects based on the objects label key', () => { + const vm = new Vue({ + template: `
`, + data: {value: 'foo'} + }).$mount() + vm.$refs.select.search = 'ba' + expect(JSON.stringify(vm.$refs.select.filteredOptions)).toEqual(JSON.stringify([{label: 'Bar', value: 'bar'}, {label: 'Baz', value: 'baz'}])) + }) + }) + + describe('Toggling Dropdown', () => { + it('should open the dropdown when the el is clicked', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'one'}], + options: [{label: 'one'}] + } + }).$mount() + + vm.$children[0].toggleDropdown({target: vm.$children[0].$refs.search}) + Vue.nextTick(() => { + Vue.nextTick(() => { + expect(vm.$children[0].open).toEqual(true) + done() + }) + }) + }) + + it('can close the dropdown when the el is clicked', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + }).$mount() + + spyOn(vm.$children[0].$refs.search, 'blur') + + vm.$children[0].open = true + vm.$children[0].toggleDropdown({target: vm.$children[0].$el}) + + Vue.nextTick(() => { + expect(vm.$children[0].$refs.search.blur).toHaveBeenCalled() + done() + }) + }) + + + it('closes the dropdown when an option is selected, multiple is true, and closeOnSelect option is true', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [], + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].open = true + vm.$refs.select.select('one') + + Vue.nextTick(() => { + expect(vm.$children[0].open).toEqual(false) + done() + }) + }) + + it('does not close the dropdown when the el is clicked, multiple is true, and closeOnSelect option is false', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [], + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].open = true + vm.$refs.select.select('one') + + Vue.nextTick(() => { + expect(vm.$children[0].open).toEqual(true) + done() + }) + }) + + + it('should close the dropdown on search blur', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'one'}], + options: [{label: 'one'}] + } + }).$mount() + + vm.$children[0].open = true + triggerFocusEvent(vm.$children[0].$refs.toggle, 'blur') + expect(vm.$children[0].open).toEqual(true) + }) + + it('will close the dropdown and emit the search:blur event from onSearchBlur', () => { + const vm = new Vue({ + template: '
', + }).$mount() + + spyOn(vm.$children[0], '$emit') + vm.$children[0].open = true + vm.$children[0].onSearchBlur() + + expect(vm.$children[0].open).toEqual(false) + expect(vm.$children[0].$emit).toHaveBeenCalledWith('search:blur') + }) + + it('will open the dropdown and emit the search:focus event from onSearchFocus', () => { + const vm = new Vue({ + template: '
', + }).$mount() + + spyOn(vm.$children[0], '$emit') + vm.$children[0].onSearchFocus() + + expect(vm.$children[0].open).toEqual(true) + expect(vm.$children[0].$emit).toHaveBeenCalledWith('search:focus') + }) + + it('will close the dropdown on escape, if search is empty', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + }).$mount() + + spyOn(vm.$children[0].$refs.search, 'blur') + + vm.$children[0].open = true + vm.$children[0].onEscape() + + Vue.nextTick(() => { + expect(vm.$children[0].$refs.search.blur).toHaveBeenCalled() + done() + }) + }) + + it('should remove existing search text on escape keyup', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'one'}], + options: [{label: 'one'}] + } + }).$mount() + + vm.$children[0].search = 'foo' + vm.$children[0].onEscape() + expect(vm.$children[0].search).toEqual('') + }) + + it('should have an open class when dropdown is active', () => { + const vm = new Vue({ + template: '
', + components: {vSelect} + }).$mount() + + expect(vm.$children[0].dropdownClasses.open).toEqual(false) + }) + }) + + describe('Moving the Typeahead Pointer', () => { + it('should set the pointer to zero when the filteredOptions change', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].search = 'two' + Vue.nextTick(() => { + expect(vm.$children[0].typeAheadPointer).toEqual(0) + done() + }) + }) + + it('should move the pointer visually up the list on up arrow keyDown', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].typeAheadPointer = 1 + + trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 38) + expect(vm.$children[0].typeAheadPointer).toEqual(0) + }) + + it('should move the pointer visually down the list on down arrow keyDown', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].typeAheadPointer = 1 + trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 40) + expect(vm.$children[0].typeAheadPointer).toEqual(2) + }) + + it('should not move the pointer past the end of the list', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].typeAheadPointer = 2 + vm.$children[0].typeAheadDown() + expect(vm.$children[0].typeAheadPointer).toEqual(2) + }) + + describe('Automatic Scrolling', () => { + it('should check if the scroll position needs to be adjusted on up arrow keyDown', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].typeAheadPointer = 1 + spyOn(vm.$children[0], 'maybeAdjustScroll') + trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 38) + expect(vm.$children[0].maybeAdjustScroll).toHaveBeenCalled() + }) + + it('should check if the scroll position needs to be adjusted on down arrow keyDown', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two', 'three'] + } + }).$mount() + + spyOn(vm.$children[0], 'maybeAdjustScroll') + trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 40) + expect(vm.$children[0].maybeAdjustScroll).toHaveBeenCalled() + }) + + it('should check if the scroll position needs to be adjusted when filtered options changes', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two', 'three'] + } + }).$mount() + + spyOn(vm.$children[0], 'maybeAdjustScroll') + vm.$children[0].search = 'two' + + Vue.nextTick(() => { + expect(vm.$children[0].maybeAdjustScroll).toHaveBeenCalled() + done() + }) + }) + + it('should scroll up if the pointer is above the current viewport bounds', () => { + let methods = Object.assign(pointerScroll.methods, { + pixelsToPointerTop() { + return 1 + }, + viewport() { + return {top: 2, bottom: 0} + } + }) + const vm = new Vue({ + template: '
', + components: { + 'v-select': Mock({ + '../mixins/pointerScroll': {methods} + }) + }, + }).$mount() + + spyOn(vm.$children[0], 'scrollTo') + vm.$children[0].maybeAdjustScroll() + expect(vm.$children[0].scrollTo).toHaveBeenCalledWith(1) + }) + + /** + * @link https://github.com/vuejs/vue-loader/issues/434 + * @todo vue-loader/inject-loader fails when used twice in the same file, + * so the mock here is abastracted to a separate file. + */ + xit('should scroll down if the pointer is below the current viewport bounds', () => { + let methods = Object.assign(pointerScroll.methods, { + pixelsToPointerBottom() { + return 2 + }, + viewport() { + return {top: 0, bottom: 1} + } + }) + const vm = new Vue({ + template: `
`, + components: { + 'v-select': Mock({ + '../mixins/pointerScroll': {methods} + }) + }, + }).$mount() + + spyOn(vm.$children[0], 'scrollTo') + vm.$children[0].maybeAdjustScroll() + expect(vm.$children[0].scrollTo).toHaveBeenCalledWith(vm.$children[0].viewport().top + vm.$children[0].pointerHeight()) + }) + }) + + describe('Measuring pixel distances', () => { + it('should calculate pointerHeight as the offsetHeight of the pointer element if it exists', () => { + const vm = new Vue({ + template: `
`, + }).$mount() + + // dropdown must be open for $refs to exist + vm.$children[0].open = true + + Vue.nextTick(() => { + // Fresh instances start with the pointer at -1 + vm.$children[0].typeAheadPointer = -1 + expect(vm.$children[0].pointerHeight()).toEqual(0) + + vm.$children[0].typeAheadPointer = 100 + expect(vm.$children[0].pointerHeight()).toEqual(0) + + vm.$children[0].typeAheadPointer = 1 + expect(vm.$children[0].pointerHeight()).toEqual(vm.$children[0].$refs.dropdownMenu.children[1].offsetHeight) + }) + }) + }) + }) + + describe('Removing values', () => { + it('can remove the given tag when its close icon is clicked', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one'], + options: ['one', 'two', 'three'] + } + }).$mount() + vm.$children[0].$refs.toggle.querySelector('.close').click() + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual([]) + done() + }) + }) + + it('should remove the last item in the value array on delete keypress when multiple is true', () => { + + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one', 'two'], + options: ['one', 'two', 'three'] + } + }).$mount() + vm.$children[0].maybeDeleteValue() + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual(['one']) + }) + }) + + it('should set value to null on delete keypress when multiple is false', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: 'one', + options: ['one', 'two', 'three'] + } + }).$mount() + vm.$children[0].maybeDeleteValue() + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual(null) + }) + }) + }) + + describe('Labels', () => { + it('can generate labels using a custom label key', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{name: 'Baz'}], + options: [{name: 'Foo'}, {name: 'Baz'}] + } + }).$mount() + expect(vm.$children[0].$refs.toggle.querySelector('.selected-tag').textContent).toContain('Baz') + }) + + it('will console.warn when options contain objects without a valid label key', (done) => { + spyOn(console, 'warn') + const vm = new Vue({ + template: '
', + }).$mount() + Vue.nextTick(() => { + expect(console.warn).toHaveBeenCalledWith( + '[vue-select warn]: Label key "option.label" does not exist in options object.' + + '\nhttp://sagalbot.github.io/vue-select/#ex-labels' + ) + done() + }) + }) + + it('should display a placeholder if the value is empty', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: [{label: 'one'}] + } + }).$mount() + + expect(vm.$children[0].searchPlaceholder).toEqual('foo') + vm.$children[0].mutableValue = {label: 'one'} + Vue.nextTick(() => { + expect(vm.$children[0].searchPlaceholder).not.toBeDefined() + done() + }) + }) + }) + + describe('When Tagging Is Enabled', () => { + it('can determine if a given option string already exists', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: ['one', 'two'] + } + }).$mount() + + expect(vm.$refs.select.optionExists('one')).toEqual(true) + expect(vm.$refs.select.optionExists('three')).toEqual(false) + }) + + it('can determine if a given option object already exists', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: [{label: 'one'}, {label: 'two'}] + } + }).$mount() + + expect(vm.$refs.select.optionExists('one')).toEqual(true) + expect(vm.$refs.select.optionExists('three')).toEqual(false) + }) + + it('can determine if a given option object already exists when using custom labels', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + options: [{foo: 'one'}, {foo: 'two'}] + } + }).$mount() + + expect(vm.$refs.select.optionExists('one')).toEqual(true) + expect(vm.$refs.select.optionExists('three')).toEqual(false) + }) + + it('can add the current search text as the first item in the options list', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one'], + options: ['one', 'two'] + } + }).$mount() + + vm.$children[0].search = 'three' + expect(vm.$children[0].filteredOptions).toEqual(['three']) + }) + + it('can select the current search text as a string', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one'], + options: ['one', 'two'] + } + }).$mount() + + searchSubmit(vm, 'three') + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual(['one', 'three']) + done() + }) + }) + + it('can select the current search text as an object', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'one'}], + options: [{label: 'one'}] + } + }).$mount() + + searchSubmit(vm, 'two') + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual([{label: 'one'}, {label: 'two'}]) + done() + }) + }) + + it('should add a freshly created option/tag to the options list when pushTags is true', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one'], + options: ['one', 'two'] + } + }).$mount() + + searchSubmit(vm, 'three') + expect(vm.$children[0].mutableOptions).toEqual(['one', 'two', 'three']) + }) + + it('wont add a freshly created option/tag to the options list when pushTags is false', () => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: ['one'], + options: ['one', 'two'] + } + }).$mount() + + searchSubmit(vm, 'three') + expect(vm.$children[0].mutableOptions).toEqual(['one', 'two']) + }) + + it('should select an existing option if the search string matches a string from options', (done) => { + let two = 'two' + const vm = new Vue({ + template: '
', + data: { + value: null, + options: ['one', two] + } + }).$mount() + vm.$children[0].search = 'two' + + searchSubmit(vm) + + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue[0]).toBe(two) + done() + }) + }) + + it('should select an existing option if the search string matches an objects label from options', (done) => { + let two = {label: 'two'} + const vm = new Vue({ + template: '
', + data: { + options: [{label: 'one'}, two] + } + }).$mount() + + vm.$children[0].search = 'two' + + Vue.nextTick(() => { + searchSubmit(vm) + // This needs to be wrapped in nextTick() twice so that filteredOptions can + // calculate after setting the search text, and move the typeAheadPointer index to 0. + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue.label).toBe(two.label) + done() + }) + }) + }) + + it('should not reset the selected value when the options property changes', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'one'}], + options: [{label: 'one'}] + } + }).$mount() + vm.$children[0].mutableOptions = [{label: 'two'}] + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual([{label: 'one'}]) + done() + }) + }) + + it('should not allow duplicate tags when using string options', (done) => { + const vm = new Vue({ + template: `
`, + }).$mount() + vm.$refs.select.search = 'one' + searchSubmit(vm) + Vue.nextTick(() => { + expect(vm.$refs.select.mutableValue).toEqual(['one']) + expect(vm.$refs.select.search).toEqual('') + vm.$refs.select.search = 'one' + searchSubmit(vm) + Vue.nextTick(() => { + expect(vm.$refs.select.mutableValue).toEqual([]) + expect(vm.$refs.select.search).toEqual('') + done() + }) + }) + }) + + it('should not allow duplicate tags when using object options', (done) => { + const vm = new Vue({ + template: `
`, + }).$mount() + vm.$refs.select.search = 'one' + searchSubmit(vm) + Vue.nextTick(() => { + expect(vm.$refs.select.mutableValue).toEqual(['one']) + expect(vm.$refs.select.search).toEqual('') + vm.$refs.select.search = 'one' + searchSubmit(vm) + Vue.nextTick(() => { + expect(vm.$refs.select.mutableValue).toEqual([]) + expect(vm.$refs.select.search).toEqual('') + done() + }) + }) + + }) + }) + + describe('Asynchronous Loading', () => { + it('can toggle the loading class', () => { + const vm = new Vue({ + template: '
', + }).$mount() + + vm.$refs.select.toggleLoading() + expect(vm.$refs.select.mutableLoading).toEqual(true) + + vm.$refs.select.toggleLoading(true) + expect(vm.$refs.select.mutableLoading).toEqual(true) + }) + + it('should trigger the onSearch callback when the search text changes', (done) => { + const vm = new Vue({ + template: '
', + data: { + called: false + }, + methods: { + foo(val) { + this.called = val + } + } + }).$mount() + + vm.$refs.select.search = 'foo' + + Vue.nextTick(() => { + expect(vm.called).toEqual('foo') + done() + }) + }) + + it('should not trigger the onSearch callback if the search text is empty', (done) => { + const vm = new Vue({ + template: '
', + data: { called: false }, + methods: { + foo(val) { + this.called = ! this.called + } + } + }).$mount() + + vm.$refs.select.search = 'foo' + Vue.nextTick(() => { + expect(vm.called).toBe(true) + vm.$refs.select.search = '' + Vue.nextTick(() => { + expect(vm.called).toBe(true) + done() + }) + }) + }) + + it('should trigger the search event when the search text changes', (done) => { + const vm = new Vue({ + template: '
', + data: { + called: false + }, + methods: { + foo(val) { + this.called = val + } + } + }).$mount() + + vm.$refs.select.search = 'foo' + + Vue.nextTick(() => { + expect(vm.called).toEqual('foo') + done() + }) + }) + + it('should not trigger the search event if the search text is empty', (done) => { + const vm = new Vue({ + template: '
', + data: { called: false }, + methods: { + foo(val) { + this.called = ! this.called + } + } + }).$mount() + + vm.$refs.select.search = 'foo' + Vue.nextTick(() => { + expect(vm.called).toBe(true) + vm.$refs.select.search = '' + Vue.nextTick(() => { + expect(vm.called).toBe(true) + done() + }) + }) + }) + + it('can set loading to false from the onSearch callback', (done) => { + const vm = new Vue({ + template: '
', + methods: { + foo(search, loading) { + loading(false) + } + } + }).$mount() + + vm.$refs.select.search = 'foo' + Vue.nextTick(() => { + expect(vm.$refs.select.mutableLoading).toEqual(false) + done() + }) + }) + + it('can set loading to true from the onSearch callback', (done) => { + const vm = new Vue({ + template: '
', + methods: { + foo(search, loading) { + loading(true) + } + } + }).$mount() + + let select = vm.$refs.select + select.onSearch(select.search, select.toggleLoading) + + Vue.nextTick(() => { + expect(vm.$refs.select.mutableLoading).toEqual(true) + done() + }) + }) + + it('will sync mutable loading with the loading prop', (done) => { + const vm = new Vue({ + template: '
', + data: {loading:false} + }).$mount() + vm.loading = true + Vue.nextTick(() => { + expect(vm.$refs.select.mutableLoading).toEqual(true) + done() + }) + }) + }) + + describe('Reset on options change', () => { + it('should not reset the selected value by default when the options property changes', (done) => { + const vm = new Vue({ + template: '
', + data: { + value: 'one', + options: ['one', 'two', 'three'] + } + }).$mount() + vm.$children[0].mutableOptions = ['four', 'five', 'six'] + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual('one') + done() + }) + }) + + it('should reset the selected value when the options property changes', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: 'one', + options: ['one', 'two', 'three'] + } + }).$mount() + vm.$children[0].mutableOptions = ['four', 'five', 'six'] + Vue.nextTick(() => { + expect(vm.$children[0].mutableValue).toEqual(null) + done() + }) + }) + }) + + describe('Single value options', () => { + it('should reset the search input on focus lost', (done) => { + const vm = new Vue({ + template: '
', + data: { + value: 'one', + options: ['one', 'two', 'three'] + } + }).$mount() + + vm.$children[0].open = true + vm.$refs.select.search = "t" + expect(vm.$refs.select.search).toEqual('t') + + vm.$children[0].onSearchBlur() + Vue.nextTick(() => { + expect(vm.$refs.select.search).toEqual('') + done() + }) + }) + + it ('should not reset the search input on focus lost when clearSearchOnSelect is false', (done) => { + const vm = new Vue({ + template: '
', + data: { + value: 'one', + options: ['one', 'two', 'three'] + } + }).$mount() + expect(vm.$refs.select.clearSearchOnSelect).toEqual(false) + + vm.$children[0].open = true + vm.$refs.select.search = "t" + expect(vm.$refs.select.search).toEqual('t') + + vm.$children[0].onSearchBlur() + Vue.nextTick(() => { + expect(vm.$refs.select.search).toEqual('t') + done() + }) + }) + }) +}) diff --git a/docs-old/Docs.vue b/docs-old/Docs.vue new file mode 100644 index 0000000..0ca815c --- /dev/null +++ b/docs-old/Docs.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/docs-old/assets/fonts/octicons.eot b/docs-old/assets/fonts/octicons.eot new file mode 100644 index 0000000..c1d2f29 Binary files /dev/null and b/docs-old/assets/fonts/octicons.eot differ diff --git a/docs-old/assets/fonts/octicons.scss b/docs-old/assets/fonts/octicons.scss new file mode 100644 index 0000000..1c51540 --- /dev/null +++ b/docs-old/assets/fonts/octicons.scss @@ -0,0 +1,225 @@ +$octicons-font-path: "." !default; +$octicons-version: "c5a1d52cb40008f6d4ed65bf3f12d508b2fe8c88"; + +@font-face { + font-family: 'octicons'; + src: url('#{$octicons-font-path}/octicons.eot?#iefix&v=#{$octicons-version}') format('embedded-opentype'), + url('#{$octicons-font-path}/octicons.woff?v=#{$octicons-version}') format('woff'), + url('#{$octicons-font-path}/octicons.ttf?v=#{$octicons-version}') format('truetype'), + url('#{$octicons-font-path}/octicons.svg?v=#{$octicons-version}#octicons') format('svg'); + font-weight: normal; + font-style: normal; +} + +// .octicon is optimized for 16px. +// .mega-octicon is optimized for 32px but can be used larger. +.octicon, .mega-octicon { + font: normal normal normal 16px/1 octicons; + display: inline-block; + text-decoration: none; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mega-octicon { font-size: 32px; } + +.octicon-alert:before { content: '\f02d'} /*  */ +.octicon-arrow-down:before { content: '\f03f'} /*  */ +.octicon-arrow-left:before { content: '\f040'} /*  */ +.octicon-arrow-right:before { content: '\f03e'} /*  */ +.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ +.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ +.octicon-arrow-small-right:before { content: '\f071'} /*  */ +.octicon-arrow-small-up:before { content: '\f09f'} /*  */ +.octicon-arrow-up:before { content: '\f03d'} /*  */ +.octicon-microscope:before, +.octicon-beaker:before { content: '\f0dd'} /*  */ +.octicon-bell:before { content: '\f0de'} /*  */ +.octicon-bold:before { content: '\f0e2'} /*  */ +.octicon-book:before { content: '\f007'} /*  */ +.octicon-bookmark:before { content: '\f07b'} /*  */ +.octicon-briefcase:before { content: '\f0d3'} /*  */ +.octicon-broadcast:before { content: '\f048'} /*  */ +.octicon-browser:before { content: '\f0c5'} /*  */ +.octicon-bug:before { content: '\f091'} /*  */ +.octicon-calendar:before { content: '\f068'} /*  */ +.octicon-check:before { content: '\f03a'} /*  */ +.octicon-checklist:before { content: '\f076'} /*  */ +.octicon-chevron-down:before { content: '\f0a3'} /*  */ +.octicon-chevron-left:before { content: '\f0a4'} /*  */ +.octicon-chevron-right:before { content: '\f078'} /*  */ +.octicon-chevron-up:before { content: '\f0a2'} /*  */ +.octicon-circle-slash:before { content: '\f084'} /*  */ +.octicon-circuit-board:before { content: '\f0d6'} /*  */ +.octicon-clippy:before { content: '\f035'} /*  */ +.octicon-clock:before { content: '\f046'} /*  */ +.octicon-cloud-download:before { content: '\f00b'} /*  */ +.octicon-cloud-upload:before { content: '\f00c'} /*  */ +.octicon-code:before { content: '\f05f'} /*  */ +.octicon-comment-add:before, +.octicon-comment:before { content: '\f02b'} /*  */ +.octicon-comment-discussion:before { content: '\f04f'} /*  */ +.octicon-credit-card:before { content: '\f045'} /*  */ +.octicon-dash:before { content: '\f0ca'} /*  */ +.octicon-dashboard:before { content: '\f07d'} /*  */ +.octicon-database:before { content: '\f096'} /*  */ +.octicon-clone:before, +.octicon-desktop-download:before { content: '\f0dc'} /*  */ +.octicon-device-camera:before { content: '\f056'} /*  */ +.octicon-device-camera-video:before { content: '\f057'} /*  */ +.octicon-device-desktop:before { content: '\f27c'} /*  */ +.octicon-device-mobile:before { content: '\f038'} /*  */ +.octicon-diff:before { content: '\f04d'} /*  */ +.octicon-diff-added:before { content: '\f06b'} /*  */ +.octicon-diff-ignored:before { content: '\f099'} /*  */ +.octicon-diff-modified:before { content: '\f06d'} /*  */ +.octicon-diff-removed:before { content: '\f06c'} /*  */ +.octicon-diff-renamed:before { content: '\f06e'} /*  */ +.octicon-ellipsis:before { content: '\f09a'} /*  */ +.octicon-eye-unwatch:before, +.octicon-eye-watch:before, +.octicon-eye:before { content: '\f04e'} /*  */ +.octicon-file-binary:before { content: '\f094'} /*  */ +.octicon-file-code:before { content: '\f010'} /*  */ +.octicon-file-directory:before { content: '\f016'} /*  */ +.octicon-file-media:before { content: '\f012'} /*  */ +.octicon-file-pdf:before { content: '\f014'} /*  */ +.octicon-file-submodule:before { content: '\f017'} /*  */ +.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ +.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ +.octicon-file-text:before { content: '\f011'} /*  */ +.octicon-file-zip:before { content: '\f013'} /*  */ +.octicon-flame:before { content: '\f0d2'} /*  */ +.octicon-fold:before { content: '\f0cc'} /*  */ +.octicon-gear:before { content: '\f02f'} /*  */ +.octicon-gift:before { content: '\f042'} /*  */ +.octicon-gist:before { content: '\f00e'} /*  */ +.octicon-gist-secret:before { content: '\f08c'} /*  */ +.octicon-git-branch-create:before, +.octicon-git-branch-delete:before, +.octicon-git-branch:before { content: '\f020'} /*  */ +.octicon-git-commit:before { content: '\f01f'} /*  */ +.octicon-git-compare:before { content: '\f0ac'} /*  */ +.octicon-git-merge:before { content: '\f023'} /*  */ +.octicon-git-pull-request-abandoned:before, +.octicon-git-pull-request:before { content: '\f009'} /*  */ +.octicon-globe:before { content: '\f0b6'} /*  */ +.octicon-graph:before { content: '\f043'} /*  */ +.octicon-heart:before { content: '\2665'} /* ♥ */ +.octicon-history:before { content: '\f07e'} /*  */ +.octicon-home:before { content: '\f08d'} /*  */ +.octicon-horizontal-rule:before { content: '\f070'} /*  */ +.octicon-hubot:before { content: '\f09d'} /*  */ +.octicon-inbox:before { content: '\f0cf'} /*  */ +.octicon-info:before { content: '\f059'} /*  */ +.octicon-issue-closed:before { content: '\f028'} /*  */ +.octicon-issue-opened:before { content: '\f026'} /*  */ +.octicon-issue-reopened:before { content: '\f027'} /*  */ +.octicon-italic:before { content: '\f0e4'} /*  */ +.octicon-jersey:before { content: '\f019'} /*  */ +.octicon-key:before { content: '\f049'} /*  */ +.octicon-keyboard:before { content: '\f00d'} /*  */ +.octicon-law:before { content: '\f0d8'} /*  */ +.octicon-light-bulb:before { content: '\f000'} /*  */ +.octicon-link:before { content: '\f05c'} /*  */ +.octicon-link-external:before { content: '\f07f'} /*  */ +.octicon-list-ordered:before { content: '\f062'} /*  */ +.octicon-list-unordered:before { content: '\f061'} /*  */ +.octicon-location:before { content: '\f060'} /*  */ +.octicon-gist-private:before, +.octicon-mirror-private:before, +.octicon-git-fork-private:before, +.octicon-lock:before { content: '\f06a'} /*  */ +.octicon-logo-gist:before { content: '\f0ad'} /*  */ +.octicon-logo-github:before { content: '\f092'} /*  */ +.octicon-mail:before { content: '\f03b'} /*  */ +.octicon-mail-read:before { content: '\f03c'} /*  */ +.octicon-mail-reply:before { content: '\f051'} /*  */ +.octicon-mark-github:before { content: '\f00a'} /*  */ +.octicon-markdown:before { content: '\f0c9'} /*  */ +.octicon-megaphone:before { content: '\f077'} /*  */ +.octicon-mention:before { content: '\f0be'} /*  */ +.octicon-milestone:before { content: '\f075'} /*  */ +.octicon-mirror-public:before, +.octicon-mirror:before { content: '\f024'} /*  */ +.octicon-mortar-board:before { content: '\f0d7'} /*  */ +.octicon-mute:before { content: '\f080'} /*  */ +.octicon-no-newline:before { content: '\f09c'} /*  */ +.octicon-octoface:before { content: '\f008'} /*  */ +.octicon-organization:before { content: '\f037'} /*  */ +.octicon-package:before { content: '\f0c4'} /*  */ +.octicon-paintcan:before { content: '\f0d1'} /*  */ +.octicon-pencil:before { content: '\f058'} /*  */ +.octicon-person-add:before, +.octicon-person-follow:before, +.octicon-person:before { content: '\f018'} /*  */ +.octicon-pin:before { content: '\f041'} /*  */ +.octicon-plug:before { content: '\f0d4'} /*  */ +.octicon-repo-create:before, +.octicon-gist-new:before, +.octicon-file-directory-create:before, +.octicon-file-add:before, +.octicon-plus:before { content: '\f05d'} /*  */ +.octicon-primitive-dot:before { content: '\f052'} /*  */ +.octicon-primitive-square:before { content: '\f053'} /*  */ +.octicon-pulse:before { content: '\f085'} /*  */ +.octicon-question:before { content: '\f02c'} /*  */ +.octicon-quote:before { content: '\f063'} /*  */ +.octicon-radio-tower:before { content: '\f030'} /*  */ +.octicon-repo-delete:before, +.octicon-repo:before { content: '\f001'} /*  */ +.octicon-repo-clone:before { content: '\f04c'} /*  */ +.octicon-repo-force-push:before { content: '\f04a'} /*  */ +.octicon-gist-fork:before, +.octicon-repo-forked:before { content: '\f002'} /*  */ +.octicon-repo-pull:before { content: '\f006'} /*  */ +.octicon-repo-push:before { content: '\f005'} /*  */ +.octicon-rocket:before { content: '\f033'} /*  */ +.octicon-rss:before { content: '\f034'} /*  */ +.octicon-ruby:before { content: '\f047'} /*  */ +.octicon-search-save:before, +.octicon-search:before { content: '\f02e'} /*  */ +.octicon-server:before { content: '\f097'} /*  */ +.octicon-settings:before { content: '\f07c'} /*  */ +.octicon-shield:before { content: '\f0e1'} /*  */ +.octicon-log-in:before, +.octicon-sign-in:before { content: '\f036'} /*  */ +.octicon-log-out:before, +.octicon-sign-out:before { content: '\f032'} /*  */ +.octicon-smiley:before { content: '\f0e7'} /*  */ +.octicon-squirrel:before { content: '\f0b2'} /*  */ +.octicon-star-add:before, +.octicon-star-delete:before, +.octicon-star:before { content: '\f02a'} /*  */ +.octicon-stop:before { content: '\f08f'} /*  */ +.octicon-repo-sync:before, +.octicon-sync:before { content: '\f087'} /*  */ +.octicon-tag-remove:before, +.octicon-tag-add:before, +.octicon-tag:before { content: '\f015'} /*  */ +.octicon-tasklist:before { content: '\f0e5'} /*  */ +.octicon-telescope:before { content: '\f088'} /*  */ +.octicon-terminal:before { content: '\f0c8'} /*  */ +.octicon-text-size:before { content: '\f0e3'} /*  */ +.octicon-three-bars:before { content: '\f05e'} /*  */ +.octicon-thumbsdown:before { content: '\f0db'} /*  */ +.octicon-thumbsup:before { content: '\f0da'} /*  */ +.octicon-tools:before { content: '\f031'} /*  */ +.octicon-trashcan:before { content: '\f0d0'} /*  */ +.octicon-triangle-down:before { content: '\f05b'} /*  */ +.octicon-triangle-left:before { content: '\f044'} /*  */ +.octicon-triangle-right:before { content: '\f05a'} /*  */ +.octicon-triangle-up:before { content: '\f0aa'} /*  */ +.octicon-unfold:before { content: '\f039'} /*  */ +.octicon-unmute:before { content: '\f0ba'} /*  */ +.octicon-unverified:before { content: '\f0e8'} /*  */ +.octicon-verified:before { content: '\f0e6'} /*  */ +.octicon-versions:before { content: '\f064'} /*  */ +.octicon-watch:before { content: '\f0e0'} /*  */ +.octicon-remove-close:before, +.octicon-x:before { content: '\f081'} /*  */ +.octicon-zap:before { content: '\26A1'} /* ⚡ */ diff --git a/docs-old/assets/fonts/octicons.svg b/docs-old/assets/fonts/octicons.svg new file mode 100644 index 0000000..0908706 --- /dev/null +++ b/docs-old/assets/fonts/octicons.svg @@ -0,0 +1,188 @@ + + + + +(c) 2012-2016 GitHub + +When using the GitHub logos, be sure to follow the GitHub logo guidelines (https://github.com/logos) + +Font License: SIL OFL 1.1 (http://scripts.sil.org/OFL) +Applies to all font files + +Code License: MIT (http://choosealicense.com/licenses/mit/) +Applies to all other files + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs-old/assets/fonts/octicons.ttf b/docs-old/assets/fonts/octicons.ttf new file mode 100644 index 0000000..3dab5b6 Binary files /dev/null and b/docs-old/assets/fonts/octicons.ttf differ diff --git a/docs-old/assets/fonts/octicons.woff b/docs-old/assets/fonts/octicons.woff new file mode 100644 index 0000000..0cd624c Binary files /dev/null and b/docs-old/assets/fonts/octicons.woff differ diff --git a/docs-old/assets/scss/_cyan_theme.scss b/docs-old/assets/scss/_cyan_theme.scss new file mode 100644 index 0000000..0e7c989 --- /dev/null +++ b/docs-old/assets/scss/_cyan_theme.scss @@ -0,0 +1,33 @@ +@import 'variables'; + +#v-select { + max-width: 500px; + margin: 0 auto; + .dropdown-toggle { + background: #fff; + border-color: rgba(82, 166, 183, 0.39); + } + .selected-tag { + color: #147688; + background-color: #d7f3f9; + border-color: #91ddec; + .close { + color: #147688; + opacity: .5; + } + } + &.dropdown.open .dropdown-toggle, + &.dropdown.open .dropdown-menu, + &.dropdown.open .open-indicator:before { + border-color: #4CC3D9; + } + .active a { + background: rgba(50,50,50,.1); + color: #333; + } + &.dropdown .highlight a, + &.dropdown li:hover a { + background: #4CC3D9; + color: #fff; + } +} \ No newline at end of file diff --git a/docs-old/assets/scss/_demo.scss b/docs-old/assets/scss/_demo.scss new file mode 100644 index 0000000..510504c --- /dev/null +++ b/docs-old/assets/scss/_demo.scss @@ -0,0 +1,120 @@ +@import 'variables'; + +body { + font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.jumbotron-top { + background: $blue; + background: linear-gradient(45deg, rgba(76,195,217,0) 0%,rgba(152,227,234,1) 100%); + margin-bottom: 0; + min-height: 100vh; + position: relative; + + .container { + position: absolute; + height: 600px; + left: 0; + right: 0; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + text-align: center; + } +} + +h1 { + display: inline-block; + font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif; + font-weight: 300; + line-height: 1; + padding-right: 80px; + background-position: center right; + background-repeat: no-repeat; + background-size: 55px auto; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTk2QkI4RkE3NjE2MTFFNUE4NEU4RkIxNjQ5MTYyRDgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTk2QkI4Rjk3NjE2MTFFNUE4NEU4RkIxNjQ5MTYyRDgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjU2QTEyNzk3NjkyMTFFMzkxODk4RDkwQkY4Q0U0NzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjU2QTEyN0E3NjkyMTFFMzkxODk4RDkwQkY4Q0U0NzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5WHowqAAAXNElEQVR42uxda4xd1XVe53XvvD2eGQ/lXQcKuDwc2eFlCAGnUn7kT6T86J/+aNTgsWPchJJYciEOCQ8hF+G0hFCIHRSEqAuJBCqRaUEIEbmBppAIBGnESwZje8COZ+y587j3PLq+ffadGJix53HvPevcuz60xPjec89ZZ+39nf04+9vLSZKEFArFzHA1BAqFEkShUIIoFEoQhUIJolAoQRQKJYhCoQRRKJQgCoUSRKFQKEEUCiWIQrFo+Gv/8/YH+f/nsMWSHHMChyhxqPTTdyncWyJ3ScD/ztipiB3wXSqu6P17avN+TyFC5ggv4tRnmoxWTP1+5F+Mz17GPvPl49EKBWd3UsfXllPiso8VcYtmPba3fNuKrBVXrGFCbrdPwXndFL49ltI367roOpSUI4pGypv9s7q+ltj6JxqOQ07Bo/DgxGb2/a8cX0CnAWXJ5etz2TqdHiXHKlKj9w6i9XX8Ic41DmI8FVHhmmXk85MmRhCzJoiTWnig9LfJRHihgydxzAxJhBr7Bh/hK3yu+p9568FliTJF2aKMZfVd/kQOcKP6OBmS9+Rjm4zJ6faoeN0gOUn61MncLX4CJ+MRhe+P/dRxhfew2Df4CF/hs4jWg8vQYUKYMuWyRRkLjeHQ8YP0Z9mekVjA8Qj3VVcuoeDiXu63lkUE0ym6FA5PXBaNVr7qtPumGyPR4Bt8hK/wWUR5chn6XJYoU5StUHL8l+XEx2axhkS6yk+chJuP4rXLyOkIKJkS0B67adcqfL/0Y4pixxSysK6V8Yl9Mz7i3272NRFlhzJsu24Z5l9E9Ahmwfrpoj7uw3fZtktsRZKjIXnndlLxin7+W8ZTBwPf6I+Tg9HwxK2Ob8citbCoBoaxBxMCvsFH+CqjHCtUvLzflKWUcpwB91gupG5f9/Rtx39ZZBtmWyJtphKzHTQW0diP36b4aJmcLj/zGaSkHJPb4SWFi/tOJd8bTqd9s48VBRh4RKeUX/vjgXg8cpyCmz05xkJylxSoa8M5RF0eJaVIIkGOsg2yTc3UgpD94psiWxEOqDNYoOIXuHnGwE5AXUTFi46FTnRw4l/dwEm7/pSxcYnCF/gE3zInh52RRJkVP7/MlKFQcgCbjifHTAQBfsb2qsgBO3e1Cpf3UXBej3nRJKKrxU/rcH/pKzz4vNIQuRJTEmZklbg6EL4SPsE3GQPzinmfhbJDGQolB+r8w58abs5y8DqRt4ABeptLRR7koY9NleybEYw/MPisvF/ayT1/SvDewcnIcG32wfiCAbEvoCZyGaGsitdyz6XdTctQJq6fcT5mloNfYvu5yFZkpEz+RT0UrFoqpxVBV+vQxIrkaPnrbqdvXs6hcjbU+Jq4Nvvwd/BFRNeq2npwWfkX95iyE9p6PM72P/MhCPANTBSKu5WITHcC074Y9CUTkYglKBgcV/aVtlM5Kpp/RHFjDdfka7MP/2wG6m72661QNigjlBXKTGBtsjWKNs5atCf44Uds3xc5YD8Wknd2BxWuGjCzIxLWQzlFj+IjU108OL7bafM5sm5DDdfka/8T+9AJXyTMpqFsUEYoK5SZ0NbjVlvX500Q4Ha2A+JuCcEvhVS8qp/8MzspHhMSfO7mVPaP35BMRp9JsCQldbX+hmvxNfnamzJfqVvtWnGZoGxQRigroYs6UbfvOGHn4ORVkTaIbEWwtqg3MNO+Zql0JGCdVuCayhDuG9uJB7vp+oR17FbZc+NauCauLWLmKkqXr6NsUEYoK6GtxwY6CXXnEs0n2faIHLCPhhR8bikFKwRN+xZddHWu5a7Ol9yCZ2ZwHKdOxufGNeKRqS/hmnLWW1VMmQSrl5oyEkqOPbZu02IJAsic9sU7B+5uF9cOmqUfeLOdOaAZYb/CA+M/Ic9NxUoYMNfD/PT84f7xB807EAnrrbgMUBZt1w1SEpCIqfjF1Om5EuQNth0iu1r8tPLP76LCpX2yWpHDk2dGH018p6brtD5hOHf04cR3okOTZ0lqPVAW3gVdlMhdrfsTW6drRhDgRrYJcbeKZQxTkenvegNt6YBQwrQvOxG+P3ZHEia9TuClS9Br1XKge8XnxLlxjelzZ/2w4tijDMxyoHIsVQg1zvYPcy7KeZx4jG2zyFakFJF7Whu1XT2QvhfJeryeVNdplYPo4Pi9hKd7VVxVC8O5cH4+N65hXgoKuGfEHmWAskjGxI49Ntu6XHOCAD9ie1PcLSepjDNY00fB8m6KpSyJx/jgg9LfJEfLK40818w+LXY5e5zKaMfKl+DcIlSCZp0cd3U59igDI4+WOa2LunvfvDoD9RrcNLqAjDy3yzfrtKqbAkggSDIZmSlYxzz9a8BaJ101zF2rh3BuSTJaCKGMDEGujHbedXch0X2ebbdEkkDC6a9cQoWVguS53P0JP5xcHY1W/tppD9KxgrdAw5QxnwPn4nOukrPeqkzBJb0m9oJltLtt3a07QYD1IkMAeS7/hw0BXMhzJwXJc/eV7kuiyIN8OOGuUhLP06JUeoxz4FxiZLRouTsDM9WO2OdBRtsIgrzHtk3kgH00JO+cTipc2S9jqyCaluf2xwcnfuB6LndHuEsSzdP4N/gtzoFzSZHRIsaQQiPmidyXgttsnW0YQYDvsh2ROGBPxkMqXjNA/qlCFsnZ8UdlX+kfk0pymlnMWH2JOBfz0sWI+C3OMS1dzPphhPVWHOPC5wdMzIUOzFFHb1lwB2ARF+ZOPt0gshWBPLe/wCRZlu6CIkSei/cE0fD4g2ZbVWceyxH5WPwGvzXrrSTJaDnG7oBoGS3qaCULggCPsv1W5IAd8tzLllJwvpx1WthMIfyg9OVotHy1WVQ4V37wsfgNfkuSZLQcW8Q4lruU/RVbRykrggDXiwwN3uQWnXTa1xMkz2W/on2lndNajpNtAGePw2/MOicBMlqs+8K7GBNbjrFgGe2iX0nUgiAvs+0S2YpgndaFPVRc3SdmVanZlfGjifOiw5PrT/oGvPpG/vDkEH4jZ70Vt86rl5rYimmdP41/s3Uzc4Isup9XNxwvz+0tyNAlONPrtO6hctR+QnluKqNt52O3pxvtClhvxTH0egtmEwbBMlrUxU21OFGtCHKYbavIATv3j90z26kIea4QZRtahfhIuT0anrjH7O3rpjNVHzPIaLG3Lh8Tj5TbRQihjlNyehxTwTLarbZOiiEIcBfbPnGhMtroChXW9JN/VqeYdyPEY4nwwPj6ZCL8C1T+T61JhDqRv8MxZgwlJG2BxzEsrBmgeEzseqt9ti6SNIIA8t6wm901eFDZ66d7M4UkQ56LVgTTvvtKaRqFqoTWymjxGb6LpUzrImYcuzaOIWKJmAptPWpaB2sd+V+yvSB1wB6s7qXgwiUyBpbJdBqFq6MjU18mKCKhRsTyEbx558/wnRmYJzLiV+DYBat6JQ/MX7B1UCxBAKHy3IQrH6W7MhY9MWkUMNAN948/8Mm35/jMDIKlpC3gmBWQtsAjifkE61b36kGQP7DdL7KrVZXnXiYpjYKZxj09Gh7f4kB4yIa/8ZmU1brIIYiYIXaJ3Nbjflv3xBME+DZbSVwIzfIIK89dJkSea18Ihu+XflD9yPztCJnW5Ri5VRntpNh8giVb5ygvBIHu9yaRrchYRO6fFU0CSTPQlDLte6zshx9O3g3D3yJajySd4EDaAsQMsRPaetxk61zty+YTCXRqjf9jO19cOLnyYV+p8QffpcreMXJ7BeRgh77Ds6SIYhGbMBgB2tld1DW0nGL4VxbZfKBbdUHdhol1dl7mOi0MOjttGgWT11lAwU9r1mMSsX0oxwSxgYyWOvKXtiAvBPkV239I7GqZdVqX9FDw2V5+UoYipn2nt/WRMK3LMQlW9poYCZ7WfcrWsdwSBNggMrRYdcLdhjas0+q28lzJOc8bOU7jWLh2AwzEyLxclYm6Z2ZuBEE+YLtTZEVA9tzPdBh5biJ3q5rGD8yRjXbNAPkcm0RuyjTUqf3NQBDge2yHJFaGeDyi4tUD5J3WIXmzs8Y9NDgG3un80OCYIDZCHxqHbJ2iZiEIGmnB8twgzYIkd7vMxiBON59GLJyBQLKMdiM1qOPXyMn2f2f7X5EDdshzkUbhAtED0oZMXCAGiIXgtAW/YXusURdr9NsoufLcgmP20zKy2ErrNSNGRuunMUAshL7zABq61q/RBPkd2yNSn57+X3ZTQZA8t7H3H5p7RwwEt6KP2DrUtAQBIIUsiwt99Kf+tydFntuocVhVRltNWyBTRlumGslopRNkhO1mkRVlLCT3jHYzqyU48WSN+1ZWRou0BZDRyp3Ju9nWnaYnCHA3216JlQWy0gKy557dJSaNQn0nKNL1VrhnwTLavbbOUKsQBBApzzVpFHqsPFdIGoW6AfeG7cMwrcv3TC0io80LQZ5me07kU3WkYqSlhYvkpFGoz8C8bO7RyGjlpi14ztaVliMIIFOeizQKbpI+WdsDGfLcWvcmsaK53b4gdUW3lENZXjxrgrzNdq/IAftohbzzOql4eV/zjUUcu96K7w33KFhGi7rxVisTBEBSxWPiiqYqz71mGfmDQuS5tSIHstHyPZnd7+XKaI+RgKSxEggySWmKaXkVaSwi5xSbRmGiSdZpxVZGy/eEexMso73R1o2WJwiwk+11kQNZrNO6oo+Cc7vz39Wy07q4l+CKfnNvQu/ndVsnSAkifcCOAXq7R8W1y9JdRvI87QvfnTRtgdPeujLavBLkv9meEPnUHS2Tf1EPFT67lOKRnE77munrsrkH/+IeydPXqAO/VoLMDMhz5T2irTzXpFHoKeRPnluV0XYX0mlduTLamIRJtKUR5CDbbSIrGPfX/eUdVFyTQ3luku6OaNIW/HmH5LQFt9k6oAQ5Ab7PNiyxkmGndUhRvTNyJM9F1wrZaM9IZbQmG63MocewxIejRIKg+DaKbEXGI3KWBtT2hUFKyonUZeEfB3xkX4vsM3wXvIx/IwmMqCu0WH/B9qLIpzG6Wp/rpWBFj/x1WnaCAb4G7LPgad0XbZmTEmTukDnti0yzgZvKcwNPtDzXyGjZR5ONFincVEbbVAR5je0hkU/lkTL5F3TZzQ2EvjysJr1hH/0LuiVPTz9ky1oJsgB8iwQsN5hplISns5Hn9hXl9eurMlr2zUzrVsQuk5m0ZUxKkIXhKNsWkQN2yHNPhzx3WbqQMRZGYCOjXWZ8FDzjtsWWsRJkEfgh2zvyOvhWnovsucu75GTPtdlo4RN8i+W+s3nHli0pQRaPIXEeVeW53V46YJciz2Uf4IvxiX0juW/9h/JQ8fJCkGfZnpE5YK9QsHIJBZcIkOdW141d3Gt8EiyjfcaWqRKk6Z84kOc6duODjmzluUZGyz4g6Q18UhltaxHkXbbtIgfsRyvknQt5bobZc6dltP3Gl0SudmW7LUslSJ1mPUbFeWVUepDnDpB3SgazRtW0BXxt+ABfhE7rypyVbCKCTLF9U2QrgjQKg3b7zskGv3eI0+XsuDZ8EJy2YJMtQyVIHfEztldFDtghz728j4LzGphGoZq2gK9ZMDuwiH3ngTJ7OG+VLY8EAeTKc9ts9lwk42zEOi2st+JrYZIA1xYso12Xx4qWV4K8xPZzka3ISCrPDVY1YJ1WtfVYZWW0ctdbPW7LTAnSQHyDJCoykEYhTNdpuUsK6YDZqQ85cG5cw6y3CsWmLYBXG/NayfJMkI8oVR/KG7AfC8k7u4MKVw2kM1r1eB2RpDNXuAauJVhGe6stKyVIBrid7YA4r6o5N5BG4cxOI3mtaeWtymj53LiG4FwmKJs78lzB8k4QVIsN4ryqynN7AzP1ShXIc2tYg3GuSpJO6/aKltHK3KWmhQgCPMm2R+SAfTSkANlzV9Rw2rc6MDcyWtHZaPfYsiElSPaQOYVYiSnxiIprB8kpeGn+v8U2mZD8FjxzTpybKjqtqwQ5Od5g2yGyq4Xsued3UeHSvsW3IlUZLZ8L5xSctmCHLRMliCBgN/AJcV7F6SpbjBe8gUWkUaimLeBzmOUsU2JltOMkcbd+JQiNkYB8ErNVbPe0Nmq72i4kXMiwNUnfe+AcOJfgfCWbbVkoQQTiR2xvivPKynODNX0ULF9AGoVq2gL+Lc4hWEaL2N/XTBWq2Qgic3BYled2+ekeVfOV51az0WKNF59DsIx2XbNVpmYkyPNsuyWSBBJYf+USKsxHnlvNRsu/8WXLaHfb2CtBcoD1Ir2CPJf/wxSt2xmkupGT9c6QtoCPNdO66FfJldGub8aK1KwEeY9tm8gB+2hI3jmdVLii/+RbBdktfHAsfpPIfSm4zcZcCZIjfJftiMQBO1IQQBrrn3qCRYZ20SOOMTLacbHrrRDjW5q1EjUzQbiTTzeIbEUgz+232XNne59RfX+CbLT9omW0iHFFCZJPPMr2W5EDdshzL1tKwfkzrNOqrrfi73CMYBntKzbGpATJL64X6RXWZRVtxlnP+VgaBZO2wEu/wzGatkAJUk+8zLZLZCuCdVoXciux+rhVuXYVMD7Dd7Hc9Va7bGyVIE0Amf3kaXnuIHm9qTwXhr/xmWAZbUXk+E4JsmAcZtsqcsAOee6Z7VS08lwY/sZngmW0W21MlSBNhLvY9onzCqtIxipUuKqf3L6iMfyNz4RO6+6zsWwJ+NRawNvep8S1IhMxucie+8VT0o+6PIqPiB17rG+lCtNqBPkl2wts14gbsCONwqVLzT8Fr7d6wcawZeBS60Hm1GSSTu+a6d5EY6cEyQ5/YLtf4oCd4iQ1ma3H/TZ2SpAWwLfZSqSYK0o2ZqQEaQ1AN32T1vs54yYbMyVIC+GBVuwyLLBL+kCr3rzb4oV/vdZ/jZESZHb8iqS9F5GFp2yMlCAtjCENgcZGCTI79rPdqWH4FO60sVGCKOh7bIc0DNM4ZGNCShAFEFKOsyDVARttTJQgGoJpPMb2Gw2DicFjGgYlyExYpyHQGChBZsfv2B5p4ft/xMZAoQSZFZso3TKo1VC2965QgpwQI2w3t+B932zvXaEEOSnuZtvbQve7196zQgkyZ6zXe1UoQWbH02zPtcB9PmfvVaEEmTeG9B6VIIrZ8RbbvU18f/fae1QoQRYMJKU81oT3dYwkJj1VguQOk9REaY2Pw4323hRKkEVjJ9vrTXQ/r9t7UihBaobr9V6UIIrZ8Wu2J5rgPp6w96JQgtQcG2jmhGl5QWzvQaEEqQsOst2WY/9vs/egUILUtZIN59Dv4ZyTWwmSEyDnUx7luRtJar4qJUjT4RdsL+bI3xetzwolSMOwTn1Vgihmx2tsD+XAz4esrwolSMPxLZK9XGPS+qhQgmSCo2xbBPu3xfqoUIJkhh+yvSPQr3esbwolSOYYUp+UIIrZ8SzbM4L8ecb6pFCC6BNbWw8lSB7wLtt2AX5st74olCDikPWskfRZNSVIi2OKst2+c5P1QaEEEYuH2V7N4Lqv2msrlCDisa5FrqkEUSwIL7E93sDrPW6vqVCC5AaN0l/kVZ+iBGlxfMR2awOuc6u9lkIJkjvcwXagjuc/YK+hUILkEgnVdxeRDfYaCiVIbvEk2546nHePPbdCCZJ7rMvJORVKkEzwBtuOGp5vhz2nQgnSNMBu6uM1OM84Nedu80qQFscY1SYfx2Z7LoUSpOlwH9ubi/j9m/YcCiWIDth1YK4EaUU8z7Z7Ab/bbX+rUII0PdY36DcKJUgu8R7btnkcv83+RqEEaRncwnZkDscdsccqlCAthQrbDXM47gZ7rEIJ0nJ4lO2VE3z/ij1GoQRpWaxb4HcKJUhL4GW2XTN8vst+p1CCtDw+Oc6Y6/hEoQRpCRxm23rcv7fazxRKEIXFXZRuwBDZvxUC4GsIREHflguDkyQqaVYotIulUChBFAoliEKhBFEolCAKhRJEoVCCKBRKEIVCCaJQKJQgCoUSRKFQgigUShCFIhP8vwADACog5YM65zugAAAAAElFTkSuQmCC"); +} + +.list-vue { + text-align: left; + margin: 20px auto; + padding: 0; +} + +p.lead { + font-size: 1.8em; + margin: 1em 0; +} + +.btn-outline { + background: none; + line-height: 1.3333333; + border-radius: 6px; + border: 2px solid #91ddec; + color: #147688; + + &.btn-lg { + border-width: 3px; + } + + &:hover { + border-color: rgb(65, 184, 131); + background-color: rgba(65, 184, 131, 0.67); + } + + &:active, + &:focus { + border-color: rgb(65, 184, 131); + background-color: rgba(65, 184, 131, 1); + } +} + +.down-arrow { + position: absolute; + bottom: 10px; + width: 100%; + text-align: center; + color: rgba(0,0,0,.5); + font-size: 1.6em; + + i { + font-size: 0.7em; + opacity: 0.4; + } +} + +.selected-tag .close { + font-family: "Helvetica Neue", "Helvetica"; + font-weight: 400; +} + +.accolades a { + margin-left: 0; + margin-right: 5px; +} + +.doc-row { + padding: 2em 0; +} + +#docs { + height: 100vh; + padding-top: 3em; + + article h2:first-child { + margin-top: 0; + } + + + + a { + color: $green; + + &:hover { + text-decoration: none; + border-bottom: 2px solid $green; + } + } +} diff --git a/docs-old/assets/scss/_octicons.scss b/docs-old/assets/scss/_octicons.scss new file mode 100644 index 0000000..8cc4f84 --- /dev/null +++ b/docs-old/assets/scss/_octicons.scss @@ -0,0 +1,227 @@ +@font-face { + font-family: 'octicons'; + src: url('~assets/fonts/octicons.eot?#iefix') format('embedded-opentype'), + url('~assets/fonts/octicons.woff') format('woff'), + url('~assets/fonts/octicons.ttf') format('truetype'), + url('~assets/fonts/octicons.svg#octicons') format('svg'); + font-weight: normal; + font-style: normal; +} + + +/* + +.octicon is optimized for 16px. +.mega-octicon is optimized for 32px but can be used larger. + +*/ +.octicon, .mega-octicon { + font: normal normal normal 16px/1 octicons; + display: inline-block; + text-decoration: none; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mega-octicon { font-size: 32px; } + +.octicon-alert:before { content: '\f02d'} /*  */ +.octicon-arrow-down:before { content: '\f03f'} /*  */ +.octicon-arrow-left:before { content: '\f040'} /*  */ +.octicon-arrow-right:before { content: '\f03e'} /*  */ +.octicon-arrow-small-down:before { content: '\f0a0'} /*  */ +.octicon-arrow-small-left:before { content: '\f0a1'} /*  */ +.octicon-arrow-small-right:before { content: '\f071'} /*  */ +.octicon-arrow-small-up:before { content: '\f09f'} /*  */ +.octicon-arrow-up:before { content: '\f03d'} /*  */ +.octicon-microscope:before, +.octicon-beaker:before { content: '\f0dd'} /*  */ +.octicon-bell:before { content: '\f0de'} /*  */ +.octicon-bold:before { content: '\f0e2'} /*  */ +.octicon-book:before { content: '\f007'} /*  */ +.octicon-bookmark:before { content: '\f07b'} /*  */ +.octicon-briefcase:before { content: '\f0d3'} /*  */ +.octicon-broadcast:before { content: '\f048'} /*  */ +.octicon-browser:before { content: '\f0c5'} /*  */ +.octicon-bug:before { content: '\f091'} /*  */ +.octicon-calendar:before { content: '\f068'} /*  */ +.octicon-check:before { content: '\f03a'} /*  */ +.octicon-checklist:before { content: '\f076'} /*  */ +.octicon-chevron-down:before { content: '\f0a3'} /*  */ +.octicon-chevron-left:before { content: '\f0a4'} /*  */ +.octicon-chevron-right:before { content: '\f078'} /*  */ +.octicon-chevron-up:before { content: '\f0a2'} /*  */ +.octicon-circle-slash:before { content: '\f084'} /*  */ +.octicon-circuit-board:before { content: '\f0d6'} /*  */ +.octicon-clippy:before { content: '\f035'} /*  */ +.octicon-clock:before { content: '\f046'} /*  */ +.octicon-cloud-download:before { content: '\f00b'} /*  */ +.octicon-cloud-upload:before { content: '\f00c'} /*  */ +.octicon-code:before { content: '\f05f'} /*  */ +.octicon-comment-add:before, +.octicon-comment:before { content: '\f02b'} /*  */ +.octicon-comment-discussion:before { content: '\f04f'} /*  */ +.octicon-credit-card:before { content: '\f045'} /*  */ +.octicon-dash:before { content: '\f0ca'} /*  */ +.octicon-dashboard:before { content: '\f07d'} /*  */ +.octicon-database:before { content: '\f096'} /*  */ +.octicon-clone:before, +.octicon-desktop-download:before { content: '\f0dc'} /*  */ +.octicon-device-camera:before { content: '\f056'} /*  */ +.octicon-device-camera-video:before { content: '\f057'} /*  */ +.octicon-device-desktop:before { content: '\f27c'} /*  */ +.octicon-device-mobile:before { content: '\f038'} /*  */ +.octicon-diff:before { content: '\f04d'} /*  */ +.octicon-diff-added:before { content: '\f06b'} /*  */ +.octicon-diff-ignored:before { content: '\f099'} /*  */ +.octicon-diff-modified:before { content: '\f06d'} /*  */ +.octicon-diff-removed:before { content: '\f06c'} /*  */ +.octicon-diff-renamed:before { content: '\f06e'} /*  */ +.octicon-ellipsis:before { content: '\f09a'} /*  */ +.octicon-eye-unwatch:before, +.octicon-eye-watch:before, +.octicon-eye:before { content: '\f04e'} /*  */ +.octicon-file-binary:before { content: '\f094'} /*  */ +.octicon-file-code:before { content: '\f010'} /*  */ +.octicon-file-directory:before { content: '\f016'} /*  */ +.octicon-file-media:before { content: '\f012'} /*  */ +.octicon-file-pdf:before { content: '\f014'} /*  */ +.octicon-file-submodule:before { content: '\f017'} /*  */ +.octicon-file-symlink-directory:before { content: '\f0b1'} /*  */ +.octicon-file-symlink-file:before { content: '\f0b0'} /*  */ +.octicon-file-text:before { content: '\f011'} /*  */ +.octicon-file-zip:before { content: '\f013'} /*  */ +.octicon-flame:before { content: '\f0d2'} /*  */ +.octicon-fold:before { content: '\f0cc'} /*  */ +.octicon-gear:before { content: '\f02f'} /*  */ +.octicon-gift:before { content: '\f042'} /*  */ +.octicon-gist:before { content: '\f00e'} /*  */ +.octicon-gist-secret:before { content: '\f08c'} /*  */ +.octicon-git-branch-create:before, +.octicon-git-branch-delete:before, +.octicon-git-branch:before { content: '\f020'} /*  */ +.octicon-git-commit:before { content: '\f01f'} /*  */ +.octicon-git-compare:before { content: '\f0ac'} /*  */ +.octicon-git-merge:before { content: '\f023'} /*  */ +.octicon-git-pull-request-abandoned:before, +.octicon-git-pull-request:before { content: '\f009'} /*  */ +.octicon-globe:before { content: '\f0b6'} /*  */ +.octicon-graph:before { content: '\f043'} /*  */ +.octicon-heart:before { content: '\2665'} /* ♥ */ +.octicon-history:before { content: '\f07e'} /*  */ +.octicon-home:before { content: '\f08d'} /*  */ +.octicon-horizontal-rule:before { content: '\f070'} /*  */ +.octicon-hubot:before { content: '\f09d'} /*  */ +.octicon-inbox:before { content: '\f0cf'} /*  */ +.octicon-info:before { content: '\f059'} /*  */ +.octicon-issue-closed:before { content: '\f028'} /*  */ +.octicon-issue-opened:before { content: '\f026'} /*  */ +.octicon-issue-reopened:before { content: '\f027'} /*  */ +.octicon-italic:before { content: '\f0e4'} /*  */ +.octicon-jersey:before { content: '\f019'} /*  */ +.octicon-key:before { content: '\f049'} /*  */ +.octicon-keyboard:before { content: '\f00d'} /*  */ +.octicon-law:before { content: '\f0d8'} /*  */ +.octicon-light-bulb:before { content: '\f000'} /*  */ +.octicon-link:before { content: '\f05c'} /*  */ +.octicon-link-external:before { content: '\f07f'} /*  */ +.octicon-list-ordered:before { content: '\f062'} /*  */ +.octicon-list-unordered:before { content: '\f061'} /*  */ +.octicon-location:before { content: '\f060'} /*  */ +.octicon-gist-private:before, +.octicon-mirror-private:before, +.octicon-git-fork-private:before, +.octicon-lock:before { content: '\f06a'} /*  */ +.octicon-logo-gist:before { content: '\f0ad'} /*  */ +.octicon-logo-github:before { content: '\f092'} /*  */ +.octicon-mail:before { content: '\f03b'} /*  */ +.octicon-mail-read:before { content: '\f03c'} /*  */ +.octicon-mail-reply:before { content: '\f051'} /*  */ +.octicon-mark-github:before { content: '\f00a'} /*  */ +.octicon-markdown:before { content: '\f0c9'} /*  */ +.octicon-megaphone:before { content: '\f077'} /*  */ +.octicon-mention:before { content: '\f0be'} /*  */ +.octicon-milestone:before { content: '\f075'} /*  */ +.octicon-mirror-public:before, +.octicon-mirror:before { content: '\f024'} /*  */ +.octicon-mortar-board:before { content: '\f0d7'} /*  */ +.octicon-mute:before { content: '\f080'} /*  */ +.octicon-no-newline:before { content: '\f09c'} /*  */ +.octicon-octoface:before { content: '\f008'} /*  */ +.octicon-organization:before { content: '\f037'} /*  */ +.octicon-package:before { content: '\f0c4'} /*  */ +.octicon-paintcan:before { content: '\f0d1'} /*  */ +.octicon-pencil:before { content: '\f058'} /*  */ +.octicon-person-add:before, +.octicon-person-follow:before, +.octicon-person:before { content: '\f018'} /*  */ +.octicon-pin:before { content: '\f041'} /*  */ +.octicon-plug:before { content: '\f0d4'} /*  */ +.octicon-repo-create:before, +.octicon-gist-new:before, +.octicon-file-directory-create:before, +.octicon-file-add:before, +.octicon-plus:before { content: '\f05d'} /*  */ +.octicon-primitive-dot:before { content: '\f052'} /*  */ +.octicon-primitive-square:before { content: '\f053'} /*  */ +.octicon-pulse:before { content: '\f085'} /*  */ +.octicon-question:before { content: '\f02c'} /*  */ +.octicon-quote:before { content: '\f063'} /*  */ +.octicon-radio-tower:before { content: '\f030'} /*  */ +.octicon-repo-delete:before, +.octicon-repo:before { content: '\f001'} /*  */ +.octicon-repo-clone:before { content: '\f04c'} /*  */ +.octicon-repo-force-push:before { content: '\f04a'} /*  */ +.octicon-gist-fork:before, +.octicon-repo-forked:before { content: '\f002'} /*  */ +.octicon-repo-pull:before { content: '\f006'} /*  */ +.octicon-repo-push:before { content: '\f005'} /*  */ +.octicon-rocket:before { content: '\f033'} /*  */ +.octicon-rss:before { content: '\f034'} /*  */ +.octicon-ruby:before { content: '\f047'} /*  */ +.octicon-search-save:before, +.octicon-search:before { content: '\f02e'} /*  */ +.octicon-server:before { content: '\f097'} /*  */ +.octicon-settings:before { content: '\f07c'} /*  */ +.octicon-shield:before { content: '\f0e1'} /*  */ +.octicon-log-in:before, +.octicon-sign-in:before { content: '\f036'} /*  */ +.octicon-log-out:before, +.octicon-sign-out:before { content: '\f032'} /*  */ +.octicon-smiley:before { content: '\f0e7'} /*  */ +.octicon-squirrel:before { content: '\f0b2'} /*  */ +.octicon-star-add:before, +.octicon-star-delete:before, +.octicon-star:before { content: '\f02a'} /*  */ +.octicon-stop:before { content: '\f08f'} /*  */ +.octicon-repo-sync:before, +.octicon-sync:before { content: '\f087'} /*  */ +.octicon-tag-remove:before, +.octicon-tag-add:before, +.octicon-tag:before { content: '\f015'} /*  */ +.octicon-tasklist:before { content: '\f0e5'} /*  */ +.octicon-telescope:before { content: '\f088'} /*  */ +.octicon-terminal:before { content: '\f0c8'} /*  */ +.octicon-text-size:before { content: '\f0e3'} /*  */ +.octicon-three-bars:before { content: '\f05e'} /*  */ +.octicon-thumbsdown:before { content: '\f0db'} /*  */ +.octicon-thumbsup:before { content: '\f0da'} /*  */ +.octicon-tools:before { content: '\f031'} /*  */ +.octicon-trashcan:before { content: '\f0d0'} /*  */ +.octicon-triangle-down:before { content: '\f05b'} /*  */ +.octicon-triangle-left:before { content: '\f044'} /*  */ +.octicon-triangle-right:before { content: '\f05a'} /*  */ +.octicon-triangle-up:before { content: '\f0aa'} /*  */ +.octicon-unfold:before { content: '\f039'} /*  */ +.octicon-unmute:before { content: '\f0ba'} /*  */ +.octicon-unverified:before { content: '\f0e8'} /*  */ +.octicon-verified:before { content: '\f0e6'} /*  */ +.octicon-versions:before { content: '\f064'} /*  */ +.octicon-watch:before { content: '\f0e0'} /*  */ +.octicon-remove-close:before, +.octicon-x:before { content: '\f081'} /*  */ +.octicon-zap:before { content: '\26A1'} /* ⚡ */ \ No newline at end of file diff --git a/docs-old/assets/scss/_prism.scss b/docs-old/assets/scss/_prism.scss new file mode 100644 index 0000000..63e3b20 --- /dev/null +++ b/docs-old/assets/scss/_prism.scss @@ -0,0 +1,155 @@ +/* + +Name: Base16 Atelier Sulphurpool Light +Author: Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) + +Prism template by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/prism/) +Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) + +*/ +code[class*="language-"], +pre[class*="language-"] { + font-family: Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", "Courier New", Courier, monospace; + font-size: 1em; + line-height: 1.375; + direction: ltr; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + font-weight: 500; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + background: $code-white; + color: #5e6687; + border-radius: 0; + border: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #dfe2f1; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #dfe2f1; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #898ea4; +} + +.token.punctuation { + color: #5e6687; +} + +.token.namespace { + opacity: .7; +} + +.token.operator, +.token.boolean, +.token.number { + color: #c76b29; +} + +.token.property { + color: #c08b30; +} + +.token.tag { + color: #3d8fd1; +} + +.token.string { + color: #22a2c9; +} + +.token.selector { + color: #6679cc; +} + +.token.attr-name { + color: #c76b29; +} + +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #22a2c9; +} + +.token.attr-value, +.token.keyword, +.token.control, +.token.directive, +.token.unit { + color: #ac9739; +} + +.token.statement, +.token.regex, +.token.atrule { + color: #22a2c9; +} + +.token.placeholder, +.token.variable { + color: #3d8fd1; +} + +.token.deleted { + text-decoration: line-through; +} + +.token.inserted { + border-bottom: 1px dotted #202746; + text-decoration: none; +} + +.token.italic { + font-style: italic; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.important { + color: #c94922; +} + +.token.entity { + cursor: help; +} + +pre > code.highlight { + outline: 0.4em solid #c94922; + outline-offset: .4em; +} diff --git a/docs-old/assets/scss/_variables.scss b/docs-old/assets/scss/_variables.scss new file mode 100644 index 0000000..a04e13c --- /dev/null +++ b/docs-old/assets/scss/_variables.scss @@ -0,0 +1,15 @@ +$orange: #e96900; +$yellow: #FFC65D; +$green: #42b983; +$blue: #4CC3D9; +$purple: #93648D; +$black: #34495e; +$red: #ff6666; + +// Code +$code-blue: #66d9ef; +$code-purple: #ae81ff; +$code-black: #272822; +$code-white: #f8f8f8; +$code-grey: #708090; +$code-green: #a6e22e; diff --git a/docs-old/components/Code.vue b/docs-old/components/Code.vue new file mode 100644 index 0000000..c5e2732 --- /dev/null +++ b/docs-old/components/Code.vue @@ -0,0 +1,20 @@ + + + diff --git a/docs-old/components/Examples.vue b/docs-old/components/Examples.vue new file mode 100644 index 0000000..c3208d5 --- /dev/null +++ b/docs-old/components/Examples.vue @@ -0,0 +1,192 @@ + + + diff --git a/docs-old/components/GithubSearch.vue b/docs-old/components/GithubSearch.vue new file mode 100644 index 0000000..e2cc340 --- /dev/null +++ b/docs-old/components/GithubSearch.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/docs-old/components/GithubSearchBasic.vue b/docs-old/components/GithubSearchBasic.vue new file mode 100644 index 0000000..ec67693 --- /dev/null +++ b/docs-old/components/GithubSearchBasic.vue @@ -0,0 +1,38 @@ + + + \ No newline at end of file diff --git a/docs-old/components/Params.vue b/docs-old/components/Params.vue new file mode 100644 index 0000000..60048f2 --- /dev/null +++ b/docs-old/components/Params.vue @@ -0,0 +1,130 @@ + + + diff --git a/docs-old/components/snippets/Ajax.vue b/docs-old/components/snippets/Ajax.vue new file mode 100644 index 0000000..bb8c66b --- /dev/null +++ b/docs-old/components/snippets/Ajax.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/docs-old/components/snippets/AjaxExample.vue b/docs-old/components/snippets/AjaxExample.vue new file mode 100644 index 0000000..00318bd --- /dev/null +++ b/docs-old/components/snippets/AjaxExample.vue @@ -0,0 +1,31 @@ + + + \ No newline at end of file diff --git a/docs-old/components/snippets/AjaxProps.vue b/docs-old/components/snippets/AjaxProps.vue new file mode 100644 index 0000000..be20eff --- /dev/null +++ b/docs-old/components/snippets/AjaxProps.vue @@ -0,0 +1,28 @@ + + + \ No newline at end of file diff --git a/docs-old/components/snippets/InstallSnippet.vue b/docs-old/components/snippets/InstallSnippet.vue new file mode 100644 index 0000000..945dfd2 --- /dev/null +++ b/docs-old/components/snippets/InstallSnippet.vue @@ -0,0 +1,41 @@ + + diff --git a/docs-old/data/advanced.js b/docs-old/data/advanced.js new file mode 100644 index 0000000..9c17d19 --- /dev/null +++ b/docs-old/data/advanced.js @@ -0,0 +1,246 @@ +module.exports = [ + {value: "AF", label: "Afghanistan"}, + {value: "AX", label: "Åland Islands"}, + {value: "AL", label: "Albania"}, + {value: "DZ", label: "Algeria"}, + {value: "AS", label: "American Samoa"}, + {value: "AD", label: "Andorra"}, + {value: "AO", label: "Angola"}, + {value: "AI", label: "Anguilla"}, + {value: "AQ", label: "Antarctica"}, + {value: "AG", label: "Antigua and Barbuda"}, + {value: "AR", label: "Argentina"}, + {value: "AM", label: "Armenia"}, + {value: "AW", label: "Aruba"}, + {value: "AU", label: "Australia"}, + {value: "AT", label: "Austria"}, + {value: "AZ", label: "Azerbaijan"}, + {value: "BS", label: "Bahamas"}, + {value: "BH", label: "Bahrain"}, + {value: "BD", label: "Bangladesh"}, + {value: "BB", label: "Barbados"}, + {value: "BY", label: "Belarus"}, + {value: "BE", label: "Belgium"}, + {value: "BZ", label: "Belize"}, + {value: "BJ", label: "Benin"}, + {value: "BM", label: "Bermuda"}, + {value: "BT", label: "Bhutan"}, + {value: "BO", label: "Bolivia"}, + {value: "BA", label: "Bosnia and Herzegovina"}, + {value: "BW", label: "Botswana"}, + {value: "BV", label: "Bouvet Island"}, + {value: "BR", label: "Brazil"}, + {value: "IO", label: "British Indian Ocean Territory"}, + {value: "BN", label: "Brunei Darussalam"}, + {value: "BG", label: "Bulgaria"}, + {value: "BF", label: "Burkina Faso"}, + {value: "BI", label: "Burundi"}, + {value: "KH", label: "Cambodia"}, + {value: "CM", label: "Cameroon"}, + {value: "CA", label: "Canada"}, + {value: "CV", label: "Cape Verde"}, + {value: "KY", label: "Cayman Islands"}, + {value: "CF", label: "Central African Republic"}, + {value: "TD", label: "Chad"}, + {value: "CL", label: "Chile"}, + {value: "CN", label: "China"}, + {value: "CX", label: "Christmas Island"}, + {value: "CC", label: "Cocos (Keeling) Islands"}, + {value: "CO", label: "Colombia"}, + {value: "KM", label: "Comoros"}, + {value: "CG", label: "Congo"}, + {value: "CD", label: "Congo, The Democratic Republic of The"}, + {value: "CK", label: "Cook Islands"}, + {value: "CR", label: "Costa Rica"}, + {value: "CI", label: "Cote D'ivoire"}, + {value: "HR", label: "Croatia"}, + {value: "CU", label: "Cuba"}, + {value: "CY", label: "Cyprus"}, + {value: "CZ", label: "Czech Republic"}, + {value: "DK", label: "Denmark"}, + {value: "DJ", label: "Djibouti"}, + {value: "DM", label: "Dominica"}, + {value: "DO", label: "Dominican Republic"}, + {value: "EC", label: "Ecuador"}, + {value: "EG", label: "Egypt"}, + {value: "SV", label: "El Salvador"}, + {value: "GQ", label: "Equatorial Guinea"}, + {value: "ER", label: "Eritrea"}, + {value: "EE", label: "Estonia"}, + {value: "ET", label: "Ethiopia"}, + {value: "FK", label: "Falkland Islands (Malvinas)"}, + {value: "FO", label: "Faroe Islands"}, + {value: "FJ", label: "Fiji"}, + {value: "FI", label: "Finland"}, + {value: "FR", label: "France"}, + {value: "GF", label: "French Guiana"}, + {value: "PF", label: "French Polynesia"}, + {value: "TF", label: "French Southern Territories"}, + {value: "GA", label: "Gabon"}, + {value: "GM", label: "Gambia"}, + {value: "GE", label: "Georgia"}, + {value: "DE", label: "Germany"}, + {value: "GH", label: "Ghana"}, + {value: "GI", label: "Gibraltar"}, + {value: "GR", label: "Greece"}, + {value: "GL", label: "Greenland"}, + {value: "GD", label: "Grenada"}, + {value: "GP", label: "Guadeloupe"}, + {value: "GU", label: "Guam"}, + {value: "GT", label: "Guatemala"}, + {value: "GG", label: "Guernsey"}, + {value: "GN", label: "Guinea"}, + {value: "GW", label: "Guinea-bissau"}, + {value: "GY", label: "Guyana"}, + {value: "HT", label: "Haiti"}, + {value: "HM", label: "Heard Island and Mcdonald Islands"}, + {value: "VA", label: "Holy See (Vatican City State)"}, + {value: "HN", label: "Honduras"}, + {value: "HK", label: "Hong Kong"}, + {value: "HU", label: "Hungary"}, + {value: "IS", label: "Iceland"}, + {value: "IN", label: "India"}, + {value: "ID", label: "Indonesia"}, + {value: "IR", label: "Iran, Islamic Republic of"}, + {value: "IQ", label: "Iraq"}, + {value: "IE", label: "Ireland"}, + {value: "IM", label: "Isle of Man"}, + {value: "IL", label: "Israel"}, + {value: "IT", label: "Italy"}, + {value: "JM", label: "Jamaica"}, + {value: "JP", label: "Japan"}, + {value: "JE", label: "Jersey"}, + {value: "JO", label: "Jordan"}, + {value: "KZ", label: "Kazakhstan"}, + {value: "KE", label: "Kenya"}, + {value: "KI", label: "Kiribati"}, + {value: "KP", label: "Korea, Democratic People's Republic of"}, + {value: "KR", label: "Korea, Republic of"}, + {value: "KW", label: "Kuwait"}, + {value: "KG", label: "Kyrgyzstan"}, + {value: "LA", label: "Lao People's Democratic Republic"}, + {value: "LV", label: "Latvia"}, + {value: "LB", label: "Lebanon"}, + {value: "LS", label: "Lesotho"}, + {value: "LR", label: "Liberia"}, + {value: "LY", label: "Libyan Arab Jamahiriya"}, + {value: "LI", label: "Liechtenstein"}, + {value: "LT", label: "Lithuania"}, + {value: "LU", label: "Luxembourg"}, + {value: "MO", label: "Macao"}, + {value: "MK", label: "Macedonia, The Former Yugoslav Republic of"}, + {value: "MG", label: "Madagascar"}, + {value: "MW", label: "Malawi"}, + {value: "MY", label: "Malaysia"}, + {value: "MV", label: "Maldives"}, + {value: "ML", label: "Mali"}, + {value: "MT", label: "Malta"}, + {value: "MH", label: "Marshall Islands"}, + {value: "MQ", label: "Martinique"}, + {value: "MR", label: "Mauritania"}, + {value: "MU", label: "Mauritius"}, + {value: "YT", label: "Mayotte"}, + {value: "MX", label: "Mexico"}, + {value: "FM", label: "Micronesia, Federated States of"}, + {value: "MD", label: "Moldova, Republic of"}, + {value: "MC", label: "Monaco"}, + {value: "MN", label: "Mongolia"}, + {value: "ME", label: "Montenegro"}, + {value: "MS", label: "Montserrat"}, + {value: "MA", label: "Morocco"}, + {value: "MZ", label: "Mozambique"}, + {value: "MM", label: "Myanmar"}, + {value: "NA", label: "Namibia"}, + {value: "NR", label: "Nauru"}, + {value: "NP", label: "Nepal"}, + {value: "NL", label: "Netherlands"}, + {value: "AN", label: "Netherlands Antilles"}, + {value: "NC", label: "New Caledonia"}, + {value: "NZ", label: "New Zealand"}, + {value: "NI", label: "Nicaragua"}, + {value: "NE", label: "Niger"}, + {value: "NG", label: "Nigeria"}, + {value: "NU", label: "Niue"}, + {value: "NF", label: "Norfolk Island"}, + {value: "MP", label: "Northern Mariana Islands"}, + {value: "NO", label: "Norway"}, + {value: "OM", label: "Oman"}, + {value: "PK", label: "Pakistan"}, + {value: "PW", label: "Palau"}, + {value: "PS", label: "Palestinian Territory, Occupied"}, + {value: "PA", label: "Panama"}, + {value: "PG", label: "Papua New Guinea"}, + {value: "PY", label: "Paraguay"}, + {value: "PE", label: "Peru"}, + {value: "PH", label: "Philippines"}, + {value: "PN", label: "Pitcairn"}, + {value: "PL", label: "Poland"}, + {value: "PT", label: "Portugal"}, + {value: "PR", label: "Puerto Rico"}, + {value: "QA", label: "Qatar"}, + {value: "RE", label: "Reunion"}, + {value: "RO", label: "Romania"}, + {value: "RU", label: "Russian Federation"}, + {value: "RW", label: "Rwanda"}, + {value: "SH", label: "Saint Helena"}, + {value: "KN", label: "Saint Kitts and Nevis"}, + {value: "LC", label: "Saint Lucia"}, + {value: "PM", label: "Saint Pierre and Miquelon"}, + {value: "VC", label: "Saint Vincent and The Grenadines"}, + {value: "WS", label: "Samoa"}, + {value: "SM", label: "San Marino"}, + {value: "ST", label: "Sao Tome and Principe"}, + {value: "SA", label: "Saudi Arabia"}, + {value: "SN", label: "Senegal"}, + {value: "RS", label: "Serbia"}, + {value: "SC", label: "Seychelles"}, + {value: "SL", label: "Sierra Leone"}, + {value: "SG", label: "Singapore"}, + {value: "SK", label: "Slovakia"}, + {value: "SI", label: "Slovenia"}, + {value: "SB", label: "Solomon Islands"}, + {value: "SO", label: "Somalia"}, + {value: "ZA", label: "South Africa"}, + {value: "GS", label: "South Georgia and The South Sandwich Islands"}, + {value: "ES", label: "Spain"}, + {value: "LK", label: "Sri Lanka"}, + {value: "SD", label: "Sudan"}, + {value: "SR", label: "Suriname"}, + {value: "SJ", label: "Svalbard and Jan Mayen"}, + {value: "SZ", label: "Swaziland"}, + {value: "SE", label: "Sweden"}, + {value: "CH", label: "Switzerland"}, + {value: "SY", label: "Syrian Arab Republic"}, + {value: "TW", label: "Taiwan, Province of China"}, + {value: "TJ", label: "Tajikistan"}, + {value: "TZ", label: "Tanzania, United Republic of"}, + {value: "TH", label: "Thailand"}, + {value: "TL", label: "Timor-leste"}, + {value: "TG", label: "Togo"}, + {value: "TK", label: "Tokelau"}, + {value: "TO", label: "Tonga"}, + {value: "TT", label: "Trinidad and Tobago"}, + {value: "TN", label: "Tunisia"}, + {value: "TR", label: "Turkey"}, + {value: "TM", label: "Turkmenistan"}, + {value: "TC", label: "Turks and Caicos Islands"}, + {value: "TV", label: "Tuvalu"}, + {value: "UG", label: "Uganda"}, + {value: "UA", label: "Ukraine"}, + {value: "AE", label: "United Arab Emirates"}, + {value: "GB", label: "United Kingdom"}, + {value: "US", label: "United States"}, + {value: "UM", label: "United States Minor Outlying Islands"}, + {value: "UY", label: "Uruguay"}, + {value: "UZ", label: "Uzbekistan"}, + {value: "VU", label: "Vanuatu"}, + {value: "VE", label: "Venezuela"}, + {value: "VN", label: "Viet Nam"}, + {value: "VG", label: "Virgin Islands, British"}, + {value: "VI", label: "Virgin Islands, U.S."}, + {value: "WF", label: "Wallis and Futuna"}, + {value: "EH", label: "Western Sahara"}, + {value: "YE", label: "Yemen"}, + {value: "ZM", label: "Zambia"}, + {value: "ZW", label: "Zimbabwe"}, + ]; diff --git a/docs-old/data/simple.js b/docs-old/data/simple.js new file mode 100644 index 0000000..cdab338 --- /dev/null +++ b/docs-old/data/simple.js @@ -0,0 +1 @@ +module.exports = ["Afghanistan","Åland Islands","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo","Congo, The Democratic Republic of The","Cook Islands","Costa Rica","Cote D'ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Falkland Islands (Malvinas)","Faroe Islands","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea-bissau","Guyana","Haiti","Heard Island and Mcdonald Islands","Holy See (Vatican City State)","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran, Islamic Republic of","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Korea, Democratic People's Republic of","Korea, Republic of","Kuwait","Kyrgyzstan","Lao People's Democratic Republic","Latvia","Lebanon","Lesotho","Liberia","Libyan Arab Jamahiriya","Liechtenstein","Lithuania","Luxembourg","Macao","Macedonia, The Former Yugoslav Republic of","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia, Federated States of","Moldova, Republic of","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestinian Territory, Occupied","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saint Helena","Saint Kitts and Nevis","Saint Lucia","Saint Pierre and Miquelon","Saint Vincent and The Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and The South Sandwich Islands","Spain","Sri Lanka","Sudan","Suriname","Svalbard and Jan Mayen","Swaziland","Sweden","Switzerland","Syrian Arab Republic","Taiwan, Province of China","Tajikistan","Tanzania, United Republic of","Thailand","Timor-leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","United States Minor Outlying Islands","Uruguay","Uzbekistan","Vanuatu","Venezuela","Viet Nam","Virgin Islands, British","Virgin Islands, U.S.","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe"]; diff --git a/docs-old/docs.html b/docs-old/docs.html new file mode 100644 index 0000000..bf4be88 --- /dev/null +++ b/docs-old/docs.html @@ -0,0 +1,92 @@ + + + + + Vue Select | VueJS Select2 Component + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Vue Select

+ +

+ Build Status + Code Coverage + No Dependencies + MIT License + Current Release +

+ +

A native Vue.js select component that provides similar functionality to Select2/Chosen without the overhead of jQuery.

+ + + + +
+
+
    +
  • Fully Reactive
  • +
  • Tagging Support v1.1.0
  • +
  • Works with Vuex
  • +
  • Zero dependencies
  • +
+
+
+
    +
  • +95% Test Coverage
  • +
  • Select Single/Multiple
  • +
  • Typeahead Suggestions
  • +
  • Bootstrap Friendly Markup
  • +
+
+
+ + View on GitHub +
+
+ + Install, Examples & Documentation + + +
+ +
+ + + diff --git a/docs-old/docs.js b/docs-old/docs.js new file mode 100644 index 0000000..8481633 --- /dev/null +++ b/docs-old/docs.js @@ -0,0 +1,36 @@ +import 'prismjs' +import Vue from 'vue' +import Docs from './Docs.vue' +import store from './vuex/store' +import Resource from 'vue-resource' +import vSelect from '../src/components/Select.vue' +import vCode from './components/Code.vue' +import countries from './data/advanced' + +Vue.use(Resource) + +Vue.component('v-select', vSelect) +Vue.component('v-code', vCode) + +Vue.filter('score', function (value) { + return Math.round(value) +}) + +Vue.config.debug = true +Vue.config.devtools = true + +import { setSelected, toggleMultiple, setPlaceholder, toggleOptionType } from './vuex/actions' + + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + store, + components: { Docs }, + data () { + return { + options: countries, + placeholder: 'Choose a country..', + } + } +}) diff --git a/docs/Ajax.md b/docs/Ajax.md new file mode 100644 index 0000000..0cef7f5 --- /dev/null +++ b/docs/Ajax.md @@ -0,0 +1,31 @@ +## AJAX Remote Option Loading + + +The `onSearch` prop allows you to load options via ajax in a parent component when the search text is updated. It is invoked with two parameters, `search` & `loading`. + +#### onSearch Callback Parameters search, loading + +`search` is a string containing the current search text. `loading` is a function that accepts a boolean value, and is used to toggle the 'loading' class on the top-level vue-select wrapper. + +#### Loading Spinner + +Vue Select includes a default loading spinner that appears when the loading class is present. The `spinner` slot allows you to implement your own spinner. + +
+ +
Loading...
+ +#### Debounce Input + +Vue Select also accepts a `debounce` prop that can be used to prevent `onSearch` from being called until input has completed. + +#### Library Agnostic + +Since Vue.js does not ship with ajax functionality as part of the core library, it's up to you to process the ajax requests in your parent component. + + +#### Example GitHub API + +In this example, [Vue Resource](https://github.com/vuejs/vue-resource) is used to access the [GitHub API](https://developer.github.com/v3/). + +
diff --git a/docs/AjaxExample.md b/docs/AjaxExample.md new file mode 100644 index 0000000..27ceaab --- /dev/null +++ b/docs/AjaxExample.md @@ -0,0 +1,28 @@ +```html + + +``` +```js +data() { + return { + options: null + } +}, +methods: { + getOptions(search, loading) { + loading(true) + this.$http.get('https://api.github.com/search/repositories', { + q: search + }).then(resp => { + this.options = resp.data.items + loading(false) + }) + } +} +``` diff --git a/docs/AjaxProps.md b/docs/AjaxProps.md new file mode 100644 index 0000000..7e1aa61 --- /dev/null +++ b/docs/AjaxProps.md @@ -0,0 +1,24 @@ +```js +/** +* Accept a callback function that will be run +* when the search text changes. The callback +* will be invoked with these parameters: + +* @param {search} String Current search text +* @param {loading} Function(bool) Toggle loading class +*/ +onSearch: { + type: Function, + default: false +}, + +/** +* Milliseconds to wait before invoking this.onSearch(). +* Used to prevent sending an AJAX request until input +* has completed. +*/ +debounce: { + type: Number, + default: 0 +} +``` diff --git a/docs/CustomLabels.md b/docs/CustomLabels.md new file mode 100644 index 0000000..709a53c --- /dev/null +++ b/docs/CustomLabels.md @@ -0,0 +1,9 @@ +### Custom Labels + +By default when the `options` array contains objects, `vue-select` looks for the `label` key for display. If your data source doesn't contain that key, you can set your own using the `label` prop. + +On this page, the list of countries used in the examples contains `value` and `label` properties: `{value: "CA", label: "Canada"}`. In this example, we'll display the country code instead of the label. + +`` + + diff --git a/docs/Examples.md b/docs/Examples.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/Install.md b/docs/Install.md new file mode 100644 index 0000000..4d870f8 --- /dev/null +++ b/docs/Install.md @@ -0,0 +1,45 @@ +## NPM Based WorkFlows +``` bash +$ npm install vue-select +``` + +```html + + + +``` + +## Browser Globals + +`v1.3.0+` no longer requires any toolchain to use the component: + +Just include `vue` & `vue-select.js` - I recommend using [unpkg.com](https://unpkg.com/#/). + +```html + + + + +``` +Then register the component in your javascript: + +```js +Vue.component('v-select', VueSelect.VueSelect); +``` + +From there you can use as normal. Here's an [example on JSBin](http://jsbin.com/saxaru/5/edit?html,js,output). diff --git a/docs/OnChange.md b/docs/OnChange.md new file mode 100644 index 0000000..4b3ad49 --- /dev/null +++ b/docs/OnChange.md @@ -0,0 +1,26 @@ +### Change Event Vuex Compatibility + +vue-select provides a `change` event. This function is passed the currently selected value(s) as it's only parameter. + +This is very useful when integrating with Vuex, as it will allow your to trigger an action to update your vuex state object. Choose a callback and see it in action. + +
+
+
+
+ +```html + +``` + +```js +methods: { + consoleCallback(val) { + console.dir(JSON.stringify(val)) + }, + + alertCallback(val) { + alert(JSON.stringify(val)) + } +} +``` diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..3d07efe --- /dev/null +++ b/docs/README.md @@ -0,0 +1,2 @@ +# Introduction + diff --git a/docs/ReactiveOptions.md b/docs/ReactiveOptions.md new file mode 100644 index 0000000..0f13ab0 --- /dev/null +++ b/docs/ReactiveOptions.md @@ -0,0 +1,19 @@ +### Reactive Options + +When the list of options provided by the parent changes, vue-select will react as you'd expect. + +
+ +
+ +
+ +
+ + diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md new file mode 100644 index 0000000..263112f --- /dev/null +++ b/docs/SUMMARY.md @@ -0,0 +1,4 @@ +# Summary + +* [Introduction](README.md) + diff --git a/docs/SingleMultiple.md b/docs/SingleMultiple.md new file mode 100644 index 0000000..4257901 --- /dev/null +++ b/docs/SingleMultiple.md @@ -0,0 +1,29 @@ +
+ +### Single/Multiple Selection + +
+ +
+ +#### Single Option Select + +```html + +``` + +
+ +
+ +#### Multiple Option Select + +```html + +``` + +
+ +
+ +
diff --git a/docs/VModel.md b/docs/VModel.md new file mode 100644 index 0000000..e0af80a --- /dev/null +++ b/docs/VModel.md @@ -0,0 +1,15 @@ +### Two-Way Value Syncing + +The most common use case for vue-select is being able to sync the components value with a parent component. The `value` property supports two-way data binding to accomplish this. The `.sync` data-binding modifier is completely optional. You may use `value` without a two-way binding to preselect options. Here we have preselected 'Canada' by setting `syncedVal: 'Canada'` on the parent component. The buttons below demonstrate how you can set the `value` from the parent. Current value: {{ syncedVal }} + +
+`` +
+
+ +
+ +
+ + +