From d9f3c3807f0545a182dab139e09b8f83fdea6f11 Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 3 May 2021 12:58:59 +0000 Subject: [PATCH 01/59] vue-multiselect upgrade to support Vue 3 (#1417) * Init Vue 3 Upgrade and repo cleanup * Update package.json and readme * Package and readme tweaks Co-authored-by: Matt Elen --- .babelrc | 16 +- .circleci/config.yml | 38 - .github/ISSUE_TEMPLATE.md | 9 +- .github/funding.yml | 1 - .gitignore | 1 + .npmignore | 1 + .tern-project | 10 - README.md | 77 +- bower.json | 28 - build/build.js | 40 - build/bundle.js | 33 - build/check-versions.js | 45 - build/dev-client.js | 9 - build/dev-server.js | 83 - build/utils.js | 64 - build/vue-loader.conf.js | 17 - build/webpack.base.conf.js | 81 - build/webpack.bundle.conf.js | 48 - build/webpack.dev.conf.js | 35 - build/webpack.docs.conf.js | 122 - build/webpack.test.conf.js | 24 - config/dev.env.js | 6 - config/index.js | 40 - config/prod.env.js | 3 - config/test.env.js | 6 - dist/vue-multiselect.min.css | 1 - dist/vue-multiselect.min.css.map | 1 - dist/vue-multiselect.min.js | 1 - dist/vue3-multiselect.common.js | 4331 ++++ dist/vue3-multiselect.common.js.map | 1 + dist/vue3-multiselect.css | 1 + dist/vue3-multiselect.umd.js | 4341 ++++ dist/vue3-multiselect.umd.js.map | 1 + dist/vue3-multiselect.umd.min.js | 2 + dist/vue3-multiselect.umd.min.js.map | 1 + docs/CNAME | 1 - docs/index.html | 628 - docs/static/.gitkeep | 0 .../app.4024356b3bf3fd5b732150cb70dfadbb.css | 2 - ...p.4024356b3bf3fd5b732150cb70dfadbb.css.map | 1 - docs/static/img/vue-logo.e1ea82c.png | Bin 11460 -> 0 bytes docs/static/js/app.b2f1675946bbf7c5b51e.js | 2 - .../static/js/app.b2f1675946bbf7c5b51e.js.map | 1 - .../js/manifest.7ef7682d475d0f8fbb4c.js | 2 - .../js/manifest.7ef7682d475d0f8fbb4c.js.map | 1 - docs/static/js/vendor.a50713251bbdc094c7dd.js | 19 - .../js/vendor.a50713251bbdc094c7dd.js.map | 1 - docs/static/monterail-logo.png | Bin 14892 -> 0 bytes docs/static/posters/creatures.png | Bin 220115 -> 0 bytes docs/static/posters/fleet.png | Bin 212455 -> 0 bytes docs/static/posters/resource_lab.png | Bin 242528 -> 0 bytes docs/static/posters/trading_post.png | Bin 169336 -> 0 bytes docs/static/prism.js | 14 - docs/static/vue-logo.png | Bin 11460 -> 0 bytes docs/v1/index.html | 249 - .../app.ec9eee29ef751295f0bcd7cf82528ce8.css | 2 - ...p.ec9eee29ef751295f0bcd7cf82528ce8.css.map | 1 - docs/v1/static/js/app.afd354496e6743d6c34f.js | 10 - .../static/js/app.afd354496e6743d6c34f.js.map | 1 - docs/v1/static/monterail-logo.png | Bin 14892 -> 0 bytes docs/v1/static/posters/creatures.png | Bin 220115 -> 0 bytes docs/v1/static/posters/fleet.png | Bin 212455 -> 0 bytes docs/v1/static/posters/resource_lab.png | Bin 242528 -> 0 bytes docs/v1/static/posters/trading_post.png | Bin 169336 -> 0 bytes docs/v1/static/prism.js | 14 - docs/v1/static/vue-logo.png | Bin 11460 -> 0 bytes documentation/LangSwitcher.vue | 19 - documentation/MultiselectExample.vue | 59 - documentation/_mixins.pug | 65 - documentation/assets/_functions.sass | 53 - documentation/assets/base/_animations.sass | 5 - documentation/assets/base/_functions.sass | 21 - documentation/assets/base/_global.sass | 38 - documentation/assets/base/_media.sass | 23 - documentation/assets/base/_mixins.sass | 33 - documentation/assets/base/_typo.sass | 204 - documentation/assets/base/_z-stack.scss | 17 - documentation/assets/base/normalize.scss | 427 - documentation/assets/components/_buttons.sass | 134 - .../assets/components/_dropdown.sass | 144 - .../assets/components/_flex_grid.sass | 70 - documentation/assets/components/_grid.sass | 123 - documentation/assets/components/_inputs.sass | 272 - documentation/assets/components/_lists.sass | 81 - documentation/assets/components/_panels.sass | 126 - documentation/assets/components/_table.sass | 52 - documentation/assets/components/_tabs.sass | 68 - documentation/assets/github.svg | 12 - documentation/assets/logo.png | Bin 6849 -> 0 bytes documentation/assets/main.sass | 22 - documentation/assets/multiselect.sass | 294 - documentation/assets/prism.js | 14 - documentation/assets/prism.scss | 169 - documentation/assets/utils/_utils.sass | 5 - documentation/assets/utils/_visibility.sass | 23 - documentation/assets/vue-logo.png | Bin 11460 -> 0 bytes documentation/data/countries.json | 974 - documentation/docs.scss | 143 - documentation/index.pug | 63 - documentation/main.js | 88 - documentation/partials/_footer.pug | 5 - documentation/partials/_getting-started.pug | 65 - documentation/partials/_nav.pug | 28 - documentation/partials/_start.pug | 39 - documentation/partials/api/_events.pug | 56 - documentation/partials/api/_props.pug | 292 - documentation/partials/api/_slots.pug | 85 - .../partials/examples/ActionDispatcher.vue | 41 - .../partials/examples/AjaxSearch.vue | 101 - .../partials/examples/CustomConfig.vue | 65 - .../partials/examples/CustomOption.vue | 76 - documentation/partials/examples/Groups.vue | 61 - .../partials/examples/MultiSelect.vue | 71 - .../partials/examples/ProgrammaticCtrl.vue | 61 - .../partials/examples/SingleSelectObject.vue | 47 - .../examples/SingleSelectPrimitive.vue | 31 - .../partials/examples/SingleSelectSearch.vue | 45 - documentation/partials/examples/Tagging.vue | 53 - .../partials/examples/VuexActions.vue | 51 - documentation/partials/examples/_examples.pug | 123 - .../partials/examples/countriesApi.js | 12 - documentation/partials/examples/index.js | 27 - index.d.ts | 11 - jest.config.js | 28 +- multiselect-screen-203.png | Bin 215939 -> 0 bytes package-lock.json | 18096 ++++++++++++++++ package.json | 144 +- src/Multiselect.vue | 1210 +- src/index.js | 2 +- src/multiselectMixin.js | 70 +- src/pointerMixin.js | 10 +- static/.gitkeep | 0 static/monterail-logo.png | Bin 14892 -> 0 bytes static/posters/creatures.png | Bin 220115 -> 0 bytes static/posters/fleet.png | Bin 212455 -> 0 bytes static/posters/resource_lab.png | Bin 242528 -> 0 bytes static/posters/trading_post.png | Bin 169336 -> 0 bytes static/prism.js | 14 - static/vue-logo.png | Bin 11460 -> 0 bytes tests/e2e/custom-assertions/elementCount.js | 26 - tests/e2e/nightwatch.conf.js | 40 - tests/e2e/runner.js | 31 - tests/unit/Multiselect.spec.js | 471 +- v1/index.html | 249 - .../app.ec9eee29ef751295f0bcd7cf82528ce8.css | 2 - ...p.ec9eee29ef751295f0bcd7cf82528ce8.css.map | 1 - v1/static/js/app.afd354496e6743d6c34f.js | 10 - v1/static/js/app.afd354496e6743d6c34f.js.map | 1 - v1/static/monterail-logo.png | Bin 14892 -> 0 bytes v1/static/posters/creatures.png | Bin 220115 -> 0 bytes v1/static/posters/fleet.png | Bin 212455 -> 0 bytes v1/static/posters/resource_lab.png | Bin 242528 -> 0 bytes v1/static/posters/trading_post.png | Bin 169336 -> 0 bytes v1/static/prism.js | 14 - v1/static/vue-logo.png | Bin 11460 -> 0 bytes vue.config.js | 11 + yarn.lock | 12507 ----------- 157 files changed, 27729 insertions(+), 20962 deletions(-) delete mode 100644 .circleci/config.yml delete mode 100644 .github/funding.yml delete mode 100644 .tern-project delete mode 100644 bower.json delete mode 100644 build/build.js delete mode 100644 build/bundle.js delete mode 100644 build/check-versions.js delete mode 100644 build/dev-client.js delete mode 100644 build/dev-server.js delete mode 100644 build/utils.js delete mode 100644 build/vue-loader.conf.js delete mode 100644 build/webpack.base.conf.js delete mode 100644 build/webpack.bundle.conf.js delete mode 100644 build/webpack.dev.conf.js delete mode 100644 build/webpack.docs.conf.js delete mode 100644 build/webpack.test.conf.js delete mode 100644 config/dev.env.js delete mode 100644 config/index.js delete mode 100644 config/prod.env.js delete mode 100644 config/test.env.js delete mode 100644 dist/vue-multiselect.min.css delete mode 100644 dist/vue-multiselect.min.css.map delete mode 100644 dist/vue-multiselect.min.js create mode 100644 dist/vue3-multiselect.common.js create mode 100644 dist/vue3-multiselect.common.js.map create mode 100644 dist/vue3-multiselect.css create mode 100644 dist/vue3-multiselect.umd.js create mode 100644 dist/vue3-multiselect.umd.js.map create mode 100644 dist/vue3-multiselect.umd.min.js create mode 100644 dist/vue3-multiselect.umd.min.js.map delete mode 100644 docs/CNAME delete mode 100644 docs/index.html delete mode 100644 docs/static/.gitkeep delete mode 100644 docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css delete mode 100644 docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css.map delete mode 100644 docs/static/img/vue-logo.e1ea82c.png delete mode 100644 docs/static/js/app.b2f1675946bbf7c5b51e.js delete mode 100644 docs/static/js/app.b2f1675946bbf7c5b51e.js.map delete mode 100644 docs/static/js/manifest.7ef7682d475d0f8fbb4c.js delete mode 100644 docs/static/js/manifest.7ef7682d475d0f8fbb4c.js.map delete mode 100644 docs/static/js/vendor.a50713251bbdc094c7dd.js delete mode 100644 docs/static/js/vendor.a50713251bbdc094c7dd.js.map delete mode 100644 docs/static/monterail-logo.png delete mode 100644 docs/static/posters/creatures.png delete mode 100644 docs/static/posters/fleet.png delete mode 100644 docs/static/posters/resource_lab.png delete mode 100644 docs/static/posters/trading_post.png delete mode 100644 docs/static/prism.js delete mode 100644 docs/static/vue-logo.png delete mode 100644 docs/v1/index.html delete mode 100644 docs/v1/static/css/app.ec9eee29ef751295f0bcd7cf82528ce8.css delete mode 100644 docs/v1/static/css/app.ec9eee29ef751295f0bcd7cf82528ce8.css.map delete mode 100644 docs/v1/static/js/app.afd354496e6743d6c34f.js delete mode 100644 docs/v1/static/js/app.afd354496e6743d6c34f.js.map delete mode 100644 docs/v1/static/monterail-logo.png delete mode 100644 docs/v1/static/posters/creatures.png delete mode 100644 docs/v1/static/posters/fleet.png delete mode 100644 docs/v1/static/posters/resource_lab.png delete mode 100644 docs/v1/static/posters/trading_post.png delete mode 100644 docs/v1/static/prism.js delete mode 100644 docs/v1/static/vue-logo.png delete mode 100644 documentation/LangSwitcher.vue delete mode 100644 documentation/MultiselectExample.vue delete mode 100644 documentation/_mixins.pug delete mode 100644 documentation/assets/_functions.sass delete mode 100644 documentation/assets/base/_animations.sass delete mode 100644 documentation/assets/base/_functions.sass delete mode 100644 documentation/assets/base/_global.sass delete mode 100644 documentation/assets/base/_media.sass delete mode 100644 documentation/assets/base/_mixins.sass delete mode 100644 documentation/assets/base/_typo.sass delete mode 100644 documentation/assets/base/_z-stack.scss delete mode 100644 documentation/assets/base/normalize.scss delete mode 100644 documentation/assets/components/_buttons.sass delete mode 100644 documentation/assets/components/_dropdown.sass delete mode 100644 documentation/assets/components/_flex_grid.sass delete mode 100644 documentation/assets/components/_grid.sass delete mode 100644 documentation/assets/components/_inputs.sass delete mode 100644 documentation/assets/components/_lists.sass delete mode 100644 documentation/assets/components/_panels.sass delete mode 100644 documentation/assets/components/_table.sass delete mode 100644 documentation/assets/components/_tabs.sass delete mode 100644 documentation/assets/github.svg delete mode 100644 documentation/assets/logo.png delete mode 100644 documentation/assets/main.sass delete mode 100644 documentation/assets/multiselect.sass delete mode 100644 documentation/assets/prism.js delete mode 100644 documentation/assets/prism.scss delete mode 100644 documentation/assets/utils/_utils.sass delete mode 100644 documentation/assets/utils/_visibility.sass delete mode 100644 documentation/assets/vue-logo.png delete mode 100644 documentation/data/countries.json delete mode 100644 documentation/docs.scss delete mode 100644 documentation/index.pug delete mode 100644 documentation/main.js delete mode 100644 documentation/partials/_footer.pug delete mode 100644 documentation/partials/_getting-started.pug delete mode 100644 documentation/partials/_nav.pug delete mode 100644 documentation/partials/_start.pug delete mode 100644 documentation/partials/api/_events.pug delete mode 100644 documentation/partials/api/_props.pug delete mode 100644 documentation/partials/api/_slots.pug delete mode 100644 documentation/partials/examples/ActionDispatcher.vue delete mode 100644 documentation/partials/examples/AjaxSearch.vue delete mode 100644 documentation/partials/examples/CustomConfig.vue delete mode 100644 documentation/partials/examples/CustomOption.vue delete mode 100644 documentation/partials/examples/Groups.vue delete mode 100644 documentation/partials/examples/MultiSelect.vue delete mode 100644 documentation/partials/examples/ProgrammaticCtrl.vue delete mode 100644 documentation/partials/examples/SingleSelectObject.vue delete mode 100644 documentation/partials/examples/SingleSelectPrimitive.vue delete mode 100644 documentation/partials/examples/SingleSelectSearch.vue delete mode 100644 documentation/partials/examples/Tagging.vue delete mode 100644 documentation/partials/examples/VuexActions.vue delete mode 100644 documentation/partials/examples/_examples.pug delete mode 100644 documentation/partials/examples/countriesApi.js delete mode 100644 documentation/partials/examples/index.js delete mode 100644 index.d.ts delete mode 100644 multiselect-screen-203.png create mode 100644 package-lock.json delete mode 100644 static/.gitkeep delete mode 100644 static/monterail-logo.png delete mode 100644 static/posters/creatures.png delete mode 100644 static/posters/fleet.png delete mode 100644 static/posters/resource_lab.png delete mode 100644 static/posters/trading_post.png delete mode 100644 static/prism.js delete mode 100644 static/vue-logo.png delete mode 100644 tests/e2e/custom-assertions/elementCount.js delete mode 100644 tests/e2e/nightwatch.conf.js delete mode 100644 tests/e2e/runner.js delete mode 100755 v1/index.html delete mode 100755 v1/static/css/app.ec9eee29ef751295f0bcd7cf82528ce8.css delete mode 100755 v1/static/css/app.ec9eee29ef751295f0bcd7cf82528ce8.css.map delete mode 100755 v1/static/js/app.afd354496e6743d6c34f.js delete mode 100755 v1/static/js/app.afd354496e6743d6c34f.js.map delete mode 100755 v1/static/monterail-logo.png delete mode 100755 v1/static/posters/creatures.png delete mode 100755 v1/static/posters/fleet.png delete mode 100755 v1/static/posters/resource_lab.png delete mode 100755 v1/static/posters/trading_post.png delete mode 100755 v1/static/prism.js delete mode 100755 v1/static/vue-logo.png create mode 100644 vue.config.js delete mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc index c4466cc1..88b7baae 100644 --- a/.babelrc +++ b/.babelrc @@ -1,15 +1,5 @@ { - "presets": ["@vue/app"], - "env": { - "test": { - "presets": [ - [ - "@vue/app", - { - "modules": "commonjs" - } - ] - ] - } - } + "presets": [ + "@vue/cli-plugin-babel/preset" + ] } diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 0e51da30..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,38 +0,0 @@ -version: 2 -jobs: - build: - docker: - # specify the version you desire here - - image: circleci/node:8 - - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - # - image: circleci/mongo:3.4.4 - - working_directory: ~/repo - - steps: - - checkout - - # Download and cache dependencies - - restore_cache: - keys: - - v1-dependencies-{{ checksum "package.json" }} - # fallback to using the latest cache if no exact match is found - - v1-dependencies- - - - run: yarn install - - - save_cache: - paths: - - node_modules - key: v1-dependencies-{{ checksum "package.json" }} - - # run tests! - - run: npm test - - # To reeneable that the lib needs an account on codecov - # - run: - # name: Send code coverage - # command: './node_modules/.bin/codecov' diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 46bdb56c..990e718e 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,14 +1,7 @@ diff --git a/.github/funding.yml b/.github/funding.yml deleted file mode 100644 index b5967dc1..00000000 --- a/.github/funding.yml +++ /dev/null @@ -1 +0,0 @@ -github: shentao diff --git a/.gitignore b/.gitignore index f4a92e3b..ae828f87 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ npm-debug.log selenium-debug.log tests/unit/coverage tests/e2e/reports +.idea/ diff --git a/.npmignore b/.npmignore index 417737b3..09890a48 100644 --- a/.npmignore +++ b/.npmignore @@ -20,3 +20,4 @@ index.html config.js bower.json v1/ +.idea/ diff --git a/.tern-project b/.tern-project deleted file mode 100644 index 25491702..00000000 --- a/.tern-project +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ecmaVersion": 6, - "plugins": { - "modules": {}, - "es_modules": {}, - "doc_comment": { - "fullDocs": true - } - } -} diff --git a/README.md b/README.md index 3dbbb3f8..6185aaa0 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,8 @@ -# vue-multiselect ![Build Status](https://circleci.com/gh/shentao/vue-multiselect/tree/2.0.svg?style=shield&circle-token=5c931ff28fd12587610f835472becdd514d09cef)[![Codecov branch](https://img.shields.io/codecov/c/github/shentao/vue-multiselect/2.0.svg)](https://codecov.io/gh/shentao/vue-multiselect/branch/2.0)[![npm](https://img.shields.io/npm/v/vue-multiselect.svg)](https://www.npmjs.com/package/vue-multiselect) -Probably the most complete *selecting* solution for Vue.js 2.0, without jQuery. +# vue3-multiselect +A Vue 3 upgrade of [@shentao's](/~https://github.com/shentao) [vue-mulitselect](/~https://github.com/shentao/vue-multiselect) component. +The idea is that when you upgrade to Vue 3, you can swap the two components out, and everything should simply work. - - Vue-Multiselect Screen - - -## Documentation -Visit: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-started) - -## Sponsors - -### Gold - -

- - Vuejs Amsterdam - -

-

- - Vue - The Road To Enterprise - -

- -### Silver - -

- - Storyblok - -

- -### Bronze - -

- - Vue Mastery logo - -

+Feel free to check out our story of how we upgraded our product to Vue 3 on our blog at [suade.org](https://suade.org/dev/a-products-vue-3-migration-a-real-life-story/) ## Features & characteristics: * NO dependencies @@ -52,21 +17,13 @@ Visit: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-star * V-model support * Vuex support * Async options support -* \> 95% test coverage -* Fully configurable (see props list below) +* Fully configurable -## Breaking changes: -* Instead of Vue.partial for custom option templates you can use a custom render function. -* The `:key` props has changed to `:track-by`, due to conflicts with Vue 2.0. -* Support for `v-model` -* `@update` has changed to `@input` to also work with v-model -* `:selected` has changed to `:value` for the same reason -* Browserify users: if you wish to import `.vue` files, please add `vueify` transform. ## Install & basic usage ```bash -npm install vue-multiselect +npm install @suadelabs/vue3-multiselect ``` ```vue @@ -80,7 +37,7 @@ npm install vue-multiselect - + ``` -## JSFiddle - -[Example JSFiddle](https://jsfiddle.net/shentao/s0ugwmjp/) – Use this for issue reproduction. - ## Examples in jade-lang/pug-lang ### Single select / dropdown ``` jade multiselect( - :value="value", + :model-value="value", :options="source", :searchable="false", :close-on-select="false", :allow-empty="false", - @input="updateSelected", + @update:model-value="updateSelected", label="name", placeholder="Select one", track-by="name" @@ -198,21 +151,11 @@ methods: { ## Contributing ``` bash -# serve with hot reload at localhost:8080 -npm run dev - # distribution build with minification npm run bundle -# build the documentation into docs -npm run docs - # run unit tests npm run test -# run unit tests watch -npm run unit - ``` -For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). diff --git a/bower.json b/bower.json deleted file mode 100644 index ab548b05..00000000 --- a/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "vue-multiselect", - "description": "Multiselect component for vue.js", - "main": [ - "./dist/vue-multiselect.min.js", - "./dist/vue-multiselect.min.css" - ], - "authors": [ - "Damian Dulisz " - ], - "license": "MIT", - "keywords": [ - "vuejs", - "multiselect", - "selectize", - "ui-select", - "select2" - ], - "homepage": "/~https://github.com/shentao/vue-multiselect", - "moduleType": [], - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/build/build.js b/build/build.js deleted file mode 100644 index 8210eaae..00000000 --- a/build/build.js +++ /dev/null @@ -1,40 +0,0 @@ -// /~https://github.com/shelljs/shelljs -require('./check-versions')() - -process.env.NODE_ENV = 'production' - -var ora = require('ora') -var path = require('path') -var chalk = require('chalk') -var shell = require('shelljs') -var webpack = require('webpack') -var config = require('../config') -var webpackConfig = require('./webpack.docs.conf') - -var spinner = ora('building docs...') -spinner.start() - -var assetsPath = path.join(config.docs.assetsRoot, config.docs.assetsSubDirectory) -shell.rm('-rf', assetsPath) -shell.mkdir('-p', assetsPath) -shell.config.silent = true -shell.cp('-R', 'static/*', assetsPath) -shell.config.silent = false - -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\n') - - console.log(chalk.cyan(' Build complete.\n')) - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )) -}) diff --git a/build/bundle.js b/build/bundle.js deleted file mode 100644 index 62bd30ca..00000000 --- a/build/bundle.js +++ /dev/null @@ -1,33 +0,0 @@ -// /~https://github.com/shelljs/shelljs -require('./check-versions')() - -process.env.NODE_ENV = 'production' - -var ora = require('ora') -var path = require('path') -var chalk = require('chalk') -var shell = require('shelljs') -var webpack = require('webpack') -var config = require('../config') -var webpackConfig = require('./webpack.bundle.conf') - -var spinner = ora('building bundle...') -spinner.start() - -var assetsPath = path.join(config.bundle.assetsRoot, config.bundle.assetsSubDirectory) -shell.rm('-rf', assetsPath) -shell.mkdir('-p', assetsPath) - -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\n') - - console.log(chalk.cyan(' Build complete.\n')) -}) diff --git a/build/check-versions.js b/build/check-versions.js deleted file mode 100644 index 6c6c4a29..00000000 --- a/build/check-versions.js +++ /dev/null @@ -1,45 +0,0 @@ -var chalk = require('chalk') -var semver = require('semver') -var packageConfig = require('../package.json') - -function exec (cmd) { - return require('child_process').execSync(cmd).toString().trim() -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, - { - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - } -] - -module.exports = function () { - var warnings = [] - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i] - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ) - } - } - - if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() - for (var j = 0; j < warnings.length; j++) { - var warning = warnings[j] - console.log(' ' + warning) - } - console.log() - process.exit(1) - } -} diff --git a/build/dev-client.js b/build/dev-client.js deleted file mode 100644 index 18aa1e21..00000000 --- a/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* 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/build/dev-server.js b/build/dev-server.js deleted file mode 100644 index 0a1a406c..00000000 --- a/build/dev-server.js +++ /dev/null @@ -1,83 +0,0 @@ -require('./check-versions')() - -var config = require('../config') -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) -} - -var opn = require('opn') -var path = require('path') -var express = require('express') -var webpack = require('webpack') -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 -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser -// 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, - quiet: true -}) - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: () => {} -}) -// 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(options.filter || 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.dev.assetsPublicPath, config.dev.assetsSubDirectory) -app.use(staticPath, express.static('./static')) - -var uri = 'http://localhost:' + port - -devMiddleware.waitUntilValid(function () { - console.log('> Listening at ' + uri + '\n') -}) - -module.exports = app.listen(port, function (err) { - if (err) { - console.log(err) - return - } - - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri) - } -}) diff --git a/build/utils.js b/build/utils.js deleted file mode 100644 index c849a5d2..00000000 --- a/build/utils.js +++ /dev/null @@ -1,64 +0,0 @@ -var path = require('path') -var config = require('../config') -var ExtractTextPlugin = require('extract-text-webpack-plugin') - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.docs.assetsSubDirectory - : config.dev.assetsSubDirectory - return path.posix.join(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('!') - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: sourceLoader, - fallback: 'vue-style-loader' - }) - } else { - return ['vue-style-loader', sourceLoader].join('!') - } - } - - // http://vuejs.github.io/vue-loader/en/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/build/vue-loader.conf.js b/build/vue-loader.conf.js deleted file mode 100644 index 9b1ed49d..00000000 --- a/build/vue-loader.conf.js +++ /dev/null @@ -1,17 +0,0 @@ -var utils = require('./utils') -var config = require('../config') -var isProduction = process.env.NODE_ENV === 'production' - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.docs.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - postcss: [ - require('autoprefixer')({ - browsers: ['last 2 versions'] - }) - ] -} diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js deleted file mode 100644 index 191f98bd..00000000 --- a/build/webpack.base.conf.js +++ /dev/null @@ -1,81 +0,0 @@ -var path = require('path') -var config = require('../config') -var utils = require('./utils') -var vueLoaderConfig = require('./vue-loader.conf') - -function resolve (dir) { - return path.join(__dirname, '..', dir) -} - -module.exports = { - entry: { - app: './documentation/main.js' - }, - output: { - path: config.docs.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.docs.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.pug', '.js', '.vue', '.json'], - modules: [ - resolve('src'), - resolve('documentation'), - resolve('node_modules') - ], - alias: { - 'vue$': 'vue/dist/vue', - 'vue-multiselect': path.resolve(__dirname, '../src/Multiselect'), // for consistent docs - 'src': path.resolve(__dirname, '../src'), - 'assets': path.resolve(__dirname, '../documentation/assets'), - 'examples': path.resolve(__dirname, '../documentation/partials/examples'), - 'components': path.resolve(__dirname, '../src/components') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('documentation'), resolve('test')] - }, - { - test: /\.pug$/, - use: 'pug-loader', - include: [resolve('src'), resolve('documentation')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - query: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - query: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -} diff --git a/build/webpack.bundle.conf.js b/build/webpack.bundle.conf.js deleted file mode 100644 index ee8bcbfe..00000000 --- a/build/webpack.bundle.conf.js +++ /dev/null @@ -1,48 +0,0 @@ -const webpack = require('webpack') -const base = require('./webpack.base.conf') -const config = require('../config') -const ExtractTextPlugin = require('extract-text-webpack-plugin') -const utils = require('./utils') -const merge = require('webpack-merge') -const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin') - -const env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.bundle.env - -base.entry = { - 'VueMultiselect': './src/index.js' -} - -const webpackConfig = merge(base, { - output: { - path: config.bundle.assetsRoot, - publicPath: config.bundle.assetsPublicPath, - filename: 'vue-multiselect.min.js', - library: 'VueMultiselect', - libraryTarget: 'umd' - }, - module: { - rules: utils.styleLoaders({ - sourceMap: config.bundle.productionSourceMap, - extract: true - }) - }, - devtool: config.bundle.productionSourceMap ? '#source-map' : false, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { warnings: false } - }), - new ExtractTextPlugin({ - filename: 'vue-multiselect.min.css' - }), - new OptimizeCssAssetsPlugin({ - cssProcessor: require('cssnano') - }) - ] -}) - -module.exports = webpackConfig diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js deleted file mode 100644 index c1c23d19..00000000 --- a/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -var merge = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var FriendlyErrorsPlugin = require('friendly-errors-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: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // /~https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // /~https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: './documentation/index.pug', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}) diff --git a/build/webpack.docs.conf.js b/build/webpack.docs.conf.js deleted file mode 100644 index f6cf2c38..00000000 --- a/build/webpack.docs.conf.js +++ /dev/null @@ -1,122 +0,0 @@ -var path = require('path') -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -var merge = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var ExtractTextPlugin = require('extract-text-webpack-plugin') -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') -var CopyWebpackPlugin = require('copy-webpack-plugin') - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.docs.env - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: false, - extract: true - }) - }, - devtool: config.docs.productionSourceMap ? '#source-map' : false, - output: { - path: config.docs.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin(), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see /~https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.docs.index, - template: 'documentation/index.pug', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // /~https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ) - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - new CopyWebpackPlugin([ - { - from: path.join(__dirname, '../static'), - to: path.join(__dirname, '../docs/static') - }, - { - from: path.join(__dirname, '../v1'), - to: path.join(__dirname, '../docs/v1') - } - ]) - ] -}) - -if (config.docs.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin') - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.docs.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ) -} - -if (config.docs.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin - webpackConfig.plugins.push(new BundleAnalyzerPlugin()) -} - -module.exports = webpackConfig diff --git a/build/webpack.test.conf.js b/build/webpack.test.conf.js deleted file mode 100644 index 8e4385cf..00000000 --- a/build/webpack.test.conf.js +++ /dev/null @@ -1,24 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils') -var webpack = require('webpack') -var merge = require('webpack-merge') -var baseConfig = require('./webpack.base.conf') - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}) - -// no need for app entry during tests -delete webpackConfig.entry - -module.exports = webpackConfig diff --git a/config/dev.env.js b/config/dev.env.js deleted file mode 100644 index efead7c8..00000000 --- a/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge') -var prodEnv = require('./prod.env') - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}) diff --git a/config/index.js b/config/index.js deleted file mode 100644 index 6d87091a..00000000 --- a/config/index.js +++ /dev/null @@ -1,40 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path') - -module.exports = { - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (/~https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - }, - bundle: { - env: require('./prod.env'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsPublicPath: '/', - assetsSubDirectory: '/', - productionSourceMap: true, - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - bundleAnalyzerReport: process.env.npm_config_report - }, - docs: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../docs/index.html'), - assetsRoot: path.resolve(__dirname, '../docs'), - assetsPublicPath: '', - assetsSubDirectory: 'static', - productionSourceMap: true, - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - bundleAnalyzerReport: process.env.npm_config_report - } -} diff --git a/config/prod.env.js b/config/prod.env.js deleted file mode 100644 index 773d263d..00000000 --- a/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -} diff --git a/config/test.env.js b/config/test.env.js deleted file mode 100644 index 89f90deb..00000000 --- a/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge') -var devEnv = require('./dev.env') - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}) diff --git a/dist/vue-multiselect.min.css b/dist/vue-multiselect.min.css deleted file mode 100644 index 98a0739a..00000000 --- a/dist/vue-multiselect.min.css +++ /dev/null @@ -1 +0,0 @@ -fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid transparent;border-top-color:#41b883;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;-ms-touch-action:manipulation;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}} \ No newline at end of file diff --git a/dist/vue-multiselect.min.css.map b/dist/vue-multiselect.min.css.map deleted file mode 100644 index d1e00454..00000000 --- a/dist/vue-multiselect.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack:///src/Multiselect.vue"],"names":[],"mappings":";AACA;EACE,qBAAqB;CACtB;AACD;EACE,mBAAmB;EACnB,WAAW;EACX,SAAS;EACT,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,eAAe;CAChB;AACD;;EAEE,mBAAmB;EACnB,YAAY;EACZ,SAAS;EACT,UAAU;EACV,sBAAsB;EACtB,YAAY;EACZ,aAAa;EACb,oBAAoB;EACpB,8CAA8C;EAC9C,oBAAoB;EACpB,kBAAkB;EAClB,kCAAkC;CACnC;AACD;EACE,6DAA6D;EAC7D,oCAAoC;CACrC;AACD;EACE,6DAA6D;EAC7D,oCAAoC;CACrC;AACD;;EAEE,qCAAqC;EACrC,WAAW;CACZ;AACD;;EAEE,WAAW;CACZ;AACD;;;EAGE,qBAAqB;EACrB,gBAAgB;EAChB,+BAA+B;MAC3B,2BAA2B;CAChC;AACD;EACE,wBAAwB;EACxB,eAAe;EACf,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,iBAAiB;EACjB,eAAe;CAChB;AACD;EACE,uBAAuB;CACxB;AACD;EACE,cAAc;CACf;AACD;EACE,oBAAoB;EACpB,qBAAqB;EACrB,aAAa;CACd;AACD;EACE,YAAY;CACb;AACD;;;EAGE,6BAA6B;EAC7B,8BAA8B;CAC/B;AACD;EACE,2BAA2B;CAC5B;AACD;;;EAGE,0BAA0B;EAC1B,2BAA2B;CAC5B;AACD;;EAEE,mBAAmB;EACnB,sBAAsB;EACtB,iBAAiB;EACjB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,mBAAmB;EACnB,kBAAkB;EAClB,6BAA6B;EAC7B,uBAAuB;EACvB,mBAAmB;EACnB,oBAAoB;CACrB;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;CAChB;AACD;;EAEE,YAAY;CACb;AACD;;EAEE,sBAAsB;CACvB;AACD;;EAEE,sBAAsB;EACtB,cAAc;CACf;AACD;EACE,kBAAkB;EAClB,mBAAmB;CACpB;AACD;EACE,gBAAgB;CACjB;AACD;EACE,iBAAiB;EACjB,eAAe;EACf,wBAAwB;EACxB,mBAAmB;EACnB,0BAA0B;EAC1B,iBAAiB;EACjB,gBAAgB;CACjB;AACD;EACE,mBAAmB;EACnB,sBAAsB;EACtB,2BAA2B;EAC3B,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,eAAe;EACf,oBAAoB;EACpB,mBAAmB;EACnB,oBAAoB;EACpB,iBAAiB;EACjB,gBAAgB;EAChB,wBAAwB;CACzB;AACD;EACE,gBAAgB;EAChB,iBAAiB;EACjB,mBAAmB;EACnB,SAAS;EACT,OAAO;EACP,UAAU;EACV,iBAAiB;EACjB,oBAAoB;EACpB,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;EAClB,0BAA0B;EAC1B,mBAAmB;CACpB;AACD;EACE,eAAa;EACb,eAAe;EACf,gBAAgB;CACjB;AACD;;EAEE,oBAAoB;CACrB;AACD;;EAEE,aAAa;CACd;AACD;EACE,kBAAkB;EAClB,iBAAiB;EACjB,uBAAuB;EACvB,eAAe;EACf,iBAAiB;EACjB,oBAAoB;EACpB,oBAAoB;EACpB,oBAAoB;EACpB,UAAU;EACV,sBAAsB;EACtB,mBAAmB;EACnB,0BAA0B;EAC1B,gBAAgB;CACjB;AACD;EACE,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,aAAa;EACb,WAAW;EACX,SAAS;EACT,iBAAiB;EACjB,UAAU;EACV,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,gCAAgC;CACjC;AACD;EACE,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,oBAAoB;EACpB,4BAA4B;EAC5B,0DAA0D;EAC1D,YAAY;CACb;AACD;EACE,eAAe;EACf,sBAAsB;EACtB,oBAAoB;EACpB,iBAAiB;CAClB;AACD;EACE,cAAc;CACf;AACD;EACE,mBAAmB;EACnB,eAAe;EACf,iBAAiB;EACjB,YAAY;EACZ,kBAAkB;EAClB,eAAe;EACf,0BAA0B;EAC1B,iBAAiB;EACjB,+BAA+B;EAC/B,gCAAgC;EAChC,YAAY;EACZ,kCAAkC;CACnC;AACD;EACE,iBAAiB;EACjB,sBAAsB;EACtB,WAAW;EACX,UAAU;EACV,gBAAgB;EAChB,oBAAoB;CACrB;AACD;EACE,aAAa;EACb,6BAA6B;EAC7B,8BAA8B;EAC9B,4BAA4B;EAC5B,6BAA6B;EAC7B,oBAAoB;EACpB,8BAA8B;CAC/B;AACD;EACE,cAAc;CACf;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;EACf,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;EACtB,qBAAqB;EACrB,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;EAChB,oBAAoB;CACrB;AACD;EACE,OAAO;EACP,SAAS;EACT,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;CACjB;AACD;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;CACd;AACD;EACE,2BAA2B;EAC3B,oBAAoB;EACpB,aAAa;CACd;AACD;EACE,oBAAoB;EACpB,eAAe;EACf,kBAAkB;CACnB;AACD;EACE,6BAA6B;EAC7B,cAAc;CACf;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;EACpB,6BAA6B;EAC7B,YAAY;CACb;AACD;;EAEE,oBAAoB;EACpB,eAAe;CAChB;AACD;EACE,+BAA+B;EAC/B,0BAA0B;EAC1B,aAAa;EACb,qBAAqB;CACtB;AACD;EACE,oBAAoB;EACpB,eAAe;CAChB;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;CACrB;AACD;EACE,oBAAoB;CACrB;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;EACpB,6BAA6B;EAC7B,YAAY;CACb;AACD;;EAEE,2BAA2B;CAC5B;AACD;;EAEE,WAAW;CACZ;AACD;EACE,mBAAmB;EACnB,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;CACrB;AACD;EACE,kBAAkB;CACnB;AACD;EACE,YAAY;EACZ,UAAU;CACX;AACD;EACE,0BAA0B;CAC3B;AACD;EACE,kBAAkB;CACnB;AACD;EACE,YAAY;EACZ,QAAQ;CACT;AACD;EACE,YAAY;EACZ,WAAW;CACZ;AACD;EACE,YAAY;EACZ,UAAU;CACX;AACD;AACA;IACI,qBAAqB;CACxB;AACD;IACI,yBAAyB;CAC5B;CACA","file":"vue-multiselect.min.css","sourcesContent":["\nfieldset[disabled] .multiselect {\n pointer-events: none;\n}\n.multiselect__spinner {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 48px;\n height: 35px;\n background: #fff;\n display: block;\n}\n.multiselect__spinner:before,\n.multiselect__spinner:after {\n position: absolute;\n content: \"\";\n top: 50%;\n left: 50%;\n margin: -8px 0 0 -8px;\n width: 16px;\n height: 16px;\n border-radius: 100%;\n border-color: #41b883 transparent transparent;\n border-style: solid;\n border-width: 2px;\n box-shadow: 0 0 0 1px transparent;\n}\n.multiselect__spinner:before {\n animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);\n animation-iteration-count: infinite;\n}\n.multiselect__spinner:after {\n animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);\n animation-iteration-count: infinite;\n}\n.multiselect__loading-enter-active,\n.multiselect__loading-leave-active {\n transition: opacity 0.4s ease-in-out;\n opacity: 1;\n}\n.multiselect__loading-enter,\n.multiselect__loading-leave-active {\n opacity: 0;\n}\n.multiselect,\n.multiselect__input,\n.multiselect__single {\n font-family: inherit;\n font-size: 16px;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n}\n.multiselect {\n box-sizing: content-box;\n display: block;\n position: relative;\n width: 100%;\n min-height: 40px;\n text-align: left;\n color: #35495e;\n}\n.multiselect * {\n box-sizing: border-box;\n}\n.multiselect:focus {\n outline: none;\n}\n.multiselect--disabled {\n background: #ededed;\n pointer-events: none;\n opacity: 0.6;\n}\n.multiselect--active {\n z-index: 50;\n}\n.multiselect--active:not(.multiselect--above) .multiselect__current,\n.multiselect--active:not(.multiselect--above) .multiselect__input,\n.multiselect--active:not(.multiselect--above) .multiselect__tags {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.multiselect--active .multiselect__select {\n transform: rotateZ(180deg);\n}\n.multiselect--above.multiselect--active .multiselect__current,\n.multiselect--above.multiselect--active .multiselect__input,\n.multiselect--above.multiselect--active .multiselect__tags {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.multiselect__input,\n.multiselect__single {\n position: relative;\n display: inline-block;\n min-height: 20px;\n line-height: 20px;\n border: none;\n border-radius: 5px;\n background: #fff;\n padding: 0 0 0 5px;\n width: calc(100%);\n transition: border 0.1s ease;\n box-sizing: border-box;\n margin-bottom: 8px;\n vertical-align: top;\n}\n.multiselect__input:-ms-input-placeholder {\n color: #35495e;\n}\n.multiselect__input::placeholder {\n color: #35495e;\n}\n.multiselect__tag ~ .multiselect__input,\n.multiselect__tag ~ .multiselect__single {\n width: auto;\n}\n.multiselect__input:hover,\n.multiselect__single:hover {\n border-color: #cfcfcf;\n}\n.multiselect__input:focus,\n.multiselect__single:focus {\n border-color: #a8a8a8;\n outline: none;\n}\n.multiselect__single {\n padding-left: 5px;\n margin-bottom: 8px;\n}\n.multiselect__tags-wrap {\n display: inline;\n}\n.multiselect__tags {\n min-height: 40px;\n display: block;\n padding: 8px 40px 0 8px;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n background: #fff;\n font-size: 14px;\n}\n.multiselect__tag {\n position: relative;\n display: inline-block;\n padding: 4px 26px 4px 10px;\n border-radius: 5px;\n margin-right: 10px;\n color: #fff;\n line-height: 1;\n background: #41b883;\n margin-bottom: 5px;\n white-space: nowrap;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n}\n.multiselect__tag-icon {\n cursor: pointer;\n margin-left: 7px;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n font-weight: 700;\n font-style: initial;\n width: 22px;\n text-align: center;\n line-height: 22px;\n transition: all 0.2s ease;\n border-radius: 5px;\n}\n.multiselect__tag-icon:after {\n content: \"×\";\n color: #266d4d;\n font-size: 14px;\n}\n.multiselect__tag-icon:focus,\n.multiselect__tag-icon:hover {\n background: #369a6e;\n}\n.multiselect__tag-icon:focus:after,\n.multiselect__tag-icon:hover:after {\n color: white;\n}\n.multiselect__current {\n line-height: 16px;\n min-height: 40px;\n box-sizing: border-box;\n display: block;\n overflow: hidden;\n padding: 8px 12px 0;\n padding-right: 30px;\n white-space: nowrap;\n margin: 0;\n text-decoration: none;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n cursor: pointer;\n}\n.multiselect__select {\n line-height: 16px;\n display: block;\n position: absolute;\n box-sizing: border-box;\n width: 40px;\n height: 38px;\n right: 1px;\n top: 1px;\n padding: 4px 8px;\n margin: 0;\n text-decoration: none;\n text-align: center;\n cursor: pointer;\n transition: transform 0.2s ease;\n}\n.multiselect__select:before {\n position: relative;\n right: 0;\n top: 65%;\n color: #999;\n margin-top: 4px;\n border-style: solid;\n border-width: 5px 5px 0 5px;\n border-color: #999999 transparent transparent transparent;\n content: \"\";\n}\n.multiselect__placeholder {\n color: #adadad;\n display: inline-block;\n margin-bottom: 10px;\n padding-top: 2px;\n}\n.multiselect--active .multiselect__placeholder {\n display: none;\n}\n.multiselect__content-wrapper {\n position: absolute;\n display: block;\n background: #fff;\n width: 100%;\n max-height: 240px;\n overflow: auto;\n border: 1px solid #e8e8e8;\n border-top: none;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n z-index: 50;\n -webkit-overflow-scrolling: touch;\n}\n.multiselect__content {\n list-style: none;\n display: inline-block;\n padding: 0;\n margin: 0;\n min-width: 100%;\n vertical-align: top;\n}\n.multiselect--above .multiselect__content-wrapper {\n bottom: 100%;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n border-bottom: none;\n border-top: 1px solid #e8e8e8;\n}\n.multiselect__content::webkit-scrollbar {\n display: none;\n}\n.multiselect__element {\n display: block;\n}\n.multiselect__option {\n display: block;\n padding: 12px;\n min-height: 40px;\n line-height: 16px;\n text-decoration: none;\n text-transform: none;\n vertical-align: middle;\n position: relative;\n cursor: pointer;\n white-space: nowrap;\n}\n.multiselect__option:after {\n top: 0;\n right: 0;\n position: absolute;\n line-height: 40px;\n padding-right: 12px;\n padding-left: 20px;\n font-size: 13px;\n}\n.multiselect__option--highlight {\n background: #41b883;\n outline: none;\n color: white;\n}\n.multiselect__option--highlight:after {\n content: attr(data-select);\n background: #41b883;\n color: white;\n}\n.multiselect__option--selected {\n background: #f3f3f3;\n color: #35495e;\n font-weight: bold;\n}\n.multiselect__option--selected:after {\n content: attr(data-selected);\n color: silver;\n}\n.multiselect__option--selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n.multiselect__option--selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n.multiselect--disabled .multiselect__current,\n.multiselect--disabled .multiselect__select {\n background: #ededed;\n color: #a6a6a6;\n}\n.multiselect__option--disabled {\n background: #ededed !important;\n color: #a6a6a6 !important;\n cursor: text;\n pointer-events: none;\n}\n.multiselect__option--group {\n background: #ededed;\n color: #35495e;\n}\n.multiselect__option--group.multiselect__option--highlight {\n background: #35495e;\n color: #fff;\n}\n.multiselect__option--group.multiselect__option--highlight:after {\n background: #35495e;\n}\n.multiselect__option--disabled.multiselect__option--highlight {\n background: #dedede;\n}\n.multiselect__option--group-selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n.multiselect__option--group-selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n.multiselect-enter-active,\n.multiselect-leave-active {\n transition: all 0.15s ease;\n}\n.multiselect-enter,\n.multiselect-leave-active {\n opacity: 0;\n}\n.multiselect__strong {\n margin-bottom: 8px;\n line-height: 20px;\n display: inline-block;\n vertical-align: top;\n}\n*[dir=\"rtl\"] .multiselect {\n text-align: right;\n}\n*[dir=\"rtl\"] .multiselect__select {\n right: auto;\n left: 1px;\n}\n*[dir=\"rtl\"] .multiselect__tags {\n padding: 8px 8px 0px 40px;\n}\n*[dir=\"rtl\"] .multiselect__content {\n text-align: right;\n}\n*[dir=\"rtl\"] .multiselect__option:after {\n right: auto;\n left: 0;\n}\n*[dir=\"rtl\"] .multiselect__clear {\n right: auto;\n left: 12px;\n}\n*[dir=\"rtl\"] .multiselect__spinner {\n right: auto;\n left: 1px;\n}\n@keyframes spinning {\nfrom {\n transform: rotate(0);\n}\nto {\n transform: rotate(2turn);\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/Multiselect.vue"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue-multiselect.min.js b/dist/vue-multiselect.min.js deleted file mode 100644 index e6e91d39..00000000 --- a/dist/vue-multiselect.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueMultiselect=e():t.VueMultiselect=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e(e.s=60)}([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){var i=n(49)("wks"),r=n(30),o=n(0).Symbol,s="function"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))}).store=i},function(t,e,n){var i=n(5);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var i=n(0),r=n(10),o=n(8),s=n(6),u=n(11),a=function(t,e,n){var l,c,f,p,h=t&a.F,d=t&a.G,v=t&a.S,g=t&a.P,y=t&a.B,m=d?i:v?i[e]||(i[e]={}):(i[e]||{}).prototype,b=d?r:r[e]||(r[e]={}),_=b.prototype||(b.prototype={});d&&(n=e);for(l in n)c=!h&&m&&void 0!==m[l],f=(c?m:n)[l],p=y&&c?u(f,i):g&&"function"==typeof f?u(Function.call,f):f,m&&s(m,l,f,t&a.U),b[l]!=f&&o(b,l,p),g&&_[l]!=f&&(_[l]=f)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e,n){t.exports=!n(7)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var i=n(0),r=n(8),o=n(12),s=n(30)("src"),u=Function.toString,a=(""+u).split("toString");n(10).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var l="function"==typeof n;l&&(o(n,"name")||r(n,"name",e)),t[e]!==n&&(l&&(o(n,s)||r(n,s,t[e]?""+t[e]:a.join(String(e)))),t===i?t[e]=n:u?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[s]||u.call(this)})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(13),r=n(25);t.exports=n(4)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(14);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(2),r=n(41),o=n(29),s=Object.defineProperty;e.f=n(4)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(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){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";var i=n(7);t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var i=n(23),r=n(16);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(53),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(11),r=n(23),o=n(28),s=n(19),u=n(64);t.exports=function(t,e){var n=1==t,a=2==t,l=3==t,c=4==t,f=6==t,p=5==t||f,h=e||u;return function(e,u,d){for(var v,g,y=o(e),m=r(y),b=i(u,d,3),_=s(m.length),x=0,w=n?h(e,_):a?h(e,0):void 0;_>x;x++)if((p||x in m)&&(v=m[x],g=b(v,x,y),t))if(n)w[x]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(c)return!1;return f?-1:l||c?c:w}}},function(t,e,n){var i=n(5),r=n(0).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(9);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){t.exports=!1},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(13).f,r=n(12),o=n(1)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(49)("keys"),r=n(30);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(16);t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(5);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e,n){"use strict";var i=n(0),r=n(12),o=n(9),s=n(67),u=n(29),a=n(7),l=n(77).f,c=n(45).f,f=n(13).f,p=n(51).trim,h=i.Number,d=h,v=h.prototype,g="Number"==o(n(44)(v)),y="trim"in String.prototype,m=function(t){var e=u(t,!1);if("string"==typeof e&&e.length>2){e=y?e.trim():p(e,3);var n,i,r,o=e.charCodeAt(0);if(43===o||45===o){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+e}for(var s,a=e.slice(2),l=0,c=a.length;lr)return NaN;return parseInt(a,i)}}return+e};if(!h(" 0o1")||!h("0b1")||h("+0x1")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(g?a(function(){v.valueOf.call(n)}):"Number"!=o(n))?s(new d(m(e)),n,h):m(e)};for(var b,_=n(4)?l(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),x=0;_.length>x;x++)r(d,b=_[x])&&!r(h,b)&&f(h,b,c(d,b));h.prototype=v,v.constructor=h,n(6)(i,"Number",h)}},function(t,e,n){"use strict";function i(t){return 0!==t&&(!(!Array.isArray(t)||0!==t.length)||!t)}function r(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e){return void 0===t&&(t="undefined"),null===t&&(t="null"),!1===t&&(t="false"),-1!==t.toString().toLowerCase().indexOf(e.trim())}function s(t,e,n,i){return t.filter(function(t){return o(i(t,n),e)})}function u(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,i){return i[t]&&i[t].length?(n.push({$groupLabel:i[e],$isLabel:!0}),n.concat(i[t])):n},[])}}function l(t,e,i,r,o){return function(u){return u.map(function(u){var a;if(!u[i])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var l=s(u[i],t,e,o);return l.length?(a={},n.i(d.a)(a,r,u[r]),n.i(d.a)(a,i,l),a):[]})}}var c=n(59),f=n(54),p=(n.n(f),n(95)),h=(n.n(p),n(31)),d=(n.n(h),n(58)),v=n(91),g=(n.n(v),n(98)),y=(n.n(g),n(92)),m=(n.n(y),n(88)),b=(n.n(m),n(97)),_=(n.n(b),n(89)),x=(n.n(_),n(96)),w=(n.n(x),n(93)),S=(n.n(w),n(90)),O=(n.n(S),function(){for(var t=arguments.length,e=new Array(t),n=0;n-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},isOptionDisabled:function(t){return!!t.$isDisabled},getOptionLabel:function(t){if(i(t))return"";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return i(e)?"":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)return void this.selectGroup(t);if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&("Tab"!==e||this.pointerDirty)){if(t.isTag)this.$emit("tag",t.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void("Tab"!==e&&this.removeElement(t));this.$emit("select",t,this.id),this.multiple?this.$emit("input",this.internalValue.concat([t]),this.id):this.$emit("input",t,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit("remove",n[this.groupValues],this.id);var i=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit("input",i,this.id)}else{var r=n[this.groupValues].filter(function(t){return!(e.isOptionDisabled(t)||e.isSelected(t))});this.$emit("select",r,this.id),this.$emit("input",this.internalValue.concat(r),this.id)}},wholeGroupSelected:function(t){var e=this;return t[this.groupValues].every(function(t){return e.isSelected(t)||e.isOptionDisabled(t)})},wholeGroupDisabled:function(t){return t[this.groupValues].every(this.isOptionDisabled)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!t.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var i="object"===n.i(c.a)(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit("remove",t,this.id),this.multiple){var r=this.internalValue.slice(0,i).concat(this.internalValue.slice(i+1));this.$emit("input",r,this.id)}else this.$emit("input",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf("Delete")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.$nextTick(function(){return t.$refs.search.focus()})):this.$el.focus(),this.$emit("open",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if("undefined"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||"below"===this.openDirection||"bottom"===this.openDirection?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){"use strict";var i=n(54),r=(n.n(i),n(31));n.n(r);e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{"multiselect__option--highlight":t===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return["multiselect__option--group","multiselect__option--disabled"];var i=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return i&&!this.wholeGroupDisabled(i)?["multiselect__option--group",{"multiselect__option--highlight":t===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(i)}]:"multiselect__option--disabled"},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Enter",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e,n){"use strict";var i=n(36),r=n(74),o=n(15),s=n(18);t.exports=n(72)(Array,"Array",function(t,e){this._t=s(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,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e,n){"use strict";var i=n(31),r=(n.n(i),n(32)),o=n(33);e.a={name:"vue-multiselect",mixins:[r.a,o.a],props:{name:{type:String,default:""},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return"and ".concat(t," more")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText:function(){return this.showLabels?this.selectLabel:""},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText:function(){return this.showLabels?this.selectedLabel:""},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}},contentStyle:function(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove:function(){return"above"===this.openDirection||"top"===this.openDirection||"below"!==this.openDirection&&"bottom"!==this.openDirection&&"above"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){var i=n(1)("unscopables"),r=Array.prototype;void 0==r[i]&&n(8)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(18),r=n(19),o=n(85);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(9),r=n(1)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),r))?n:o?i(e):"Object"==(u=i(e))&&"function"==typeof e.callee?"Arguments":u}},function(t,e,n){"use strict";var i=n(2);t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var i=n(0).document;t.exports=i&&i.documentElement},function(t,e,n){t.exports=!n(4)&&!n(7)(function(){return 7!=Object.defineProperty(n(21)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var i=n(9);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){"use strict";function i(t){var e,n;this.promise=new t(function(t,i){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=i}),this.resolve=r(e),this.reject=r(n)}var r=n(14);t.exports.f=function(t){return new i(t)}},function(t,e,n){var i=n(2),r=n(76),o=n(22),s=n(27)("IE_PROTO"),u=function(){},a=function(){var t,e=n(21)("iframe"),i=o.length;for(e.style.display="none",n(40).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("\n\n\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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}","function isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n const text = str.toString().toLowerCase()\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x)\n\nexport default {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0])\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || ''\n const normalizedSearch = search.toLowerCase().trim()\n\n let options = this.options.concat()\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel)\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search})\n } else {\n options.unshift({isTag: true, label: search})\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = ''\n this.$emit('update:modelValue', this.multiple ? [] : null)\n }\n },\n search () {\n this.$emit('search-change', this.search)\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label)\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option)\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id)\n this.search = ''\n if (this.closeOnSelect && !this.multiple) this.deactivate()\n } else {\n const isSelected = this.isSelected(option)\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option)\n return\n }\n\n this.$emit('select', option, this.id)\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]))\n } else {\n this.$emit('update:modelValue', option)\n }\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = ''\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id)\n\n const newValue = this.internalValue.filter(\n (option) => group[this.groupValues].indexOf(option) === -1\n )\n\n this.$emit('update:modelValue', newValue)\n } else {\n const optionsToAdd = group[this.groupValues].filter(\n (option) => !(this.isOptionDisabled(option) || this.isSelected(option))\n )\n\n this.$emit('select', optionsToAdd, this.id)\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n )\n }\n\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate()\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option)\n\n this.$emit('remove', option, this.id)\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1))\n this.$emit('update:modelValue', newValue)\n } else {\n this.$emit('update:modelValue', null)\n }\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate()\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false)\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition()\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1\n }\n\n this.isOpen = true\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = ''\n this.$nextTick(() => this.$refs.search && this.$refs.search.focus())\n } else {\n this.$el.focus()\n }\n this.$emit('open', this.id)\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false\n /* istanbul ignore else */\n if (this.searchable) {\n this.$refs.search && this.$refs.search.blur()\n } else {\n this.$el.blur()\n }\n if (!this.preserveSearch) this.search = ''\n this.$emit('close', this.getValue(), this.id)\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate()\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below'\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight)\n } else {\n this.preferredOpenDirection = 'above'\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight)\n }\n }\n }\n}\n","export default {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust()\n },\n isOpen () {\n this.pointerDirty = false\n },\n pointer () {\n this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString())\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key)\n }\n this.pointerReset()\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward()\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward()\n }\n },\n pointerSet (index) {\n this.pointer = index\n this.pointerDirty = true\n }\n }\n}\n","export { default } from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"","import { render } from \"./Multiselect.vue?vue&type=template&id=1adbf360\"\nimport script from \"./Multiselect.vue?vue&type=script&lang=js\"\nexport * from \"./Multiselect.vue?vue&type=script&lang=js\"\n\nimport \"./Multiselect.vue?vue&type=style&index=0&id=1adbf360&lang=scss\"\nscript.render = render\n\nexport default script","import Multiselect from './Multiselect'\nimport multiselectMixin from './multiselectMixin'\nimport pointerMixin from './pointerMixin'\n\nexport default Multiselect\n\nexport {Multiselect, multiselectMixin, pointerMixin}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue3-multiselect.css b/dist/vue3-multiselect.css new file mode 100644 index 00000000..567783ac --- /dev/null +++ b/dist/vue3-multiselect.css @@ -0,0 +1 @@ +fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border-color:#41b883 transparent transparent;border-style:solid;border-width:2px;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"×";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 12px 0;padding-right:30px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:5px 5px 0 5px;border-color:#999 transparent transparent transparent;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::-webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@-webkit-keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}}@keyframes spinning{0%{transform:rotate(0)}to{transform:rotate(2turn)}} \ No newline at end of file diff --git a/dist/vue3-multiselect.umd.js b/dist/vue3-multiselect.umd.js new file mode 100644 index 00000000..e1cf4701 --- /dev/null +++ b/dist/vue3-multiselect.umd.js @@ -0,0 +1,4341 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("vue")); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["vue3-multiselect"] = factory(require("vue")); + else + root["vue3-multiselect"] = factory(root["Vue"]); +})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "fb15"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "00ee": +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__("b622"); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), + +/***/ "0366": +/***/ (function(module, exports, __webpack_require__) { + +var aFunction = __webpack_require__("1c0b"); + +// optional / simple context binding +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), + +/***/ "06cf": +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__("83ab"); +var propertyIsEnumerableModule = __webpack_require__("d1e7"); +var createPropertyDescriptor = __webpack_require__("5c6c"); +var toIndexedObject = __webpack_require__("fc6a"); +var toPrimitive = __webpack_require__("c04e"); +var has = __webpack_require__("5135"); +var IE8_DOM_DEFINE = __webpack_require__("0cfb"); + +var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); +}; + + +/***/ }), + +/***/ "0cfb": +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__("83ab"); +var fails = __webpack_require__("d039"); +var createElement = __webpack_require__("cc12"); + +// Thank's IE8 for his funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + + +/***/ }), + +/***/ "0d03": +/***/ (function(module, exports, __webpack_require__) { + +var redefine = __webpack_require__("6eeb"); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = DatePrototype[TO_STRING]; +var getTime = DatePrototype.getTime; + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (new Date(NaN) + '' != INVALID_DATE) { + redefine(DatePrototype, TO_STRING, function toString() { + var value = getTime.call(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString.call(this) : INVALID_DATE; + }); +} + + +/***/ }), + +/***/ "0dd4": +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Multiselect_vue_vue_type_style_index_0_id_1adbf360_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("302e"); +/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Multiselect_vue_vue_type_style_index_0_id_1adbf360_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Multiselect_vue_vue_type_style_index_0_id_1adbf360_lang_scss__WEBPACK_IMPORTED_MODULE_0__); +/* unused harmony reexport * */ + + +/***/ }), + +/***/ "129f": +/***/ (function(module, exports) { + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; +}; + + +/***/ }), + +/***/ "13d5": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $reduce = __webpack_require__("d58f").left; +var arrayMethodIsStrict = __webpack_require__("a640"); +var CHROME_VERSION = __webpack_require__("2d00"); +var IS_NODE = __webpack_require__("605d"); + +var STRICT_METHOD = arrayMethodIsStrict('reduce'); +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, { + reduce: function reduce(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), + +/***/ "14c3": +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__("c6b6"); +var regexpExec = __webpack_require__("9263"); + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (typeof exec === 'function') { + var result = exec.call(R, S); + if (typeof result !== 'object') { + throw TypeError('RegExp exec method returned something other than an Object or null'); + } + return result; + } + + if (classof(R) !== 'RegExp') { + throw TypeError('RegExp#exec called on incompatible receiver'); + } + + return regexpExec.call(R, S); +}; + + + +/***/ }), + +/***/ "1be4": +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__("d066"); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), + +/***/ "1c0b": +/***/ (function(module, exports) { + +module.exports = function (it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } return it; +}; + + +/***/ }), + +/***/ "1d80": +/***/ (function(module, exports) { + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), + +/***/ "1dde": +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__("d039"); +var wellKnownSymbol = __webpack_require__("b622"); +var V8_VERSION = __webpack_require__("2d00"); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // /~https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), + +/***/ "23cb": +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__("a691"); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), + +/***/ "23e7": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var getOwnPropertyDescriptor = __webpack_require__("06cf").f; +var createNonEnumerableProperty = __webpack_require__("9112"); +var redefine = __webpack_require__("6eeb"); +var setGlobal = __webpack_require__("ce4e"); +var copyConstructorProperties = __webpack_require__("e893"); +var isForced = __webpack_require__("94ca"); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); + } +}; + + +/***/ }), + +/***/ "241c": +/***/ (function(module, exports, __webpack_require__) { + +var internalObjectKeys = __webpack_require__("ca84"); +var enumBugKeys = __webpack_require__("7839"); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), + +/***/ "25f0": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var redefine = __webpack_require__("6eeb"); +var anObject = __webpack_require__("825a"); +var fails = __webpack_require__("d039"); +var flags = __webpack_require__("ad6d"); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = nativeToString.name != TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + redefine(RegExp.prototype, TO_STRING, function toString() { + var R = anObject(this); + var p = String(R.source); + var rf = R.flags; + var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf); + return '/' + p + '/' + f; + }, { unsafe: true }); +} + + +/***/ }), + +/***/ "277d": +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__("23e7"); +var isArray = __webpack_require__("e8b5"); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), + +/***/ "2d00": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var userAgent = __webpack_require__("342f"); + +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + version = match[0] + match[1]; +} else if (userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = match[1]; + } +} + +module.exports = version && +version; + + +/***/ }), + +/***/ "302e": +/***/ (function(module, exports, __webpack_require__) { + +// extracted by mini-css-extract-plugin + +/***/ }), + +/***/ "342f": +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__("d066"); + +module.exports = getBuiltIn('navigator', 'userAgent') || ''; + + +/***/ }), + +/***/ "37e8": +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__("83ab"); +var definePropertyModule = __webpack_require__("9bf2"); +var anObject = __webpack_require__("825a"); +var objectKeys = __webpack_require__("df75"); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); + return O; +}; + + +/***/ }), + +/***/ "3bbe": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); + +module.exports = function (it) { + if (!isObject(it) && it !== null) { + throw TypeError("Can't set " + String(it) + ' as a prototype'); + } return it; +}; + + +/***/ }), + +/***/ "428f": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); + +module.exports = global; + + +/***/ }), + +/***/ "44ad": +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__("d039"); +var classof = __webpack_require__("c6b6"); + +var split = ''.split; + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see /~https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) == 'String' ? split.call(it, '') : Object(it); +} : Object; + + +/***/ }), + +/***/ "44d2": +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__("b622"); +var create = __webpack_require__("7c73"); +var definePropertyModule = __webpack_require__("9bf2"); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] == undefined) { + definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), + +/***/ "4930": +/***/ (function(module, exports, __webpack_require__) { + +var IS_NODE = __webpack_require__("605d"); +var V8_VERSION = __webpack_require__("2d00"); +var fails = __webpack_require__("d039"); + +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + /* global Symbol -- required for testing */ + return !Symbol.sham && + // Chrome 38 Symbol has incorrect toString conversion + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41); +}); + + +/***/ }), + +/***/ "498a": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $trim = __webpack_require__("58a8").trim; +var forcedStringTrimMethod = __webpack_require__("c8d2"); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), + +/***/ "4d64": +/***/ (function(module, exports, __webpack_require__) { + +var toIndexedObject = __webpack_require__("fc6a"); +var toLength = __webpack_require__("50c4"); +var toAbsoluteIndex = __webpack_require__("23cb"); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), + +/***/ "4de4": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $filter = __webpack_require__("b727").filter; +var arrayMethodHasSpeciesSupport = __webpack_require__("1dde"); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), + +/***/ "4e82": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var aFunction = __webpack_require__("1c0b"); +var toObject = __webpack_require__("7b0b"); +var fails = __webpack_require__("d039"); +var arrayMethodIsStrict = __webpack_require__("a640"); + +var test = []; +var nativeSort = test.sort; + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + return comparefn === undefined + ? nativeSort.call(toObject(this)) + : nativeSort.call(toObject(this), aFunction(comparefn)); + } +}); + + +/***/ }), + +/***/ "50c4": +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__("a691"); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), + +/***/ "5135": +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; + +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + + +/***/ }), + +/***/ "5692": +/***/ (function(module, exports, __webpack_require__) { + +var IS_PURE = __webpack_require__("c430"); +var store = __webpack_require__("c6cd"); + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.9.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' +}); + + +/***/ }), + +/***/ "56ef": +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__("d066"); +var getOwnPropertyNamesModule = __webpack_require__("241c"); +var getOwnPropertySymbolsModule = __webpack_require__("7418"); +var anObject = __webpack_require__("825a"); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), + +/***/ "5899": +/***/ (function(module, exports) { + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), + +/***/ "58a8": +/***/ (function(module, exports, __webpack_require__) { + +var requireObjectCoercible = __webpack_require__("1d80"); +var whitespaces = __webpack_require__("5899"); + +var whitespace = '[' + whitespaces + ']'; +var ltrim = RegExp('^' + whitespace + whitespace + '*'); +var rtrim = RegExp(whitespace + whitespace + '*$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = String(requireObjectCoercible($this)); + if (TYPE & 1) string = string.replace(ltrim, ''); + if (TYPE & 2) string = string.replace(rtrim, ''); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), + +/***/ "5c6c": +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), + +/***/ "605d": +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__("c6b6"); +var global = __webpack_require__("da84"); + +module.exports = classof(global.process) == 'process'; + + +/***/ }), + +/***/ "65f0": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); +var isArray = __webpack_require__("e8b5"); +var wellKnownSymbol = __webpack_require__("b622"); + +var SPECIES = wellKnownSymbol('species'); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); +}; + + +/***/ }), + +/***/ "69f3": +/***/ (function(module, exports, __webpack_require__) { + +var NATIVE_WEAK_MAP = __webpack_require__("7f9a"); +var global = __webpack_require__("da84"); +var isObject = __webpack_require__("861d"); +var createNonEnumerableProperty = __webpack_require__("9112"); +var objectHas = __webpack_require__("5135"); +var shared = __webpack_require__("c6cd"); +var sharedKey = __webpack_require__("f772"); +var hiddenKeys = __webpack_require__("d012"); + +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP) { + var store = shared.state || (shared.state = new WeakMap()); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function (it, metadata) { + metadata.facade = it; + wmset.call(store, it, metadata); + return metadata; + }; + get = function (it) { + return wmget.call(store, it) || {}; + }; + has = function (it) { + return wmhas.call(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return objectHas(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), + +/***/ "6eeb": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var createNonEnumerableProperty = __webpack_require__("9112"); +var has = __webpack_require__("5135"); +var setGlobal = __webpack_require__("ce4e"); +var inspectSource = __webpack_require__("8925"); +var InternalStateModule = __webpack_require__("69f3"); + +var getInternalState = InternalStateModule.get; +var enforceInternalState = InternalStateModule.enforce; +var TEMPLATE = String(String).split('String'); + +(module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var state; + if (typeof value == 'function') { + if (typeof key == 'string' && !has(value, 'name')) { + createNonEnumerableProperty(value, 'name', key); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } + } + if (O === global) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); +}); + + +/***/ }), + +/***/ "7156": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); +var setPrototypeOf = __webpack_require__("d2bb"); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + typeof (NewTarget = dummy.constructor) == 'function' && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), + +/***/ "7418": +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), + +/***/ "7839": +/***/ (function(module, exports) { + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), + +/***/ "7b0b": +/***/ (function(module, exports, __webpack_require__) { + +var requireObjectCoercible = __webpack_require__("1d80"); + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + + +/***/ }), + +/***/ "7c73": +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__("825a"); +var defineProperties = __webpack_require__("37e8"); +var enumBugKeys = __webpack_require__("7839"); +var hiddenKeys = __webpack_require__("d012"); +var html = __webpack_require__("1be4"); +var documentCreateElement = __webpack_require__("cc12"); +var sharedKey = __webpack_require__("f772"); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // /~https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see /~https://github.com/es-shims/es5-shim/issues/150 +// variation of /~https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + /* global ActiveXObject -- old IE */ + activeXDocument = document.domain && new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : defineProperties(result, Properties); +}; + + +/***/ }), + +/***/ "7db0": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $find = __webpack_require__("b727").find; +var addToUnscopables = __webpack_require__("44d2"); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), + +/***/ "7f9a": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var inspectSource = __webpack_require__("8925"); + +var WeakMap = global.WeakMap; + +module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); + + +/***/ }), + +/***/ "825a": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); + +module.exports = function (it) { + if (!isObject(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; +}; + + +/***/ }), + +/***/ "83ab": +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__("d039"); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + + +/***/ }), + +/***/ "8418": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var toPrimitive = __webpack_require__("c04e"); +var definePropertyModule = __webpack_require__("9bf2"); +var createPropertyDescriptor = __webpack_require__("5c6c"); + +module.exports = function (object, key, value) { + var propertyKey = toPrimitive(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; +}; + + +/***/ }), + +/***/ "841c": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784"); +var anObject = __webpack_require__("825a"); +var requireObjectCoercible = __webpack_require__("1d80"); +var sameValue = __webpack_require__("129f"); +var regExpExec = __webpack_require__("14c3"); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = regexp == undefined ? undefined : regexp[SEARCH]; + return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (regexp) { + var res = maybeCallNative(nativeSearch, regexp, this); + if (res.done) return res.value; + + var rx = anObject(regexp); + var S = String(this); + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), + +/***/ "861d": +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), + +/***/ "8875": +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller +// MIT license +// source: /~https://github.com/amiller-gh/currentScript-polyfill + +// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505 + +(function (root, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? + (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} +}(typeof self !== 'undefined' ? self : this, function () { + function getCurrentScript () { + var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript') + // for chrome + if (!descriptor && 'currentScript' in document && document.currentScript) { + return document.currentScript + } + + // for other browsers with native support for currentScript + if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) { + return document.currentScript + } + + // IE 8-10 support script readyState + // IE 11+ & Firefox support stack trace + try { + throw new Error(); + } + catch (err) { + // Find the second match for the "at" string to get file src url from stack. + var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig, + ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig, + stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack), + scriptLocation = (stackDetails && stackDetails[1]) || false, + line = (stackDetails && stackDetails[2]) || false, + currentLocation = document.location.href.replace(document.location.hash, ''), + pageSource, + inlineScriptSourceRegExp, + inlineScriptSource, + scripts = document.getElementsByTagName('script'); // Live NodeList collection + + if (scriptLocation === currentLocation) { + pageSource = document.documentElement.outerHTML; + inlineScriptSourceRegExp = new RegExp('(?:[^\\n]+?\\n){0,' + (line - 2) + '}[^<]*\n\n\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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}","function isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n const text = str.toString().toLowerCase()\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x)\n\nexport default {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0])\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || ''\n const normalizedSearch = search.toLowerCase().trim()\n\n let options = this.options.concat()\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel)\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search})\n } else {\n options.unshift({isTag: true, label: search})\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = ''\n this.$emit('update:modelValue', this.multiple ? [] : null)\n }\n },\n search () {\n this.$emit('search-change', this.search)\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label)\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option)\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id)\n this.search = ''\n if (this.closeOnSelect && !this.multiple) this.deactivate()\n } else {\n const isSelected = this.isSelected(option)\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option)\n return\n }\n\n this.$emit('select', option, this.id)\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]))\n } else {\n this.$emit('update:modelValue', option)\n }\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = ''\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id)\n\n const newValue = this.internalValue.filter(\n (option) => group[this.groupValues].indexOf(option) === -1\n )\n\n this.$emit('update:modelValue', newValue)\n } else {\n const optionsToAdd = group[this.groupValues].filter(\n (option) => !(this.isOptionDisabled(option) || this.isSelected(option))\n )\n\n this.$emit('select', optionsToAdd, this.id)\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n )\n }\n\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate()\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option)\n\n this.$emit('remove', option, this.id)\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1))\n this.$emit('update:modelValue', newValue)\n } else {\n this.$emit('update:modelValue', null)\n }\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate()\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false)\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition()\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1\n }\n\n this.isOpen = true\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = ''\n this.$nextTick(() => this.$refs.search && this.$refs.search.focus())\n } else {\n this.$el.focus()\n }\n this.$emit('open', this.id)\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false\n /* istanbul ignore else */\n if (this.searchable) {\n this.$refs.search && this.$refs.search.blur()\n } else {\n this.$el.blur()\n }\n if (!this.preserveSearch) this.search = ''\n this.$emit('close', this.getValue(), this.id)\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate()\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below'\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight)\n } else {\n this.preferredOpenDirection = 'above'\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight)\n }\n }\n }\n}\n","export default {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust()\n },\n isOpen () {\n this.pointerDirty = false\n },\n pointer () {\n this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString())\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key)\n }\n this.pointerReset()\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward()\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward()\n }\n },\n pointerSet (index) {\n this.pointer = index\n this.pointerDirty = true\n }\n }\n}\n","export { default } from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"","import { render } from \"./Multiselect.vue?vue&type=template&id=1adbf360\"\nimport script from \"./Multiselect.vue?vue&type=script&lang=js\"\nexport * from \"./Multiselect.vue?vue&type=script&lang=js\"\n\nimport \"./Multiselect.vue?vue&type=style&index=0&id=1adbf360&lang=scss\"\nscript.render = render\n\nexport default script","import Multiselect from './Multiselect'\nimport multiselectMixin from './multiselectMixin'\nimport pointerMixin from './pointerMixin'\n\nexport default Multiselect\n\nexport {Multiselect, multiselectMixin, pointerMixin}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue3-multiselect.umd.min.js b/dist/vue3-multiselect.umd.min.js new file mode 100644 index 00000000..25df2972 --- /dev/null +++ b/dist/vue3-multiselect.umd.min.js @@ -0,0 +1,2 @@ +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["vue3-multiselect"]=t(require("vue")):e["vue3-multiselect"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({"00ee":function(e,t,n){var r=n("b622"),i=r("toStringTag"),o={};o[i]="z",e.exports="[object z]"===String(o)},"0366":function(e,t,n){var r=n("1c0b");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},"06cf":function(e,t,n){var r=n("83ab"),i=n("d1e7"),o=n("5c6c"),c=n("fc6a"),s=n("c04e"),a=n("5135"),l=n("0cfb"),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=c(e),t=s(t,!0),l)try{return u(e,t)}catch(n){}if(a(e,t))return o(!i.f.call(e,t),e[t])}},"0cfb":function(e,t,n){var r=n("83ab"),i=n("d039"),o=n("cc12");e.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},"0d03":function(e,t,n){var r=n("6eeb"),i=Date.prototype,o="Invalid Date",c="toString",s=i[c],a=i.getTime;new Date(NaN)+""!=o&&r(i,c,(function(){var e=a.call(this);return e===e?s.call(this):o}))},"0dd4":function(e,t,n){"use strict";n("302e")},"129f":function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},"13d5":function(e,t,n){"use strict";var r=n("23e7"),i=n("d58f").left,o=n("a640"),c=n("2d00"),s=n("605d"),a=o("reduce"),l=!s&&c>79&&c<83;r({target:"Array",proto:!0,forced:!a||l},{reduce:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,t,n){var r=n("c6b6"),i=n("9263");e.exports=function(e,t){var n=e.exec;if("function"===typeof n){var o=n.call(e,t);if("object"!==typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==r(e))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},"1be4":function(e,t,n){var r=n("d066");e.exports=r("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1d80":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"1dde":function(e,t,n){var r=n("d039"),i=n("b622"),o=n("2d00"),c=i("species");e.exports=function(e){return o>=51||!r((function(){var t=[],n=t.constructor={};return n[c]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},"23cb":function(e,t,n){var r=n("a691"),i=Math.max,o=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):o(n,t)}},"23e7":function(e,t,n){var r=n("da84"),i=n("06cf").f,o=n("9112"),c=n("6eeb"),s=n("ce4e"),a=n("e893"),l=n("94ca");e.exports=function(e,t){var n,u,f,p,d,h,b=e.target,g=e.global,v=e.stat;if(u=g?r:v?r[b]||s(b,{}):(r[b]||{}).prototype,u)for(f in t){if(d=t[f],e.noTargetGet?(h=i(u,f),p=h&&h.value):p=u[f],n=l(g?f:b+(v?".":"#")+f,e.forced),!n&&void 0!==p){if(typeof d===typeof p)continue;a(d,p)}(e.sham||p&&p.sham)&&o(d,"sham",!0),c(u,f,d,e)}}},"241c":function(e,t,n){var r=n("ca84"),i=n("7839"),o=i.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},"25f0":function(e,t,n){"use strict";var r=n("6eeb"),i=n("825a"),o=n("d039"),c=n("ad6d"),s="toString",a=RegExp.prototype,l=a[s],u=o((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),f=l.name!=s;(u||f)&&r(RegExp.prototype,s,(function(){var e=i(this),t=String(e.source),n=e.flags,r=String(void 0===n&&e instanceof RegExp&&!("flags"in a)?c.call(e):n);return"/"+t+"/"+r}),{unsafe:!0})},"277d":function(e,t,n){var r=n("23e7"),i=n("e8b5");r({target:"Array",stat:!0},{isArray:i})},"2d00":function(e,t,n){var r,i,o=n("da84"),c=n("342f"),s=o.process,a=s&&s.versions,l=a&&a.v8;l?(r=l.split("."),i=r[0]+r[1]):c&&(r=c.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\/(\d+)/),r&&(i=r[1]))),e.exports=i&&+i},"302e":function(e,t,n){},"342f":function(e,t,n){var r=n("d066");e.exports=r("navigator","userAgent")||""},"37e8":function(e,t,n){var r=n("83ab"),i=n("9bf2"),o=n("825a"),c=n("df75");e.exports=r?Object.defineProperties:function(e,t){o(e);var n,r=c(t),s=r.length,a=0;while(s>a)i.f(e,n=r[a++],t[n]);return e}},"3bbe":function(e,t,n){var r=n("861d");e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"428f":function(e,t,n){var r=n("da84");e.exports=r},"44ad":function(e,t,n){var r=n("d039"),i=n("c6b6"),o="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?o.call(e,""):Object(e)}:Object},"44d2":function(e,t,n){var r=n("b622"),i=n("7c73"),o=n("9bf2"),c=r("unscopables"),s=Array.prototype;void 0==s[c]&&o.f(s,c,{configurable:!0,value:i(null)}),e.exports=function(e){s[c][e]=!0}},4930:function(e,t,n){var r=n("605d"),i=n("2d00"),o=n("d039");e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!Symbol.sham&&(r?38===i:i>37&&i<41)}))},"498a":function(e,t,n){"use strict";var r=n("23e7"),i=n("58a8").trim,o=n("c8d2");r({target:"String",proto:!0,forced:o("trim")},{trim:function(){return i(this)}})},"4d64":function(e,t,n){var r=n("fc6a"),i=n("50c4"),o=n("23cb"),c=function(e){return function(t,n,c){var s,a=r(t),l=i(a.length),u=o(c,l);if(e&&n!=n){while(l>u)if(s=a[u++],s!=s)return!0}else for(;l>u;u++)if((e||u in a)&&a[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(e,t,n){"use strict";var r=n("23e7"),i=n("b727").filter,o=n("1dde"),c=o("filter");r({target:"Array",proto:!0,forced:!c},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},"4e82":function(e,t,n){"use strict";var r=n("23e7"),i=n("1c0b"),o=n("7b0b"),c=n("d039"),s=n("a640"),a=[],l=a.sort,u=c((function(){a.sort(void 0)})),f=c((function(){a.sort(null)})),p=s("sort"),d=u||!f||!p;r({target:"Array",proto:!0,forced:d},{sort:function(e){return void 0===e?l.call(o(this)):l.call(o(this),i(e))}})},"50c4":function(e,t,n){var r=n("a691"),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},5135:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},5692:function(e,t,n){var r=n("c430"),i=n("c6cd");(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.9.1",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,t,n){var r=n("d066"),i=n("241c"),o=n("7418"),c=n("825a");e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(c(e)),n=o.f;return n?t.concat(n(e)):t}},5899:function(e,t){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(e,t,n){var r=n("1d80"),i=n("5899"),o="["+i+"]",c=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),a=function(e){return function(t){var n=String(r(t));return 1&e&&(n=n.replace(c,"")),2&e&&(n=n.replace(s,"")),n}};e.exports={start:a(1),end:a(2),trim:a(3)}},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"605d":function(e,t,n){var r=n("c6b6"),i=n("da84");e.exports="process"==r(i.process)},"65f0":function(e,t,n){var r=n("861d"),i=n("e8b5"),o=n("b622"),c=o("species");e.exports=function(e,t){var n;return i(e)&&(n=e.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?r(n)&&(n=n[c],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},"69f3":function(e,t,n){var r,i,o,c=n("7f9a"),s=n("da84"),a=n("861d"),l=n("9112"),u=n("5135"),f=n("c6cd"),p=n("f772"),d=n("d012"),h=s.WeakMap,b=function(e){return o(e)?i(e):r(e,{})},g=function(e){return function(t){var n;if(!a(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}};if(c){var v=f.state||(f.state=new h),m=v.get,y=v.has,O=v.set;r=function(e,t){return t.facade=e,O.call(v,e,t),t},i=function(e){return m.call(v,e)||{}},o=function(e){return y.call(v,e)}}else{var x=p("state");d[x]=!0,r=function(e,t){return t.facade=e,l(e,x,t),t},i=function(e){return u(e,x)?e[x]:{}},o=function(e){return u(e,x)}}e.exports={set:r,get:i,has:o,enforce:b,getterFor:g}},"6eeb":function(e,t,n){var r=n("da84"),i=n("9112"),o=n("5135"),c=n("ce4e"),s=n("8925"),a=n("69f3"),l=a.get,u=a.enforce,f=String(String).split("String");(e.exports=function(e,t,n,s){var a,l=!!s&&!!s.unsafe,p=!!s&&!!s.enumerable,d=!!s&&!!s.noTargetGet;"function"==typeof n&&("string"!=typeof t||o(n,"name")||i(n,"name",t),a=u(n),a.source||(a.source=f.join("string"==typeof t?t:""))),e!==r?(l?!d&&e[t]&&(p=!0):delete e[t],p?e[t]=n:i(e,t,n)):p?e[t]=n:c(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||s(this)}))},7156:function(e,t,n){var r=n("861d"),i=n("d2bb");e.exports=function(e,t,n){var o,c;return i&&"function"==typeof(o=t.constructor)&&o!==n&&r(c=o.prototype)&&c!==n.prototype&&i(e,c),e}},7418:function(e,t){t.f=Object.getOwnPropertySymbols},7839:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,t,n){var r=n("1d80");e.exports=function(e){return Object(r(e))}},"7c73":function(e,t,n){var r,i=n("825a"),o=n("37e8"),c=n("7839"),s=n("d012"),a=n("1be4"),l=n("cc12"),u=n("f772"),f=">",p="<",d="prototype",h="script",b=u("IE_PROTO"),g=function(){},v=function(e){return p+h+f+e+p+"/"+h+f},m=function(e){e.write(v("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){var e,t=l("iframe"),n="java"+h+":";return t.style.display="none",a.appendChild(t),t.src=String(n),e=t.contentWindow.document,e.open(),e.write(v("document.F=Object")),e.close(),e.F},O=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(t){}O=r?m(r):y();var e=c.length;while(e--)delete O[d][c[e]];return O()};s[b]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(g[d]=i(e),n=new g,g[d]=null,n[b]=e):n=O(),void 0===t?n:o(n,t)}},"7db0":function(e,t,n){"use strict";var r=n("23e7"),i=n("b727").find,o=n("44d2"),c="find",s=!0;c in[]&&Array(1)[c]((function(){s=!1})),r({target:"Array",proto:!0,forced:s},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(c)},"7f9a":function(e,t,n){var r=n("da84"),i=n("8925"),o=r.WeakMap;e.exports="function"===typeof o&&/native code/.test(i(o))},"825a":function(e,t,n){var r=n("861d");e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},"83ab":function(e,t,n){var r=n("d039");e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(e,t,n){"use strict";var r=n("c04e"),i=n("9bf2"),o=n("5c6c");e.exports=function(e,t,n){var c=r(t);c in e?i.f(e,c,o(0,n)):e[c]=n}},"841c":function(e,t,n){"use strict";var r=n("d784"),i=n("825a"),o=n("1d80"),c=n("129f"),s=n("14c3");r("search",1,(function(e,t,n){return[function(t){var n=o(this),r=void 0==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var o=i(e),a=String(this),l=o.lastIndex;c(l,0)||(o.lastIndex=0);var u=s(o,a);return c(o.lastIndex,l)||(o.lastIndex=l),null===u?-1:u.index}]}))},"861d":function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},8875:function(e,t,n){var r,i,o;(function(n,c){i=[],r=c,o="function"===typeof r?r.apply(t,i):r,void 0===o||(e.exports=o)})("undefined"!==typeof self&&self,(function(){function e(){var t=Object.getOwnPropertyDescriptor(document,"currentScript");if(!t&&"currentScript"in document&&document.currentScript)return document.currentScript;if(t&&t.get!==e&&document.currentScript)return document.currentScript;try{throw new Error}catch(d){var n,r,i,o=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,c=/@([^@]*):(\d+):(\d+)\s*$/gi,s=o.exec(d.stack)||c.exec(d.stack),a=s&&s[1]||!1,l=s&&s[2]||!1,u=document.location.href.replace(document.location.hash,""),f=document.getElementsByTagName("script");a===u&&(n=document.documentElement.outerHTML,r=new RegExp("(?:[^\\n]+?\\n){0,"+(l-2)+"}[^<]*\n\n\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(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}","function isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n const text = str.toString().toLowerCase()\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x)\n\nexport default {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0])\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || ''\n const normalizedSearch = search.toLowerCase().trim()\n\n let options = this.options.concat()\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel)\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search})\n } else {\n options.unshift({isTag: true, label: search})\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = ''\n this.$emit('update:modelValue', this.multiple ? [] : null)\n }\n },\n search () {\n this.$emit('search-change', this.search)\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label)\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option)\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id)\n this.search = ''\n if (this.closeOnSelect && !this.multiple) this.deactivate()\n } else {\n const isSelected = this.isSelected(option)\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option)\n return\n }\n\n this.$emit('select', option, this.id)\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]))\n } else {\n this.$emit('update:modelValue', option)\n }\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = ''\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id)\n\n const newValue = this.internalValue.filter(\n (option) => group[this.groupValues].indexOf(option) === -1\n )\n\n this.$emit('update:modelValue', newValue)\n } else {\n const optionsToAdd = group[this.groupValues].filter(\n (option) => !(this.isOptionDisabled(option) || this.isSelected(option))\n )\n\n this.$emit('select', optionsToAdd, this.id)\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n )\n }\n\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate()\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option)\n\n this.$emit('remove', option, this.id)\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1))\n this.$emit('update:modelValue', newValue)\n } else {\n this.$emit('update:modelValue', null)\n }\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate()\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false)\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition()\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1\n }\n\n this.isOpen = true\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = ''\n this.$nextTick(() => this.$refs.search && this.$refs.search.focus())\n } else {\n this.$el.focus()\n }\n this.$emit('open', this.id)\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false\n /* istanbul ignore else */\n if (this.searchable) {\n this.$refs.search && this.$refs.search.blur()\n } else {\n this.$el.blur()\n }\n if (!this.preserveSearch) this.search = ''\n this.$emit('close', this.getValue(), this.id)\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate()\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below'\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight)\n } else {\n this.preferredOpenDirection = 'above'\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight)\n }\n }\n }\n}\n","export default {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust()\n },\n isOpen () {\n this.pointerDirty = false\n },\n pointer () {\n this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString())\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key)\n }\n this.pointerReset()\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward()\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward()\n }\n },\n pointerSet (index) {\n this.pointer = index\n this.pointerDirty = true\n }\n }\n}\n","import { render } from \"./Multiselect.vue?vue&type=template&id=1adbf360\"\nimport script from \"./Multiselect.vue?vue&type=script&lang=js\"\nexport * from \"./Multiselect.vue?vue&type=script&lang=js\"\n\nimport \"./Multiselect.vue?vue&type=style&index=0&id=1adbf360&lang=scss\"\nscript.render = render\n\nexport default script","import Multiselect from './Multiselect'\nimport multiselectMixin from './multiselectMixin'\nimport pointerMixin from './pointerMixin'\n\nexport default Multiselect\n\nexport {Multiselect, multiselectMixin, pointerMixin}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 45644587..00000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -vue-multiselect.js.org diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 6dee4f63..00000000 --- a/docs/index.html +++ /dev/null @@ -1,628 +0,0 @@ -Vue-Multiselect | Vue Select Library

Vue-multiselect(2.1.4)

The most complete selecting solution for Vue.js

LicensenpmNo Dependencies

Getting started


Installation

via npm

npm install vue-multiselect --save
-

via CDN

<script src="https://unpkg.com/vue-multiselect@2.1.0"></script>
-<link rel="stylesheet" href="https://unpkg.com/vue-multiselect@2.1.0/dist/vue-multiselect.min.css">

Basic usage

via npm

<!-- Vue component -->
-<template>
-  <div>
-    <multiselect v-model="value" :options="options"></multiselect>
-  </div>
-</template>
-
-<script>
-  import Multiselect from 'vue-multiselect'
-
-  // register globally
-  Vue.component('multiselect', Multiselect)
-
-  export default {
-    // OR register locally
-    components: { Multiselect },
-    data () {
-      return {
-        value: null,
-        options: ['list', 'of', 'options']
-      }
-    }
-  }
-</script>
-
-<!-- New step!
-     Add Multiselect CSS. Can be added as a static asset or inside a component. -->
-<style src="vue-multiselect/dist/vue-multiselect.min.css"></style>
-
-<style>
-  your styles
-</style>
-

via CDN

// register globally
-Vue.component('vue-multiselect', window.VueMultiselect.default)

Examples


Single select

The basic single select / dropdown doesn’t require much configuration.

The options prop must be an Array.

Optional configuration flags:

  • :searchable="false" – disables the search functionality
  • :close-on-select="false" – the dropdown stays open after selecting an option
  • :show-labels="false" – the highlighted option doesn’t have a label on it
import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      value: '',
-      options: ['Select option', 'options', 'selected', 'mulitple', 'label', 'searchable', 'clearOnSelect', 'hideSelected', 'maxHeight', 'allowEmpty', 'showLabels', 'onChange', 'touched']
-    }
-  }
-}
-

