1 | module.exports =
|
2 | (function(modules) {
|
3 |
|
4 | var installedModules = {};
|
5 |
|
6 |
|
7 | function __webpack_require__(moduleId) {
|
8 |
|
9 |
|
10 | if(installedModules[moduleId]) {
|
11 | return installedModules[moduleId].exports;
|
12 | }
|
13 |
|
14 | var module = installedModules[moduleId] = {
|
15 | i: moduleId,
|
16 | l: false,
|
17 | exports: {}
|
18 | };
|
19 |
|
20 |
|
21 | modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
22 |
|
23 |
|
24 | module.l = true;
|
25 |
|
26 |
|
27 | return module.exports;
|
28 | }
|
29 |
|
30 |
|
31 |
|
32 | __webpack_require__.m = modules;
|
33 |
|
34 |
|
35 | __webpack_require__.c = installedModules;
|
36 |
|
37 |
|
38 | __webpack_require__.d = function(exports, name, getter) {
|
39 | if(!__webpack_require__.o(exports, name)) {
|
40 | Object.defineProperty(exports, name, {
|
41 | configurable: false,
|
42 | enumerable: true,
|
43 | get: getter
|
44 | /******/ });
|
45 | /******/ }
|
46 | /******/ };
|
47 | /******/
|
48 | /******/ // getDefaultExport function for compatibility with non-harmony modules
|
49 | /******/ __webpack_require__.n = function(module) {
|
50 | var getter = module && module.__esModule ?
|
51 | function getDefault() { return module['default']; } :
|
52 | function getModuleExports() { return module; };
|
53 | __webpack_require__.d(getter, 'a', getter);
|
54 | return getter;
|
55 | };
|
56 |
|
57 |
|
58 | __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
59 |
|
60 |
|
61 | __webpack_require__.p = "/dist/";
|
62 |
|
63 |
|
64 | return __webpack_require__(__webpack_require__.s = 248);
|
65 | })
|
66 |
|
67 | ({
|
68 |
|
69 | 0:
|
70 | (function(module, exports) {
|
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 | module.exports = function normalizeComponent (
|
79 | rawScriptExports,
|
80 | compiledTemplate,
|
81 | functionalTemplate,
|
82 | injectStyles,
|
83 | scopeId,
|
84 | moduleIdentifier /* server only */
|
85 | ) {
|
86 | var esModule
|
87 | var scriptExports = rawScriptExports = rawScriptExports || {}
|
88 |
|
89 |
|
90 | var type = typeof rawScriptExports.default
|
91 | if (type === 'object' || type === 'function') {
|
92 | esModule = rawScriptExports
|
93 | scriptExports = rawScriptExports.default
|
94 | }
|
95 |
|
96 |
|
97 | var options = typeof scriptExports === 'function'
|
98 | ? scriptExports.options
|
99 | : scriptExports
|
100 |
|
101 |
|
102 | if (compiledTemplate) {
|
103 | options.render = compiledTemplate.render
|
104 | options.staticRenderFns = compiledTemplate.staticRenderFns
|
105 | options._compiled = true
|
106 | }
|
107 |
|
108 |
|
109 | if (functionalTemplate) {
|
110 | options.functional = true
|
111 | }
|
112 |
|
113 |
|
114 | if (scopeId) {
|
115 | options._scopeId = scopeId
|
116 | }
|
117 |
|
118 | var hook
|
119 | if (moduleIdentifier) {
|
120 | hook = function (context) {
|
121 |
|
122 | context =
|
123 | context ||
|
124 | (this.$vnode && this.$vnode.ssrContext) ||
|
125 | (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext)
|
126 |
|
127 | if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
128 | context = __VUE_SSR_CONTEXT__
|
129 | }
|
130 |
|
131 | if (injectStyles) {
|
132 | injectStyles.call(this, context)
|
133 | }
|
134 |
|
135 | if (context && context._registeredComponents) {
|
136 | context._registeredComponents.add(moduleIdentifier)
|
137 | }
|
138 | }
|
139 |
|
140 |
|
141 | options._ssrRegister = hook
|
142 | } else if (injectStyles) {
|
143 | hook = injectStyles
|
144 | }
|
145 |
|
146 | if (hook) {
|
147 | var functional = options.functional
|
148 | var existing = functional
|
149 | ? options.render
|
150 | : options.beforeCreate
|
151 |
|
152 | if (!functional) {
|
153 |
|
154 | options.beforeCreate = existing
|
155 | ? [].concat(existing, hook)
|
156 | : [hook]
|
157 | } else {
|
158 |
|
159 |
|
160 | options._injectStyles = hook
|
161 |
|
162 | options.render = function renderWithStyleInjection (h, context) {
|
163 | hook.call(context)
|
164 | return existing(h, context)
|
165 | }
|
166 | }
|
167 | }
|
168 |
|
169 | return {
|
170 | esModule: esModule,
|
171 | exports: scriptExports,
|
172 | options: options
|
173 | }
|
174 | }
|
175 |
|
176 |
|
177 | }),
|
178 |
|
179 | 1:
|
180 | (function(module, exports) {
|
181 |
|
182 | module.exports = require("element-ui/lib/mixins/emitter");
|
183 |
|
184 | }),
|
185 |
|
186 | 12:
|
187 | (function(module, exports) {
|
188 |
|
189 | module.exports = require("element-ui/lib/locale");
|
190 |
|
191 | }),
|
192 |
|
193 | 16:
|
194 | (function(module, exports) {
|
195 |
|
196 | module.exports = require("element-ui/lib/checkbox");
|
197 |
|
198 | }),
|
199 |
|
200 | 21:
|
201 | (function(module, exports) {
|
202 |
|
203 | module.exports = require("element-ui/lib/transitions/collapse-transition");
|
204 |
|
205 | }),
|
206 |
|
207 | 248:
|
208 | (function(module, exports, __webpack_require__) {
|
209 |
|
210 | "use strict";
|
211 |
|
212 |
|
213 | exports.__esModule = true;
|
214 |
|
215 | var _tree = __webpack_require__(249);
|
216 |
|
217 | var _tree2 = _interopRequireDefault(_tree);
|
218 |
|
219 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
220 |
|
221 |
|
222 | _tree2.default.install = function (Vue) {
|
223 | Vue.component(_tree2.default.name, _tree2.default);
|
224 | };
|
225 |
|
226 | exports.default = _tree2.default;
|
227 |
|
228 | }),
|
229 |
|
230 | 249:
|
231 | (function(module, __webpack_exports__, __webpack_require__) {
|
232 |
|
233 | "use strict";
|
234 | Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
235 | var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue__ = __webpack_require__(250);
|
236 | var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue__);
|
237 | var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a385d82e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_vue__ = __webpack_require__(256);
|
238 | var normalizeComponent = __webpack_require__(0)
|
239 |
|
240 |
|
241 |
|
242 |
|
243 |
|
244 | var __vue_template_functional__ = false
|
245 |
|
246 | var __vue_styles__ = null
|
247 |
|
248 | var __vue_scopeId__ = null
|
249 |
|
250 | var __vue_module_identifier__ = null
|
251 | var Component = normalizeComponent(
|
252 | __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue___default.a,
|
253 | __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a385d82e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_vue__["a" ],
|
254 | __vue_template_functional__,
|
255 | __vue_styles__,
|
256 | __vue_scopeId__,
|
257 | __vue_module_identifier__
|
258 | )
|
259 |
|
260 | __webpack_exports__["default"] = (Component.exports);
|
261 |
|
262 |
|
263 | }),
|
264 |
|
265 | 250:
|
266 | (function(module, exports, __webpack_require__) {
|
267 |
|
268 | "use strict";
|
269 |
|
270 |
|
271 | exports.__esModule = true;
|
272 |
|
273 | var _treeStore = __webpack_require__(251);
|
274 |
|
275 | var _treeStore2 = _interopRequireDefault(_treeStore);
|
276 |
|
277 | var _util = __webpack_require__(33);
|
278 |
|
279 | var _treeNode = __webpack_require__(253);
|
280 |
|
281 | var _treeNode2 = _interopRequireDefault(_treeNode);
|
282 |
|
283 | var _locale = __webpack_require__(12);
|
284 |
|
285 | var _emitter = __webpack_require__(1);
|
286 |
|
287 | var _emitter2 = _interopRequireDefault(_emitter);
|
288 |
|
289 | var _dom = __webpack_require__(3);
|
290 |
|
291 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
292 |
|
293 |
|
294 |
|
295 |
|
296 |
|
297 |
|
298 |
|
299 |
|
300 |
|
301 |
|
302 |
|
303 |
|
304 |
|
305 |
|
306 |
|
307 |
|
308 |
|
309 |
|
310 |
|
311 |
|
312 |
|
313 |
|
314 |
|
315 |
|
316 |
|
317 |
|
318 |
|
319 |
|
320 |
|
321 |
|
322 |
|
323 |
|
324 |
|
325 | exports.default = {
|
326 | name: 'ElTree',
|
327 |
|
328 | mixins: [_emitter2.default],
|
329 |
|
330 | components: {
|
331 | ElTreeNode: _treeNode2.default
|
332 | },
|
333 |
|
334 | data: function data() {
|
335 | return {
|
336 | store: null,
|
337 | root: null,
|
338 | currentNode: null,
|
339 | treeItems: null,
|
340 | checkboxItems: [],
|
341 | dragState: {
|
342 | showDropIndicator: false,
|
343 | draggingNode: null,
|
344 | dropNode: null,
|
345 | allowDrop: true
|
346 | }
|
347 | };
|
348 | },
|
349 |
|
350 |
|
351 | props: {
|
352 | data: {
|
353 | type: Array
|
354 | },
|
355 | emptyText: {
|
356 | type: String,
|
357 | default: function _default() {
|
358 | return (0, _locale.t)('el.tree.emptyText');
|
359 | }
|
360 | },
|
361 | renderAfterExpand: {
|
362 | type: Boolean,
|
363 | default: true
|
364 | },
|
365 | nodeKey: String,
|
366 | checkStrictly: Boolean,
|
367 | defaultExpandAll: Boolean,
|
368 | expandOnClickNode: {
|
369 | type: Boolean,
|
370 | default: true
|
371 | },
|
372 | checkOnClickNode: Boolean,
|
373 | checkDescendants: {
|
374 | type: Boolean,
|
375 | default: false
|
376 | },
|
377 | autoExpandParent: {
|
378 | type: Boolean,
|
379 | default: true
|
380 | },
|
381 | defaultCheckedKeys: Array,
|
382 | defaultExpandedKeys: Array,
|
383 | renderContent: Function,
|
384 | showCheckbox: {
|
385 | type: Boolean,
|
386 | default: false
|
387 | },
|
388 | draggable: {
|
389 | type: Boolean,
|
390 | default: false
|
391 | },
|
392 | allowDrag: Function,
|
393 | allowDrop: Function,
|
394 | props: {
|
395 | default: function _default() {
|
396 | return {
|
397 | children: 'children',
|
398 | label: 'label',
|
399 | icon: 'icon',
|
400 | disabled: 'disabled'
|
401 | };
|
402 | }
|
403 | },
|
404 | lazy: {
|
405 | type: Boolean,
|
406 | default: false
|
407 | },
|
408 | highlightCurrent: Boolean,
|
409 | load: Function,
|
410 | filterNodeMethod: Function,
|
411 | accordion: Boolean,
|
412 | indent: {
|
413 | type: Number,
|
414 | default: 18
|
415 | }
|
416 | },
|
417 |
|
418 | computed: {
|
419 | children: {
|
420 | set: function set(value) {
|
421 | this.data = value;
|
422 | },
|
423 | get: function get() {
|
424 | return this.data;
|
425 | }
|
426 | },
|
427 |
|
428 | treeItemArray: function treeItemArray() {
|
429 | return Array.prototype.slice.call(this.treeItems);
|
430 | },
|
431 | isEmpty: function isEmpty() {
|
432 | var childNodes = this.root.childNodes;
|
433 |
|
434 | return !childNodes || childNodes.length === 0 || childNodes.every(function (_ref) {
|
435 | var visible = _ref.visible;
|
436 | return !visible;
|
437 | });
|
438 | }
|
439 | },
|
440 |
|
441 | watch: {
|
442 | defaultCheckedKeys: function defaultCheckedKeys(newVal) {
|
443 | this.store.setDefaultCheckedKey(newVal);
|
444 | },
|
445 | defaultExpandedKeys: function defaultExpandedKeys(newVal) {
|
446 | this.store.defaultExpandedKeys = newVal;
|
447 | this.store.setDefaultExpandedKeys(newVal);
|
448 | },
|
449 | data: function data(newVal) {
|
450 | this.store.setData(newVal);
|
451 | },
|
452 | checkboxItems: function checkboxItems(val) {
|
453 | Array.prototype.forEach.call(val, function (checkbox) {
|
454 | checkbox.setAttribute('tabindex', -1);
|
455 | });
|
456 | },
|
457 | checkStrictly: function checkStrictly(newVal) {
|
458 | this.store.checkStrictly = newVal;
|
459 | }
|
460 | },
|
461 |
|
462 | methods: {
|
463 | filter: function filter(value) {
|
464 | if (!this.filterNodeMethod) throw new Error('[Tree] filterNodeMethod is required when filter');
|
465 | this.store.filter(value);
|
466 | },
|
467 | getNodeKey: function getNodeKey(node) {
|
468 | return (0, _util.getNodeKey)(this.nodeKey, node.data);
|
469 | },
|
470 | getNodePath: function getNodePath(data) {
|
471 | if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getNodePath');
|
472 | var node = this.store.getNode(data);
|
473 | if (!node) return [];
|
474 | var path = [node.data];
|
475 | var parent = node.parent;
|
476 | while (parent && parent !== this.root) {
|
477 | path.push(parent.data);
|
478 | parent = parent.parent;
|
479 | }
|
480 | return path.reverse();
|
481 | },
|
482 | getCheckedNodes: function getCheckedNodes(leafOnly, includeHalfChecked) {
|
483 | return this.store.getCheckedNodes(leafOnly, includeHalfChecked);
|
484 | },
|
485 | getCheckedKeys: function getCheckedKeys(leafOnly) {
|
486 | return this.store.getCheckedKeys(leafOnly);
|
487 | },
|
488 | getCurrentNode: function getCurrentNode() {
|
489 | var currentNode = this.store.getCurrentNode();
|
490 | return currentNode ? currentNode.data : null;
|
491 | },
|
492 | getCurrentKey: function getCurrentKey() {
|
493 | if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getCurrentKey');
|
494 | var currentNode = this.getCurrentNode();
|
495 | return currentNode ? currentNode[this.nodeKey] : null;
|
496 | },
|
497 | setCheckedNodes: function setCheckedNodes(nodes, leafOnly) {
|
498 | if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedNodes');
|
499 | this.store.setCheckedNodes(nodes, leafOnly);
|
500 | },
|
501 | setCheckedKeys: function setCheckedKeys(keys, leafOnly) {
|
502 | if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedKeys');
|
503 | this.store.setCheckedKeys(keys, leafOnly);
|
504 | },
|
505 | setChecked: function setChecked(data, checked, deep) {
|
506 | this.store.setChecked(data, checked, deep);
|
507 | },
|
508 | getHalfCheckedNodes: function getHalfCheckedNodes() {
|
509 | return this.store.getHalfCheckedNodes();
|
510 | },
|
511 | getHalfCheckedKeys: function getHalfCheckedKeys() {
|
512 | return this.store.getHalfCheckedKeys();
|
513 | },
|
514 | setCurrentNode: function setCurrentNode(node) {
|
515 | if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentNode');
|
516 | this.store.setUserCurrentNode(node);
|
517 | },
|
518 | setCurrentKey: function setCurrentKey(key) {
|
519 | if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentKey');
|
520 | this.store.setCurrentNodeKey(key);
|
521 | },
|
522 | getNode: function getNode(data) {
|
523 | return this.store.getNode(data);
|
524 | },
|
525 | remove: function remove(data) {
|
526 | this.store.remove(data);
|
527 | },
|
528 | append: function append(data, parentNode) {
|
529 | this.store.append(data, parentNode);
|
530 | },
|
531 | insertBefore: function insertBefore(data, refNode) {
|
532 | this.store.insertBefore(data, refNode);
|
533 | },
|
534 | insertAfter: function insertAfter(data, refNode) {
|
535 | this.store.insertAfter(data, refNode);
|
536 | },
|
537 | handleNodeExpand: function handleNodeExpand(nodeData, node, instance) {
|
538 | this.broadcast('ElTreeNode', 'tree-node-expand', node);
|
539 | this.$emit('node-expand', nodeData, node, instance);
|
540 | },
|
541 | updateKeyChildren: function updateKeyChildren(key, data) {
|
542 | if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in updateKeyChild');
|
543 | this.store.updateChildren(key, data);
|
544 | },
|
545 | initTabIndex: function initTabIndex() {
|
546 | this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');
|
547 | this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');
|
548 | var checkedItem = this.$el.querySelectorAll('.is-checked[role=treeitem]');
|
549 | if (checkedItem.length) {
|
550 | checkedItem[0].setAttribute('tabindex', 0);
|
551 | return;
|
552 | }
|
553 | this.treeItems[0] && this.treeItems[0].setAttribute('tabindex', 0);
|
554 | },
|
555 | handleKeydown: function handleKeydown(ev) {
|
556 | var currentItem = ev.target;
|
557 | if (currentItem.className.indexOf('el-tree-node') === -1) return;
|
558 | var keyCode = ev.keyCode;
|
559 | this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');
|
560 | var currentIndex = this.treeItemArray.indexOf(currentItem);
|
561 | var nextIndex = void 0;
|
562 | if ([38, 40].indexOf(keyCode) > -1) {
|
563 |
|
564 | ev.preventDefault();
|
565 | if (keyCode === 38) {
|
566 |
|
567 | nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;
|
568 | } else {
|
569 | nextIndex = currentIndex < this.treeItemArray.length - 1 ? currentIndex + 1 : 0;
|
570 | }
|
571 | this.treeItemArray[nextIndex].focus();
|
572 | }
|
573 | if ([37, 39].indexOf(keyCode) > -1) {
|
574 |
|
575 | ev.preventDefault();
|
576 | currentItem.click();
|
577 | }
|
578 | var hasInput = currentItem.querySelector('[type="checkbox"]');
|
579 | if ([13, 32].indexOf(keyCode) > -1 && hasInput) {
|
580 |
|
581 | ev.preventDefault();
|
582 | hasInput.click();
|
583 | }
|
584 | }
|
585 | },
|
586 |
|
587 | created: function created() {
|
588 | var _this = this;
|
589 |
|
590 | this.isTree = true;
|
591 |
|
592 | this.store = new _treeStore2.default({
|
593 | key: this.nodeKey,
|
594 | data: this.data,
|
595 | lazy: this.lazy,
|
596 | props: this.props,
|
597 | load: this.load,
|
598 | currentNodeKey: this.currentNodeKey,
|
599 | checkStrictly: this.checkStrictly,
|
600 | checkDescendants: this.checkDescendants,
|
601 | defaultCheckedKeys: this.defaultCheckedKeys,
|
602 | defaultExpandedKeys: this.defaultExpandedKeys,
|
603 | autoExpandParent: this.autoExpandParent,
|
604 | defaultExpandAll: this.defaultExpandAll,
|
605 | filterNodeMethod: this.filterNodeMethod
|
606 | });
|
607 |
|
608 | this.root = this.store.root;
|
609 |
|
610 | var dragState = this.dragState;
|
611 | this.$on('tree-node-drag-start', function (event, treeNode) {
|
612 | if (typeof _this.allowDrag === 'function' && !_this.allowDrag(treeNode.node)) {
|
613 | event.preventDefault();
|
614 | return false;
|
615 | }
|
616 | event.dataTransfer.effectAllowed = 'move';
|
617 |
|
618 |
|
619 | try {
|
620 |
|
621 |
|
622 | event.dataTransfer.setData('text/plain', '');
|
623 | } catch (e) {}
|
624 | dragState.draggingNode = treeNode;
|
625 | _this.$emit('node-drag-start', treeNode.node, event);
|
626 | });
|
627 |
|
628 | this.$on('tree-node-drag-over', function (event, treeNode) {
|
629 | var dropNode = (0, _util.findNearestComponent)(event.target, 'ElTreeNode');
|
630 | var oldDropNode = dragState.dropNode;
|
631 | if (oldDropNode && oldDropNode !== dropNode) {
|
632 | (0, _dom.removeClass)(oldDropNode.$el, 'is-drop-inner');
|
633 | }
|
634 | var draggingNode = dragState.draggingNode;
|
635 | if (!draggingNode || !dropNode) return;
|
636 |
|
637 | var dropPrev = true;
|
638 | var dropInner = true;
|
639 | var dropNext = true;
|
640 | var userAllowDropInner = true;
|
641 | if (typeof _this.allowDrop === 'function') {
|
642 | dropPrev = _this.allowDrop(draggingNode.node, dropNode.node, 'prev');
|
643 | userAllowDropInner = dropInner = _this.allowDrop(draggingNode.node, dropNode.node, 'inner');
|
644 | dropNext = _this.allowDrop(draggingNode.node, dropNode.node, 'next');
|
645 | }
|
646 | event.dataTransfer.dropEffect = dropInner ? 'move' : 'none';
|
647 | if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) {
|
648 | if (oldDropNode) {
|
649 | _this.$emit('node-drag-leave', draggingNode.node, oldDropNode.node, event);
|
650 | }
|
651 | _this.$emit('node-drag-enter', draggingNode.node, dropNode.node, event);
|
652 | }
|
653 |
|
654 | if (dropPrev || dropInner || dropNext) {
|
655 | dragState.dropNode = dropNode;
|
656 | }
|
657 |
|
658 | if (dropNode.node.nextSibling === draggingNode.node) {
|
659 | dropNext = false;
|
660 | }
|
661 | if (dropNode.node.previousSibling === draggingNode.node) {
|
662 | dropPrev = false;
|
663 | }
|
664 | if (dropNode.node.contains(draggingNode.node, false)) {
|
665 | dropInner = false;
|
666 | }
|
667 | if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) {
|
668 | dropPrev = false;
|
669 | dropInner = false;
|
670 | dropNext = false;
|
671 | }
|
672 |
|
673 | var targetPosition = dropNode.$el.getBoundingClientRect();
|
674 | var treePosition = _this.$el.getBoundingClientRect();
|
675 |
|
676 | var dropType = void 0;
|
677 | var prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1;
|
678 | var nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1;
|
679 |
|
680 | var indicatorTop = -9999;
|
681 | var distance = event.clientY - targetPosition.top;
|
682 | if (distance < targetPosition.height * prevPercent) {
|
683 | dropType = 'before';
|
684 | } else if (distance > targetPosition.height * nextPercent) {
|
685 | dropType = 'after';
|
686 | } else if (dropInner) {
|
687 | dropType = 'inner';
|
688 | } else {
|
689 | dropType = 'none';
|
690 | }
|
691 |
|
692 | var dropIndicator = _this.$refs.dropIndicator;
|
693 | if (dropType === 'before') {
|
694 | indicatorTop = targetPosition.top - treePosition.top;
|
695 | } else if (dropType === 'after') {
|
696 | indicatorTop = targetPosition.bottom - treePosition.top;
|
697 | }
|
698 | dropIndicator.style.top = indicatorTop + 'px';
|
699 | dropIndicator.style.left = targetPosition.right - treePosition.left + 'px';
|
700 |
|
701 | if (dropType === 'inner') {
|
702 | (0, _dom.addClass)(dropNode.$el, 'is-drop-inner');
|
703 | } else {
|
704 | (0, _dom.removeClass)(dropNode.$el, 'is-drop-inner');
|
705 | }
|
706 |
|
707 | dragState.showDropIndicator = dropType === 'before' || dropType === 'after';
|
708 | dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner;
|
709 | dragState.dropType = dropType;
|
710 | _this.$emit('node-drag-over', draggingNode.node, dropNode.node, event);
|
711 | });
|
712 |
|
713 | this.$on('tree-node-drag-end', function (event) {
|
714 | var draggingNode = dragState.draggingNode,
|
715 | dropType = dragState.dropType,
|
716 | dropNode = dragState.dropNode;
|
717 |
|
718 | event.preventDefault();
|
719 | event.dataTransfer.dropEffect = 'move';
|
720 |
|
721 | if (draggingNode && dropNode) {
|
722 | var draggingNodeCopy = { data: draggingNode.node.data };
|
723 | if (dropType !== 'none') {
|
724 | draggingNode.node.remove();
|
725 | }
|
726 | if (dropType === 'before') {
|
727 | dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);
|
728 | } else if (dropType === 'after') {
|
729 | dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);
|
730 | } else if (dropType === 'inner') {
|
731 | dropNode.node.insertChild(draggingNodeCopy);
|
732 | }
|
733 | if (dropType !== 'none') {
|
734 | _this.store.registerNode(draggingNodeCopy);
|
735 | }
|
736 |
|
737 | (0, _dom.removeClass)(dropNode.$el, 'is-drop-inner');
|
738 |
|
739 | _this.$emit('node-drag-end', draggingNode.node, dropNode.node, dropType, event);
|
740 | if (dropType !== 'none') {
|
741 | _this.$emit('node-drop', draggingNode.node, dropNode.node, dropType, event);
|
742 | }
|
743 | }
|
744 | if (draggingNode && !dropNode) {
|
745 | _this.$emit('node-drag-end', draggingNode.node, null, dropType, event);
|
746 | }
|
747 |
|
748 | dragState.showDropIndicator = false;
|
749 | dragState.draggingNode = null;
|
750 | dragState.dropNode = null;
|
751 | dragState.allowDrop = true;
|
752 | });
|
753 | },
|
754 | mounted: function mounted() {
|
755 | this.initTabIndex();
|
756 | this.$el.addEventListener('keydown', this.handleKeydown);
|
757 | },
|
758 | updated: function updated() {
|
759 | this.treeItems = this.$el.querySelectorAll('[role=treeitem]');
|
760 | this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');
|
761 | }
|
762 | };
|
763 |
|
764 | }),
|
765 |
|
766 | 251:
|
767 | (function(module, exports, __webpack_require__) {
|
768 |
|
769 | "use strict";
|
770 |
|
771 |
|
772 | exports.__esModule = true;
|
773 |
|
774 | 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; };
|
775 |
|
776 | var _node = __webpack_require__(252);
|
777 |
|
778 | var _node2 = _interopRequireDefault(_node);
|
779 |
|
780 | var _util = __webpack_require__(33);
|
781 |
|
782 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
783 |
|
784 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
785 |
|
786 | var TreeStore = function () {
|
787 | function TreeStore(options) {
|
788 | var _this = this;
|
789 |
|
790 | _classCallCheck(this, TreeStore);
|
791 |
|
792 | this.currentNode = null;
|
793 | this.currentNodeKey = null;
|
794 |
|
795 | for (var option in options) {
|
796 | if (options.hasOwnProperty(option)) {
|
797 | this[option] = options[option];
|
798 | }
|
799 | }
|
800 |
|
801 | this.nodesMap = {};
|
802 |
|
803 | this.root = new _node2.default({
|
804 | data: this.data,
|
805 | store: this
|
806 | });
|
807 |
|
808 | if (this.lazy && this.load) {
|
809 | var loadFn = this.load;
|
810 | loadFn(this.root, function (data) {
|
811 | _this.root.doCreateChildren(data);
|
812 | _this._initDefaultCheckedNodes();
|
813 | });
|
814 | } else {
|
815 | this._initDefaultCheckedNodes();
|
816 | }
|
817 | }
|
818 |
|
819 | TreeStore.prototype.filter = function filter(value) {
|
820 | var filterNodeMethod = this.filterNodeMethod;
|
821 | var lazy = this.lazy;
|
822 | var traverse = function traverse(node) {
|
823 | var childNodes = node.root ? node.root.childNodes : node.childNodes;
|
824 |
|
825 | childNodes.forEach(function (child) {
|
826 | child.visible = filterNodeMethod.call(child, value, child.data, child);
|
827 |
|
828 | traverse(child);
|
829 | });
|
830 |
|
831 | if (!node.visible && childNodes.length) {
|
832 | var allHidden = true;
|
833 |
|
834 | childNodes.forEach(function (child) {
|
835 | if (child.visible) allHidden = false;
|
836 | });
|
837 |
|
838 | if (node.root) {
|
839 | node.root.visible = allHidden === false;
|
840 | } else {
|
841 | node.visible = allHidden === false;
|
842 | }
|
843 | }
|
844 | if (!value) return;
|
845 |
|
846 | if (node.visible && !node.isLeaf && !lazy) node.expand();
|
847 | };
|
848 |
|
849 | traverse(this);
|
850 | };
|
851 |
|
852 | TreeStore.prototype.setData = function setData(newVal) {
|
853 | var instanceChanged = newVal !== this.root.data;
|
854 | if (instanceChanged) {
|
855 | this.root.setData(newVal);
|
856 | this._initDefaultCheckedNodes();
|
857 | } else {
|
858 | this.root.updateChildren();
|
859 | }
|
860 | };
|
861 |
|
862 | TreeStore.prototype.getNode = function getNode(data) {
|
863 | if (data instanceof _node2.default) return data;
|
864 | var key = (typeof data === 'undefined' ? 'undefined' : _typeof(data)) !== 'object' ? data : (0, _util.getNodeKey)(this.key, data);
|
865 | return this.nodesMap[key] || null;
|
866 | };
|
867 |
|
868 | TreeStore.prototype.insertBefore = function insertBefore(data, refData) {
|
869 | var refNode = this.getNode(refData);
|
870 | refNode.parent.insertBefore({ data: data }, refNode);
|
871 | };
|
872 |
|
873 | TreeStore.prototype.insertAfter = function insertAfter(data, refData) {
|
874 | var refNode = this.getNode(refData);
|
875 | refNode.parent.insertAfter({ data: data }, refNode);
|
876 | };
|
877 |
|
878 | TreeStore.prototype.remove = function remove(data) {
|
879 | var node = this.getNode(data);
|
880 | if (node && node.parent) {
|
881 | node.parent.removeChild(node);
|
882 | }
|
883 | };
|
884 |
|
885 | TreeStore.prototype.append = function append(data, parentData) {
|
886 | var parentNode = parentData ? this.getNode(parentData) : this.root;
|
887 |
|
888 | if (parentNode) {
|
889 | parentNode.insertChild({ data: data });
|
890 | }
|
891 | };
|
892 |
|
893 | TreeStore.prototype._initDefaultCheckedNodes = function _initDefaultCheckedNodes() {
|
894 | var _this2 = this;
|
895 |
|
896 | var defaultCheckedKeys = this.defaultCheckedKeys || [];
|
897 | var nodesMap = this.nodesMap;
|
898 |
|
899 | defaultCheckedKeys.forEach(function (checkedKey) {
|
900 | var node = nodesMap[checkedKey];
|
901 |
|
902 | if (node) {
|
903 | node.setChecked(true, !_this2.checkStrictly);
|
904 | }
|
905 | });
|
906 | };
|
907 |
|
908 | TreeStore.prototype._initDefaultCheckedNode = function _initDefaultCheckedNode(node) {
|
909 | var defaultCheckedKeys = this.defaultCheckedKeys || [];
|
910 |
|
911 | if (defaultCheckedKeys.indexOf(node.key) !== -1) {
|
912 | node.setChecked(true, !this.checkStrictly);
|
913 | }
|
914 | };
|
915 |
|
916 | TreeStore.prototype.setDefaultCheckedKey = function setDefaultCheckedKey(newVal) {
|
917 | if (newVal !== this.defaultCheckedKeys) {
|
918 | this.defaultCheckedKeys = newVal;
|
919 | this._initDefaultCheckedNodes();
|
920 | }
|
921 | };
|
922 |
|
923 | TreeStore.prototype.registerNode = function registerNode(node) {
|
924 | var key = this.key;
|
925 | if (!key || !node || !node.data) return;
|
926 |
|
927 | var nodeKey = node.key;
|
928 | if (nodeKey !== undefined) this.nodesMap[node.key] = node;
|
929 | };
|
930 |
|
931 | TreeStore.prototype.deregisterNode = function deregisterNode(node) {
|
932 | var _this3 = this;
|
933 |
|
934 | var key = this.key;
|
935 | if (!key || !node || !node.data) return;
|
936 |
|
937 | node.childNodes.forEach(function (child) {
|
938 | _this3.deregisterNode(child);
|
939 | });
|
940 |
|
941 | delete this.nodesMap[node.key];
|
942 | };
|
943 |
|
944 | TreeStore.prototype.getCheckedNodes = function getCheckedNodes() {
|
945 | var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
946 | var includeHalfChecked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
947 |
|
948 | var checkedNodes = [];
|
949 | var traverse = function traverse(node) {
|
950 | var childNodes = node.root ? node.root.childNodes : node.childNodes;
|
951 |
|
952 | childNodes.forEach(function (child) {
|
953 | if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
|
954 | checkedNodes.push(child.data);
|
955 | }
|
956 |
|
957 | traverse(child);
|
958 | });
|
959 | };
|
960 |
|
961 | traverse(this);
|
962 |
|
963 | return checkedNodes;
|
964 | };
|
965 |
|
966 | TreeStore.prototype.getCheckedKeys = function getCheckedKeys() {
|
967 | var _this4 = this;
|
968 |
|
969 | var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
970 |
|
971 | return this.getCheckedNodes(leafOnly).map(function (data) {
|
972 | return (data || {})[_this4.key];
|
973 | });
|
974 | };
|
975 |
|
976 | TreeStore.prototype.getHalfCheckedNodes = function getHalfCheckedNodes() {
|
977 | var nodes = [];
|
978 | var traverse = function traverse(node) {
|
979 | var childNodes = node.root ? node.root.childNodes : node.childNodes;
|
980 |
|
981 | childNodes.forEach(function (child) {
|
982 | if (child.indeterminate) {
|
983 | nodes.push(child.data);
|
984 | }
|
985 |
|
986 | traverse(child);
|
987 | });
|
988 | };
|
989 |
|
990 | traverse(this);
|
991 |
|
992 | return nodes;
|
993 | };
|
994 |
|
995 | TreeStore.prototype.getHalfCheckedKeys = function getHalfCheckedKeys() {
|
996 | var _this5 = this;
|
997 |
|
998 | return this.getHalfCheckedNodes().map(function (data) {
|
999 | return (data || {})[_this5.key];
|
1000 | });
|
1001 | };
|
1002 |
|
1003 | TreeStore.prototype._getAllNodes = function _getAllNodes() {
|
1004 | var allNodes = [];
|
1005 | var nodesMap = this.nodesMap;
|
1006 | for (var nodeKey in nodesMap) {
|
1007 | if (nodesMap.hasOwnProperty(nodeKey)) {
|
1008 | allNodes.push(nodesMap[nodeKey]);
|
1009 | }
|
1010 | }
|
1011 |
|
1012 | return allNodes;
|
1013 | };
|
1014 |
|
1015 | TreeStore.prototype.updateChildren = function updateChildren(key, data) {
|
1016 | var node = this.nodesMap[key];
|
1017 | if (!node) return;
|
1018 | var childNodes = node.childNodes;
|
1019 | for (var i = childNodes.length - 1; i >= 0; i--) {
|
1020 | var child = childNodes[i];
|
1021 | this.remove(child.data);
|
1022 | }
|
1023 | for (var _i = 0, j = data.length; _i < j; _i++) {
|
1024 | var _child = data[_i];
|
1025 | this.append(_child, node.data);
|
1026 | }
|
1027 | };
|
1028 |
|
1029 | TreeStore.prototype._setCheckedKeys = function _setCheckedKeys(key) {
|
1030 | var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
1031 | var checkedKeys = arguments[2];
|
1032 |
|
1033 | var allNodes = this._getAllNodes().sort(function (a, b) {
|
1034 | return b.level - a.level;
|
1035 | });
|
1036 | var cache = Object.create(null);
|
1037 | var keys = Object.keys(checkedKeys);
|
1038 | allNodes.forEach(function (node) {
|
1039 | return node.setChecked(false, false);
|
1040 | });
|
1041 | for (var i = 0, j = allNodes.length; i < j; i++) {
|
1042 | var node = allNodes[i];
|
1043 | var nodeKey = node.data[key].toString();
|
1044 | var checked = keys.indexOf(nodeKey) > -1;
|
1045 | if (!checked) {
|
1046 | if (node.checked && !cache[nodeKey]) {
|
1047 | node.setChecked(false, false);
|
1048 | }
|
1049 | continue;
|
1050 | }
|
1051 |
|
1052 | var parent = node.parent;
|
1053 | while (parent && parent.level > 0) {
|
1054 | cache[parent.data[key]] = true;
|
1055 | parent = parent.parent;
|
1056 | }
|
1057 |
|
1058 | if (node.isLeaf || this.checkStrictly) {
|
1059 | node.setChecked(true, false);
|
1060 | continue;
|
1061 | }
|
1062 | node.setChecked(true, true);
|
1063 |
|
1064 | if (leafOnly) {
|
1065 | (function () {
|
1066 | node.setChecked(false, false);
|
1067 | var traverse = function traverse(node) {
|
1068 | var childNodes = node.childNodes;
|
1069 | childNodes.forEach(function (child) {
|
1070 | if (!child.isLeaf) {
|
1071 | child.setChecked(false, false);
|
1072 | }
|
1073 | traverse(child);
|
1074 | });
|
1075 | };
|
1076 | traverse(node);
|
1077 | })();
|
1078 | }
|
1079 | }
|
1080 | };
|
1081 |
|
1082 | TreeStore.prototype.setCheckedNodes = function setCheckedNodes(array) {
|
1083 | var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
1084 |
|
1085 | var key = this.key;
|
1086 | var checkedKeys = {};
|
1087 | array.forEach(function (item) {
|
1088 | checkedKeys[(item || {})[key]] = true;
|
1089 | });
|
1090 |
|
1091 | this._setCheckedKeys(key, leafOnly, checkedKeys);
|
1092 | };
|
1093 |
|
1094 | TreeStore.prototype.setCheckedKeys = function setCheckedKeys(keys) {
|
1095 | var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
1096 |
|
1097 | this.defaultCheckedKeys = keys;
|
1098 | var key = this.key;
|
1099 | var checkedKeys = {};
|
1100 | keys.forEach(function (key) {
|
1101 | checkedKeys[key] = true;
|
1102 | });
|
1103 |
|
1104 | this._setCheckedKeys(key, leafOnly, checkedKeys);
|
1105 | };
|
1106 |
|
1107 | TreeStore.prototype.setDefaultExpandedKeys = function setDefaultExpandedKeys(keys) {
|
1108 | var _this6 = this;
|
1109 |
|
1110 | keys = keys || [];
|
1111 | this.defaultExpandedKeys = keys;
|
1112 |
|
1113 | keys.forEach(function (key) {
|
1114 | var node = _this6.getNode(key);
|
1115 | if (node) node.expand(null, _this6.autoExpandParent);
|
1116 | });
|
1117 | };
|
1118 |
|
1119 | TreeStore.prototype.setChecked = function setChecked(data, checked, deep) {
|
1120 | var node = this.getNode(data);
|
1121 |
|
1122 | if (node) {
|
1123 | node.setChecked(!!checked, deep);
|
1124 | }
|
1125 | };
|
1126 |
|
1127 | TreeStore.prototype.getCurrentNode = function getCurrentNode() {
|
1128 | return this.currentNode;
|
1129 | };
|
1130 |
|
1131 | TreeStore.prototype.setCurrentNode = function setCurrentNode(node) {
|
1132 | this.currentNode = node;
|
1133 | };
|
1134 |
|
1135 | TreeStore.prototype.setUserCurrentNode = function setUserCurrentNode(node) {
|
1136 | var key = node[this.key];
|
1137 | var currNode = this.nodesMap[key];
|
1138 | this.setCurrentNode(currNode);
|
1139 | };
|
1140 |
|
1141 | TreeStore.prototype.setCurrentNodeKey = function setCurrentNodeKey(key) {
|
1142 | if (key === null) {
|
1143 | this.currentNode = null;
|
1144 | return;
|
1145 | }
|
1146 | var node = this.getNode(key);
|
1147 | if (node) {
|
1148 | this.currentNode = node;
|
1149 | }
|
1150 | };
|
1151 |
|
1152 | return TreeStore;
|
1153 | }();
|
1154 |
|
1155 | exports.default = TreeStore;
|
1156 | ;
|
1157 |
|
1158 | }),
|
1159 |
|
1160 | 252:
|
1161 | (function(module, exports, __webpack_require__) {
|
1162 |
|
1163 | "use strict";
|
1164 |
|
1165 |
|
1166 | exports.__esModule = true;
|
1167 | exports.getChildState = undefined;
|
1168 |
|
1169 | 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; };
|
1170 |
|
1171 | 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; }; }();
|
1172 |
|
1173 | var _merge = __webpack_require__(9);
|
1174 |
|
1175 | var _merge2 = _interopRequireDefault(_merge);
|
1176 |
|
1177 | var _util = __webpack_require__(33);
|
1178 |
|
1179 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1180 |
|
1181 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
1182 |
|
1183 | var getChildState = exports.getChildState = function getChildState(node) {
|
1184 | var all = true;
|
1185 | var none = true;
|
1186 | var allWithoutDisable = true;
|
1187 | for (var i = 0, j = node.length; i < j; i++) {
|
1188 | var n = node[i];
|
1189 | if (n.checked !== true || n.indeterminate) {
|
1190 | all = false;
|
1191 | if (!n.disabled) {
|
1192 | allWithoutDisable = false;
|
1193 | }
|
1194 | }
|
1195 | if (n.checked !== false || n.indeterminate) {
|
1196 | none = false;
|
1197 | }
|
1198 | }
|
1199 |
|
1200 | return { all: all, none: none, allWithoutDisable: allWithoutDisable, half: !all && !none };
|
1201 | };
|
1202 |
|
1203 | var reInitChecked = function reInitChecked(node) {
|
1204 | if (node.childNodes.length === 0) return;
|
1205 |
|
1206 | var _getChildState = getChildState(node.childNodes),
|
1207 | all = _getChildState.all,
|
1208 | none = _getChildState.none,
|
1209 | half = _getChildState.half;
|
1210 |
|
1211 | if (all) {
|
1212 | node.checked = true;
|
1213 | node.indeterminate = false;
|
1214 | } else if (half) {
|
1215 | node.checked = false;
|
1216 | node.indeterminate = true;
|
1217 | } else if (none) {
|
1218 | node.checked = false;
|
1219 | node.indeterminate = false;
|
1220 | }
|
1221 |
|
1222 | var parent = node.parent;
|
1223 | if (!parent || parent.level === 0) return;
|
1224 |
|
1225 | if (!node.store.checkStrictly) {
|
1226 | reInitChecked(parent);
|
1227 | }
|
1228 | };
|
1229 |
|
1230 | var getPropertyFromData = function getPropertyFromData(node, prop) {
|
1231 | var props = node.store.props;
|
1232 | var data = node.data || {};
|
1233 | var config = props[prop];
|
1234 |
|
1235 | if (typeof config === 'function') {
|
1236 | return config(data, node);
|
1237 | } else if (typeof config === 'string') {
|
1238 | return data[config];
|
1239 | } else if (typeof config === 'undefined') {
|
1240 | var dataProp = data[prop];
|
1241 | return dataProp === undefined ? '' : dataProp;
|
1242 | }
|
1243 | };
|
1244 |
|
1245 | var nodeIdSeed = 0;
|
1246 |
|
1247 | var Node = function () {
|
1248 | function Node(options) {
|
1249 | _classCallCheck(this, Node);
|
1250 |
|
1251 | this.id = nodeIdSeed++;
|
1252 | this.text = null;
|
1253 | this.checked = false;
|
1254 | this.indeterminate = false;
|
1255 | this.data = null;
|
1256 | this.expanded = false;
|
1257 | this.parent = null;
|
1258 | this.visible = true;
|
1259 |
|
1260 | for (var name in options) {
|
1261 | if (options.hasOwnProperty(name)) {
|
1262 | this[name] = options[name];
|
1263 | }
|
1264 | }
|
1265 |
|
1266 |
|
1267 | this.level = 0;
|
1268 | this.loaded = false;
|
1269 | this.childNodes = [];
|
1270 | this.loading = false;
|
1271 |
|
1272 | if (this.parent) {
|
1273 | this.level = this.parent.level + 1;
|
1274 | }
|
1275 |
|
1276 | var store = this.store;
|
1277 | if (!store) {
|
1278 | throw new Error('[Node]store is required!');
|
1279 | }
|
1280 | store.registerNode(this);
|
1281 |
|
1282 | var props = store.props;
|
1283 | if (props && typeof props.isLeaf !== 'undefined') {
|
1284 | var isLeaf = getPropertyFromData(this, 'isLeaf');
|
1285 | if (typeof isLeaf === 'boolean') {
|
1286 | this.isLeafByUser = isLeaf;
|
1287 | }
|
1288 | }
|
1289 |
|
1290 | if (store.lazy !== true && this.data) {
|
1291 | this.setData(this.data);
|
1292 |
|
1293 | if (store.defaultExpandAll) {
|
1294 | this.expanded = true;
|
1295 | }
|
1296 | } else if (this.level > 0 && store.lazy && store.defaultExpandAll) {
|
1297 | this.expand();
|
1298 | }
|
1299 | if (!Array.isArray(this.data)) {
|
1300 | (0, _util.markNodeData)(this, this.data);
|
1301 | }
|
1302 | if (!this.data) return;
|
1303 | var defaultExpandedKeys = store.defaultExpandedKeys;
|
1304 | var key = store.key;
|
1305 | if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) {
|
1306 | this.expand(null, store.autoExpandParent);
|
1307 | }
|
1308 |
|
1309 | if (key && store.currentNodeKey !== undefined && this.key === store.currentNodeKey) {
|
1310 | store.currentNode = this;
|
1311 | }
|
1312 |
|
1313 | if (store.lazy) {
|
1314 | store._initDefaultCheckedNode(this);
|
1315 | }
|
1316 |
|
1317 | this.updateLeafState();
|
1318 | }
|
1319 |
|
1320 | Node.prototype.setData = function setData(data) {
|
1321 | if (!Array.isArray(data)) {
|
1322 | (0, _util.markNodeData)(this, data);
|
1323 | }
|
1324 |
|
1325 | this.data = data;
|
1326 | this.childNodes = [];
|
1327 |
|
1328 | var children = void 0;
|
1329 | if (this.level === 0 && this.data instanceof Array) {
|
1330 | children = this.data;
|
1331 | } else {
|
1332 | children = getPropertyFromData(this, 'children') || [];
|
1333 | }
|
1334 |
|
1335 | for (var i = 0, j = children.length; i < j; i++) {
|
1336 | this.insertChild({ data: children[i] });
|
1337 | }
|
1338 | };
|
1339 |
|
1340 | Node.prototype.contains = function contains(target) {
|
1341 | var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
1342 |
|
1343 | var walk = function walk(parent) {
|
1344 | var children = parent.childNodes || [];
|
1345 | var result = false;
|
1346 | for (var i = 0, j = children.length; i < j; i++) {
|
1347 | var child = children[i];
|
1348 | if (child === target || deep && walk(child)) {
|
1349 | result = true;
|
1350 | break;
|
1351 | }
|
1352 | }
|
1353 | return result;
|
1354 | };
|
1355 |
|
1356 | return walk(this);
|
1357 | };
|
1358 |
|
1359 | Node.prototype.remove = function remove() {
|
1360 | var parent = this.parent;
|
1361 | if (parent) {
|
1362 | parent.removeChild(this);
|
1363 | }
|
1364 | };
|
1365 |
|
1366 | Node.prototype.insertChild = function insertChild(child, index, batch) {
|
1367 | if (!child) throw new Error('insertChild error: child is required.');
|
1368 |
|
1369 | if (!(child instanceof Node)) {
|
1370 | if (!batch) {
|
1371 | var children = this.getChildren(true);
|
1372 | if (children.indexOf(child.data) === -1) {
|
1373 | if (typeof index === 'undefined' || index < 0) {
|
1374 | children.push(child.data);
|
1375 | } else {
|
1376 | children.splice(index, 0, child.data);
|
1377 | }
|
1378 | }
|
1379 | }
|
1380 | (0, _merge2.default)(child, {
|
1381 | parent: this,
|
1382 | store: this.store
|
1383 | });
|
1384 | child = new Node(child);
|
1385 | }
|
1386 |
|
1387 | child.level = this.level + 1;
|
1388 |
|
1389 | if (typeof index === 'undefined' || index < 0) {
|
1390 | this.childNodes.push(child);
|
1391 | } else {
|
1392 | this.childNodes.splice(index, 0, child);
|
1393 | }
|
1394 |
|
1395 | this.updateLeafState();
|
1396 | };
|
1397 |
|
1398 | Node.prototype.insertBefore = function insertBefore(child, ref) {
|
1399 | var index = void 0;
|
1400 | if (ref) {
|
1401 | index = this.childNodes.indexOf(ref);
|
1402 | }
|
1403 | this.insertChild(child, index);
|
1404 | };
|
1405 |
|
1406 | Node.prototype.insertAfter = function insertAfter(child, ref) {
|
1407 | var index = void 0;
|
1408 | if (ref) {
|
1409 | index = this.childNodes.indexOf(ref);
|
1410 | if (index !== -1) index += 1;
|
1411 | }
|
1412 | this.insertChild(child, index);
|
1413 | };
|
1414 |
|
1415 | Node.prototype.removeChild = function removeChild(child) {
|
1416 | var children = this.getChildren() || [];
|
1417 | var dataIndex = children.indexOf(child.data);
|
1418 | if (dataIndex > -1) {
|
1419 | children.splice(dataIndex, 1);
|
1420 | }
|
1421 |
|
1422 | var index = this.childNodes.indexOf(child);
|
1423 |
|
1424 | if (index > -1) {
|
1425 | this.store && this.store.deregisterNode(child);
|
1426 | child.parent = null;
|
1427 | this.childNodes.splice(index, 1);
|
1428 | }
|
1429 |
|
1430 | this.updateLeafState();
|
1431 | };
|
1432 |
|
1433 | Node.prototype.removeChildByData = function removeChildByData(data) {
|
1434 | var targetNode = null;
|
1435 |
|
1436 | for (var i = 0; i < this.childNodes.length; i++) {
|
1437 | if (this.childNodes[i].data === data) {
|
1438 | targetNode = this.childNodes[i];
|
1439 | break;
|
1440 | }
|
1441 | }
|
1442 |
|
1443 | if (targetNode) {
|
1444 | this.removeChild(targetNode);
|
1445 | }
|
1446 | };
|
1447 |
|
1448 | Node.prototype.expand = function expand(callback, expandParent) {
|
1449 | var _this = this;
|
1450 |
|
1451 | var done = function done() {
|
1452 | if (expandParent) {
|
1453 | var parent = _this.parent;
|
1454 | while (parent.level > 0) {
|
1455 | parent.expanded = true;
|
1456 | parent = parent.parent;
|
1457 | }
|
1458 | }
|
1459 | _this.expanded = true;
|
1460 | if (callback) callback();
|
1461 | };
|
1462 |
|
1463 | if (this.shouldLoadData()) {
|
1464 | this.loadData(function (data) {
|
1465 | if (data instanceof Array) {
|
1466 | if (_this.checked) {
|
1467 | _this.setChecked(true, true);
|
1468 | } else if (!_this.store.checkStrictly) {
|
1469 | reInitChecked(_this);
|
1470 | }
|
1471 | done();
|
1472 | }
|
1473 | });
|
1474 | } else {
|
1475 | done();
|
1476 | }
|
1477 | };
|
1478 |
|
1479 | Node.prototype.doCreateChildren = function doCreateChildren(array) {
|
1480 | var _this2 = this;
|
1481 |
|
1482 | var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1483 |
|
1484 | array.forEach(function (item) {
|
1485 | _this2.insertChild((0, _merge2.default)({ data: item }, defaultProps), undefined, true);
|
1486 | });
|
1487 | };
|
1488 |
|
1489 | Node.prototype.collapse = function collapse() {
|
1490 | this.expanded = false;
|
1491 | };
|
1492 |
|
1493 | Node.prototype.shouldLoadData = function shouldLoadData() {
|
1494 | return this.store.lazy === true && this.store.load && !this.loaded;
|
1495 | };
|
1496 |
|
1497 | Node.prototype.updateLeafState = function updateLeafState() {
|
1498 | if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== 'undefined') {
|
1499 | this.isLeaf = this.isLeafByUser;
|
1500 | return;
|
1501 | }
|
1502 | var childNodes = this.childNodes;
|
1503 | if (!this.store.lazy || this.store.lazy === true && this.loaded === true) {
|
1504 | this.isLeaf = !childNodes || childNodes.length === 0;
|
1505 | return;
|
1506 | }
|
1507 | this.isLeaf = false;
|
1508 | };
|
1509 |
|
1510 | Node.prototype.setChecked = function setChecked(value, deep, recursion, passValue) {
|
1511 | var _this3 = this;
|
1512 |
|
1513 | this.indeterminate = value === 'half';
|
1514 | this.checked = value === true;
|
1515 |
|
1516 | if (this.store.checkStrictly) return;
|
1517 |
|
1518 | if (!(this.shouldLoadData() && !this.store.checkDescendants)) {
|
1519 | var _ret = function () {
|
1520 | var _getChildState2 = getChildState(_this3.childNodes),
|
1521 | all = _getChildState2.all,
|
1522 | allWithoutDisable = _getChildState2.allWithoutDisable;
|
1523 |
|
1524 | if (!_this3.isLeaf && !all && allWithoutDisable) {
|
1525 | _this3.checked = false;
|
1526 | value = false;
|
1527 | }
|
1528 |
|
1529 | var handleDescendants = function handleDescendants() {
|
1530 | if (deep) {
|
1531 | var childNodes = _this3.childNodes;
|
1532 | for (var i = 0, j = childNodes.length; i < j; i++) {
|
1533 | var child = childNodes[i];
|
1534 | passValue = passValue || value !== false;
|
1535 | var isCheck = child.disabled ? child.checked : passValue;
|
1536 | child.setChecked(isCheck, deep, true, passValue);
|
1537 | }
|
1538 |
|
1539 | var _getChildState3 = getChildState(childNodes),
|
1540 | half = _getChildState3.half,
|
1541 | _all = _getChildState3.all;
|
1542 |
|
1543 | if (!_all) {
|
1544 | _this3.checked = _all;
|
1545 | _this3.indeterminate = half;
|
1546 | }
|
1547 | }
|
1548 | };
|
1549 |
|
1550 | if (_this3.shouldLoadData()) {
|
1551 |
|
1552 | _this3.loadData(function () {
|
1553 | handleDescendants();
|
1554 | reInitChecked(_this3);
|
1555 | }, {
|
1556 | checked: value !== false
|
1557 | });
|
1558 | return {
|
1559 | v: void 0
|
1560 | };
|
1561 | } else {
|
1562 | handleDescendants();
|
1563 | }
|
1564 | }();
|
1565 |
|
1566 | if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
|
1567 | }
|
1568 |
|
1569 | var parent = this.parent;
|
1570 | if (!parent || parent.level === 0) return;
|
1571 |
|
1572 | if (!recursion) {
|
1573 | reInitChecked(parent);
|
1574 | }
|
1575 | };
|
1576 |
|
1577 | Node.prototype.getChildren = function getChildren() {
|
1578 | var forceInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
1579 |
|
1580 | if (this.level === 0) return this.data;
|
1581 | var data = this.data;
|
1582 | if (!data) return null;
|
1583 |
|
1584 | var props = this.store.props;
|
1585 | var children = 'children';
|
1586 | if (props) {
|
1587 | children = props.children || 'children';
|
1588 | }
|
1589 |
|
1590 | if (data[children] === undefined) {
|
1591 | data[children] = null;
|
1592 | }
|
1593 |
|
1594 | if (forceInit && !data[children]) {
|
1595 | data[children] = [];
|
1596 | }
|
1597 |
|
1598 | return data[children];
|
1599 | };
|
1600 |
|
1601 | Node.prototype.updateChildren = function updateChildren() {
|
1602 | var _this4 = this;
|
1603 |
|
1604 | var newData = this.getChildren() || [];
|
1605 | var oldData = this.childNodes.map(function (node) {
|
1606 | return node.data;
|
1607 | });
|
1608 |
|
1609 | var newDataMap = {};
|
1610 | var newNodes = [];
|
1611 |
|
1612 | newData.forEach(function (item, index) {
|
1613 | if (item[_util.NODE_KEY]) {
|
1614 | newDataMap[item[_util.NODE_KEY]] = { index: index, data: item };
|
1615 | } else {
|
1616 | newNodes.push({ index: index, data: item });
|
1617 | }
|
1618 | });
|
1619 |
|
1620 | if (!this.store.lazy) {
|
1621 | oldData.forEach(function (item) {
|
1622 | if (!newDataMap[item[_util.NODE_KEY]]) _this4.removeChildByData(item);
|
1623 | });
|
1624 | }
|
1625 |
|
1626 | newNodes.forEach(function (_ref) {
|
1627 | var index = _ref.index,
|
1628 | data = _ref.data;
|
1629 |
|
1630 | _this4.insertChild({ data: data }, index);
|
1631 | });
|
1632 |
|
1633 | this.updateLeafState();
|
1634 | };
|
1635 |
|
1636 | Node.prototype.loadData = function loadData(callback) {
|
1637 | var _this5 = this;
|
1638 |
|
1639 | var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1640 |
|
1641 | if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) {
|
1642 | this.loading = true;
|
1643 |
|
1644 | var resolve = function resolve(children) {
|
1645 | _this5.loaded = true;
|
1646 | _this5.loading = false;
|
1647 | _this5.childNodes = [];
|
1648 |
|
1649 | _this5.doCreateChildren(children, defaultProps);
|
1650 |
|
1651 | _this5.updateLeafState();
|
1652 | if (callback) {
|
1653 | callback.call(_this5, children);
|
1654 | }
|
1655 | };
|
1656 |
|
1657 | this.store.load(this, resolve);
|
1658 | } else {
|
1659 | if (callback) {
|
1660 | callback.call(this);
|
1661 | }
|
1662 | }
|
1663 | };
|
1664 |
|
1665 | _createClass(Node, [{
|
1666 | key: 'label',
|
1667 | get: function get() {
|
1668 | return getPropertyFromData(this, 'label');
|
1669 | }
|
1670 | }, {
|
1671 | key: 'icon',
|
1672 | get: function get() {
|
1673 | return getPropertyFromData(this, 'icon');
|
1674 | }
|
1675 | }, {
|
1676 | key: 'key',
|
1677 | get: function get() {
|
1678 | var nodeKey = this.store.key;
|
1679 | if (this.data) return this.data[nodeKey];
|
1680 | return null;
|
1681 | }
|
1682 | }, {
|
1683 | key: 'disabled',
|
1684 | get: function get() {
|
1685 | return getPropertyFromData(this, 'disabled');
|
1686 | }
|
1687 | }, {
|
1688 | key: 'nextSibling',
|
1689 | get: function get() {
|
1690 | var parent = this.parent;
|
1691 | if (parent) {
|
1692 | var index = parent.childNodes.indexOf(this);
|
1693 | if (index > -1) {
|
1694 | return parent.childNodes[index + 1];
|
1695 | }
|
1696 | }
|
1697 | return null;
|
1698 | }
|
1699 | }, {
|
1700 | key: 'previousSibling',
|
1701 | get: function get() {
|
1702 | var parent = this.parent;
|
1703 | if (parent) {
|
1704 | var index = parent.childNodes.indexOf(this);
|
1705 | if (index > -1) {
|
1706 | return index > 0 ? parent.childNodes[index - 1] : null;
|
1707 | }
|
1708 | }
|
1709 | return null;
|
1710 | }
|
1711 | }]);
|
1712 |
|
1713 | return Node;
|
1714 | }();
|
1715 |
|
1716 | exports.default = Node;
|
1717 |
|
1718 | }),
|
1719 |
|
1720 | 253:
|
1721 | (function(module, __webpack_exports__, __webpack_require__) {
|
1722 |
|
1723 | "use strict";
|
1724 | Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
1725 | var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue__ = __webpack_require__(254);
|
1726 | var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue__);
|
1727 | var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c66447d4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_node_vue__ = __webpack_require__(255);
|
1728 | var normalizeComponent = __webpack_require__(0)
|
1729 |
|
1730 |
|
1731 |
|
1732 |
|
1733 |
|
1734 | var __vue_template_functional__ = false
|
1735 |
|
1736 | var __vue_styles__ = null
|
1737 |
|
1738 | var __vue_scopeId__ = null
|
1739 |
|
1740 | var __vue_module_identifier__ = null
|
1741 | var Component = normalizeComponent(
|
1742 | __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue___default.a,
|
1743 | __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c66447d4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_node_vue__["a" ],
|
1744 | __vue_template_functional__,
|
1745 | __vue_styles__,
|
1746 | __vue_scopeId__,
|
1747 | __vue_module_identifier__
|
1748 | )
|
1749 |
|
1750 | __webpack_exports__["default"] = (Component.exports);
|
1751 |
|
1752 |
|
1753 | }),
|
1754 |
|
1755 | 254:
|
1756 | (function(module, exports, __webpack_require__) {
|
1757 |
|
1758 | "use strict";
|
1759 |
|
1760 |
|
1761 | exports.__esModule = true;
|
1762 |
|
1763 | var _collapseTransition = __webpack_require__(21);
|
1764 |
|
1765 | var _collapseTransition2 = _interopRequireDefault(_collapseTransition);
|
1766 |
|
1767 | var _checkbox = __webpack_require__(16);
|
1768 |
|
1769 | var _checkbox2 = _interopRequireDefault(_checkbox);
|
1770 |
|
1771 | var _emitter = __webpack_require__(1);
|
1772 |
|
1773 | var _emitter2 = _interopRequireDefault(_emitter);
|
1774 |
|
1775 | var _util = __webpack_require__(33);
|
1776 |
|
1777 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1778 |
|
1779 |
|
1780 |
|
1781 |
|
1782 |
|
1783 |
|
1784 |
|
1785 |
|
1786 |
|
1787 |
|
1788 |
|
1789 |
|
1790 |
|
1791 |
|
1792 |
|
1793 |
|
1794 |
|
1795 |
|
1796 |
|
1797 |
|
1798 |
|
1799 |
|
1800 |
|
1801 |
|
1802 |
|
1803 |
|
1804 |
|
1805 |
|
1806 |
|
1807 |
|
1808 |
|
1809 |
|
1810 |
|
1811 |
|
1812 |
|
1813 |
|
1814 |
|
1815 |
|
1816 |
|
1817 |
|
1818 |
|
1819 |
|
1820 |
|
1821 |
|
1822 |
|
1823 |
|
1824 |
|
1825 |
|
1826 |
|
1827 |
|
1828 |
|
1829 |
|
1830 |
|
1831 |
|
1832 |
|
1833 |
|
1834 |
|
1835 |
|
1836 |
|
1837 |
|
1838 |
|
1839 |
|
1840 |
|
1841 |
|
1842 |
|
1843 |
|
1844 |
|
1845 |
|
1846 |
|
1847 |
|
1848 | exports.default = {
|
1849 | name: 'ElTreeNode',
|
1850 |
|
1851 | componentName: 'ElTreeNode',
|
1852 |
|
1853 | mixins: [_emitter2.default],
|
1854 |
|
1855 | props: {
|
1856 | node: {
|
1857 | default: function _default() {
|
1858 | return {};
|
1859 | }
|
1860 | },
|
1861 | props: {},
|
1862 | renderContent: Function,
|
1863 | renderAfterExpand: {
|
1864 | type: Boolean,
|
1865 | default: true
|
1866 | }
|
1867 | },
|
1868 |
|
1869 | components: {
|
1870 | ElCollapseTransition: _collapseTransition2.default,
|
1871 | ElCheckbox: _checkbox2.default,
|
1872 | NodeContent: {
|
1873 | props: {
|
1874 | node: {
|
1875 | required: true
|
1876 | }
|
1877 | },
|
1878 | render: function render(h) {
|
1879 | var parent = this.$parent;
|
1880 | var tree = parent.tree;
|
1881 | var node = this.node;
|
1882 | var data = node.data,
|
1883 | store = node.store;
|
1884 |
|
1885 | 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(
|
1886 | 'span',
|
1887 | { 'class': 'el-tree-node__label' },
|
1888 | [node.label]
|
1889 | );
|
1890 | }
|
1891 | }
|
1892 | },
|
1893 |
|
1894 | data: function data() {
|
1895 | return {
|
1896 | tree: null,
|
1897 | expanded: false,
|
1898 | childNodeRendered: false,
|
1899 | showCheckbox: false,
|
1900 | oldChecked: null,
|
1901 | oldIndeterminate: null
|
1902 | };
|
1903 | },
|
1904 |
|
1905 |
|
1906 | watch: {
|
1907 | 'node.indeterminate': function nodeIndeterminate(val) {
|
1908 | this.handleSelectChange(this.node.checked, val);
|
1909 | },
|
1910 | 'node.checked': function nodeChecked(val) {
|
1911 | this.handleSelectChange(val, this.node.indeterminate);
|
1912 | },
|
1913 | 'node.expanded': function nodeExpanded(val) {
|
1914 | var _this = this;
|
1915 |
|
1916 | this.$nextTick(function () {
|
1917 | return _this.expanded = val;
|
1918 | });
|
1919 | if (val) {
|
1920 | this.childNodeRendered = true;
|
1921 | }
|
1922 | }
|
1923 | },
|
1924 |
|
1925 | methods: {
|
1926 | getNodeKey: function getNodeKey(node) {
|
1927 | return (0, _util.getNodeKey)(this.tree.nodeKey, node.data);
|
1928 | },
|
1929 | handleSelectChange: function handleSelectChange(checked, indeterminate) {
|
1930 | if (this.oldChecked !== checked && this.oldIndeterminate !== indeterminate) {
|
1931 | this.tree.$emit('check-change', this.node.data, checked, indeterminate);
|
1932 | }
|
1933 | this.oldChecked = checked;
|
1934 | this.indeterminate = indeterminate;
|
1935 | },
|
1936 | handleClick: function handleClick() {
|
1937 | var store = this.tree.store;
|
1938 | store.setCurrentNode(this.node);
|
1939 | this.tree.$emit('current-change', store.currentNode ? store.currentNode.data : null, store.currentNode);
|
1940 | this.tree.currentNode = this;
|
1941 | if (this.tree.expandOnClickNode) {
|
1942 | this.handleExpandIconClick();
|
1943 | }
|
1944 | if (this.tree.checkOnClickNode && !this.node.disabled) {
|
1945 | this.handleCheckChange(null, {
|
1946 | target: { checked: !this.node.checked }
|
1947 | });
|
1948 | }
|
1949 | this.tree.$emit('node-click', this.node.data, this.node, this);
|
1950 | },
|
1951 | handleContextMenu: function handleContextMenu(event) {
|
1952 | if (this.tree._events['node-contextmenu'] && this.tree._events['node-contextmenu'].length > 0) {
|
1953 | event.stopPropagation();
|
1954 | event.preventDefault();
|
1955 | }
|
1956 | this.tree.$emit('node-contextmenu', event, this.node.data, this.node, this);
|
1957 | },
|
1958 | handleExpandIconClick: function handleExpandIconClick() {
|
1959 | if (this.node.isLeaf) return;
|
1960 | if (this.expanded) {
|
1961 | this.tree.$emit('node-collapse', this.node.data, this.node, this);
|
1962 | this.node.collapse();
|
1963 | } else {
|
1964 | this.node.expand();
|
1965 | this.$emit('node-expand', this.node.data, this.node, this);
|
1966 | }
|
1967 | },
|
1968 | handleCheckChange: function handleCheckChange(value, ev) {
|
1969 | var _this2 = this;
|
1970 |
|
1971 | this.node.setChecked(ev.target.checked, !this.tree.checkStrictly);
|
1972 | this.$nextTick(function () {
|
1973 | var store = _this2.tree.store;
|
1974 | _this2.tree.$emit('check', _this2.node.data, {
|
1975 | checkedNodes: store.getCheckedNodes(),
|
1976 | checkedKeys: store.getCheckedKeys(),
|
1977 | halfCheckedNodes: store.getHalfCheckedNodes(),
|
1978 | halfCheckedKeys: store.getHalfCheckedKeys()
|
1979 | });
|
1980 | });
|
1981 | },
|
1982 | handleChildNodeExpand: function handleChildNodeExpand(nodeData, node, instance) {
|
1983 | this.broadcast('ElTreeNode', 'tree-node-expand', node);
|
1984 | this.tree.$emit('node-expand', nodeData, node, instance);
|
1985 | },
|
1986 | handleDragStart: function handleDragStart(event) {
|
1987 | if (!this.tree.draggable) return;
|
1988 | this.tree.$emit('tree-node-drag-start', event, this);
|
1989 | },
|
1990 | handleDragOver: function handleDragOver(event) {
|
1991 | if (!this.tree.draggable) return;
|
1992 | this.tree.$emit('tree-node-drag-over', event, this);
|
1993 | event.preventDefault();
|
1994 | },
|
1995 | handleDrop: function handleDrop(event) {
|
1996 | event.preventDefault();
|
1997 | },
|
1998 | handleDragEnd: function handleDragEnd(event) {
|
1999 | if (!this.tree.draggable) return;
|
2000 | this.tree.$emit('tree-node-drag-end', event, this);
|
2001 | }
|
2002 | },
|
2003 |
|
2004 | created: function created() {
|
2005 | var _this3 = this;
|
2006 |
|
2007 | var parent = this.$parent;
|
2008 |
|
2009 | if (parent.isTree) {
|
2010 | this.tree = parent;
|
2011 | } else {
|
2012 | this.tree = parent.tree;
|
2013 | }
|
2014 |
|
2015 | var tree = this.tree;
|
2016 | if (!tree) {
|
2017 | console.warn('Can not find node\'s tree.');
|
2018 | }
|
2019 |
|
2020 | var props = tree.props || {};
|
2021 | var childrenKey = props['children'] || 'children';
|
2022 |
|
2023 | this.$watch('node.data.' + childrenKey, function () {
|
2024 | _this3.node.updateChildren();
|
2025 | });
|
2026 |
|
2027 | this.showCheckbox = tree.showCheckbox;
|
2028 |
|
2029 | if (this.node.expanded) {
|
2030 | this.expanded = true;
|
2031 | this.childNodeRendered = true;
|
2032 | }
|
2033 |
|
2034 | if (this.tree.accordion) {
|
2035 | this.$on('tree-node-expand', function (node) {
|
2036 | if (_this3.node !== node) {
|
2037 | _this3.node.collapse();
|
2038 | }
|
2039 | });
|
2040 | }
|
2041 | }
|
2042 | };
|
2043 |
|
2044 | }),
|
2045 |
|
2046 | 255:
|
2047 | (function(module, __webpack_exports__, __webpack_require__) {
|
2048 |
|
2049 | "use strict";
|
2050 | var render = function () {
|
2051 | var this$1 = this;
|
2052 | 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:{
|
2053 | 'is-expanded': _vm.expanded,
|
2054 | 'is-current': _vm.tree.store.currentNode === _vm.node,
|
2055 | 'is-hidden': !_vm.node.visible,
|
2056 | 'is-focusable': !_vm.node.disabled,
|
2057 | 'is-checked': !_vm.node.disabled && _vm.node.checked
|
2058 | },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();_vm.handleClick($event)},"contextmenu":function ($event) { return this$1.handleContextMenu($event); },"dragstart":function($event){$event.stopPropagation();_vm.handleDragStart($event)},"dragover":function($event){$event.stopPropagation();_vm.handleDragOver($event)},"dragend":function($event){$event.stopPropagation();_vm.handleDragEnd($event)},"drop":function($event){$event.stopPropagation();_vm.handleDrop($event)}}},[_c('div',{staticClass:"el-tree-node__content",style:({ 'padding-left': (_vm.node.level - 1) * _vm.tree.indent + 'px' })},[_c('span',{staticClass:"el-tree-node__expand-icon el-icon-caret-right",class:{ 'is-leaf': _vm.node.isLeaf, expanded: !_vm.node.isLeaf && _vm.expanded },on:{"click":function($event){$event.stopPropagation();_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,"node":child},on:{"node-expand":_vm.handleChildNodeExpand}})})):_vm._e()])],1)}
|
2059 | var staticRenderFns = []
|
2060 | var esExports = { render: render, staticRenderFns: staticRenderFns }
|
2061 | __webpack_exports__["a"] = (esExports);
|
2062 |
|
2063 | }),
|
2064 |
|
2065 | 256:
|
2066 | (function(module, __webpack_exports__, __webpack_require__) {
|
2067 |
|
2068 | "use strict";
|
2069 | var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"el-tree",class:{
|
2070 | 'el-tree--highlight-current': _vm.highlightCurrent,
|
2071 | 'is-dragging': !!_vm.dragState.draggingNode,
|
2072 | 'is-drop-not-allow': !_vm.dragState.allowDrop,
|
2073 | 'is-drop-inner': _vm.dragState.dropType === 'inner'
|
2074 | },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,"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)}
|
2075 | var staticRenderFns = []
|
2076 | var esExports = { render: render, staticRenderFns: staticRenderFns }
|
2077 | __webpack_exports__["a"] = (esExports);
|
2078 |
|
2079 | }),
|
2080 |
|
2081 | 3:
|
2082 | (function(module, exports) {
|
2083 |
|
2084 | module.exports = require("element-ui/lib/utils/dom");
|
2085 |
|
2086 | }),
|
2087 |
|
2088 | 33:
|
2089 | (function(module, exports, __webpack_require__) {
|
2090 |
|
2091 | "use strict";
|
2092 |
|
2093 |
|
2094 | exports.__esModule = true;
|
2095 | var NODE_KEY = exports.NODE_KEY = '$treeNodeId';
|
2096 |
|
2097 | var markNodeData = exports.markNodeData = function markNodeData(node, data) {
|
2098 | if (!data || data[NODE_KEY]) return;
|
2099 | Object.defineProperty(data, NODE_KEY, {
|
2100 | value: node.id,
|
2101 | enumerable: false,
|
2102 | configurable: false,
|
2103 | writable: false
|
2104 | });
|
2105 | };
|
2106 |
|
2107 | var getNodeKey = exports.getNodeKey = function getNodeKey(key, data) {
|
2108 | if (!key) return data[NODE_KEY];
|
2109 | return data[key];
|
2110 | };
|
2111 |
|
2112 | var findNearestComponent = exports.findNearestComponent = function findNearestComponent(element, componentName) {
|
2113 | var target = element;
|
2114 | while (target && target.tagName !== 'BODY') {
|
2115 | if (target.__vue__ && target.__vue__.$options.name === componentName) {
|
2116 | return target.__vue__;
|
2117 | }
|
2118 | target = target.parentNode;
|
2119 | }
|
2120 | return null;
|
2121 | };
|
2122 |
|
2123 | }),
|
2124 |
|
2125 | 9:
|
2126 | (function(module, exports) {
|
2127 |
|
2128 | module.exports = require("element-ui/lib/utils/merge");
|
2129 |
|
2130 | })
|
2131 |
|
2132 | }); |
\ | No newline at end of file |