{"version":3,"sources":["webpack://VueTreeselect/webpack/bootstrap","webpack://VueTreeselect/external \"@babel/runtime/helpers/defineProperty\"","webpack://VueTreeselect/external \"babel-helper-vue-jsx-merge-props\"","webpack://VueTreeselect/external \"@babel/runtime/helpers/toConsumableArray\"","webpack://VueTreeselect/external \"lodash/noop\"","webpack://VueTreeselect/external \"lodash/debounce\"","webpack://VueTreeselect/external \"is-promise\"","webpack://VueTreeselect/external \"lodash/once\"","webpack://VueTreeselect/external \"lodash/identity\"","webpack://VueTreeselect/external \"lodash/constant\"","webpack://VueTreeselect/external \"lodash/last\"","webpack://VueTreeselect/external \"@babel/runtime/helpers/slicedToArray\"","webpack://VueTreeselect/external \"fuzzysearch\"","webpack://VueTreeselect/external \"watch-size\"","webpack://VueTreeselect/external \"@babel/runtime/helpers/typeof\"","webpack://VueTreeselect/external \"vue\"","webpack://VueTreeselect/./src/utils/warning.js","webpack://VueTreeselect/./src/utils/onLeftClick.js","webpack://VueTreeselect/./src/utils/scrollIntoView.js","webpack://VueTreeselect/./src/utils/watchSize.js","webpack://VueTreeselect/./src/utils/removeFromArray.js","webpack://VueTreeselect/./src/utils/setupResizeAndScrollEventListeners.js","webpack://VueTreeselect/./src/utils/isNaN.js","webpack://VueTreeselect/./src/utils/createMap.js","webpack://VueTreeselect/./src/utils/deepExtend.js","webpack://VueTreeselect/./src/utils/includes.js","webpack://VueTreeselect/./src/utils/find.js","webpack://VueTreeselect/./src/utils/quickDiff.js","webpack://VueTreeselect/./src/constants.js","webpack://VueTreeselect/./src/mixins/treeselectMixin.js","webpack://VueTreeselect/./src/components/HiddenFields.vue?7939","webpack://VueTreeselect/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://VueTreeselect/./src/components/HiddenFields.vue","webpack://VueTreeselect/./src/components/Input.vue?1e32","webpack://VueTreeselect/./src/components/Input.vue","webpack://VueTreeselect/./src/components/Placeholder.vue","webpack://VueTreeselect/./src/components/Placeholder.vue?e4f3","webpack://VueTreeselect/./src/components/SingleValue.vue","webpack://VueTreeselect/./src/components/SingleValue.vue?94ec","webpack://VueTreeselect/./src/components/icons/Delete.vue?2d39","webpack://VueTreeselect/./src/components/icons/Delete.vue?0c8a","webpack://VueTreeselect/./src/components/icons/Delete.vue","webpack://VueTreeselect/./src/components/MultiValueItem.vue","webpack://VueTreeselect/./src/components/MultiValueItem.vue?c02e","webpack://VueTreeselect/./src/components/MultiValue.vue","webpack://VueTreeselect/./src/components/MultiValue.vue?a3a9","webpack://VueTreeselect/./src/components/icons/Arrow.vue?2ad4","webpack://VueTreeselect/./src/components/icons/Arrow.vue?eeef","webpack://VueTreeselect/./src/components/icons/Arrow.vue","webpack://VueTreeselect/./src/components/Control.vue","webpack://VueTreeselect/./src/components/Control.vue?514d","webpack://VueTreeselect/./src/components/Tip.vue","webpack://VueTreeselect/./src/components/Tip.vue?7443","webpack://VueTreeselect/./src/components/Option.vue?3086","webpack://VueTreeselect/./src/components/Option.vue","webpack://VueTreeselect/./src/components/Menu.vue?731f","webpack://VueTreeselect/./src/components/Menu.vue","webpack://VueTreeselect/./src/components/MenuPortal.vue?9292","webpack://VueTreeselect/./src/components/MenuPortal.vue","webpack://VueTreeselect/./src/components/Treeselect.vue","webpack://VueTreeselect/./src/components/Treeselect.vue?e969","webpack://VueTreeselect/./src/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","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","require","warning","onLeftClick","mouseDownHandler","evt","type","button","_len","arguments","length","args","Array","_key","apply","this","concat","scrollIntoView","$scrollingEl","$focusedEl","scrollingReact","getBoundingClientRect","focusedRect","overScroll","offsetHeight","bottom","scrollTop","Math","min","offsetTop","clientHeight","scrollHeight","top","max","intervalId","removeFromArray","arr","elem","idx","indexOf","splice","registered","INTERVAL_DURATION","test","item","$el","listener","lastWidth","lastHeight","width","offsetWidth","height","watchSizeForIE9","push","setInterval","forEach","clearInterval","watchSize","isIE9","document","documentMode","locked","removeSizeWatcher","isScrollElment","_getComputedStyle","getComputedStyle","overflow","overflowX","overflowY","setupResizeAndScrollEventListeners","$scrollParents","$parent","parentNode","nodeName","nodeType","ELEMENT_NODE","window","findScrollParents","addEventListener","passive","scrollParent","removeEventListener","$scrollParent","x","createMap","isPlainObject","getPrototypeOf","deepExtend","target","source","keys","len","obj","includes","arrOrStr","find","predicate","ctx","quickDiff","arrA","arrB","KEY_CODES","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","sortValueByIndex","a","b","level","index","match","enableFuzzyMatch","needle","haystack","getErrorMessage","err","message","String","instanceId","provide","instance","props","allowClearingDisabled","Boolean","default","allowSelectingDisabledDescendants","alwaysOpen","appendToBody","async","autoFocus","autoLoadRootOptions","autoDeselectAncestors","autoDeselectDescendants","autoSelectAncestors","autoSelectDescendants","backspaceRemoves","beforeClearAll","Function","branchNodesFirst","cacheOptions","clearable","clearAllText","clearOnSelect","clearValueText","closeOnSelect","defaultExpandLevel","Number","defaultOptions","deleteRemoves","delimiter","flattenSearchResults","disableBranchNodes","disabled","disableFuzzyMatching","flat","joinValues","limit","Infinity","limitText","count","loadingText","loadOptions","matchKeys","maxHeight","multiple","noChildrenText","noOptionsText","noResultsText","normalizer","openDirection","validator","openOnClick","openOnFocus","options","placeholder","required","retryText","retryTitle","searchable","searchNested","searchPromptText","showCount","showCountOf","showCountOnSearch","sortValueBy","tabIndex","valueConsistsOf","valueFormat","zIndex","data","trigger","isFocused","searchQuery","menu","isOpen","current","lastScrollPosition","placement","forest","normalizedOptions","nodeMap","checkedStateMap","selectedNodeIds","extractCheckedNodeIdsFromValue","selectedNodeMap","rootOptionsStates","isLoaded","isLoading","loadingError","localSearch","active","noResults","countMap","remoteSearch","computed","selectedNodes","map","getNode","internalValue","_this","single","slice","id","node","isRootNode","isSelected","isLeaf","children","_internalValue","indeterminateNodeIds","selectedNode","ancestors","ancestor","sort","sortValueByLevel","hasValue","visibleOptionIds","_this2","traverseAllNodesByIndex","shouldOptionBeIncludedInSearchResult","isBranch","shouldExpand","hasVisibleOptions","showCountOnSearchComputed","hasBranchNodes","some","rootNode","shouldFlattenOptions","watch","newValue","openMenu","closeMenu","initialize","oldValue","$emit","getValue","getInstanceId","buildForestState","handler","isArray","deep","immediate","handleRemoteSearch","handleLocalSearch","nodeIdsFromValue","fixSelectedNodeIds","methods","verifyProps","_this3","propName","resetFlags","_blurOnSelect","getRemoteSearchEntry","prevNodeMap","keepDataOfSelectedNodes","normalize","_this4","rawNodes","raw","nodeId","createFallbackNode","extractNodeFromValue","fallbackNode","label","enhancedNormalizer","isFallbackNode","isDisabled","isNew","$set","_this5","_this6","defaultNode","nodeIdListOfPrevValue","_this7","nextSelectedNodeIds","traverseDescendantsBFS","descendant","queue","shift","_map","_queue","_nodeId","_node","_this8","callback","currNode","traverseDescendantsDFS","_this9","child","traverseAllNodesDFS","_this10","walk","toggleClickOutsideEvent","enabled","handleClickOutside","getValueContainer","$refs","control","getInput","input","focusInput","focus","blurInput","blur","handleMouseDown","preventDefault","stopPropagation","contains","wrapper","_this11","done","resetHighlightedOptionWhenNecessary","_this11$$set","isExpandedOnSearch","showAllChildrenOnSearch","isMatched","hasMatchedDescendants","lowerCasedSearchQuery","trim","toLocaleLowerCase","splitSearchQuery","replace","split","every","filterValue","nestedSearchLabel","matchKey","lowerCased","_this12","entry","callLoadOptionsProp","action","isPending","start","succeed","fail","end","_this13","$watch","isExpanded","shouldShowOptionInMenu","getControl","getMenu","$menu","portal","portalTarget","setCurrentHighlightedOption","_this14","scroll","undefined","prev","isHighlighted","scrollToOption","$option","querySelector","$nextTick","forceReset","highlightFirstOption","first","highlightPrevOption","highlightLastOption","highlightNextOption","next","last","resetSearchQuery","saveMenuScrollPosition","restoreMenuScrollPosition","loadRootOptions","toggleMenu","toggleExpanded","nextState","childrenStates","loadChildrenOptions","_this15","selectedNodeId","ancestorNode","nodes","_this16","_ref","_ref2","checkDuplication","verifyNodeShape","isDefaultExpanded","reduce","normalized","_this16$$set","hasDisabledDescendants","branchNodes","option","leafNodes","_this17","_this18","_ref3","result","then","catch","console","error","_this19","JSON","stringify","select","clear","_selectNode","_deselectNode","_this20","_this21","addValue","isFullyChecked","curr","_this22","removeValue","hasUncheckedSomeDescendants","removeLastValue","lastValue","lastSelectedNode","created","mounted","destroyed","stringifyValue","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","component","inject","_","injections","stringifiedValues","join","stringifiedValue","attrs","domProps","__file","keysThatRequireMenuBeingOpen","inputWidth","needAutoSize","inputStyle","updateInputWidth","debouncedCallback","updateSearchQuery","leading","trailing","onInput","onFocus","onBlur","activeElement","cancel","onKeyDown","which","keyCode","ctrlKey","shiftKey","altKey","metaKey","_current","_current2","onMouseDown","renderInputContainer","$createElement","renderInput","renderSizer","on","keydown","ref","autocomplete","style","sizer","scrollWidth","placeholderClass","renderSingleValueLabel","customValueLabelRenderer","$scopedSlots","renderValueContainer","shouldShowValue","Placeholder","Input","_h","_c","_self","xmlns","viewBox","_withStripped","itemClass","labelRenderer","Delete","renderMultiValueItems","MultiValueItem","renderExceedLimitTip","transitionGroupProps","tag","appear","shouldShowX","hasUndisabledValue","shouldShowArrow","renderX","title","handleMouseDownOnX","renderArrow","arrowClass","handleMouseDownOnArrow","Arrow","shouldClear","setTimeout","ValueContainer","SingleValue","MultiValue","icon","arrowPlaceholder","checkMark","minusMark","Option","shouldShow","renderOption","handleMouseEnterOption","renderLabelContainer","renderCheckboxContainer","renderCheckbox","renderLabel","renderSubOptionsList","renderSubOptions","renderNoChildrenTip","renderLoadingChildrenTip","renderLoadingChildrenErrorTip","handleMouseDownOnLabelContainer","checkedState","checkboxClass","shouldShowCount","NaN","customLabelRenderer","labelClassName","countClassName","childNode","Tip","handleMouseDownOnRetry","currentTarget","indentLevel","listItemClass","transitionProps","directionMap","above","below","menuStyle","menuContainerStyle","onMenuOpen","onMenuClose","menuSizeWatcher","menuResizeAndScrollEventListeners","renderMenu","renderBeforeList","renderAsyncSearchMenuInner","renderLocalSearchMenuInner","renderNormalMenuInner","renderAfterList","beforeListRenderer","afterListRenderer","renderLoadingOptionsTip","renderLoadingRootOptionsErrorTip","renderNoAvailableOptionsTip","renderOptionList","renderNoResultsTip","shouldShowSearchPromptTip","shouldShowNoResultsTip","renderSearchPromptTip","renderAsyncSearchLoadingErrorTip","adjustMenuOpenDirection","setupMenuSizeWatcher","setupMenuResizeAndScrollEventListeners","removeMenuSizeWatcher","removeMenuResizeAndScrollEventListeners","$control","menuRect","controlRect","menuHeight","viewportHeight","innerHeight","spaceAbove","hasEnoughSpaceBelow","hasEnoughSpaceAbove","remove","PortalTarget","setupHandlers","removeHandlers","updateMenuContainerOffset","controlResizeAndScrollEventListeners","controlSizeWatcher","updateWidth","setupControlResizeAndScrollEventListeners","setupControlSizeWatcher","removeControlResizeAndScrollEventListeners","removeControlSizeWatcher","$portalTarget","portalTargetRect","offsetY","left","round","body","portalTargetClass","wrapperClass","portalTargetStyle","Menu","setup","teardown","el","createElement","appendChild","removeChild","innerHTML","$destroy","mixins","treeselectMixin","HiddenFields","Control","MenuPortal","VERSION"],"mappings":"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","file":"vue-treeselect.cjs.min.js","sourcesContent":[" \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 = 16);\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"babel-helper-vue-jsx-merge-props\");","module.exports = require(\"@babel/runtime/helpers/toConsumableArray\");","module.exports = require(\"lodash/noop\");","module.exports = require(\"lodash/debounce\");","module.exports = require(\"is-promise\");","module.exports = require(\"lodash/once\");","module.exports = require(\"lodash/identity\");","module.exports = require(\"lodash/constant\");","module.exports = require(\"lodash/last\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"fuzzysearch\");","module.exports = require(\"watch-size\");","module.exports = require(\"@babel/runtime/helpers/typeof\");","module.exports = require(\"vue\");","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { noop } from './noop';\nexport var warning = process.env.NODE_ENV === 'production' ? noop : function warning(checker, complainer) {\n  if (!checker()) {\n    var _console;\n\n    var message = ['[Vue-Treeselect Warning]'].concat(complainer());\n\n    (_console = console).error.apply(_console, _toConsumableArray(message));\n  }\n};","export function onLeftClick(mouseDownHandler) {\n  return function onMouseDown(evt) {\n    if (evt.type === 'mousedown' && evt.button === 0) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      mouseDownHandler.call.apply(mouseDownHandler, [this, evt].concat(args));\n    }\n  };\n}","export function scrollIntoView($scrollingEl, $focusedEl) {\n  var scrollingReact = $scrollingEl.getBoundingClientRect();\n  var focusedRect = $focusedEl.getBoundingClientRect();\n  var overScroll = $focusedEl.offsetHeight / 3;\n\n  if (focusedRect.bottom + overScroll > scrollingReact.bottom) {\n    $scrollingEl.scrollTop = Math.min($focusedEl.offsetTop + $focusedEl.clientHeight - $scrollingEl.offsetHeight + overScroll, $scrollingEl.scrollHeight);\n  } else if (focusedRect.top - overScroll < scrollingReact.top) {\n    $scrollingEl.scrollTop = Math.max($focusedEl.offsetTop - overScroll, 0);\n  }\n}","import watchSizeForBrowsersOtherThanIE9 from 'watch-size';\nimport { removeFromArray } from './removeFromArray';\nvar intervalId;\nvar registered = [];\nvar INTERVAL_DURATION = 100;\n\nfunction run() {\n  intervalId = setInterval(function () {\n    registered.forEach(test);\n  }, INTERVAL_DURATION);\n}\n\nfunction stop() {\n  clearInterval(intervalId);\n  intervalId = null;\n}\n\nfunction test(item) {\n  var $el = item.$el,\n      listener = item.listener,\n      lastWidth = item.lastWidth,\n      lastHeight = item.lastHeight;\n  var width = $el.offsetWidth;\n  var height = $el.offsetHeight;\n\n  if (lastWidth !== width || lastHeight !== height) {\n    item.lastWidth = width;\n    item.lastHeight = height;\n    listener({\n      width: width,\n      height: height\n    });\n  }\n}\n\nfunction watchSizeForIE9($el, listener) {\n  var item = {\n    $el: $el,\n    listener: listener,\n    lastWidth: null,\n    lastHeight: null\n  };\n\n  var unwatch = function unwatch() {\n    removeFromArray(registered, item);\n    if (!registered.length) stop();\n  };\n\n  registered.push(item);\n  test(item);\n  run();\n  return unwatch;\n}\n\nexport function watchSize($el, listener) {\n  var isIE9 = document.documentMode === 9;\n  var locked = true;\n\n  var wrappedListener = function wrappedListener() {\n    return locked || listener.apply(void 0, arguments);\n  };\n\n  var implementation = isIE9 ? watchSizeForIE9 : watchSizeForBrowsersOtherThanIE9;\n  var removeSizeWatcher = implementation($el, wrappedListener);\n  locked = false;\n  return removeSizeWatcher;\n}","export function removeFromArray(arr, elem) {\n  var idx = arr.indexOf(elem);\n  if (idx !== -1) arr.splice(idx, 1);\n}","function findScrollParents($el) {\n  var $scrollParents = [];\n  var $parent = $el.parentNode;\n\n  while ($parent && $parent.nodeName !== 'BODY' && $parent.nodeType === document.ELEMENT_NODE) {\n    if (isScrollElment($parent)) $scrollParents.push($parent);\n    $parent = $parent.parentNode;\n  }\n\n  $scrollParents.push(window);\n  return $scrollParents;\n}\n\nfunction isScrollElment($el) {\n  var _getComputedStyle = getComputedStyle($el),\n      overflow = _getComputedStyle.overflow,\n      overflowX = _getComputedStyle.overflowX,\n      overflowY = _getComputedStyle.overflowY;\n\n  return /(auto|scroll|overlay)/.test(overflow + overflowY + overflowX);\n}\n\nexport function setupResizeAndScrollEventListeners($el, listener) {\n  var $scrollParents = findScrollParents($el);\n  window.addEventListener('resize', listener, {\n    passive: true\n  });\n  $scrollParents.forEach(function (scrollParent) {\n    scrollParent.addEventListener('scroll', listener, {\n      passive: true\n    });\n  });\n  return function removeEventListeners() {\n    window.removeEventListener('resize', listener, {\n      passive: true\n    });\n    $scrollParents.forEach(function ($scrollParent) {\n      $scrollParent.removeEventListener('scroll', listener, {\n        passive: true\n      });\n    });\n  };\n}","export function isNaN(x) {\n  return x !== x;\n}","export var createMap = function createMap() {\n  return Object.create(null);\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\n\nfunction isPlainObject(value) {\n  if (value == null || _typeof(value) !== 'object') return false;\n  return Object.getPrototypeOf(value) === Object.prototype;\n}\n\nfunction copy(obj, key, value) {\n  if (isPlainObject(value)) {\n    obj[key] || (obj[key] = {});\n    deepExtend(obj[key], value);\n  } else {\n    obj[key] = value;\n  }\n}\n\nexport function deepExtend(target, source) {\n  if (isPlainObject(source)) {\n    var keys = Object.keys(source);\n\n    for (var i = 0, len = keys.length; i < len; i++) {\n      copy(target, keys[i], source[keys[i]]);\n    }\n  }\n\n  return target;\n}","export function includes(arrOrStr, elem) {\n  return arrOrStr.indexOf(elem) !== -1;\n}","export function find(arr, predicate, ctx) {\n  for (var i = 0, len = arr.length; i < len; i++) {\n    if (predicate.call(ctx, arr[i], i, arr)) return arr[i];\n  }\n\n  return undefined;\n}","export function quickDiff(arrA, arrB) {\n  if (arrA.length !== arrB.length) return true;\n\n  for (var i = 0; i < arrA.length; i++) {\n    if (arrA[i] !== arrB[i]) return true;\n  }\n\n  return false;\n}","export var NO_PARENT_NODE = null;\nexport var UNCHECKED = 0;\nexport var INDETERMINATE = 1;\nexport var CHECKED = 2;\nexport var ALL_CHILDREN = 'ALL_CHILDREN';\nexport var ALL_DESCENDANTS = 'ALL_DESCENDANTS';\nexport var LEAF_CHILDREN = 'LEAF_CHILDREN';\nexport var LEAF_DESCENDANTS = 'LEAF_DESCENDANTS';\nexport var LOAD_ROOT_OPTIONS = 'LOAD_ROOT_OPTIONS';\nexport var LOAD_CHILDREN_OPTIONS = 'LOAD_CHILDREN_OPTIONS';\nexport var ASYNC_SEARCH = 'ASYNC_SEARCH';\nexport var ALL = 'ALL';\nexport var BRANCH_PRIORITY = 'BRANCH_PRIORITY';\nexport var LEAF_PRIORITY = 'LEAF_PRIORITY';\nexport var ALL_WITH_INDETERMINATE = 'ALL_WITH_INDETERMINATE';\nexport var ORDER_SELECTED = 'ORDER_SELECTED';\nexport var LEVEL = 'LEVEL';\nexport var INDEX = 'INDEX';\nexport var KEY_CODES = {\n  BACKSPACE: 8,\n  ENTER: 13,\n  ESCAPE: 27,\n  END: 35,\n  HOME: 36,\n  ARROW_LEFT: 37,\n  ARROW_UP: 38,\n  ARROW_RIGHT: 39,\n  ARROW_DOWN: 40,\n  DELETE: 46\n};\nexport var INPUT_DEBOUNCE_DELAY = process.env.NODE_ENV === 'testing' ? 10 : 200;\nexport var MIN_INPUT_WIDTH = 5;\nexport var MENU_BUFFER = 40;","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport fuzzysearch from 'fuzzysearch';\nimport { warning, onLeftClick, scrollIntoView, isNaN, isPromise, once, identity, constant, createMap, quickDiff, last as getLast, includes, find, removeFromArray } from '../utils';\nimport { NO_PARENT_NODE, UNCHECKED, INDETERMINATE, CHECKED, LOAD_ROOT_OPTIONS, LOAD_CHILDREN_OPTIONS, ASYNC_SEARCH, ALL, BRANCH_PRIORITY, LEAF_PRIORITY, ALL_WITH_INDETERMINATE, ALL_CHILDREN, ALL_DESCENDANTS, LEAF_CHILDREN, LEAF_DESCENDANTS, ORDER_SELECTED, LEVEL, INDEX } from '../constants';\n\nfunction sortValueByIndex(a, b) {\n  var i = 0;\n\n  do {\n    if (a.level < i) return -1;\n    if (b.level < i) return 1;\n    if (a.index[i] !== b.index[i]) return a.index[i] - b.index[i];\n    i++;\n  } while (true);\n}\n\nfunction sortValueByLevel(a, b) {\n  return a.level === b.level ? sortValueByIndex(a, b) : a.level - b.level;\n}\n\nfunction createAsyncOptionsStates() {\n  return {\n    isLoaded: false,\n    isLoading: false,\n    loadingError: ''\n  };\n}\n\nfunction stringifyOptionPropValue(value) {\n  if (typeof value === 'string') return value;\n  if (typeof value === 'number' && !isNaN(value)) return value + '';\n  return '';\n}\n\nfunction match(enableFuzzyMatch, needle, haystack) {\n  return enableFuzzyMatch ? fuzzysearch(needle, haystack) : includes(haystack, needle);\n}\n\nfunction getErrorMessage(err) {\n  return err.message || String(err);\n}\n\nvar instanceId = 0;\nexport default {\n  provide: function provide() {\n    return {\n      instance: this\n    };\n  },\n  props: {\n    allowClearingDisabled: {\n      type: Boolean,\n      default: false\n    },\n    allowSelectingDisabledDescendants: {\n      type: Boolean,\n      default: false\n    },\n    alwaysOpen: {\n      type: Boolean,\n      default: false\n    },\n    appendToBody: {\n      type: Boolean,\n      default: false\n    },\n    async: {\n      type: Boolean,\n      default: false\n    },\n    autoFocus: {\n      type: Boolean,\n      default: false\n    },\n    autoLoadRootOptions: {\n      type: Boolean,\n      default: true\n    },\n    autoDeselectAncestors: {\n      type: Boolean,\n      default: false\n    },\n    autoDeselectDescendants: {\n      type: Boolean,\n      default: false\n    },\n    autoSelectAncestors: {\n      type: Boolean,\n      default: false\n    },\n    autoSelectDescendants: {\n      type: Boolean,\n      default: false\n    },\n    backspaceRemoves: {\n      type: Boolean,\n      default: true\n    },\n    beforeClearAll: {\n      type: Function,\n      default: constant(true)\n    },\n    branchNodesFirst: {\n      type: Boolean,\n      default: false\n    },\n    cacheOptions: {\n      type: Boolean,\n      default: true\n    },\n    clearable: {\n      type: Boolean,\n      default: true\n    },\n    clearAllText: {\n      type: String,\n      default: 'Clear all'\n    },\n    clearOnSelect: {\n      type: Boolean,\n      default: false\n    },\n    clearValueText: {\n      type: String,\n      default: 'Clear value'\n    },\n    closeOnSelect: {\n      type: Boolean,\n      default: true\n    },\n    defaultExpandLevel: {\n      type: Number,\n      default: 0\n    },\n    defaultOptions: {\n      default: false\n    },\n    deleteRemoves: {\n      type: Boolean,\n      default: true\n    },\n    delimiter: {\n      type: String,\n      default: ','\n    },\n    flattenSearchResults: {\n      type: Boolean,\n      default: false\n    },\n    disableBranchNodes: {\n      type: Boolean,\n      default: false\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    disableFuzzyMatching: {\n      type: Boolean,\n      default: false\n    },\n    flat: {\n      type: Boolean,\n      default: false\n    },\n    instanceId: {\n      default: function _default() {\n        return \"\".concat(instanceId++, \"$$\");\n      },\n      type: [String, Number]\n    },\n    joinValues: {\n      type: Boolean,\n      default: false\n    },\n    limit: {\n      type: Number,\n      default: Infinity\n    },\n    limitText: {\n      type: Function,\n      default: function limitTextDefault(count) {\n        return \"and \".concat(count, \" more\");\n      }\n    },\n    loadingText: {\n      type: String,\n      default: 'Loading...'\n    },\n    loadOptions: {\n      type: Function\n    },\n    matchKeys: {\n      type: Array,\n      default: constant(['label'])\n    },\n    maxHeight: {\n      type: Number,\n      default: 300\n    },\n    multiple: {\n      type: Boolean,\n      default: false\n    },\n    name: {\n      type: String\n    },\n    noChildrenText: {\n      type: String,\n      default: 'No sub-options.'\n    },\n    noOptionsText: {\n      type: String,\n      default: 'No options available.'\n    },\n    noResultsText: {\n      type: String,\n      default: 'No results found...'\n    },\n    normalizer: {\n      type: Function,\n      default: identity\n    },\n    openDirection: {\n      type: String,\n      default: 'auto',\n      validator: function validator(value) {\n        var acceptableValues = ['auto', 'top', 'bottom', 'above', 'below'];\n        return includes(acceptableValues, value);\n      }\n    },\n    openOnClick: {\n      type: Boolean,\n      default: true\n    },\n    openOnFocus: {\n      type: Boolean,\n      default: false\n    },\n    options: {\n      type: Array\n    },\n    placeholder: {\n      type: String,\n      default: 'Select...'\n    },\n    required: {\n      type: Boolean,\n      default: false\n    },\n    retryText: {\n      type: String,\n      default: 'Retry?'\n    },\n    retryTitle: {\n      type: String,\n      default: 'Click to retry'\n    },\n    searchable: {\n      type: Boolean,\n      default: true\n    },\n    searchNested: {\n      type: Boolean,\n      default: false\n    },\n    searchPromptText: {\n      type: String,\n      default: 'Type to search...'\n    },\n    showCount: {\n      type: Boolean,\n      default: false\n    },\n    showCountOf: {\n      type: String,\n      default: ALL_CHILDREN,\n      validator: function validator(value) {\n        var acceptableValues = [ALL_CHILDREN, ALL_DESCENDANTS, LEAF_CHILDREN, LEAF_DESCENDANTS];\n        return includes(acceptableValues, value);\n      }\n    },\n    showCountOnSearch: null,\n    sortValueBy: {\n      type: String,\n      default: ORDER_SELECTED,\n      validator: function validator(value) {\n        var acceptableValues = [ORDER_SELECTED, LEVEL, INDEX];\n        return includes(acceptableValues, value);\n      }\n    },\n    tabIndex: {\n      type: Number,\n      default: 0\n    },\n    value: null,\n    valueConsistsOf: {\n      type: String,\n      default: BRANCH_PRIORITY,\n      validator: function validator(value) {\n        var acceptableValues = [ALL, BRANCH_PRIORITY, LEAF_PRIORITY, ALL_WITH_INDETERMINATE];\n        return includes(acceptableValues, value);\n      }\n    },\n    valueFormat: {\n      type: String,\n      default: 'id'\n    },\n    zIndex: {\n      type: [Number, String],\n      default: 999\n    }\n  },\n  data: function data() {\n    return {\n      trigger: {\n        isFocused: false,\n        searchQuery: ''\n      },\n      menu: {\n        isOpen: false,\n        current: null,\n        lastScrollPosition: 0,\n        placement: 'bottom'\n      },\n      forest: {\n        normalizedOptions: [],\n        nodeMap: createMap(),\n        checkedStateMap: createMap(),\n        selectedNodeIds: this.extractCheckedNodeIdsFromValue(),\n        selectedNodeMap: createMap()\n      },\n      rootOptionsStates: createAsyncOptionsStates(),\n      localSearch: {\n        active: false,\n        noResults: true,\n        countMap: createMap()\n      },\n      remoteSearch: createMap()\n    };\n  },\n  computed: {\n    selectedNodes: function selectedNodes() {\n      return this.forest.selectedNodeIds.map(this.getNode);\n    },\n    internalValue: function internalValue() {\n      var _this = this;\n\n      var internalValue;\n\n      if (this.single || this.flat || this.disableBranchNodes || this.valueConsistsOf === ALL) {\n        internalValue = this.forest.selectedNodeIds.slice();\n      } else if (this.valueConsistsOf === BRANCH_PRIORITY) {\n        internalValue = this.forest.selectedNodeIds.filter(function (id) {\n          var node = _this.getNode(id);\n\n          if (node.isRootNode) return true;\n          return !_this.isSelected(node.parentNode);\n        });\n      } else if (this.valueConsistsOf === LEAF_PRIORITY) {\n        internalValue = this.forest.selectedNodeIds.filter(function (id) {\n          var node = _this.getNode(id);\n\n          if (node.isLeaf) return true;\n          return node.children.length === 0;\n        });\n      } else if (this.valueConsistsOf === ALL_WITH_INDETERMINATE) {\n        var _internalValue;\n\n        var indeterminateNodeIds = [];\n        internalValue = this.forest.selectedNodeIds.slice();\n        this.selectedNodes.forEach(function (selectedNode) {\n          selectedNode.ancestors.forEach(function (ancestor) {\n            if (includes(indeterminateNodeIds, ancestor.id)) return;\n            if (includes(internalValue, ancestor.id)) return;\n            indeterminateNodeIds.push(ancestor.id);\n          });\n        });\n\n        (_internalValue = internalValue).push.apply(_internalValue, indeterminateNodeIds);\n      }\n\n      if (this.sortValueBy === LEVEL) {\n        internalValue.sort(function (a, b) {\n          return sortValueByLevel(_this.getNode(a), _this.getNode(b));\n        });\n      } else if (this.sortValueBy === INDEX) {\n        internalValue.sort(function (a, b) {\n          return sortValueByIndex(_this.getNode(a), _this.getNode(b));\n        });\n      }\n\n      return internalValue;\n    },\n    hasValue: function hasValue() {\n      return this.internalValue.length > 0;\n    },\n    single: function single() {\n      return !this.multiple;\n    },\n    visibleOptionIds: function visibleOptionIds() {\n      var _this2 = this;\n\n      var visibleOptionIds = [];\n      this.traverseAllNodesByIndex(function (node) {\n        if (!_this2.localSearch.active || _this2.shouldOptionBeIncludedInSearchResult(node)) {\n          visibleOptionIds.push(node.id);\n        }\n\n        if (node.isBranch && !_this2.shouldExpand(node)) {\n          return false;\n        }\n      });\n      return visibleOptionIds;\n    },\n    hasVisibleOptions: function hasVisibleOptions() {\n      return this.visibleOptionIds.length !== 0;\n    },\n    showCountOnSearchComputed: function showCountOnSearchComputed() {\n      return typeof this.showCountOnSearch === 'boolean' ? this.showCountOnSearch : this.showCount;\n    },\n    hasBranchNodes: function hasBranchNodes() {\n      return this.forest.normalizedOptions.some(function (rootNode) {\n        return rootNode.isBranch;\n      });\n    },\n    shouldFlattenOptions: function shouldFlattenOptions() {\n      return this.localSearch.active && this.flattenSearchResults;\n    }\n  },\n  watch: {\n    alwaysOpen: function alwaysOpen(newValue) {\n      if (newValue) this.openMenu();else this.closeMenu();\n    },\n    branchNodesFirst: function branchNodesFirst() {\n      this.initialize();\n    },\n    disabled: function disabled(newValue) {\n      if (newValue && this.menu.isOpen) this.closeMenu();else if (!newValue && !this.menu.isOpen && this.alwaysOpen) this.openMenu();\n    },\n    flat: function flat() {\n      this.initialize();\n    },\n    internalValue: function internalValue(newValue, oldValue) {\n      var hasChanged = quickDiff(newValue, oldValue);\n      if (hasChanged) this.$emit('input', this.getValue(), this.getInstanceId());\n    },\n    matchKeys: function matchKeys() {\n      this.initialize();\n    },\n    multiple: function multiple(newValue) {\n      if (newValue) this.buildForestState();\n    },\n    options: {\n      handler: function handler() {\n        if (this.async) return;\n        this.initialize();\n        this.rootOptionsStates.isLoaded = Array.isArray(this.options);\n      },\n      deep: true,\n      immediate: true\n    },\n    'trigger.searchQuery': function triggerSearchQuery() {\n      if (this.async) {\n        this.handleRemoteSearch();\n      } else {\n        this.handleLocalSearch();\n      }\n\n      this.$emit('search-change', this.trigger.searchQuery, this.getInstanceId());\n    },\n    value: function value() {\n      var nodeIdsFromValue = this.extractCheckedNodeIdsFromValue();\n      var hasChanged = quickDiff(nodeIdsFromValue, this.internalValue);\n      if (hasChanged) this.fixSelectedNodeIds(nodeIdsFromValue);\n    }\n  },\n  methods: {\n    verifyProps: function verifyProps() {\n      var _this3 = this;\n\n      warning(function () {\n        return _this3.async ? _this3.searchable : true;\n      }, function () {\n        return 'For async search mode, the value of \"searchable\" prop must be true.';\n      });\n\n      if (this.options == null && !this.loadOptions) {\n        warning(function () {\n          return false;\n        }, function () {\n          return 'Are you meant to dynamically load options? You need to use \"loadOptions\" prop.';\n        });\n      }\n\n      if (this.flat) {\n        warning(function () {\n          return _this3.multiple;\n        }, function () {\n          return 'You are using flat mode. But you forgot to add \"multiple=true\"?';\n        });\n      }\n\n      if (!this.flat) {\n        var propNames = ['autoSelectAncestors', 'autoSelectDescendants', 'autoDeselectAncestors', 'autoDeselectDescendants'];\n        propNames.forEach(function (propName) {\n          warning(function () {\n            return !_this3[propName];\n          }, function () {\n            return \"\\\"\".concat(propName, \"\\\" only applies to flat mode.\");\n          });\n        });\n      }\n    },\n    resetFlags: function resetFlags() {\n      this._blurOnSelect = false;\n    },\n    initialize: function initialize() {\n      var options = this.async ? this.getRemoteSearchEntry().options : this.options;\n\n      if (Array.isArray(options)) {\n        var prevNodeMap = this.forest.nodeMap;\n        this.forest.nodeMap = createMap();\n        this.keepDataOfSelectedNodes(prevNodeMap);\n        this.forest.normalizedOptions = this.normalize(NO_PARENT_NODE, options, prevNodeMap);\n        this.fixSelectedNodeIds(this.internalValue);\n      } else {\n        this.forest.normalizedOptions = [];\n      }\n    },\n    getInstanceId: function getInstanceId() {\n      return this.instanceId == null ? this.id : this.instanceId;\n    },\n    getValue: function getValue() {\n      var _this4 = this;\n\n      if (this.valueFormat === 'id') {\n        return this.multiple ? this.internalValue.slice() : this.internalValue[0];\n      }\n\n      var rawNodes = this.internalValue.map(function (id) {\n        return _this4.getNode(id).raw;\n      });\n      return this.multiple ? rawNodes : rawNodes[0];\n    },\n    getNode: function getNode(nodeId) {\n      warning(function () {\n        return nodeId != null;\n      }, function () {\n        return \"Invalid node id: \".concat(nodeId);\n      });\n      if (nodeId == null) return null;\n      return nodeId in this.forest.nodeMap ? this.forest.nodeMap[nodeId] : this.createFallbackNode(nodeId);\n    },\n    createFallbackNode: function createFallbackNode(id) {\n      var raw = this.extractNodeFromValue(id);\n      var label = this.enhancedNormalizer(raw).label || \"\".concat(id, \" (unknown)\");\n      var fallbackNode = {\n        id: id,\n        label: label,\n        ancestors: [],\n        parentNode: NO_PARENT_NODE,\n        isFallbackNode: true,\n        isRootNode: true,\n        isLeaf: true,\n        isBranch: false,\n        isDisabled: false,\n        isNew: false,\n        index: [-1],\n        level: 0,\n        raw: raw\n      };\n      return this.$set(this.forest.nodeMap, id, fallbackNode);\n    },\n    extractCheckedNodeIdsFromValue: function extractCheckedNodeIdsFromValue() {\n      var _this5 = this;\n\n      if (this.value == null) return [];\n\n      if (this.valueFormat === 'id') {\n        return this.multiple ? this.value.slice() : [this.value];\n      }\n\n      return (this.multiple ? this.value : [this.value]).map(function (node) {\n        return _this5.enhancedNormalizer(node);\n      }).map(function (node) {\n        return node.id;\n      });\n    },\n    extractNodeFromValue: function extractNodeFromValue(id) {\n      var _this6 = this;\n\n      var defaultNode = {\n        id: id\n      };\n\n      if (this.valueFormat === 'id') {\n        return defaultNode;\n      }\n\n      var valueArray = this.multiple ? Array.isArray(this.value) ? this.value : [] : this.value ? [this.value] : [];\n      var matched = find(valueArray, function (node) {\n        return node && _this6.enhancedNormalizer(node).id === id;\n      });\n      return matched || defaultNode;\n    },\n    fixSelectedNodeIds: function fixSelectedNodeIds(nodeIdListOfPrevValue) {\n      var _this7 = this;\n\n      var nextSelectedNodeIds = [];\n\n      if (this.single || this.flat || this.disableBranchNodes || this.valueConsistsOf === ALL) {\n        nextSelectedNodeIds = nodeIdListOfPrevValue;\n      } else if (this.valueConsistsOf === BRANCH_PRIORITY) {\n        nodeIdListOfPrevValue.forEach(function (nodeId) {\n          nextSelectedNodeIds.push(nodeId);\n\n          var node = _this7.getNode(nodeId);\n\n          if (node.isBranch) _this7.traverseDescendantsBFS(node, function (descendant) {\n            nextSelectedNodeIds.push(descendant.id);\n          });\n        });\n      } else if (this.valueConsistsOf === LEAF_PRIORITY) {\n        var map = createMap();\n        var queue = nodeIdListOfPrevValue.slice();\n\n        while (queue.length) {\n          var nodeId = queue.shift();\n          var node = this.getNode(nodeId);\n          nextSelectedNodeIds.push(nodeId);\n          if (node.isRootNode) continue;\n          if (!(node.parentNode.id in map)) map[node.parentNode.id] = node.parentNode.children.length;\n          if (--map[node.parentNode.id] === 0) queue.push(node.parentNode.id);\n        }\n      } else if (this.valueConsistsOf === ALL_WITH_INDETERMINATE) {\n        var _map = createMap();\n\n        var _queue = nodeIdListOfPrevValue.filter(function (nodeId) {\n          var node = _this7.getNode(nodeId);\n\n          return node.isLeaf || node.children.length === 0;\n        });\n\n        while (_queue.length) {\n          var _nodeId = _queue.shift();\n\n          var _node = this.getNode(_nodeId);\n\n          nextSelectedNodeIds.push(_nodeId);\n          if (_node.isRootNode) continue;\n          if (!(_node.parentNode.id in _map)) _map[_node.parentNode.id] = _node.parentNode.children.length;\n          if (--_map[_node.parentNode.id] === 0) _queue.push(_node.parentNode.id);\n        }\n      }\n\n      var hasChanged = quickDiff(this.forest.selectedNodeIds, nextSelectedNodeIds);\n      if (hasChanged) this.forest.selectedNodeIds = nextSelectedNodeIds;\n      this.buildForestState();\n    },\n    keepDataOfSelectedNodes: function keepDataOfSelectedNodes(prevNodeMap) {\n      var _this8 = this;\n\n      this.forest.selectedNodeIds.forEach(function (id) {\n        if (!prevNodeMap[id]) return;\n\n        var node = _objectSpread({}, prevNodeMap[id], {\n          isFallbackNode: true\n        });\n\n        _this8.$set(_this8.forest.nodeMap, id, node);\n      });\n    },\n    isSelected: function isSelected(node) {\n      return this.forest.selectedNodeMap[node.id] === true;\n    },\n    traverseDescendantsBFS: function traverseDescendantsBFS(parentNode, callback) {\n      if (!parentNode.isBranch) return;\n      var queue = parentNode.children.slice();\n\n      while (queue.length) {\n        var currNode = queue[0];\n        if (currNode.isBranch) queue.push.apply(queue, _toConsumableArray(currNode.children));\n        callback(currNode);\n        queue.shift();\n      }\n    },\n    traverseDescendantsDFS: function traverseDescendantsDFS(parentNode, callback) {\n      var _this9 = this;\n\n      if (!parentNode.isBranch) return;\n      parentNode.children.forEach(function (child) {\n        _this9.traverseDescendantsDFS(child, callback);\n\n        callback(child);\n      });\n    },\n    traverseAllNodesDFS: function traverseAllNodesDFS(callback) {\n      var _this10 = this;\n\n      this.forest.normalizedOptions.forEach(function (rootNode) {\n        _this10.traverseDescendantsDFS(rootNode, callback);\n\n        callback(rootNode);\n      });\n    },\n    traverseAllNodesByIndex: function traverseAllNodesByIndex(callback) {\n      var walk = function walk(parentNode) {\n        parentNode.children.forEach(function (child) {\n          if (callback(child) !== false && child.isBranch) {\n            walk(child);\n          }\n        });\n      };\n\n      walk({\n        children: this.forest.normalizedOptions\n      });\n    },\n    toggleClickOutsideEvent: function toggleClickOutsideEvent(enabled) {\n      if (enabled) {\n        document.addEventListener('mousedown', this.handleClickOutside, false);\n      } else {\n        document.removeEventListener('mousedown', this.handleClickOutside, false);\n      }\n    },\n    getValueContainer: function getValueContainer() {\n      return this.$refs.control.$refs['value-container'];\n    },\n    getInput: function getInput() {\n      return this.getValueContainer().$refs.input;\n    },\n    focusInput: function focusInput() {\n      this.getInput().focus();\n    },\n    blurInput: function blurInput() {\n      this.getInput().blur();\n    },\n    handleMouseDown: onLeftClick(function handleMouseDown(evt) {\n      evt.preventDefault();\n      evt.stopPropagation();\n      if (this.disabled) return;\n      var isClickedOnValueContainer = this.getValueContainer().$el.contains(evt.target);\n\n      if (isClickedOnValueContainer && !this.menu.isOpen && (this.openOnClick || this.trigger.isFocused)) {\n        this.openMenu();\n      }\n\n      if (this._blurOnSelect) {\n        this.blurInput();\n      } else {\n        this.focusInput();\n      }\n\n      this.resetFlags();\n    }),\n    handleClickOutside: function handleClickOutside(evt) {\n      if (this.$refs.wrapper && !this.$refs.wrapper.contains(evt.target)) {\n        this.blurInput();\n        this.closeMenu();\n      }\n    },\n    handleLocalSearch: function handleLocalSearch() {\n      var _this11 = this;\n\n      var searchQuery = this.trigger.searchQuery;\n\n      var done = function done() {\n        return _this11.resetHighlightedOptionWhenNecessary(true);\n      };\n\n      if (!searchQuery) {\n        this.localSearch.active = false;\n        return done();\n      }\n\n      this.localSearch.active = true;\n      this.localSearch.noResults = true;\n      this.traverseAllNodesDFS(function (node) {\n        if (node.isBranch) {\n          var _this11$$set;\n\n          node.isExpandedOnSearch = false;\n          node.showAllChildrenOnSearch = false;\n          node.isMatched = false;\n          node.hasMatchedDescendants = false;\n\n          _this11.$set(_this11.localSearch.countMap, node.id, (_this11$$set = {}, _defineProperty(_this11$$set, ALL_CHILDREN, 0), _defineProperty(_this11$$set, ALL_DESCENDANTS, 0), _defineProperty(_this11$$set, LEAF_CHILDREN, 0), _defineProperty(_this11$$set, LEAF_DESCENDANTS, 0), _this11$$set));\n        }\n      });\n      var lowerCasedSearchQuery = searchQuery.trim().toLocaleLowerCase();\n      var splitSearchQuery = lowerCasedSearchQuery.replace(/\\s+/g, ' ').split(' ');\n      this.traverseAllNodesDFS(function (node) {\n        if (_this11.searchNested && splitSearchQuery.length > 1) {\n          node.isMatched = splitSearchQuery.every(function (filterValue) {\n            return match(false, filterValue, node.nestedSearchLabel);\n          });\n        } else {\n          node.isMatched = _this11.matchKeys.some(function (matchKey) {\n            return match(!_this11.disableFuzzyMatching, lowerCasedSearchQuery, node.lowerCased[matchKey]);\n          });\n        }\n\n        if (node.isMatched) {\n          _this11.localSearch.noResults = false;\n          node.ancestors.forEach(function (ancestor) {\n            return _this11.localSearch.countMap[ancestor.id][ALL_DESCENDANTS]++;\n          });\n          if (node.isLeaf) node.ancestors.forEach(function (ancestor) {\n            return _this11.localSearch.countMap[ancestor.id][LEAF_DESCENDANTS]++;\n          });\n\n          if (node.parentNode !== NO_PARENT_NODE) {\n            _this11.localSearch.countMap[node.parentNode.id][ALL_CHILDREN] += 1;\n            if (node.isLeaf) _this11.localSearch.countMap[node.parentNode.id][LEAF_CHILDREN] += 1;\n          }\n        }\n\n        if ((node.isMatched || node.isBranch && node.isExpandedOnSearch) && node.parentNode !== NO_PARENT_NODE) {\n          node.parentNode.isExpandedOnSearch = true;\n          node.parentNode.hasMatchedDescendants = true;\n        }\n      });\n      done();\n    },\n    handleRemoteSearch: function handleRemoteSearch() {\n      var _this12 = this;\n\n      var searchQuery = this.trigger.searchQuery;\n      var entry = this.getRemoteSearchEntry();\n\n      var done = function done() {\n        _this12.initialize();\n\n        _this12.resetHighlightedOptionWhenNecessary(true);\n      };\n\n      if ((searchQuery === '' || this.cacheOptions) && entry.isLoaded) {\n        return done();\n      }\n\n      this.callLoadOptionsProp({\n        action: ASYNC_SEARCH,\n        args: {\n          searchQuery: searchQuery\n        },\n        isPending: function isPending() {\n          return entry.isLoading;\n        },\n        start: function start() {\n          entry.isLoading = true;\n          entry.isLoaded = false;\n          entry.loadingError = '';\n        },\n        succeed: function succeed(options) {\n          entry.isLoaded = true;\n          entry.options = options;\n          if (_this12.trigger.searchQuery === searchQuery) done();\n        },\n        fail: function fail(err) {\n          entry.loadingError = getErrorMessage(err);\n        },\n        end: function end() {\n          entry.isLoading = false;\n        }\n      });\n    },\n    getRemoteSearchEntry: function getRemoteSearchEntry() {\n      var _this13 = this;\n\n      var searchQuery = this.trigger.searchQuery;\n\n      var entry = this.remoteSearch[searchQuery] || _objectSpread({}, createAsyncOptionsStates(), {\n        options: []\n      });\n\n      this.$watch(function () {\n        return entry.options;\n      }, function () {\n        if (_this13.trigger.searchQuery === searchQuery) _this13.initialize();\n      }, {\n        deep: true\n      });\n\n      if (searchQuery === '') {\n        if (Array.isArray(this.defaultOptions)) {\n          entry.options = this.defaultOptions;\n          entry.isLoaded = true;\n          return entry;\n        } else if (this.defaultOptions !== true) {\n          entry.isLoaded = true;\n          return entry;\n        }\n      }\n\n      if (!this.remoteSearch[searchQuery]) {\n        this.$set(this.remoteSearch, searchQuery, entry);\n      }\n\n      return entry;\n    },\n    shouldExpand: function shouldExpand(node) {\n      return this.localSearch.active ? node.isExpandedOnSearch : node.isExpanded;\n    },\n    shouldOptionBeIncludedInSearchResult: function shouldOptionBeIncludedInSearchResult(node) {\n      if (node.isMatched) return true;\n      if (node.isBranch && node.hasMatchedDescendants && !this.flattenSearchResults) return true;\n      if (!node.isRootNode && node.parentNode.showAllChildrenOnSearch) return true;\n      return false;\n    },\n    shouldShowOptionInMenu: function shouldShowOptionInMenu(node) {\n      if (this.localSearch.active && !this.shouldOptionBeIncludedInSearchResult(node)) {\n        return false;\n      }\n\n      return true;\n    },\n    getControl: function getControl() {\n      return this.$refs.control.$el;\n    },\n    getMenu: function getMenu() {\n      var ref = this.appendToBody ? this.$refs.portal.portalTarget : this;\n      var $menu = ref.$refs.menu.$refs.menu;\n      return $menu && $menu.nodeName !== '#comment' ? $menu : null;\n    },\n    setCurrentHighlightedOption: function setCurrentHighlightedOption(node) {\n      var _this14 = this;\n\n      var scroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n      var prev = this.menu.current;\n\n      if (prev != null && prev in this.forest.nodeMap) {\n        this.forest.nodeMap[prev].isHighlighted = false;\n      }\n\n      this.menu.current = node.id;\n      node.isHighlighted = true;\n\n      if (this.menu.isOpen && scroll) {\n        var scrollToOption = function scrollToOption() {\n          var $menu = _this14.getMenu();\n\n          var $option = $menu.querySelector(\".vue-treeselect__option[data-id=\\\"\".concat(node.id, \"\\\"]\"));\n          if ($option) scrollIntoView($menu, $option);\n        };\n\n        if (this.getMenu()) {\n          scrollToOption();\n        } else {\n          this.$nextTick(scrollToOption);\n        }\n      }\n    },\n    resetHighlightedOptionWhenNecessary: function resetHighlightedOptionWhenNecessary() {\n      var forceReset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var current = this.menu.current;\n\n      if (forceReset || current == null || !(current in this.forest.nodeMap) || !this.shouldShowOptionInMenu(this.getNode(current))) {\n        this.highlightFirstOption();\n      }\n    },\n    highlightFirstOption: function highlightFirstOption() {\n      if (!this.hasVisibleOptions) return;\n      var first = this.visibleOptionIds[0];\n      this.setCurrentHighlightedOption(this.getNode(first));\n    },\n    highlightPrevOption: function highlightPrevOption() {\n      if (!this.hasVisibleOptions) return;\n      var prev = this.visibleOptionIds.indexOf(this.menu.current) - 1;\n      if (prev === -1) return this.highlightLastOption();\n      this.setCurrentHighlightedOption(this.getNode(this.visibleOptionIds[prev]));\n    },\n    highlightNextOption: function highlightNextOption() {\n      if (!this.hasVisibleOptions) return;\n      var next = this.visibleOptionIds.indexOf(this.menu.current) + 1;\n      if (next === this.visibleOptionIds.length) return this.highlightFirstOption();\n      this.setCurrentHighlightedOption(this.getNode(this.visibleOptionIds[next]));\n    },\n    highlightLastOption: function highlightLastOption() {\n      if (!this.hasVisibleOptions) return;\n      var last = getLast(this.visibleOptionIds);\n      this.setCurrentHighlightedOption(this.getNode(last));\n    },\n    resetSearchQuery: function resetSearchQuery() {\n      this.trigger.searchQuery = '';\n    },\n    closeMenu: function closeMenu() {\n      if (!this.menu.isOpen || !this.disabled && this.alwaysOpen) return;\n      this.saveMenuScrollPosition();\n      this.menu.isOpen = false;\n      this.toggleClickOutsideEvent(false);\n      this.resetSearchQuery();\n      this.$emit('close', this.getValue(), this.getInstanceId());\n    },\n    openMenu: function openMenu() {\n      if (this.disabled || this.menu.isOpen) return;\n      this.menu.isOpen = true;\n      this.$nextTick(this.resetHighlightedOptionWhenNecessary);\n      this.$nextTick(this.restoreMenuScrollPosition);\n      if (!this.options && !this.async) this.loadRootOptions();\n      this.toggleClickOutsideEvent(true);\n      this.$emit('open', this.getInstanceId());\n    },\n    toggleMenu: function toggleMenu() {\n      if (this.menu.isOpen) {\n        this.closeMenu();\n      } else {\n        this.openMenu();\n      }\n    },\n    toggleExpanded: function toggleExpanded(node) {\n      var nextState;\n\n      if (this.localSearch.active) {\n        nextState = node.isExpandedOnSearch = !node.isExpandedOnSearch;\n        if (nextState) node.showAllChildrenOnSearch = true;\n      } else {\n        nextState = node.isExpanded = !node.isExpanded;\n      }\n\n      if (nextState && !node.childrenStates.isLoaded) {\n        this.loadChildrenOptions(node);\n      }\n    },\n    buildForestState: function buildForestState() {\n      var _this15 = this;\n\n      var selectedNodeMap = createMap();\n      this.forest.selectedNodeIds.forEach(function (selectedNodeId) {\n        selectedNodeMap[selectedNodeId] = true;\n      });\n      this.forest.selectedNodeMap = selectedNodeMap;\n      var checkedStateMap = createMap();\n\n      if (this.multiple) {\n        this.traverseAllNodesByIndex(function (node) {\n          checkedStateMap[node.id] = UNCHECKED;\n        });\n        this.selectedNodes.forEach(function (selectedNode) {\n          checkedStateMap[selectedNode.id] = CHECKED;\n\n          if (!_this15.flat && !_this15.disableBranchNodes) {\n            selectedNode.ancestors.forEach(function (ancestorNode) {\n              if (!_this15.isSelected(ancestorNode)) {\n                checkedStateMap[ancestorNode.id] = INDETERMINATE;\n              }\n            });\n          }\n        });\n      }\n\n      this.forest.checkedStateMap = checkedStateMap;\n    },\n    enhancedNormalizer: function enhancedNormalizer(raw) {\n      return _objectSpread({}, raw, {}, this.normalizer(raw, this.getInstanceId()));\n    },\n    normalize: function normalize(parentNode, nodes, prevNodeMap) {\n      var _this16 = this;\n\n      var normalizedOptions = nodes.map(function (node) {\n        return [_this16.enhancedNormalizer(node), node];\n      }).map(function (_ref, index) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            node = _ref2[0],\n            raw = _ref2[1];\n\n        _this16.checkDuplication(node);\n\n        _this16.verifyNodeShape(node);\n\n        var id = node.id,\n            label = node.label,\n            children = node.children,\n            isDefaultExpanded = node.isDefaultExpanded;\n        var isRootNode = parentNode === NO_PARENT_NODE;\n        var level = isRootNode ? 0 : parentNode.level + 1;\n        var isBranch = Array.isArray(children) || children === null;\n        var isLeaf = !isBranch;\n        var isDisabled = !!node.isDisabled || !_this16.flat && !isRootNode && parentNode.isDisabled;\n        var isNew = !!node.isNew;\n\n        var lowerCased = _this16.matchKeys.reduce(function (prev, key) {\n          return _objectSpread({}, prev, _defineProperty({}, key, stringifyOptionPropValue(node[key]).toLocaleLowerCase()));\n        }, {});\n\n        var nestedSearchLabel = isRootNode ? lowerCased.label : parentNode.nestedSearchLabel + ' ' + lowerCased.label;\n\n        var normalized = _this16.$set(_this16.forest.nodeMap, id, createMap());\n\n        _this16.$set(normalized, 'id', id);\n\n        _this16.$set(normalized, 'label', label);\n\n        _this16.$set(normalized, 'level', level);\n\n        _this16.$set(normalized, 'ancestors', isRootNode ? [] : [parentNode].concat(parentNode.ancestors));\n\n        _this16.$set(normalized, 'index', (isRootNode ? [] : parentNode.index).concat(index));\n\n        _this16.$set(normalized, 'parentNode', parentNode);\n\n        _this16.$set(normalized, 'lowerCased', lowerCased);\n\n        _this16.$set(normalized, 'nestedSearchLabel', nestedSearchLabel);\n\n        _this16.$set(normalized, 'isDisabled', isDisabled);\n\n        _this16.$set(normalized, 'isNew', isNew);\n\n        _this16.$set(normalized, 'isMatched', false);\n\n        _this16.$set(normalized, 'isHighlighted', false);\n\n        _this16.$set(normalized, 'isBranch', isBranch);\n\n        _this16.$set(normalized, 'isLeaf', isLeaf);\n\n        _this16.$set(normalized, 'isRootNode', isRootNode);\n\n        _this16.$set(normalized, 'raw', raw);\n\n        if (isBranch) {\n          var _this16$$set;\n\n          var isLoaded = Array.isArray(children);\n\n          _this16.$set(normalized, 'childrenStates', _objectSpread({}, createAsyncOptionsStates(), {\n            isLoaded: isLoaded\n          }));\n\n          _this16.$set(normalized, 'isExpanded', typeof isDefaultExpanded === 'boolean' ? isDefaultExpanded : level < _this16.defaultExpandLevel);\n\n          _this16.$set(normalized, 'hasMatchedDescendants', false);\n\n          _this16.$set(normalized, 'hasDisabledDescendants', false);\n\n          _this16.$set(normalized, 'isExpandedOnSearch', false);\n\n          _this16.$set(normalized, 'showAllChildrenOnSearch', false);\n\n          _this16.$set(normalized, 'count', (_this16$$set = {}, _defineProperty(_this16$$set, ALL_CHILDREN, 0), _defineProperty(_this16$$set, ALL_DESCENDANTS, 0), _defineProperty(_this16$$set, LEAF_CHILDREN, 0), _defineProperty(_this16$$set, LEAF_DESCENDANTS, 0), _this16$$set));\n\n          _this16.$set(normalized, 'children', isLoaded ? _this16.normalize(normalized, children, prevNodeMap) : []);\n\n          if (isDefaultExpanded === true) normalized.ancestors.forEach(function (ancestor) {\n            ancestor.isExpanded = true;\n          });\n\n          if (!isLoaded && typeof _this16.loadOptions !== 'function') {\n            warning(function () {\n              return false;\n            }, function () {\n              return 'Unloaded branch node detected. \"loadOptions\" prop is required to load its children.';\n            });\n          } else if (!isLoaded && normalized.isExpanded) {\n            _this16.loadChildrenOptions(normalized);\n          }\n        }\n\n        normalized.ancestors.forEach(function (ancestor) {\n          return ancestor.count[ALL_DESCENDANTS]++;\n        });\n        if (isLeaf) normalized.ancestors.forEach(function (ancestor) {\n          return ancestor.count[LEAF_DESCENDANTS]++;\n        });\n\n        if (!isRootNode) {\n          parentNode.count[ALL_CHILDREN] += 1;\n          if (isLeaf) parentNode.count[LEAF_CHILDREN] += 1;\n          if (isDisabled) parentNode.hasDisabledDescendants = true;\n        }\n\n        if (prevNodeMap && prevNodeMap[id]) {\n          var prev = prevNodeMap[id];\n          normalized.isMatched = prev.isMatched;\n          normalized.showAllChildrenOnSearch = prev.showAllChildrenOnSearch;\n          normalized.isHighlighted = prev.isHighlighted;\n\n          if (prev.isBranch && normalized.isBranch) {\n            normalized.isExpanded = prev.isExpanded;\n            normalized.isExpandedOnSearch = prev.isExpandedOnSearch;\n\n            if (prev.childrenStates.isLoaded && !normalized.childrenStates.isLoaded) {\n              normalized.isExpanded = false;\n            } else {\n              normalized.childrenStates = _objectSpread({}, prev.childrenStates);\n            }\n          }\n        }\n\n        return normalized;\n      });\n\n      if (this.branchNodesFirst) {\n        var branchNodes = normalizedOptions.filter(function (option) {\n          return option.isBranch;\n        });\n        var leafNodes = normalizedOptions.filter(function (option) {\n          return option.isLeaf;\n        });\n        normalizedOptions = branchNodes.concat(leafNodes);\n      }\n\n      return normalizedOptions;\n    },\n    loadRootOptions: function loadRootOptions() {\n      var _this17 = this;\n\n      this.callLoadOptionsProp({\n        action: LOAD_ROOT_OPTIONS,\n        isPending: function isPending() {\n          return _this17.rootOptionsStates.isLoading;\n        },\n        start: function start() {\n          _this17.rootOptionsStates.isLoading = true;\n          _this17.rootOptionsStates.loadingError = '';\n        },\n        succeed: function succeed() {\n          _this17.rootOptionsStates.isLoaded = true;\n\n          _this17.$nextTick(function () {\n            _this17.resetHighlightedOptionWhenNecessary(true);\n          });\n        },\n        fail: function fail(err) {\n          _this17.rootOptionsStates.loadingError = getErrorMessage(err);\n        },\n        end: function end() {\n          _this17.rootOptionsStates.isLoading = false;\n        }\n      });\n    },\n    loadChildrenOptions: function loadChildrenOptions(parentNode) {\n      var _this18 = this;\n\n      var id = parentNode.id,\n          raw = parentNode.raw;\n      this.callLoadOptionsProp({\n        action: LOAD_CHILDREN_OPTIONS,\n        args: {\n          parentNode: raw\n        },\n        isPending: function isPending() {\n          return _this18.getNode(id).childrenStates.isLoading;\n        },\n        start: function start() {\n          _this18.getNode(id).childrenStates.isLoading = true;\n          _this18.getNode(id).childrenStates.loadingError = '';\n        },\n        succeed: function succeed() {\n          _this18.getNode(id).childrenStates.isLoaded = true;\n        },\n        fail: function fail(err) {\n          _this18.getNode(id).childrenStates.loadingError = getErrorMessage(err);\n        },\n        end: function end() {\n          _this18.getNode(id).childrenStates.isLoading = false;\n        }\n      });\n    },\n    callLoadOptionsProp: function callLoadOptionsProp(_ref3) {\n      var action = _ref3.action,\n          args = _ref3.args,\n          isPending = _ref3.isPending,\n          start = _ref3.start,\n          succeed = _ref3.succeed,\n          fail = _ref3.fail,\n          end = _ref3.end;\n\n      if (!this.loadOptions || isPending()) {\n        return;\n      }\n\n      start();\n      var callback = once(function (err, result) {\n        if (err) {\n          fail(err);\n        } else {\n          succeed(result);\n        }\n\n        end();\n      });\n      var result = this.loadOptions(_objectSpread({\n        id: this.getInstanceId(),\n        instanceId: this.getInstanceId(),\n        action: action\n      }, args, {\n        callback: callback\n      }));\n\n      if (isPromise(result)) {\n        result.then(function () {\n          callback();\n        }, function (err) {\n          callback(err);\n        }).catch(function (err) {\n          console.error(err);\n        });\n      }\n    },\n    checkDuplication: function checkDuplication(node) {\n      var _this19 = this;\n\n      warning(function () {\n        return !(node.id in _this19.forest.nodeMap && !_this19.forest.nodeMap[node.id].isFallbackNode);\n      }, function () {\n        return \"Detected duplicate presence of node id \".concat(JSON.stringify(node.id), \". \") + \"Their labels are \\\"\".concat(_this19.forest.nodeMap[node.id].label, \"\\\" and \\\"\").concat(node.label, \"\\\" respectively.\");\n      });\n    },\n    verifyNodeShape: function verifyNodeShape(node) {\n      warning(function () {\n        return !(node.children === undefined && node.isBranch === true);\n      }, function () {\n        return 'Are you meant to declare an unloaded branch node? ' + '`isBranch: true` is no longer supported, please use `children: null` instead.';\n      });\n    },\n    select: function select(node) {\n      if (this.disabled || node.isDisabled) {\n        return;\n      }\n\n      if (this.single) {\n        this.clear();\n      }\n\n      var nextState = this.multiple && !this.flat ? this.forest.checkedStateMap[node.id] === UNCHECKED : !this.isSelected(node);\n\n      if (nextState) {\n        this._selectNode(node);\n      } else {\n        this._deselectNode(node);\n      }\n\n      this.buildForestState();\n\n      if (nextState) {\n        this.$emit('select', node.raw, this.getInstanceId());\n      } else {\n        this.$emit('deselect', node.raw, this.getInstanceId());\n      }\n\n      if (this.localSearch.active && nextState && (this.single || this.clearOnSelect)) {\n        this.resetSearchQuery();\n      }\n\n      if (this.single && this.closeOnSelect) {\n        this.closeMenu();\n\n        if (this.searchable) {\n          this._blurOnSelect = true;\n        }\n      }\n    },\n    clear: function clear() {\n      var _this20 = this;\n\n      if (this.hasValue) {\n        if (this.single || this.allowClearingDisabled) {\n          this.forest.selectedNodeIds = [];\n        } else {\n            this.forest.selectedNodeIds = this.forest.selectedNodeIds.filter(function (nodeId) {\n              return _this20.getNode(nodeId).isDisabled;\n            });\n          }\n\n        this.buildForestState();\n      }\n    },\n    _selectNode: function _selectNode(node) {\n      var _this21 = this;\n\n      if (this.single || this.disableBranchNodes) {\n        return this.addValue(node);\n      }\n\n      if (this.flat) {\n        this.addValue(node);\n\n        if (this.autoSelectAncestors) {\n          node.ancestors.forEach(function (ancestor) {\n            if (!_this21.isSelected(ancestor) && !ancestor.isDisabled) _this21.addValue(ancestor);\n          });\n        } else if (this.autoSelectDescendants) {\n          this.traverseDescendantsBFS(node, function (descendant) {\n            if (!_this21.isSelected(descendant) && !descendant.isDisabled) _this21.addValue(descendant);\n          });\n        }\n\n        return;\n      }\n\n      var isFullyChecked = node.isLeaf || !node.hasDisabledDescendants || this.allowSelectingDisabledDescendants;\n\n      if (isFullyChecked) {\n        this.addValue(node);\n      }\n\n      if (node.isBranch) {\n        this.traverseDescendantsBFS(node, function (descendant) {\n          if (!descendant.isDisabled || _this21.allowSelectingDisabledDescendants) {\n            _this21.addValue(descendant);\n          }\n        });\n      }\n\n      if (isFullyChecked) {\n        var curr = node;\n\n        while ((curr = curr.parentNode) !== NO_PARENT_NODE) {\n          if (curr.children.every(this.isSelected)) this.addValue(curr);else break;\n        }\n      }\n    },\n    _deselectNode: function _deselectNode(node) {\n      var _this22 = this;\n\n      if (this.disableBranchNodes) {\n        return this.removeValue(node);\n      }\n\n      if (this.flat) {\n        this.removeValue(node);\n\n        if (this.autoDeselectAncestors) {\n          node.ancestors.forEach(function (ancestor) {\n            if (_this22.isSelected(ancestor) && !ancestor.isDisabled) _this22.removeValue(ancestor);\n          });\n        } else if (this.autoDeselectDescendants) {\n          this.traverseDescendantsBFS(node, function (descendant) {\n            if (_this22.isSelected(descendant) && !descendant.isDisabled) _this22.removeValue(descendant);\n          });\n        }\n\n        return;\n      }\n\n      var hasUncheckedSomeDescendants = false;\n\n      if (node.isBranch) {\n        this.traverseDescendantsDFS(node, function (descendant) {\n          if (!descendant.isDisabled || _this22.allowSelectingDisabledDescendants) {\n            _this22.removeValue(descendant);\n\n            hasUncheckedSomeDescendants = true;\n          }\n        });\n      }\n\n      if (node.isLeaf || hasUncheckedSomeDescendants || node.children.length === 0) {\n        this.removeValue(node);\n        var curr = node;\n\n        while ((curr = curr.parentNode) !== NO_PARENT_NODE) {\n          if (this.isSelected(curr)) this.removeValue(curr);else break;\n        }\n      }\n    },\n    addValue: function addValue(node) {\n      this.forest.selectedNodeIds.push(node.id);\n      this.forest.selectedNodeMap[node.id] = true;\n    },\n    removeValue: function removeValue(node) {\n      removeFromArray(this.forest.selectedNodeIds, node.id);\n      delete this.forest.selectedNodeMap[node.id];\n    },\n    removeLastValue: function removeLastValue() {\n      if (!this.hasValue) return;\n      if (this.single) return this.clear();\n      var lastValue = getLast(this.internalValue);\n      var lastSelectedNode = this.getNode(lastValue);\n      this.select(lastSelectedNode);\n    },\n    saveMenuScrollPosition: function saveMenuScrollPosition() {\n      var $menu = this.getMenu();\n      if ($menu) this.menu.lastScrollPosition = $menu.scrollTop;\n    },\n    restoreMenuScrollPosition: function restoreMenuScrollPosition() {\n      var $menu = this.getMenu();\n      if ($menu) $menu.scrollTop = this.menu.lastScrollPosition;\n    }\n  },\n  created: function created() {\n    this.verifyProps();\n    this.resetFlags();\n  },\n  mounted: function mounted() {\n    if (this.autoFocus) this.focusInput();\n    if (!this.options && !this.async && this.autoLoadRootOptions) this.loadRootOptions();\n    if (this.alwaysOpen) this.openMenu();\n    if (this.async && this.defaultOptions) this.handleRemoteSearch();\n  },\n  destroyed: function destroyed() {\n    this.toggleClickOutsideEvent(false);\n  }\n};","import { isNaN } from '../utils';\n\nfunction stringifyValue(value) {\n  if (typeof value === 'string') return value;\n  if (value != null && !isNaN(value)) return JSON.stringify(value);\n  return '';\n}\n\nexport default {\n  name: 'vue-treeselect--hidden-fields',\n  inject: ['instance'],\n  functional: true,\n  render: function render(_, context) {\n    var h = arguments[0];\n    var instance = context.injections.instance;\n    if (!instance.name || instance.disabled || !instance.hasValue) return null;\n    var stringifiedValues = instance.internalValue.map(stringifyValue);\n    if (instance.multiple && instance.joinValues) stringifiedValues = [stringifiedValues.join(instance.delimiter)];\n    return stringifiedValues.map(function (stringifiedValue, i) {\n      return h(\"input\", {\n        attrs: {\n          type: \"hidden\",\n          name: instance.name\n        },\n        domProps: {\n          \"value\": stringifiedValue\n        },\n        key: 'hidden-field-' + i\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","var render, staticRenderFns\nimport script from \"./HiddenFields.vue?vue&type=script&lang=js&\"\nexport * from \"./HiddenFields.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('4d48089a')) {\n      api.createRecord('4d48089a', component.options)\n    } else {\n      api.reload('4d48089a', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/HiddenFields.vue\"\nexport default component.exports","import _mergeJSXProps from \"babel-helper-vue-jsx-merge-props\";\nimport { debounce, deepExtend, includes } from '../utils';\nimport { MIN_INPUT_WIDTH, KEY_CODES, INPUT_DEBOUNCE_DELAY } from '../constants';\nvar keysThatRequireMenuBeingOpen = [KEY_CODES.ENTER, KEY_CODES.END, KEY_CODES.HOME, KEY_CODES.ARROW_LEFT, KEY_CODES.ARROW_UP, KEY_CODES.ARROW_RIGHT, KEY_CODES.ARROW_DOWN];\nexport default {\n  name: 'vue-treeselect--input',\n  inject: ['instance'],\n  data: function data() {\n    return {\n      inputWidth: MIN_INPUT_WIDTH,\n      value: ''\n    };\n  },\n  computed: {\n    needAutoSize: function needAutoSize() {\n      var instance = this.instance;\n      return instance.searchable && !instance.disabled && instance.multiple;\n    },\n    inputStyle: function inputStyle() {\n      return {\n        width: this.needAutoSize ? \"\".concat(this.inputWidth, \"px\") : null\n      };\n    }\n  },\n  watch: {\n    'instance.trigger.searchQuery': function instanceTriggerSearchQuery(newValue) {\n      this.value = newValue;\n    },\n    value: function value() {\n      if (this.needAutoSize) this.$nextTick(this.updateInputWidth);\n    }\n  },\n  created: function created() {\n    this.debouncedCallback = debounce(this.updateSearchQuery, INPUT_DEBOUNCE_DELAY, {\n      leading: true,\n      trailing: true\n    });\n  },\n  methods: {\n    clear: function clear() {\n      this.onInput({\n        target: {\n          value: ''\n        }\n      });\n    },\n    focus: function focus() {\n      var instance = this.instance;\n\n      if (!instance.disabled) {\n        this.$refs.input && this.$refs.input.focus();\n      }\n    },\n    blur: function blur() {\n      this.$refs.input && this.$refs.input.blur();\n    },\n    onFocus: function onFocus() {\n      var instance = this.instance;\n      instance.trigger.isFocused = true;\n      if (instance.openOnFocus) instance.openMenu();\n    },\n    onBlur: function onBlur() {\n      var instance = this.instance;\n      var menu = instance.getMenu();\n\n      if (menu && document.activeElement === menu) {\n        return this.focus();\n      }\n\n      instance.trigger.isFocused = false;\n      instance.closeMenu();\n    },\n    onInput: function onInput(evt) {\n      var value = evt.target.value;\n      this.value = value;\n\n      if (value) {\n        this.debouncedCallback();\n      } else {\n        this.debouncedCallback.cancel();\n        this.updateSearchQuery();\n      }\n    },\n    onKeyDown: function onKeyDown(evt) {\n      var instance = this.instance;\n      var key = 'which' in evt ? evt.which : evt.keyCode;\n      if (evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) return;\n\n      if (!instance.menu.isOpen && includes(keysThatRequireMenuBeingOpen, key)) {\n        evt.preventDefault();\n        return instance.openMenu();\n      }\n\n      switch (key) {\n        case KEY_CODES.BACKSPACE:\n          {\n            if (instance.backspaceRemoves && !this.value.length) {\n              instance.removeLastValue();\n            }\n\n            break;\n          }\n\n        case KEY_CODES.ENTER:\n          {\n            evt.preventDefault();\n            if (instance.menu.current === null) return;\n            var current = instance.getNode(instance.menu.current);\n            if (current.isBranch && instance.disableBranchNodes) return;\n            instance.select(current);\n            break;\n          }\n\n        case KEY_CODES.ESCAPE:\n          {\n            if (this.value.length) {\n              this.clear();\n            } else if (instance.menu.isOpen) {\n              instance.closeMenu();\n            }\n\n            break;\n          }\n\n        case KEY_CODES.END:\n          {\n            evt.preventDefault();\n            instance.highlightLastOption();\n            break;\n          }\n\n        case KEY_CODES.HOME:\n          {\n            evt.preventDefault();\n            instance.highlightFirstOption();\n            break;\n          }\n\n        case KEY_CODES.ARROW_LEFT:\n          {\n            var _current = instance.getNode(instance.menu.current);\n\n            if (_current.isBranch && instance.shouldExpand(_current)) {\n              evt.preventDefault();\n              instance.toggleExpanded(_current);\n            } else if (!_current.isRootNode && (_current.isLeaf || _current.isBranch && !instance.shouldExpand(_current))) {\n              evt.preventDefault();\n              instance.setCurrentHighlightedOption(_current.parentNode);\n            }\n\n            break;\n          }\n\n        case KEY_CODES.ARROW_UP:\n          {\n            evt.preventDefault();\n            instance.highlightPrevOption();\n            break;\n          }\n\n        case KEY_CODES.ARROW_RIGHT:\n          {\n            var _current2 = instance.getNode(instance.menu.current);\n\n            if (_current2.isBranch && !instance.shouldExpand(_current2)) {\n              evt.preventDefault();\n              instance.toggleExpanded(_current2);\n            }\n\n            break;\n          }\n\n        case KEY_CODES.ARROW_DOWN:\n          {\n            evt.preventDefault();\n            instance.highlightNextOption();\n            break;\n          }\n\n        case KEY_CODES.DELETE:\n          {\n            if (instance.deleteRemoves && !this.value.length) {\n              instance.removeLastValue();\n            }\n\n            break;\n          }\n\n        default:\n          {\n            instance.openMenu();\n          }\n      }\n    },\n    onMouseDown: function onMouseDown(evt) {\n      if (this.value.length) {\n        evt.stopPropagation();\n      }\n    },\n    renderInputContainer: function renderInputContainer() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      var props = {};\n      var children = [];\n\n      if (instance.searchable && !instance.disabled) {\n        children.push(this.renderInput());\n        if (this.needAutoSize) children.push(this.renderSizer());\n      }\n\n      if (!instance.searchable) {\n        deepExtend(props, {\n          on: {\n            focus: this.onFocus,\n            blur: this.onBlur,\n            keydown: this.onKeyDown\n          },\n          ref: 'input'\n        });\n      }\n\n      if (!instance.searchable && !instance.disabled) {\n        deepExtend(props, {\n          attrs: {\n            tabIndex: instance.tabIndex\n          }\n        });\n      }\n\n      return h(\"div\", _mergeJSXProps([{\n        \"class\": \"vue-treeselect__input-container\"\n      }, props]), [children]);\n    },\n    renderInput: function renderInput() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return h(\"input\", {\n        ref: \"input\",\n        \"class\": \"vue-treeselect__input\",\n        attrs: {\n          type: \"text\",\n          autocomplete: \"off\",\n          tabIndex: instance.tabIndex,\n          required: instance.required && !instance.hasValue\n        },\n        domProps: {\n          \"value\": this.value\n        },\n        style: this.inputStyle,\n        on: {\n          \"focus\": this.onFocus,\n          \"input\": this.onInput,\n          \"blur\": this.onBlur,\n          \"keydown\": this.onKeyDown,\n          \"mousedown\": this.onMouseDown\n        }\n      });\n    },\n    renderSizer: function renderSizer() {\n      var h = this.$createElement;\n      return h(\"div\", {\n        ref: \"sizer\",\n        \"class\": \"vue-treeselect__sizer\"\n      }, [this.value]);\n    },\n    updateInputWidth: function updateInputWidth() {\n      this.inputWidth = Math.max(MIN_INPUT_WIDTH, this.$refs.sizer.scrollWidth + 15);\n    },\n    updateSearchQuery: function updateSearchQuery() {\n      var instance = this.instance;\n      instance.trigger.searchQuery = this.value;\n    }\n  },\n  render: function render() {\n    return this.renderInputContainer();\n  }\n};","var render, staticRenderFns\nimport script from \"./Input.vue?vue&type=script&lang=js&\"\nexport * from \"./Input.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('54844eca')) {\n      api.createRecord('54844eca', component.options)\n    } else {\n      api.reload('54844eca', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/Input.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./Placeholder.vue?vue&type=script&lang=js&\"\nexport * from \"./Placeholder.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('5a99d1f3')) {\n      api.createRecord('5a99d1f3', component.options)\n    } else {\n      api.reload('5a99d1f3', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/Placeholder.vue\"\nexport default component.exports","export default {\n  name: 'vue-treeselect--placeholder',\n  inject: ['instance'],\n  render: function render() {\n    var h = arguments[0];\n    var instance = this.instance;\n    var placeholderClass = {\n      'vue-treeselect__placeholder': true,\n      'vue-treeselect-helper-zoom-effect-off': true,\n      'vue-treeselect-helper-hide': instance.hasValue || instance.trigger.searchQuery\n    };\n    return h(\"div\", {\n      \"class\": placeholderClass\n    }, [instance.placeholder]);\n  }\n};","var render, staticRenderFns\nimport script from \"./SingleValue.vue?vue&type=script&lang=js&\"\nexport * from \"./SingleValue.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('03d19b89')) {\n      api.createRecord('03d19b89', component.options)\n    } else {\n      api.reload('03d19b89', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/SingleValue.vue\"\nexport default component.exports","import Input from './Input';\nimport Placeholder from './Placeholder';\nexport default {\n  name: 'vue-treeselect--single-value',\n  inject: ['instance'],\n  methods: {\n    renderSingleValueLabel: function renderSingleValueLabel() {\n      var instance = this.instance;\n      var node = instance.selectedNodes[0];\n      var customValueLabelRenderer = instance.$scopedSlots['value-label'];\n      return customValueLabelRenderer ? customValueLabelRenderer({\n        node: node\n      }) : node.label;\n    }\n  },\n  render: function render() {\n    var h = arguments[0];\n    var instance = this.instance,\n        renderValueContainer = this.$parent.renderValueContainer;\n    var shouldShowValue = instance.hasValue && !instance.trigger.searchQuery;\n    return renderValueContainer([shouldShowValue && h(\"div\", {\n      \"class\": \"vue-treeselect__single-value\"\n    }, [this.renderSingleValueLabel()]), h(Placeholder), h(Input, {\n      ref: \"input\"\n    })]);\n  }\n};","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"svg\",\n    {\n      attrs: {\n        xmlns: \"http://www.w3.org/2000/svg\",\n        viewBox: \"0 0 348.333 348.333\"\n      }\n    },\n    [\n      _c(\"path\", {\n        attrs: {\n          d:\n            \"M336.559 68.611L231.016 174.165l105.543 105.549c15.699 15.705 15.699 41.145 0 56.85-7.844 7.844-18.128 11.769-28.407 11.769-10.296 0-20.581-3.919-28.419-11.769L174.167 231.003 68.609 336.563c-7.843 7.844-18.128 11.769-28.416 11.769-10.285 0-20.563-3.919-28.413-11.769-15.699-15.698-15.699-41.139 0-56.85l105.54-105.549L11.774 68.611c-15.699-15.699-15.699-41.145 0-56.844 15.696-15.687 41.127-15.687 56.829 0l105.563 105.554L279.721 11.767c15.705-15.687 41.139-15.687 56.832 0 15.705 15.699 15.705 41.145.006 56.844z\"\n        }\n      })\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","export default {\n  name: 'vue-treeselect--x'\n};","import { render, staticRenderFns } from \"./Delete.vue?vue&type=template&id=364b6320&\"\nimport script from \"./Delete.vue?vue&type=script&lang=js&\"\nexport * from \"./Delete.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('364b6320')) {\n      api.createRecord('364b6320', component.options)\n    } else {\n      api.reload('364b6320', component.options)\n    }\n    module.hot.accept(\"./Delete.vue?vue&type=template&id=364b6320&\", function () {\n      api.rerender('364b6320', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/components/icons/Delete.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./MultiValueItem.vue?vue&type=script&lang=js&\"\nexport * from \"./MultiValueItem.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('6dd6c8ca')) {\n      api.createRecord('6dd6c8ca', component.options)\n    } else {\n      api.reload('6dd6c8ca', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/MultiValueItem.vue\"\nexport default component.exports","import { onLeftClick } from '../utils';\nimport DeleteIcon from './icons/Delete';\nexport default {\n  name: 'vue-treeselect--multi-value-item',\n  inject: ['instance'],\n  props: {\n    node: {\n      type: Object,\n      required: true\n    }\n  },\n  methods: {\n    handleMouseDown: onLeftClick(function handleMouseDown() {\n      var instance = this.instance,\n          node = this.node;\n      instance.select(node);\n    })\n  },\n  render: function render() {\n    var h = arguments[0];\n    var instance = this.instance,\n        node = this.node;\n    var itemClass = {\n      'vue-treeselect__multi-value-item': true,\n      'vue-treeselect__multi-value-item-disabled': node.isDisabled,\n      'vue-treeselect__multi-value-item-new': node.isNew\n    };\n    var customValueLabelRenderer = instance.$scopedSlots['value-label'];\n    var labelRenderer = customValueLabelRenderer ? customValueLabelRenderer({\n      node: node\n    }) : node.label;\n    return h(\"div\", {\n      \"class\": \"vue-treeselect__multi-value-item-container\"\n    }, [h(\"div\", {\n      \"class\": itemClass,\n      on: {\n        \"mousedown\": this.handleMouseDown\n      }\n    }, [h(\"span\", {\n      \"class\": \"vue-treeselect__multi-value-label\"\n    }, [labelRenderer]), h(\"span\", {\n      \"class\": \"vue-treeselect__icon vue-treeselect__value-remove\"\n    }, [h(DeleteIcon)])])]);\n  }\n};","var render, staticRenderFns\nimport script from \"./MultiValue.vue?vue&type=script&lang=js&\"\nexport * from \"./MultiValue.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('14fca5e8')) {\n      api.createRecord('14fca5e8', component.options)\n    } else {\n      api.reload('14fca5e8', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/MultiValue.vue\"\nexport default component.exports","import _mergeJSXProps from \"babel-helper-vue-jsx-merge-props\";\nimport MultiValueItem from './MultiValueItem';\nimport Input from './Input';\nimport Placeholder from './Placeholder';\nexport default {\n  name: 'vue-treeselect--multi-value',\n  inject: ['instance'],\n  methods: {\n    renderMultiValueItems: function renderMultiValueItems() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return instance.internalValue.slice(0, instance.limit).map(instance.getNode).map(function (node) {\n        return h(MultiValueItem, {\n          key: \"multi-value-item-\".concat(node.id),\n          attrs: {\n            node: node\n          }\n        });\n      });\n    },\n    renderExceedLimitTip: function renderExceedLimitTip() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      var count = instance.internalValue.length - instance.limit;\n      if (count <= 0) return null;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__limit-tip vue-treeselect-helper-zoom-effect-off\",\n        key: \"exceed-limit-tip\"\n      }, [h(\"span\", {\n        \"class\": \"vue-treeselect__limit-tip-text\"\n      }, [instance.limitText(count)])]);\n    }\n  },\n  render: function render() {\n    var h = arguments[0];\n    var renderValueContainer = this.$parent.renderValueContainer;\n    var transitionGroupProps = {\n      props: {\n        tag: 'div',\n        name: 'vue-treeselect__multi-value-item--transition',\n        appear: true\n      }\n    };\n    return renderValueContainer(h(\"transition-group\", _mergeJSXProps([{\n      \"class\": \"vue-treeselect__multi-value\"\n    }, transitionGroupProps]), [this.renderMultiValueItems(), this.renderExceedLimitTip(), h(Placeholder, {\n      key: \"placeholder\"\n    }), h(Input, {\n      ref: \"input\",\n      key: \"input\"\n    })]));\n  }\n};","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"svg\",\n    {\n      attrs: {\n        xmlns: \"http://www.w3.org/2000/svg\",\n        viewBox: \"0 0 292.362 292.362\"\n      }\n    },\n    [\n      _c(\"path\", {\n        attrs: {\n          d:\n            \"M286.935 69.377c-3.614-3.617-7.898-5.424-12.848-5.424H18.274c-4.952 0-9.233 1.807-12.85 5.424C1.807 72.998 0 77.279 0 82.228c0 4.948 1.807 9.229 5.424 12.847l127.907 127.907c3.621 3.617 7.902 5.428 12.85 5.428s9.233-1.811 12.847-5.428L286.935 95.074c3.613-3.617 5.427-7.898 5.427-12.847 0-4.948-1.814-9.229-5.427-12.85z\"\n        }\n      })\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","export default {\n  name: 'vue-treeselect--arrow'\n};","import { render, staticRenderFns } from \"./Arrow.vue?vue&type=template&id=11186cd4&\"\nimport script from \"./Arrow.vue?vue&type=script&lang=js&\"\nexport * from \"./Arrow.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('11186cd4')) {\n      api.createRecord('11186cd4', component.options)\n    } else {\n      api.reload('11186cd4', component.options)\n    }\n    module.hot.accept(\"./Arrow.vue?vue&type=template&id=11186cd4&\", function () {\n      api.rerender('11186cd4', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/components/icons/Arrow.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./Control.vue?vue&type=script&lang=js&\"\nexport * from \"./Control.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('2fa0a0dd')) {\n      api.createRecord('2fa0a0dd', component.options)\n    } else {\n      api.reload('2fa0a0dd', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/Control.vue\"\nexport default component.exports","import { onLeftClick, isPromise } from '../utils';\nimport SingleValue from './SingleValue';\nimport MultiValue from './MultiValue';\nimport DeleteIcon from './icons/Delete';\nimport ArrowIcon from './icons/Arrow';\nexport default {\n  name: 'vue-treeselect--control',\n  inject: ['instance'],\n  computed: {\n    shouldShowX: function shouldShowX() {\n      var instance = this.instance;\n      return instance.clearable && !instance.disabled && instance.hasValue && (this.hasUndisabledValue || instance.allowClearingDisabled);\n    },\n    shouldShowArrow: function shouldShowArrow() {\n      var instance = this.instance;\n      if (!instance.alwaysOpen) return true;\n      return !instance.menu.isOpen;\n    },\n    hasUndisabledValue: function hasUndisabledValue() {\n      var instance = this.instance;\n      return instance.hasValue && instance.internalValue.some(function (id) {\n        return !instance.getNode(id).isDisabled;\n      });\n    }\n  },\n  methods: {\n    renderX: function renderX() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      var title = instance.multiple ? instance.clearAllText : instance.clearValueText;\n      if (!this.shouldShowX) return null;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__x-container\",\n        attrs: {\n          title: title\n        },\n        on: {\n          \"mousedown\": this.handleMouseDownOnX\n        }\n      }, [h(DeleteIcon, {\n        \"class\": \"vue-treeselect__x\"\n      })]);\n    },\n    renderArrow: function renderArrow() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      var arrowClass = {\n        'vue-treeselect__control-arrow': true,\n        'vue-treeselect__control-arrow--rotated': instance.menu.isOpen\n      };\n      if (!this.shouldShowArrow) return null;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__control-arrow-container\",\n        on: {\n          \"mousedown\": this.handleMouseDownOnArrow\n        }\n      }, [h(ArrowIcon, {\n        \"class\": arrowClass\n      })]);\n    },\n    handleMouseDownOnX: onLeftClick(function handleMouseDownOnX(evt) {\n      evt.stopPropagation();\n      evt.preventDefault();\n      var instance = this.instance;\n      var result = instance.beforeClearAll();\n\n      var handler = function handler(shouldClear) {\n        if (shouldClear) instance.clear();\n      };\n\n      if (isPromise(result)) {\n        result.then(handler);\n      } else {\n        setTimeout(function () {\n          return handler(result);\n        }, 0);\n      }\n    }),\n    handleMouseDownOnArrow: onLeftClick(function handleMouseDownOnArrow(evt) {\n      evt.preventDefault();\n      evt.stopPropagation();\n      var instance = this.instance;\n      instance.focusInput();\n      instance.toggleMenu();\n    }),\n    renderValueContainer: function renderValueContainer(children) {\n      var h = this.$createElement;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__value-container\"\n      }, [children]);\n    }\n  },\n  render: function render() {\n    var h = arguments[0];\n    var instance = this.instance;\n    var ValueContainer = instance.single ? SingleValue : MultiValue;\n    return h(\"div\", {\n      \"class\": \"vue-treeselect__control\",\n      on: {\n        \"mousedown\": instance.handleMouseDown\n      }\n    }, [h(ValueContainer, {\n      ref: \"value-container\"\n    }), this.renderX(), this.renderArrow()]);\n  }\n};","var render, staticRenderFns\nimport script from \"./Tip.vue?vue&type=script&lang=js&\"\nexport * from \"./Tip.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('9f31bdca')) {\n      api.createRecord('9f31bdca', component.options)\n    } else {\n      api.reload('9f31bdca', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/Tip.vue\"\nexport default component.exports","export default {\n  name: 'vue-treeselect--tip',\n  functional: true,\n  props: {\n    type: {\n      type: String,\n      required: true\n    },\n    icon: {\n      type: String,\n      required: true\n    }\n  },\n  render: function render(_, context) {\n    var h = arguments[0];\n    var props = context.props,\n        children = context.children;\n    return h(\"div\", {\n      \"class\": \"vue-treeselect__tip vue-treeselect__\".concat(props.type, \"-tip\")\n    }, [h(\"div\", {\n      \"class\": \"vue-treeselect__icon-container\"\n    }, [h(\"span\", {\n      \"class\": \"vue-treeselect__icon-\".concat(props.icon)\n    })]), h(\"span\", {\n      \"class\": \"vue-treeselect__tip-text vue-treeselect__\".concat(props.type, \"-tip-text\")\n    }, [children])]);\n  }\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { UNCHECKED, INDETERMINATE, CHECKED } from '../constants';\nimport { onLeftClick } from '../utils';\nimport Tip from './Tip';\nimport ArrowIcon from './icons/Arrow';\nvar arrowPlaceholder, checkMark, minusMark;\nvar Option = {\n  name: 'vue-treeselect--option',\n  inject: ['instance'],\n  props: {\n    node: {\n      type: Object,\n      required: true\n    }\n  },\n  computed: {\n    shouldExpand: function shouldExpand() {\n      var instance = this.instance,\n          node = this.node;\n      return node.isBranch && instance.shouldExpand(node);\n    },\n    shouldShow: function shouldShow() {\n      var instance = this.instance,\n          node = this.node;\n      return instance.shouldShowOptionInMenu(node);\n    }\n  },\n  methods: {\n    renderOption: function renderOption() {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      var optionClass = {\n        'vue-treeselect__option': true,\n        'vue-treeselect__option--disabled': node.isDisabled,\n        'vue-treeselect__option--selected': instance.isSelected(node),\n        'vue-treeselect__option--highlight': node.isHighlighted,\n        'vue-treeselect__option--matched': instance.localSearch.active && node.isMatched,\n        'vue-treeselect__option--hide': !this.shouldShow\n      };\n      return h(\"div\", {\n        \"class\": optionClass,\n        on: {\n          \"mouseenter\": this.handleMouseEnterOption\n        },\n        attrs: {\n          \"data-id\": node.id\n        }\n      }, [this.renderArrow(), this.renderLabelContainer([this.renderCheckboxContainer([this.renderCheckbox()]), this.renderLabel()])]);\n    },\n    renderSubOptionsList: function renderSubOptionsList() {\n      var h = this.$createElement;\n      if (!this.shouldExpand) return null;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__list\"\n      }, [this.renderSubOptions(), this.renderNoChildrenTip(), this.renderLoadingChildrenTip(), this.renderLoadingChildrenErrorTip()]);\n    },\n    renderArrow: function renderArrow() {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      if (instance.shouldFlattenOptions && this.shouldShow) return null;\n\n      if (node.isBranch) {\n        var transitionProps = {\n          props: {\n            name: 'vue-treeselect__option-arrow--prepare',\n            appear: true\n          }\n        };\n        var arrowClass = {\n          'vue-treeselect__option-arrow': true,\n          'vue-treeselect__option-arrow--rotated': this.shouldExpand\n        };\n        return h(\"div\", {\n          \"class\": \"vue-treeselect__option-arrow-container\",\n          on: {\n            \"mousedown\": this.handleMouseDownOnArrow\n          }\n        }, [h(\"transition\", transitionProps, [h(ArrowIcon, {\n          \"class\": arrowClass\n        })])]);\n      }\n\n      if (instance.hasBranchNodes) {\n        if (!arrowPlaceholder) arrowPlaceholder = h(\"div\", {\n          \"class\": \"vue-treeselect__option-arrow-placeholder\"\n        }, [\"\\xA0\"]);\n        return arrowPlaceholder;\n      }\n\n      return null;\n    },\n    renderLabelContainer: function renderLabelContainer(children) {\n      var h = this.$createElement;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__label-container\",\n        on: {\n          \"mousedown\": this.handleMouseDownOnLabelContainer\n        }\n      }, [children]);\n    },\n    renderCheckboxContainer: function renderCheckboxContainer(children) {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      if (instance.single) return null;\n      if (instance.disableBranchNodes && node.isBranch) return null;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__checkbox-container\"\n      }, [children]);\n    },\n    renderCheckbox: function renderCheckbox() {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      var checkedState = instance.forest.checkedStateMap[node.id];\n      var checkboxClass = {\n        'vue-treeselect__checkbox': true,\n        'vue-treeselect__checkbox--checked': checkedState === CHECKED,\n        'vue-treeselect__checkbox--indeterminate': checkedState === INDETERMINATE,\n        'vue-treeselect__checkbox--unchecked': checkedState === UNCHECKED,\n        'vue-treeselect__checkbox--disabled': node.isDisabled\n      };\n      if (!checkMark) checkMark = h(\"span\", {\n        \"class\": \"vue-treeselect__check-mark\"\n      });\n      if (!minusMark) minusMark = h(\"span\", {\n        \"class\": \"vue-treeselect__minus-mark\"\n      });\n      return h(\"span\", {\n        \"class\": checkboxClass\n      }, [checkMark, minusMark]);\n    },\n    renderLabel: function renderLabel() {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      var shouldShowCount = node.isBranch && (instance.localSearch.active ? instance.showCountOnSearchComputed : instance.showCount);\n      var count = shouldShowCount ? instance.localSearch.active ? instance.localSearch.countMap[node.id][instance.showCountOf] : node.count[instance.showCountOf] : NaN;\n      var labelClassName = 'vue-treeselect__label';\n      var countClassName = 'vue-treeselect__count';\n      var customLabelRenderer = instance.$scopedSlots['option-label'];\n      if (customLabelRenderer) return customLabelRenderer({\n        node: node,\n        shouldShowCount: shouldShowCount,\n        count: count,\n        labelClassName: labelClassName,\n        countClassName: countClassName\n      });\n      return h(\"label\", {\n        \"class\": labelClassName\n      }, [node.label, shouldShowCount && h(\"span\", {\n        \"class\": countClassName\n      }, [\"(\", count, \")\"])]);\n    },\n    renderSubOptions: function renderSubOptions() {\n      var h = this.$createElement;\n      var node = this.node;\n      if (!node.childrenStates.isLoaded) return null;\n      return node.children.map(function (childNode) {\n        return h(Option, {\n          attrs: {\n            node: childNode\n          },\n          key: childNode.id\n        });\n      });\n    },\n    renderNoChildrenTip: function renderNoChildrenTip() {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      if (!node.childrenStates.isLoaded || node.children.length) return null;\n      return h(Tip, {\n        attrs: {\n          type: \"no-children\",\n          icon: \"warning\"\n        }\n      }, [instance.noChildrenText]);\n    },\n    renderLoadingChildrenTip: function renderLoadingChildrenTip() {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      if (!node.childrenStates.isLoading) return null;\n      return h(Tip, {\n        attrs: {\n          type: \"loading\",\n          icon: \"loader\"\n        }\n      }, [instance.loadingText]);\n    },\n    renderLoadingChildrenErrorTip: function renderLoadingChildrenErrorTip() {\n      var h = this.$createElement;\n      var instance = this.instance,\n          node = this.node;\n      if (!node.childrenStates.loadingError) return null;\n      return h(Tip, {\n        attrs: {\n          type: \"error\",\n          icon: \"error\"\n        }\n      }, [node.childrenStates.loadingError, h(\"a\", {\n        \"class\": \"vue-treeselect__retry\",\n        attrs: {\n          title: instance.retryTitle\n        },\n        on: {\n          \"mousedown\": this.handleMouseDownOnRetry\n        }\n      }, [instance.retryText])]);\n    },\n    handleMouseEnterOption: function handleMouseEnterOption(evt) {\n      var instance = this.instance,\n          node = this.node;\n      if (evt.target !== evt.currentTarget) return;\n      instance.setCurrentHighlightedOption(node, false);\n    },\n    handleMouseDownOnArrow: onLeftClick(function handleMouseDownOnOptionArrow() {\n      var instance = this.instance,\n          node = this.node;\n      instance.toggleExpanded(node);\n    }),\n    handleMouseDownOnLabelContainer: onLeftClick(function handleMouseDownOnLabelContainer() {\n      var instance = this.instance,\n          node = this.node;\n\n      if (node.isBranch && instance.disableBranchNodes) {\n        instance.toggleExpanded(node);\n      } else {\n        instance.select(node);\n      }\n    }),\n    handleMouseDownOnRetry: onLeftClick(function handleMouseDownOnRetry() {\n      var instance = this.instance,\n          node = this.node;\n      instance.loadChildrenOptions(node);\n    })\n  },\n  render: function render() {\n    var h = arguments[0];\n    var node = this.node;\n    var indentLevel = this.instance.shouldFlattenOptions ? 0 : node.level;\n\n    var listItemClass = _defineProperty({\n      'vue-treeselect__list-item': true\n    }, \"vue-treeselect__indent-level-\".concat(indentLevel), true);\n\n    var transitionProps = {\n      props: {\n        name: 'vue-treeselect__list--transition'\n      }\n    };\n    return h(\"div\", {\n      \"class\": listItemClass\n    }, [this.renderOption(), node.isBranch && h(\"transition\", transitionProps, [this.renderSubOptionsList()])]);\n  }\n};\nexport default Option;","var render, staticRenderFns\nimport script from \"./Option.vue?vue&type=script&lang=js&\"\nexport * from \"./Option.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('3dddec25')) {\n      api.createRecord('3dddec25', component.options)\n    } else {\n      api.reload('3dddec25', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/Option.vue\"\nexport default component.exports","import { MENU_BUFFER } from '../constants';\nimport { watchSize, setupResizeAndScrollEventListeners } from '../utils';\nimport Option from './Option';\nimport Tip from './Tip';\nvar directionMap = {\n  top: 'top',\n  bottom: 'bottom',\n  above: 'top',\n  below: 'bottom'\n};\nexport default {\n  name: 'vue-treeselect--menu',\n  inject: ['instance'],\n  computed: {\n    menuStyle: function menuStyle() {\n      var instance = this.instance;\n      return {\n        maxHeight: instance.maxHeight + 'px'\n      };\n    },\n    menuContainerStyle: function menuContainerStyle() {\n      var instance = this.instance;\n      return {\n        zIndex: instance.appendToBody ? null : instance.zIndex\n      };\n    }\n  },\n  watch: {\n    'instance.menu.isOpen': function instanceMenuIsOpen(newValue) {\n      if (newValue) {\n        this.$nextTick(this.onMenuOpen);\n      } else {\n        this.onMenuClose();\n      }\n    }\n  },\n  created: function created() {\n    this.menuSizeWatcher = null;\n    this.menuResizeAndScrollEventListeners = null;\n  },\n  mounted: function mounted() {\n    var instance = this.instance;\n    if (instance.menu.isOpen) this.$nextTick(this.onMenuOpen);\n  },\n  destroyed: function destroyed() {\n    this.onMenuClose();\n  },\n  methods: {\n    renderMenu: function renderMenu() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      if (!instance.menu.isOpen) return null;\n      return h(\"div\", {\n        ref: \"menu\",\n        \"class\": \"vue-treeselect__menu\",\n        on: {\n          \"mousedown\": instance.handleMouseDown\n        },\n        style: this.menuStyle\n      }, [this.renderBeforeList(), instance.async ? this.renderAsyncSearchMenuInner() : instance.localSearch.active ? this.renderLocalSearchMenuInner() : this.renderNormalMenuInner(), this.renderAfterList()]);\n    },\n    renderBeforeList: function renderBeforeList() {\n      var instance = this.instance;\n      var beforeListRenderer = instance.$scopedSlots['before-list'];\n      return beforeListRenderer ? beforeListRenderer() : null;\n    },\n    renderAfterList: function renderAfterList() {\n      var instance = this.instance;\n      var afterListRenderer = instance.$scopedSlots['after-list'];\n      return afterListRenderer ? afterListRenderer() : null;\n    },\n    renderNormalMenuInner: function renderNormalMenuInner() {\n      var instance = this.instance;\n\n      if (instance.rootOptionsStates.isLoading) {\n        return this.renderLoadingOptionsTip();\n      } else if (instance.rootOptionsStates.loadingError) {\n        return this.renderLoadingRootOptionsErrorTip();\n      } else if (instance.rootOptionsStates.isLoaded && instance.forest.normalizedOptions.length === 0) {\n        return this.renderNoAvailableOptionsTip();\n      } else {\n        return this.renderOptionList();\n      }\n    },\n    renderLocalSearchMenuInner: function renderLocalSearchMenuInner() {\n      var instance = this.instance;\n\n      if (instance.rootOptionsStates.isLoading) {\n        return this.renderLoadingOptionsTip();\n      } else if (instance.rootOptionsStates.loadingError) {\n        return this.renderLoadingRootOptionsErrorTip();\n      } else if (instance.rootOptionsStates.isLoaded && instance.forest.normalizedOptions.length === 0) {\n        return this.renderNoAvailableOptionsTip();\n      } else if (instance.localSearch.noResults) {\n        return this.renderNoResultsTip();\n      } else {\n        return this.renderOptionList();\n      }\n    },\n    renderAsyncSearchMenuInner: function renderAsyncSearchMenuInner() {\n      var instance = this.instance;\n      var entry = instance.getRemoteSearchEntry();\n      var shouldShowSearchPromptTip = instance.trigger.searchQuery === '' && !instance.defaultOptions;\n      var shouldShowNoResultsTip = shouldShowSearchPromptTip ? false : entry.isLoaded && entry.options.length === 0;\n\n      if (shouldShowSearchPromptTip) {\n        return this.renderSearchPromptTip();\n      } else if (entry.isLoading) {\n        return this.renderLoadingOptionsTip();\n      } else if (entry.loadingError) {\n        return this.renderAsyncSearchLoadingErrorTip();\n      } else if (shouldShowNoResultsTip) {\n        return this.renderNoResultsTip();\n      } else {\n        return this.renderOptionList();\n      }\n    },\n    renderOptionList: function renderOptionList() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return h(\"div\", {\n        \"class\": \"vue-treeselect__list\"\n      }, [instance.forest.normalizedOptions.map(function (rootNode) {\n        return h(Option, {\n          attrs: {\n            node: rootNode\n          },\n          key: rootNode.id\n        });\n      })]);\n    },\n    renderSearchPromptTip: function renderSearchPromptTip() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return h(Tip, {\n        attrs: {\n          type: \"search-prompt\",\n          icon: \"warning\"\n        }\n      }, [instance.searchPromptText]);\n    },\n    renderLoadingOptionsTip: function renderLoadingOptionsTip() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return h(Tip, {\n        attrs: {\n          type: \"loading\",\n          icon: \"loader\"\n        }\n      }, [instance.loadingText]);\n    },\n    renderLoadingRootOptionsErrorTip: function renderLoadingRootOptionsErrorTip() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return h(Tip, {\n        attrs: {\n          type: \"error\",\n          icon: \"error\"\n        }\n      }, [instance.rootOptionsStates.loadingError, h(\"a\", {\n        \"class\": \"vue-treeselect__retry\",\n        on: {\n          \"click\": instance.loadRootOptions\n        },\n        attrs: {\n          title: instance.retryTitle\n        }\n      }, [instance.retryText])]);\n    },\n    renderAsyncSearchLoadingErrorTip: function renderAsyncSearchLoadingErrorTip() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      var entry = instance.getRemoteSearchEntry();\n      return h(Tip, {\n        attrs: {\n          type: \"error\",\n          icon: \"error\"\n        }\n      }, [entry.loadingError, h(\"a\", {\n        \"class\": \"vue-treeselect__retry\",\n        on: {\n          \"click\": instance.handleRemoteSearch\n        },\n        attrs: {\n          title: instance.retryTitle\n        }\n      }, [instance.retryText])]);\n    },\n    renderNoAvailableOptionsTip: function renderNoAvailableOptionsTip() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return h(Tip, {\n        attrs: {\n          type: \"no-options\",\n          icon: \"warning\"\n        }\n      }, [instance.noOptionsText]);\n    },\n    renderNoResultsTip: function renderNoResultsTip() {\n      var h = this.$createElement;\n      var instance = this.instance;\n      return h(Tip, {\n        attrs: {\n          type: \"no-results\",\n          icon: \"warning\"\n        }\n      }, [instance.noResultsText]);\n    },\n    onMenuOpen: function onMenuOpen() {\n      this.adjustMenuOpenDirection();\n      this.setupMenuSizeWatcher();\n      this.setupMenuResizeAndScrollEventListeners();\n    },\n    onMenuClose: function onMenuClose() {\n      this.removeMenuSizeWatcher();\n      this.removeMenuResizeAndScrollEventListeners();\n    },\n    adjustMenuOpenDirection: function adjustMenuOpenDirection() {\n      var instance = this.instance;\n      if (!instance.menu.isOpen) return;\n      var $menu = instance.getMenu();\n      var $control = instance.getControl();\n      var menuRect = $menu.getBoundingClientRect();\n      var controlRect = $control.getBoundingClientRect();\n      var menuHeight = menuRect.height;\n      var viewportHeight = window.innerHeight;\n      var spaceAbove = controlRect.top;\n      var spaceBelow = window.innerHeight - controlRect.bottom;\n      var isControlInViewport = controlRect.top >= 0 && controlRect.top <= viewportHeight || controlRect.top < 0 && controlRect.bottom > 0;\n      var hasEnoughSpaceBelow = spaceBelow > menuHeight + MENU_BUFFER;\n      var hasEnoughSpaceAbove = spaceAbove > menuHeight + MENU_BUFFER;\n\n      if (!isControlInViewport) {\n        instance.closeMenu();\n      } else if (instance.openDirection !== 'auto') {\n        instance.menu.placement = directionMap[instance.openDirection];\n      } else if (hasEnoughSpaceBelow || !hasEnoughSpaceAbove) {\n        instance.menu.placement = 'bottom';\n      } else {\n        instance.menu.placement = 'top';\n      }\n    },\n    setupMenuSizeWatcher: function setupMenuSizeWatcher() {\n      var instance = this.instance;\n      var $menu = instance.getMenu();\n      if (this.menuSizeWatcher) return;\n      this.menuSizeWatcher = {\n        remove: watchSize($menu, this.adjustMenuOpenDirection)\n      };\n    },\n    setupMenuResizeAndScrollEventListeners: function setupMenuResizeAndScrollEventListeners() {\n      var instance = this.instance;\n      var $control = instance.getControl();\n      if (this.menuResizeAndScrollEventListeners) return;\n      this.menuResizeAndScrollEventListeners = {\n        remove: setupResizeAndScrollEventListeners($control, this.adjustMenuOpenDirection)\n      };\n    },\n    removeMenuSizeWatcher: function removeMenuSizeWatcher() {\n      if (!this.menuSizeWatcher) return;\n      this.menuSizeWatcher.remove();\n      this.menuSizeWatcher = null;\n    },\n    removeMenuResizeAndScrollEventListeners: function removeMenuResizeAndScrollEventListeners() {\n      if (!this.menuResizeAndScrollEventListeners) return;\n      this.menuResizeAndScrollEventListeners.remove();\n      this.menuResizeAndScrollEventListeners = null;\n    }\n  },\n  render: function render() {\n    var h = arguments[0];\n    return h(\"div\", {\n      ref: \"menu-container\",\n      \"class\": \"vue-treeselect__menu-container\",\n      style: this.menuContainerStyle\n    }, [h(\"transition\", {\n      attrs: {\n        name: \"vue-treeselect__menu--transition\"\n      }\n    }, [this.renderMenu()])]);\n  }\n};","var render, staticRenderFns\nimport script from \"./Menu.vue?vue&type=script&lang=js&\"\nexport * from \"./Menu.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('9bcc0be2')) {\n      api.createRecord('9bcc0be2', component.options)\n    } else {\n      api.reload('9bcc0be2', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/Menu.vue\"\nexport default component.exports","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport Vue from 'vue';\nimport { watchSize, setupResizeAndScrollEventListeners, find } from '../utils';\nimport Menu from './Menu';\nvar PortalTarget = {\n  name: 'vue-treeselect--portal-target',\n  inject: ['instance'],\n  watch: {\n    'instance.menu.isOpen': function instanceMenuIsOpen(newValue) {\n      if (newValue) {\n        this.setupHandlers();\n      } else {\n        this.removeHandlers();\n      }\n    },\n    'instance.menu.placement': function instanceMenuPlacement() {\n      this.updateMenuContainerOffset();\n    }\n  },\n  created: function created() {\n    this.controlResizeAndScrollEventListeners = null;\n    this.controlSizeWatcher = null;\n  },\n  mounted: function mounted() {\n    var instance = this.instance;\n    if (instance.menu.isOpen) this.setupHandlers();\n  },\n  methods: {\n    setupHandlers: function setupHandlers() {\n      this.updateWidth();\n      this.updateMenuContainerOffset();\n      this.setupControlResizeAndScrollEventListeners();\n      this.setupControlSizeWatcher();\n    },\n    removeHandlers: function removeHandlers() {\n      this.removeControlResizeAndScrollEventListeners();\n      this.removeControlSizeWatcher();\n    },\n    setupControlResizeAndScrollEventListeners: function setupControlResizeAndScrollEventListeners() {\n      var instance = this.instance;\n      var $control = instance.getControl();\n      if (this.controlResizeAndScrollEventListeners) return;\n      this.controlResizeAndScrollEventListeners = {\n        remove: setupResizeAndScrollEventListeners($control, this.updateMenuContainerOffset)\n      };\n    },\n    setupControlSizeWatcher: function setupControlSizeWatcher() {\n      var _this = this;\n\n      var instance = this.instance;\n      var $control = instance.getControl();\n      if (this.controlSizeWatcher) return;\n      this.controlSizeWatcher = {\n        remove: watchSize($control, function () {\n          _this.updateWidth();\n\n          _this.updateMenuContainerOffset();\n        })\n      };\n    },\n    removeControlResizeAndScrollEventListeners: function removeControlResizeAndScrollEventListeners() {\n      if (!this.controlResizeAndScrollEventListeners) return;\n      this.controlResizeAndScrollEventListeners.remove();\n      this.controlResizeAndScrollEventListeners = null;\n    },\n    removeControlSizeWatcher: function removeControlSizeWatcher() {\n      if (!this.controlSizeWatcher) return;\n      this.controlSizeWatcher.remove();\n      this.controlSizeWatcher = null;\n    },\n    updateWidth: function updateWidth() {\n      var instance = this.instance;\n      var $portalTarget = this.$el;\n      var $control = instance.getControl();\n      var controlRect = $control.getBoundingClientRect();\n      $portalTarget.style.width = controlRect.width + 'px';\n    },\n    updateMenuContainerOffset: function updateMenuContainerOffset() {\n      var instance = this.instance;\n      var $control = instance.getControl();\n      var $portalTarget = this.$el;\n      var controlRect = $control.getBoundingClientRect();\n      var portalTargetRect = $portalTarget.getBoundingClientRect();\n      var offsetY = instance.menu.placement === 'bottom' ? controlRect.height : 0;\n      var left = Math.round(controlRect.left - portalTargetRect.left) + 'px';\n      var top = Math.round(controlRect.top - portalTargetRect.top + offsetY) + 'px';\n      var menuContainerStyle = this.$refs.menu.$refs['menu-container'].style;\n      var transformVariations = ['transform', 'webkitTransform', 'MozTransform', 'msTransform'];\n      var transform = find(transformVariations, function (t) {\n        return t in document.body.style;\n      });\n      menuContainerStyle[transform] = \"translate(\".concat(left, \", \").concat(top, \")\");\n    }\n  },\n  render: function render() {\n    var h = arguments[0];\n    var instance = this.instance;\n    var portalTargetClass = ['vue-treeselect__portal-target', instance.wrapperClass];\n    var portalTargetStyle = {\n      zIndex: instance.zIndex\n    };\n    return h(\"div\", {\n      \"class\": portalTargetClass,\n      style: portalTargetStyle,\n      attrs: {\n        \"data-instance-id\": instance.getInstanceId()\n      }\n    }, [h(Menu, {\n      ref: \"menu\"\n    })]);\n  },\n  destroyed: function destroyed() {\n    this.removeHandlers();\n  }\n};\nvar placeholder;\nexport default {\n  name: 'vue-treeselect--menu-portal',\n  created: function created() {\n    this.portalTarget = null;\n  },\n  mounted: function mounted() {\n    this.setup();\n  },\n  destroyed: function destroyed() {\n    this.teardown();\n  },\n  methods: {\n    setup: function setup() {\n      var el = document.createElement('div');\n      document.body.appendChild(el);\n      this.portalTarget = new Vue(_objectSpread({\n        el: el,\n        parent: this\n      }, PortalTarget));\n    },\n    teardown: function teardown() {\n      document.body.removeChild(this.portalTarget.$el);\n      this.portalTarget.$el.innerHTML = '';\n      this.portalTarget.$destroy();\n      this.portalTarget = null;\n    }\n  },\n  render: function render() {\n    var h = arguments[0];\n    if (!placeholder) placeholder = h(\"div\", {\n      \"class\": \"vue-treeselect__menu-placeholder\"\n    });\n    return placeholder;\n  }\n};","var render, staticRenderFns\nimport script from \"./MenuPortal.vue?vue&type=script&lang=js&\"\nexport * from \"./MenuPortal.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('4802d94a')) {\n      api.createRecord('4802d94a', component.options)\n    } else {\n      api.reload('4802d94a', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/MenuPortal.vue\"\nexport default component.exports","var render, staticRenderFns\nimport script from \"./Treeselect.vue?vue&type=script&lang=js&\"\nexport * from \"./Treeselect.vue?vue&type=script&lang=js&\"\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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/mnt/c/Projects/vue-treeselect/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('aebf116c')) {\n      api.createRecord('aebf116c', component.options)\n    } else {\n      api.reload('aebf116c', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"src/components/Treeselect.vue\"\nexport default component.exports","import treeselectMixin from '../mixins/treeselectMixin';\nimport HiddenFields from './HiddenFields';\nimport Control from './Control';\nimport Menu from './Menu';\nimport MenuPortal from './MenuPortal';\nexport default {\n  name: 'vue-treeselect',\n  mixins: [treeselectMixin],\n  computed: {\n    wrapperClass: function wrapperClass() {\n      return {\n        'vue-treeselect': true,\n        'vue-treeselect--single': this.single,\n        'vue-treeselect--multi': this.multiple,\n        'vue-treeselect--searchable': this.searchable,\n        'vue-treeselect--disabled': this.disabled,\n        'vue-treeselect--focused': this.trigger.isFocused,\n        'vue-treeselect--has-value': this.hasValue,\n        'vue-treeselect--open': this.menu.isOpen,\n        'vue-treeselect--open-above': this.menu.placement === 'top',\n        'vue-treeselect--open-below': this.menu.placement === 'bottom',\n        'vue-treeselect--branch-nodes-disabled': this.disableBranchNodes,\n        'vue-treeselect--append-to-body': this.appendToBody\n      };\n    }\n  },\n  render: function render() {\n    var h = arguments[0];\n    return h(\"div\", {\n      ref: \"wrapper\",\n      \"class\": this.wrapperClass\n    }, [h(HiddenFields), h(Control, {\n      ref: \"control\"\n    }), this.appendToBody ? h(MenuPortal, {\n      ref: \"portal\"\n    }) : h(Menu, {\n      ref: \"menu\"\n    })]);\n  }\n};","import Treeselect from './components/Treeselect';\nimport treeselectMixin from './mixins/treeselectMixin';\nimport './style.less';\nexport default Treeselect;\nexport { Treeselect, treeselectMixin };\nexport { LOAD_ROOT_OPTIONS, LOAD_CHILDREN_OPTIONS, ASYNC_SEARCH } from './constants';\nexport var VERSION = PKG_VERSION;"],"sourceRoot":""}