-div
-  label.typo__label Single select
-  multiselect(
-    v-model="value",
-    :options="options",
-    :searchable="false",
-    :close-on-select="false",
-    :show-labels="false"
-    placeholder="Pick a value"
-  )
-  pre.language-json
-    code.
-      {{ value  }}
-

-<div>
-  <label class="typo__label">Single select</label>
-  <multiselect v-model="value" :options="options" :searchable="false" :close-on-select="false" :show-labels="false" placeholder="Pick a value"></multiselect>
-  <pre class="language-json"><code>{{ value  }}</code></pre>
-</div>

Single select (object)

When working with objects, you must provide additional props: label and track-by.

track-by is used to identify the option within the options list thus it’s value has to be unique. In this example the name property is unique across all options, so it can be used as track-by value.

label is used to display the option.

Optional configuration flags:

  • :searchable="false" – disables the search functionality
  • :allow-empty="false" – once there is a value it can’t be deselected
  • deselect-label="Can't remove this value" – when highlighted, the already selected option will have the Can't remove this value helper label. Useful for single selects that don’t allow empty selection.
import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      value: null,
-      options: [
-        { name: 'Vue.js', language: 'JavaScript' },
-        { name: 'Rails', language: 'Ruby' },
-        { name: 'Sinatra', language: 'Ruby' },
-        { name: 'Laravel', language: 'PHP', $isDisabled: true },
-        { name: 'Phoenix', language: 'Elixir' }
-      ]
-    }
-  }
-}
-

