You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							2266 lines
						
					
					
						
							63 KiB
						
					
					
				
			
		
		
	
	
							2266 lines
						
					
					
						
							63 KiB
						
					
					
				module.exports = | 
						|
/******/ (function(modules) { // webpackBootstrap | 
						|
/******/ 	// The module cache | 
						|
/******/ 	var installedModules = {}; | 
						|
/******/ | 
						|
/******/ 	// The require function | 
						|
/******/ 	function __webpack_require__(moduleId) { | 
						|
/******/ | 
						|
/******/ 		// Check if module is in cache | 
						|
/******/ 		if(installedModules[moduleId]) { | 
						|
/******/ 			return installedModules[moduleId].exports; | 
						|
/******/ 		} | 
						|
/******/ 		// Create a new module (and put it into the cache) | 
						|
/******/ 		var module = installedModules[moduleId] = { | 
						|
/******/ 			i: moduleId, | 
						|
/******/ 			l: false, | 
						|
/******/ 			exports: {} | 
						|
/******/ 		}; | 
						|
/******/ | 
						|
/******/ 		// Execute the module function | 
						|
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | 
						|
/******/ | 
						|
/******/ 		// Flag the module as loaded | 
						|
/******/ 		module.l = true; | 
						|
/******/ | 
						|
/******/ 		// Return the exports of the module | 
						|
/******/ 		return module.exports; | 
						|
/******/ 	} | 
						|
/******/ | 
						|
/******/ | 
						|
/******/ 	// expose the modules object (__webpack_modules__) | 
						|
/******/ 	__webpack_require__.m = modules; | 
						|
/******/ | 
						|
/******/ 	// expose the module cache | 
						|
/******/ 	__webpack_require__.c = installedModules; | 
						|
/******/ | 
						|
/******/ 	// define getter function for harmony exports | 
						|
/******/ 	__webpack_require__.d = function(exports, name, getter) { | 
						|
/******/ 		if(!__webpack_require__.o(exports, name)) { | 
						|
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter }); | 
						|
/******/ 		} | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// define __esModule on exports | 
						|
/******/ 	__webpack_require__.r = function(exports) { | 
						|
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | 
						|
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | 
						|
/******/ 		} | 
						|
/******/ 		Object.defineProperty(exports, '__esModule', { value: true }); | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// create a fake namespace object | 
						|
/******/ 	// mode & 1: value is a module id, require it | 
						|
/******/ 	// mode & 2: merge all properties of value into the ns | 
						|
/******/ 	// mode & 4: return value when already ns object | 
						|
/******/ 	// mode & 8|1: behave like require | 
						|
/******/ 	__webpack_require__.t = function(value, mode) { | 
						|
/******/ 		if(mode & 1) value = __webpack_require__(value); | 
						|
/******/ 		if(mode & 8) return value; | 
						|
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | 
						|
/******/ 		var ns = Object.create(null); | 
						|
/******/ 		__webpack_require__.r(ns); | 
						|
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | 
						|
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | 
						|
/******/ 		return ns; | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// getDefaultExport function for compatibility with non-harmony modules | 
						|
/******/ 	__webpack_require__.n = function(module) { | 
						|
/******/ 		var getter = module && module.__esModule ? | 
						|
/******/ 			function getDefault() { return module['default']; } : | 
						|
/******/ 			function getModuleExports() { return module; }; | 
						|
/******/ 		__webpack_require__.d(getter, 'a', getter); | 
						|
/******/ 		return getter; | 
						|
/******/ 	}; | 
						|
/******/ | 
						|
/******/ 	// Object.prototype.hasOwnProperty.call | 
						|
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | 
						|
/******/ | 
						|
/******/ 	// __webpack_public_path__ | 
						|
/******/ 	__webpack_require__.p = "/dist/"; | 
						|
/******/ | 
						|
/******/ | 
						|
/******/ 	// Load entry module and return exports | 
						|
/******/ 	return __webpack_require__(__webpack_require__.s = 58); | 
						|
/******/ }) | 
						|
/************************************************************************/ | 
						|
