{"version":3,"sources":["webpack://VueSelect/webpack/universalModuleDefinition","webpack://VueSelect/webpack/bootstrap","webpack://VueSelect/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://VueSelect/./node_modules/@babel/runtime/helpers/typeof.js","webpack://VueSelect/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://VueSelect/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://VueSelect/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://VueSelect/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://VueSelect/./src/components/Select.vue?a361","webpack://VueSelect/./src/components/Select.vue?f963","webpack://VueSelect/./src/mixins/pointerScroll.js","webpack://VueSelect/./src/mixins/typeAheadPointer.js","webpack://VueSelect/./src/mixins/ajax.js","webpack://VueSelect/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueSelect/./src/components/Deselect.vue","webpack://VueSelect/./src/components/childComponents.js","webpack://VueSelect/./src/components/Deselect.vue?0384","webpack://VueSelect/./src/components/OpenIndicator.vue","webpack://VueSelect/./src/components/OpenIndicator.vue?2e4e","webpack://VueSelect/./src/directives/appendToBody.js","webpack://VueSelect/./src/utility/sortAndStringify.js","webpack://VueSelect/./src/utility/uniqueId.js","webpack://VueSelect/src/components/Select.vue","webpack://VueSelect/./src/components/Select.vue?47de","webpack://VueSelect/./src/components/Select.vue","webpack://VueSelect/./src/mixins/index.js","webpack://VueSelect/./src/index.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","arrayWithoutHoles","iterableToArray","nonIterableSpread","arr","_typeof","obj","iterator","constructor","configurable","writable","Array","isArray","arr2","length","iter","toString","from","TypeError","props","autoscroll","type","Boolean","default","watch","typeAheadPointer","maybeAdjustScroll","methods","optionEl","$refs","dropdownMenu","children","bounds","getDropdownViewport","getBoundingClientRect","top","bottom","height","scrollTop","offsetTop","data","filteredOptions","selectable","typeAheadUp","typeAheadDown","typeAheadSelect","typeAheadOption","select","loading","mutableLoading","search","$emit","toggleLoading","val","toggle","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","Deselect","_h","$createElement","_c","_self","attrs","OpenIndicator","inserted","el","bindings","appendToBody","left","width","scrollX","window","pageXOffset","scrollY","pageYOffset","unbindPosition","calculatePosition","document","body","appendChild","unbind","parentNode","removeChild","sortAndStringify","sortable","ordered","keys","sort","forEach","JSON","stringify","idCount","uniqueId","_vm","staticClass","class","stateClasses","dir","_t","scope","header","_v","ref","uid","dropdownOpen","on","$event","toggleDropdown","_l","option","getOptionKey","_s","getOptionLabel","normalizeOptionForSlot","refInFor","disabled","deselect","childComponents","tag","_e","multiple","_g","_b","attributes","events","directives","rawName","expression","clearSelection","noDrop","openIndicator","spinner","transition","preventDefault","onMousedown","onMouseUp","listHeader","index","isOptionSelected","stopPropagation","noOptions","listFooter","staticStyle","footer","ajax","pointer","pointerScroll","VueSelect"],"mappings":"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","file":"vue-select.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueSelect\"] = factory();\n\telse\n\t\troot[\"VueSelect\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    module.exports = _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}\n\nmodule.exports = _typeof;","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}\n\nmodule.exports = _defineProperty;","function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js!../../node_modules/sass-loader/dist/cjs.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"v-select\",class:_vm.stateClasses,attrs:{\"dir\":_vm.dir}},[_vm._t(\"header\",null,null,_vm.scope.header),_vm._v(\" \"),_c('div',{ref:\"toggle\",staticClass:\"vs__dropdown-toggle\",attrs:{\"id\":(\"vs\" + _vm.uid + \"__combobox\"),\"role\":\"combobox\",\"aria-expanded\":_vm.dropdownOpen.toString(),\"aria-owns\":(\"vs\" + _vm.uid + \"__listbox\"),\"aria-label\":\"Search for option\"},on:{\"mousedown\":function($event){return _vm.toggleDropdown($event)}}},[_c('div',{ref:\"selectedOptions\",staticClass:\"vs__selected-options\"},[_vm._l((_vm.selectedValue),function(option){return _vm._t(\"selected-option-container\",[_c('span',{key:_vm.getOptionKey(option),staticClass:\"vs__selected\"},[_vm._t(\"selected-option\",[_vm._v(\"\\n            \"+_vm._s(_vm.getOptionLabel(option))+\"\\n          \")],null,_vm.normalizeOptionForSlot(option)),_vm._v(\" \"),(_vm.multiple)?_c('button',{ref:\"deselectButtons\",refInFor:true,staticClass:\"vs__deselect\",attrs:{\"disabled\":_vm.disabled,\"type\":\"button\",\"title\":(\"Deselect \" + (_vm.getOptionLabel(option))),\"aria-label\":(\"Deselect \" + (_vm.getOptionLabel(option)))},on:{\"click\":function($event){return _vm.deselect(option)}}},[_c(_vm.childComponents.Deselect,{tag:\"component\"})],1):_vm._e()],2)],{\"option\":_vm.normalizeOptionForSlot(option),\"deselect\":_vm.deselect,\"multiple\":_vm.multiple,\"disabled\":_vm.disabled})}),_vm._v(\" \"),_vm._t(\"search\",[_c('input',_vm._g(_vm._b({staticClass:\"vs__search\"},'input',_vm.scope.search.attributes,false),_vm.scope.search.events))],null,_vm.scope.search)],2),_vm._v(\" \"),_c('div',{ref:\"actions\",staticClass:\"vs__actions\"},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showClearButton),expression:\"showClearButton\"}],ref:\"clearButton\",staticClass:\"vs__clear\",attrs:{\"disabled\":_vm.disabled,\"type\":\"button\",\"title\":\"Clear Selected\",\"aria-label\":\"Clear Selected\"},on:{\"click\":_vm.clearSelection}},[_c(_vm.childComponents.Deselect,{tag:\"component\"})],1),_vm._v(\" \"),_vm._t(\"open-indicator\",[(!_vm.noDrop)?_c(_vm.childComponents.OpenIndicator,_vm._b({tag:\"component\"},'component',_vm.scope.openIndicator.attributes,false)):_vm._e()],null,_vm.scope.openIndicator),_vm._v(\" \"),_vm._t(\"spinner\",[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.mutableLoading),expression:\"mutableLoading\"}],staticClass:\"vs__spinner\"},[_vm._v(\"Loading...\")])],null,_vm.scope.spinner)],2)]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":_vm.transition}},[(_vm.dropdownOpen)?_c('ul',{directives:[{name:\"append-to-body\",rawName:\"v-append-to-body\"}],key:(\"vs\" + _vm.uid + \"__listbox\"),ref:\"dropdownMenu\",staticClass:\"vs__dropdown-menu\",attrs:{\"id\":(\"vs\" + _vm.uid + \"__listbox\"),\"role\":\"listbox\",\"tabindex\":\"-1\"},on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onMousedown($event)},\"mouseup\":_vm.onMouseUp}},[_vm._t(\"list-header\",null,null,_vm.scope.listHeader),_vm._v(\" \"),_vm._l((_vm.filteredOptions),function(option,index){return _c('li',{key:_vm.getOptionKey(option),staticClass:\"vs__dropdown-option\",class:{ 'vs__dropdown-option--selected': _vm.isOptionSelected(option), 'vs__dropdown-option--highlight': index === _vm.typeAheadPointer, 'vs__dropdown-option--disabled': !_vm.selectable(option) },attrs:{\"role\":\"option\",\"id\":(\"vs\" + _vm.uid + \"__option-\" + index),\"aria-selected\":index === _vm.typeAheadPointer ? true : null},on:{\"mouseover\":function($event){_vm.selectable(option) ? _vm.typeAheadPointer = index : null},\"mousedown\":function($event){$event.preventDefault();$event.stopPropagation();_vm.selectable(option) ? _vm.select(option) : null}}},[_vm._t(\"option\",[_vm._v(\"\\n          \"+_vm._s(_vm.getOptionLabel(option))+\"\\n        \")],null,_vm.normalizeOptionForSlot(option))],2)}),_vm._v(\" \"),(_vm.filteredOptions.length === 0)?_c('li',{staticClass:\"vs__no-options\"},[_vm._t(\"no-options\",[_vm._v(\"Sorry, no matching options.\")],null,_vm.scope.noOptions)],2):_vm._e(),_vm._v(\" \"),_vm._t(\"list-footer\",null,null,_vm.scope.listFooter)],2):_c('ul',{staticStyle:{\"display\":\"none\",\"visibility\":\"hidden\"},attrs:{\"id\":(\"vs\" + _vm.uid + \"__listbox\"),\"role\":\"listbox\"}})]),_vm._v(\" \"),_vm._t(\"footer\",null,null,_vm.scope.footer)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n  props: {\n    autoscroll: {\n      type: Boolean,\n      default: true\n    }\n  },\n\n  watch: {\n    typeAheadPointer() {\n      if (this.autoscroll) {\n        this.maybeAdjustScroll();\n      }\n    },\n  },\n\n  methods: {\n    /**\n     * Adjust the scroll position of the dropdown list\n     * if the current pointer is outside of the\n     * overflow bounds.\n     * @returns {*}\n     */\n    maybeAdjustScroll() {\n      const optionEl =\n        this.$refs.dropdownMenu?.children[this.typeAheadPointer] || false;\n\n      if (optionEl) {\n        const bounds = this.getDropdownViewport();\n        const { top, bottom, height } = optionEl.getBoundingClientRect();\n\n        if (top < bounds.top) {\n          return (this.$refs.dropdownMenu.scrollTop = optionEl.offsetTop);\n        } else if (bottom > bounds.bottom) {\n          return (this.$refs.dropdownMenu.scrollTop =\n            optionEl.offsetTop - (bounds.height - height));\n        }\n      }\n    },\n\n    /**\n     * The currently viewable portion of the dropdownMenu.\n     * @returns {{top: (string|*|number), bottom: *}}\n     */\n    getDropdownViewport() {\n      return this.$refs.dropdownMenu\n        ? this.$refs.dropdownMenu.getBoundingClientRect()\n        : {\n            height: 0,\n            top: 0,\n            bottom: 0\n          };\n    }\n  }\n};\n","export default {\n  data() {\n    return {\n      typeAheadPointer: -1\n    }\n  },\n\n  watch: {\n    filteredOptions() {\n      for (let i = 0; i < this.filteredOptions.length; i++) {\n        if (this.selectable(this.filteredOptions[i])) {\n          this.typeAheadPointer = i;\n          break;\n        }\n      }\n    }\n  },\n\n  methods: {\n    /**\n     * Move the typeAheadPointer visually up the list by\n     * setting it to the previous selectable option.\n     * @return {void}\n     */\n    typeAheadUp() {\n      for (let i = this.typeAheadPointer - 1; i >= 0; i--) {\n        if (this.selectable(this.filteredOptions[i])) {\n          this.typeAheadPointer = i;\n          break;\n        }\n      }\n    },\n\n    /**\n     * Move the typeAheadPointer visually down the list by\n     * setting it to the next selectable option.\n     * @return {void}\n     */\n    typeAheadDown() {\n      for (let i = this.typeAheadPointer + 1; i < this.filteredOptions.length; i++) {\n        if (this.selectable(this.filteredOptions[i])) {\n          this.typeAheadPointer = i;\n          break;\n        }\n      }\n    },\n\n    /**\n     * Select the option at the current typeAheadPointer position.\n     * Optionally clear the search input on selection.\n     * @return {void}\n     */\n    typeAheadSelect() {\n      const typeAheadOption = this.filteredOptions[this.typeAheadPointer];\n\n      if (typeAheadOption) {\n        this.select(typeAheadOption);\n      }\n    }\n  }\n}\n","export default {\n  props: {\n    /**\n     * Toggles the adding of a 'loading' class to the main\n     * .v-select wrapper. Useful to control UI state when\n     * results are being processed through AJAX.\n     */\n    loading: {\n      type: Boolean,\n      default: false,\n    },\n  },\n\n  data () {\n    return {\n      mutableLoading: false,\n    };\n  },\n\n  watch: {\n    /**\n     * Anytime the search string changes, emit the\n     * 'search' event. The event is passed with two\n     * parameters: the search string, and a function\n     * that accepts a boolean parameter to toggle the\n     * loading state.\n     *\n     * @emits search\n     */\n    search () {\n      this.$emit('search', this.search, this.toggleLoading);\n    },\n\n    /**\n     * Sync the loading prop with the internal\n     * mutable loading value.\n     * @param val\n     */\n    loading (val) {\n      this.mutableLoading = val;\n    },\n  },\n\n  methods: {\n    /**\n     * Toggle this.loading. Optionally pass a boolean\n     * value. If no value is provided, this.loading\n     * will be set to the opposite of it's current value.\n     * @param toggle Boolean\n     * @returns {*}\n     */\n    toggleLoading (toggle = null) {\n      if (toggle == null) {\n        return (this.mutableLoading = !this.mutableLoading);\n      }\n      return (this.mutableLoading = toggle);\n    },\n  },\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","import { render, staticRenderFns } from \"./Deselect.vue?vue&type=template&id=67aade45&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import Deselect from './Deselect';\nimport OpenIndicator from './OpenIndicator';\n\nexport default {\n  Deselect,\n  OpenIndicator\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"10\",\"height\":\"10\"}},[_c('path',{attrs:{\"d\":\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./OpenIndicator.vue?vue&type=template&id=1b64a39d&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"14\",\"height\":\"10\"}},[_c('path',{attrs:{\"d\":\"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n    inserted (el, bindings, {context}) {\n        if (context.appendToBody) {\n            const {height, top, left, width} = context.$refs.toggle.getBoundingClientRect();\n            let scrollX = window.scrollX || window.pageXOffset;\n            let scrollY = window.scrollY || window.pageYOffset;\n            el.unbindPosition = context.calculatePosition(el, context, {\n                width: width + 'px',\n                left: (scrollX + left) + 'px',\n                top: (scrollY + top + height) + 'px',\n            });\n            \n            document.body.appendChild(el);\n        }\n    },\n\n    unbind (el, bindings, {context}) {\n        if (context.appendToBody) {\n            if (el.unbindPosition && typeof el.unbindPosition === 'function') {\n                el.unbindPosition();\n            }\n            if (el.parentNode) {\n                el.parentNode.removeChild(el);\n            }\n        }\n    },\n}\n","/**\n * @param sortable {object}\n * @return {string}\n */\nfunction sortAndStringify(sortable) {\n  const ordered = {};\n\n  Object.keys(sortable).sort().forEach(key => {\n    ordered[key] = sortable[key];\n  });\n\n  return JSON.stringify(ordered);\n}\n\nexport default sortAndStringify;\n","let idCount = 0;\n\n/**\n * Dead simple unique ID implementation.\n * Thanks lodash!\n * @return {number}\n */\nfunction uniqueId() {\n  return ++idCount;\n}\n\nexport default uniqueId;\n","<style lang=\"scss\">\n  @import '../scss/vue-select.scss';\n</style>\n\n<template>\n  <div :dir=\"dir\" class=\"v-select\" :class=\"stateClasses\">\n    <slot name=\"header\" v-bind=\"scope.header\" />\n    <div :id=\"`vs${uid}__combobox`\" ref=\"toggle\" @mousedown=\"toggleDropdown($event)\" class=\"vs__dropdown-toggle\" role=\"combobox\" :aria-expanded=\"dropdownOpen.toString()\" :aria-owns=\"`vs${uid}__listbox`\" aria-label=\"Search for option\">\n\n      <div class=\"vs__selected-options\" ref=\"selectedOptions\">\n        <slot v-for=\"option in selectedValue\"\n              name=\"selected-option-container\"\n              :option=\"normalizeOptionForSlot(option)\"\n              :deselect=\"deselect\"\n              :multiple=\"multiple\"\n              :disabled=\"disabled\">\n          <span :key=\"getOptionKey(option)\" class=\"vs__selected\">\n            <slot name=\"selected-option\" v-bind=\"normalizeOptionForSlot(option)\">\n              {{ getOptionLabel(option) }}\n            </slot>\n            <button v-if=\"multiple\" :disabled=\"disabled\" @click=\"deselect(option)\" type=\"button\" class=\"vs__deselect\" :title=\"`Deselect ${getOptionLabel(option)}`\" :aria-label=\"`Deselect ${getOptionLabel(option)}`\" ref=\"deselectButtons\">\n              <component :is=\"childComponents.Deselect\" />\n            </button>\n          </span>\n        </slot>\n\n        <slot name=\"search\" v-bind=\"scope.search\">\n          <input class=\"vs__search\" v-bind=\"scope.search.attributes\" v-on=\"scope.search.events\">\n        </slot>\n      </div>\n\n      <div class=\"vs__actions\" ref=\"actions\">\n        <button\n          v-show=\"showClearButton\"\n          :disabled=\"disabled\"\n          @click=\"clearSelection\"\n          type=\"button\"\n          class=\"vs__clear\"\n          title=\"Clear Selected\"\n          aria-label=\"Clear Selected\"\n          ref=\"clearButton\"\n        >\n          <component :is=\"childComponents.Deselect\" />\n        </button>\n\n        <slot name=\"open-indicator\" v-bind=\"scope.openIndicator\">\n          <component :is=\"childComponents.OpenIndicator\" v-if=\"!noDrop\" v-bind=\"scope.openIndicator.attributes\"/>\n        </slot>\n\n        <slot name=\"spinner\" v-bind=\"scope.spinner\">\n          <div class=\"vs__spinner\" v-show=\"mutableLoading\">Loading...</div>\n        </slot>\n      </div>\n    </div>\n    <transition :name=\"transition\">\n      <ul ref=\"dropdownMenu\" v-if=\"dropdownOpen\" :id=\"`vs${uid}__listbox`\" :key=\"`vs${uid}__listbox`\" class=\"vs__dropdown-menu\" role=\"listbox\" @mousedown.prevent=\"onMousedown\" @mouseup=\"onMouseUp\" tabindex=\"-1\" v-append-to-body>\n        <slot name=\"list-header\" v-bind=\"scope.listHeader\" />\n        <li\n          role=\"option\"\n          v-for=\"(option, index) in filteredOptions\"\n          :key=\"getOptionKey(option)\"\n          :id=\"`vs${uid}__option-${index}`\"\n          class=\"vs__dropdown-option\"\n          :class=\"{ 'vs__dropdown-option--selected': isOptionSelected(option), 'vs__dropdown-option--highlight': index === typeAheadPointer, 'vs__dropdown-option--disabled': !selectable(option) }\"\n          :aria-selected=\"index === typeAheadPointer ? true : null\"\n          @mouseover=\"selectable(option) ? typeAheadPointer = index : null\"\n          @mousedown.prevent.stop=\"selectable(option) ? select(option) : null\"\n        >\n          <slot name=\"option\" v-bind=\"normalizeOptionForSlot(option)\">\n            {{ getOptionLabel(option) }}\n          </slot>\n        </li>\n        <li v-if=\"filteredOptions.length === 0\" class=\"vs__no-options\">\n          <slot name=\"no-options\" v-bind=\"scope.noOptions\">Sorry, no matching options.</slot>\n        </li>\n        <slot name=\"list-footer\" v-bind=\"scope.listFooter\" />\n      </ul>\n      <ul v-else :id=\"`vs${uid}__listbox`\" role=\"listbox\" style=\"display: none; visibility: hidden;\"></ul>\n    </transition>\n    <slot name=\"footer\" v-bind=\"scope.footer\" />\n  </div>\n</template>\n\n<script type=\"text/babel\">\n  import pointerScroll from '../mixins/pointerScroll'\n  import typeAheadPointer from '../mixins/typeAheadPointer'\n  import ajax from '../mixins/ajax'\n  import childComponents from './childComponents';\n  import appendToBody from '../directives/appendToBody';\n  import sortAndStringify from '../utility/sortAndStringify'\n  import uniqueId from '../utility/uniqueId';\n\n  /**\n   * @name VueSelect\n   */\n  export default {\n    components: {...childComponents},\n\n    mixins: [pointerScroll, typeAheadPointer, ajax],\n\n    directives: {appendToBody},\n\n    props: {\n      /**\n       * Contains the currently selected value. Very similar to a\n       * `value` attribute on an <input>. You can listen for changes\n       * using 'change' event using v-on\n       * @type {Object||String||null}\n       */\n      value: {},\n\n      /**\n       * An object with any custom components that you'd like to overwrite\n       * the default implementation of in your app. The keys in this object\n       * will be merged with the defaults.\n       * @see https://vue-select.org/guide/components.html\n       * @type {Function}\n       */\n      components: {\n        type: Object,\n        default: () => ({}),\n      },\n\n      /**\n       * An array of strings or objects to be used as dropdown choices.\n       * If you are using an array of objects, vue-select will look for\n       * a `label` key (ex. [{label: 'This is Foo', value: 'foo'}]). A\n       * custom label key can be set with the `label` prop.\n       * @type {Array}\n       */\n      options: {\n        type: Array,\n        default() {\n          return []\n        },\n      },\n\n      /**\n       * Disable the entire component.\n       * @type {Boolean}\n       */\n      disabled: {\n        type: Boolean,\n        default: false\n      },\n\n      /**\n       * Can the user clear the selected property.\n       * @type {Boolean}\n       */\n      clearable: {\n        type: Boolean,\n        default: true\n      },\n\n      /**\n       * Enable/disable filtering the options.\n       * @type {Boolean}\n       */\n      searchable: {\n        type: Boolean,\n        default: true\n      },\n\n      /**\n       * Equivalent to the `multiple` attribute on a `<select>` input.\n       * @type {Boolean}\n       */\n      multiple: {\n        type: Boolean,\n        default: false\n      },\n\n      /**\n       * Equivalent to the `placeholder` attribute on an `<input>`.\n       * @type {String}\n       */\n      placeholder: {\n        type: String,\n        default: ''\n      },\n\n      /**\n       * Sets a Vue transition property on the `.vs__dropdown-menu`.\n       * @type {String}\n       */\n      transition: {\n        type: String,\n        default: 'vs__fade'\n      },\n\n      /**\n       * Enables/disables clearing the search text when an option is selected.\n       * @type {Boolean}\n       */\n      clearSearchOnSelect: {\n        type: Boolean,\n        default: true\n      },\n\n      /**\n       * Close a dropdown when an option is chosen. Set to false to keep the dropdown\n       * open (useful when combined with multi-select, for example)\n       * @type {Boolean}\n       */\n      closeOnSelect: {\n        type: Boolean,\n        default: true\n      },\n\n      /**\n       * Tells vue-select what key to use when generating option\n       * labels when each `option` is an object.\n       * @type {String}\n       */\n      label: {\n        type: String,\n        default: 'label'\n      },\n\n      /**\n       * Value of the 'autocomplete' field of the input\n       * element.\n       * @type {String}\n       */\n      autocomplete: {\n        type: String,\n        default: 'off'\n      },\n\n      /**\n       * When working with objects, the reduce\n       * prop allows you to transform a given\n       * object to only the information you\n       * want passed to a v-model binding\n       * or @input event.\n       */\n      reduce: {\n        type: Function,\n        default: option => option,\n      },\n\n      /**\n       * Decides whether an option is selectable or not. Not selectable options\n       * are displayed but disabled and cannot be selected.\n       *\n       * @type {Function}\n       * @since 3.3.0\n       * @param {Object|String} option\n       * @return {Boolean}\n       */\n      selectable: {\n        type: Function,\n        default: option => true,\n      },\n\n      /**\n       * Callback to generate the label text. If {option}\n       * is an object, returns option[this.label] by default.\n       *\n       * Label text is used for filtering comparison and\n       * displaying. If you only need to adjust the\n       * display, you should use the `option` and\n       * `selected-option` slots.\n       *\n       * @type {Function}\n       * @param  {Object || String} option\n       * @return {String}\n       */\n      getOptionLabel: {\n        type: Function,\n        default(option) {\n          if (typeof option === 'object') {\n            if (!option.hasOwnProperty(this.label)) {\n              return console.warn(\n                `[vue-select warn]: Label key \"option.${this.label}\" does not` +\n                ` exist in options object ${JSON.stringify(option)}.\\n` +\n                'https://vue-select.org/api/props.html#getoptionlabel'\n              )\n            }\n            return option[this.label]\n          }\n          return option;\n        }\n      },\n\n      /**\n       * Generate a unique identifier for each option. If `option`\n       * is an object and `option.hasOwnProperty('id')` exists,\n       * `option.id` is used by default, otherwise the option\n       * will be serialized to JSON.\n       *\n       * If you are supplying a lot of options, you should\n       * provide your own keys, as JSON.stringify can be\n       * slow with lots of objects.\n       *\n       * The result of this function *must* be unique.\n       *\n       * @type {Function}\n       * @param  {Object || String} option\n       * @return {String}\n       */\n      getOptionKey: {\n        type: Function,\n        default (option) {\n          if (typeof option !== 'object') {\n            return option;\n          }\n\n          try {\n            return option.hasOwnProperty('id') ? option.id : sortAndStringify(option);\n          } catch (e) {\n            const warning = `[vue-select warn]: Could not stringify this option ` +\n              `to generate unique key. Please provide'getOptionKey' prop ` +\n              `to return a unique key for each option.\\n` +\n              'https://vue-select.org/api/props.html#getoptionkey';\n            return console.warn(warning, option, e);\n          }\n        },\n      },\n\n      /**\n       * Select the current value if selectOnTab is enabled\n       * @deprecated since 3.3\n       */\n      onTab: {\n        type: Function,\n        default: function () {\n          if (this.selectOnTab && !this.isComposing) {\n            this.typeAheadSelect();\n          }\n        },\n      },\n\n      /**\n       * Enable/disable creating options from searchEl.\n       * @type {Boolean}\n       */\n      taggable: {\n        type: Boolean,\n        default: false\n      },\n\n      /**\n       * Set the tabindex for the input field.\n       * @type {Number}\n       */\n      tabindex: {\n        type: Number,\n        default: null\n      },\n\n      /**\n       * When true, newly created tags will be added to\n       * the options list.\n       * @type {Boolean}\n       */\n      pushTags: {\n        type: Boolean,\n        default: false\n      },\n\n      /**\n       * When true, existing options will be filtered\n       * by the search text. Should not be used in conjunction\n       * with taggable.\n       * @type {Boolean}\n       */\n      filterable: {\n        type: Boolean,\n        default: true\n      },\n\n      /**\n       * Callback to determine if the provided option should\n       * match the current search text. Used to determine\n       * if the option should be displayed.\n       * @type   {Function}\n       * @param  {Object || String} option\n       * @param  {String} label\n       * @param  {String} search\n       * @return {Boolean}\n       */\n      filterBy: {\n        type: Function,\n        default(option, label, search) {\n          return (label || '').toLowerCase().indexOf(search.toLowerCase()) > -1\n        }\n      },\n\n      /**\n       * Callback to filter results when search text\n       * is provided. Default implementation loops\n       * each option, and returns the result of\n       * this.filterBy.\n       * @type   {Function}\n       * @param  {Array} list of options\n       * @param  {String} search text\n       * @param  {Object} vSelect instance\n       * @return {Boolean}\n       */\n      filter: {\n        type: Function,\n        default(options, search) {\n          return options.filter((option) => {\n            let label = this.getOptionLabel(option)\n            if (typeof label === 'number') {\n              label = label.toString()\n            }\n            return this.filterBy(option, label, search)\n          });\n        }\n      },\n\n      /**\n       * User defined function for adding Options\n       * @type {Function}\n       */\n      createOption: {\n        type: Function,\n        default (option) {\n          return (typeof this.optionList[0] === 'object') ? {[this.label]: option} : option;\n        },\n      },\n\n      /**\n       * When false, updating the options will not reset the selected value. Accepts\n       * a `boolean` or `function` that returns a `boolean`. If defined as a function,\n       * it will receive the params listed below.\n       *\n       * @since 3.4 - Type changed to {Boolean|Function}\n       *\n       * @type {Boolean|Function}\n       * @param {Array} newOptions\n       * @param {Array} oldOptions\n       * @param {Array} selectedValue\n       */\n      resetOnOptionsChange: {\n        default: false,\n        validator: (value) => ['function', 'boolean'].includes(typeof value)\n      },\n\n      /**\n       * If search text should clear on blur\n       * @return {Boolean} True when single and clearSearchOnSelect\n       */\n      clearSearchOnBlur: {\n        type: Function,\n        default: function ({ clearSearchOnSelect, multiple }) {\n          return clearSearchOnSelect && !multiple\n        }\n      },\n\n      /**\n       * Disable the dropdown entirely.\n       * @type {Boolean}\n       */\n      noDrop: {\n        type: Boolean,\n        default: false\n      },\n\n      /**\n       * Sets the id of the input element.\n       * @type {String}\n       * @default {null}\n       */\n      inputId: {\n        type: String\n      },\n\n      /**\n       * Sets RTL support. Accepts 'ltr', 'rtl', 'auto'.\n       * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir\n       * @type {String}\n       * @default 'auto'\n       */\n      dir: {\n        type: String,\n        default: 'auto'\n      },\n\n      /**\n       * When true, hitting the 'tab' key will select the current select value\n       * @type {Boolean}\n       * @deprecated since 3.3 - use selectOnKeyCodes instead\n       */\n      selectOnTab: {\n        type: Boolean,\n        default: false\n      },\n\n      /**\n       * Keycodes that will select the current option.\n       * @type Array\n       */\n      selectOnKeyCodes: {\n        type: Array,\n        default: () => [13],\n      },\n\n      /**\n       * Query Selector used to find the search input\n       * when the 'search' scoped slot is used.\n       *\n       * Must be a valid CSS selector string.\n       *\n       * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n       * @type {String}\n       */\n      searchInputQuerySelector: {\n        type: String,\n        default: '[type=search]'\n      },\n\n      /**\n       * Used to modify the default keydown events map\n       * for the search input. Can be used to implement\n       * custom behaviour for key presses.\n       */\n      mapKeydown: {\n        type: Function,\n        /**\n         * @param map {Object}\n         * @param vm {VueSelect}\n         * @return {Object}\n         */\n        default: (map, vm) => map,\n      },\n\n      /**\n       * Append the dropdown element to the end of the body\n       * and size/position it dynamically. Use it if you have\n       * overflow or z-index issues.\n       * @type {Boolean}\n       */\n      appendToBody: {\n        type: Boolean,\n        default: false\n      },\n\n      /**\n       * When `appendToBody` is true, this function is responsible for\n       * positioning the drop down list.\n       *\n       * If a function is returned from `calculatePosition`, it will\n       * be called when the drop down list is removed from the DOM.\n       * This allows for any garbage collection you may need to do.\n       *\n       * @since v3.7.0\n       * @see http://vue-select.org/guide/positioning.html\n       */\n      calculatePosition: {\n        type: Function,\n        /**\n         * @param dropdownList {HTMLUListElement}\n         * @param component {Vue} current instance of vue select\n         * @param width {string} calculated width in pixels of the dropdown menu\n         * @param top {string} absolute position top value in pixels relative to the document\n         * @param left {string} absolute position left value in pixels relative to the document\n         * @return {function|void}\n         */\n        default(dropdownList, component, {width, top, left}) {\n          dropdownList.style.top = top;\n          dropdownList.style.left = left;\n          dropdownList.style.width = width;\n        }\n      },\n\n      /**\n       * Determines whether the dropdown should be open.\n       * Receives the component instance as the only argument.\n       *\n       * @since v3.12.0\n       * @return boolean\n       */\n      dropdownShouldOpen: {\n        type: Function,\n        default({noDrop, open, mutableLoading}) {\n          return noDrop ? false : open && !mutableLoading;\n        }\n      }\n    },\n\n    data() {\n      return {\n        uid: uniqueId(),\n        search: '',\n        open: false,\n        isComposing: false,\n        pushedTags: [],\n        _value: [] // Internal value managed by Vue Select if no `value` prop is passed\n      }\n    },\n\n    watch: {\n      /**\n       * Maybe reset the value\n       * when options change.\n       * Make sure selected option\n       * is correct.\n       * @return {[type]} [description]\n       */\n      options (newOptions, oldOptions) {\n        let shouldReset = () => typeof this.resetOnOptionsChange === 'function'\n          ? this.resetOnOptionsChange(newOptions, oldOptions, this.selectedValue)\n          : this.resetOnOptionsChange;\n\n        if (!this.taggable && shouldReset()) {\n          this.clearSelection();\n        }\n\n        if (this.value && this.isTrackingValues) {\n          this.setInternalValueFromOptions(this.value);\n        }\n      },\n\n      /**\n       * Make sure to update internal\n       * value if prop changes outside\n       */\n      value(val) {\n        if (this.isTrackingValues) {\n          this.setInternalValueFromOptions(val)\n        }\n      },\n\n      /**\n       * Always reset the value when\n       * the multiple prop changes.\n       * @param  {Boolean} isMultiple\n       * @return {void}\n       */\n      multiple() {\n        this.clearSelection()\n      },\n\n      open(isOpen) {\n        this.$emit(isOpen ? 'open' : 'close');\n      }\n    },\n\n    created() {\n      this.mutableLoading = this.loading;\n\n      if (typeof this.value !== \"undefined\" && this.isTrackingValues) {\n        this.setInternalValueFromOptions(this.value)\n      }\n\n      this.$on('option:created', this.pushTag)\n    },\n\n    methods: {\n      /**\n       * Make sure tracked value is\n       * one option if possible.\n       * @param  {Object|String} value\n       * @return {void}\n       */\n      setInternalValueFromOptions(value) {\n        if (Array.isArray(value)) {\n          this.$data._value = value.map(val => this.findOptionFromReducedValue(val));\n        } else {\n          this.$data._value = this.findOptionFromReducedValue(value);\n        }\n      },\n\n      /**\n       * Select a given option.\n       * @param  {Object|String} option\n       * @return {void}\n       */\n      select(option) {\n        this.$emit('option:selecting', option);\n        if (!this.isOptionSelected(option)) {\n          if (this.taggable && !this.optionExists(option)) {\n            this.$emit('option:created', option);\n          }\n          if (this.multiple) {\n            option = this.selectedValue.concat(option)\n          }\n          this.updateValue(option);\n          this.$emit('option:selected', option);\n        }\n        this.onAfterSelect(option)\n      },\n\n      /**\n       * De-select a given option.\n       * @param  {Object|String} option\n       * @return {void}\n       */\n      deselect (option) {\n        this.$emit('option:deselecting', option);\n        this.updateValue(this.selectedValue.filter(val => {\n          return !this.optionComparator(val, option);\n        }));\n        this.$emit('option:deselected', option);\n      },\n\n      /**\n       * Clears the currently selected value(s)\n       * @return {void}\n       */\n      clearSelection() {\n        this.updateValue(this.multiple ? [] : null)\n      },\n\n      /**\n       * Called from this.select after each selection.\n       * @param  {Object|String} option\n       * @return {void}\n       */\n      onAfterSelect(option) {\n        if (this.closeOnSelect) {\n          this.open = !this.open;\n          this.searchEl.blur()\n        }\n\n        if (this.clearSearchOnSelect) {\n          this.search = ''\n        }\n      },\n\n      /**\n       * Accepts a selected value, updates local\n       * state when required, and triggers the\n       * input event.\n       *\n       * @emits input\n       * @param value\n       */\n      updateValue (value) {\n        if (typeof this.value === 'undefined') {\n          // Vue select has to manage value\n          this.$data._value = value;\n        }\n\n        if (value !== null) {\n          if (Array.isArray(value)) {\n            value = value.map(val => this.reduce(val));\n          } else {\n            value = this.reduce(value);\n          }\n        }\n\n        this.$emit('input', value);\n      },\n\n      /**\n       * Toggle the visibility of the dropdown menu.\n       * @param  {Event} event\n       * @return {void}\n       */\n      toggleDropdown (event) {\n        const targetIsNotSearch = event.target !== this.searchEl;\n        if (targetIsNotSearch) {\n          event.preventDefault();\n        }\n\n        //  don't react to click on deselect/clear buttons,\n        //  they dropdown state will be set in their click handlers\n        const ignoredButtons = [\n          ...(this.$refs['deselectButtons'] || []),\n          ...([this.$refs['clearButton']] || []),\n        ];\n\n        if (this.searchEl === undefined || ignoredButtons.filter(Boolean).some(ref => ref.contains(event.target) || ref === event.target)) {\n          event.preventDefault();\n          return;\n        }\n\n        if (this.open && targetIsNotSearch) {\n          this.searchEl.blur();\n        } else if (!this.disabled) {\n          this.open = true;\n          this.searchEl.focus();\n        }\n      },\n\n      /**\n       * Check if the given option is currently selected.\n       * @param  {Object|String}  option\n       * @return {Boolean}        True when selected | False otherwise\n       */\n      isOptionSelected(option) {\n        return this.selectedValue.some(value => this.optionComparator(value, option))\n      },\n\n      /**\n       * Determine if two option objects are matching.\n       *\n       * @param a {Object}\n       * @param b {Object}\n       * @returns {boolean}\n       */\n      optionComparator(a, b) {\n        return this.getOptionKey(a) === this.getOptionKey(b);\n      },\n\n      /**\n       * Finds an option from the options\n       * where a reduced value matches\n       * the passed in value.\n       *\n       * @param value {Object}\n       * @returns {*}\n       */\n      findOptionFromReducedValue (value) {\n        const predicate = option => JSON.stringify(this.reduce(option)) === JSON.stringify(value);\n\n        const matches = [\n          ...this.options,\n          ...this.pushedTags,\n        ].filter(predicate);\n\n        if (matches.length === 1) {\n          return matches[0];\n        }\n\n        /**\n         * This second loop is needed to cover an edge case where `taggable` + `reduce`\n         * were used in conjunction with a `create-option` that doesn't create a\n         * unique reduced value.\n         * @see https://github.com/sagalbot/vue-select/issues/1089#issuecomment-597238735\n         */\n        return matches.find(match => this.optionComparator(match, this.$data._value)) || value;\n      },\n\n      /**\n       * 'Private' function to close the search options\n       * @emits  {search:blur}\n       * @returns {void}\n       */\n      closeSearchOptions(){\n        this.open = false\n        this.$emit('search:blur')\n      },\n\n      /**\n       * Delete the value on Delete keypress when there is no\n       * text in the search input, & there's tags to delete\n       * @return {this.value}\n       */\n      maybeDeleteValue() {\n        if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n          let value = null;\n          if (this.multiple) {\n            value = [...this.selectedValue.slice(0, this.selectedValue.length - 1)]\n          }\n          this.updateValue(value)\n        }\n      },\n\n      /**\n       * Determine if an option exists\n       * within this.optionList array.\n       *\n       * @param  {Object || String} option\n       * @return {boolean}\n       */\n      optionExists(option) {\n        return this.optionList.some(_option => this.optionComparator(_option, option))\n      },\n\n      /**\n       * Ensures that options are always\n       * passed as objects to scoped slots.\n       * @param option\n       * @return {*}\n       */\n      normalizeOptionForSlot (option) {\n        return (typeof option === 'object') ? option : {[this.label]: option};\n      },\n\n      /**\n       * If push-tags is true, push the\n       * given option to `this.pushedTags`.\n       *\n       * @param  {Object || String} option\n       * @return {void}\n       */\n      pushTag (option) {\n        this.pushedTags.push(option);\n      },\n\n      /**\n       * If there is any text in the search input, remove it.\n       * Otherwise, blur the search input to close the dropdown.\n       * @return {void}\n       */\n      onEscape() {\n        if (!this.search.length) {\n          this.searchEl.blur()\n        } else {\n          this.search = ''\n        }\n      },\n\n      /**\n       * Close the dropdown on blur.\n       * @emits  {search:blur}\n       * @return {void}\n       */\n      onSearchBlur() {\n        if (this.mousedown && !this.searching) {\n          this.mousedown = false\n        } else {\n          const { clearSearchOnSelect, multiple } = this;\n          if (this.clearSearchOnBlur({ clearSearchOnSelect, multiple })) {\n            this.search = ''\n          }\n          this.closeSearchOptions()\n          return\n        }\n        // Fixed bug where no-options message could not be closed\n        if (this.search.length === 0 && this.options.length === 0){\n          this.closeSearchOptions()\n          return\n        }\n      },\n\n      /**\n       * Open the dropdown on focus.\n       * @emits  {search:focus}\n       * @return {void}\n       */\n      onSearchFocus() {\n        this.open = true\n        this.$emit('search:focus')\n      },\n\n      /**\n       * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n       * firing a `blur` event when clicking\n       * the dropdown's scrollbar, causing it\n       * to collapse abruptly.\n       * @see https://github.com/sagalbot/vue-select/issues/106\n       * @return {void}\n       */\n      onMousedown() {\n        this.mousedown = true\n      },\n\n      /**\n       * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n       * @see https://github.com/sagalbot/vue-select/issues/106\n       * @return {void}\n       */\n      onMouseUp() {\n        this.mousedown = false\n      },\n\n      /**\n       * Search <input> KeyBoardEvent handler.\n       * @param e {KeyboardEvent}\n       * @return {Function}\n       */\n      onSearchKeyDown (e) {\n        const preventAndSelect = e => {\n          e.preventDefault();\n          return !this.isComposing && this.typeAheadSelect();\n        };\n\n        const defaults = {\n          //  backspace\n          8: e => this.maybeDeleteValue(),\n          //  tab\n          9: e => this.onTab(),\n          //  esc\n          27: e => this.onEscape(),\n          //  up.prevent\n          38: e => {\n            e.preventDefault();\n            return this.typeAheadUp();\n          },\n          //  down.prevent\n          40: e => {\n            e.preventDefault();\n            return this.typeAheadDown();\n          },\n        };\n\n        this.selectOnKeyCodes.forEach(keyCode => defaults[keyCode] = preventAndSelect);\n\n        const handlers = this.mapKeydown(defaults, this);\n\n        if (typeof handlers[e.keyCode] === 'function') {\n          return handlers[e.keyCode](e);\n        }\n      }\n    },\n\n    computed: {\n      /**\n       * Determine if the component needs to\n       * track the state of values internally.\n       * @return {boolean}\n       */\n      isTrackingValues () {\n        return typeof this.value === 'undefined' || this.$options.propsData.hasOwnProperty('reduce');\n      },\n\n      /**\n       * The options that are currently selected.\n       * @return {Array}\n       */\n      selectedValue () {\n        let value = this.value;\n        if (this.isTrackingValues) {\n          // Vue select has to manage value internally\n          value = this.$data._value;\n        }\n\n        if (value) {\n          return [].concat(value);\n        }\n\n        return [];\n      },\n\n      /**\n       * The options available to be chosen\n       * from the dropdown, including any\n       * tags that have been pushed.\n       *\n       * @return {Array}\n       */\n      optionList () {\n        return this.options.concat(this.pushTags ? this.pushedTags : []);\n      },\n\n      /**\n       * Find the search input DOM element.\n       * @returns {HTMLInputElement}\n       */\n      searchEl () {\n        return !!this.$scopedSlots['search']\n          ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector)\n          : this.$refs.search;\n      },\n\n      /**\n       * The object to be bound to the $slots.search scoped slot.\n       * @returns {Object}\n       */\n      scope () {\n        const listSlot = {\n          search: this.search,\n          loading: this.loading,\n          searching: this.searching,\n          filteredOptions: this.filteredOptions\n        };\n        return {\n          search: {\n            attributes: {\n              'disabled': this.disabled,\n              'placeholder': this.searchPlaceholder,\n              'tabindex': this.tabindex,\n              'readonly': !this.searchable,\n              'id': this.inputId,\n              'aria-autocomplete': 'list',\n              'aria-labelledby': `vs${this.uid}__combobox`,\n              'aria-controls': `vs${this.uid}__listbox`,\n              'ref': 'search',\n              'type': 'search',\n              'autocomplete': this.autocomplete,\n              'value': this.search,\n              ...(this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n                'aria-activedescendant': `vs${this.uid}__option-${this.typeAheadPointer}`\n              } : {}),\n            },\n            events: {\n              'compositionstart': () => this.isComposing = true,\n              'compositionend': () => this.isComposing = false,\n              'keydown': this.onSearchKeyDown,\n              'blur': this.onSearchBlur,\n              'focus': this.onSearchFocus,\n              'input': (e) => this.search = e.target.value,\n            },\n          },\n          spinner: {\n            loading: this.mutableLoading\n          },\n          noOptions: {\n            search: this.search,\n            loading: this.mutableLoading,\n            searching: this.searching,\n          },\n          openIndicator: {\n            attributes: {\n              'ref': 'openIndicator',\n              'role': 'presentation',\n              'class': 'vs__open-indicator',\n            },\n          },\n          listHeader: listSlot,\n          listFooter: listSlot,\n          header: { ...listSlot, deselect: this.deselect },\n          footer: { ...listSlot, deselect: this.deselect }\n        };\n      },\n\n      /**\n       * Returns an object containing the child components\n       * that will be used throughout the component. The\n       * `component` prop can be used to overwrite the defaults.\n       *\n       * @return {Object}\n       */\n      childComponents () {\n        return {\n          ...childComponents,\n          ...this.components\n        };\n      },\n\n      /**\n       * Holds the current state of the component.\n       * @return {Object}\n       */\n      stateClasses() {\n        return {\n          'vs--open': this.dropdownOpen,\n          'vs--single': !this.multiple,\n          'vs--searching': this.searching && !this.noDrop,\n          'vs--searchable': this.searchable && !this.noDrop,\n          'vs--unsearchable': !this.searchable,\n          'vs--loading': this.mutableLoading,\n          'vs--disabled': this.disabled\n        }\n      },\n\n      /**\n       * Return the current state of the\n       * search input\n       * @return {Boolean} True if non empty value\n       */\n      searching() {\n        return !! this.search\n      },\n\n      /**\n       * Return the current state of the\n       * dropdown menu.\n       * @return {Boolean} True if open\n       */\n      dropdownOpen() {\n        return this.dropdownShouldOpen(this);\n      },\n\n      /**\n       * Return the placeholder string if it's set\n       * & there is no value selected.\n       * @return {String} Placeholder text\n       */\n      searchPlaceholder() {\n        if (this.isValueEmpty && this.placeholder) {\n          return this.placeholder;\n        }\n      },\n\n      /**\n       * The currently displayed options, filtered\n       * by the search elements value. If tagging\n       * true, the search text will be prepended\n       * if it doesn't already exist.\n       *\n       * @return {array}\n       */\n      filteredOptions() {\n        const optionList = [].concat(this.optionList);\n\n        if (!this.filterable && !this.taggable) {\n          return optionList;\n        }\n\n        let options = this.search.length ? this.filter(optionList, this.search, this) : optionList;\n        if (this.taggable && this.search.length) {\n          const createdOption = this.createOption(this.search);\n          if (!this.optionExists(createdOption)) {\n            options.unshift(createdOption);\n          }\n        }\n        return options;\n      },\n\n      /**\n       * Check if there aren't any options selected.\n       * @return {Boolean}\n       */\n      isValueEmpty() {\n        return this.selectedValue.length === 0;\n      },\n\n      /**\n       * Determines if the clear button should be displayed.\n       * @return {Boolean}\n       */\n      showClearButton() {\n        return !this.multiple && this.clearable && !this.open && !this.isValueEmpty\n      },\n    },\n\n  }\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Select.vue?vue&type=template&id=57ae4c14&\"\nimport script from \"./Select.vue?vue&type=script&lang=js&\"\nexport * from \"./Select.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Select.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import ajax from './ajax'\nimport pointer from './typeAheadPointer'\nimport pointerScroll from './pointerScroll'\n\nexport default { ajax, pointer, pointerScroll }\n","import VueSelect from './components/Select.vue'\nimport mixins from './mixins/index'\n\nexport default VueSelect\nexport { VueSelect, mixins }\n"],"sourceRoot":""}