-div
-  label.typo__label Single select / dropdown
-  multiselect(
-    v-model="value",
-    deselect-label="Can't remove this value",
-    track-by="name",
-    label="name",
-    placeholder="Select one",
-    :options="options",
-    :searchable="false",
-    :allow-empty="false"
-  )
-    template(slot="singleLabel", slot-scope="{ option }")
-      strong {{ option.name }}
-      |  is written in
-      strong   {{ option.language }}
-  pre.language-json
-    code.
-      {{ value  }}
-
-

-<div>
-  <label class="typo__label">Single select / dropdown</label>
-  <multiselect v-model="value" deselect-label="Can't remove this value" track-by="name" label="name" placeholder="Select one" :options="options" :searchable="false" :allow-empty="false">
-    <template slot="singleLabel" slot-scope="{ option }"><strong>{{ option.name }}</strong> is written in<strong>  {{ option.language }}</strong></template>
-  </multiselect>
-  <pre class="language-json"><code>{{ value  }}</code></pre>
-</div>

By default searchable is set to true, thus using search doesn’t require any prop.

The internal search engine is based on the label prop. In other words – when searching, vue-multiselect only compares the option labels with the current search query. If you want to search inside other object properties look at the ajax search example.

custom-label accepts a function with the option object as the first param. It should return a string which is then used to display a custom label.