/******/ ({ | 
						|
 | 
						|
/***/ 0: | 
						|
/***/ (function(module, __webpack_exports__, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); | 
						|
/* globals __VUE_SSR_CONTEXT__ */ | 
						|
 | 
						|
// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). | 
						|
// This module is a runtime utility for cleaner component module output and will | 
						|
// be included in the final webpack user bundle. | 
						|
 | 
						|
function normalizeComponent ( | 
						|
  scriptExports, | 
						|
  render, | 
						|
  staticRenderFns, | 
						|
  functionalTemplate, | 
						|
  injectStyles, | 
						|
  scopeId, | 
						|
  moduleIdentifier, /* server only */ | 
						|
  shadowMode /* vue-cli only */ | 
						|
) { | 
						|
  // Vue.extend constructor export interop | 
						|
  var options = typeof scriptExports === 'function' | 
						|
    ? scriptExports.options | 
						|
    : scriptExports | 
						|
 | 
						|
  // render functions | 
						|
  if (render) { | 
						|
    options.render = render | 
						|
    options.staticRenderFns = staticRenderFns | 
						|
    options._compiled = true | 
						|
  } | 
						|
 | 
						|
  // functional template | 
						|
  if (functionalTemplate) { | 
						|
    options.functional = true | 
						|
  } | 
						|
 | 
						|
  // scopedId | 
						|
  if (scopeId) { | 
						|
    options._scopeId = 'data-v-' + scopeId | 
						|
  } | 
						|
 | 
						|
  var hook | 
						|
  if (moduleIdentifier) { // server build | 
						|
    hook = function (context) { | 
						|
      // 2.3 injection | 
						|
      context = | 
						|
        context || // cached call | 
						|
        (this.$vnode && this.$vnode.ssrContext) || // stateful | 
						|
        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional | 
						|
      // 2.2 with runInNewContext: true | 
						|
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { | 
						|
        context = __VUE_SSR_CONTEXT__ | 
						|
      } | 
						|
      // inject component styles | 
						|
      if (injectStyles) { | 
						|
        injectStyles.call(this, context) | 
						|
      } | 
						|
      // register component module identifier for async chunk inferrence | 
						|
      if (context && context._registeredComponents) { | 
						|
        context._registeredComponents.add(moduleIdentifier) | 
						|
      } | 
						|
    } | 
						|
    // used by ssr in case component is cached and beforeCreate | 
						|
    // never gets called | 
						|
    options._ssrRegister = hook | 
						|
  } else if (injectStyles) { | 
						|
    hook = shadowMode | 
						|
      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } | 
						|
      : injectStyles | 
						|
  } | 
						|
 | 
						|
  if (hook) { | 
						|
    if (options.functional) { | 
						|
      // for template-only hot-reload because in that case the render fn doesn't | 
						|
      // go through the normalizer | 
						|
      options._injectStyles = hook | 
						|
      // register for functioal component in vue file | 
						|
      var originalRender = options.render | 
						|
      options.render = function renderWithStyleInjection (h, context) { | 
						|
        hook.call(context) | 
						|
        return originalRender(h, context) | 
						|
      } | 
						|
    } else { | 
						|
      // inject component registration as beforeCreate hook | 
						|
      var existing = options.beforeCreate | 
						|
      options.beforeCreate = existing | 
						|
        ? [].concat(existing, hook) | 
						|
        : [hook] | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  return { | 
						|
    exports: scriptExports, | 
						|
    options: options | 
						|
  } | 
						|
} | 
						|
 | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 18: | 
						|
/***/ (function(module, exports) { | 
						|
 | 
						|
module.exports = require("element-ui/lib/checkbox"); | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 19: | 
						|
/***/ (function(module, exports) { | 
						|
 | 
						|
module.exports = require("element-ui/lib/locale"); | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 2: | 
						|
/***/ (function(module, exports) { | 
						|
 | 
						|
module.exports = require("element-ui/lib/utils/dom"); | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 28: | 
						|
/***/ (function(module, exports) { | 
						|
 | 
						|
module.exports = require("element-ui/lib/transitions/collapse-transition"); | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 3: | 
						|
/***/ (function(module, exports) { | 
						|
 | 
						|
module.exports = require("element-ui/lib/utils/util"); | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 4: | 
						|
/***/ (function(module, exports) { | 
						|
 | 
						|
module.exports = require("element-ui/lib/mixins/emitter"); | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 58: | 
						|
/***/ (function(module, __webpack_exports__, __webpack_require__) { | 
						|
 | 
						|
"use strict"; | 
						|
__webpack_require__.r(__webpack_exports__); | 
						|
 | 
						|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree.vue?vue&type=template&id=547575a6& | 
						|
var render = function() { | 
						|
  var _vm = this | 
						|
  var _h = _vm.$createElement | 
						|
  var _c = _vm._self._c || _h | 
						|
  return _c( | 
						|
    "div", | 
						|
    { | 
						|
      staticClass: "el-tree", | 
						|
      class: { | 
						|
        "el-tree--highlight-current": _vm.highlightCurrent, | 
						|
        "is-dragging": !!_vm.dragState.draggingNode, | 
						|
        "is-drop-not-allow": !_vm.dragState.allowDrop, | 
						|
        "is-drop-inner": _vm.dragState.dropType === "inner" | 
						|
      }, | 
						|
      attrs: { role: "tree" } | 
						|
    }, | 
						|
    [ | 
						|
      _vm._l(_vm.root.childNodes, function(child) { | 
						|
        return _c("el-tree-node", { | 
						|
          key: _vm.getNodeKey(child), | 
						|
          attrs: { | 
						|
            node: child, | 
						|
            props: _vm.props, | 
						|
            "render-after-expand": _vm.renderAfterExpand, | 
						|
            "show-checkbox": _vm.showCheckbox, | 
						|
            "render-content": _vm.renderContent | 
						|
          }, | 
						|
          on: { "node-expand": _vm.handleNodeExpand } | 
						|
        }) | 
						|
      }), | 
						|
      _vm.isEmpty | 
						|
        ? _c("div", { staticClass: "el-tree__empty-block" }, [ | 
						|
            _c("span", { staticClass: "el-tree__empty-text" }, [ | 
						|
              _vm._v(_vm._s(_vm.emptyText)) | 
						|
            ]) | 
						|
          ]) | 
						|
        : _vm._e(), | 
						|
      _c("div", { | 
						|
        directives: [ | 
						|
          { | 
						|
            name: "show", | 
						|
            rawName: "v-show", | 
						|
            value: _vm.dragState.showDropIndicator, | 
						|
            expression: "dragState.showDropIndicator" | 
						|
          } | 
						|
        ], | 
						|
        ref: "dropIndicator", | 
						|
        staticClass: "el-tree__drop-indicator" | 
						|
      }) | 
						|
    ], | 
						|
    2 | 
						|
  ) | 
						|
} | 
						|
var staticRenderFns = [] | 
						|
render._withStripped = true | 
						|
 | 
						|
 | 
						|
// CONCATENATED MODULE: ./packages/tree/src/tree.vue?vue&type=template&id=547575a6& | 
						|
 | 
						|
// EXTERNAL MODULE: external "element-ui/lib/utils/merge" | 
						|
var merge_ = __webpack_require__(9); | 
						|
var merge_default = /*#__PURE__*/__webpack_require__.n(merge_); | 
						|
 | 
						|
// CONCATENATED MODULE: ./packages/tree/src/model/util.js | 
						|
var NODE_KEY = '$treeNodeId'; | 
						|
 | 
						|
var markNodeData = function markNodeData(node, data) { | 
						|
  if (!data || data[NODE_KEY]) return; | 
						|
  Object.defineProperty(data, NODE_KEY, { | 
						|
    value: node.id, | 
						|
    enumerable: false, | 
						|
    configurable: false, | 
						|
    writable: false | 
						|
  }); | 
						|
}; | 
						|
 | 
						|
var util_getNodeKey = function getNodeKey(key, data) { | 
						|
  if (!key) return data[NODE_KEY]; | 
						|
  return data[key]; | 
						|
}; | 
						|
 | 
						|
var findNearestComponent = function findNearestComponent(element, componentName) { | 
						|
  var target = element; | 
						|
  while (target && target.tagName !== 'BODY') { | 
						|
    if (target.__vue__ && target.__vue__.$options.name === componentName) { | 
						|
      return target.__vue__; | 
						|
    } | 
						|
    target = target.parentNode; | 
						|
  } | 
						|
  return null; | 
						|
}; | 
						|
// EXTERNAL MODULE: external "element-ui/lib/utils/util" | 
						|
var util_ = __webpack_require__(3); | 
						|
 | 
						|
// CONCATENATED MODULE: ./packages/tree/src/model/node.js | 
						|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); | 
						|
 | 
						|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
var getChildState = function getChildState(node) { | 
						|
  var all = true; | 
						|
  var none = true; | 
						|
  var allWithoutDisable = true; | 
						|
  for (var i = 0, j = node.length; i < j; i++) { | 
						|
    var n = node[i]; | 
						|
    if (n.checked !== true || n.indeterminate) { | 
						|
      all = false; | 
						|
      if (!n.disabled) { | 
						|
        allWithoutDisable = false; | 
						|
      } | 
						|
    } | 
						|
    if (n.checked !== false || n.indeterminate) { | 
						|
      none = false; | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  return { all: all, none: none, allWithoutDisable: allWithoutDisable, half: !all && !none }; | 
						|
}; | 
						|
 | 
						|
var reInitChecked = function reInitChecked(node) { | 
						|
  if (node.childNodes.length === 0) return; | 
						|
 | 
						|
  var _getChildState = getChildState(node.childNodes), | 
						|
      all = _getChildState.all, | 
						|
      none = _getChildState.none, | 
						|
      half = _getChildState.half; | 
						|
 | 
						|
  if (all) { | 
						|
    node.checked = true; | 
						|
    node.indeterminate = false; | 
						|
  } else if (half) { | 
						|
    node.checked = false; | 
						|
    node.indeterminate = true; | 
						|
  } else if (none) { | 
						|
    node.checked = false; | 
						|
    node.indeterminate = false; | 
						|
  } | 
						|
 | 
						|
  var parent = node.parent; | 
						|
  if (!parent || parent.level === 0) return; | 
						|
 | 
						|
  if (!node.store.checkStrictly) { | 
						|
    reInitChecked(parent); | 
						|
  } | 
						|
}; | 
						|
 | 
						|
var getPropertyFromData = function getPropertyFromData(node, prop) { | 
						|
  var props = node.store.props; | 
						|
  var data = node.data || {}; | 
						|
  var config = props[prop]; | 
						|
 | 
						|
  if (typeof config === 'function') { | 
						|
    return config(data, node); | 
						|
  } else if (typeof config === 'string') { | 
						|
    return data[config]; | 
						|
  } else if (typeof config === 'undefined') { | 
						|
    var dataProp = data[prop]; | 
						|
    return dataProp === undefined ? '' : dataProp; | 
						|
  } | 
						|
}; | 
						|
 | 
						|
var nodeIdSeed = 0; | 
						|
 | 
						|
var node_Node = function () { | 
						|
  function Node(options) { | 
						|
    _classCallCheck(this, Node); | 
						|
 | 
						|
    this.id = nodeIdSeed++; | 
						|
    this.text = null; | 
						|
    this.checked = false; | 
						|
    this.indeterminate = false; | 
						|
    this.data = null; | 
						|
    this.expanded = false; | 
						|
    this.parent = null; | 
						|
    this.visible = true; | 
						|
    this.isCurrent = false; | 
						|
 | 
						|
    for (var name in options) { | 
						|
      if (options.hasOwnProperty(name)) { | 
						|
        this[name] = options[name]; | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    // internal | 
						|
    this.level = 0; | 
						|
    this.loaded = false; | 
						|
    this.childNodes = []; | 
						|
    this.loading = false; | 
						|
 | 
						|
    if (this.parent) { | 
						|
      this.level = this.parent.level + 1; | 
						|
    } | 
						|
 | 
						|
    var store = this.store; | 
						|
    if (!store) { | 
						|
      throw new Error('[Node]store is required!'); | 
						|
    } | 
						|
    store.registerNode(this); | 
						|
 | 
						|
    var props = store.props; | 
						|
    if (props && typeof props.isLeaf !== 'undefined') { | 
						|
      var isLeaf = getPropertyFromData(this, 'isLeaf'); | 
						|
      if (typeof isLeaf === 'boolean') { | 
						|
        this.isLeafByUser = isLeaf; | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    if (store.lazy !== true && this.data) { | 
						|
      this.setData(this.data); | 
						|
 | 
						|
      if (store.defaultExpandAll) { | 
						|
        this.expanded = true; | 
						|
      } | 
						|
    } else if (this.level > 0 && store.lazy && store.defaultExpandAll) { | 
						|
      this.expand(); | 
						|
    } | 
						|
    if (!Array.isArray(this.data)) { | 
						|
      markNodeData(this, this.data); | 
						|
    } | 
						|
    if (!this.data) return; | 
						|
    var defaultExpandedKeys = store.defaultExpandedKeys; | 
						|
    var key = store.key; | 
						|
    if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) { | 
						|
      this.expand(null, store.autoExpandParent); | 
						|
    } | 
						|
 | 
						|
    if (key && store.currentNodeKey !== undefined && this.key === store.currentNodeKey) { | 
						|
      store.currentNode = this; | 
						|
      store.currentNode.isCurrent = true; | 
						|
    } | 
						|
 | 
						|
    if (store.lazy) { | 
						|
      store._initDefaultCheckedNode(this); | 
						|
    } | 
						|
 | 
						|
    this.updateLeafState(); | 
						|
  } | 
						|
 | 
						|
  Node.prototype.setData = function setData(data) { | 
						|
    if (!Array.isArray(data)) { | 
						|
      markNodeData(this, data); | 
						|
    } | 
						|
 | 
						|
    this.data = data; | 
						|
    this.childNodes = []; | 
						|
 | 
						|
    var children = void 0; | 
						|
    if (this.level === 0 && this.data instanceof Array) { | 
						|
      children = this.data; | 
						|
    } else { | 
						|
      children = getPropertyFromData(this, 'children') || []; | 
						|
    } | 
						|
 | 
						|
    for (var i = 0, j = children.length; i < j; i++) { | 
						|
      this.insertChild({ data: children[i] }); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.contains = function contains(target) { | 
						|
    var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | 
						|
 | 
						|
    var walk = function walk(parent) { | 
						|
      var children = parent.childNodes || []; | 
						|
      var result = false; | 
						|
      for (var i = 0, j = children.length; i < j; i++) { | 
						|
        var child = children[i]; | 
						|
        if (child === target || deep && walk(child)) { | 
						|
          result = true; | 
						|
          break; | 
						|
        } | 
						|
      } | 
						|
      return result; | 
						|
    }; | 
						|
 | 
						|
    return walk(this); | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.remove = function remove() { | 
						|
    var parent = this.parent; | 
						|
    if (parent) { | 
						|
      parent.removeChild(this); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.insertChild = function insertChild(child, index, batch) { | 
						|
    if (!child) throw new Error('insertChild error: child is required.'); | 
						|
 | 
						|
    if (!(child instanceof Node)) { | 
						|
      if (!batch) { | 
						|
        var children = this.getChildren(true); | 
						|
        if (children.indexOf(child.data) === -1) { | 
						|
          if (typeof index === 'undefined' || index < 0) { | 
						|
            children.push(child.data); | 
						|
          } else { | 
						|
            children.splice(index, 0, child.data); | 
						|
          } | 
						|
        } | 
						|
      } | 
						|
      merge_default()(child, { | 
						|
        parent: this, | 
						|
        store: this.store | 
						|
      }); | 
						|
      child = new Node(child); | 
						|
    } | 
						|
 | 
						|
    child.level = this.level + 1; | 
						|
 | 
						|
    if (typeof index === 'undefined' || index < 0) { | 
						|
      this.childNodes.push(child); | 
						|
    } else { | 
						|
      this.childNodes.splice(index, 0, child); | 
						|
    } | 
						|
 | 
						|
    this.updateLeafState(); | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.insertBefore = function insertBefore(child, ref) { | 
						|
    var index = void 0; | 
						|
    if (ref) { | 
						|
      index = this.childNodes.indexOf(ref); | 
						|
    } | 
						|
    this.insertChild(child, index); | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.insertAfter = function insertAfter(child, ref) { | 
						|
    var index = void 0; | 
						|
    if (ref) { | 
						|
      index = this.childNodes.indexOf(ref); | 
						|
      if (index !== -1) index += 1; | 
						|
    } | 
						|
    this.insertChild(child, index); | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.removeChild = function removeChild(child) { | 
						|
    var children = this.getChildren() || []; | 
						|
    var dataIndex = children.indexOf(child.data); | 
						|
    if (dataIndex > -1) { | 
						|
      children.splice(dataIndex, 1); | 
						|
    } | 
						|
 | 
						|
    var index = this.childNodes.indexOf(child); | 
						|
 | 
						|
    if (index > -1) { | 
						|
      this.store && this.store.deregisterNode(child); | 
						|
      child.parent = null; | 
						|
      this.childNodes.splice(index, 1); | 
						|
    } | 
						|
 | 
						|
    this.updateLeafState(); | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.removeChildByData = function removeChildByData(data) { | 
						|
    var targetNode = null; | 
						|
 | 
						|
    for (var i = 0; i < this.childNodes.length; i++) { | 
						|
      if (this.childNodes[i].data === data) { | 
						|
        targetNode = this.childNodes[i]; | 
						|
        break; | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    if (targetNode) { | 
						|
      this.removeChild(targetNode); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.expand = function expand(callback, expandParent) { | 
						|
    var _this = this; | 
						|
 | 
						|
    var done = function done() { | 
						|
      if (expandParent) { | 
						|
        var parent = _this.parent; | 
						|
        while (parent.level > 0) { | 
						|
          parent.expanded = true; | 
						|
          parent = parent.parent; | 
						|
        } | 
						|
      } | 
						|
      _this.expanded = true; | 
						|
      if (callback) callback(); | 
						|
    }; | 
						|
 | 
						|
    if (this.shouldLoadData()) { | 
						|
      this.loadData(function (data) { | 
						|
        if (data instanceof Array) { | 
						|
          if (_this.checked) { | 
						|
            _this.setChecked(true, true); | 
						|
          } else if (!_this.store.checkStrictly) { | 
						|
            reInitChecked(_this); | 
						|
          } | 
						|
          done(); | 
						|
        } | 
						|
      }); | 
						|
    } else { | 
						|
      done(); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.doCreateChildren = function doCreateChildren(array) { | 
						|
    var _this2 = this; | 
						|
 | 
						|
    var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | 
						|
 | 
						|
    array.forEach(function (item) { | 
						|
      _this2.insertChild(merge_default()({ data: item }, defaultProps), undefined, true); | 
						|
    }); | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.collapse = function collapse() { | 
						|
    this.expanded = false; | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.shouldLoadData = function shouldLoadData() { | 
						|
    return this.store.lazy === true && this.store.load && !this.loaded; | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.updateLeafState = function updateLeafState() { | 
						|
    if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== 'undefined') { | 
						|
      this.isLeaf = this.isLeafByUser; | 
						|
      return; | 
						|
    } | 
						|
    var childNodes = this.childNodes; | 
						|
    if (!this.store.lazy || this.store.lazy === true && this.loaded === true) { | 
						|
      this.isLeaf = !childNodes || childNodes.length === 0; | 
						|
      return; | 
						|
    } | 
						|
    this.isLeaf = false; | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.setChecked = function setChecked(value, deep, recursion, passValue) { | 
						|
    var _this3 = this; | 
						|
 | 
						|
    this.indeterminate = value === 'half'; | 
						|
    this.checked = value === true; | 
						|
 | 
						|
    if (this.store.checkStrictly) return; | 
						|
 | 
						|
    if (!(this.shouldLoadData() && !this.store.checkDescendants)) { | 
						|
      var _getChildState2 = getChildState(this.childNodes), | 
						|
          all = _getChildState2.all, | 
						|
          allWithoutDisable = _getChildState2.allWithoutDisable; | 
						|
 | 
						|
      if (!this.isLeaf && !all && allWithoutDisable) { | 
						|
        this.checked = false; | 
						|
        value = false; | 
						|
      } | 
						|
 | 
						|
      var handleDescendants = function handleDescendants() { | 
						|
        if (deep) { | 
						|
          var childNodes = _this3.childNodes; | 
						|
          for (var i = 0, j = childNodes.length; i < j; i++) { | 
						|
            var child = childNodes[i]; | 
						|
            passValue = passValue || value !== false; | 
						|
            var isCheck = child.disabled ? child.checked : passValue; | 
						|
            child.setChecked(isCheck, deep, true, passValue); | 
						|
          } | 
						|
 | 
						|
          var _getChildState3 = getChildState(childNodes), | 
						|
              half = _getChildState3.half, | 
						|
              _all = _getChildState3.all; | 
						|
 | 
						|
          if (!_all) { | 
						|
            _this3.checked = _all; | 
						|
            _this3.indeterminate = half; | 
						|
          } | 
						|
        } | 
						|
      }; | 
						|
 | 
						|
      if (this.shouldLoadData()) { | 
						|
        // Only work on lazy load data. | 
						|
        this.loadData(function () { | 
						|
          handleDescendants(); | 
						|
          reInitChecked(_this3); | 
						|
        }, { | 
						|
          checked: value !== false | 
						|
        }); | 
						|
        return; | 
						|
      } else { | 
						|
        handleDescendants(); | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    var parent = this.parent; | 
						|
    if (!parent || parent.level === 0) return; | 
						|
 | 
						|
    if (!recursion) { | 
						|
      reInitChecked(parent); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.getChildren = function getChildren() { | 
						|
    var forceInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; | 
						|
    // this is data | 
						|
    if (this.level === 0) return this.data; | 
						|
    var data = this.data; | 
						|
    if (!data) return null; | 
						|
 | 
						|
    var props = this.store.props; | 
						|
    var children = 'children'; | 
						|
    if (props) { | 
						|
      children = props.children || 'children'; | 
						|
    } | 
						|
 | 
						|
    if (data[children] === undefined) { | 
						|
      data[children] = null; | 
						|
    } | 
						|
 | 
						|
    if (forceInit && !data[children]) { | 
						|
      data[children] = []; | 
						|
    } | 
						|
 | 
						|
    return data[children]; | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.updateChildren = function updateChildren() { | 
						|
    var _this4 = this; | 
						|
 | 
						|
    var newData = this.getChildren() || []; | 
						|
    var oldData = this.childNodes.map(function (node) { | 
						|
      return node.data; | 
						|
    }); | 
						|
 | 
						|
    var newDataMap = {}; | 
						|
    var newNodes = []; | 
						|
 | 
						|
    newData.forEach(function (item, index) { | 
						|
      var key = item[NODE_KEY]; | 
						|
      var isNodeExists = !!key && Object(util_["arrayFindIndex"])(oldData, function (data) { | 
						|
        return data[NODE_KEY] === key; | 
						|
      }) >= 0; | 
						|
      if (isNodeExists) { | 
						|
        newDataMap[key] = { index: index, data: item }; | 
						|
      } else { | 
						|
        newNodes.push({ index: index, data: item }); | 
						|
      } | 
						|
    }); | 
						|
 | 
						|
    if (!this.store.lazy) { | 
						|
      oldData.forEach(function (item) { | 
						|
        if (!newDataMap[item[NODE_KEY]]) _this4.removeChildByData(item); | 
						|
      }); | 
						|
    } | 
						|
 | 
						|
    newNodes.forEach(function (_ref) { | 
						|
      var index = _ref.index, | 
						|
          data = _ref.data; | 
						|
 | 
						|
      _this4.insertChild({ data: data }, index); | 
						|
    }); | 
						|
 | 
						|
    this.updateLeafState(); | 
						|
  }; | 
						|
 | 
						|
  Node.prototype.loadData = function loadData(callback) { | 
						|
    var _this5 = this; | 
						|
 | 
						|
    var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | 
						|
 | 
						|
    if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) { | 
						|
      this.loading = true; | 
						|
 | 
						|
      var resolve = function resolve(children) { | 
						|
        _this5.loaded = true; | 
						|
        _this5.loading = false; | 
						|
        _this5.childNodes = []; | 
						|
 | 
						|
        _this5.doCreateChildren(children, defaultProps); | 
						|
 | 
						|
        _this5.updateLeafState(); | 
						|
        if (callback) { | 
						|
          callback.call(_this5, children); | 
						|
        } | 
						|
      }; | 
						|
 | 
						|
      this.store.load(this, resolve); | 
						|
    } else { | 
						|
      if (callback) { | 
						|
        callback.call(this); | 
						|
      } | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  _createClass(Node, [{ | 
						|
    key: 'label', | 
						|
    get: function get() { | 
						|
      return getPropertyFromData(this, 'label'); | 
						|
    } | 
						|
  }, { | 
						|
    key: 'key', | 
						|
    get: function get() { | 
						|
      var nodeKey = this.store.key; | 
						|
      if (this.data) return this.data[nodeKey]; | 
						|
      return null; | 
						|
    } | 
						|
  }, { | 
						|
    key: 'disabled', | 
						|
    get: function get() { | 
						|
      return getPropertyFromData(this, 'disabled'); | 
						|
    } | 
						|
  }, { | 
						|
    key: 'nextSibling', | 
						|
    get: function get() { | 
						|
      var parent = this.parent; | 
						|
      if (parent) { | 
						|
        var index = parent.childNodes.indexOf(this); | 
						|
        if (index > -1) { | 
						|
          return parent.childNodes[index + 1]; | 
						|
        } | 
						|
      } | 
						|
      return null; | 
						|
    } | 
						|
  }, { | 
						|
    key: 'previousSibling', | 
						|
    get: function get() { | 
						|
      var parent = this.parent; | 
						|
      if (parent) { | 
						|
        var index = parent.childNodes.indexOf(this); | 
						|
        if (index > -1) { | 
						|
          return index > 0 ? parent.childNodes[index - 1] : null; | 
						|
        } | 
						|
      } | 
						|
      return null; | 
						|
    } | 
						|
  }]); | 
						|
 | 
						|
  return Node; | 
						|
}(); | 
						|
 | 
						|
/* harmony default export */ var model_node = (node_Node); | 
						|
// CONCATENATED MODULE: ./packages/tree/src/model/tree-store.js | 
						|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; | 
						|
 | 
						|
function tree_store_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
var tree_store_TreeStore = function () { | 
						|
  function TreeStore(options) { | 
						|
    var _this = this; | 
						|
 | 
						|
    tree_store_classCallCheck(this, TreeStore); | 
						|
 | 
						|
    this.currentNode = null; | 
						|
    this.currentNodeKey = null; | 
						|
 | 
						|
    for (var option in options) { | 
						|
      if (options.hasOwnProperty(option)) { | 
						|
        this[option] = options[option]; | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    this.nodesMap = {}; | 
						|
 | 
						|
    this.root = new model_node({ | 
						|
      data: this.data, | 
						|
      store: this | 
						|
    }); | 
						|
 | 
						|
    if (this.lazy && this.load) { | 
						|
      var loadFn = this.load; | 
						|
      loadFn(this.root, function (data) { | 
						|
        _this.root.doCreateChildren(data); | 
						|
        _this._initDefaultCheckedNodes(); | 
						|
      }); | 
						|
    } else { | 
						|
      this._initDefaultCheckedNodes(); | 
						|
    } | 
						|
  } | 
						|
 | 
						|
  TreeStore.prototype.filter = function filter(value) { | 
						|
    var filterNodeMethod = this.filterNodeMethod; | 
						|
    var lazy = this.lazy; | 
						|
    var traverse = function traverse(node) { | 
						|
      var childNodes = node.root ? node.root.childNodes : node.childNodes; | 
						|
 | 
						|
      childNodes.forEach(function (child) { | 
						|
        child.visible = filterNodeMethod.call(child, value, child.data, child); | 
						|
 | 
						|
        traverse(child); | 
						|
      }); | 
						|
 | 
						|
      if (!node.visible && childNodes.length) { | 
						|
        var allHidden = true; | 
						|
        allHidden = !childNodes.some(function (child) { | 
						|
          return child.visible; | 
						|
        }); | 
						|
 | 
						|
        if (node.root) { | 
						|
          node.root.visible = allHidden === false; | 
						|
        } else { | 
						|
          node.visible = allHidden === false; | 
						|
        } | 
						|
      } | 
						|
      if (!value) return; | 
						|
 | 
						|
      if (node.visible && !node.isLeaf && !lazy) node.expand(); | 
						|
    }; | 
						|
 | 
						|
    traverse(this); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setData = function setData(newVal) { | 
						|
    var instanceChanged = newVal !== this.root.data; | 
						|
    if (instanceChanged) { | 
						|
      this.root.setData(newVal); | 
						|
      this._initDefaultCheckedNodes(); | 
						|
    } else { | 
						|
      this.root.updateChildren(); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.getNode = function getNode(data) { | 
						|
    if (data instanceof model_node) return data; | 
						|
    var key = (typeof data === 'undefined' ? 'undefined' : _typeof(data)) !== 'object' ? data : util_getNodeKey(this.key, data); | 
						|
    return this.nodesMap[key] || null; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.insertBefore = function insertBefore(data, refData) { | 
						|
    var refNode = this.getNode(refData); | 
						|
    refNode.parent.insertBefore({ data: data }, refNode); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.insertAfter = function insertAfter(data, refData) { | 
						|
    var refNode = this.getNode(refData); | 
						|
    refNode.parent.insertAfter({ data: data }, refNode); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.remove = function remove(data) { | 
						|
    var node = this.getNode(data); | 
						|
 | 
						|
    if (node && node.parent) { | 
						|
      if (node === this.currentNode) { | 
						|
        this.currentNode = null; | 
						|
      } | 
						|
      node.parent.removeChild(node); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.append = function append(data, parentData) { | 
						|
    var parentNode = parentData ? this.getNode(parentData) : this.root; | 
						|
 | 
						|
    if (parentNode) { | 
						|
      parentNode.insertChild({ data: data }); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype._initDefaultCheckedNodes = function _initDefaultCheckedNodes() { | 
						|
    var _this2 = this; | 
						|
 | 
						|
    var defaultCheckedKeys = this.defaultCheckedKeys || []; | 
						|
    var nodesMap = this.nodesMap; | 
						|
 | 
						|
    defaultCheckedKeys.forEach(function (checkedKey) { | 
						|
      var node = nodesMap[checkedKey]; | 
						|
 | 
						|
      if (node) { | 
						|
        node.setChecked(true, !_this2.checkStrictly); | 
						|
      } | 
						|
    }); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype._initDefaultCheckedNode = function _initDefaultCheckedNode(node) { | 
						|
    var defaultCheckedKeys = this.defaultCheckedKeys || []; | 
						|
 | 
						|
    if (defaultCheckedKeys.indexOf(node.key) !== -1) { | 
						|
      node.setChecked(true, !this.checkStrictly); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setDefaultCheckedKey = function setDefaultCheckedKey(newVal) { | 
						|
    if (newVal !== this.defaultCheckedKeys) { | 
						|
      this.defaultCheckedKeys = newVal; | 
						|
      this._initDefaultCheckedNodes(); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.registerNode = function registerNode(node) { | 
						|
    var key = this.key; | 
						|
    if (!key || !node || !node.data) return; | 
						|
 | 
						|
    var nodeKey = node.key; | 
						|
    if (nodeKey !== undefined) this.nodesMap[node.key] = node; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.deregisterNode = function deregisterNode(node) { | 
						|
    var _this3 = this; | 
						|
 | 
						|
    var key = this.key; | 
						|
    if (!key || !node || !node.data) return; | 
						|
 | 
						|
    node.childNodes.forEach(function (child) { | 
						|
      _this3.deregisterNode(child); | 
						|
    }); | 
						|
 | 
						|
    delete this.nodesMap[node.key]; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.getCheckedNodes = function getCheckedNodes() { | 
						|
    var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; | 
						|
    var includeHalfChecked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | 
						|
 | 
						|
    var checkedNodes = []; | 
						|
    var traverse = function traverse(node) { | 
						|
      var childNodes = node.root ? node.root.childNodes : node.childNodes; | 
						|
 | 
						|
      childNodes.forEach(function (child) { | 
						|
        if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) { | 
						|
          checkedNodes.push(child.data); | 
						|
        } | 
						|
 | 
						|
        traverse(child); | 
						|
      }); | 
						|
    }; | 
						|
 | 
						|
    traverse(this); | 
						|
 | 
						|
    return checkedNodes; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.getCheckedKeys = function getCheckedKeys() { | 
						|
    var _this4 = this; | 
						|
 | 
						|
    var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; | 
						|
 | 
						|
    return this.getCheckedNodes(leafOnly).map(function (data) { | 
						|
      return (data || {})[_this4.key]; | 
						|
    }); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.getHalfCheckedNodes = function getHalfCheckedNodes() { | 
						|
    var nodes = []; | 
						|
    var traverse = function traverse(node) { | 
						|
      var childNodes = node.root ? node.root.childNodes : node.childNodes; | 
						|
 | 
						|
      childNodes.forEach(function (child) { | 
						|
        if (child.indeterminate) { | 
						|
          nodes.push(child.data); | 
						|
        } | 
						|
 | 
						|
        traverse(child); | 
						|
      }); | 
						|
    }; | 
						|
 | 
						|
    traverse(this); | 
						|
 | 
						|
    return nodes; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.getHalfCheckedKeys = function getHalfCheckedKeys() { | 
						|
    var _this5 = this; | 
						|
 | 
						|
    return this.getHalfCheckedNodes().map(function (data) { | 
						|
      return (data || {})[_this5.key]; | 
						|
    }); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype._getAllNodes = function _getAllNodes() { | 
						|
    var allNodes = []; | 
						|
    var nodesMap = this.nodesMap; | 
						|
    for (var nodeKey in nodesMap) { | 
						|
      if (nodesMap.hasOwnProperty(nodeKey)) { | 
						|
        allNodes.push(nodesMap[nodeKey]); | 
						|
      } | 
						|
    } | 
						|
 | 
						|
    return allNodes; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.updateChildren = function updateChildren(key, data) { | 
						|
    var node = this.nodesMap[key]; | 
						|
    if (!node) return; | 
						|
    var childNodes = node.childNodes; | 
						|
    for (var i = childNodes.length - 1; i >= 0; i--) { | 
						|
      var child = childNodes[i]; | 
						|
      this.remove(child.data); | 
						|
    } | 
						|
    for (var _i = 0, j = data.length; _i < j; _i++) { | 
						|
      var _child = data[_i]; | 
						|
      this.append(_child, node.data); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype._setCheckedKeys = function _setCheckedKeys(key) { | 
						|
    var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | 
						|
    var checkedKeys = arguments[2]; | 
						|
 | 
						|
    var allNodes = this._getAllNodes().sort(function (a, b) { | 
						|
      return b.level - a.level; | 
						|
    }); | 
						|
    var cache = Object.create(null); | 
						|
    var keys = Object.keys(checkedKeys); | 
						|
    allNodes.forEach(function (node) { | 
						|
      return node.setChecked(false, false); | 
						|
    }); | 
						|
    for (var i = 0, j = allNodes.length; i < j; i++) { | 
						|
      var node = allNodes[i]; | 
						|
      var nodeKey = node.data[key].toString(); | 
						|
      var checked = keys.indexOf(nodeKey) > -1; | 
						|
      if (!checked) { | 
						|
        if (node.checked && !cache[nodeKey]) { | 
						|
          node.setChecked(false, false); | 
						|
        } | 
						|
        continue; | 
						|
      } | 
						|
 | 
						|
      var parent = node.parent; | 
						|
      while (parent && parent.level > 0) { | 
						|
        cache[parent.data[key]] = true; | 
						|
        parent = parent.parent; | 
						|
      } | 
						|
 | 
						|
      if (node.isLeaf || this.checkStrictly) { | 
						|
        node.setChecked(true, false); | 
						|
        continue; | 
						|
      } | 
						|
      node.setChecked(true, true); | 
						|
 | 
						|
      if (leafOnly) { | 
						|
        (function () { | 
						|
          node.setChecked(false, false); | 
						|
          var traverse = function traverse(node) { | 
						|
            var childNodes = node.childNodes; | 
						|
            childNodes.forEach(function (child) { | 
						|
              if (!child.isLeaf) { | 
						|
                child.setChecked(false, false); | 
						|
              } | 
						|
              traverse(child); | 
						|
            }); | 
						|
          }; | 
						|
          traverse(node); | 
						|
        })(); | 
						|
      } | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setCheckedNodes = function setCheckedNodes(array) { | 
						|
    var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | 
						|
 | 
						|
    var key = this.key; | 
						|
    var checkedKeys = {}; | 
						|
    array.forEach(function (item) { | 
						|
      checkedKeys[(item || {})[key]] = true; | 
						|
    }); | 
						|
 | 
						|
    this._setCheckedKeys(key, leafOnly, checkedKeys); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setCheckedKeys = function setCheckedKeys(keys) { | 
						|
    var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | 
						|
 | 
						|
    this.defaultCheckedKeys = keys; | 
						|
    var key = this.key; | 
						|
    var checkedKeys = {}; | 
						|
    keys.forEach(function (key) { | 
						|
      checkedKeys[key] = true; | 
						|
    }); | 
						|
 | 
						|
    this._setCheckedKeys(key, leafOnly, checkedKeys); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setDefaultExpandedKeys = function setDefaultExpandedKeys(keys) { | 
						|
    var _this6 = this; | 
						|
 | 
						|
    keys = keys || []; | 
						|
    this.defaultExpandedKeys = keys; | 
						|
 | 
						|
    keys.forEach(function (key) { | 
						|
      var node = _this6.getNode(key); | 
						|
      if (node) node.expand(null, _this6.autoExpandParent); | 
						|
    }); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setChecked = function setChecked(data, checked, deep) { | 
						|
    var node = this.getNode(data); | 
						|
 | 
						|
    if (node) { | 
						|
      node.setChecked(!!checked, deep); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.getCurrentNode = function getCurrentNode() { | 
						|
    return this.currentNode; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setCurrentNode = function setCurrentNode(currentNode) { | 
						|
    var prevCurrentNode = this.currentNode; | 
						|
    if (prevCurrentNode) { | 
						|
      prevCurrentNode.isCurrent = false; | 
						|
    } | 
						|
    this.currentNode = currentNode; | 
						|
    this.currentNode.isCurrent = true; | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setUserCurrentNode = function setUserCurrentNode(node) { | 
						|
    var key = node[this.key]; | 
						|
    var currNode = this.nodesMap[key]; | 
						|
    this.setCurrentNode(currNode); | 
						|
  }; | 
						|
 | 
						|
  TreeStore.prototype.setCurrentNodeKey = function setCurrentNodeKey(key) { | 
						|
    if (key === null || key === undefined) { | 
						|
      this.currentNode && (this.currentNode.isCurrent = false); | 
						|
      this.currentNode = null; | 
						|
      return; | 
						|
    } | 
						|
    var node = this.getNode(key); | 
						|
    if (node) { | 
						|
      this.setCurrentNode(node); | 
						|
    } | 
						|
  }; | 
						|
 | 
						|
  return TreeStore; | 
						|
}(); | 
						|
 | 
						|
/* harmony default export */ var tree_store = (tree_store_TreeStore); | 
						|
; | 
						|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree-node.vue?vue&type=template&id=3ba3ef0e& | 
						|
var tree_nodevue_type_template_id_3ba3ef0e_render = function() { | 
						|
  var this$1 = this | 
						|
  var _vm = this | 
						|
  var _h = _vm.$createElement | 
						|
  var _c = _vm._self._c || _h | 
						|
  return _c( | 
						|
    "div", | 
						|
    { | 
						|
      directives: [ | 
						|
        { | 
						|
          name: "show", | 
						|
          rawName: "v-show", | 
						|
          value: _vm.node.visible, | 
						|
          expression: "node.visible" | 
						|
        } | 
						|
      ], | 
						|
      ref: "node", | 
						|
      staticClass: "el-tree-node", | 
						|
      class: { | 
						|
        "is-expanded": _vm.expanded, | 
						|
        "is-current": _vm.node.isCurrent, | 
						|
        "is-hidden": !_vm.node.visible, | 
						|
        "is-focusable": !_vm.node.disabled, | 
						|
        "is-checked": !_vm.node.disabled && _vm.node.checked | 
						|
      }, | 
						|
      attrs: { | 
						|
        role: "treeitem", | 
						|
        tabindex: "-1", | 
						|
        "aria-expanded": _vm.expanded, | 
						|
        "aria-disabled": _vm.node.disabled, | 
						|
        "aria-checked": _vm.node.checked, | 
						|
        draggable: _vm.tree.draggable | 
						|
      }, | 
						|
      on: { | 
						|
        click: function($event) { | 
						|
          $event.stopPropagation() | 
						|
          return _vm.handleClick($event) | 
						|
        }, | 
						|
        contextmenu: function($event) { | 
						|
          return this$1.handleContextMenu($event) | 
						|
        }, | 
						|
        dragstart: function($event) { | 
						|
          $event.stopPropagation() | 
						|
          return _vm.handleDragStart($event) | 
						|
        }, | 
						|
        dragover: function($event) { | 
						|
          $event.stopPropagation() | 
						|
          return _vm.handleDragOver($event) | 
						|
        }, | 
						|
        dragend: function($event) { | 
						|
          $event.stopPropagation() | 
						|
          return _vm.handleDragEnd($event) | 
						|
        }, | 
						|
        drop: function($event) { | 
						|
          $event.stopPropagation() | 
						|
          return _vm.handleDrop($event) | 
						|
        } | 
						|
      } | 
						|
    }, | 
						|
    [ | 
						|
      _c( | 
						|
        "div", | 
						|
        { | 
						|
          staticClass: "el-tree-node__content", | 
						|
          style: { | 
						|
            "padding-left": (_vm.node.level - 1) * _vm.tree.indent + "px" | 
						|
          } | 
						|
        }, | 
						|
        [ | 
						|
          _c("span", { | 
						|
            class: [ | 
						|
              { | 
						|
                "is-leaf": _vm.node.isLeaf, | 
						|
                expanded: !_vm.node.isLeaf && _vm.expanded | 
						|
              }, | 
						|
              "el-tree-node__expand-icon", | 
						|
              _vm.tree.iconClass ? _vm.tree.iconClass : "el-icon-caret-right" | 
						|
            ], | 
						|
            on: { | 
						|
              click: function($event) { | 
						|
                $event.stopPropagation() | 
						|
                return _vm.handleExpandIconClick($event) | 
						|
              } | 
						|
            } | 
						|
          }), | 
						|
          _vm.showCheckbox | 
						|
            ? _c("el-checkbox", { | 
						|
                attrs: { | 
						|
                  indeterminate: _vm.node.indeterminate, | 
						|
                  disabled: !!_vm.node.disabled | 
						|
                }, | 
						|
                on: { change: _vm.handleCheckChange }, | 
						|
                nativeOn: { | 
						|
                  click: function($event) { | 
						|
                    $event.stopPropagation() | 
						|
                  } | 
						|
                }, | 
						|
                model: { | 
						|
                  value: _vm.node.checked, | 
						|
                  callback: function($$v) { | 
						|
                    _vm.$set(_vm.node, "checked", $$v) | 
						|
                  }, | 
						|
                  expression: "node.checked" | 
						|
                } | 
						|
              }) | 
						|
            : _vm._e(), | 
						|
          _vm.node.loading | 
						|
            ? _c("span", { | 
						|
                staticClass: "el-tree-node__loading-icon el-icon-loading" | 
						|
              }) | 
						|
            : _vm._e(), | 
						|
          _c("node-content", { attrs: { node: _vm.node } }) | 
						|
        ], | 
						|
        1 | 
						|
      ), | 
						|
      _c("el-collapse-transition", [ | 
						|
        !_vm.renderAfterExpand || _vm.childNodeRendered | 
						|
          ? _c( | 
						|
              "div", | 
						|
              { | 
						|
                directives: [ | 
						|
                  { | 
						|
                    name: "show", | 
						|
                    rawName: "v-show", | 
						|
                    value: _vm.expanded, | 
						|
                    expression: "expanded" | 
						|
                  } | 
						|
                ], | 
						|
                staticClass: "el-tree-node__children", | 
						|
                attrs: { role: "group", "aria-expanded": _vm.expanded } | 
						|
              }, | 
						|
              _vm._l(_vm.node.childNodes, function(child) { | 
						|
                return _c("el-tree-node", { | 
						|
                  key: _vm.getNodeKey(child), | 
						|
                  attrs: { | 
						|
                    "render-content": _vm.renderContent, | 
						|
                    "render-after-expand": _vm.renderAfterExpand, | 
						|
                    "show-checkbox": _vm.showCheckbox, | 
						|
                    node: child | 
						|
                  }, | 
						|
                  on: { "node-expand": _vm.handleChildNodeExpand } | 
						|
                }) | 
						|
              }), | 
						|
              1 | 
						|
            ) | 
						|
          : _vm._e() | 
						|
      ]) | 
						|
    ], | 
						|
    1 | 
						|
  ) | 
						|
} | 
						|
var tree_nodevue_type_template_id_3ba3ef0e_staticRenderFns = [] | 
						|
tree_nodevue_type_template_id_3ba3ef0e_render._withStripped = true | 
						|
 | 
						|
 | 
						|
// CONCATENATED MODULE: ./packages/tree/src/tree-node.vue?vue&type=template&id=3ba3ef0e& | 
						|
 | 
						|
// EXTERNAL MODULE: external "element-ui/lib/transitions/collapse-transition" | 
						|
var collapse_transition_ = __webpack_require__(28); | 
						|
var collapse_transition_default = /*#__PURE__*/__webpack_require__.n(collapse_transition_); | 
						|
 | 
						|
// EXTERNAL MODULE: external "element-ui/lib/checkbox" | 
						|
var checkbox_ = __webpack_require__(18); | 
						|
var checkbox_default = /*#__PURE__*/__webpack_require__.n(checkbox_); | 
						|
 | 
						|
// EXTERNAL MODULE: external "element-ui/lib/mixins/emitter" | 
						|
var emitter_ = __webpack_require__(4); | 
						|
var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_); | 
						|
 | 
						|
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree-node.vue?vue&type=script&lang=js& | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* harmony default export */ var tree_nodevue_type_script_lang_js_ = ({ | 
						|
  name: 'ElTreeNode', | 
						|
 | 
						|
  componentName: 'ElTreeNode', | 
						|
 | 
						|
  mixins: [emitter_default.a], | 
						|
 | 
						|
  props: { | 
						|
    node: { | 
						|
      default: function _default() { | 
						|
        return {}; | 
						|
      } | 
						|
    }, | 
						|
    props: {}, | 
						|
    renderContent: Function, | 
						|
    renderAfterExpand: { | 
						|
      type: Boolean, | 
						|
      default: true | 
						|
    }, | 
						|
    showCheckbox: { | 
						|
      type: Boolean, | 
						|
      default: false | 
						|
    } | 
						|
  }, | 
						|
 | 
						|
  components: { | 
						|
    ElCollapseTransition: collapse_transition_default.a, | 
						|
    ElCheckbox: checkbox_default.a, | 
						|
    NodeContent: { | 
						|
      props: { | 
						|
        node: { | 
						|
          required: true | 
						|
        } | 
						|
      }, | 
						|
      render: function render(h) { | 
						|
        var parent = this.$parent; | 
						|
        var tree = parent.tree; | 
						|
        var node = this.node; | 
						|
        var data = node.data, | 
						|
            store = node.store; | 
						|
 | 
						|
        return parent.renderContent ? parent.renderContent.call(parent._renderProxy, h, { _self: tree.$vnode.context, node: node, data: data, store: store }) : tree.$scopedSlots.default ? tree.$scopedSlots.default({ node: node, data: data }) : h( | 
						|
          'span', | 
						|
          { 'class': 'el-tree-node__label' }, | 
						|
          [node.label] | 
						|
        ); | 
						|
      } | 
						|
    } | 
						|
  }, | 
						|
 | 
						|
  data: function data() { | 
						|
    return { | 
						|
      tree: null, | 
						|
      expanded: false, | 
						|
      childNodeRendered: false, | 
						|
      oldChecked: null, | 
						|
      oldIndeterminate: null | 
						|
    }; | 
						|
  }, | 
						|
 | 
						|
 | 
						|
  watch: { | 
						|
    'node.indeterminate': function nodeIndeterminate(val) { | 
						|
      this.handleSelectChange(this.node.checked, val); | 
						|
    }, | 
						|
    'node.checked': function nodeChecked(val) { | 
						|
      this.handleSelectChange(val, this.node.indeterminate); | 
						|
    }, | 
						|
    'node.expanded': function nodeExpanded(val) { | 
						|
      var _this = this; | 
						|
 | 
						|
      this.$nextTick(function () { | 
						|
        return _this.expanded = val; | 
						|
      }); | 
						|
      if (val) { | 
						|
        this.childNodeRendered = true; | 
						|
      } | 
						|
    } | 
						|
  }, | 
						|
 | 
						|
  methods: { | 
						|
    getNodeKey: function getNodeKey(node) { | 
						|
      return util_getNodeKey(this.tree.nodeKey, node.data); | 
						|
    }, | 
						|
    handleSelectChange: function handleSelectChange(checked, indeterminate) { | 
						|
      if (this.oldChecked !== checked && this.oldIndeterminate !== indeterminate) { | 
						|
        this.tree.$emit('check-change', this.node.data, checked, indeterminate); | 
						|
      } | 
						|
      this.oldChecked = checked; | 
						|
      this.indeterminate = indeterminate; | 
						|
    }, | 
						|
    handleClick: function handleClick() { | 
						|
      var store = this.tree.store; | 
						|
      store.setCurrentNode(this.node); | 
						|
      this.tree.$emit('current-change', store.currentNode ? store.currentNode.data : null, store.currentNode); | 
						|
      this.tree.currentNode = this; | 
						|
      if (this.tree.expandOnClickNode) { | 
						|
        this.handleExpandIconClick(); | 
						|
      } | 
						|
      if (this.tree.checkOnClickNode && !this.node.disabled) { | 
						|
        this.handleCheckChange(null, { | 
						|
          target: { checked: !this.node.checked } | 
						|
        }); | 
						|
      } | 
						|
      this.tree.$emit('node-click', this.node.data, this.node, this); | 
						|
    }, | 
						|
    handleContextMenu: function handleContextMenu(event) { | 
						|
      if (this.tree._events['node-contextmenu'] && this.tree._events['node-contextmenu'].length > 0) { | 
						|
        event.stopPropagation(); | 
						|
        event.preventDefault(); | 
						|
      } | 
						|
      this.tree.$emit('node-contextmenu', event, this.node.data, this.node, this); | 
						|
    }, | 
						|
    handleExpandIconClick: function handleExpandIconClick() { | 
						|
      if (this.node.isLeaf) return; | 
						|
      if (this.expanded) { | 
						|
        this.tree.$emit('node-collapse', this.node.data, this.node, this); | 
						|
        this.node.collapse(); | 
						|
      } else { | 
						|
        this.node.expand(); | 
						|
        this.$emit('node-expand', this.node.data, this.node, this); | 
						|
      } | 
						|
    }, | 
						|
    handleCheckChange: function handleCheckChange(value, ev) { | 
						|
      var _this2 = this; | 
						|
 | 
						|
      this.node.setChecked(ev.target.checked, !this.tree.checkStrictly); | 
						|
      this.$nextTick(function () { | 
						|
        var store = _this2.tree.store; | 
						|
        _this2.tree.$emit('check', _this2.node.data, { | 
						|
          checkedNodes: store.getCheckedNodes(), | 
						|
          checkedKeys: store.getCheckedKeys(), | 
						|
          halfCheckedNodes: store.getHalfCheckedNodes(), | 
						|
          halfCheckedKeys: store.getHalfCheckedKeys() | 
						|
        }); | 
						|
      }); | 
						|
    }, | 
						|
    handleChildNodeExpand: function handleChildNodeExpand(nodeData, node, instance) { | 
						|
      this.broadcast('ElTreeNode', 'tree-node-expand', node); | 
						|
      this.tree.$emit('node-expand', nodeData, node, instance); | 
						|
    }, | 
						|
    handleDragStart: function handleDragStart(event) { | 
						|
      if (!this.tree.draggable) return; | 
						|
      this.tree.$emit('tree-node-drag-start', event, this); | 
						|
    }, | 
						|
    handleDragOver: function handleDragOver(event) { | 
						|
      if (!this.tree.draggable) return; | 
						|
      this.tree.$emit('tree-node-drag-over', event, this); | 
						|
      event.preventDefault(); | 
						|
    }, | 
						|
    handleDrop: function handleDrop(event) { | 
						|
      event.preventDefault(); | 
						|
    }, | 
						|
    handleDragEnd: function handleDragEnd(event) { | 
						|
      if (!this.tree.draggable) return; | 
						|
      this.tree.$emit('tree-node-drag-end', event, this); | 
						|
    } | 
						|
  }, | 
						|
 | 
						|
  created: function created() { | 
						|
    var _this3 = this; | 
						|
 | 
						|
    var parent = this.$parent; | 
						|
 | 
						|
    if (parent.isTree) { | 
						|
      this.tree = parent; | 
						|
    } else { | 
						|
      this.tree = parent.tree; | 
						|
    } | 
						|
 | 
						|
    var tree = this.tree; | 
						|
    if (!tree) { | 
						|
      console.warn('Can not find node\'s tree.'); | 
						|
    } | 
						|
 | 
						|
    var props = tree.props || {}; | 
						|
    var childrenKey = props['children'] || 'children'; | 
						|
 | 
						|
    this.$watch('node.data.' + childrenKey, function () { | 
						|
      _this3.node.updateChildren(); | 
						|
    }); | 
						|
 | 
						|
    if (this.node.expanded) { | 
						|
      this.expanded = true; | 
						|
      this.childNodeRendered = true; | 
						|
    } | 
						|
 | 
						|
    if (this.tree.accordion) { | 
						|
      this.$on('tree-node-expand', function (node) { | 
						|
        if (_this3.node !== node) { | 
						|
          _this3.node.collapse(); | 
						|
        } | 
						|
      }); | 
						|
    } | 
						|
  } | 
						|
}); | 
						|
// CONCATENATED MODULE: ./packages/tree/src/tree-node.vue?vue&type=script&lang=js& | 
						|
 /* harmony default export */ var src_tree_nodevue_type_script_lang_js_ = (tree_nodevue_type_script_lang_js_);  | 
						|
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js | 
						|
var componentNormalizer = __webpack_require__(0); | 
						|
 | 
						|
// CONCATENATED MODULE: ./packages/tree/src/tree-node.vue | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* normalize component */ | 
						|
 | 
						|
var component = Object(componentNormalizer["a" /* default */])( | 
						|
  src_tree_nodevue_type_script_lang_js_, | 
						|
  tree_nodevue_type_template_id_3ba3ef0e_render, | 
						|
  tree_nodevue_type_template_id_3ba3ef0e_staticRenderFns, | 
						|
  false, | 
						|
  null, | 
						|
  null, | 
						|
  null | 
						|
   | 
						|
) | 
						|
 | 
						|
/* hot reload */ | 
						|
if (false) { var api; } | 
						|
component.options.__file = "packages/tree/src/tree-node.vue" | 
						|
/* harmony default export */ var tree_node = (component.exports); | 
						|
// EXTERNAL MODULE: external "element-ui/lib/locale" | 
						|
var locale_ = __webpack_require__(19); | 
						|
 | 
						|
// EXTERNAL MODULE: external "element-ui/lib/utils/dom" | 
						|
var dom_ = __webpack_require__(2); | 
						|
 | 
						|
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/tree/src/tree.vue?vue&type=script&lang=js& | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
// | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* harmony default export */ var treevue_type_script_lang_js_ = ({ | 
						|
  name: 'ElTree', | 
						|
 | 
						|
  mixins: [emitter_default.a], | 
						|
 | 
						|
  components: { | 
						|
    ElTreeNode: tree_node | 
						|
  }, | 
						|
 | 
						|
  data: function data() { | 
						|
    return { | 
						|
      store: null, | 
						|
      root: null, | 
						|
      currentNode: null, | 
						|
      treeItems: null, | 
						|
      checkboxItems: [], | 
						|
      dragState: { | 
						|
        showDropIndicator: false, | 
						|
        draggingNode: null, | 
						|
        dropNode: null, | 
						|
        allowDrop: true | 
						|
      } | 
						|
    }; | 
						|
  }, | 
						|
 | 
						|
 | 
						|
  props: { | 
						|
    data: { | 
						|
      type: Array | 
						|
    }, | 
						|
    emptyText: { | 
						|
      type: String, | 
						|
      default: function _default() { | 
						|
        return Object(locale_["t"])('el.tree.emptyText'); | 
						|
      } | 
						|
    }, | 
						|
    renderAfterExpand: { | 
						|
      type: Boolean, | 
						|
      default: true | 
						|
    }, | 
						|
    nodeKey: String, | 
						|
    checkStrictly: Boolean, | 
						|
    defaultExpandAll: Boolean, | 
						|
    expandOnClickNode: { | 
						|
      type: Boolean, | 
						|
      default: true | 
						|
    }, | 
						|
    checkOnClickNode: Boolean, | 
						|
    checkDescendants: { | 
						|
      type: Boolean, | 
						|
      default: false | 
						|
    }, | 
						|
    autoExpandParent: { | 
						|
      type: Boolean, | 
						|
      default: true | 
						|
    }, | 
						|
    defaultCheckedKeys: Array, | 
						|
    defaultExpandedKeys: Array, | 
						|
    currentNodeKey: [String, Number], | 
						|
    renderContent: Function, | 
						|
    showCheckbox: { | 
						|
      type: Boolean, | 
						|
      default: false | 
						|
    }, | 
						|
    draggable: { | 
						|
      type: Boolean, | 
						|
      default: false | 
						|
    }, | 
						|
    allowDrag: Function, | 
						|
    allowDrop: Function, | 
						|
    props: { | 
						|
      default: function _default() { | 
						|
        return { | 
						|
          children: 'children', | 
						|
          label: 'label', | 
						|
          disabled: 'disabled' | 
						|
        }; | 
						|
      } | 
						|
    }, | 
						|
    lazy: { | 
						|
      type: Boolean, | 
						|
      default: false | 
						|
    }, | 
						|
    highlightCurrent: Boolean, | 
						|
    load: Function, | 
						|
    filterNodeMethod: Function, | 
						|
    accordion: Boolean, | 
						|
    indent: { | 
						|
      type: Number, | 
						|
      default: 18 | 
						|
    }, | 
						|
    iconClass: String | 
						|
  }, | 
						|
 | 
						|
  computed: { | 
						|
    children: { | 
						|
      set: function set(value) { | 
						|
        this.data = value; | 
						|
      }, | 
						|
      get: function get() { | 
						|
        return this.data; | 
						|
      } | 
						|
    }, | 
						|
 | 
						|
    treeItemArray: function treeItemArray() { | 
						|
      return Array.prototype.slice.call(this.treeItems); | 
						|
    }, | 
						|
    isEmpty: function isEmpty() { | 
						|
      var childNodes = this.root.childNodes; | 
						|
 | 
						|
      return !childNodes || childNodes.length === 0 || childNodes.every(function (_ref) { | 
						|
        var visible = _ref.visible; | 
						|
        return !visible; | 
						|
      }); | 
						|
    } | 
						|
  }, | 
						|
 | 
						|
  watch: { | 
						|
    defaultCheckedKeys: function defaultCheckedKeys(newVal) { | 
						|
      this.store.setDefaultCheckedKey(newVal); | 
						|
    }, | 
						|
    defaultExpandedKeys: function defaultExpandedKeys(newVal) { | 
						|
      this.store.defaultExpandedKeys = newVal; | 
						|
      this.store.setDefaultExpandedKeys(newVal); | 
						|
    }, | 
						|
    data: function data(newVal) { | 
						|
      this.store.setData(newVal); | 
						|
    }, | 
						|
    checkboxItems: function checkboxItems(val) { | 
						|
      Array.prototype.forEach.call(val, function (checkbox) { | 
						|
        checkbox.setAttribute('tabindex', -1); | 
						|
      }); | 
						|
    }, | 
						|
    checkStrictly: function checkStrictly(newVal) { | 
						|
      this.store.checkStrictly = newVal; | 
						|
    } | 
						|
  }, | 
						|
 | 
						|
  methods: { | 
						|
    filter: function filter(value) { | 
						|
      if (!this.filterNodeMethod) throw new Error('[Tree] filterNodeMethod is required when filter'); | 
						|
      this.store.filter(value); | 
						|
    }, | 
						|
    getNodeKey: function getNodeKey(node) { | 
						|
      return util_getNodeKey(this.nodeKey, node.data); | 
						|
    }, | 
						|
    getNodePath: function getNodePath(data) { | 
						|
      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getNodePath'); | 
						|
      var node = this.store.getNode(data); | 
						|
      if (!node) return []; | 
						|
      var path = [node.data]; | 
						|
      var parent = node.parent; | 
						|
      while (parent && parent !== this.root) { | 
						|
        path.push(parent.data); | 
						|
        parent = parent.parent; | 
						|
      } | 
						|
      return path.reverse(); | 
						|
    }, | 
						|
    getCheckedNodes: function getCheckedNodes(leafOnly, includeHalfChecked) { | 
						|
      return this.store.getCheckedNodes(leafOnly, includeHalfChecked); | 
						|
    }, | 
						|
    getCheckedKeys: function getCheckedKeys(leafOnly) { | 
						|
      return this.store.getCheckedKeys(leafOnly); | 
						|
    }, | 
						|
    getCurrentNode: function getCurrentNode() { | 
						|
      var currentNode = this.store.getCurrentNode(); | 
						|
      return currentNode ? currentNode.data : null; | 
						|
    }, | 
						|
    getCurrentKey: function getCurrentKey() { | 
						|
      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getCurrentKey'); | 
						|
      var currentNode = this.getCurrentNode(); | 
						|
      return currentNode ? currentNode[this.nodeKey] : null; | 
						|
    }, | 
						|
    setCheckedNodes: function setCheckedNodes(nodes, leafOnly) { | 
						|
      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedNodes'); | 
						|
      this.store.setCheckedNodes(nodes, leafOnly); | 
						|
    }, | 
						|
    setCheckedKeys: function setCheckedKeys(keys, leafOnly) { | 
						|
      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedKeys'); | 
						|
      this.store.setCheckedKeys(keys, leafOnly); | 
						|
    }, | 
						|
    setChecked: function setChecked(data, checked, deep) { | 
						|
      this.store.setChecked(data, checked, deep); | 
						|
    }, | 
						|
    getHalfCheckedNodes: function getHalfCheckedNodes() { | 
						|
      return this.store.getHalfCheckedNodes(); | 
						|
    }, | 
						|
    getHalfCheckedKeys: function getHalfCheckedKeys() { | 
						|
      return this.store.getHalfCheckedKeys(); | 
						|
    }, | 
						|
    setCurrentNode: function setCurrentNode(node) { | 
						|
      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentNode'); | 
						|
      this.store.setUserCurrentNode(node); | 
						|
    }, | 
						|
    setCurrentKey: function setCurrentKey(key) { | 
						|
      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentKey'); | 
						|
      this.store.setCurrentNodeKey(key); | 
						|
    }, | 
						|
    getNode: function getNode(data) { | 
						|
      return this.store.getNode(data); | 
						|
    }, | 
						|
    remove: function remove(data) { | 
						|
      this.store.remove(data); | 
						|
    }, | 
						|
    append: function append(data, parentNode) { | 
						|
      this.store.append(data, parentNode); | 
						|
    }, | 
						|
    insertBefore: function insertBefore(data, refNode) { | 
						|
      this.store.insertBefore(data, refNode); | 
						|
    }, | 
						|
    insertAfter: function insertAfter(data, refNode) { | 
						|
      this.store.insertAfter(data, refNode); | 
						|
    }, | 
						|
    handleNodeExpand: function handleNodeExpand(nodeData, node, instance) { | 
						|
      this.broadcast('ElTreeNode', 'tree-node-expand', node); | 
						|
      this.$emit('node-expand', nodeData, node, instance); | 
						|
    }, | 
						|
    updateKeyChildren: function updateKeyChildren(key, data) { | 
						|
      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in updateKeyChild'); | 
						|
      this.store.updateChildren(key, data); | 
						|
    }, | 
						|
    initTabIndex: function initTabIndex() { | 
						|
      this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]'); | 
						|
      this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]'); | 
						|
      var checkedItem = this.$el.querySelectorAll('.is-checked[role=treeitem]'); | 
						|
      if (checkedItem.length) { | 
						|
        checkedItem[0].setAttribute('tabindex', 0); | 
						|
        return; | 
						|
      } | 
						|
      this.treeItems[0] && this.treeItems[0].setAttribute('tabindex', 0); | 
						|
    }, | 
						|
    handleKeydown: function handleKeydown(ev) { | 
						|
      var currentItem = ev.target; | 
						|
      if (currentItem.className.indexOf('el-tree-node') === -1) return; | 
						|
      var keyCode = ev.keyCode; | 
						|
      this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]'); | 
						|
      var currentIndex = this.treeItemArray.indexOf(currentItem); | 
						|
      var nextIndex = void 0; | 
						|
      if ([38, 40].indexOf(keyCode) > -1) { | 
						|
        // up、down | 
						|
        ev.preventDefault(); | 
						|
        if (keyCode === 38) { | 
						|
          // up | 
						|
          nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0; | 
						|
        } else { | 
						|
          nextIndex = currentIndex < this.treeItemArray.length - 1 ? currentIndex + 1 : 0; | 
						|
        } | 
						|
        this.treeItemArray[nextIndex].focus(); // 选中 | 
						|
      } | 
						|
      if ([37, 39].indexOf(keyCode) > -1) { | 
						|
        // left、right 展开 | 
						|
        ev.preventDefault(); | 
						|
        currentItem.click(); // 选中 | 
						|
      } | 
						|
      var hasInput = currentItem.querySelector('[type="checkbox"]'); | 
						|
      if ([13, 32].indexOf(keyCode) > -1 && hasInput) { | 
						|
        // space enter选中checkbox | 
						|
        ev.preventDefault(); | 
						|
        hasInput.click(); | 
						|
      } | 
						|
    } | 
						|
  }, | 
						|
 | 
						|
  created: function created() { | 
						|
    var _this = this; | 
						|
 | 
						|
    this.isTree = true; | 
						|
 | 
						|
    this.store = new tree_store({ | 
						|
      key: this.nodeKey, | 
						|
      data: this.data, | 
						|
      lazy: this.lazy, | 
						|
      props: this.props, | 
						|
      load: this.load, | 
						|
      currentNodeKey: this.currentNodeKey, | 
						|
      checkStrictly: this.checkStrictly, | 
						|
      checkDescendants: this.checkDescendants, | 
						|
      defaultCheckedKeys: this.defaultCheckedKeys, | 
						|
      defaultExpandedKeys: this.defaultExpandedKeys, | 
						|
      autoExpandParent: this.autoExpandParent, | 
						|
      defaultExpandAll: this.defaultExpandAll, | 
						|
      filterNodeMethod: this.filterNodeMethod | 
						|
    }); | 
						|
 | 
						|
    this.root = this.store.root; | 
						|
 | 
						|
    var dragState = this.dragState; | 
						|
    this.$on('tree-node-drag-start', function (event, treeNode) { | 
						|
      if (typeof _this.allowDrag === 'function' && !_this.allowDrag(treeNode.node)) { | 
						|
        event.preventDefault(); | 
						|
        return false; | 
						|
      } | 
						|
      event.dataTransfer.effectAllowed = 'move'; | 
						|
 | 
						|
      // wrap in try catch to address IE's error when first param is 'text/plain' | 
						|
      try { | 
						|
        // setData is required for draggable to work in FireFox | 
						|
        // the content has to be '' so dragging a node out of the tree won't open a new tab in FireFox | 
						|
        event.dataTransfer.setData('text/plain', ''); | 
						|
      } catch (e) {} | 
						|
      dragState.draggingNode = treeNode; | 
						|
      _this.$emit('node-drag-start', treeNode.node, event); | 
						|
    }); | 
						|
 | 
						|
    this.$on('tree-node-drag-over', function (event, treeNode) { | 
						|
      var dropNode = findNearestComponent(event.target, 'ElTreeNode'); | 
						|
      var oldDropNode = dragState.dropNode; | 
						|
      if (oldDropNode && oldDropNode !== dropNode) { | 
						|
        Object(dom_["removeClass"])(oldDropNode.$el, 'is-drop-inner'); | 
						|
      } | 
						|
      var draggingNode = dragState.draggingNode; | 
						|
      if (!draggingNode || !dropNode) return; | 
						|
 | 
						|
      var dropPrev = true; | 
						|
      var dropInner = true; | 
						|
      var dropNext = true; | 
						|
      var userAllowDropInner = true; | 
						|
      if (typeof _this.allowDrop === 'function') { | 
						|
        dropPrev = _this.allowDrop(draggingNode.node, dropNode.node, 'prev'); | 
						|
        userAllowDropInner = dropInner = _this.allowDrop(draggingNode.node, dropNode.node, 'inner'); | 
						|
        dropNext = _this.allowDrop(draggingNode.node, dropNode.node, 'next'); | 
						|
      } | 
						|
      event.dataTransfer.dropEffect = dropInner ? 'move' : 'none'; | 
						|
      if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) { | 
						|
        if (oldDropNode) { | 
						|
          _this.$emit('node-drag-leave', draggingNode.node, oldDropNode.node, event); | 
						|
        } | 
						|
        _this.$emit('node-drag-enter', draggingNode.node, dropNode.node, event); | 
						|
      } | 
						|
 | 
						|
      if (dropPrev || dropInner || dropNext) { | 
						|
        dragState.dropNode = dropNode; | 
						|
      } | 
						|
 | 
						|
      if (dropNode.node.nextSibling === draggingNode.node) { | 
						|
        dropNext = false; | 
						|
      } | 
						|
      if (dropNode.node.previousSibling === draggingNode.node) { | 
						|
        dropPrev = false; | 
						|
      } | 
						|
      if (dropNode.node.contains(draggingNode.node, false)) { | 
						|
        dropInner = false; | 
						|
      } | 
						|
      if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) { | 
						|
        dropPrev = false; | 
						|
        dropInner = false; | 
						|
        dropNext = false; | 
						|
      } | 
						|
 | 
						|
      var targetPosition = dropNode.$el.getBoundingClientRect(); | 
						|
      var treePosition = _this.$el.getBoundingClientRect(); | 
						|
 | 
						|
      var dropType = void 0; | 
						|
      var prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1; | 
						|
      var nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1; | 
						|
 | 
						|
      var indicatorTop = -9999; | 
						|
      var distance = event.clientY - targetPosition.top; | 
						|
      if (distance < targetPosition.height * prevPercent) { | 
						|
        dropType = 'before'; | 
						|
      } else if (distance > targetPosition.height * nextPercent) { | 
						|
        dropType = 'after'; | 
						|
      } else if (dropInner) { | 
						|
        dropType = 'inner'; | 
						|
      } else { | 
						|
        dropType = 'none'; | 
						|
      } | 
						|
 | 
						|
      var iconPosition = dropNode.$el.querySelector('.el-tree-node__expand-icon').getBoundingClientRect(); | 
						|
      var dropIndicator = _this.$refs.dropIndicator; | 
						|
      if (dropType === 'before') { | 
						|
        indicatorTop = iconPosition.top - treePosition.top; | 
						|
      } else if (dropType === 'after') { | 
						|
        indicatorTop = iconPosition.bottom - treePosition.top; | 
						|
      } | 
						|
      dropIndicator.style.top = indicatorTop + 'px'; | 
						|
      dropIndicator.style.left = iconPosition.right - treePosition.left + 'px'; | 
						|
 | 
						|
      if (dropType === 'inner') { | 
						|
        Object(dom_["addClass"])(dropNode.$el, 'is-drop-inner'); | 
						|
      } else { | 
						|
        Object(dom_["removeClass"])(dropNode.$el, 'is-drop-inner'); | 
						|
      } | 
						|
 | 
						|
      dragState.showDropIndicator = dropType === 'before' || dropType === 'after'; | 
						|
      dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner; | 
						|
      dragState.dropType = dropType; | 
						|
      _this.$emit('node-drag-over', draggingNode.node, dropNode.node, event); | 
						|
    }); | 
						|
 | 
						|
    this.$on('tree-node-drag-end', function (event) { | 
						|
      var draggingNode = dragState.draggingNode, | 
						|
          dropType = dragState.dropType, | 
						|
          dropNode = dragState.dropNode; | 
						|
 | 
						|
      event.preventDefault(); | 
						|
      event.dataTransfer.dropEffect = 'move'; | 
						|
 | 
						|
      if (draggingNode && dropNode) { | 
						|
        var draggingNodeCopy = { data: draggingNode.node.data }; | 
						|
        if (dropType !== 'none') { | 
						|
          draggingNode.node.remove(); | 
						|
        } | 
						|
        if (dropType === 'before') { | 
						|
          dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node); | 
						|
        } else if (dropType === 'after') { | 
						|
          dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node); | 
						|
        } else if (dropType === 'inner') { | 
						|
          dropNode.node.insertChild(draggingNodeCopy); | 
						|
        } | 
						|
        if (dropType !== 'none') { | 
						|
          _this.store.registerNode(draggingNodeCopy); | 
						|
        } | 
						|
 | 
						|
        Object(dom_["removeClass"])(dropNode.$el, 'is-drop-inner'); | 
						|
 | 
						|
        _this.$emit('node-drag-end', draggingNode.node, dropNode.node, dropType, event); | 
						|
        if (dropType !== 'none') { | 
						|
          _this.$emit('node-drop', draggingNode.node, dropNode.node, dropType, event); | 
						|
        } | 
						|
      } | 
						|
      if (draggingNode && !dropNode) { | 
						|
        _this.$emit('node-drag-end', draggingNode.node, null, dropType, event); | 
						|
      } | 
						|
 | 
						|
      dragState.showDropIndicator = false; | 
						|
      dragState.draggingNode = null; | 
						|
      dragState.dropNode = null; | 
						|
      dragState.allowDrop = true; | 
						|
    }); | 
						|
  }, | 
						|
  mounted: function mounted() { | 
						|
    this.initTabIndex(); | 
						|
    this.$el.addEventListener('keydown', this.handleKeydown); | 
						|
  }, | 
						|
  updated: function updated() { | 
						|
    this.treeItems = this.$el.querySelectorAll('[role=treeitem]'); | 
						|
    this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]'); | 
						|
  } | 
						|
}); | 
						|
// CONCATENATED MODULE: ./packages/tree/src/tree.vue?vue&type=script&lang=js& | 
						|
 /* harmony default export */ var src_treevue_type_script_lang_js_ = (treevue_type_script_lang_js_);  | 
						|
// CONCATENATED MODULE: ./packages/tree/src/tree.vue | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* normalize component */ | 
						|
 | 
						|
var tree_component = Object(componentNormalizer["a" /* default */])( | 
						|
  src_treevue_type_script_lang_js_, | 
						|
  render, | 
						|
  staticRenderFns, | 
						|
  false, | 
						|
  null, | 
						|
  null, | 
						|
  null | 
						|
   | 
						|
) | 
						|
 | 
						|
/* hot reload */ | 
						|
if (false) { var tree_api; } | 
						|
tree_component.options.__file = "packages/tree/src/tree.vue" | 
						|
/* harmony default export */ var tree = (tree_component.exports); | 
						|
// CONCATENATED MODULE: ./packages/tree/index.js | 
						|
 | 
						|
 | 
						|
/* istanbul ignore next */ | 
						|
tree.install = function (Vue) { | 
						|
  Vue.component(tree.name, tree); | 
						|
}; | 
						|
 | 
						|
/* harmony default export */ var packages_tree = __webpack_exports__["default"] = (tree); | 
						|
 | 
						|
/***/ }), | 
						|
 | 
						|
/***/ 9: | 
						|
/***/ (function(module, exports) { | 
						|
 | 
						|
module.exports = require("element-ui/lib/utils/merge"); | 
						|
 | 
						|
/***/ }) | 
						|
 | 
						|
/******/ }); |