@reviewpush/rp-treeselect 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +172 -0
  2. package/dist/rp-treeselect.cjs.js +3656 -0
  3. package/dist/rp-treeselect.cjs.js.map +1 -0
  4. package/dist/rp-treeselect.cjs.min.js +2 -0
  5. package/dist/rp-treeselect.cjs.min.js.map +1 -0
  6. package/dist/rp-treeselect.css +947 -0
  7. package/dist/rp-treeselect.css.map +1 -0
  8. package/dist/rp-treeselect.min.css +1 -0
  9. package/dist/rp-treeselect.umd.js +4837 -0
  10. package/dist/rp-treeselect.umd.js.map +1 -0
  11. package/dist/rp-treeselect.umd.min.js +2 -0
  12. package/dist/rp-treeselect.umd.min.js.map +1 -0
  13. package/package.json +140 -0
  14. package/src/assets/checkbox-checked-disabled.png +0 -0
  15. package/src/assets/checkbox-checked-disabled@2x.png +0 -0
  16. package/src/assets/checkbox-checked-disabled@3x.png +0 -0
  17. package/src/assets/checkbox-checked.png +0 -0
  18. package/src/assets/checkbox-checked@2x.png +0 -0
  19. package/src/assets/checkbox-checked@3x.png +0 -0
  20. package/src/assets/checkbox-indeterminate-disabled.png +0 -0
  21. package/src/assets/checkbox-indeterminate-disabled@2x.png +0 -0
  22. package/src/assets/checkbox-indeterminate-disabled@3x.png +0 -0
  23. package/src/assets/checkbox-indeterminate.png +0 -0
  24. package/src/assets/checkbox-indeterminate@2x.png +0 -0
  25. package/src/assets/checkbox-indeterminate@3x.png +0 -0
  26. package/src/components/Control.vue +153 -0
  27. package/src/components/HiddenFields.vue +37 -0
  28. package/src/components/Input.vue +295 -0
  29. package/src/components/Menu.vue +313 -0
  30. package/src/components/MenuPortal.vue +179 -0
  31. package/src/components/MultiValue.vue +56 -0
  32. package/src/components/MultiValueItem.vue +45 -0
  33. package/src/components/Option.vue +300 -0
  34. package/src/components/Placeholder.vue +21 -0
  35. package/src/components/SingleValue.vue +34 -0
  36. package/src/components/Tip.vue +32 -0
  37. package/src/components/Treeselect.vue +42 -0
  38. package/src/components/icons/Arrow.vue +11 -0
  39. package/src/components/icons/Delete.vue +11 -0
  40. package/src/constants.js +50 -0
  41. package/src/index.js +14 -0
  42. package/src/mixins/treeselectMixin.js +1949 -0
  43. package/src/style.less +1147 -0
  44. package/src/utils/.eslintrc.js +6 -0
  45. package/src/utils/constant.js +1 -0
  46. package/src/utils/createMap.js +1 -0
  47. package/src/utils/debounce.js +1 -0
  48. package/src/utils/deepExtend.js +25 -0
  49. package/src/utils/find.js +6 -0
  50. package/src/utils/identity.js +1 -0
  51. package/src/utils/includes.js +3 -0
  52. package/src/utils/index.js +38 -0
  53. package/src/utils/isNaN.js +3 -0
  54. package/src/utils/isPromise.js +1 -0
  55. package/src/utils/last.js +1 -0
  56. package/src/utils/noop.js +1 -0
  57. package/src/utils/onLeftClick.js +7 -0
  58. package/src/utils/once.js +1 -0
  59. package/src/utils/quickDiff.js +9 -0
  60. package/src/utils/removeFromArray.js +4 -0
  61. package/src/utils/scrollIntoView.js +15 -0
  62. package/src/utils/setupResizeAndScrollEventListeners.js +34 -0
  63. package/src/utils/warning.js +11 -0
  64. package/src/utils/watchSize.js +67 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://RpTreeselect/webpack/universalModuleDefinition","webpack://RpTreeselect/webpack/bootstrap","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/typeof.js","webpack://RpTreeselect/./node_modules/babel-helper-vue-jsx-merge-props/index.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://RpTreeselect/./node_modules/lodash/noop.js","webpack://RpTreeselect/./node_modules/lodash/debounce.js","webpack://RpTreeselect/./node_modules/lodash/isObject.js","webpack://RpTreeselect/./node_modules/lodash/_root.js","webpack://RpTreeselect/./node_modules/lodash/toNumber.js","webpack://RpTreeselect/./node_modules/lodash/_Symbol.js","webpack://RpTreeselect/./node_modules/is-promise/index.js","webpack://RpTreeselect/./node_modules/lodash/once.js","webpack://RpTreeselect/./node_modules/lodash/identity.js","webpack://RpTreeselect/./node_modules/lodash/constant.js","webpack://RpTreeselect/./node_modules/lodash/last.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://RpTreeselect/./node_modules/fuzzysearch/index.js","webpack://RpTreeselect/external \"Vue\"","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://RpTreeselect/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://RpTreeselect/./node_modules/lodash/now.js","webpack://RpTreeselect/./node_modules/lodash/_freeGlobal.js","webpack://RpTreeselect/(webpack)/buildin/global.js","webpack://RpTreeselect/./node_modules/lodash/_baseTrim.js","webpack://RpTreeselect/./node_modules/lodash/_trimmedEndIndex.js","webpack://RpTreeselect/./node_modules/lodash/isSymbol.js","webpack://RpTreeselect/./node_modules/lodash/_baseGetTag.js","webpack://RpTreeselect/./node_modules/lodash/_getRawTag.js","webpack://RpTreeselect/./node_modules/lodash/_objectToString.js","webpack://RpTreeselect/./node_modules/lodash/isObjectLike.js","webpack://RpTreeselect/./node_modules/lodash/before.js","webpack://RpTreeselect/./node_modules/lodash/toInteger.js","webpack://RpTreeselect/./node_modules/lodash/toFinite.js","webpack://RpTreeselect/./src/utils/warning.js","webpack://RpTreeselect/./src/utils/onLeftClick.js","webpack://RpTreeselect/./src/utils/scrollIntoView.js","webpack://RpTreeselect/./src/utils/watchSize.js","webpack://RpTreeselect/./node_modules/watch-size/index.es.mjs","webpack://RpTreeselect/./src/utils/removeFromArray.js","webpack://RpTreeselect/./src/utils/setupResizeAndScrollEventListeners.js","webpack://RpTreeselect/./src/utils/isNaN.js","webpack://RpTreeselect/./src/utils/createMap.js","webpack://RpTreeselect/./src/utils/deepExtend.js","webpack://RpTreeselect/./src/utils/includes.js","webpack://RpTreeselect/./src/utils/find.js","webpack://RpTreeselect/./src/utils/quickDiff.js","webpack://RpTreeselect/./src/constants.js","webpack://RpTreeselect/./src/mixins/treeselectMixin.js","webpack://RpTreeselect/src/components/HiddenFields.vue","webpack://RpTreeselect/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://RpTreeselect/./src/components/HiddenFields.vue","webpack://RpTreeselect/src/components/Input.vue","webpack://RpTreeselect/./src/components/Input.vue","webpack://RpTreeselect/./src/components/Placeholder.vue","webpack://RpTreeselect/src/components/Placeholder.vue","webpack://RpTreeselect/./src/components/SingleValue.vue","webpack://RpTreeselect/src/components/SingleValue.vue","webpack://RpTreeselect/./src/components/icons/Delete.vue?9af8","webpack://RpTreeselect/src/components/icons/Delete.vue","webpack://RpTreeselect/./src/components/icons/Delete.vue","webpack://RpTreeselect/./src/components/MultiValueItem.vue","webpack://RpTreeselect/src/components/MultiValueItem.vue","webpack://RpTreeselect/./src/components/MultiValue.vue","webpack://RpTreeselect/src/components/MultiValue.vue","webpack://RpTreeselect/./src/components/icons/Arrow.vue?a3ef","webpack://RpTreeselect/src/components/icons/Arrow.vue","webpack://RpTreeselect/./src/components/icons/Arrow.vue","webpack://RpTreeselect/./src/components/Control.vue","webpack://RpTreeselect/src/components/Control.vue","webpack://RpTreeselect/./src/components/Tip.vue","webpack://RpTreeselect/src/components/Tip.vue","webpack://RpTreeselect/src/components/Option.vue","webpack://RpTreeselect/./src/components/Option.vue","webpack://RpTreeselect/src/components/Menu.vue","webpack://RpTreeselect/./src/components/Menu.vue","webpack://RpTreeselect/src/components/MenuPortal.vue","webpack://RpTreeselect/./src/components/MenuPortal.vue","webpack://RpTreeselect/./src/components/Treeselect.vue","webpack://RpTreeselect/src/components/Treeselect.vue","webpack://RpTreeselect/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__19__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","toPropertyKey","obj","configurable","writable","_typeof","iterator","constructor","nestRE","mergeFn","a","b","apply","this","arguments","objs","reduce","aa","bb","nestedKey","temp","test","Array","isArray","concat","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arr","arrayLikeToArray","minLen","toString","slice","from","len","length","arr2","isObject","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","clearTimeout","cancel","flush","type","freeGlobal","freeSelf","self","Function","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","isPromise","then","default","before","array","arrayWithHoles","iterableToArrayLimit","nonIterableRest","needle","haystack","tlen","qlen","outer","j","nch","charCodeAt","e","u","f","next","done","push","iter","toPrimitive","String","Number","Date","global","g","trimmedEndIndex","reTrimStart","string","replace","reWhitespace","index","charAt","baseGetTag","isObjectLike","getRawTag","objectToString","symToStringTag","objectProto","nativeObjectToString","isOwn","tag","unmasked","toInteger","toFinite","remainder","warning","noop","onLeftClick","mouseDownHandler","evt","button","_len","_key","scrollIntoView","$scrollingEl","$focusedEl","scrollingReact","getBoundingClientRect","focusedRect","overScroll","offsetHeight","bottom","scrollTop","offsetTop","clientHeight","scrollHeight","top","intervalId","element","listener","expand","document","createElement","shrink","appendChild","expandChild","shrinkChild","lastWidth","lastHeight","style","cssText","width","height","unbind","removeChild","offsetWidth","scrollLeft","scrollWidth","addEventListener","removeEventListener","removeFromArray","elem","idx","indexOf","splice","registered","item","$el","watchSizeForIE9","setInterval","forEach","clearInterval","watchSize","isIE9","documentMode","locked","removeSizeWatcher","watchSizeForBrowsersOtherThanIE9","isScrollElment","_getComputedStyle","getComputedStyle","overflow","overflowX","overflowY","setupResizeAndScrollEventListeners","$scrollParents","$parent","parentNode","nodeName","nodeType","ELEMENT_NODE","findScrollParents","passive","scrollParent","$scrollParent","isNaN","x","createMap","isPlainObject","getPrototypeOf","deepExtend","target","source","keys","includes","arrOrStr","find","predicate","ctx","quickDiff","arrA","arrB","LOAD_ROOT_OPTIONS","LOAD_CHILDREN_OPTIONS","ASYNC_SEARCH","KEY_CODES","sortValueByIndex","level","match","enableFuzzyMatch","fuzzysearch","getErrorMessage","err","message","instanceId","provide","instance","props","allowClearingDisabled","Boolean","allowSelectingDisabledDescendants","alwaysOpen","appendToBody","async","autoFocus","autoLoadRootOptions","autoDeselectAncestors","autoDeselectDescendants","autoSelectAncestors","autoSelectDescendants","backspaceRemoves","beforeClearAll","constant","branchNodesFirst","cacheOptions","clearable","clearAllText","clearOnSelect","clearValueText","closeOnSelect","defaultExpandLevel","defaultOptions","deleteRemoves","delimiter","flattenSearchResults","disableBranchNodes","disabled","disableFuzzyMatching","flat","joinValues","limit","Infinity","limitText","count","loadingText","loadOptions","matchKeys","maxHeight","multiple","noChildrenText","noOptionsText","noResultsText","normalizer","identity","openDirection","validator","openOnClick","openOnFocus","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","filter","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","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","_this8","_objectSpread","callback","currNode","_toConsumableArray","traverseDescendantsDFS","_this9","child","traverseAllNodesDFS","_this10","walk","toggleClickOutsideEvent","enabled","handleClickOutside","getValueContainer","$refs","control","getInput","input","focusInput","focus","blurInput","blur","handleMouseDown","preventDefault","stopPropagation","contains","wrapper","_this11","resetHighlightedOptionWhenNecessary","isExpandedOnSearch","showAllChildrenOnSearch","isMatched","hasMatchedDescendants","_defineProperty","lowerCasedSearchQuery","trim","toLocaleLowerCase","splitSearchQuery","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","prev","isHighlighted","scrollToOption","$option","querySelector","$nextTick","forceReset","highlightFirstOption","first","highlightPrevOption","highlightLastOption","highlightNextOption","last","getLast","resetSearchQuery","saveMenuScrollPosition","restoreMenuScrollPosition","loadRootOptions","toggleMenu","toggleExpanded","nextState","childrenStates","loadChildrenOptions","_this15","selectedNodeId","ancestorNode","nodes","_this16","_ref","_ref2","_slicedToArray","checkDuplication","verifyNodeShape","isDefaultExpanded","normalized","hasDisabledDescendants","branchNodes","option","leafNodes","_this17","_this18","_ref3","once","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","debounce","updateSearchQuery","onInput","onFocus","onBlur","activeElement","onKeyDown","which","keyCode","ctrlKey","shiftKey","altKey","metaKey","onMouseDown","renderInputContainer","$createElement","renderInput","renderSizer","on","keydown","ref","_mergeJSXProps","autocomplete","sizer","placeholderClass","renderSingleValueLabel","customValueLabelRenderer","$scopedSlots","renderValueContainer","shouldShowValue","Placeholder","Input","_c","_self","xmlns","viewBox","_withStripped","itemClass","labelRenderer","DeleteIcon","renderMultiValueItems","MultiValueItem","renderExceedLimitTip","transitionGroupProps","appear","shouldShowX","hasUndisabledValue","shouldShowArrow","renderX","title","handleMouseDownOnX","renderArrow","arrowClass","handleMouseDownOnArrow","ArrowIcon","shouldClear","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","Vue","innerHTML","$destroy","mixins","treeselectMixin","HiddenFields","Control","MenuPortal","VERSION","Treeselect","PKG_VERSION"],"mappings":"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","file":"rp-treeselect.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"Vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"Vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"RpTreeselect\"] = factory(require(\"Vue\"));\n\telse\n\t\troot[\"RpTreeselect\"] = factory(root[\"Vue\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__19__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 42);\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var nestRE = /^(attrs|props|on|nativeOn|class|style|hook)$/\n\nmodule.exports = function mergeJSXProps (objs) {\n return objs.reduce(function (a, b) {\n var aa, bb, key, nestedKey, temp\n for (key in b) {\n aa = a[key]\n bb = b[key]\n if (aa && nestRE.test(key)) {\n // normalize class\n if (key === 'class') {\n if (typeof aa === 'string') {\n temp = aa\n a[key] = aa = {}\n aa[temp] = true\n }\n if (typeof bb === 'string') {\n temp = bb\n b[key] = bb = {}\n bb[temp] = true\n }\n }\n if (key === 'on' || key === 'nativeOn' || key === 'hook') {\n // merge functions\n for (nestedKey in bb) {\n aa[nestedKey] = mergeFn(aa[nestedKey], bb[nestedKey])\n }\n } else if (Array.isArray(aa)) {\n a[key] = aa.concat(bb)\n } else if (Array.isArray(bb)) {\n a[key] = [aa].concat(bb)\n } else {\n for (nestedKey in bb) {\n aa[nestedKey] = bb[nestedKey]\n }\n }\n } else {\n a[key] = b[key]\n }\n }\n return a\n }, {})\n}\n\nfunction mergeFn (a, b) {\n return function () {\n a && a.apply(this, arguments)\n b && b.apply(this, arguments)\n }\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","module.exports = isPromise;\nmodule.exports.default = isPromise;\n\nfunction isPromise(obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n","var before = require('./before');\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\nmodule.exports = once;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nfunction fuzzysearch (needle, haystack) {\n var tlen = haystack.length;\n var qlen = needle.length;\n if (qlen > tlen) {\n return false;\n }\n if (qlen === tlen) {\n return needle === haystack;\n }\n outer: for (var i = 0, j = 0; i < qlen; i++) {\n var nch = needle.charCodeAt(i);\n while (j < tlen) {\n if (haystack.charCodeAt(j++) === nch) {\n continue outer;\n }\n }\n return false;\n }\n return true;\n}\n\nmodule.exports = fuzzysearch;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__19__;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var toInteger = require('./toInteger');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\nmodule.exports = before;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","import { noop } from './noop'\n\nexport const warning = process.env.NODE_ENV === 'production'\n ? /* istanbul ignore next */ noop\n : function warning(checker, complainer) {\n if (!checker()) {\n const message = [ '[Rp-Treeselect Warning]' ].concat(complainer())\n // eslint-disable-next-line no-console\n console.error(...message)\n }\n }\n","export function onLeftClick(mouseDownHandler) {\n return function onMouseDown(evt, ...args) {\n if (evt.type === 'mousedown' && evt.button === 0) {\n mouseDownHandler.call(this, evt, ...args)\n }\n }\n}\n","// from react-select\nexport function scrollIntoView($scrollingEl, $focusedEl) {\n const scrollingReact = $scrollingEl.getBoundingClientRect()\n const focusedRect = $focusedEl.getBoundingClientRect()\n const overScroll = $focusedEl.offsetHeight / 3\n\n if (focusedRect.bottom + overScroll > scrollingReact.bottom) {\n $scrollingEl.scrollTop = Math.min(\n $focusedEl.offsetTop + $focusedEl.clientHeight - $scrollingEl.offsetHeight + overScroll,\n $scrollingEl.scrollHeight,\n )\n } else if (focusedRect.top - overScroll < scrollingReact.top) {\n $scrollingEl.scrollTop = Math.max($focusedEl.offsetTop - overScroll, 0)\n }\n}\n","import watchSizeForBrowsersOtherThanIE9 from 'watch-size'\nimport { removeFromArray } from './removeFromArray'\n\nlet intervalId\nconst registered = []\nconst INTERVAL_DURATION = 100\n\nfunction run() {\n intervalId = setInterval(() => {\n registered.forEach(test)\n }, INTERVAL_DURATION)\n}\n\nfunction stop() {\n clearInterval(intervalId)\n intervalId = null\n}\n\nfunction test(item) {\n const { $el, listener, lastWidth, lastHeight } = item\n const width = $el.offsetWidth\n const height = $el.offsetHeight\n\n if (lastWidth !== width || lastHeight !== height) {\n item.lastWidth = width\n item.lastHeight = height\n\n listener({ width, height })\n }\n}\n\nfunction watchSizeForIE9($el, listener) {\n const item = {\n $el,\n listener,\n lastWidth: null,\n lastHeight: null,\n }\n const unwatch = () => {\n removeFromArray(registered, item)\n if (!registered.length) stop()\n }\n\n registered.push(item)\n // The original watch-size will call the listener on initialization.\n // Keep the same behavior here.\n test(item)\n run()\n\n return unwatch\n}\n\nexport function watchSize($el, listener) {\n // See: https://stackoverflow.com/a/31293352\n const isIE9 = document.documentMode === 9\n // watch-size will call the listener on initialization.\n // Disable this behavior with a lock to achieve a clearer code logic.\n let locked = true\n const wrappedListener = (...args) => locked || listener(...args)\n const implementation = isIE9\n ? watchSizeForIE9\n : watchSizeForBrowsersOtherThanIE9\n const removeSizeWatcher = implementation($el, wrappedListener)\n locked = false // unlock after initialization\n\n return removeSizeWatcher\n}\n","var index = (function (element, listener) {\n\tvar expand = document.createElement('_');\n\tvar shrink = expand.appendChild(document.createElement('_'));\n\tvar expandChild = expand.appendChild(document.createElement('_'));\n\tvar shrinkChild = shrink.appendChild(document.createElement('_'));\n\n\tvar lastWidth = void 0,\n\t lastHeight = void 0;\n\n\tshrink.style.cssText = expand.style.cssText = 'height:100%;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:0;transition:0s;width:100%;z-index:-1';\n\tshrinkChild.style.cssText = expandChild.style.cssText = 'display:block;height:100%;transition:0s;width:100%';\n\tshrinkChild.style.width = shrinkChild.style.height = '200%';\n\n\telement.appendChild(expand);\n\n\ttest();\n\n\treturn stop;\n\n\tfunction test() {\n\t\tunbind();\n\n\t\tvar width = element.offsetWidth;\n\t\tvar height = element.offsetHeight;\n\n\t\tif (width !== lastWidth || height !== lastHeight) {\n\t\t\tlastWidth = width;\n\t\t\tlastHeight = height;\n\n\t\t\texpandChild.style.width = width * 2 + 'px';\n\t\t\texpandChild.style.height = height * 2 + 'px';\n\n\t\t\texpand.scrollLeft = expand.scrollWidth;\n\t\t\texpand.scrollTop = expand.scrollHeight;\n\t\t\tshrink.scrollLeft = shrink.scrollWidth;\n\t\t\tshrink.scrollTop = shrink.scrollHeight;\n\n\t\t\tlistener({ width: width, height: height });\n\t\t}\n\n\t\tshrink.addEventListener('scroll', test);\n\t\texpand.addEventListener('scroll', test);\n\t}\n\n\tfunction unbind() {\n\t\tshrink.removeEventListener('scroll', test);\n\t\texpand.removeEventListener('scroll', test);\n\t}\n\n\tfunction stop() {\n\t\tunbind();\n\n\t\telement.removeChild(expand);\n\t}\n});\n\nexport default index;\n","export function removeFromArray(arr, elem) {\n const idx = arr.indexOf(elem)\n if (idx !== -1) arr.splice(idx, 1)\n}\n","function findScrollParents($el) {\n const $scrollParents = []\n let $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 $scrollParents.push(window)\n\n return $scrollParents\n}\n\nfunction isScrollElment($el) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getComputedStyle($el)\n return /(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)\n}\n\nexport function setupResizeAndScrollEventListeners($el, listener) {\n const $scrollParents = findScrollParents($el)\n\n window.addEventListener('resize', listener, { passive: true })\n $scrollParents.forEach(scrollParent => {\n scrollParent.addEventListener('scroll', listener, { passive: true })\n })\n\n return function removeEventListeners() {\n window.removeEventListener('resize', listener, { passive: true })\n $scrollParents.forEach($scrollParent => {\n $scrollParent.removeEventListener('scroll', listener, { passive: true })\n })\n }\n}\n","export function isNaN(x) {\n return x !== x\n}\n","export const createMap = () => Object.create(null)\n","function 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 const keys = Object.keys(source)\n\n for (let i = 0, len = keys.length; i < len; i++) {\n copy(target, keys[i], source[keys[i]])\n }\n }\n\n return target\n}\n","export function includes(arrOrStr, elem) {\n return arrOrStr.indexOf(elem) !== -1\n}\n","export function find(arr, predicate, ctx) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (predicate.call(ctx, arr[i], i, arr)) return arr[i]\n }\n return undefined\n}\n","export function quickDiff(arrA, arrB) {\n if (arrA.length !== arrB.length) return true\n\n for (let i = 0; i < arrA.length; i++) {\n if (arrA[i] !== arrB[i]) return true\n }\n\n return false\n}\n","// Magic value that indicates a root level node.\nexport const NO_PARENT_NODE = null\n\n// Types of checked state.\nexport const UNCHECKED = 0\nexport const INDETERMINATE = 1\nexport const CHECKED = 2\n\n// Types of count number.\nexport const ALL_CHILDREN = 'ALL_CHILDREN'\nexport const ALL_DESCENDANTS = 'ALL_DESCENDANTS'\nexport const LEAF_CHILDREN = 'LEAF_CHILDREN'\nexport const LEAF_DESCENDANTS = 'LEAF_DESCENDANTS'\n\n// Action types of delayed loading.\nexport const LOAD_ROOT_OPTIONS = 'LOAD_ROOT_OPTIONS'\nexport const LOAD_CHILDREN_OPTIONS = 'LOAD_CHILDREN_OPTIONS'\nexport const ASYNC_SEARCH = 'ASYNC_SEARCH'\n\n// Acceptable values of `valueConsistsOf` prop.\nexport const ALL = 'ALL'\nexport const BRANCH_PRIORITY = 'BRANCH_PRIORITY'\nexport const LEAF_PRIORITY = 'LEAF_PRIORITY'\nexport const ALL_WITH_INDETERMINATE = 'ALL_WITH_INDETERMINATE'\n\n// Acceptable values of `sortValueBy` prop.\nexport const ORDER_SELECTED = 'ORDER_SELECTED'\nexport const LEVEL = 'LEVEL'\nexport const INDEX = 'INDEX'\n\n// Key codes look-up table.\nexport const 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}\n\n// Other constants.\nexport const INPUT_DEBOUNCE_DELAY = process.env.NODE_ENV === 'testing'\n ? /* to speed up unit testing */ 10\n : /* istanbul ignore next */ 200\nexport const MIN_INPUT_WIDTH = 5\nexport const MENU_BUFFER = 40\n","import fuzzysearch from 'fuzzysearch'\n\nimport {\n warning,\n onLeftClick, scrollIntoView,\n isNaN, isPromise, once,\n identity, constant, createMap,\n quickDiff, last as getLast, includes, find, removeFromArray,\n} from '../utils'\n\nimport {\n NO_PARENT_NODE,\n UNCHECKED, INDETERMINATE, CHECKED,\n LOAD_ROOT_OPTIONS, LOAD_CHILDREN_OPTIONS, ASYNC_SEARCH,\n ALL, BRANCH_PRIORITY, LEAF_PRIORITY, ALL_WITH_INDETERMINATE,\n ALL_CHILDREN, ALL_DESCENDANTS, LEAF_CHILDREN, LEAF_DESCENDANTS,\n ORDER_SELECTED, LEVEL, INDEX,\n} from '../constants'\n\nfunction sortValueByIndex(a, b) {\n let i = 0\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\n ? sortValueByIndex(a, b)\n : 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 // istanbul ignore next\n return ''\n}\n\nfunction match(enableFuzzyMatch, needle, haystack) {\n return enableFuzzyMatch\n ? fuzzysearch(needle, haystack)\n : includes(haystack, needle)\n}\n\nfunction getErrorMessage(err) {\n return err.message || /* istanbul ignore next */String(err)\n}\n\nlet instanceId = 0\n\nexport default {\n provide() {\n return {\n // Enable access to the instance of root component of rp-treeselect\n // across hierarchy.\n instance: this,\n }\n },\n\n props: {\n /**\n * Whether to allow resetting value even if there are disabled selected nodes.\n */\n allowClearingDisabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When an ancestor node is selected/deselected, whether its disabled descendants should be selected/deselected.\n * You may want to use this in conjunction with `allowClearingDisabled` prop.\n */\n allowSelectingDisabledDescendants: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the menu should be always open.\n */\n alwaysOpen: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Append the menu to <body />?\n */\n appendToBody: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether to enable async search mode.\n */\n async: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Automatically focus the component on mount?\n */\n autoFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Automatically load root options on mount. When set to `false`, root options will be loaded when the menu is opened.\n */\n autoLoadRootOptions: {\n type: Boolean,\n default: true,\n },\n\n /**\n * When user deselects a node, automatically deselect its ancestors. Applies to flat mode only.\n */\n autoDeselectAncestors: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When user deselects a node, automatically deselect its descendants. Applies to flat mode only.\n */\n autoDeselectDescendants: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When user selects a node, automatically select its ancestors. Applies to flat mode only.\n */\n autoSelectAncestors: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When user selects a node, automatically select its descendants. Applies to flat mode only.\n */\n autoSelectDescendants: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether pressing backspace key removes the last item if there is no text input.\n */\n backspaceRemoves: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Function that processes before clearing all input fields.\n * Return `false` to prevent value from being cleared.\n * @type {function(): (boolean|Promise<boolean>)}\n */\n beforeClearAll: {\n type: Function,\n default: constant(true),\n },\n\n /**\n * Show branch nodes before leaf nodes?\n */\n branchNodesFirst: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Should cache results of every search request?\n */\n cacheOptions: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Show an \"×\" button that resets value?\n */\n clearable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Title for the \"×\" button when `multiple: true`.\n */\n clearAllText: {\n type: String,\n default: 'Clear all',\n },\n\n /**\n * Whether to clear the search input after selecting.\n * Use only when `multiple` is `true`.\n * For single-select mode, it **always** clears the input after selecting an option regardless of the prop value.\n */\n clearOnSelect: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Title for the \"×\" button.\n */\n clearValueText: {\n type: String,\n default: 'Clear value',\n },\n\n /**\n * Whether to close the menu after selecting an option?\n * Use only when `multiple` is `true`.\n */\n closeOnSelect: {\n type: Boolean,\n default: true,\n },\n\n /**\n * How many levels of branch nodes should be automatically expanded when loaded.\n * Set `Infinity` to make all branch nodes expanded by default.\n */\n defaultExpandLevel: {\n type: Number,\n default: 0,\n },\n\n /**\n * The default set of options to show before the user starts searching. Used for async search mode.\n * When set to `true`, the results for search query as a empty string will be autoloaded.\n * @type {boolean|node[]}\n */\n defaultOptions: {\n default: false,\n },\n\n /**\n * Whether pressing delete key removes the last item if there is no text input.\n */\n deleteRemoves: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Delimiter to use to join multiple values for the hidden field value.\n */\n delimiter: {\n type: String,\n default: ',',\n },\n\n /**\n * Only show the nodes that match the search value directly, excluding its ancestors.\n *\n * @type {Object}\n */\n flattenSearchResults: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Prevent branch nodes from being selected?\n */\n disableBranchNodes: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Disable the control?\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Disable the fuzzy matching functionality?\n */\n disableFuzzyMatching: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether to enable flat mode or not. Non-flat mode (default) means:\n * - Whenever a branch node gets checked, all its children will be checked too\n * - Whenever a branch node has all children checked, the branch node itself will be checked too\n * Set `true` to disable this mechanism\n */\n flat: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Will be passed with all events as the last param.\n * Useful for identifying events origin.\n */\n instanceId: {\n // Add two trailing \"$\" to distinguish from explictly specified ids.\n default: () => `${instanceId++}$$`,\n type: [ String, Number ],\n },\n\n /**\n * Joins multiple values into a single form field with the `delimiter` (legacy mode).\n */\n joinValues: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Limit the display of selected options.\n * The rest will be hidden within the limitText string.\n */\n limit: {\n type: Number,\n default: Infinity,\n },\n\n /**\n * Function that processes the message shown when selected elements pass the defined limit.\n * @type {function(number): string}\n */\n limitText: {\n type: Function,\n default: function limitTextDefault(count) { // eslint-disable-line func-name-matching\n return `and ${count} more`\n },\n },\n\n /**\n * Text displayed when loading options.\n */\n loadingText: {\n type: String,\n default: 'Loading...',\n },\n\n /**\n * Used for dynamically loading options.\n * @type {function({action: string, callback: (function((Error|string)=): void), parentNode: node=, instanceId}): void}\n */\n loadOptions: {\n type: Function,\n },\n\n /**\n * Which node properties to filter on.\n */\n matchKeys: {\n type: Array,\n default: constant([ 'label' ]),\n },\n\n /**\n * Sets `maxHeight` style value of the menu.\n */\n maxHeight: {\n type: Number,\n default: 300,\n },\n\n /**\n * Set `true` to allow selecting multiple options (a.k.a., multi-select mode).\n */\n multiple: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Generates a hidden <input /> tag with this field name for html forms.\n */\n name: {\n type: String,\n },\n\n /**\n * Text displayed when a branch node has no children.\n */\n noChildrenText: {\n type: String,\n default: 'No sub-options.',\n },\n\n /**\n * Text displayed when there are no available options.\n */\n noOptionsText: {\n type: String,\n default: 'No options available.',\n },\n\n /**\n * Text displayed when there are no matching search results.\n */\n noResultsText: {\n type: String,\n default: 'No results found...',\n },\n\n /**\n * Used for normalizing source data.\n * @type {function(node, instanceId): node}\n */\n normalizer: {\n type: Function,\n default: identity,\n },\n\n /**\n * By default (`auto`), the menu will open below the control. If there is not\n * enough space, rp-treeselect will automatically flip the menu.\n * You can use one of other four options to force the menu to be always opened\n * to specified direction.\n * Acceptable values:\n * - `\"auto\"`\n * - `\"below\"`\n * - `\"bottom\"`\n * - `\"above\"`\n * - `\"top\"`\n */\n openDirection: {\n type: String,\n default: 'auto',\n validator(value) {\n const acceptableValues = [ 'auto', 'top', 'bottom', 'above', 'below' ]\n return includes(acceptableValues, value)\n },\n },\n\n /**\n * Whether to automatically open the menu when the control is clicked.\n */\n openOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether to automatically open the menu when the control is focused.\n */\n openOnFocus: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Array of available options.\n * @type {node[]}\n */\n options: {\n type: Array,\n },\n\n /**\n * Field placeholder, displayed when there's no value.\n */\n placeholder: {\n type: String,\n default: 'Select...',\n },\n\n /**\n * Applies HTML5 required attribute when needed.\n */\n required: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text displayed asking user whether to retry loading children options.\n */\n retryText: {\n type: String,\n default: 'Retry?',\n },\n\n /**\n * Title for the retry button.\n */\n retryTitle: {\n type: String,\n default: 'Click to retry',\n },\n\n /**\n * Enable searching feature?\n */\n searchable: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Search in ancestor nodes too.\n */\n searchNested: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Text tip to prompt for async search.\n */\n searchPromptText: {\n type: String,\n default: 'Type to search...',\n },\n\n /**\n * Whether to show a children count next to the label of each branch node.\n */\n showCount: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Used in conjunction with `showCount` to specify which type of count number should be displayed.\n * Acceptable values:\n * - \"ALL_CHILDREN\"\n * - \"ALL_DESCENDANTS\"\n * - \"LEAF_CHILDREN\"\n * - \"LEAF_DESCENDANTS\"\n */\n showCountOf: {\n type: String,\n default: ALL_CHILDREN,\n validator(value) {\n const acceptableValues = [ ALL_CHILDREN, ALL_DESCENDANTS, LEAF_CHILDREN, LEAF_DESCENDANTS ]\n return includes(acceptableValues, value)\n },\n },\n\n /**\n * Whether to show children count when searching.\n * Fallbacks to the value of `showCount` when not specified.\n * @type {boolean}\n */\n showCountOnSearch: null,\n\n /**\n * In which order the selected options should be displayed in trigger & sorted in `value` array.\n * Used for multi-select mode only.\n * Acceptable values:\n * - \"ORDER_SELECTED\"\n * - \"LEVEL\"\n * - \"INDEX\"\n */\n sortValueBy: {\n type: String,\n default: ORDER_SELECTED,\n validator(value) {\n const acceptableValues = [ ORDER_SELECTED, LEVEL, INDEX ]\n return includes(acceptableValues, value)\n },\n },\n\n /**\n * Tab index of the control.\n */\n tabIndex: {\n type: Number,\n default: 0,\n },\n\n /**\n * The value of the control.\n * Should be `id` or `node` object for single-select mode, or an array of `id` or `node` object for multi-select mode.\n * Its format depends on the `valueFormat` prop.\n * For most cases, just use `v-model` instead.\n * @type {?Array}\n */\n value: null,\n\n /**\n * Which kind of nodes should be included in the `value` array in multi-select mode.\n * Acceptable values:\n * - \"ALL\" - Any node that is checked will be included in the `value` array\n * - \"BRANCH_PRIORITY\" (default) - If a branch node is checked, all its descendants will be excluded in the `value` array\n * - \"LEAF_PRIORITY\" - If a branch node is checked, this node itself and its branch descendants will be excluded from the `value` array but its leaf descendants will be included\n * - \"ALL_WITH_INDETERMINATE\" - Any node that is checked will be included in the `value` array, plus indeterminate nodes\n */\n valueConsistsOf: {\n type: String,\n default: BRANCH_PRIORITY,\n validator(value) {\n const acceptableValues = [ ALL, BRANCH_PRIORITY, LEAF_PRIORITY, ALL_WITH_INDETERMINATE ]\n return includes(acceptableValues, value)\n },\n },\n\n /**\n * Format of `value` prop.\n * Note that, when set to `\"object\"`, only `id` & `label` properties are required in each `node` object in `value` prop.\n * Acceptable values:\n * - \"id\"\n * - \"object\"\n */\n valueFormat: {\n type: String,\n default: 'id',\n },\n\n /**\n * z-index of the menu.\n */\n zIndex: {\n type: [ Number, String ],\n default: 999,\n },\n },\n\n data() {\n return {\n trigger: {\n // Is the control focused?\n isFocused: false,\n // User entered search query - value of the input.\n searchQuery: '',\n },\n\n menu: {\n // Is the menu opened?\n isOpen: false,\n // Id of current highlighted option.\n current: null,\n // The scroll position before last menu closing.\n lastScrollPosition: 0,\n // Which direction to open the menu.\n placement: 'bottom',\n },\n\n forest: {\n // Normalized options.\n normalizedOptions: [],\n // <id, node> map for quick look-up.\n nodeMap: createMap(),\n // <id, checkedState> map, used for multi-select mode.\n checkedStateMap: createMap(),\n // Id list of all selected options.\n selectedNodeIds: this.extractCheckedNodeIdsFromValue(),\n // <id, true> map for fast checking:\n // if (forest.selectedNodeIds.indexOf(id) !== -1) forest.selectedNodeMap[id] === true\n selectedNodeMap: createMap(),\n },\n\n // States of root options.\n rootOptionsStates: createAsyncOptionsStates(),\n\n localSearch: {\n // Has user entered any query to search local options?\n active: false,\n // Has any options matched the search query?\n noResults: true,\n // <id, countObject> map for counting matched children/descendants.\n countMap: createMap(),\n },\n\n // <searchQuery, remoteSearchEntry> map.\n remoteSearch: createMap(),\n }\n },\n\n computed: {\n /* eslint-disable valid-jsdoc */\n /**\n * Normalized nodes that have been selected.\n * @type {node[]}\n */\n selectedNodes() {\n return this.forest.selectedNodeIds.map(this.getNode)\n },\n /**\n * Id list of selected nodes with `sortValueBy` prop applied.\n * @type {nodeId[]}\n */\n internalValue() {\n let internalValue\n\n // istanbul ignore else\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(id => {\n const node = this.getNode(id)\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(id => {\n const node = this.getNode(id)\n if (node.isLeaf) return true\n return node.children.length === 0\n })\n } else if (this.valueConsistsOf === ALL_WITH_INDETERMINATE) {\n const indeterminateNodeIds = []\n internalValue = this.forest.selectedNodeIds.slice()\n this.selectedNodes.forEach(selectedNode => {\n selectedNode.ancestors.forEach(ancestor => {\n if (includes(indeterminateNodeIds, ancestor.id)) return\n if (includes(internalValue, ancestor.id)) return\n indeterminateNodeIds.push(ancestor.id)\n })\n })\n internalValue.push(...indeterminateNodeIds)\n }\n\n if (this.sortValueBy === LEVEL) {\n internalValue.sort((a, b) => sortValueByLevel(this.getNode(a), this.getNode(b)))\n } else if (this.sortValueBy === INDEX) {\n internalValue.sort((a, b) => sortValueByIndex(this.getNode(a), this.getNode(b)))\n }\n\n return internalValue\n },\n /**\n * Has any option been selected?\n * @type {boolean}\n */\n hasValue() {\n return this.internalValue.length > 0\n },\n /**\n * Single-select mode?\n * @type {boolean}\n */\n single() {\n return !this.multiple\n },\n /**\n * Id list of nodes displayed in the menu. Nodes that are considered NOT visible:\n * - descendants of a collapsed branch node\n * - in local search mode, nodes that are not matched, unless\n * - it's a branch node and has matched descendants\n * - it's a leaf node and its parent node is explicitly set to show all children\n * @type {id[]}\n */\n visibleOptionIds() {\n const visibleOptionIds = []\n\n this.traverseAllNodesByIndex(node => {\n if (!this.localSearch.active || this.shouldOptionBeIncludedInSearchResult(node)) {\n visibleOptionIds.push(node.id)\n }\n // Skip the traversal of descendants of a branch node if it's not expanded.\n if (node.isBranch && !this.shouldExpand(node)) {\n return false\n }\n })\n\n return visibleOptionIds\n },\n /**\n * Has any option should be displayed in the menu?\n * @type {boolean}\n */\n hasVisibleOptions() {\n return this.visibleOptionIds.length !== 0\n },\n /**\n * Should show children count when searching?\n * @type {boolean}\n */\n showCountOnSearchComputed() {\n // Vue doesn't allow setting default prop value based on another prop value.\n // So use computed property as a workaround.\n // https://github.com/vuejs/vue/issues/6358\n return typeof this.showCountOnSearch === 'boolean'\n ? this.showCountOnSearch\n : this.showCount\n },\n /**\n * Is there any branch node?\n * @type {boolean}\n */\n hasBranchNodes() {\n return this.forest.normalizedOptions.some(rootNode => rootNode.isBranch)\n },\n shouldFlattenOptions() {\n return this.localSearch.active && this.flattenSearchResults\n },\n /* eslint-enable valid-jsdoc */\n },\n\n watch: {\n alwaysOpen(newValue) {\n if (newValue) this.openMenu()\n else this.closeMenu()\n },\n\n branchNodesFirst() {\n this.initialize()\n },\n\n disabled(newValue) {\n // force close the menu after disabling the control\n if (newValue && this.menu.isOpen) this.closeMenu()\n else if (!newValue && !this.menu.isOpen && this.alwaysOpen) this.openMenu()\n },\n\n flat() {\n this.initialize()\n },\n\n internalValue(newValue, oldValue) {\n const hasChanged = quickDiff(newValue, oldValue)\n // #122\n // Vue would trigger this watcher when `newValue` and `oldValue` are shallow-equal.\n // We emit the `input` event only when the value actually changes.\n if (hasChanged) this.$emit('input', this.getValue(), this.getInstanceId())\n },\n\n matchKeys() {\n this.initialize()\n },\n\n multiple(newValue) {\n // We need to rebuild the state when switching from single-select mode\n // to multi-select mode.\n // istanbul ignore else\n if (newValue) this.buildForestState()\n },\n\n options: {\n handler() {\n if (this.async) return\n // Re-initialize options when the `options` prop has changed.\n this.initialize()\n this.rootOptionsStates.isLoaded = Array.isArray(this.options)\n },\n deep: true,\n immediate: true,\n },\n\n 'trigger.searchQuery'() {\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\n value() {\n const nodeIdsFromValue = this.extractCheckedNodeIdsFromValue()\n const hasChanged = quickDiff(nodeIdsFromValue, this.internalValue)\n if (hasChanged) this.fixSelectedNodeIds(nodeIdsFromValue)\n },\n },\n\n methods: {\n verifyProps() {\n warning(\n () => this.async ? this.searchable : true,\n () => 'For async search mode, the value of \"searchable\" prop must be true.',\n )\n\n if (this.options == null && !this.loadOptions) {\n warning(\n () => false,\n () => 'Are you meant to dynamically load options? You need to use \"loadOptions\" prop.',\n )\n }\n\n if (this.flat) {\n warning(\n () => this.multiple,\n () => 'You are using flat mode. But you forgot to add \"multiple=true\"?',\n )\n }\n\n if (!this.flat) {\n const propNames = [\n 'autoSelectAncestors',\n 'autoSelectDescendants',\n 'autoDeselectAncestors',\n 'autoDeselectDescendants',\n ]\n\n propNames.forEach(propName => {\n warning(\n () => !this[propName],\n () => `\"${propName}\" only applies to flat mode.`,\n )\n })\n }\n },\n\n resetFlags() {\n this._blurOnSelect = false\n },\n\n initialize() {\n const options = this.async\n ? this.getRemoteSearchEntry().options\n : this.options\n\n if (Array.isArray(options)) {\n // In case we are re-initializing options, keep the old state tree temporarily.\n const 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 // Cases that need fixing `selectedNodeIds`:\n // 1) Children options of a checked node have been delayed loaded,\n // we should also mark these children as checked. (multi-select mode)\n // 2) Root options have been delayed loaded, we need to initialize states\n // of these nodes. (multi-select mode)\n // 3) Async search mode.\n this.fixSelectedNodeIds(this.internalValue)\n } else {\n this.forest.normalizedOptions = []\n }\n },\n\n getInstanceId() {\n return this.instanceId == null ? this.id : this.instanceId\n },\n\n getValue() {\n if (this.valueFormat === 'id') {\n return this.multiple\n ? this.internalValue.slice()\n : this.internalValue[0]\n }\n\n const rawNodes = this.internalValue.map(id => this.getNode(id).raw)\n return this.multiple ? rawNodes : rawNodes[0]\n },\n\n getNode(nodeId) {\n warning(\n () => nodeId != null,\n () => `Invalid node id: ${nodeId}`,\n )\n\n if (nodeId == null) return null\n\n return nodeId in this.forest.nodeMap\n ? this.forest.nodeMap[nodeId]\n : this.createFallbackNode(nodeId)\n },\n\n createFallbackNode(id) {\n // In case there is a default selected node that is not loaded into the tree yet,\n // we create a fallback node to keep the component working.\n // When the real data is loaded, we'll override this fake node.\n\n const raw = this.extractNodeFromValue(id)\n const label = this.enhancedNormalizer(raw).label || `${id} (unknown)`\n const fallbackNode = {\n id,\n 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,\n }\n\n return this.$set(this.forest.nodeMap, id, fallbackNode)\n },\n\n extractCheckedNodeIdsFromValue() {\n if (this.value == null) return []\n\n if (this.valueFormat === 'id') {\n return this.multiple\n ? this.value.slice()\n : [ this.value ]\n }\n\n return (this.multiple ? this.value : [ this.value ])\n .map(node => this.enhancedNormalizer(node))\n .map(node => node.id)\n },\n\n extractNodeFromValue(id) {\n const defaultNode = { id }\n\n if (this.valueFormat === 'id') {\n return defaultNode\n }\n\n const valueArray = this.multiple\n ? Array.isArray(this.value) ? this.value : []\n : this.value ? [ this.value ] : []\n const matched = find(\n valueArray,\n node => node && this.enhancedNormalizer(node).id === id,\n )\n\n return matched || defaultNode\n },\n\n fixSelectedNodeIds(nodeIdListOfPrevValue) {\n let nextSelectedNodeIds = []\n\n // istanbul ignore else\n if (this.single || this.flat || this.disableBranchNodes || this.valueConsistsOf === ALL) {\n nextSelectedNodeIds = nodeIdListOfPrevValue\n } else if (this.valueConsistsOf === BRANCH_PRIORITY) {\n nodeIdListOfPrevValue.forEach(nodeId => {\n nextSelectedNodeIds.push(nodeId)\n const node = this.getNode(nodeId)\n if (node.isBranch) this.traverseDescendantsBFS(node, descendant => {\n nextSelectedNodeIds.push(descendant.id)\n })\n })\n } else if (this.valueConsistsOf === LEAF_PRIORITY) {\n const map = createMap()\n const queue = nodeIdListOfPrevValue.slice()\n while (queue.length) {\n const nodeId = queue.shift()\n const 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 const map = createMap()\n const queue = nodeIdListOfPrevValue.filter(nodeId => {\n const node = this.getNode(nodeId)\n return node.isLeaf || node.children.length === 0\n })\n while (queue.length) {\n const nodeId = queue.shift()\n const 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 }\n\n const hasChanged = quickDiff(this.forest.selectedNodeIds, nextSelectedNodeIds)\n // If `nextSelectedNodeIds` doesn't actually differ from old `selectedNodeIds`,\n // we don't make the assignment to avoid triggering its watchers which may cause\n // unnecessary calculations.\n if (hasChanged) this.forest.selectedNodeIds = nextSelectedNodeIds\n\n this.buildForestState()\n },\n\n keepDataOfSelectedNodes(prevNodeMap) {\n // In case there is any selected node that is not present in the new `options` array.\n // It could be useful for async search mode.\n this.forest.selectedNodeIds.forEach(id => {\n if (!prevNodeMap[id]) return\n const node = {\n ...prevNodeMap[id],\n isFallbackNode: true,\n }\n this.$set(this.forest.nodeMap, id, node)\n })\n },\n\n isSelected(node) {\n // whether a node is selected (single-select mode) or fully-checked (multi-select mode)\n return this.forest.selectedNodeMap[node.id] === true\n },\n\n traverseDescendantsBFS(parentNode, callback) {\n // istanbul ignore if\n if (!parentNode.isBranch) return\n const queue = parentNode.children.slice()\n while (queue.length) {\n const currNode = queue[0]\n if (currNode.isBranch) queue.push(...currNode.children)\n callback(currNode)\n queue.shift()\n }\n },\n\n traverseDescendantsDFS(parentNode, callback) {\n if (!parentNode.isBranch) return\n parentNode.children.forEach(child => {\n // deep-level node first\n this.traverseDescendantsDFS(child, callback)\n callback(child)\n })\n },\n\n traverseAllNodesDFS(callback) {\n this.forest.normalizedOptions.forEach(rootNode => {\n // deep-level node first\n this.traverseDescendantsDFS(rootNode, callback)\n callback(rootNode)\n })\n },\n\n traverseAllNodesByIndex(callback) {\n const walk = parentNode => {\n parentNode.children.forEach(child => {\n if (callback(child) !== false && child.isBranch) {\n walk(child)\n }\n })\n }\n\n // To simplify the code logic of traversal,\n // we create a fake root node that holds all the root options.\n walk({ children: this.forest.normalizedOptions })\n },\n\n toggleClickOutsideEvent(enabled) {\n if (enabled) {\n document.addEventListener('mousedown', this.handleClickOutside, false)\n } else {\n document.removeEventListener('mousedown', this.handleClickOutside, false)\n }\n },\n\n getValueContainer() {\n return this.$refs.control.$refs['value-container']\n },\n\n getInput() {\n return this.getValueContainer().$refs.input\n },\n\n focusInput() {\n this.getInput().focus()\n },\n\n blurInput() {\n this.getInput().blur()\n },\n\n handleMouseDown: onLeftClick(function handleMouseDown(evt) {\n evt.preventDefault()\n evt.stopPropagation()\n\n if (this.disabled) return\n\n const isClickedOnValueContainer = this.getValueContainer().$el.contains(evt.target)\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 // Focus the input or prevent blurring.\n this.focusInput()\n }\n\n this.resetFlags()\n }),\n\n handleClickOutside(evt) {\n // istanbul ignore else\n if (this.$refs.wrapper && !this.$refs.wrapper.contains(evt.target)) {\n this.blurInput()\n this.closeMenu()\n }\n },\n\n handleLocalSearch() {\n const { searchQuery } = this.trigger\n const done = () => this.resetHighlightedOptionWhenNecessary(true)\n\n if (!searchQuery) {\n // Exit sync search mode.\n this.localSearch.active = false\n return done()\n }\n\n // Enter sync search mode.\n this.localSearch.active = true\n\n // Reset states.\n this.localSearch.noResults = true\n this.traverseAllNodesDFS(node => {\n if (node.isBranch) {\n node.isExpandedOnSearch = false\n node.showAllChildrenOnSearch = false\n node.isMatched = false\n node.hasMatchedDescendants = false\n this.$set(this.localSearch.countMap, node.id, {\n [ALL_CHILDREN]: 0,\n [ALL_DESCENDANTS]: 0,\n [LEAF_CHILDREN]: 0,\n [LEAF_DESCENDANTS]: 0,\n })\n }\n })\n\n const lowerCasedSearchQuery = searchQuery.trim().toLocaleLowerCase()\n const splitSearchQuery = lowerCasedSearchQuery.replace(/\\s+/g, ' ').split(' ')\n this.traverseAllNodesDFS(node => {\n if (this.searchNested && splitSearchQuery.length > 1) {\n node.isMatched = splitSearchQuery.every(filterValue =>\n match(false, filterValue, node.nestedSearchLabel),\n )\n } else {\n node.isMatched = this.matchKeys.some(matchKey =>\n match(!this.disableFuzzyMatching, lowerCasedSearchQuery, node.lowerCased[matchKey]),\n )\n }\n\n if (node.isMatched) {\n this.localSearch.noResults = false\n node.ancestors.forEach(ancestor => this.localSearch.countMap[ancestor.id][ALL_DESCENDANTS]++)\n if (node.isLeaf) node.ancestors.forEach(ancestor => this.localSearch.countMap[ancestor.id][LEAF_DESCENDANTS]++)\n if (node.parentNode !== NO_PARENT_NODE) {\n this.localSearch.countMap[node.parentNode.id][ALL_CHILDREN] += 1\n // istanbul ignore else\n if (node.isLeaf) this.localSearch.countMap[node.parentNode.id][LEAF_CHILDREN] += 1\n }\n }\n\n if (\n (node.isMatched || (node.isBranch && node.isExpandedOnSearch)) &&\n node.parentNode !== NO_PARENT_NODE\n ) {\n node.parentNode.isExpandedOnSearch = true\n node.parentNode.hasMatchedDescendants = true\n }\n })\n\n done()\n },\n\n handleRemoteSearch() {\n const { searchQuery } = this.trigger\n const entry = this.getRemoteSearchEntry()\n const done = () => {\n this.initialize()\n this.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: { searchQuery },\n isPending() {\n return entry.isLoading\n },\n start: () => {\n entry.isLoading = true\n entry.isLoaded = false\n entry.loadingError = ''\n },\n succeed: options => {\n entry.isLoaded = true\n entry.options = options\n // When the request completes, the search query may have changed.\n // We only show these options if they are for the current search query.\n if (this.trigger.searchQuery === searchQuery) done()\n },\n fail: err => {\n entry.loadingError = getErrorMessage(err)\n },\n end: () => {\n entry.isLoading = false\n },\n })\n },\n\n getRemoteSearchEntry() {\n const { searchQuery } = this.trigger\n const entry = this.remoteSearch[searchQuery] || {\n ...createAsyncOptionsStates(),\n options: [],\n }\n\n // Vue doesn't support directly watching on objects.\n this.$watch(\n () => entry.options,\n () => {\n // TODO: potential redundant re-initialization.\n if (this.trigger.searchQuery === searchQuery) this.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\n shouldExpand(node) {\n return this.localSearch.active ? node.isExpandedOnSearch : node.isExpanded\n },\n\n shouldOptionBeIncludedInSearchResult(node) {\n // 1) This option is matched.\n if (node.isMatched) return true\n // 2) This option is not matched, but has matched descendant(s).\n if (node.isBranch && node.hasMatchedDescendants && !this.flattenSearchResults) return true\n // 3) This option's parent has no matched descendants,\n // but after being expanded, all its children should be shown.\n if (!node.isRootNode && node.parentNode.showAllChildrenOnSearch) return true\n // 4) The default case.\n return false\n },\n\n shouldShowOptionInMenu(node) {\n if (this.localSearch.active && !this.shouldOptionBeIncludedInSearchResult(node)) {\n return false\n }\n return true\n },\n\n getControl() {\n return this.$refs.control.$el\n },\n\n getMenu() {\n const ref = this.appendToBody ? this.$refs.portal.portalTarget : this\n const $menu = ref.$refs.menu.$refs.menu\n return $menu && $menu.nodeName !== '#comment' ? $menu : null\n },\n\n setCurrentHighlightedOption(node, scroll = true) {\n const prev = this.menu.current\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 const scrollToOption = () => {\n const $menu = this.getMenu()\n const $option = $menu.querySelector(`.rp-treeselect__option[data-id=\"${node.id}\"]`)\n if ($option) scrollIntoView($menu, $option)\n }\n\n // In case `openMenu()` is just called and the menu is not rendered yet.\n if (this.getMenu()) {\n scrollToOption()\n } else {\n // istanbul ignore next\n this.$nextTick(scrollToOption)\n }\n }\n },\n\n resetHighlightedOptionWhenNecessary(forceReset = false) {\n const { current } = this.menu\n\n if (\n forceReset || current == null ||\n !(current in this.forest.nodeMap) ||\n !this.shouldShowOptionInMenu(this.getNode(current))\n ) {\n this.highlightFirstOption()\n }\n },\n\n highlightFirstOption() {\n if (!this.hasVisibleOptions) return\n\n const first = this.visibleOptionIds[0]\n this.setCurrentHighlightedOption(this.getNode(first))\n },\n\n highlightPrevOption() {\n if (!this.hasVisibleOptions) return\n\n const 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\n highlightNextOption() {\n if (!this.hasVisibleOptions) return\n\n const 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\n highlightLastOption() {\n if (!this.hasVisibleOptions) return\n\n const last = getLast(this.visibleOptionIds)\n this.setCurrentHighlightedOption(this.getNode(last))\n },\n\n resetSearchQuery() {\n this.trigger.searchQuery = ''\n },\n\n 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\n 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\n toggleMenu() {\n if (this.menu.isOpen) {\n this.closeMenu()\n } else {\n this.openMenu()\n }\n },\n\n toggleExpanded(node) {\n let 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\n buildForestState() {\n const selectedNodeMap = createMap()\n this.forest.selectedNodeIds.forEach(selectedNodeId => {\n selectedNodeMap[selectedNodeId] = true\n })\n this.forest.selectedNodeMap = selectedNodeMap\n\n const checkedStateMap = createMap()\n if (this.multiple) {\n this.traverseAllNodesByIndex(node => {\n checkedStateMap[node.id] = UNCHECKED\n })\n\n this.selectedNodes.forEach(selectedNode => {\n checkedStateMap[selectedNode.id] = CHECKED\n\n if (!this.flat && !this.disableBranchNodes) {\n selectedNode.ancestors.forEach(ancestorNode => {\n if (!this.isSelected(ancestorNode)) {\n checkedStateMap[ancestorNode.id] = INDETERMINATE\n }\n })\n }\n })\n }\n this.forest.checkedStateMap = checkedStateMap\n },\n\n enhancedNormalizer(raw) {\n return {\n ...raw,\n ...this.normalizer(raw, this.getInstanceId()),\n }\n },\n\n normalize(parentNode, nodes, prevNodeMap) {\n let normalizedOptions = nodes\n .map(node => [ this.enhancedNormalizer(node), node ])\n .map(([ node, raw ], index) => {\n this.checkDuplication(node)\n this.verifyNodeShape(node)\n\n const { id, label, children, isDefaultExpanded } = node\n const isRootNode = parentNode === NO_PARENT_NODE\n const level = isRootNode ? 0 : parentNode.level + 1\n const isBranch = Array.isArray(children) || children === null\n const isLeaf = !isBranch\n const isDisabled = !!node.isDisabled || (!this.flat && !isRootNode && parentNode.isDisabled)\n const isNew = !!node.isNew\n const lowerCased = this.matchKeys.reduce((prev, key) => ({\n ...prev,\n [key]: stringifyOptionPropValue(node[key]).toLocaleLowerCase(),\n }), {})\n const nestedSearchLabel = isRootNode\n ? lowerCased.label\n : parentNode.nestedSearchLabel + ' ' + lowerCased.label\n\n const normalized = this.$set(this.forest.nodeMap, id, createMap())\n this.$set(normalized, 'id', id)\n this.$set(normalized, 'label', label)\n this.$set(normalized, 'level', level)\n this.$set(normalized, 'ancestors', isRootNode ? [] : [ parentNode ].concat(parentNode.ancestors))\n this.$set(normalized, 'index', (isRootNode ? [] : parentNode.index).concat(index))\n this.$set(normalized, 'parentNode', parentNode)\n this.$set(normalized, 'lowerCased', lowerCased)\n this.$set(normalized, 'nestedSearchLabel', nestedSearchLabel)\n this.$set(normalized, 'isDisabled', isDisabled)\n this.$set(normalized, 'isNew', isNew)\n this.$set(normalized, 'isMatched', false)\n this.$set(normalized, 'isHighlighted', false)\n this.$set(normalized, 'isBranch', isBranch)\n this.$set(normalized, 'isLeaf', isLeaf)\n this.$set(normalized, 'isRootNode', isRootNode)\n this.$set(normalized, 'raw', raw)\n\n if (isBranch) {\n const isLoaded = Array.isArray(children)\n\n this.$set(normalized, 'childrenStates', {\n ...createAsyncOptionsStates(),\n isLoaded,\n })\n this.$set(normalized, 'isExpanded', typeof isDefaultExpanded === 'boolean'\n ? isDefaultExpanded\n : level < this.defaultExpandLevel)\n this.$set(normalized, 'hasMatchedDescendants', false)\n this.$set(normalized, 'hasDisabledDescendants', false)\n this.$set(normalized, 'isExpandedOnSearch', false)\n this.$set(normalized, 'showAllChildrenOnSearch', false)\n this.$set(normalized, 'count', {\n [ALL_CHILDREN]: 0,\n [ALL_DESCENDANTS]: 0,\n [LEAF_CHILDREN]: 0,\n [LEAF_DESCENDANTS]: 0,\n })\n this.$set(normalized, 'children', isLoaded\n ? this.normalize(normalized, children, prevNodeMap)\n : [])\n\n if (isDefaultExpanded === true) normalized.ancestors.forEach(ancestor => {\n ancestor.isExpanded = true\n })\n\n if (!isLoaded && typeof this.loadOptions !== 'function') {\n warning(\n () => false,\n () => 'Unloaded branch node detected. \"loadOptions\" prop is required to load its children.',\n )\n } else if (!isLoaded && normalized.isExpanded) {\n this.loadChildrenOptions(normalized)\n }\n }\n\n normalized.ancestors.forEach(ancestor => ancestor.count[ALL_DESCENDANTS]++)\n if (isLeaf) normalized.ancestors.forEach(ancestor => ancestor.count[LEAF_DESCENDANTS]++)\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 // Preserve previous states.\n if (prevNodeMap && prevNodeMap[id]) {\n const prev = prevNodeMap[id]\n\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 // #97\n // If `isLoaded` was true, but IS NOT now, we consider this branch node\n // to be reset to unloaded state by the user of this component.\n if (prev.childrenStates.isLoaded && !normalized.childrenStates.isLoaded) {\n // Make sure the node is collapsed, then the user can load its\n // children again (by expanding).\n normalized.isExpanded = false\n // We have reset `childrenStates` and don't want to preserve states here.\n } else {\n normalized.childrenStates = { ...prev.childrenStates }\n }\n }\n }\n\n return normalized\n })\n\n if (this.branchNodesFirst) {\n const branchNodes = normalizedOptions.filter(option => option.isBranch)\n const leafNodes = normalizedOptions.filter(option => option.isLeaf)\n normalizedOptions = branchNodes.concat(leafNodes)\n }\n\n return normalizedOptions\n },\n\n loadRootOptions() {\n this.callLoadOptionsProp({\n action: LOAD_ROOT_OPTIONS,\n isPending: () => {\n return this.rootOptionsStates.isLoading\n },\n start: () => {\n this.rootOptionsStates.isLoading = true\n this.rootOptionsStates.loadingError = ''\n },\n succeed: () => {\n this.rootOptionsStates.isLoaded = true\n // Wait for `options` being re-initialized.\n this.$nextTick(() => {\n this.resetHighlightedOptionWhenNecessary(true)\n })\n },\n fail: err => {\n this.rootOptionsStates.loadingError = getErrorMessage(err)\n },\n end: () => {\n this.rootOptionsStates.isLoading = false\n },\n })\n },\n\n loadChildrenOptions(parentNode) {\n // The options may be re-initialized anytime during the loading process.\n // So `parentNode` can be stale and we use `getNode()` to avoid that.\n\n const { id, raw } = parentNode\n\n this.callLoadOptionsProp({\n action: LOAD_CHILDREN_OPTIONS,\n args: {\n // We always pass the raw node instead of the normalized node to any\n // callback provided by the user of this component.\n // Because the shape of the raw node is more likely to be closing to\n // what the back-end API service of the application needs.\n parentNode: raw,\n },\n isPending: () => {\n return this.getNode(id).childrenStates.isLoading\n },\n start: () => {\n this.getNode(id).childrenStates.isLoading = true\n this.getNode(id).childrenStates.loadingError = ''\n },\n succeed: () => {\n this.getNode(id).childrenStates.isLoaded = true\n },\n fail: err => {\n this.getNode(id).childrenStates.loadingError = getErrorMessage(err)\n },\n end: () => {\n this.getNode(id).childrenStates.isLoading = false\n },\n })\n },\n\n callLoadOptionsProp({ action, args, isPending, start, succeed, fail, end }) {\n if (!this.loadOptions || isPending()) {\n return\n }\n\n start()\n\n const callback = once((err, result) => {\n if (err) {\n fail(err)\n } else {\n succeed(result)\n }\n\n end()\n })\n const result = this.loadOptions({\n id: this.getInstanceId(),\n instanceId: this.getInstanceId(),\n action,\n ...args,\n callback,\n })\n\n if (isPromise(result)) {\n result.then(() => {\n callback()\n }, err => {\n callback(err)\n }).catch(err => {\n // istanbul ignore next\n console.error(err)\n })\n }\n },\n\n checkDuplication(node) {\n warning(\n () => !((node.id in this.forest.nodeMap) && !this.forest.nodeMap[node.id].isFallbackNode),\n () => `Detected duplicate presence of node id ${JSON.stringify(node.id)}. ` +\n `Their labels are \"${this.forest.nodeMap[node.id].label}\" and \"${node.label}\" respectively.`,\n )\n },\n\n verifyNodeShape(node) {\n warning(\n () => !(node.children === undefined && node.isBranch === true),\n () => 'Are you meant to declare an unloaded branch node? ' +\n '`isBranch: true` is no longer supported, please use `children: null` instead.',\n )\n },\n\n select(node) {\n if (this.disabled || node.isDisabled) {\n return\n }\n\n if (this.single) {\n this.clear()\n }\n\n const nextState = this.multiple && !this.flat\n ? this.forest.checkedStateMap[node.id] === UNCHECKED\n : !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 // istanbul ignore else\n if (this.searchable) {\n this._blurOnSelect = true\n }\n }\n },\n\n clear() {\n if (this.hasValue) {\n if (this.single || this.allowClearingDisabled) {\n this.forest.selectedNodeIds = []\n } else /* if (this.multiple && !this.allowClearingDisabled) */ {\n this.forest.selectedNodeIds = this.forest.selectedNodeIds.filter(nodeId =>\n this.getNode(nodeId).isDisabled,\n )\n }\n\n this.buildForestState()\n }\n },\n\n // This is meant to be called only by `select()`.\n _selectNode(node) {\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(ancestor => {\n if (!this.isSelected(ancestor) && !ancestor.isDisabled) this.addValue(ancestor)\n })\n } else if (this.autoSelectDescendants) {\n this.traverseDescendantsBFS(node, descendant => {\n if (!this.isSelected(descendant) && !descendant.isDisabled) this.addValue(descendant)\n })\n }\n\n return\n }\n\n const isFullyChecked = (\n node.isLeaf ||\n (/* node.isBranch && */!node.hasDisabledDescendants) ||\n (/* node.isBranch && */this.allowSelectingDisabledDescendants)\n )\n if (isFullyChecked) {\n this.addValue(node)\n }\n\n if (node.isBranch) {\n this.traverseDescendantsBFS(node, descendant => {\n if (!descendant.isDisabled || this.allowSelectingDisabledDescendants) {\n this.addValue(descendant)\n }\n })\n }\n\n if (isFullyChecked) {\n let curr = node\n while ((curr = curr.parentNode) !== NO_PARENT_NODE) {\n if (curr.children.every(this.isSelected)) this.addValue(curr)\n else break\n }\n }\n },\n\n // This is meant to be called only by `select()`.\n _deselectNode(node) {\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(ancestor => {\n if (this.isSelected(ancestor) && !ancestor.isDisabled) this.removeValue(ancestor)\n })\n } else if (this.autoDeselectDescendants) {\n this.traverseDescendantsBFS(node, descendant => {\n if (this.isSelected(descendant) && !descendant.isDisabled) this.removeValue(descendant)\n })\n }\n\n return\n }\n\n let hasUncheckedSomeDescendants = false\n if (node.isBranch) {\n this.traverseDescendantsDFS(node, descendant => {\n if (!descendant.isDisabled || this.allowSelectingDisabledDescendants) {\n this.removeValue(descendant)\n hasUncheckedSomeDescendants = true\n }\n })\n }\n\n if (\n node.isLeaf ||\n /* node.isBranch && */hasUncheckedSomeDescendants ||\n /* node.isBranch && */node.children.length === 0\n ) {\n this.removeValue(node)\n\n let curr = node\n while ((curr = curr.parentNode) !== NO_PARENT_NODE) {\n if (this.isSelected(curr)) this.removeValue(curr)\n else break\n }\n }\n },\n\n addValue(node) {\n this.forest.selectedNodeIds.push(node.id)\n this.forest.selectedNodeMap[node.id] = true\n },\n\n removeValue(node) {\n removeFromArray(this.forest.selectedNodeIds, node.id)\n delete this.forest.selectedNodeMap[node.id]\n },\n\n removeLastValue() {\n if (!this.hasValue) return\n if (this.single) return this.clear()\n const lastValue = getLast(this.internalValue)\n const lastSelectedNode = this.getNode(lastValue)\n this.select(lastSelectedNode) // deselect\n },\n\n saveMenuScrollPosition() {\n const $menu = this.getMenu()\n // istanbul ignore else\n if ($menu) this.menu.lastScrollPosition = $menu.scrollTop\n },\n\n restoreMenuScrollPosition() {\n const $menu = this.getMenu()\n // istanbul ignore else\n if ($menu) $menu.scrollTop = this.menu.lastScrollPosition\n },\n },\n\n created() {\n this.verifyProps()\n this.resetFlags()\n },\n\n 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\n destroyed() {\n // istanbul ignore next\n this.toggleClickOutsideEvent(false)\n },\n}\n","<script>\n import { isNaN } from '../utils'\n\n function stringifyValue(value) {\n if (typeof value === 'string') return value\n // istanbul ignore else\n if (value != null && !isNaN(value)) return JSON.stringify(value)\n // istanbul ignore next\n return ''\n }\n\n export default {\n name: 'rp-treeselect--hidden-fields',\n inject: [ 'instance' ],\n functional: true,\n\n render(_, context) {\n const { instance } = context.injections\n\n if (!instance.name || instance.disabled || !instance.hasValue) return null\n\n let stringifiedValues = instance.internalValue.map(stringifyValue)\n\n if (instance.multiple && instance.joinValues) stringifiedValues = [\n stringifiedValues.join(instance.delimiter),\n ]\n\n return stringifiedValues.map((stringifiedValue, i) => (\n <input type=\"hidden\"\n name={instance.name}\n value={stringifiedValue}\n key={'hidden-field-' + i}\n />\n ))\n },\n }\n</script>\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 =\n typeof scriptExports === 'function' ? scriptExports.options : 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) {\n // 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 () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\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 functional 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 ? [].concat(existing, hook) : [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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import { debounce, deepExtend, includes } from '../utils'\n import { MIN_INPUT_WIDTH, KEY_CODES, INPUT_DEBOUNCE_DELAY } from '../constants'\n\n const keysThatRequireMenuBeingOpen = [\n KEY_CODES.ENTER,\n KEY_CODES.END,\n KEY_CODES.HOME,\n KEY_CODES.ARROW_LEFT,\n KEY_CODES.ARROW_UP,\n KEY_CODES.ARROW_RIGHT,\n KEY_CODES.ARROW_DOWN,\n ]\n\n export default {\n name: 'rp-treeselect--input',\n inject: [ 'instance' ],\n\n data: () => ({\n inputWidth: MIN_INPUT_WIDTH,\n value: '',\n }),\n\n computed: {\n needAutoSize() {\n const { instance } = this\n\n return (\n instance.searchable &&\n !instance.disabled &&\n instance.multiple\n )\n },\n\n inputStyle() {\n return {\n width: this.needAutoSize ? `${this.inputWidth}px` : null,\n }\n },\n },\n\n watch: {\n 'instance.trigger.searchQuery'(newValue) {\n this.value = newValue\n },\n\n value() {\n // istanbul ignore else\n if (this.needAutoSize) this.$nextTick(this.updateInputWidth)\n },\n },\n\n created() {\n this.debouncedCallback = debounce(\n this.updateSearchQuery,\n INPUT_DEBOUNCE_DELAY,\n { leading: true, trailing: true },\n )\n },\n\n methods: {\n clear() {\n this.onInput({\n target: { value: '' },\n })\n },\n\n focus() {\n const { instance } = this\n\n if (!instance.disabled) {\n this.$refs.input && this.$refs.input.focus()\n }\n },\n\n blur() {\n this.$refs.input && this.$refs.input.blur()\n },\n\n onFocus() {\n const { instance } = this\n\n instance.trigger.isFocused = true\n // istanbul ignore else\n if (instance.openOnFocus) instance.openMenu()\n },\n\n onBlur() {\n const { instance } = this\n const menu = instance.getMenu()\n\n // #15\n // istanbul ignore next\n if (menu && document.activeElement === menu) {\n return this.focus()\n }\n\n instance.trigger.isFocused = false\n instance.closeMenu()\n },\n\n onInput(evt) {\n const { value } = evt.target\n\n this.value = value\n\n if (value) {\n this.debouncedCallback()\n } else {\n this.debouncedCallback.cancel()\n this.updateSearchQuery()\n }\n },\n\n // 用 keyUp 事件存在一个问题,删除输入框最后一个字符也会导致取消选中最后一项\n onKeyDown(evt) {\n const { instance } = this\n // https://css-tricks.com/snippets/javascript/javascript-keycodes/\n // https://stackoverflow.com/questions/4471582/javascript-keycode-vs-which\n const key = 'which' in evt ? evt.which : /* istanbul ignore next */ evt.keyCode\n\n if (evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey)\n 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 if (instance.backspaceRemoves && !this.value.length) {\n instance.removeLastValue()\n }\n break\n }\n case KEY_CODES.ENTER: {\n evt.preventDefault()\n if (instance.menu.current === null) return\n const current = instance.getNode(instance.menu.current)\n if (current.isBranch && instance.disableBranchNodes) return\n instance.select(current)\n break\n }\n case KEY_CODES.ESCAPE: {\n if (this.value.length) {\n this.clear()\n } else if (instance.menu.isOpen) {\n instance.closeMenu()\n }\n break\n }\n case KEY_CODES.END: {\n evt.preventDefault()\n instance.highlightLastOption()\n break\n }\n case KEY_CODES.HOME: {\n evt.preventDefault()\n instance.highlightFirstOption()\n break\n }\n case KEY_CODES.ARROW_LEFT: {\n const current = instance.getNode(instance.menu.current)\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 break\n }\n case KEY_CODES.ARROW_UP: {\n evt.preventDefault()\n instance.highlightPrevOption()\n break\n }\n case KEY_CODES.ARROW_RIGHT: {\n const current = instance.getNode(instance.menu.current)\n if (current.isBranch && !instance.shouldExpand(current)) {\n evt.preventDefault()\n instance.toggleExpanded(current)\n }\n break\n }\n case KEY_CODES.ARROW_DOWN: {\n evt.preventDefault()\n instance.highlightNextOption()\n break\n }\n case KEY_CODES.DELETE: {\n if (instance.deleteRemoves && !this.value.length) {\n instance.removeLastValue()\n }\n break\n }\n default: {\n // istanbul ignore else\n instance.openMenu()\n }\n }\n },\n\n onMouseDown(evt) {\n // istanbul ignore next\n if (this.value.length) {\n // Prevent it from bubbling to the top level and triggering `preventDefault()`\n // to make the textbox unselectable\n evt.stopPropagation()\n }\n },\n\n renderInputContainer() {\n const { instance } = this\n const props = {}\n const 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 (\n <div class=\"rp-treeselect__input-container\" {...props}>\n {children}\n </div>\n )\n },\n\n renderInput() {\n const { instance } = this\n\n return (\n <input ref=\"input\"\n class=\"rp-treeselect__input\"\n type=\"text\"\n autocomplete=\"off\"\n tabIndex={instance.tabIndex}\n required={instance.required && !instance.hasValue}\n value={this.value}\n style={this.inputStyle}\n onFocus={this.onFocus}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onKeydown={this.onKeyDown}\n onMousedown={this.onMouseDown}\n />\n )\n },\n\n renderSizer() {\n return (\n <div ref=\"sizer\" class=\"rp-treeselect__sizer\">{this.value}</div>\n )\n },\n\n updateInputWidth() {\n this.inputWidth = Math.max(\n MIN_INPUT_WIDTH,\n this.$refs.sizer.scrollWidth + 15,\n )\n },\n\n updateSearchQuery() {\n const { instance } = this\n\n instance.trigger.searchQuery = this.value\n },\n },\n\n render() {\n return this.renderInputContainer()\n },\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n export default {\n name: 'rp-treeselect--placeholder',\n inject: [ 'instance' ],\n\n render() {\n const { instance } = this\n const placeholderClass = {\n 'rp-treeselect__placeholder': true,\n 'rp-treeselect-helper-zoom-effect-off': true,\n 'rp-treeselect-helper-hide': instance.hasValue || instance.trigger.searchQuery,\n }\n\n return (\n <div class={placeholderClass}>\n { instance.placeholder }\n </div>\n )\n },\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import Input from './Input'\n import Placeholder from './Placeholder'\n\n export default {\n name: 'rp-treeselect--single-value',\n inject: [ 'instance' ],\n methods: {\n renderSingleValueLabel() {\n const { instance } = this\n const node = instance.selectedNodes[0]\n\n const customValueLabelRenderer = instance.$scopedSlots['value-label']\n return customValueLabelRenderer\n ? customValueLabelRenderer({ node })\n : node.label\n },\n },\n render() {\n const { instance, $parent: { renderValueContainer } } = this\n const shouldShowValue = instance.hasValue && !instance.trigger.searchQuery\n\n return renderValueContainer([\n shouldShowValue && (\n <div class=\"rp-treeselect__single-value\">\n { this.renderSingleValueLabel() }\n </div>\n ),\n <Placeholder />,\n <Input ref=\"input\" />,\n ])\n },\n }\n</script>\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\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: \"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 }","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 348.333 348.333\">\n <path d=\"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 </svg>\n</template>\n\n<script>\n export default {\n name: 'rp-treeselect--x',\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import { onLeftClick } from '../utils'\n import DeleteIcon from './icons/Delete'\n\n export default {\n name: 'rp-treeselect--multi-value-item',\n inject: [ 'instance' ],\n\n props: {\n node: {\n type: Object,\n required: true,\n },\n },\n\n methods: {\n handleMouseDown: onLeftClick(function handleMouseDown() {\n const { instance, node } = this\n\n // Deselect this node.\n instance.select(node)\n }),\n },\n\n render() {\n const { instance, node } = this\n const itemClass = {\n 'rp-treeselect__multi-value-item': true,\n 'rp-treeselect__multi-value-item-disabled': node.isDisabled,\n 'rp-treeselect__multi-value-item-new': node.isNew,\n }\n const customValueLabelRenderer = instance.$scopedSlots['value-label']\n const labelRenderer = customValueLabelRenderer ? customValueLabelRenderer({ node }) : node.label\n\n return (\n <div class=\"rp-treeselect__multi-value-item-container\">\n <div class={itemClass} onMousedown={this.handleMouseDown}>\n <span class=\"rp-treeselect__multi-value-label\">{ labelRenderer }</span>\n <span class=\"rp-treeselect__icon rp-treeselect__value-remove\"><DeleteIcon /></span>\n </div>\n </div>\n )\n },\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import MultiValueItem from './MultiValueItem'\n import Input from './Input'\n import Placeholder from './Placeholder'\n\n export default {\n name: 'rp-treeselect--multi-value',\n inject: [ 'instance' ],\n\n methods: {\n renderMultiValueItems() {\n const { instance } = this\n\n return instance.internalValue\n .slice(0, instance.limit)\n .map(instance.getNode)\n .map(node => (\n <MultiValueItem key={`multi-value-item-${node.id}`} node={node} />\n ))\n },\n\n renderExceedLimitTip() {\n const { instance } = this\n const count = instance.internalValue.length - instance.limit\n\n if (count <= 0) return null\n\n return (\n <div class=\"rp-treeselect__limit-tip rp-treeselect-helper-zoom-effect-off\" key=\"exceed-limit-tip\">\n <span class=\"rp-treeselect__limit-tip-text\">{ instance.limitText(count) }</span>\n </div>\n )\n },\n },\n\n render() {\n const { renderValueContainer } = this.$parent\n const transitionGroupProps = {\n props: {\n tag: 'div',\n name: 'rp-treeselect__multi-value-item--transition',\n appear: true,\n },\n }\n\n return renderValueContainer(\n <transition-group class=\"rp-treeselect__multi-value\" {...transitionGroupProps}>\n {this.renderMultiValueItems()}\n {this.renderExceedLimitTip()}\n <Placeholder key=\"placeholder\" />\n <Input ref=\"input\" key=\"input\" />\n </transition-group>,\n )\n },\n }\n</script>\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\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: \"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 }","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 292.362 292.362\">\n <path d=\"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 </svg>\n</template>\n\n<script>\n export default {\n name: 'rp-treeselect--arrow',\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import { onLeftClick, isPromise } from '../utils'\n import SingleValue from './SingleValue'\n import MultiValue from './MultiValue'\n import DeleteIcon from './icons/Delete'\n import ArrowIcon from './icons/Arrow'\n\n export default {\n name: 'rp-treeselect--control',\n inject: [ 'instance' ],\n\n computed: {\n /* eslint-disable valid-jsdoc */\n /**\n * Should show the \"×\" button that resets value?\n * @return {boolean}\n */\n shouldShowX() {\n const { instance } = this\n\n return (\n instance.clearable &&\n !instance.disabled &&\n instance.hasValue &&\n (this.hasUndisabledValue || instance.allowClearingDisabled)\n )\n },\n\n /**\n * Should show the arrow button that toggles menu?\n * @return {boolean}\n */\n shouldShowArrow() {\n const { instance } = this\n\n if (!instance.alwaysOpen) return true\n // Even with `alwaysOpen: true`, sometimes the menu is still closed,\n // e.g. when the control is disabled.\n return !instance.menu.isOpen\n },\n\n /**\n * Has any undisabled option been selected?\n * @type {boolean}\n */\n hasUndisabledValue() {\n const { instance } = this\n\n return (\n instance.hasValue &&\n instance.internalValue.some(id => !instance.getNode(id).isDisabled)\n )\n },\n /* eslint-enable valid-jsdoc */\n },\n\n methods: {\n renderX() {\n const { instance } = this\n const title = instance.multiple ? instance.clearAllText : instance.clearValueText\n\n if (!this.shouldShowX) return null\n\n return (\n <div class=\"rp-treeselect__x-container\" title={title} onMousedown={this.handleMouseDownOnX}>\n <DeleteIcon class=\"rp-treeselect__x\" />\n </div>\n )\n },\n\n renderArrow() {\n const { instance } = this\n const arrowClass = {\n 'rp-treeselect__control-arrow': true,\n 'rp-treeselect__control-arrow--rotated': instance.menu.isOpen,\n }\n\n if (!this.shouldShowArrow) return null\n\n return (\n <div class=\"rp-treeselect__control-arrow-container\" onMousedown={this.handleMouseDownOnArrow}>\n <ArrowIcon class={arrowClass} />\n </div>\n )\n },\n\n handleMouseDownOnX: onLeftClick(function handleMouseDownOnX(evt) {\n /**\n * We don't use async/await here because we don't want\n * to rely on Babel polyfill or regenerator runtime.\n * See: https://babeljs.io/docs/plugins/transform-regenerator/\n * We also don't want to assume there is a global `Promise`\n * class, since we are targeting to support IE9 without the\n * need of any polyfill.\n */\n\n evt.stopPropagation()\n evt.preventDefault()\n\n const { instance } = this\n const result = instance.beforeClearAll()\n const handler = shouldClear => {\n if (shouldClear) instance.clear()\n }\n\n if (isPromise(result)) {\n // The handler will be called async.\n result.then(handler)\n } else {\n // Keep the same behavior here.\n setTimeout(() => handler(result), 0)\n // Also, note that IE9 requires:\n // setTimeout(() => fn(...args), delay)\n // Instead of:\n // setTimeout(fn, delay, ...args)\n }\n }),\n\n handleMouseDownOnArrow: onLeftClick(function handleMouseDownOnArrow(evt) {\n evt.preventDefault()\n evt.stopPropagation()\n\n const { instance } = this\n\n // Focus the input or prevent blurring.\n instance.focusInput()\n instance.toggleMenu()\n }),\n\n // This is meant to be called by child `<Value />` component.\n renderValueContainer(children) {\n return (\n <div class=\"rp-treeselect__value-container\">\n {children}\n </div>\n )\n },\n },\n\n render() {\n const { instance } = this\n const ValueContainer = instance.single ? SingleValue : MultiValue\n\n return (\n <div class=\"rp-treeselect__control\" onMousedown={instance.handleMouseDown}>\n <ValueContainer ref=\"value-container\" />\n {this.renderX()}\n {this.renderArrow()}\n </div>\n )\n },\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n export default {\n name: 'rp-treeselect--tip',\n functional: true,\n\n props: {\n type: {\n type: String,\n required: true,\n },\n icon: {\n type: String,\n required: true,\n },\n },\n\n render(_, context) {\n const { props, children } = context\n\n return (\n <div class={`rp-treeselect__tip rp-treeselect__${props.type}-tip`}>\n <div class=\"rp-treeselect__icon-container\">\n <span class={`rp-treeselect__icon-${props.icon}`} />\n </div>\n <span class={`rp-treeselect__tip-text rp-treeselect__${props.type}-tip-text`}>\n {children}\n </span>\n </div>\n )\n },\n }\n</script>\n","<script>\n import { UNCHECKED, INDETERMINATE, CHECKED } from '../constants'\n import { onLeftClick } from '../utils'\n import Tip from './Tip'\n import ArrowIcon from './icons/Arrow'\n\n let arrowPlaceholder, checkMark, minusMark\n\n const Option = {\n name: 'rp-treeselect--option',\n inject: [ 'instance' ],\n\n props: {\n node: {\n type: Object,\n required: true,\n },\n },\n\n computed: {\n shouldExpand() {\n const { instance, node } = this\n\n return node.isBranch && instance.shouldExpand(node)\n },\n\n shouldShow() {\n const { instance, node } = this\n\n return instance.shouldShowOptionInMenu(node)\n },\n },\n\n methods: {\n renderOption() {\n const { instance, node } = this\n const optionClass = {\n 'rp-treeselect__option': true,\n 'rp-treeselect__option--disabled': node.isDisabled,\n 'rp-treeselect__option--selected': instance.isSelected(node),\n 'rp-treeselect__option--highlight': node.isHighlighted,\n 'rp-treeselect__option--matched': instance.localSearch.active && node.isMatched,\n 'rp-treeselect__option--hide': !this.shouldShow,\n }\n\n return (\n <div class={optionClass} onMouseenter={this.handleMouseEnterOption} data-id={node.id}>\n {this.renderArrow()}\n {this.renderLabelContainer([\n this.renderCheckboxContainer([\n this.renderCheckbox(),\n ]),\n this.renderLabel(),\n ])}\n </div>\n )\n },\n\n renderSubOptionsList() {\n if (!this.shouldExpand) return null\n\n return (\n <div class=\"rp-treeselect__list\">\n {this.renderSubOptions()}\n {this.renderNoChildrenTip()}\n {this.renderLoadingChildrenTip()}\n {this.renderLoadingChildrenErrorTip()}\n </div>\n )\n },\n\n renderArrow() {\n const { instance, node } = this\n\n if (instance.shouldFlattenOptions && this.shouldShow) return null\n\n if (node.isBranch) {\n const transitionProps = {\n props: {\n name: 'rp-treeselect__option-arrow--prepare',\n appear: true,\n },\n }\n const arrowClass = {\n 'rp-treeselect__option-arrow': true,\n 'rp-treeselect__option-arrow--rotated': this.shouldExpand,\n }\n\n return (\n <div class=\"rp-treeselect__option-arrow-container\" onMousedown={this.handleMouseDownOnArrow}>\n <transition {...transitionProps}>\n <ArrowIcon class={arrowClass} />\n </transition>\n </div>\n )\n }\n\n // For leaf nodes, we render a placeholder to keep its label aligned to\n // branch nodes. Unless there is no branch nodes at all (a normal\n // non-tree select).\n if (/*node.isLeaf && */instance.hasBranchNodes) {\n if (!arrowPlaceholder) arrowPlaceholder = (\n <div class=\"rp-treeselect__option-arrow-placeholder\">&nbsp;</div>\n )\n\n return arrowPlaceholder\n }\n\n return null\n },\n\n renderLabelContainer(children) {\n return (\n <div class=\"rp-treeselect__label-container\" onMousedown={this.handleMouseDownOnLabelContainer}>\n {children}\n </div>\n )\n },\n\n renderCheckboxContainer(children) {\n const { instance, node } = this\n\n if (instance.single) return null\n if (instance.disableBranchNodes && node.isBranch) return null\n\n return (\n <div class=\"rp-treeselect__checkbox-container\">\n {children}\n </div>\n )\n },\n\n renderCheckbox() {\n const { instance, node } = this\n const checkedState = instance.forest.checkedStateMap[node.id]\n const checkboxClass = {\n 'rp-treeselect__checkbox': true,\n 'rp-treeselect__checkbox--checked': checkedState === CHECKED,\n 'rp-treeselect__checkbox--indeterminate': checkedState === INDETERMINATE,\n 'rp-treeselect__checkbox--unchecked': checkedState === UNCHECKED,\n 'rp-treeselect__checkbox--disabled': node.isDisabled,\n }\n\n if (!checkMark) checkMark = (\n <span class=\"rp-treeselect__check-mark\" />\n )\n if (!minusMark) minusMark = (\n <span class=\"rp-treeselect__minus-mark\" />\n )\n\n return (\n <span class={checkboxClass}>\n {checkMark}\n {minusMark}\n </span>\n )\n },\n\n renderLabel() {\n const { instance, node } = this\n const shouldShowCount = (\n node.isBranch && (instance.localSearch.active\n ? instance.showCountOnSearchComputed\n : instance.showCount\n )\n )\n const count = shouldShowCount\n ? instance.localSearch.active\n ? instance.localSearch.countMap[node.id][instance.showCountOf]\n : node.count[instance.showCountOf]\n : NaN\n const labelClassName = 'rp-treeselect__label'\n const countClassName = 'rp-treeselect__count'\n const customLabelRenderer = instance.$scopedSlots['option-label']\n\n if (customLabelRenderer) return customLabelRenderer({\n node,\n shouldShowCount,\n count,\n labelClassName,\n countClassName,\n })\n\n return (\n <label class={labelClassName}>\n {node.label}\n {shouldShowCount && (\n <span class={countClassName}>({count})</span>\n )}\n </label>\n )\n },\n\n renderSubOptions() {\n const { node } = this\n\n if (!node.childrenStates.isLoaded) return null\n\n return node.children.map(childNode => (\n <Option node={childNode} key={childNode.id} />\n ))\n },\n\n renderNoChildrenTip() {\n const { instance, node } = this\n\n if (!node.childrenStates.isLoaded || node.children.length) return null\n\n return (\n <Tip type=\"no-children\" icon=\"warning\">{ instance.noChildrenText }</Tip>\n )\n },\n\n renderLoadingChildrenTip() {\n const { instance, node } = this\n\n if (!node.childrenStates.isLoading) return null\n\n return (\n <Tip type=\"loading\" icon=\"loader\">{ instance.loadingText }</Tip>\n )\n },\n\n renderLoadingChildrenErrorTip() {\n const { instance, node } = this\n\n if (!node.childrenStates.loadingError) return null\n\n return (\n <Tip type=\"error\" icon=\"error\">\n { node.childrenStates.loadingError }\n <a class=\"rp-treeselect__retry\" title={instance.retryTitle} onMousedown={this.handleMouseDownOnRetry}>\n { instance.retryText }\n </a>\n </Tip>\n )\n },\n\n handleMouseEnterOption(evt) {\n const { instance, node } = this\n\n // Equivalent to `self` modifier.\n // istanbul ignore next\n if (evt.target !== evt.currentTarget) return\n\n instance.setCurrentHighlightedOption(node, false)\n },\n\n handleMouseDownOnArrow: onLeftClick(function handleMouseDownOnOptionArrow() {\n const { instance, node } = this\n\n instance.toggleExpanded(node)\n }),\n\n handleMouseDownOnLabelContainer: onLeftClick(function handleMouseDownOnLabelContainer() {\n const { instance, node } = this\n\n if (node.isBranch && instance.disableBranchNodes) {\n instance.toggleExpanded(node)\n } else {\n instance.select(node)\n }\n }),\n\n handleMouseDownOnRetry: onLeftClick(function handleMouseDownOnRetry() {\n const { instance, node } = this\n\n instance.loadChildrenOptions(node)\n }),\n },\n\n render() {\n const { node } = this\n const indentLevel = this.instance.shouldFlattenOptions ? 0 : node.level\n const listItemClass = {\n 'rp-treeselect__list-item': true,\n [`rp-treeselect__indent-level-${indentLevel}`]: true,\n }\n const transitionProps = {\n props: {\n name: 'rp-treeselect__list--transition',\n },\n }\n\n return (\n <div class={listItemClass}>\n {this.renderOption()}\n {node.isBranch && (\n <transition {...transitionProps}>\n {this.renderSubOptionsList()}\n </transition>\n )}\n </div>\n )\n },\n }\n\n // eslint-disable-next-line vue/require-direct-export\n export default Option\n</script>\n","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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import { MENU_BUFFER } from '../constants'\n import { watchSize, setupResizeAndScrollEventListeners } from '../utils'\n import Option from './Option'\n import Tip from './Tip'\n\n const directionMap = {\n top: 'top',\n bottom: 'bottom',\n above: 'top',\n below: 'bottom',\n }\n\n export default {\n name: 'rp-treeselect--menu',\n inject: [ 'instance' ],\n\n computed: {\n menuStyle() {\n const { instance } = this\n\n return {\n maxHeight: instance.maxHeight + 'px',\n }\n },\n\n menuContainerStyle() {\n const { instance } = this\n\n return {\n zIndex: instance.appendToBody ? null : instance.zIndex,\n }\n },\n },\n\n watch: {\n 'instance.menu.isOpen'(newValue) {\n if (newValue) {\n // In case `openMenu()` is just called and the menu is not rendered yet.\n this.$nextTick(this.onMenuOpen)\n } else {\n this.onMenuClose()\n }\n },\n },\n\n created() {\n this.menuSizeWatcher = null\n this.menuResizeAndScrollEventListeners = null\n },\n\n mounted() {\n const { instance } = this\n\n if (instance.menu.isOpen) this.$nextTick(this.onMenuOpen)\n },\n\n destroyed() {\n this.onMenuClose()\n },\n\n methods: {\n renderMenu() {\n const { instance } = this\n\n if (!instance.menu.isOpen) return null\n\n return (\n <div ref=\"menu\" class=\"rp-treeselect__menu\" onMousedown={instance.handleMouseDown} style={this.menuStyle}>\n {this.renderBeforeList()}\n {instance.async\n ? this.renderAsyncSearchMenuInner()\n : instance.localSearch.active\n ? this.renderLocalSearchMenuInner()\n : this.renderNormalMenuInner()}\n {this.renderAfterList()}\n </div>\n )\n },\n\n renderBeforeList() {\n const { instance } = this\n const beforeListRenderer = instance.$scopedSlots['before-list']\n\n return beforeListRenderer\n ? beforeListRenderer()\n : null\n },\n\n renderAfterList() {\n const { instance } = this\n const afterListRenderer = instance.$scopedSlots['after-list']\n\n return afterListRenderer\n ? afterListRenderer()\n : null\n },\n\n renderNormalMenuInner() {\n const { instance } = this\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\n renderLocalSearchMenuInner() {\n const { instance } = this\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\n renderAsyncSearchMenuInner() {\n const { instance } = this\n const entry = instance.getRemoteSearchEntry()\n const shouldShowSearchPromptTip = instance.trigger.searchQuery === '' && !instance.defaultOptions\n const shouldShowNoResultsTip = shouldShowSearchPromptTip\n ? false\n : 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\n renderOptionList() {\n const { instance } = this\n\n return (\n <div class=\"rp-treeselect__list\">\n {instance.forest.normalizedOptions.map(rootNode => (\n <Option node={rootNode} key={rootNode.id} />\n ))}\n </div>\n )\n },\n\n renderSearchPromptTip() {\n const { instance } = this\n\n return (\n <Tip type=\"search-prompt\" icon=\"warning\">{ instance.searchPromptText }</Tip>\n )\n },\n\n renderLoadingOptionsTip() {\n const { instance } = this\n\n return (\n <Tip type=\"loading\" icon=\"loader\">{ instance.loadingText }</Tip>\n )\n },\n\n renderLoadingRootOptionsErrorTip() {\n const { instance } = this\n\n return (\n <Tip type=\"error\" icon=\"error\">\n { instance.rootOptionsStates.loadingError }\n <a class=\"rp-treeselect__retry\" onClick={instance.loadRootOptions} title={instance.retryTitle}>\n { instance.retryText }\n </a>\n </Tip>\n )\n },\n\n renderAsyncSearchLoadingErrorTip() {\n const { instance } = this\n const entry = instance.getRemoteSearchEntry()\n\n // TODO: retryTitle?\n\n return (\n <Tip type=\"error\" icon=\"error\">\n { entry.loadingError }\n <a class=\"rp-treeselect__retry\" onClick={instance.handleRemoteSearch} title={instance.retryTitle}>\n { instance.retryText }\n </a>\n </Tip>\n )\n },\n\n renderNoAvailableOptionsTip() {\n const { instance } = this\n\n return (\n <Tip type=\"no-options\" icon=\"warning\">{ instance.noOptionsText }</Tip>\n )\n },\n\n renderNoResultsTip() {\n const { instance } = this\n\n return (\n <Tip type=\"no-results\" icon=\"warning\">{ instance.noResultsText }</Tip>\n )\n },\n\n onMenuOpen() {\n this.adjustMenuOpenDirection()\n this.setupMenuSizeWatcher()\n this.setupMenuResizeAndScrollEventListeners()\n },\n\n onMenuClose() {\n this.removeMenuSizeWatcher()\n this.removeMenuResizeAndScrollEventListeners()\n },\n\n adjustMenuOpenDirection() {\n const { instance } = this\n if (!instance.menu.isOpen) return\n\n const $menu = instance.getMenu()\n const $control = instance.getControl()\n const menuRect = $menu.getBoundingClientRect()\n const controlRect = $control.getBoundingClientRect()\n const menuHeight = menuRect.height\n const viewportHeight = window.innerHeight\n const spaceAbove = controlRect.top\n const spaceBelow = window.innerHeight - controlRect.bottom\n const isControlInViewport = (\n (controlRect.top >= 0 && controlRect.top <= viewportHeight) ||\n (controlRect.top < 0 && controlRect.bottom > 0)\n )\n const hasEnoughSpaceBelow = spaceBelow > menuHeight + MENU_BUFFER\n const 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\n setupMenuSizeWatcher() {\n const { instance } = this\n const $menu = instance.getMenu()\n\n // istanbul ignore next\n if (this.menuSizeWatcher) return\n\n this.menuSizeWatcher = {\n remove: watchSize($menu, this.adjustMenuOpenDirection),\n }\n },\n\n setupMenuResizeAndScrollEventListeners() {\n const { instance } = this\n const $control = instance.getControl()\n\n // istanbul ignore next\n if (this.menuResizeAndScrollEventListeners) return\n\n this.menuResizeAndScrollEventListeners = {\n remove: setupResizeAndScrollEventListeners($control, this.adjustMenuOpenDirection),\n }\n },\n\n removeMenuSizeWatcher() {\n if (!this.menuSizeWatcher) return\n\n this.menuSizeWatcher.remove()\n this.menuSizeWatcher = null\n },\n\n removeMenuResizeAndScrollEventListeners() {\n if (!this.menuResizeAndScrollEventListeners) return\n\n this.menuResizeAndScrollEventListeners.remove()\n this.menuResizeAndScrollEventListeners = null\n },\n },\n\n render() {\n return (\n <div ref=\"menu-container\" class=\"rp-treeselect__menu-container\" style={this.menuContainerStyle}>\n <transition name=\"rp-treeselect__menu--transition\">\n {this.renderMenu()}\n </transition>\n </div>\n )\n },\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import Vue from 'vue'\n import { watchSize, setupResizeAndScrollEventListeners, find } from '../utils'\n import Menu from './Menu'\n\n const PortalTarget = {\n name: 'rp-treeselect--portal-target',\n inject: [ 'instance' ],\n\n watch: {\n 'instance.menu.isOpen'(newValue) {\n if (newValue) {\n this.setupHandlers()\n } else {\n this.removeHandlers()\n }\n },\n\n 'instance.menu.placement'() {\n this.updateMenuContainerOffset()\n },\n },\n\n created() {\n this.controlResizeAndScrollEventListeners = null\n this.controlSizeWatcher = null\n },\n\n mounted() {\n const { instance } = this\n\n if (instance.menu.isOpen) this.setupHandlers()\n },\n\n methods: {\n setupHandlers() {\n this.updateWidth()\n this.updateMenuContainerOffset()\n this.setupControlResizeAndScrollEventListeners()\n this.setupControlSizeWatcher()\n },\n\n removeHandlers() {\n this.removeControlResizeAndScrollEventListeners()\n this.removeControlSizeWatcher()\n },\n\n setupControlResizeAndScrollEventListeners() {\n const { instance } = this\n const $control = instance.getControl()\n\n // istanbul ignore next\n if (this.controlResizeAndScrollEventListeners) return\n\n this.controlResizeAndScrollEventListeners = {\n remove: setupResizeAndScrollEventListeners($control, this.updateMenuContainerOffset),\n }\n },\n\n setupControlSizeWatcher() {\n const { instance } = this\n const $control = instance.getControl()\n\n // istanbul ignore next\n if (this.controlSizeWatcher) return\n\n this.controlSizeWatcher = {\n remove: watchSize($control, () => {\n this.updateWidth()\n this.updateMenuContainerOffset()\n }),\n }\n },\n\n removeControlResizeAndScrollEventListeners() {\n if (!this.controlResizeAndScrollEventListeners) return\n\n this.controlResizeAndScrollEventListeners.remove()\n this.controlResizeAndScrollEventListeners = null\n },\n\n removeControlSizeWatcher() {\n if (!this.controlSizeWatcher) return\n\n this.controlSizeWatcher.remove()\n this.controlSizeWatcher = null\n },\n\n updateWidth() {\n const { instance } = this\n const $portalTarget = this.$el\n const $control = instance.getControl()\n const controlRect = $control.getBoundingClientRect()\n\n $portalTarget.style.width = controlRect.width + 'px'\n },\n\n updateMenuContainerOffset() {\n const { instance } = this\n const $control = instance.getControl()\n const $portalTarget = this.$el\n const controlRect = $control.getBoundingClientRect()\n const portalTargetRect = $portalTarget.getBoundingClientRect()\n const offsetY = instance.menu.placement === 'bottom' ? controlRect.height : 0\n const left = Math.round(controlRect.left - portalTargetRect.left) + 'px'\n const top = Math.round(controlRect.top - portalTargetRect.top + offsetY) + 'px'\n const menuContainerStyle = this.$refs.menu.$refs['menu-container'].style\n const transformVariations = [ 'transform', 'webkitTransform', 'MozTransform', 'msTransform' ]\n const transform = find(transformVariations, t => t in document.body.style)\n\n // IE9 doesn't support `translate3d()`.\n menuContainerStyle[transform] = `translate(${left}, ${top})`\n },\n },\n\n render() {\n const { instance } = this\n const portalTargetClass = [ 'rp-treeselect__portal-target', instance.wrapperClass ]\n const portalTargetStyle = { zIndex: instance.zIndex }\n\n return (\n <div class={portalTargetClass} style={portalTargetStyle} data-instance-id={instance.getInstanceId()}>\n <Menu ref=\"menu\" />\n </div>\n )\n },\n\n destroyed() {\n this.removeHandlers()\n },\n }\n\n let placeholder\n\n export default {\n name: 'rp-treeselect--menu-portal',\n\n created() {\n this.portalTarget = null\n },\n\n mounted() {\n this.setup()\n },\n\n destroyed() {\n this.teardown()\n },\n\n methods: {\n setup() {\n const el = document.createElement('div')\n document.body.appendChild(el)\n\n this.portalTarget = new Vue({\n el,\n parent: this,\n ...PortalTarget,\n })\n },\n\n teardown() {\n document.body.removeChild(this.portalTarget.$el)\n this.portalTarget.$el.innerHTML = ''\n\n this.portalTarget.$destroy()\n this.portalTarget = null\n },\n },\n\n render() {\n if (!placeholder) placeholder = (\n <div class=\"rp-treeselect__menu-placeholder\" />\n )\n\n return placeholder\n },\n }\n</script>\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(\"/home/getkan/Projects/reviewpush/rp-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(\"/home/getkan/Projects/reviewpush/rp-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","<script>\n import treeselectMixin from '../mixins/treeselectMixin'\n import HiddenFields from './HiddenFields'\n import Control from './Control'\n import Menu from './Menu'\n import MenuPortal from './MenuPortal'\n\n export default {\n name: 'rp-treeselect',\n mixins: [ treeselectMixin ],\n\n computed: {\n wrapperClass() {\n return {\n 'rp-treeselect': true,\n 'rp-treeselect--single': this.single,\n 'rp-treeselect--multi': this.multiple,\n 'rp-treeselect--searchable': this.searchable,\n 'rp-treeselect--disabled': this.disabled,\n 'rp-treeselect--focused': this.trigger.isFocused,\n 'rp-treeselect--has-value': this.hasValue,\n 'rp-treeselect--open': this.menu.isOpen,\n 'rp-treeselect--open-above': this.menu.placement === 'top',\n 'rp-treeselect--open-below': this.menu.placement === 'bottom',\n 'rp-treeselect--branch-nodes-disabled': this.disableBranchNodes,\n 'rp-treeselect--append-to-body': this.appendToBody,\n 'rp-treeselect--test': true,\n }\n },\n },\n\n render() {\n return (\n <div ref=\"wrapper\" class={this.wrapperClass}>\n <HiddenFields />\n <Control ref=\"control\" />\n {this.appendToBody ? <MenuPortal ref=\"portal\" /> : <Menu ref=\"menu\" />}\n </div>\n )\n },\n }\n</script>\n","import Treeselect from './components/Treeselect'\nimport treeselectMixin from './mixins/treeselectMixin'\nimport './style.less'\n\nexport default Treeselect\nexport { Treeselect, treeselectMixin }\nexport {\n // Delayed loading.\n LOAD_ROOT_OPTIONS,\n LOAD_CHILDREN_OPTIONS,\n ASYNC_SEARCH,\n} from './constants'\n\nexport const VERSION = PKG_VERSION\n"],"sourceRoot":""}