import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      value: { name: 'Vue.js', language: 'JavaScript' },
-      options: [
-        { name: 'Vue.js', language: 'JavaScript' },
-        { name: 'Rails', language: 'Ruby' },
-        { name: 'Sinatra', language: 'Ruby' },
-        { name: 'Laravel', language: 'PHP' },
-        { name: 'Phoenix', language: 'Elixir' }
-      ]
-    }
-  },
-  methods: {
-    nameWithLang ({ name, language }) {
-      return `${name} — [${language}]`
-    }
-  }
-}
-

-div
-  label.typo__label Select with search
-  multiselect(
-    v-model="value",
-    :options="options",
-    :custom-label="nameWithLang"
-    placeholder="Select one",
-    label="name",
-    track-by="name"
-  )
-  pre.language-json
-    code.
-      {{ value  }}
-

-<div>
-  <label class="typo__label">Select with search</label>
-  <multiselect v-model="value" :options="options" :custom-label="nameWithLang" placeholder="Select one" label="name" track-by="name"></multiselect>
-  <pre class="language-json"><code>{{ value  }}</code></pre>
-</div>

Multiple select

To allow multiple selections pass the :multiple="true" prop.

Optional configuration flags:

  • :close-on-select="false" – the dropdown stays open after selecting an option
  • :clear-on-select="false" – the search query stays the same after selecting an option

New in v2.0.0 stable:

  • You can now pass <template slot="tag" slot-scope="props"><Your code></template> to use a different markup for selected options (tags)
import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      value: [],
-      options: [
-        { name: 'Vue.js', language: 'JavaScript' },
-        { name: 'Adonis', language: 'JavaScript' },
-        { name: 'Rails', language: 'Ruby' },
-        { name: 'Sinatra', language: 'Ruby' },
-        { name: 'Laravel', language: 'PHP' },
-        { name: 'Phoenix', language: 'Elixir' }
-      ]
-    }
-  }
-}
-

-div
-  label.typo__label Simple select / dropdown
-  multiselect(
-    v-model="value",
-    :options="options",
-    :multiple="true",
-    :close-on-select="false",
-    :clear-on-select="false",
-    :preserve-search="true",
-    placeholder="Pick some"
-    label="name",
-    track-by="name",
-    :preselect-first="true"
-  )
-    template(
-      slot="selection"
-      slot-scope="{ values, search, isOpen }"
-    )
-      span.multiselect__single(v-if="values.length && !isOpen")
-        | {{ values.length }} options selected
-  pre.language-json
-    code.
-      {{ value  }}
-
-

-<div>
-  <label class="typo__label">Simple select / dropdown</label>
-  <multiselect v-model="value" :options="options" :multiple="true" :close-on-select="false" :clear-on-select="false" :preserve-search="true" placeholder="Pick some" label="name" track-by="name" :preselect-first="true">
-    <template slot="selection" slot-scope="{ values, search, isOpen }"><span class="multiselect__single" v-if="values.length &amp;&amp; !isOpen">{{ values.length }} options selected</span></template>
-  </multiselect>
-  <pre class="language-json"><code>{{ value  }}</code></pre>
-</div>

Asynchronous select

Vue-Multiselect supports changing the option list on the fly, thus can be also used a type-a-head search box.

To react to the search query changes, set a handler function on the @search-change event. It receives the searchQuery as the first param, which can be used to make an asynchronous API call.

It is convenient to set the :loading prop to true, whenever a request is in progress. Look at the provided asyncFind method for an example usage.

Optional configuration flags:

  • :hide-selected="true" – already selected options will not be displayed in the dropdown
  • :internal-search="false" – disables the multiselect’s internal search engine. If you do that, you have to manually update the available :options.
  • :limit="3" – limits the visible results to 3.
  • :limit-text="limitText" – function that receives the current selected options count and should return a string to show when the :limit count is exceed
  • :options-limit="300" – limits the displayed options to 300. Useful for optimisations purposes.

New in v2.0.0 stable:

  • id="ajax" – every event is emitted with this as the second param. Useful for identification which component instance triggered the method (in loops for example). NEW: Can also be used for pointing with <label :for="id">.
  • open-direction="bottom" – forces the multiselect to always open below. Use top or above to always open above. By default the multiselect will open whereever there is more space once there is not enough space below to open at maxHeight.
import Multiselect from 'vue-multiselect'
-import { ajaxFindCountry } from './countriesApi'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      selectedCountries: [],
-      countries: [],
-      isLoading: false
-    }
-  },
-  methods: {
-    limitText (count) {
-      return `and ${count} other countries`
-    },
-    asyncFind (query) {
-      this.isLoading = true
-      ajaxFindCountry(query).then(response => {
-        this.countries = response
-        this.isLoading = false
-      })
-    },
-    clearAll () {
-      this.selectedCountries = []
-    }
-  }
-}
-

-div
-  label.typo__label(for="ajax") Async multiselect
-  multiselect(
-    v-model="selectedCountries",
-    id="ajax",
-    label="name",
-    track-by="code",
-    placeholder="Type to search",
-    open-direction="bottom",
-    :options="countries",
-    :multiple="true",
-    :searchable="true",
-    :loading="isLoading",
-    :internal-search="false",
-    :clear-on-select="false",
-    :close-on-select="false",
-    :options-limit="300",
-    :limit="3",
-    :limit-text="limitText",
-    :max-height="600",
-    :show-no-results="false",
-    :hide-selected="true",
-    @search-change="asyncFind"
-  )
-    template(slot="tag", slot-scope="{ option, remove }")
-      span.custom__tag
-        span {{ option.name }}
-        span.custom__remove(@click="remove(option)") ❌
-    template(slot="clear", slot-scope="props")
-      div.multiselect__clear(
-        v-if="selectedCountries.length",
-        @mousedown.prevent.stop="clearAll(props.search)"
-      )
-    span(slot="noResult").
-      Oops! No elements found. Consider changing the search query.
-  pre.language-json
-    code.
-      {{ selectedCountries  }}
-

-<div>
-  <label class="typo__label" for="ajax">Async multiselect</label>
-  <multiselect v-model="selectedCountries" id="ajax" label="name" track-by="code" placeholder="Type to search" open-direction="bottom" :options="countries" :multiple="true" :searchable="true" :loading="isLoading" :internal-search="false" :clear-on-select="false" :close-on-select="false" :options-limit="300" :limit="3" :limit-text="limitText" :max-height="600" :show-no-results="false" :hide-selected="true" @search-change="asyncFind">
-    <template slot="tag" slot-scope="{ option, remove }"><span class="custom__tag"><span>{{ option.name }}</span><span class="custom__remove" @click="remove(option)">❌</span></span></template>
-    <template slot="clear" slot-scope="props">
-      <div class="multiselect__clear" v-if="selectedCountries.length" @mousedown.prevent.stop="clearAll(props.search)"></div>
-    </template><span slot="noResult">Oops! No elements found. Consider changing the search query.</span>
-  </multiselect>
-  <pre class="language-json"><code>{{ selectedCountries  }}</code></pre>
-</div>

Tagging

To add tagging functionality to single/multiple selects, set the :taggable prop to true. This will add an additional option at the beginning of the options list whenever you type a phrase that doesn’t have an exact match in the available options. Selecting this temporary option will emit the @tag event with the current typed search query as the first param. The event handler should add the received tag to both the options list and the value.

Remember that when working with objects as options, you have to transform the received tag string to an object that matches the objects structure of the options list. In this example, the addTag method generates an object with a unique code property.

Optional configuration flags:

  • tag-placeholder="Add this as new tag" – A helper label that will be displayed when highlighting the just typed tag suggestion.
  • tag-position="bottom" – By default the tag position will be set to 'top' and new tags will appear above the search results. Changing the tag positon to 'bottom' will revert this behaviour and will prioritize the search results.
import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      value: [
-        { name: 'Javascript', code: 'js' }
-      ],
-      options: [
-        { name: 'Vue.js', code: 'vu' },
-        { name: 'Javascript', code: 'js' },
-        { name: 'Open Source', code: 'os' }
-      ]
-    }
-  },
-  methods: {
-    addTag (newTag) {
-      const tag = {
-        name: newTag,
-        code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))
-      }
-      this.options.push(tag)
-      this.value.push(tag)
-    }
-  }
-}
-

-div
-  label.typo__label Tagging
-  multiselect(
-    v-model="value",
-    tag-placeholder="Add this as new tag",
-    placeholder="Search or add a tag",
-    label="name",
-    track-by="code",
-    :options="options",
-    :multiple="true",
-    :taggable="true",
-    @tag="addTag"
-  )
-  pre.language-json
-    code.
-      {{ value  }}
-

-<div>
-  <label class="typo__label">Tagging</label>
-  <multiselect v-model="value" tag-placeholder="Add this as new tag" placeholder="Search or add a tag" label="name" track-by="code" :options="options" :multiple="true" :taggable="true" @tag="addTag"></multiselect>
-  <pre class="language-json"><code>{{ value  }}</code></pre>
-</div>

Custom option template

You can use option scoped slot to provide a custom option template. The available props include props.option and props.search. Look at the provided example for more details.

To ensure the keyboard navigation works properly, remember to set the :option-height so it equals the height of the option template. By default, the component assumes an option height of 40px.

Optional configuration flags:

  • :option-height="104" – The height of the custom option template.
import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      value: { title: 'Explorer', desc: 'Discovering new species!', img: 'static/posters/creatures.png' },
-      options: [
-        { title: 'Space Pirate', desc: 'More space battles!', img: 'static/posters/fleet.png' },
-        { title: 'Merchant', desc: 'PROFIT!', img: 'static/posters/trading_post.png' },
-        { title: 'Explorer', desc: 'Discovering new species!', img: 'static/posters/creatures.png' },
-        { title: 'Miner', desc: 'We need to go deeper!', img: 'static/posters/resource_lab.png' }
-      ]
-    }
-  },
-  methods: {
-    customLabel ({ title, desc }) {
-      return `${title} – ${desc}`
-    }
-  }
-}
-

-div
-  label.typo__label Custom option template
-  multiselect(
-    v-model="value",
-    placeholder="Fav No Man’s Sky path",
-    label="title",
-    track-by="title",
-    :options="options",
-    :option-height="104",
-    :custom-label="customLabel",
-    :show-labels="false"
-  )
-    template(slot="singleLabel", slot-scope="props")
-      img.option__image(:src="props.option.img", alt="No Man’s Sky")
-      span.option__desc
-        span.option__title {{ props.option.title }}
-    template(slot="option", slot-scope="props")
-      img.option__image(:src="props.option.img", alt="No Man’s Sky")
-      .option__desc
-        span.option__title {{ props.option.title }}
-        span.option__small {{ props.option.desc }}
-  pre.language-json
-    code.
-      {{ value  }}
-

-<div>
-  <label class="typo__label">Custom option template</label>
-  <multiselect v-model="value" placeholder="Fav No Man’s Sky path" label="title" track-by="title" :options="options" :option-height="104" :custom-label="customLabel" :show-labels="false">
-    <template slot="singleLabel" slot-scope="props"><img class="option__image" :src="props.option.img" alt="No Man’s Sky"><span class="option__desc"><span class="option__title">{{ props.option.title }}</span></span></template>
-    <template slot="option" slot-scope="props"><img class="option__image" :src="props.option.img" alt="No Man’s Sky">
-      <div class="option__desc"><span class="option__title">{{ props.option.title }}</span><span class="option__small">{{ props.option.desc }}</span></div>
-    </template>
-  </multiselect>
-  <pre class="language-json"><code>{{ value  }}</code></pre>
-</div>

Option groups

The options list can also contain groups. It requires passing 3 additional props: group-label, group-values and group-select. group-label is used to locate the group label. group-values should point to the group’s option list. group-select is used to define if selecting the group label should select/unselect all values in the group, or do nothing.

Despite that the available options are grouped, the selected options are stored as a flat array of objects.

Please look at the provided example for a example options list structure.

import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      options: [
-        {
-          language: 'Javascript',
-          libs: [
-            { name: 'Vue.js', category: 'Front-end' },
-            { name: 'Adonis', category: 'Backend' }
-          ]
-        },
-        {
-          language: 'Ruby',
-          libs: [
-            { name: 'Rails', category: 'Backend' },
-            { name: 'Sinatra', category: 'Backend' }
-          ]
-        },
-        {
-          language: 'Other',
-          libs: [
-            { name: 'Laravel', category: 'Backend' },
-            { name: 'Phoenix', category: 'Backend' }
-          ]
-        }
-      ],
-      value: []
-    }
-  }
-}
-

-div
-  label.typo__label Groups
-  multiselect(
-    v-model="value",
-    :options="options",
-    :multiple="true",
-    group-values="libs",
-    group-label="language",
-    :group-select="true",
-    placeholder="Type to search",
-    track-by="name",
-    label="name",
-  )
-    span(slot="noResult").
-      Oops! No elements found. Consider changing the search query.
-  pre.language-json
-    code.
-      {{ value  }}
-

-<div>
-  <label class="typo__label">Groups</label>
-  <multiselect v-model="value" :options="options" :multiple="true" group-values="libs" group-label="language" :group-select="true" placeholder="Type to search" track-by="name" label="name"><span slot="noResult">Oops! No elements found. Consider changing the search query.</span></multiselect>
-  <pre class="language-json"><code>{{ value  }}</code></pre>
-</div>

Vuex support

Due to the one-way data-flow enforced by Vuex you should not be using v-model for manipulating the currently selected value. Because Vue-Multiselect always uses it’s own internal copy of the value it never mutates the :value by itself, which means it can can safely used with Vuex or even Redux.

In Vue 2.0 v-model is just a syntax sugar for :value and @input. Because of this we can use the @input event to trigger Vuex actions or mutations. Whenever we mutate the :value in Vuex, Multiselect’s internal value will update.

import Vue from 'vue'
-import Vuex from 'vuex'
-import Multiselect from 'vue-multiselect'
-
-const { mapActions, mapState } = Vuex
-
-Vue.use(Vuex)
-
-const store = new Vuex.Store({
-  state: {
-    value: 'Vuex',
-    options: ['Vuex', 'Vue', 'Vuelidate', 'Vue-Multiselect', 'Vue-Router']
-  },
-  mutations: {
-    updateValue (state, value) {
-      state.value = value
-    }
-  },
-  actions: {
-    updateValueAction ({ commit }, value) {
-      commit('updateValue', value)
-    }
-  }
-})
-
-export default {
-  store,
-  components: {
-    Multiselect
-  },
-  computed: {
-    ...mapState(['value', 'options'])
-  },
-  methods: {
-    ...mapActions(['updateValueAction'])
-  }
-}
-

-div
-  label.typo__label Vuex example.
-  multiselect(
-    placeholder="Pick action",
-    :value="value",
-    :options="options",
-    :searchable="false",
-    @input="updateValueAction",
-  )
-

-<div>
-  <label class="typo__label">Vuex example.</label>
-  <multiselect placeholder="Pick action" :value="value" :options="options" :searchable="false" @input="updateValueAction"></multiselect>
-</div>

Action dispatcher

The component may also act as dispatcher for different actions/methods. In this case there is no need for the :value prop. Instead of @input you can listen on the @select event. The difference between the two is that @select only receives the currently selected value instead of the whole list of selected values (if select is multiple).

