123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265 |
- 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 = 60);
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ 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");
- /***/ }),
- /***/ 2:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/utils/dom");
- /***/ }),
- /***/ 20:
- /***/ (function(module, exports) {
- module.exports = require("element-ui/lib/locale");
- /***/ }),
- /***/ 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");
- /***/ }),
- /***/ 60:
- /***/ (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 || node.loading) 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.childNodes = [];
- _this5.doCreateChildren(children, defaultProps);
- _this5.loaded = true;
- _this5.loading = false;
- _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__(20);
- // 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");
- /***/ })
- /******/ });
|