Optional configuration flags:

  • :reset-after="true" – Resets the internal value after each select action inside the component.
import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      actions: ['alert', 'console.log', 'scrollTop']
-    }
-  },
-  methods: {
-    dispatchAction (actionName) {
-      switch (actionName) {
-        case 'alert':
-          window.alert('You just dispatched "alert" action!')
-          break
-        case 'console.log':
-          console.log('You just dispatched "console.log" action!')
-          break
-        case 'scrollTop':
-          window.scrollTo(0, 0)
-          break
-      }
-    }
-  }
-}
-

-div
-  label.typo__label Open console to see logs.
-  multiselect(
-    placeholder="Pick action",
-    :options="actions",
-    :searchable="false",
-    :reset-after="true",
-    @select="dispatchAction"
-  )
-

-<div>
-  <label class="typo__label">Open console to see logs.</label>
-  <multiselect placeholder="Pick action" :options="actions" :searchable="false" :reset-after="true" @select="dispatchAction"></multiselect>
-</div>

Custom configuration

Shows error when touched, but nothing is selected.

Optional configuration flags:

  • :max-height="150" – Set the dropdown height to 150px
  • :max="3" – Set the maximal number of selections
  • :allow-empty="false" – Doesn’t allow to remove the last option if it exists
  • :block-keys="['Tab', 'Enter']" – Block the Tab and Enter keys from triggering their default behaviour
  • @close="onTouch" – Event emitted when closing the dropdown
import Multiselect from 'vue-multiselect'
-
-export default {
-  components: {
-    Multiselect
-  },
-  data () {
-    return {
-      isDisabled: false,
-      isTouched: false,
-      value: [],
-      options: ['Select option', 'Disable me!', 'Reset me!', 'mulitple', 'label', 'searchable']
-    }
-  },
-  computed: {
-    isInvalid () {
-      return this.isTouched && this.value.length === 0
-    }
-  },
-  methods: {
-    onChange (value) {
-      this.value = value
-      if (value.indexOf('Reset me!') !== -1) this.value = []
-    },
-    onSelect (option) {
-      if (option === 'Disable me!') this.isDisabled = true
-    },
-    onTouch () {
-      this.isTouched = true
-    }
-  }
-}
-

-div(
-  :class="{ 'invalid': isInvalid }"
-)
-  label.typo__label Customized multiselect
-  multiselect(
-    placeholder="Pick at least one",
-    select-label="Enter doesn’t work here!",
-    :value="value",
-    :options="options",
-    :multiple="true",
-    :searchable="true",
-    :allow-empty="false",
-    :hide-selected="true",
-    :max-height="150",
-    :max="3",
-    :disabled="isDisabled",
-    :block-keys="['Tab', 'Enter']",
-    @input="onChange",
-    @close="onTouch",
-    @select="onSelect"
-  )
-  label.typo__label.form__label(v-show="isInvalid") Must have at least one value
-

-<div :class="{ 'invalid': isInvalid }">
-  <label class="typo__label">Customized multiselect</label>
-  <multiselect placeholder="Pick at least one" select-label="Enter doesn’t work here!" :value="value" :options="options" :multiple="true" :searchable="true" :allow-empty="false" :hide-selected="true" :max-height="150" :max="3" :disabled="isDisabled" :block-keys="['Tab', 'Enter']" @input="onChange" @close="onTouch" @select="onSelect"></multiselect>
-  <label class="typo__label form__label" v-show="isInvalid">Must have at least one value</label>
-</div>

Props

NameTypeDefaultDescription
multiselectMixin.js
idInteger||StringUsed to identify the component in events.
optionsArrayArray of available options: Objects, Strings or Integers. If array of objects, visible label will default to option.label.
valueObject||Array||String||IntegerPresets the selected options.
multipleBooleanfalseEquivalent to the multiple attribute on a <select> input.
trackByStringUsed to compare objects. Only use if options are objects.
labelStringLabel from option Object, that will be visible in the dropdown.
searchableBooleantrueAdd / removes search input.
clearOnSelectBooleantrueClear the search input after select(). Use only when multiple is true.
hideSelectedBooleanfalseHide already selected options
placeholderString'Select option'Equivalent to the placeholder attribute on a <select> input.
allowEmptyBooleantrueAllows to remove all selected values. Otherwise one must be left selected.
resetAfterBooleanfalseReset this.value, this.search, this.selected after this.value changes.
closeOnSelectBooleantrueEnable/disable closing after selecting an option
customLabelFunction => StringFunction used to create a custom label
taggableBooleanfalseDisable / Enable tagging
tagPlaceholderString'Press enter to create a tag'String to show when highlighting a potential tag
tagPositionString'top'By default new tags will appear above the search results. Changing to 'bottom' will revert this behaviour and will proritize the search results
maxNumberNumber of allowed selected options.
optionsLimitNumber1000Limits the options displayed in the dropdown to the first X options.
groupValuesStringName of the property containing the group values
groupLabelStringName of the property containing the group label
groupSelectBooleanfalseAllow to select all group values by selecting the group label
blockKeysArray[]Array of keyboard key aliases to block when selecting
internalSearchBooleantrueDecide whether to filter the results internally based on search query. Useful for async filtering, where we search through more complex data.
preserveSearchBooleanfalseIf set to true, will preserve the search query when opening/closing the component.
preselectFirstBooleanfalseSelects the first option if initial value is empty
Multiselect.vue
nameString''Name attribute to match optional label element
selectLabelString'Press enter to select'String to show when pointing to an option
selectGroupLabelString'Press enter to select group'String to show when pointing to an option
selectedLabelString'Selected'String to show next to selected option
deselectLabelString'Press enter to remove'String to show when pointing to an already selected option
deselectGroupLabelString'Press enter to deselect group'String to show when pointing to an already selected option
showLabelsBooleantrueDecide whether to show labels on highlighted options
limitNumber99999Limit the display of selected options. The rest will be hidden within the limitText string.
limitTextFunction => Stringcount => `and ${count} more`Function that process the message shown when selected elements pass the defined limit.
loadingBooleanfalseShow/hide the loading spinner.
disabledBooleanfalseEnable/disable the multiselect.
maxHeightInteger300Sets max-height style value of the dropdown
openDirectionString''Fixed opening direction (instead of auto). Options are "above"/"top" or "below"/"bottom"
showNoResultsBooleantrueShow the noResult slot if no results are found.
tabindexNumber0Specify the tabindex of the Multiselect component
pointerMixin.js
showPointerBooleantrueEnable/disable highlighting of the pointed value.
optionHeightNumber40The height of the option element. Required for proper scrolling.

Events

NameAttributesListen toDescription
Input(value, id)@inputEmitted after this.value changes
Select(selectedOption, id)@selectEmitted after selecting an option
Remove(removedOption, id)@removeEmitted after removing an option
SearchChange(searchQuery, id)@search-changeEmitted after the search query changes
Tag(searchQuery, id)@tagEmitted after user attemts to add a tag
Open(id)@openEmitted when the dropdown opens. Useful for detecting when touched.
Close(value, id)@closeEmitted when the dropdown closes

Slots

NameDescription
optionSlot for custom option template. See example.
Default: Shows option label
Slot-scope
  • option – option
  • search – current search value
maxElementsShows when the maximum options have been selected. Defaults to string:
Default: Maximum of <max> options selected. First remove a selected option to select another.
noResultShows when no elements match the search query. Defaults to string:
Default: No elements found. Consider changing the search query.
noOptionsShows when no elements in options empty. Defaults to string:
Default: List is empty.
beforeListShows before the list, when dropdown is open.
afterListShows after the list, when dropdown is open.
caretElement for opening and closing the dropdown.
Slot-scope
  • toggle: Function – toggles the dropdown.
singleLabelSlot for custom label template for single select
placeholderSlot for the placeholder (is not displayed when the dropdown is open and `searchable` is true)
limitSlot to display when the number of selected options is greater than `optionsLimit`.
clearSlot located before the tags
Slot-scope
  • search – the search value
tagSlot that is used for all selected options (tags)
Slot-scope
  • option – selected option
  • search – the search value
  • remove – method to remove the slot (pass the option)

Created by Damian Dulisz @DamianDulisz

\ No newline at end of file diff --git a/docs/static/.gitkeep b/docs/static/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css b/docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css deleted file mode 100644 index 29e00c12..00000000 --- a/docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css +++ /dev/null @@ -1,2 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:700,400);@import url(https://fonts.googleapis.com/css?family=Dosis:400);fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border-color:#41b883 transparent transparent;border-style:solid;border-width:2px;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{animation:a 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:a 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;-ms-touch-action:manipulation;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:3}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 12px 0;padding-right:30px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:5px 5px 0;border-color:#999 transparent transparent;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:3;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}.custom__tag{display:inline-block;padding:3px 12px;background:#d2d7ff;margin-right:8px;margin-bottom:8px;border-radius:10px;cursor:pointer}.custom__tag:nth-child(2n){background:#daffee}.custom__tag:hover{background:#eaeaea}.custom__remove{padding:0;font-size:10px;margin-left:5px}.multiselect__clear{position:absolute;right:41px;height:40px;width:40px;display:block;cursor:pointer;z-index:2}.multiselect__clear:after,.multiselect__clear:before{content:"";display:block;position:absolute;width:3px;height:16px;background:#aaa;top:12px;right:4px}.multiselect__clear:before{transform:rotate(45deg)}.multiselect__clear:after{transform:rotate(-45deg)}.option__image{max-height:80px;margin-right:10px}.option__desc,.option__image{display:inline-block;vertical-align:middle}.option__desc{padding:rem(10px)}.option__title{font-size:rem(24px)}.option__small{margin-top:rem(10px);display:block}.form__label{margin-top:5px!important}.badge__img{vertical-align:middle;float:right}.badge__name{vertical-align:middle;display:inline-block;margin-left:5px;float:left} -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(2turn)}}body{color:#374853;font-size:16px}::selection{background:#41b883;color:#fff}.typo__h1,.typo__h2,.typo__h3,.typo__h4,.typo__h5{margin-top:0;margin-bottom:1rem;color:#374853;line-height:1.2}.typo__h1,h1{font-family:Dosis,sans-serif;font-weight:700;font-size:2rem;margin:.625rem 0 2.5rem}@media only screen and (min-width:640px){.typo__h1,h1{font-size:2.5rem}}@media only screen and (min-width:1024px){.typo__h1,h1{font-size:2.5rem}}.typo__h2,h2{font-family:Dosis,sans-serif;font-weight:700;font-size:1.625rem;padding-top:1.25rem}@media only screen and (min-width:640px){.typo__h2,h2{font-size:1.8rem}}@media only screen and (min-width:1024px){.typo__h2,h2{font-size:1.8rem}}.typo__h3,h3{font-family:Dosis,sans-serif;font-weight:700;font-size:1.375rem}@media only screen and (min-width:640px){.typo__h3,h3{font-size:1.5rem}}@media only screen and (min-width:1024px){.typo__h3,h3{font-size:1.5rem}}.typo__h4,h4{font-family:Lato,sans-serif;font-weight:700;font-size:1.375rem;margin:.625rem 0 0}@media only screen and (min-width:640px){.typo__h4,h4{font-size:1.25rem}}@media only screen and (min-width:1024px){.typo__h4,h4{font-size:1.125rem}}.typo__p,p{margin-top:0;margin-bottom:1rem;line-height:1.8;font-family:Lato,sans-serif;font-weight:400;font-size:1rem}@media only screen and (min-width:640px){.typo__p,p{font-size:1.125rem}}@media only screen and (min-width:1024px){.typo__p,p{font-size:1.125rem}}.typo__blockquote{font-family:Dosis,sans-serif;font-size:1rem;color:#939ea5;margin:0;border-left:1px solid #e8e8e8;padding:.3125rem 1.25rem;line-height:1.8;text-align:left}.typo__blockquote cite{font-size:.875rem;font-weight:700;font-family:Lato,sans-serif;font-style:normal;margin-top:6px;display:block;color:#374853}.typo__blockquote cite:before{content:"\2014 "}.typo__hr,hr{border:none;border-bottom:1px solid #e8e8e8;margin:1.875rem 0;outline:none}.typo__link{color:#41b883;text-decoration:none;font-weight:700}.typo__label{font-weight:400;font-size:.875rem;color:#bbb;margin:1.25rem 0 .625rem}.typo__label,.typo__text{font-family:Lato,sans-serif;display:block}.typo__text{font-size:1rem;margin:0;line-height:1.4}.typo--bold,strong{font-weight:700}code:not([class*=language-]),kbd{color:#41b883;padding:3px 5px;border-radius:4px;background:#f3f3f3;font-size:.9375rem}pre{font-size:.875rem}body,html{font-size:100%;height:100%}html{overflow-y:auto;box-sizing:border-box}*,:after,:before{box-sizing:inherit}.grid__column,.grid__columns{box-sizing:border-box;display:inline-block;font-size:1rem;margin:0;text-align:left;vertical-align:top;width:100%;position:relative;padding:0 20px}.grid__column--centered{display:block;margin:0 auto}.grid__row--middle .grid__column,.grid__row--middle .grid__columns{vertical-align:middle}.grid__row--bottom .grid__column,.grid__row--bottom .grid__columns{vertical-align:bottom}.grid__row{display:block;font-size:0;margin:0 auto;box-sizing:border-box;padding:0;text-align:left;max-width:1400px}.grid__row:after,.grid__row:before{content:"";display:table}.grid__row:after{clear:both}.grid__row .grid__row{margin:0 -20px}.grid__row.grid__row--collapse>.grid__column{padding-left:0;padding-right:0}.grid__row--full{max-width:100%}.grid__row--centered{text-align:center}.grid__push--small-reset{left:auto!important;right:auto!important}.blocks{margin:0 -10px}.blocks .blocks__element{position:relative;float:left;box-sizing:border-box;transition:background .2s ease;margin:10px}.grid__unit--sm-1{width:8.33333%}.grid__push--sm-1{left:8.33333%;right:auto}.grid__pull--sm-1{right:8.33333%;left:auto}.grid__offset--sm-1{margin-left:8.33333%}.blocks--sm-1 .blocks__element{width:calc(100% - 20px)}.grid__unit--sm-2{width:16.66667%}.grid__push--sm-2{left:16.66667%;right:auto}.grid__pull--sm-2{right:16.66667%;left:auto}.grid__offset--sm-2{margin-left:16.66667%}.blocks--sm-2 .blocks__element{width:calc(50% - 20px)}.grid__unit--sm-3{width:25%}.grid__push--sm-3{left:25%;right:auto}.grid__pull--sm-3{right:25%;left:auto}.grid__offset--sm-3{margin-left:25%}.blocks--sm-3 .blocks__element{width:calc(33.33333% - 20px)}.grid__unit--sm-4{width:33.33333%}.grid__push--sm-4{left:33.33333%;right:auto}.grid__pull--sm-4{right:33.33333%;left:auto}.grid__offset--sm-4{margin-left:33.33333%}.blocks--sm-4 .blocks__element{width:calc(25% - 20px)}.grid__unit--sm-5{width:41.66667%}.grid__push--sm-5{left:41.66667%;right:auto}.grid__pull--sm-5{right:41.66667%;left:auto}.grid__offset--sm-5{margin-left:41.66667%}.blocks--sm-5 .blocks__element{width:calc(20% - 20px)}.grid__unit--sm-6{width:50%}.grid__push--sm-6{left:50%;right:auto}.grid__pull--sm-6{right:50%;left:auto}.grid__offset--sm-6{margin-left:50%}.blocks--sm-6 .blocks__element{width:calc(16.66667% - 20px)}.grid__unit--sm-7{width:58.33333%}.grid__push--sm-7{left:58.33333%;right:auto}.grid__pull--sm-7{right:58.33333%;left:auto}.grid__offset--sm-7{margin-left:58.33333%}.blocks--sm-7 .blocks__element{width:calc(14.28571% - 20px)}.grid__unit--sm-8{width:66.66667%}.grid__push--sm-8{left:66.66667%;right:auto}.grid__pull--sm-8{right:66.66667%;left:auto}.grid__offset--sm-8{margin-left:66.66667%}.blocks--sm-8 .blocks__element{width:calc(12.5% - 20px)}.grid__unit--sm-9{width:75%}.grid__push--sm-9{left:75%;right:auto}.grid__pull--sm-9{right:75%;left:auto}.grid__offset--sm-9{margin-left:75%}.blocks--sm-9 .blocks__element{width:calc(11.11111% - 20px)}.grid__unit--sm-10{width:83.33333%}.grid__push--sm-10{left:83.33333%;right:auto}.grid__pull--sm-10{right:83.33333%;left:auto}.grid__offset--sm-10{margin-left:83.33333%}.blocks--sm-10 .blocks__element{width:calc(10% - 20px)}.grid__unit--sm-11{width:91.66667%}.grid__push--sm-11{left:91.66667%;right:auto}.grid__pull--sm-11{right:91.66667%;left:auto}.grid__offset--sm-11{margin-left:91.66667%}.blocks--sm-11 .blocks__element{width:calc(9.09091% - 20px)}.grid__unit--sm-12{width:100%}.grid__push--sm-12{left:100%;right:auto}.grid__pull--sm-12{right:100%;left:auto}.grid__offset--sm-12{margin-left:100%}.blocks--sm-12 .blocks__element{width:calc(8.33333% - 20px)}@media only screen and (min-width:640px){body,html{overflow-x:initial}.grid__push--md-reset{left:auto;right:auto}.grid__unit--md-1{width:8.33333%}.grid__push--md-1{left:8.33333%;right:auto}.grid__pull--md-1{right:8.33333%;left:auto}.grid__offset--md-1{margin-left:8.33333%}.blocks--md-1 .blocks__element{width:calc(100% - 20px)}.grid__unit--md-2{width:16.66667%}.grid__push--md-2{left:16.66667%;right:auto}.grid__pull--md-2{right:16.66667%;left:auto}.grid__offset--md-2{margin-left:16.66667%}.blocks--md-2 .blocks__element{width:calc(50% - 20px)}.grid__unit--md-3{width:25%}.grid__push--md-3{left:25%;right:auto}.grid__pull--md-3{right:25%;left:auto}.grid__offset--md-3{margin-left:25%}.blocks--md-3 .blocks__element{width:calc(33.33333% - 20px)}.grid__unit--md-4{width:33.33333%}.grid__push--md-4{left:33.33333%;right:auto}.grid__pull--md-4{right:33.33333%;left:auto}.grid__offset--md-4{margin-left:33.33333%}.blocks--md-4 .blocks__element{width:calc(25% - 20px)}.grid__unit--md-5{width:41.66667%}.grid__push--md-5{left:41.66667%;right:auto}.grid__pull--md-5{right:41.66667%;left:auto}.grid__offset--md-5{margin-left:41.66667%}.blocks--md-5 .blocks__element{width:calc(20% - 20px)}.grid__unit--md-6{width:50%}.grid__push--md-6{left:50%;right:auto}.grid__pull--md-6{right:50%;left:auto}.grid__offset--md-6{margin-left:50%}.blocks--md-6 .blocks__element{width:calc(16.66667% - 20px)}.grid__unit--md-7{width:58.33333%}.grid__push--md-7{left:58.33333%;right:auto}.grid__pull--md-7{right:58.33333%;left:auto}.grid__offset--md-7{margin-left:58.33333%}.blocks--md-7 .blocks__element{width:calc(14.28571% - 20px)}.grid__unit--md-8{width:66.66667%}.grid__push--md-8{left:66.66667%;right:auto}.grid__pull--md-8{right:66.66667%;left:auto}.grid__offset--md-8{margin-left:66.66667%}.blocks--md-8 .blocks__element{width:calc(12.5% - 20px)}.grid__unit--md-9{width:75%}.grid__push--md-9{left:75%;right:auto}.grid__pull--md-9{right:75%;left:auto}.grid__offset--md-9{margin-left:75%}.blocks--md-9 .blocks__element{width:calc(11.11111% - 20px)}.grid__unit--md-10{width:83.33333%}.grid__push--md-10{left:83.33333%;right:auto}.grid__pull--md-10{right:83.33333%;left:auto}.grid__offset--md-10{margin-left:83.33333%}.blocks--md-10 .blocks__element{width:calc(10% - 20px)}.grid__unit--md-11{width:91.66667%}.grid__push--md-11{left:91.66667%;right:auto}.grid__pull--md-11{right:91.66667%;left:auto}.grid__offset--md-11{margin-left:91.66667%}.blocks--md-11 .blocks__element{width:calc(9.09091% - 20px)}.grid__unit--md-12{width:100%}.grid__push--md-12{left:100%;right:auto}.grid__pull--md-12{right:100%;left:auto}.grid__offset--md-12{margin-left:100%}.blocks--md-12 .blocks__element{width:calc(8.33333% - 20px)}}@media only screen and (min-width:1024px){.grid__push--lg-reset{left:auto;right:auto}.grid__unit--lg-1{width:8.33333%}.grid__push--lg-1{left:8.33333%;right:auto}.grid__pull--lg-1{right:8.33333%;left:auto}.grid__offset--lg-1{margin-left:8.33333%}.blocks--lg-1 .blocks__element{width:calc(100% - 20px)}.grid__unit--lg-2{width:16.66667%}.grid__push--lg-2{left:16.66667%;right:auto}.grid__pull--lg-2{right:16.66667%;left:auto}.grid__offset--lg-2{margin-left:16.66667%}.blocks--lg-2 .blocks__element{width:calc(50% - 20px)}.grid__unit--lg-3{width:25%}.grid__push--lg-3{left:25%;right:auto}.grid__pull--lg-3{right:25%;left:auto}.grid__offset--lg-3{margin-left:25%}.blocks--lg-3 .blocks__element{width:calc(33.33333% - 20px)}.grid__unit--lg-4{width:33.33333%}.grid__push--lg-4{left:33.33333%;right:auto}.grid__pull--lg-4{right:33.33333%;left:auto}.grid__offset--lg-4{margin-left:33.33333%}.blocks--lg-4 .blocks__element{width:calc(25% - 20px)}.grid__unit--lg-5{width:41.66667%}.grid__push--lg-5{left:41.66667%;right:auto}.grid__pull--lg-5{right:41.66667%;left:auto}.grid__offset--lg-5{margin-left:41.66667%}.blocks--lg-5 .blocks__element{width:calc(20% - 20px)}.grid__unit--lg-6{width:50%}.grid__push--lg-6{left:50%;right:auto}.grid__pull--lg-6{right:50%;left:auto}.grid__offset--lg-6{margin-left:50%}.blocks--lg-6 .blocks__element{width:calc(16.66667% - 20px)}.grid__unit--lg-7{width:58.33333%}.grid__push--lg-7{left:58.33333%;right:auto}.grid__pull--lg-7{right:58.33333%;left:auto}.grid__offset--lg-7{margin-left:58.33333%}.blocks--lg-7 .blocks__element{width:calc(14.28571% - 20px)}.grid__unit--lg-8{width:66.66667%}.grid__push--lg-8{left:66.66667%;right:auto}.grid__pull--lg-8{right:66.66667%;left:auto}.grid__offset--lg-8{margin-left:66.66667%}.blocks--lg-8 .blocks__element{width:calc(12.5% - 20px)}.grid__unit--lg-9{width:75%}.grid__push--lg-9{left:75%;right:auto}.grid__pull--lg-9{right:75%;left:auto}.grid__offset--lg-9{margin-left:75%}.blocks--lg-9 .blocks__element{width:calc(11.11111% - 20px)}.grid__unit--lg-10{width:83.33333%}.grid__push--lg-10{left:83.33333%;right:auto}.grid__pull--lg-10{right:83.33333%;left:auto}.grid__offset--lg-10{margin-left:83.33333%}.blocks--lg-10 .blocks__element{width:calc(10% - 20px)}.grid__unit--lg-11{width:91.66667%}.grid__push--lg-11{left:91.66667%;right:auto}.grid__pull--lg-11{right:91.66667%;left:auto}.grid__offset--lg-11{margin-left:91.66667%}.blocks--lg-11 .blocks__element{width:calc(9.09091% - 20px)}.grid__unit--lg-12{width:100%}.grid__push--lg-12{left:100%;right:auto}.grid__pull--lg-12{right:100%;left:auto}.grid__offset--lg-12{margin-left:100%}.blocks--lg-12 .blocks__element{width:calc(8.33333% - 20px)}}.table{font-family:Lato,sans-serif;font-size:1rem;font-weight:400;margin-bottom:2.5rem;line-height:1.4}.table__tr{border-bottom:1px solid #e6e6e6;box-sizing:border-box;border-left:.25rem solid transparent}.table__tr:nth-child(2n){background:#fafafa}.table__tr:hover{background:#f4f4f4}.table__tr--primary{border-left:.25rem solid #41b883}.table__tr--primary:hover{background:#f3fbf7}.table__td,.table__th{padding:.875rem 1rem}.table__th{border-bottom:1px solid #ccc}.table__container{overflow-x:auto}.table--full-size{width:100%}.table--fixed{table-layout:fixed}.button{font-family:Lato,sans-serif;font-size:.875rem;font-weight:400;color:#fff;min-height:2.5rem;line-height:1.4;padding:.5rem 1.875rem .625rem;box-sizing:border-box;position:relative;display:inline-block;background:#41b883;border:none;border-radius:5px;z-index:1;overflow:hidden;outline:none;vertical-align:middle;transition:background .1s ease,border-color .1s ease,color .1s ease;border-bottom:3px solid #266d4d;text-decoration:none}.button:focus,.button:hover{background:#349268;cursor:pointer}.button:active{background:#266d4d}.button:focus{outline:none}.button--small{padding:.375rem 1.25rem;font-size:.75rem;min-height:1.875rem}.button--xlarge{padding:.875rem 3.125rem .9375rem;font-size:1.125rem;min-height:3.75rem}.button--large{padding:.6875rem 2.5rem .8125rem;font-size:1rem;min-height:3.125rem}.button--fake{background:none;color:#374853;border-color:transparent}.button--fake:focus,.button--fake:hover{background:rgba(0,0,0,.05)}.button--hollow{background:none;color:#374853;border:1px solid #a8a8a8}.button--hollow:focus,.button--hollow:hover{background:rgba(0,0,0,.05);color:#000;border:1px solid #1c1c1c;cursor:pointer}.button--expanded{width:100%}.button--secondary{background:#374853;border-bottom:3px solid #0e1316}.button--secondary:focus,.button--secondary:hover{background:#232d34;cursor:pointer}.button--success{background:#43ac6a;border-bottom:3px solid #26633d}.button--success:focus,.button--success:hover{background:#358753;cursor:pointer}.button--error{background:#f08a24;border-bottom:3px solid #a3570b}.button--error:focus,.button--error:hover{background:#d3710e;cursor:pointer}.button--info{background:#5fadd6;border-bottom:3px solid #2a7ba5}.button--info:focus,.button--info:hover{background:#3698cc;cursor:pointer}.button__group{margin-bottom:20px;width:100%}.button__group .button{display:inline-block;margin-right:0;margin-bottom:0;border-radius:0}.button__group .button:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.button__group .button:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.button__group--1 .button{width:100%}.button__group--2 .button{width:50%}.button__group--3 .button{width:33.33333%}.form{position:relative}.form__input,.form__textarea{margin-bottom:2rem;font-family:Lato,sans-serif;font-size:.875rem;font-weight:400;color:#374853;line-height:2.375rem;min-height:2.375rem;position:relative;border:1px solid #e8e8e8;border-radius:5px;background:#fff;padding:0 .8125rem;width:100%;transition:border .1s ease;box-sizing:border-box}.form__input:hover,.form__textarea:hover{border-color:#cfcfcf}.form__input:focus,.form__textarea:focus{border-color:#a8a8a8;outline:none}.form__input--with-left-icon,.form__textarea--with-left-icon{padding-left:2.8125rem}.form__input--with-right-icon,.form__textarea--with-right-icon{padding-right:2.8125rem}.form__icon{position:absolute;pointer-events:none;top:-1px;height:2.5rem;line-height:2.5rem}.form__icon--right{right:.9375rem}.form__icon--left{left:.8125rem}.form__textarea{max-width:100%;min-height:5.125rem;resize:none;line-height:1.4;padding-top:10px}.form__label,.form__label--inline{font-size:.8125rem;color:#4b6372;margin-bottom:.3125rem;margin-left:.875rem;display:block;font-family:Lato,sans-serif}.form__label--inline{display:inline-block;margin-right:1.25rem;margin-left:.5rem}.form-group{margin-bottom:2rem}.form-group .form__input,.form-group .form__textarea{margin-bottom:0}.form-group--merged{font-size:0;display:table;width:100%;border-collapse:separate}.form-group--merged .form__label,.form-group--merged .form__label--inline{display:table-caption}.form-group__addon,.form-group__button,.form-group__input{display:table-cell;vertical-align:middle;margin:0;white-space:nowrap}.form-group__addon:first-child,.form-group__button:first-child .button,.form-group__input:first-child{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px}.form-group__addon:last-child,.form-group__button:last-child .button,.form-group__input:last-child{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.form-group__addon:not(:first-child):not(:last-child),.form-group__button:not(:first-child):not(:last-child) .button,.form-group__input:not(:first-child):not(:last-child){border-radius:0}.form-group__button:not(:first-child):not(:last-child) .button{margin-left:-1px;margin-right:-1px}.form-group__addon:first-child{border-right:none}.form-group__addon:last-child{border-left:none}.form-group__addon{background:#f3f3f3;border:1px solid #e8e8e8;border-radius:5px;height:2.375rem;line-height:2.375rem;width:1%;padding:0 13px;font-size:14px;text-align:center}.form-group__button{width:1%}.form-group__button .button{margin:0;padding-right:1.25rem;padding-left:1.25rem}.form-group__message{font-size:.75rem;line-height:1;display:none;margin-left:14px;margin-top:-1.6875rem;margin-bottom:.9375rem}.form-group--alert,.form-group--error{animation-name:b;animation-fill-mode:forward;animation-duration:.6s;animation-timing-function:ease-in-out}.form-group--success .form__label,.form-group--success .form__label--inline{color:#43ac6a}.form-group--success .form-group__addon{color:#fff;border-color:#85d0a1;background:#85d0a1}.form-group--success input,.form-group--success input:focus,.form-group--success input:hover,.form-group--success textarea{border-color:#85d0a1}.form-group--success+.form-group__message{display:block;color:#73c893}.form-group--error .form__label,.form-group--error .form__label--inline{color:#f04124}.form-group--error .form-group__addon{color:#fff;border-color:#f79483;background:#f79483}.form-group--error input,.form-group--error input:focus,.form-group--error input:hover,.form-group--error textarea{border-color:#f79483}.form-group--error+.form-group__message{display:block;color:#f57f6c}.form-group--alert .form__label,.form-group--alert .form__label--inline{color:#f08a24}.form-group--alert .form-group__addon{color:#fff;border-color:#f7bd83;background:#f7bd83}.form-group--alert input,.form-group--alert input:focus,.form-group--alert input:hover,.form-group--alert textarea{border-color:#f7bd83}.form-group--alert+.form-group__message{display:block;color:#f5b06c}@keyframes b{0%{transform:translateX(0)}15%{transform:translateX(.375rem)}30%{transform:translateX(-.375rem)}45%{transform:translateX(.375rem)}60%{transform:translateX(-.375rem)}75%{transform:translateX(.375rem)}90%{transform:translateX(-.375rem)}to{transform:translateX(0)}}.list{font-family:Lato,sans-serif;font-size:1rem;color:#374853;letter-spacing:.4px;line-height:32px;list-style:none}.list--sticky{position:fixed;top:0;width:calc(25% - 40px);max-width:19.375rem;overflow:auto;height:calc(100% - 1em)}.list__heading{font-family:Dosis,sans-serif;font-size:.875rem;font-weight:700;line-height:1.875rem;color:#41b883;text-transform:uppercase;letter-spacing:.4px;margin:1.25rem 0 0}.list__link{color:#374853;text-decoration:none;display:block;padding:.4375rem .625rem;margin-left:-.625rem;border-radius:5px;line-height:1.3}.list__link--active{background:#f3f3f3}.list__link--disabled{color:#939ea5;pointer-events:none}.list__desc{display:block;font-size:.875rem;color:#939ea5;line-height:1.4;max-width:200px;margin-top:3px}.list__img{display:inline-block;vertical-align:sub;margin-left:5px}.list__dl{font-family:Lato,sans-serif;font-weight:400}.list__dt{font-size:.875rem;margin-bottom:.625rem;color:#bbb}.list__dd{font-size:1rem;margin-left:0;margin-bottom:1.25rem;line-height:1.4}.list__ol,.list__ul{margin:0 0 0 1.875rem;padding:0;line-height:1.8;font-weight:400}.list__ul{list-style:square}.tabs{display:flex;align-items:stretch;min-height:2.5rem}.tabs__link{display:block;padding:0 1.25rem;font-family:Lato,sans-serif;font-size:1rem;font-weight:400;text-decoration:none;cursor:pointer;line-height:2.5rem;color:#939ea5;transition:color .2s ease}.tabs__link--active{font-weight:700;color:#374853}.tabs{flex-direction:row}.tabs,.tabs__link{border-bottom:3px solid #e8e8e8}.tabs__link{margin-bottom:-3px}.tabs__link:focus,.tabs__link:hover{color:#374853}.tabs__link--active{border-color:#41b883}@media only screen and (max-width:640px){.small--hidden{display:none!important}}@media only screen and (min-width:640px) and (max-width:1024px){.medium--hidden{display:none!important}}@media only screen and (min-width:640px){.medium-up--hidden{display:none!important}}@media only screen and (min-width:1024px) and (max-width:1440px){.large--hidden{display:none!important}}@media only screen and (min-width:1024px){.large-up--hidden{display:none!important}}@media only screen and (min-width:1440px) and (max-width:1920px){.xlarge--hidden{display:none!important}}.utils--center{text-align:center}.utils--right{text-align:right}code[class*=language-],pre[class*=language-]{color:#000;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1.3em 1em;margin:0 0 20px;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f3f5f6}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}div.prism-show-language{position:relative}div.prism-show-language>div.prism-show-language-label[data-language]{color:#000;background-color:#cfcfcf;opacity:.5;display:inline-block;position:absolute;bottom:auto;left:auto;top:0;right:0;width:auto;height:auto;font-size:.9em;border-radius:0 0 0 5px;padding:.1em .5em;text-shadow:none;z-index:1;box-shadow:none;transform:none}.invalid .typo__label{color:#f04124}.invalid .multiselect__tags{border-color:#f04124!important}body{background:#fff;color:#35495e;font-family:Lato,Helvetica,sans-serif;text-decoration:none}.start{text-align:center;display:block;background:linear-gradient(to left bottom,#8cc1f7 0,#9cffd3)}.start .typo__h1{padding-top:2.5rem;position:relative}.start .typo__h3{padding:1.25rem 0 0}@media only screen and (min-width:640px){.start{min-height:100vh}}.start .button{margin-bottom:1.5rem}.docs,.start__list{padding-top:1.875rem}.docs{text-align:left}.center-vertically{position:relative}@media only screen and (min-width:640px){.center-vertically{position:absolute;height:600px;left:0;right:0;top:50%;transform:translateY(-50%)}}.multiselect-example__container{margin:0 auto 60px}.button{margin:0 .625rem}.logo{height:4.375rem;margin-right:1.25rem;vertical-align:middle;display:inline-block}.button--github{padding-left:3.75rem}.button--github:before{content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjIzcHgiIGhlaWdodD0iMjNweCIgdmlld0JveD0iMCAwIDIzIDIzIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCAzLjcuMSAoMjgyMTUpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPkZpbGwgNTA8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iR2l0SHViLU1hcmsiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNDEuMDAwMDAwLCAtMzM2LjAwMDAwMCkiIGZpbGw9IiNGRkZGRkYiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTUyLjYwODQ3MSwzMzYuNDQzODA3IEMxNDYuNDM4Njc0LDMzNi40NDM4MDcgMTQxLjQzNTA2LDM0MS40NDY3MzUgMTQxLjQzNTA2LDM0Ny42MTg1OSBDMTQxLjQzNTA2LDM1Mi41NTU2NjMgMTQ0LjYzNjU3NywzNTYuNzQzNjM0IDE0OS4wNzY5OTMsMzU4LjIyMTI1OCBDMTQ5LjYzNjA3NSwzNTguMzI0MTU2IDE0OS44Mzk4MTQsMzU3Ljk3OTEwMyAxNDkuODM5ODE0LDM1Ny42ODI3NTUgQzE0OS44Mzk4MTQsMzU3LjQxNzI3NyAxNDkuODMwMjEsMzU2LjcxNDgyMyAxNDkuODI0NzIyLDM1NS43ODI1NjIgQzE0Ni43MTY1LDM1Ni40NTc1NzYgMTQ2LjA2MDY5MywzNTQuMjg0MzU5IDE0Ni4wNjA2OTMsMzU0LjI4NDM1OSBDMTQ1LjU1MjM3NCwzNTIuOTkzMzI1IDE0NC44MTk3MzYsMzUyLjY0OTY0NCAxNDQuODE5NzM2LDM1Mi42NDk2NDQgQzE0My44MDUxNTYsMzUxLjk1Njc5MyAxNDQuODk2NTY3LDM1MS45NzA1MTMgMTQ0Ljg5NjU2NywzNTEuOTcwNTEzIEMxNDYuMDE4MTYxLDM1Mi4wNDk0MDIgMTQ2LjYwODExMywzNTMuMTIyMjkxIDE0Ni42MDgxMTMsMzUzLjEyMjI5MSBDMTQ3LjYwNDg1NywzNTQuODI5NzIxIDE0OS4yMjM3OTQsMzU0LjMzNjQ5NCAxNDkuODYwMzk0LDM1NC4wNTA0MzYgQzE0OS45NjE5MiwzNTMuMzI4Nzc0IDE1MC4yNTA3MjIsMzUyLjgzNjIzMyAxNTAuNTY5NzA4LDM1Mi41NTcwMzUgQzE0OC4wODg0OCwzNTIuMjc1MDkzIDE0NS40Nzk2NTksMzUxLjMxNjA3OCAxNDUuNDc5NjU5LDM0Ny4wMzQxMjYgQzE0NS40Nzk2NTksMzQ1LjgxNDQzNiAxNDUuOTE1MjYzLDM0NC44MTYzMiAxNDYuNjMwMDY1LDM0NC4wMzU2NjIgQzE0Ni41MTQ4MTgsMzQzLjc1MzAzNCAxNDYuMTMxMzUsMzQyLjYxNjM0OCAxNDYuNzM5ODIzLDM0MS4wNzgzNTggQzE0Ni43Mzk4MjMsMzQxLjA3ODM1OCAxNDcuNjc3NTcyLDM0MC43Nzc4OTQgMTQ5LjgxMjM3NCwzNDIuMjIzOTYyIEMxNTAuNzAzNDc2LDM0MS45NzU2MzMgMTUxLjY1OTc0NiwzNDEuODUyMTU1IDE1Mi42MDk4NDMsMzQxLjg0NzM1MyBDMTUzLjU1OTI1NCwzNDEuODUyMTU1IDE1NC41MTQ4MzgsMzQxLjk3NTYzMyAxNTUuNDA3MzEyLDM0Mi4yMjM5NjIgQzE1Ny41NDA3NDIsMzQwLjc3Nzg5NCAxNTguNDc3MTE5LDM0MS4wNzgzNTggMTU4LjQ3NzExOSwzNDEuMDc4MzU4IEMxNTkuMDg2OTY0LDM0Mi42MTYzNDggMTU4LjcwMzQ5NiwzNDMuNzUzMDM0IDE1OC41ODg5MzUsMzQ0LjAzNTY2MiBDMTU5LjMwNTEwOSwzNDQuODE2MzIgMTU5LjczNzI4MywzNDUuODE0NDM2IDE1OS43MzcyODMsMzQ3LjAzNDEyNiBDMTU5LjczNzI4MywzNTEuMzI3MDU0IDE1Ny4xMjQzNDYsMzUyLjI3MTY2MyAxNTQuNjM1NTczLDM1Mi41NDgxMTcgQzE1NS4wMzYxOTEsMzUyLjg5MzE3IDE1NS4zOTM1OTIsMzUzLjU3NTA0NSAxNTUuMzkzNTkyLDM1NC42MTcwNjQgQzE1NS4zOTM1OTIsMzU2LjExMTE1MSAxNTUuMzc5ODcyLDM1Ny4zMTY0MzYgMTU1LjM3OTg3MiwzNTcuNjgyNzU1IEMxNTUuMzc5ODcyLDM1Ny45ODE4NDcgMTU1LjU4MTU1MywzNTguMzI5NjQ0IDE1Ni4xNDgxODEsMzU4LjIyMDU3MiBDMTYwLjU4NTE2NywzNTYuNzM5NTE4IDE2My43ODM5NCwzNTIuNTU0MjkxIDE2My43ODM5NCwzNDcuNjE4NTkgQzE2My43ODM5NCwzNDEuNDQ2NzM1IDE1OC43ODAzMjYsMzM2LjQ0MzgwNyAxNTIuNjA4NDcxLDMzNi40NDM4MDciIGlkPSJGaWxsLTUwIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=);left:1.5625rem;position:absolute}.blank__link{color:inherit;text-decoration:none}.version{position:absolute;bottom:-.4375rem;font-size:1.25rem;color:#374853;transform:translateX(-100%)}.badges{margin-bottom:15px}.badges img{margin:0 2px}.list__multiselect{line-height:1.4}section{margin-bottom:1.25rem}#examples .grid__column>p>a{font-weight:700;color:#41b883;text-decoration:none}#examples .grid__column>ul{padding-left:1.5625rem;margin-top:.4375rem}#examples .grid__column>ul li{line-height:1.8;font-family:Lato,sans-serif;font-weight:400;font-size:1rem;padding:.25rem 0} \ No newline at end of file diff --git a/docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css.map b/docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css.map deleted file mode 100644 index 94c1fefc..00000000 --- a/docs/static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack:///src/Multiselect.vue","webpack:///webpack:///documentation/partials/examples/MultiSelect.vue","webpack:///webpack:///documentation/partials/examples/AjaxSearch.vue","webpack:///webpack:///documentation/partials/examples/CustomOption.vue","webpack:///webpack:///documentation/partials/examples/CustomConfig.vue","webpack:///webpack:///documentation/MultiselectExample.vue"],"names":[],"mappings":";AACA;EACE,qBAAqB;CACtB;AACD;EACE,mBAAmB;EACnB,WAAW;EACX,SAAS;EACT,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,eAAe;CAChB;AACD;;EAEE,mBAAmB;EACnB,YAAY;EACZ,SAAS;EACT,UAAU;EACV,sBAAsB;EACtB,YAAY;EACZ,aAAa;EACb,oBAAoB;EACpB,8CAA8C;EAC9C,oBAAoB;EACpB,kBAAkB;EAClB,kCAAkC;CACnC;AACD;EACE,6DAA6D;EAC7D,oCAAoC;CACrC;AACD;EACE,6DAA6D;EAC7D,oCAAoC;CACrC;AACD;;EAEE,qCAAqC;EACrC,WAAW;CACZ;AACD;;EAEE,WAAW;CACZ;AACD;;;EAGE,qBAAqB;EACrB,gBAAgB;EAChB,+BAA+B;MAC3B,2BAA2B;CAChC;AACD;EACE,wBAAwB;EACxB,eAAe;EACf,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,iBAAiB;EACjB,eAAe;CAChB;AACD;EACE,uBAAuB;CACxB;AACD;EACE,cAAc;CACf;AACD;EACE,oBAAoB;EACpB,qBAAqB;EACrB,aAAa;CACd;AACD;EACE,YAAY;CACb;AACD;;;EAGE,6BAA6B;EAC7B,8BAA8B;CAC/B;AACD;EACE,2BAA2B;CAC5B;AACD;;;EAGE,0BAA0B;EAC1B,2BAA2B;CAC5B;AACD;;EAEE,mBAAmB;EACnB,sBAAsB;EACtB,iBAAiB;EACjB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,mBAAmB;EACnB,kBAAkB;EAClB,6BAA6B;EAC7B,uBAAuB;EACvB,mBAAmB;EACnB,oBAAoB;CACrB;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;CAChB;AACD;;EAEE,YAAY;CACb;AACD;;EAEE,sBAAsB;CACvB;AACD;;EAEE,sBAAsB;EACtB,cAAc;CACf;AACD;EACE,kBAAkB;EAClB,mBAAmB;CACpB;AACD;EACE,gBAAgB;CACjB;AACD;EACE,iBAAiB;EACjB,eAAe;EACf,wBAAwB;EACxB,mBAAmB;EACnB,0BAA0B;EAC1B,iBAAiB;EACjB,gBAAgB;CACjB;AACD;EACE,mBAAmB;EACnB,sBAAsB;EACtB,2BAA2B;EAC3B,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,eAAe;EACf,oBAAoB;EACpB,mBAAmB;EACnB,oBAAoB;EACpB,iBAAiB;EACjB,gBAAgB;EAChB,wBAAwB;CACzB;AACD;EACE,gBAAgB;EAChB,iBAAiB;EACjB,mBAAmB;EACnB,SAAS;EACT,OAAO;EACP,UAAU;EACV,iBAAiB;EACjB,oBAAoB;EACpB,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;EAClB,0BAA0B;EAC1B,mBAAmB;CACpB;AACD;EACE,eAAa;EACb,eAAe;EACf,gBAAgB;CACjB;AACD;;EAEE,oBAAoB;CACrB;AACD;;EAEE,aAAa;CACd;AACD;EACE,kBAAkB;EAClB,iBAAiB;EACjB,uBAAuB;EACvB,eAAe;EACf,iBAAiB;EACjB,oBAAoB;EACpB,oBAAoB;EACpB,oBAAoB;EACpB,UAAU;EACV,sBAAsB;EACtB,mBAAmB;EACnB,0BAA0B;EAC1B,gBAAgB;CACjB;AACD;EACE,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,aAAa;EACb,WAAW;EACX,SAAS;EACT,iBAAiB;EACjB,UAAU;EACV,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,gCAAgC;CACjC;AACD;EACE,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,oBAAoB;EACpB,4BAA4B;EAC5B,0DAA0D;EAC1D,YAAY;CACb;AACD;EACE,eAAe;EACf,sBAAsB;EACtB,oBAAoB;EACpB,iBAAiB;CAClB;AACD;EACE,cAAc;CACf;AACD;EACE,mBAAmB;EACnB,eAAe;EACf,iBAAiB;EACjB,YAAY;EACZ,kBAAkB;EAClB,eAAe;EACf,0BAA0B;EAC1B,iBAAiB;EACjB,+BAA+B;EAC/B,gCAAgC;EAChC,YAAY;EACZ,kCAAkC;CACnC;AACD;EACE,iBAAiB;EACjB,sBAAsB;EACtB,WAAW;EACX,UAAU;EACV,gBAAgB;EAChB,oBAAoB;CACrB;AACD;EACE,aAAa;EACb,6BAA6B;EAC7B,8BAA8B;EAC9B,4BAA4B;EAC5B,6BAA6B;EAC7B,oBAAoB;EACpB,8BAA8B;CAC/B;AACD;EACE,cAAc;CACf;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;EACf,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;EACtB,qBAAqB;EACrB,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;EAChB,oBAAoB;CACrB;AACD;EACE,OAAO;EACP,SAAS;EACT,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;CACjB;AACD;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;CACd;AACD;EACE,2BAA2B;EAC3B,oBAAoB;EACpB,aAAa;CACd;AACD;EACE,oBAAoB;EACpB,eAAe;EACf,kBAAkB;CACnB;AACD;EACE,6BAA6B;EAC7B,cAAc;CACf;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;EACpB,6BAA6B;EAC7B,YAAY;CACb;AACD;;EAEE,oBAAoB;EACpB,eAAe;CAChB;AACD;EACE,+BAA+B;EAC/B,0BAA0B;EAC1B,aAAa;EACb,qBAAqB;CACtB;AACD;EACE,oBAAoB;EACpB,eAAe;CAChB;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;CACrB;AACD;EACE,oBAAoB;CACrB;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;EACpB,6BAA6B;EAC7B,YAAY;CACb;AACD;;EAEE,2BAA2B;CAC5B;AACD;;EAEE,WAAW;CACZ;AACD;EACE,mBAAmB;EACnB,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;CACrB;AACD;EACE,kBAAkB;CACnB;AACD;EACE,YAAY;EACZ,UAAU;CACX;AACD;EACE,0BAA0B;CAC3B;AACD;EACE,kBAAkB;CACnB;AACD;EACE,YAAY;EACZ,QAAQ;CACT;AACD;EACE,YAAY;EACZ,WAAW;CACZ;AACD;EACE,YAAY;EACZ,UAAU;CACX;AACD;AACA;IACI,qBAAqB;CACxB;AACD;IACI,yBAAyB;CAC5B;CACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjZD;EACE,sBAAsB;EACtB,kBAAkB;EAClB,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;EACpB,gBAAgB;CACjB;AACD;IACI,oBAAoB;CACvB;AACD;IACI,oBAAoB;CACvB;AACD;EACE,aAAa;EACb,gBAAgB;EAChB,iBAAiB;CAClB;;ACnBD;EACE,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,WAAW;CACZ;AACD;IACI,YAAY;IACZ,eAAe;IACf,mBAAmB;IACnB,WAAW;IACX,aAAa;IACb,iBAAiB;IACjB,UAAU;IACV,WAAW;CACd;AACD;IACI,yBAAyB;CAC5B;AACD;IACI,0BAA0B;CAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBD;EACE,iBAAiB;EACjB,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;CACxB;AACD;EACE,sBAAsB;EACtB,uBAAuB;EACvB,mBAAmB;CACpB;AACD;EACE,qBAAqB;CACtB;AACD;EACE,sBAAsB;EACtB,eAAe;CAChB;;ACjBD;EACE,2BAA2B;CAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFD;EACE,uBAAuB;EACvB,aAAa;CACd;AACD;EACE,uBAAuB;EACvB,sBAAsB;EACtB,iBAAiB;EACjB,YAAY;CACb","file":"static/css/app.4024356b3bf3fd5b732150cb70dfadbb.css","sourcesContent":["\nfieldset[disabled] .multiselect {\n pointer-events: none;\n}\n.multiselect__spinner {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 48px;\n height: 35px;\n background: #fff;\n display: block;\n}\n.multiselect__spinner:before,\n.multiselect__spinner:after {\n position: absolute;\n content: \"\";\n top: 50%;\n left: 50%;\n margin: -8px 0 0 -8px;\n width: 16px;\n height: 16px;\n border-radius: 100%;\n border-color: #41b883 transparent transparent;\n border-style: solid;\n border-width: 2px;\n box-shadow: 0 0 0 1px transparent;\n}\n.multiselect__spinner:before {\n animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);\n animation-iteration-count: infinite;\n}\n.multiselect__spinner:after {\n animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);\n animation-iteration-count: infinite;\n}\n.multiselect__loading-enter-active,\n.multiselect__loading-leave-active {\n transition: opacity 0.4s ease-in-out;\n opacity: 1;\n}\n.multiselect__loading-enter,\n.multiselect__loading-leave-active {\n opacity: 0;\n}\n.multiselect,\n.multiselect__input,\n.multiselect__single {\n font-family: inherit;\n font-size: 16px;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n}\n.multiselect {\n box-sizing: content-box;\n display: block;\n position: relative;\n width: 100%;\n min-height: 40px;\n text-align: left;\n color: #35495e;\n}\n.multiselect * {\n box-sizing: border-box;\n}\n.multiselect:focus {\n outline: none;\n}\n.multiselect--disabled {\n background: #ededed;\n pointer-events: none;\n opacity: 0.6;\n}\n.multiselect--active {\n z-index: 50;\n}\n.multiselect--active:not(.multiselect--above) .multiselect__current,\n.multiselect--active:not(.multiselect--above) .multiselect__input,\n.multiselect--active:not(.multiselect--above) .multiselect__tags {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.multiselect--active .multiselect__select {\n transform: rotateZ(180deg);\n}\n.multiselect--above.multiselect--active .multiselect__current,\n.multiselect--above.multiselect--active .multiselect__input,\n.multiselect--above.multiselect--active .multiselect__tags {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.multiselect__input,\n.multiselect__single {\n position: relative;\n display: inline-block;\n min-height: 20px;\n line-height: 20px;\n border: none;\n border-radius: 5px;\n background: #fff;\n padding: 0 0 0 5px;\n width: calc(100%);\n transition: border 0.1s ease;\n box-sizing: border-box;\n margin-bottom: 8px;\n vertical-align: top;\n}\n.multiselect__input:-ms-input-placeholder {\n color: #35495e;\n}\n.multiselect__input::placeholder {\n color: #35495e;\n}\n.multiselect__tag ~ .multiselect__input,\n.multiselect__tag ~ .multiselect__single {\n width: auto;\n}\n.multiselect__input:hover,\n.multiselect__single:hover {\n border-color: #cfcfcf;\n}\n.multiselect__input:focus,\n.multiselect__single:focus {\n border-color: #a8a8a8;\n outline: none;\n}\n.multiselect__single {\n padding-left: 5px;\n margin-bottom: 8px;\n}\n.multiselect__tags-wrap {\n display: inline;\n}\n.multiselect__tags {\n min-height: 40px;\n display: block;\n padding: 8px 40px 0 8px;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n background: #fff;\n font-size: 14px;\n}\n.multiselect__tag {\n position: relative;\n display: inline-block;\n padding: 4px 26px 4px 10px;\n border-radius: 5px;\n margin-right: 10px;\n color: #fff;\n line-height: 1;\n background: #41b883;\n margin-bottom: 5px;\n white-space: nowrap;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n}\n.multiselect__tag-icon {\n cursor: pointer;\n margin-left: 7px;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n font-weight: 700;\n font-style: initial;\n width: 22px;\n text-align: center;\n line-height: 22px;\n transition: all 0.2s ease;\n border-radius: 5px;\n}\n.multiselect__tag-icon:after {\n content: \"×\";\n color: #266d4d;\n font-size: 14px;\n}\n.multiselect__tag-icon:focus,\n.multiselect__tag-icon:hover {\n background: #369a6e;\n}\n.multiselect__tag-icon:focus:after,\n.multiselect__tag-icon:hover:after {\n color: white;\n}\n.multiselect__current {\n line-height: 16px;\n min-height: 40px;\n box-sizing: border-box;\n display: block;\n overflow: hidden;\n padding: 8px 12px 0;\n padding-right: 30px;\n white-space: nowrap;\n margin: 0;\n text-decoration: none;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n cursor: pointer;\n}\n.multiselect__select {\n line-height: 16px;\n display: block;\n position: absolute;\n box-sizing: border-box;\n width: 40px;\n height: 38px;\n right: 1px;\n top: 1px;\n padding: 4px 8px;\n margin: 0;\n text-decoration: none;\n text-align: center;\n cursor: pointer;\n transition: transform 0.2s ease;\n}\n.multiselect__select:before {\n position: relative;\n right: 0;\n top: 65%;\n color: #999;\n margin-top: 4px;\n border-style: solid;\n border-width: 5px 5px 0 5px;\n border-color: #999999 transparent transparent transparent;\n content: \"\";\n}\n.multiselect__placeholder {\n color: #adadad;\n display: inline-block;\n margin-bottom: 10px;\n padding-top: 2px;\n}\n.multiselect--active .multiselect__placeholder {\n display: none;\n}\n.multiselect__content-wrapper {\n position: absolute;\n display: block;\n background: #fff;\n width: 100%;\n max-height: 240px;\n overflow: auto;\n border: 1px solid #e8e8e8;\n border-top: none;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n z-index: 50;\n -webkit-overflow-scrolling: touch;\n}\n.multiselect__content {\n list-style: none;\n display: inline-block;\n padding: 0;\n margin: 0;\n min-width: 100%;\n vertical-align: top;\n}\n.multiselect--above .multiselect__content-wrapper {\n bottom: 100%;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n border-bottom: none;\n border-top: 1px solid #e8e8e8;\n}\n.multiselect__content::webkit-scrollbar {\n display: none;\n}\n.multiselect__element {\n display: block;\n}\n.multiselect__option {\n display: block;\n padding: 12px;\n min-height: 40px;\n line-height: 16px;\n text-decoration: none;\n text-transform: none;\n vertical-align: middle;\n position: relative;\n cursor: pointer;\n white-space: nowrap;\n}\n.multiselect__option:after {\n top: 0;\n right: 0;\n position: absolute;\n line-height: 40px;\n padding-right: 12px;\n padding-left: 20px;\n font-size: 13px;\n}\n.multiselect__option--highlight {\n background: #41b883;\n outline: none;\n color: white;\n}\n.multiselect__option--highlight:after {\n content: attr(data-select);\n background: #41b883;\n color: white;\n}\n.multiselect__option--selected {\n background: #f3f3f3;\n color: #35495e;\n font-weight: bold;\n}\n.multiselect__option--selected:after {\n content: attr(data-selected);\n color: silver;\n}\n.multiselect__option--selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n.multiselect__option--selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n.multiselect--disabled .multiselect__current,\n.multiselect--disabled .multiselect__select {\n background: #ededed;\n color: #a6a6a6;\n}\n.multiselect__option--disabled {\n background: #ededed !important;\n color: #a6a6a6 !important;\n cursor: text;\n pointer-events: none;\n}\n.multiselect__option--group {\n background: #ededed;\n color: #35495e;\n}\n.multiselect__option--group.multiselect__option--highlight {\n background: #35495e;\n color: #fff;\n}\n.multiselect__option--group.multiselect__option--highlight:after {\n background: #35495e;\n}\n.multiselect__option--disabled.multiselect__option--highlight {\n background: #dedede;\n}\n.multiselect__option--group-selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n.multiselect__option--group-selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n.multiselect-enter-active,\n.multiselect-leave-active {\n transition: all 0.15s ease;\n}\n.multiselect-enter,\n.multiselect-leave-active {\n opacity: 0;\n}\n.multiselect__strong {\n margin-bottom: 8px;\n line-height: 20px;\n display: inline-block;\n vertical-align: top;\n}\n*[dir=\"rtl\"] .multiselect {\n text-align: right;\n}\n*[dir=\"rtl\"] .multiselect__select {\n right: auto;\n left: 1px;\n}\n*[dir=\"rtl\"] .multiselect__tags {\n padding: 8px 8px 0px 40px;\n}\n*[dir=\"rtl\"] .multiselect__content {\n text-align: right;\n}\n*[dir=\"rtl\"] .multiselect__option:after {\n right: auto;\n left: 0;\n}\n*[dir=\"rtl\"] .multiselect__clear {\n right: auto;\n left: 12px;\n}\n*[dir=\"rtl\"] .multiselect__spinner {\n right: auto;\n left: 1px;\n}\n@keyframes spinning {\nfrom {\n transform: rotate(0);\n}\nto {\n transform: rotate(2turn);\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/Multiselect.vue","\n.custom__tag {\n display: inline-block;\n padding: 3px 12px;\n background: #d2d7ff;\n margin-right: 8px;\n margin-bottom: 8px;\n border-radius: 10px;\n cursor: pointer;\n}\n.custom__tag:nth-child(even) {\n background: #daffee;\n}\n.custom__tag:hover {\n background: #eaeaea;\n}\n.custom__remove {\n padding: 0px;\n font-size: 10px;\n margin-left: 5px;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///documentation/partials/examples/MultiSelect.vue","\n.multiselect__clear {\n position: absolute;\n right: 41px;\n height: 40px;\n width: 40px;\n display: block;\n cursor: pointer;\n z-index: 3;\n}\n.multiselect__clear:before, .multiselect__clear:after {\n content: \"\";\n display: block;\n position: absolute;\n width: 3px;\n height: 16px;\n background: #aaa;\n top: 12px;\n right: 4px;\n}\n.multiselect__clear:before {\n transform: rotate(45deg);\n}\n.multiselect__clear:after {\n transform: rotate(-45deg);\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///documentation/partials/examples/AjaxSearch.vue","\n.option__image {\n max-height: 80px;\n margin-right: 10px;\n display: inline-block;\n vertical-align: middle;\n}\n.option__desc {\n display: inline-block;\n vertical-align: middle;\n padding: rem(10px);\n}\n.option__title {\n font-size: rem(24px);\n}\n.option__small {\n margin-top: rem(10px);\n display: block;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///documentation/partials/examples/CustomOption.vue","\n.form__label {\n margin-top: 5px !important;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///documentation/partials/examples/CustomConfig.vue","\n.badge__img {\n vertical-align: middle;\n float: right;\n}\n.badge__name {\n vertical-align: middle;\n display: inline-block;\n margin-left: 5px;\n float: left;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///documentation/MultiselectExample.vue"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/img/vue-logo.e1ea82c.png b/docs/static/img/vue-logo.e1ea82c.png deleted file mode 100644 index 8bbf984157a465f7280d556a754ebce1b5274c0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11460 zcmaKS1yqz<*YFSyC?TN2&_jySE!`bb(nt;sBb^c=2ug#L2qKM0Nh5-YFv!s8kcxDJ zNaugXd++=HU%a1dv3#EAoW0NPniHd=twM5z<_ZJ?AyHFR)Pq2960v`TQ1B(JO#}`8 zqxM!Z_SQ$*d;3{?A|P^hNE-xP&CS{Yp@*=x3-IVcNJ1cZEKUZ--o{#*;*YhT9+0K;VY(wubw=xw?Ca`%5wZ!7C1)v7dRF;eWPxyGSwrMU=6Y4qO50 ziGU092y@%=@e9F4#d!FI`GxNAbHN4p_yu|S1bO)dx%mae`NYKeh2ekyV+N;r+S!Zi zDJuVc7I>3lcJ%gsAkNF{=jX@cC&+{Jbl~L|6BFa*6W|pP;08Omy#n05t^K*(y;%Oi zpos9Y^>ljR?SyoPV=-FWAbq^0m;t4KvEcULUufOE{uUDu7_Yze173a}J}gWBY}C^F zzqh)%{cE?Ew;tl(^!~4iy$k{#Ab9lS*A1UfM zBE6Abj>rda1qC>VmbI;uJNEt79{?>aaW!`@Z)mDSIN_;D2})clyt?i2g@>f5Y1SXIk$3M_67!3@=u*|DUG+`2@@d`}i-r1uy@y ze1tnNcTZr~k)H!>Adp+4YKn3O{uApjgJLbdJ}*9anBH62QAx&tBkzAn!JnFTorpdm zdBxjwL@Fyu;7rA(z)?srRMVU%-Obe&pZW_7hF3HR`>gDSOLJ|6KaNdj4ytALDyp7_ zm5AoCO^-iEtS#+&Mqs1)fXQ0T6a1>JQqv{r{<)Kams;lc4zhnwx@`Tpe~=SoXz%KZ z#(_XIQ;DIt5D1JA0eZ_%bP<-TE=~%c1yU@9=kgtM%UJE!vc+ zg52z_E&=M!s$Zst=MFJK@_nkm>c^j7q9}t8341nPAjw|y8`Rn>6SzBjZ`v?e+t-;T zpUGVKZb%;`yj`|t3A*2NgBPg~4T+MW&Zu@YISEWH;Vr9nj-$Y#mC1Z3?)MRGxEEi3 zA>*ee5yLKWg=oMd(}t4ik!C>)GT^Ac--$z)(ZFn|@fsU$^3}{Y;tn5U13yoEftp^Z zWY3p)%cxM<%4+wu49C4AV-6eokaxP=^RZ1SMtmj6bK7L7F^uBtt!chD0uCS1QnS?E zANa@y*qyfW4;sCkY3Ed_CA$07HY<1U>8BF#2`%Dw1Q5@t|r7k`97FjdIR;511 z^~!cSNvF6AH&bV(dKJDY=o{Cf`Y8{@gzK5Gfn(Vjf!Vl`}88ud)IsI~c@1}#o1gWDP z3Ts1ZYd6E}@1!ret+vze<(=oIZ>`(a6TG4+HRK=1r@-bm?lLz*Oiwqe}1C?h#i93HM)l&3%&Oqo>Jl0%v>pcST?I1_HOZ zme+6CTTYuKpWJ+qBsqF8t;8vD&Y~Vn{Z+9}E+)*?axtS{nD1S8<=&hbhW&7MV_11` zO!=4Zmmkn#rsv7!2B_03H?$gE8pNq{{BDS#r|{dF`I+#@9ReqH&%fnFW}A6`<}7(k z3HzK&TFbra_#=!$`efPh!m{kLI=<^*g`?Lv(lbC9nO{hJ_f;J~imG1s z+?S5n@1Pz?SMzMcr7YaBIyIV5RoYJb#w~qXsKv-u)^?Hq>rgo9Ua7ZVenZl&0Hfv@ zA&Kar^Pi{7ThLssR?^qu&T@(d#RA1eaDBqfeV3qzB%Qw-YYzsel+UA_cqWz0=sR`% zw%Tr0Zf2xUtlRo@$CcqEkyS^vbvD?|CZ?bL_0i6diABzhy1xGYOT_(B28T{ zs8?2(&2Q-xi4Zp%%2+(3DvJq^PFc|poS>$fs}M}_V3Q`MQ=!o-y?^Mf$6M*?HdRNP z{Sak7B!*`{ah63-g7=HP2IIhNMIB9KX8ucJgq%4nDZhA;%k*1_(Qt)}uEU9GtB7)= zxVVaUMOdcgab2^>nqk~sZ5g5!M6By|%DxAgxX4g~&C#oSZ@GVrXJ)jd?wUr)thPK$ zdK=$Q0!;YneWSU7H!jVlG4CF(J8$=dINwC=zUQ+76e7eezCPUl+EDYiNy442Yg?-B z5i{ziFGCjCkuIA<1Yew)((&T`a$M+`i_MGccqB3cWW-Ud1S__=aSC3NOa!j_sQNj;*^TgCy8Ek$0Y~8%H`rT zznj*InIF?zcr}ckzUo^zVAa1g98SafO)kBx0g%Euc}J{Q`fdvY`{8Lf`i zcjYG5u-kZhqNPdF6r{vsm*6cytv?615a_wVGrN*6M|@F#(Xq2rDD%v9pJ}OR38i{Z z#n!@>0lmKK;(mrHg5Dp!;)ECbHcov-+t)6fn0_?~{&WGkmmRe*1Su4dCx z8&=r`PWyI38_*s_6Me@v*PD~tVUDLh)r*_xP*zH(c!XuV`fk4dx#57)Kul6;eAhng zN6?i|>TO-@BeIeMszDLe^+~xB;|q)1+NxHRo+SszJM{E2?)w2KvD26wA{M=uQ|oHa z$Do3hCv|msLQ}HAx0G7nrUy}Tw~T9c)lG@KShBm6w}8Bw8(1@5%(S$v@nsa6IP^l% zUcX4Bvt~xR&8^|5i?jZ)bJL(`;bd1M?b75C+m|2l5lMHo`%G(HR|a1A1WVQD;IZh^ z$1O}<3N{hJpS06@_=cLmeetBmrC^V5UxXu6qMvw1XKQumf!E1)yo8N2SbAE3>+mVaiC%&P4mvqzd(Bm%YxjFzcDE2-> zt8+zUUaVk-y{V&@be&FOaBL|(=Y-NaVH&ON5O8DZE*5_ut&(xi4dw%(gk&3No z=rx41!Yh|0OX1)6SqI!zS;E(Mr*A*hGeppiMi{+RM?VUXnO`+767hvH zYaf5`ei2PXn<=JbbjssbgU|0dyE|I_A+Py!=KFoi6@DFYt55j|=cVm&3&Qh>%1juF z@zuc^Ba4XZb)=KmI3)ufd85zT=1FDpEp(~EKEKNSleYW^?T<#}Gba-1e!CzHl6xHC z@y8M>M`jXl#f-AMCvoLsb7=bG7%I;QR*$oeCphS;hK68nN=0Pl&+B$rp`P|RiS-Gv z>ZCUJvfjQK+EzK@hocQu@5|=uvk;6srpH+vX7q7dak_l(1}c+=dN}gE1!l{SM_>8Q zc8X`2#yXIS;{(G=$Sxa?SW=EBb;V#Fuciu#yqlV)d&CwJ*C|_;fqFA6rBM#^3!rLf z>|hHPuPx9#b-Lr1TnOU4c>PyOH1iY+rTca@Ks52@1C8aLq7+0-tLVU0inOLg_Ej1td1hpK@}i z>g~r1uboL8z0lZ2>hf8IC&5OI@dc+txMLR&mG?S3J%ruNaxfnHboqbe=o0`il7!Rf}GVX__$(u0e>#&=iG zESPIRo_{N6VEFBW>a`=4?UGubyeqej=*Kfd>RfI0G2jQ4?0+Sa<{+RYEgf@k!pS5&20 zzX>h2qt)6Ll|mzEo}^sADZR?P3#lH{S}p~}UDDOj2-wD()V8z9cjx9IMQss!e;PCj zFRMj{wnb~Wup;B9GwEssOXUKx_&4DOs6W=vc;n1Yu1()X>jhAG3gso(rHYZDL?oVBTigE%Ko|# zY026Z%iwA9=D#&&yU*4Y&dn}J5V$o{MC?X3#OU|Sn8vY0YT9R*v*>4jeil5_ZR&Ha zj(GXqP>YMo^U6~KQv=~iFZG8<&x#GdKcki&`#p||841o~vf`XL&gJnOAAhgqtoSbe z&1c#DZr8E7NWxRv6%h(#7f$-+`=DFXiO~53+n_y;6hX7V;%=c?uG7xhGgJ$a-A%8} z@63+FT|jm_Fi$^}`5Hxm^DH{8v^8>zCUU04a%48czw4^U>Og^+*3_TI>?rsZL+5ho z&vKDeLX@;n8hbU<<&Vy7Mb>bVc{L{_d60-FM%&{kQ!<85zALFSv5O)jV5Ac93oSht zIQyY?j$(E|e8+VD2^YS+JtK_*@C=2Z(J!M#YnY+V4=2#5|vUUrK1Lf+-`3 ziH>A7f6RN-nB6F(hiXnUJCddEdeU_T1nO$@Z{;||tfuTW`pr_EMf_wHS?fDXJ9I3B zC_^@7A;WewLz^L+?X>FHOsxhjld{`&WbrAtL7rYwTC)HX?3asyr$~-kGt6VZfqntG z@$rHC(2dGh$#mI>2oI$fy&)+AbxdQk7!G3Aj`HWekBo(RD2OIGLWwNzO0%**1rmy= zQ1fHkcumou7yT*p_Vje;o4-1khFdee1~xWW8Xq)RzTiuQZG(;_+JyFqwy4RK7I`ns zl9iQGh`k*h6r!bm-<9>(>&}%Yg=XqgG(8A&C-R29M+4H7xL{!VW9P(Y)u|p7y22|pg95OcU3@+qpN;va*OYS{`jd}8;X#6xx$17tRRyQYpM*OrV}9z$kC94sowc zB+aSWc$_+zYg&AEs%ckeoTspes$F&f55^l(^LT^k#fs?UmdsPhZqpRIQU~Yhcvg)84YPSotQloLIZAph5F{-wq~zHt{ID zpj|O1ee;IRcje75hUqd1HAOK!w-H=kMgloZ{^OOmR(j3#C71s$$jh+>xfU+9Oq!Jv zCNaMDey}r%qA&55dPC-+XobWQrNzqa&9Rs>W!WyBZVI&PzRP83vV5)QPmjegP-xd2 zrut7Qxr*Wl_=-naEjDTd?2Q=EMz7P=YX34_3{UD2!^j^^j_Fai^teLgtG-n-!Bn4) z-`=3Nt4eCKF6(`%a5UMNXPed%a$A0ENZ3|mLP@nX{7^4NBjc(_R}Hn%?ccTE8+EA# zpGHPn$CT5Twq1TgJnwaFoMl=&l@B_^26|oQobNPL-sRrtcC>bzJ>Nmn43VKKtt^!G z`Ec>NV}3$fDfjO?S!BeAb+~+qya*<2;j2D|LUS~xx!A)MN8|2yaR{bN`YKd?th^Bx z9vrtfOv)4y*YRkDXCzA{x+Lp;tdKO=Vmv!zMD5O__(tb9ZFt3m7b{u^u-vFGKRlIvk4oY0`%>=bY2f|+MqPYhH^3CXU z$-OzlSaE#QqJ35YEBM~bWv7$GkILuGr97e$NJR|MS3_Z_;K?Z+0dWD3397_a^zky_FoL%X2(Ovy?`Sk9ixuW_5hlw=k@|Bq(t@ z1=}u*nfGaUqKxJl%=>N;1kA|7zK<<{Q#~$Hn`JJ=wiI>9O+z|g{``> z0i3lY{4FhYtO@GWiAN$+iFX&DlH{HS-^j)ipqQjjUTDK2oI<3w*4YWCVK1s*T2TQY zwu#K`4GR~dJL5YO2CnjVDP_i4_R^Wq{{FS!W8uUw)ps>yUw%Xts2-Woe$eC|ORPp< zk-aq#=OUUNea|_KB3PYMs?+OhM@xnD<3cH@cRjWwaVJ#o z_x{jcBA=HlQ7*fYF(h^j1FY!w%16;DIm(yE{wZnTH{v{}e8?V=${69`#bn1gu9$tX zGL@RIF*IsSoYWi0DzxBhdQF}YFf^bG4(=6jT7M9GeK%8Eae>;wISB;B8G2k|R!S2T zvS2crqAM)h!n^RztO1TkvG7$7q||TyhKq3i^vcT(4~SN+N50l>(KD6r zPcbp_J3Mf~lt{CWj4NGCGz=I*vZh_JcaTm8ti(vm_sA>df{vqAxz!NNPX~nCWhqoz zYRT=Ybl*$;TtEs+Zrx^O35mynCZo9K-9Xb6RF#7rmL{9U+^yt3(E`S2^(@ymESxp1 zZde;0;gMu9mWJAC2-FI6vr=BVj&SBr>~vttRreEBhh--F6~0J55V^aMRRlzY?|0I4 z38p$5U_KE91RMHEDBVq?-%KiyJ5bANQA(y5f~TfLDZn+Ym&%vi+c^Ase(IZ96D2q@ zZ+hTXyR4oqwrC(?1C{OytI?t1X|CQI%qtA8y>E|s;3c4Kq1OvYf~1d8-*>WNe)U@n zyaZ93e|d?_3SNqqCsjS*Q-@K_WL`4Lru{J)xHq*&gDn?G0k5W;DZU^k%`Y`HX%fHL zTM?sL^a5iI(vv1Um}=R(LK|i3B(g|@WNvdOrRK`W{X|hZvwy8lpPK940{cF;eeT& zIl#*vZO9`TPb_k!;mfRr^Y=OV-LXJYPzdA)-h|>Vaw)D!Rw@Ap^r|R~SwM1j=b(RA zfHGhJr(L!kW$3hpO_L=07Ms~!>1|(aSF1n9cAZiJ>B7w^Ul)p}zj_>3?b`MHOI+Jq zqlD6KsGtVxep3uSUN}t#iebeU1UVFM=KK{Z;mwtXKrSivjPVs)20pS9a?S!0fZ8UY z$SaN`^bNwfSCD+FKPM@0gfZ(%=g{)&4luklkH?AOUa5<2_uzhQ- z0*LZeR?WS&-?pryjwb?%`SPnD$^bvq$^9>xfAt`|`NO_(47PL_?!E)oZ{{TJLj}OF z`{lalJC_Tbh7Uy_L^1+Cb&G(-Zjkr`K;lo`t+ivyjCE;x=XxtUHc?L6ZGNf7JQg573P9En67CCr>HB zF)fhF2ONuP0=f3~lpBPd!JmKDl4IV(r!_dNvmxmX&8J7#+Rh9wlrJdJ?^&x)n1MLR z!e3_BTHEp2Q#ABtjcKBe+i*BP#S7HI2o>3h0xX-gIILL&9c+N!vGW~}YF&5uiNNCH zpaN`;Hw_e-q&S69oY8{-Fq@HZ52#(<1f}-RAcyL--eAGcG~oL^!f(gMmx%G1yRHrI zgUamGN8iG|YrIXjLT2O#j^IgfEG`t694)V0=%R9Y%@rhJum0n?F9X;Sxi4dWShy_s zZS&rW@2kfi^5#>sSJH#edc%*A$AWzCK6SGLK0IpeQMW*Z9Ca{TxPXr&UhsgzfG^u~ zwECkgT*L(RWLPR1YcE$Sy!*CtQwlHMUO?>`cKI*E2sU2b<6>)QC+;alW*XJvY&k{RbAG*deTdCRq+T=N#sfnc+#0MF@ zk%Ss03;&>VPMMY5c{GMcj6eHy9kSPJW~PfvgEnLg0&Jk0G-whM!jwIRyXmapiD6vx zC385wgLgK6@e{xZSs!;7{33KK5#2g52H+H_k;Gz84`t6*wyUAH!Y2LoyJn{?OmPpo zIdFVtl=u^5l%N7+s@tTxG!lv>!gh@S1N}JDX1Y6zx@_F|vMmuGnd%*j;YJOp^JiT~ zeQ^GjnncjN$5H687@lO{665Q2qzr#ogcA0=kWPa~KAhCaeC9grtgYhYlrdQ^T;jRzwv$R-&k zWyXt5iIBF3;NjFH*5M6vt6YZN?0txq{qmEC>+sR%mX>qfW*Pa*B^?a>30o|9iQ(-= zPU#|#h#ycY2giZ}b{k>ma8&PYri0txLCMGhE*@l)b1MbnQqOQ^KS(VFri5FQc(<^H zmTiV}YQq)}M9wlvo((BG$Uu-ZJA{vn5G@}?&zRP+<#fQ06Bgdys5yUQ#WzoJb$r1V z2kgFF4O&-$f;2fsJb+yD4v`pq`V&WzDZ@TLxDgQ+b5cOB95w1OmLLVLH!N}$s5IZ> zND?q zG^Kpa*uf(gGgjT1Ko8i~5>ApD-cXDgs~Sn52JcB$k+nE>(UN!}?PR(;*M5aZ0EqHOZa( zfi;V&AMnyxmXKfeP98{EpW`lo2#`e!h2%{{Q6yQ@E`rR~86!L#n3%V+dsqztXn-@5 zuWTyC6nRxL5`pw(^BLO;DU6J5b%QHv;bRDNzJgB)II;EKyhPaeLJ=^8ZNWZbg@^80ZwCP7@WEj^ET;zo8kdC z&ET3Z$Uk*sF@Hq({c8W8x`%@~2&hff$(oid2ey<3HZV+33H8-LEub~kOIKCbl%oc{gSfG8T9mJmE#O^55= z1P-9sc{90dPPA)4trDv^;G*&343InIo4>NaDx|}9*dITDZ!736&?6)l8)e{ePe?0o z$d3FJxgUKUNURk;ouE4#`<`R*S1}4=2ZuO}TWi=pIrBjc0;evCTCY0LXdq|%(4|~S z0#4A0;}aLY5|mCAg&3n80L3UmG5T(Z-&gxfMFoBf>OlIB%IfTe%5k!e}|b{ z3j$oJ>vKM@aZs`l_Atvk4aLTfHZlkRjBl-hOX!u#mLIxBlmMlU35sduTk-ZV=EMc~ zAQ(l+O?rMdvf`;k3oJ9Qge=1|M8;8Wkg=_U$>YYMQpZ2EYd)*8-H9EiN~vTAZ6=1p%$m zoUn==2pzP&h>p-*s?h^zGsCeaov_T9|}}M-p-4<`+3G77aM7C zq8Y#d3;B4U67%`@ZyKzD=0+~R)LLT>e!6xlhUJ=kp4>_I)crF~s5@44itiFfhJBQ` zN5#*Ya9E+69gh@i{QWR8ss|C#+5NpX3^H~Gz~ z{yzC#g>^QqJG&I2u7FH<7kiCL^Gg!RdF@b5>^n|*qR3#_9PyzoR`8dB-z2&#;E~pS z1b&Z)qe^z5Az{#sk(o~b@g2g-MYNLQj-bCm2$-;0#svUtoyBzJ2q>=?|=X%xot4y3)1zp)YtKAfrN_ zgLp%0c{Evf?gs?P3ORgqvtZ-R&hLlkejvu-9O_XD+_ngMZs~N;hRt5>80_f7H~XiG z#OVNb!yQgj!TC|f(+mBI4?c=mHXhqy=NmJOry~*PKd@T}=W(2-KS+hqK`fuBWJ0nd zK~4^t6-=ft!AkRgxzh*8{GV3^!QubyHsSw$ArSb$zi%M^PhhqAi_3fv?V?LpUOc=u Q0;qtfDQPQK$Xh-7e+`t7*Z=?k diff --git a/docs/static/js/app.b2f1675946bbf7c5b51e.js b/docs/static/js/app.b2f1675946bbf7c5b51e.js deleted file mode 100644 index 74933777..00000000 --- a/docs/static/js/app.b2f1675946bbf7c5b51e.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([1],[,,,function(e,t,n){"use strict";function a(e){n(134)}var i=n(56),o=n(157),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";t.a={props:["langs","current"],methods:{select:function(e){this.$emit("select",e)}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{badges:[{img:"/~https://camo.githubusercontent.com/d0e25b09a82bc4bfde9f1e048a092752eebbb4f3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c6174",name:"License"},{img:"https://img.shields.io/github/stars/shentao/vue-multiselect.svg?label=Stars",name:"GitHub Stars"},{img:"/~https://camo.githubusercontent.com/64f9a2333bb303d34b1587e1436b24dee6a8e134/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f7675652d6d756c746973656c6563742e737667",name:"Npm Monthly Downloads"},{img:"/~https://camo.githubusercontent.com/47ff0923e959e736113988e900268dfc7a601d3b/68747470733a2f2f636972636c6563692e636f6d2f67682f6d6f6e74657261696c2f7675652d6d756c746973656c6563742f747265652f6d61737465722e7376673f7374796c653d736869656c6426636972636c652d746f6b656e3d35633933316666323866643132353837363130663833353437326265636464353134643039636566",name:"Full Test Coverage"},{img:"https://img.shields.io/badge/dependencies-none-brightgreen.svg?style=flat",name:"NO Dependencies"}],value:[]}},methods:{onTagging:function(e){this.source.push({name:e,language:e}),this.value.push({name:e,language:e})}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{actions:["alert","console.log","scrollTop"]}},methods:{dispatchAction:function(e){switch(e){case"alert":window.alert('You just dispatched "alert" action!');break;case"console.log":console.log('You just dispatched "console.log" action!');break;case"scrollTop":window.scrollTo(0,0)}}}}},function(e,t,n){"use strict";var a=n(3),i=n(94);t.a={components:{Multiselect:a.a},data:function(){return{selectedCountries:[],countries:[],isLoading:!1}},methods:{limitText:function(e){return"and ".concat(e," other countries")},asyncFind:function(e){var t=this;this.isLoading=!0,n.i(i.a)(e).then(function(e){t.countries=e,t.isLoading=!1})},clearAll:function(){this.selectedCountries=[]}}}},function(e,t,n){"use strict";var a=n(79),i=(n.n(a),n(3));t.a={components:{Multiselect:i.a},data:function(){return{isDisabled:!1,isTouched:!1,value:[],options:["Select option","Disable me!","Reset me!","mulitple","label","searchable"]}},computed:{isInvalid:function(){return this.isTouched&&0===this.value.length}},methods:{onChange:function(e){this.value=e,-1!==e.indexOf("Reset me!")&&(this.value=[])},onSelect:function(e){"Disable me!"===e&&(this.isDisabled=!0)},onTouch:function(){this.isTouched=!0}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{value:{title:"Explorer",desc:"Discovering new species!",img:"static/posters/creatures.png"},options:[{title:"Space Pirate",desc:"More space battles!",img:"static/posters/fleet.png"},{title:"Merchant",desc:"PROFIT!",img:"static/posters/trading_post.png"},{title:"Explorer",desc:"Discovering new species!",img:"static/posters/creatures.png"},{title:"Miner",desc:"We need to go deeper!",img:"static/posters/resource_lab.png"}]}},methods:{customLabel:function(e){var t=e.title,n=e.desc;return"".concat(t," – ").concat(n)}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{options:[{language:"Javascript",libs:[{name:"Vue.js",category:"Front-end"},{name:"Adonis",category:"Backend"}]},{language:"Ruby",libs:[{name:"Rails",category:"Backend"},{name:"Sinatra",category:"Backend"}]},{language:"Other",libs:[{name:"Laravel",category:"Backend"},{name:"Phoenix",category:"Backend"}]}],value:[]}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{value:[],options:[{name:"Vue.js",language:"JavaScript"},{name:"Adonis",language:"JavaScript"},{name:"Rails",language:"Ruby"},{name:"Sinatra",language:"Ruby"},{name:"Laravel",language:"PHP"},{name:"Phoenix",language:"Elixir"}]}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{value:null,options:[{name:"Vue.js",language:"JavaScript"},{name:"Rails",language:"Ruby"},{name:"Sinatra",language:"Ruby"},{name:"Laravel",language:"PHP",$isDisabled:!0},{name:"Phoenix",language:"Elixir"}]}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{value:"",options:["Select option","options","selected","mulitple","label","searchable","clearOnSelect","hideSelected","maxHeight","allowEmpty","showLabels","onChange","touched"]}}}},function(e,t,n){"use strict";var a=n(80),i=(n.n(a),n(3));t.a={components:{Multiselect:i.a},data:function(){return{value:{name:"Vue.js",language:"JavaScript"},options:[{name:"Vue.js",language:"JavaScript"},{name:"Rails",language:"Ruby"},{name:"Sinatra",language:"Ruby"},{name:"Laravel",language:"PHP"},{name:"Phoenix",language:"Elixir"}]}},methods:{nameWithLang:function(e){var t=e.name,n=e.language;return"".concat(t," — [").concat(n,"]")}}}},function(e,t,n){"use strict";var a=n(3);t.a={components:{Multiselect:a.a},data:function(){return{value:[{name:"Javascript",code:"js"}],options:[{name:"Vue.js",code:"vu"},{name:"Javascript",code:"js"},{name:"Open Source",code:"os"}]}},methods:{addTag:function(e){var t={name:e,code:e.substring(0,2)+Math.floor(1e7*Math.random())};this.options.push(t),this.value.push(t)}}}},function(e,t,n){"use strict";var a=n(38),i=n(41),o=n.n(i),s=n(172),l=n(3),r=s.a.mapActions,c=s.a.mapState;o.a.use(s.a);var u=new s.a.Store({state:{value:"Vuex",options:["Vuex","Vue","Vuelidate","Vue-Multiselect","Vue-Router"]},mutations:{updateValue:function(e,t){e.value=t}},actions:{updateValueAction:function(e,t){(0,e.commit)("updateValue",t)}}});t.a={store:u,components:{Multiselect:l.a},computed:n.i(a.a)({},c(["value","options"])),methods:n.i(a.a)({},r(["updateValueAction"]))}},function(e,t,n){"use strict";var a=n(37),i=(n.n(a),n(95)),o=n(96);t.a={name:"vue-multiselect",mixins:[i.a,o.a],props:{name:{type:String,default:""},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(e){return"and ".concat(e," more")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText:function(){return this.showLabels?this.selectLabel:""},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText:function(){return this.showLabels?this.selectedLabel:""},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}},contentStyle:function(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove:function(){return"above"===this.openDirection||"top"===this.openDirection||"below"!==this.openDirection&&"bottom"!==this.openDirection&&"above"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=n(153),i=n(152),o=n(154),s=n(151),l=n(147),r=n(155),c=n(149),u=n(156),d=n(148),p=n(150),m=n(146);n.d(t,"SingleSelectPrimitive",function(){return a.a}),n.d(t,"SingleSelectObject",function(){return i.a}),n.d(t,"SingleSelectSearch",function(){return o.a}),n.d(t,"MultiSelect",function(){return s.a}),n.d(t,"AjaxSearch",function(){return l.a}),n.d(t,"Tagging",function(){return r.a}),n.d(t,"CustomOption",function(){return c.a}),n.d(t,"VuexActions",function(){return u.a}),n.d(t,"CustomConfig",function(){return d.a}),n.d(t,"Groups",function(){return p.a}),n.d(t,"ActionDispatcher",function(){return m.a})},,,,,,function(e,t){},function(e,t,n){"use strict";var a=n(43),i=n(167),o=n(2),s=o(a.a,i.a,!1,null,null,null);t.a=s.exports},function(e,t,n){"use strict";function a(e){n(139)}var i=n(44),o=n(162),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t){e.exports=[{name:"Afghanistan",code:"AF"},{name:"Åland Islands",code:"AX"},{name:"Albania",code:"AL"},{name:"Algeria",code:"DZ"},{name:"American Samoa",code:"AS"},{name:"AndorrA",code:"AD"},{name:"Angola",code:"AO"},{name:"Anguilla",code:"AI"},{name:"Antarctica",code:"AQ"},{name:"Antigua and Barbuda",code:"AG"},{name:"Argentina",code:"AR"},{name:"Armenia",code:"AM"},{name:"Aruba",code:"AW"},{name:"Australia",code:"AU"},{name:"Austria",code:"AT"},{name:"Azerbaijan",code:"AZ"},{name:"Bahamas",code:"BS"},{name:"Bahrain",code:"BH"},{name:"Bangladesh",code:"BD"},{name:"Barbados",code:"BB"},{name:"Belarus",code:"BY"},{name:"Belgium",code:"BE"},{name:"Belize",code:"BZ"},{name:"Benin",code:"BJ"},{name:"Bermuda",code:"BM"},{name:"Bhutan",code:"BT"},{name:"Bolivia",code:"BO"},{name:"Bosnia and Herzegovina",code:"BA"},{name:"Botswana",code:"BW"},{name:"Bouvet Island",code:"BV"},{name:"Brazil",code:"BR"},{name:"British Indian Ocean Territory",code:"IO"},{name:"Brunei Darussalam",code:"BN"},{name:"Bulgaria",code:"BG"},{name:"Burkina Faso",code:"BF"},{name:"Burundi",code:"BI"},{name:"Cambodia",code:"KH"},{name:"Cameroon",code:"CM"},{name:"Canada",code:"CA"},{name:"Cape Verde",code:"CV"},{name:"Cayman Islands",code:"KY"},{name:"Central African Republic",code:"CF"},{name:"Chad",code:"TD"},{name:"Chile",code:"CL"},{name:"China",code:"CN"},{name:"Christmas Island",code:"CX"},{name:"Cocos (Keeling) Islands",code:"CC"},{name:"Colombia",code:"CO"},{name:"Comoros",code:"KM"},{name:"Congo",code:"CG"},{name:"Congo, The Democratic Republic of the",code:"CD"},{name:"Cook Islands",code:"CK"},{name:"Costa Rica",code:"CR"},{name:'Cote D"Ivoire',code:"CI"},{name:"Croatia",code:"HR"},{name:"Cuba",code:"CU"},{name:"Cyprus",code:"CY"},{name:"Czech Republic",code:"CZ"},{name:"Denmark",code:"DK"},{name:"Djibouti",code:"DJ"},{name:"Dominica",code:"DM"},{name:"Dominican Republic",code:"DO"},{name:"Ecuador",code:"EC"},{name:"Egypt",code:"EG"},{name:"El Salvador",code:"SV"},{name:"Equatorial Guinea",code:"GQ"},{name:"Eritrea",code:"ER"},{name:"Estonia",code:"EE"},{name:"Ethiopia",code:"ET"},{name:"Falkland Islands (Malvinas)",code:"FK"},{name:"Faroe Islands",code:"FO"},{name:"Fiji",code:"FJ"},{name:"Finland",code:"FI"},{name:"France",code:"FR"},{name:"French Guiana",code:"GF"},{name:"French Polynesia",code:"PF"},{name:"French Southern Territories",code:"TF"},{name:"Gabon",code:"GA"},{name:"Gambia",code:"GM"},{name:"Georgia",code:"GE"},{name:"Germany",code:"DE"},{name:"Ghana",code:"GH"},{name:"Gibraltar",code:"GI"},{name:"Greece",code:"GR"},{name:"Greenland",code:"GL"},{name:"Grenada",code:"GD"},{name:"Guadeloupe",code:"GP"},{name:"Guam",code:"GU"},{name:"Guatemala",code:"GT"},{name:"Guernsey",code:"GG"},{name:"Guinea",code:"GN"},{name:"Guinea-Bissau",code:"GW"},{name:"Guyana",code:"GY"},{name:"Haiti",code:"HT"},{name:"Heard Island and Mcdonald Islands",code:"HM"},{name:"Holy See (Vatican City State)",code:"VA"},{name:"Honduras",code:"HN"},{name:"Hong Kong",code:"HK"},{name:"Hungary",code:"HU"},{name:"Iceland",code:"IS"},{name:"India",code:"IN"},{name:"Indonesia",code:"ID"},{name:"Iran, Islamic Republic Of",code:"IR"},{name:"Iraq",code:"IQ"},{name:"Ireland",code:"IE"},{name:"Isle of Man",code:"IM"},{name:"Israel",code:"IL"},{name:"Italy",code:"IT"},{name:"Jamaica",code:"JM"},{name:"Japan",code:"JP"},{name:"Jersey",code:"JE"},{name:"Jordan",code:"JO"},{name:"Kazakhstan",code:"KZ"},{name:"Kenya",code:"KE"},{name:"Kiribati",code:"KI"},{name:'Korea, Democratic People"S Republic of',code:"KP"},{name:"Korea, Republic of",code:"KR"},{name:"Kuwait",code:"KW"},{name:"Kyrgyzstan",code:"KG"},{name:'Lao People"S Democratic Republic',code:"LA"},{name:"Latvia",code:"LV"},{name:"Lebanon",code:"LB"},{name:"Lesotho",code:"LS"},{name:"Liberia",code:"LR"},{name:"Libyan Arab Jamahiriya",code:"LY"},{name:"Liechtenstein",code:"LI"},{name:"Lithuania",code:"LT"},{name:"Luxembourg",code:"LU"},{name:"Macao",code:"MO"},{name:"Macedonia, The Former Yugoslav Republic of",code:"MK"},{name:"Madagascar",code:"MG"},{name:"Malawi",code:"MW"},{name:"Malaysia",code:"MY"},{name:"Maldives",code:"MV"},{name:"Mali",code:"ML"},{name:"Malta",code:"MT"},{name:"Marshall Islands",code:"MH"},{name:"Martinique",code:"MQ"},{name:"Mauritania",code:"MR"},{name:"Mauritius",code:"MU"},{name:"Mayotte",code:"YT"},{name:"Mexico",code:"MX"},{name:"Micronesia, Federated States of",code:"FM"},{name:"Moldova, Republic of",code:"MD"},{name:"Monaco",code:"MC"},{name:"Mongolia",code:"MN"},{name:"Montserrat",code:"MS"},{name:"Morocco",code:"MA"},{name:"Mozambique",code:"MZ"},{name:"Myanmar",code:"MM"},{name:"Namibia",code:"NA"},{name:"Nauru",code:"NR"},{name:"Nepal",code:"NP"},{name:"Netherlands",code:"NL"},{name:"Netherlands Antilles",code:"AN"},{name:"New Caledonia",code:"NC"},{name:"New Zealand",code:"NZ"},{name:"Nicaragua",code:"NI"},{name:"Niger",code:"NE"},{name:"Nigeria",code:"NG"},{name:"Niue",code:"NU"},{name:"Norfolk Island",code:"NF"},{name:"Northern Mariana Islands",code:"MP"},{name:"Norway",code:"NO"},{name:"Oman",code:"OM"},{name:"Pakistan",code:"PK"},{name:"Palau",code:"PW"},{name:"Palestinian Territory, Occupied",code:"PS"},{name:"Panama",code:"PA"},{name:"Papua New Guinea",code:"PG"},{name:"Paraguay",code:"PY"},{name:"Peru",code:"PE"},{name:"Philippines",code:"PH"},{name:"Pitcairn",code:"PN"},{name:"Poland",code:"PL"},{name:"Portugal",code:"PT"},{name:"Puerto Rico",code:"PR"},{name:"Qatar",code:"QA"},{name:"Reunion",code:"RE"},{name:"Romania",code:"RO"},{name:"Russian Federation",code:"RU"},{name:"RWANDA",code:"RW"},{name:"Saint Helena",code:"SH"},{name:"Saint Kitts and Nevis",code:"KN"},{name:"Saint Lucia",code:"LC"},{name:"Saint Pierre and Miquelon",code:"PM"},{name:"Saint Vincent and the Grenadines",code:"VC"},{name:"Samoa",code:"WS"},{name:"San Marino",code:"SM"},{name:"Sao Tome and Principe",code:"ST"},{name:"Saudi Arabia",code:"SA"},{name:"Senegal",code:"SN"},{name:"Serbia and Montenegro",code:"CS"},{name:"Seychelles",code:"SC"},{name:"Sierra Leone",code:"SL"},{name:"Singapore",code:"SG"},{name:"Slovakia",code:"SK"},{name:"Slovenia",code:"SI"},{name:"Solomon Islands",code:"SB"},{name:"Somalia",code:"SO"},{name:"South Africa",code:"ZA"},{name:"South Georgia and the South Sandwich Islands",code:"GS"},{name:"Spain",code:"ES"},{name:"Sri Lanka",code:"LK"},{name:"Sudan",code:"SD"},{name:"Suriname",code:"SR"},{name:"Svalbard and Jan Mayen",code:"SJ"},{name:"Swaziland",code:"SZ"},{name:"Sweden",code:"SE"},{name:"Switzerland",code:"CH"},{name:"Syrian Arab Republic",code:"SY"},{name:"Taiwan, Province of China",code:"TW"},{name:"Tajikistan",code:"TJ"},{name:"Tanzania, United Republic of",code:"TZ"},{name:"Thailand",code:"TH"},{name:"Timor-Leste",code:"TL"},{name:"Togo",code:"TG"},{name:"Tokelau",code:"TK"},{name:"Tonga",code:"TO"},{name:"Trinidad and Tobago",code:"TT"},{name:"Tunisia",code:"TN"},{name:"Turkey",code:"TR"},{name:"Turkmenistan",code:"TM"},{name:"Turks and Caicos Islands",code:"TC"},{name:"Tuvalu",code:"TV"},{name:"Uganda",code:"UG"},{name:"Ukraine",code:"UA"},{name:"United Arab Emirates",code:"AE"},{name:"United Kingdom",code:"GB"},{name:"United States",code:"US"},{name:"United States Minor Outlying Islands",code:"UM"},{name:"Uruguay",code:"UY"},{name:"Uzbekistan",code:"UZ"},{name:"Vanuatu",code:"VU"},{name:"Venezuela",code:"VE"},{name:"Viet Nam",code:"VN"},{name:"Virgin Islands, British",code:"VG"},{name:"Virgin Islands, U.S.",code:"VI"},{name:"Wallis and Futuna",code:"WF"},{name:"Western Sahara",code:"EH"},{name:"Yemen",code:"YE"},{name:"Zambia",code:"ZM"},{name:"Zimbabwe",code:"ZW"}]},,function(e,t,n){"use strict";function a(){b=Array.from(document.querySelectorAll("[data-section]")).map(function(e){return{id:e.id,offset:e.getBoundingClientRect().top+window.pageYOffset-50}})}Object.defineProperty(t,"__esModule",{value:!0});var i=n(38),o=n(85),s=(n.n(o),n(83)),l=(n.n(s),n(40)),r=(n.n(l),n(39)),c=(n.n(r),n(84)),u=(n.n(c),n(86)),d=(n.n(u),n(41)),p=n.n(d),m=n(82),h=n(89),f=n(90),g=n(3),v=n(88);n.n(v);n(87).polyfill();var b,_=", 100%, 85%";new p.a({el:"#app",components:n.i(i.a)({},m,{MultiselectExample:f.a,LangSwitcher:h.a,Multiselect:g.a}),data:function(){return{markupLangs:["pug","html"],markupLanguage:"pug",isNavSticky:!1,firstColor:Math.floor(255*Math.random()),secondColor:Math.floor(255*Math.random()),currentPosition:"",versions:["v1.x","v2.0"],version:"v2.0"}},computed:{gradient:function(){return{background:"linear-gradient(to left bottom, hsl(".concat(this.firstColor+_,") 0%, hsl(").concat(this.secondColor+_,") 100%)")}}},methods:{pickVersion:function(e){switch(e){case"v1.x":window.location.assign("v1/index.html");break;case"v2.0":window.location.assign("https://vue-multiselect.js.org/")}},selectLanguage:function(e){this.markupLanguage=e},adjustNav:function(){this.isNavSticky=window.scrollY>window.innerHeight,b||a();for(var e=b.length-1;e>=0;e--)if(window.scrollY>b[e].offset){this.currentPosition=b[e].id;break}},onTagging:function(e){this.source.push({name:e,language:e}),this.value.push({name:e,language:e})}},mounted:function(){this.adjustNav(),window.addEventListener("scroll",this.adjustNav),setTimeout(function(){a()},1e3)}})},function(e,t,n){"use strict";function a(e){return new Promise(function(t,n){setTimeout(function(){var n=c.a.filter(function(t,n,a){return t.name.toLowerCase().includes(e.toLowerCase())});t(n)},1e3)})}t.a=a;var i=n(80),o=(n.n(i),n(132)),s=(n.n(o),n(130)),l=(n.n(s),n(77)),r=(n.n(l),n(91)),c=n.n(r)},function(e,t,n){"use strict";function a(e){return 0!==e&&(!(!Array.isArray(e)||0!==e.length)||!e)}function i(e){return function(){return!e.apply(void 0,arguments)}}function o(e,t){return void 0===e&&(e="undefined"),null===e&&(e="null"),!1===e&&(e="false"),-1!==e.toString().toLowerCase().indexOf(t.trim())}function s(e,t,n,a){return e.filter(function(e){return o(a(e,n),t)})}function l(e){return e.filter(function(e){return!e.$isLabel})}function r(e,t){return function(n){return n.reduce(function(n,a){return a[e]&&a[e].length?(n.push({$groupLabel:a[t],$isLabel:!0}),n.concat(a[e])):n},[])}}function c(e,t,a,i,o){return function(l){return l.map(function(l){var r;if(!l[a])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var c=s(l[a],e,t,o);return c.length?(r={},n.i(h.a)(r,i,l[i]),n.i(h.a)(r,a,c),r):[]})}}var u=n(92),d=n(78),p=(n.n(d),n(128)),m=(n.n(p),n(37)),h=(n.n(m),n(42)),f=n(40),g=(n.n(f),n(133)),v=(n.n(g),n(125)),b=(n.n(v),n(77)),_=(n.n(b),n(131)),y=(n.n(_),n(79)),S=(n.n(y),n(129)),C=(n.n(S),n(126)),w=(n.n(C),n(124)),k=(n.n(w),function(){for(var e=arguments.length,t=new Array(e),n=0;n-1},isSelected:function(e){var t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled:function(e){return!!e.$isDisabled},getOptionLabel:function(e){if(a(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;var t=this.customLabel(e,this.label);return a(t)?"":t},select:function(e,t){if(e.$isLabel&&this.groupSelect)return void this.selectGroup(e);if(!(-1!==this.blockKeys.indexOf(t)||this.disabled||e.$isDisabled||e.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&("Tab"!==t||this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e))return void("Tab"!==t&&this.removeElement(e));this.$emit("select",e,this.id),this.multiple?this.$emit("input",this.internalValue.concat([e]),this.id):this.$emit("input",e,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(e){var t=this,n=this.options.find(function(n){return n[t.groupLabel]===e.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit("remove",n[this.groupValues],this.id);var a=this.internalValue.filter(function(e){return-1===n[t.groupValues].indexOf(e)});this.$emit("input",a,this.id)}else{var o=n[this.groupValues].filter(i(this.isOptionDisabled||this.isSelected));this.$emit("select",o,this.id),this.$emit("input",this.internalValue.concat(o),this.id)}},wholeGroupSelected:function(e){var t=this;return e[this.groupValues].every(function(e){return t.isSelected(e)||t.isOptionDisabled(e)})},wholeGroupDisabled:function(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!e.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var a="object"===n.i(u.a)(e)?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.$emit("remove",e,this.id),this.multiple){var i=this.internalValue.slice(0,a).concat(this.internalValue.slice(a+1));this.$emit("input",i,this.id)}else this.$emit("input",null,this.id);this.closeOnSelect&&t&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf("Delete")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var e=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.$nextTick(function(){return e.$refs.search.focus()})):this.$el.focus(),this.$emit("open",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if("undefined"!=typeof window){var e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||"below"===this.openDirection||"bottom"===this.openDirection?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))}}}}},function(e,t,n){"use strict";var a=n(78),i=(n.n(a),n(37));n.n(i);t.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight:function(e,t){var n=this;if(!this.groupSelect)return["multiselect__option--group","multiselect__option--disabled"];var a=this.options.find(function(e){return e[n.groupLabel]===t.$groupLabel});return a&&!this.wholeGroupDisabled(a)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(a)}]:"multiselect__option--disabled"},addPointerElement:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Enter",t=e.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],t),this.pointerReset()},pointerForward:function(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(e){this.pointer=e,this.pointerDirty=!0}}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},,,function(e,t,n){"use strict";var a=n(45),i=n(165),o=n(2),s=o(a.a,i.a,!1,null,null,null);t.a=s.exports},function(e,t,n){"use strict";function a(e){n(140)}var i=n(46),o=n(164),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(135)}var i=n(47),o=n(158),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(138)}var i=n(48),o=n(161),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(141)}var i=n(49),o=n(166),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(143)}var i=n(50),o=n(170),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(137)}var i=n(51),o=n(160),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";var a=n(52),i=n(169),o=n(2),s=o(a.a,i.a,!1,null,null,null);t.a=s.exports},function(e,t,n){"use strict";function a(e){n(142)}var i=n(53),o=n(168),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(136)}var i=n(54),o=n(159),s=n(2),l=a,r=s(i.a,o.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";var a=n(55),i=n(163),o=n(2),s=o(a.a,i.a,!1,null,null,null);t.a=s.exports},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"multiselect",class:{"multiselect--active":e.isOpen,"multiselect--disabled":e.disabled,"multiselect--above":e.isAbove},attrs:{tabindex:e.searchable?-1:e.tabindex},on:{focus:function(t){e.activate()},blur:function(t){!e.searchable&&e.deactivate()},keydown:[function(t){return"button"in t||!e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?t.target!==t.currentTarget?null:(t.preventDefault(),void e.pointerForward()):null},function(t){return"button"in t||!e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?t.target!==t.currentTarget?null:(t.preventDefault(),void e.pointerBackward()):null}],keypress:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")||!e._k(t.keyCode,"tab",9,t.key,"Tab")?(t.stopPropagation(),t.target!==t.currentTarget?null:void e.addPointerElement(t)):null},keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,"Escape"))return null;e.deactivate()}}},[e._t("caret",[n("div",{staticClass:"multiselect__select",on:{mousedown:function(t){t.preventDefault(),t.stopPropagation(),e.toggle()}}})],{toggle:e.toggle}),e._v(" "),e._t("clear",null,{search:e.search}),e._v(" "),n("div",{ref:"tags",staticClass:"multiselect__tags"},[e._t("selection",[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visibleValues.length>0,expression:"visibleValues.length > 0"}],staticClass:"multiselect__tags-wrap"},[e._l(e.visibleValues,function(t,a){return[e._t("tag",[n("span",{key:a,staticClass:"multiselect__tag"},[n("span",{domProps:{textContent:e._s(e.getOptionLabel(t))}}),e._v(" "),n("i",{staticClass:"multiselect__tag-icon",attrs:{"aria-hidden":"true",tabindex:"1"},on:{keypress:function(n){if(!("button"in n)&&e._k(n.keyCode,"enter",13,n.key,"Enter"))return null;n.preventDefault(),e.removeElement(t)},mousedown:function(n){n.preventDefault(),e.removeElement(t)}}})])],{option:t,search:e.search,remove:e.removeElement})]})],2),e._v(" "),e.internalValue&&e.internalValue.length>e.limit?[e._t("limit",[n("strong",{staticClass:"multiselect__strong",domProps:{textContent:e._s(e.limitText(e.internalValue.length-e.limit))}})])]:e._e()],{search:e.search,remove:e.removeElement,values:e.visibleValues,isOpen:e.isOpen}),e._v(" "),n("transition",{attrs:{name:"multiselect__loading"}},[e._t("loading",[n("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"multiselect__spinner"})])],2),e._v(" "),e.searchable?n("input",{ref:"search",staticClass:"multiselect__input",style:e.inputStyle,attrs:{name:e.name,id:e.id,type:"text",autocomplete:"off",placeholder:e.placeholder,disabled:e.disabled,tabindex:e.tabindex},domProps:{value:e.search},on:{input:function(t){e.updateSearch(t.target.value)},focus:function(t){t.preventDefault(),e.activate()},blur:function(t){t.preventDefault(),e.deactivate()},keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,"Escape"))return null;e.deactivate()},keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.pointerForward()},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.pointerBackward()},function(t){if(!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete"]))return null;t.stopPropagation(),e.removeLastElement()}],keypress:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?(t.preventDefault(),t.stopPropagation(),t.target!==t.currentTarget?null:void e.addPointerElement(t)):null}}}):e._e(),e._v(" "),e.isSingleLabelVisible?n("span",{staticClass:"multiselect__single",on:{mousedown:function(t){return t.preventDefault(),e.toggle(t)}}},[e._t("singleLabel",[[e._v(e._s(e.currentOptionLabel))]],{option:e.singleValue})],2):e._e(),e._v(" "),e.isPlaceholderVisible?n("span",{staticClass:"multiselect__placeholder",on:{mousedown:function(t){return t.preventDefault(),e.toggle(t)}}},[e._t("placeholder",[e._v("\n "+e._s(e.placeholder)+"\n ")])],2):e._e()],2),e._v(" "),n("transition",{attrs:{name:"multiselect"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isOpen,expression:"isOpen"}],ref:"list",staticClass:"multiselect__content-wrapper",style:{maxHeight:e.optimizedHeight+"px"},attrs:{tabindex:"-1"},on:{focus:e.activate,mousedown:function(e){e.preventDefault()}}},[n("ul",{staticClass:"multiselect__content",style:e.contentStyle},[e._t("beforeList"),e._v(" "),e.multiple&&e.max===e.internalValue.length?n("li",[n("span",{staticClass:"multiselect__option"},[e._t("maxElements",[e._v("Maximum of "+e._s(e.max)+" options selected. First remove a selected option to select another.")])],2)]):e._e(),e._v(" "),!e.max||e.internalValue.length