UNPKG

kingdot

Version:

A UI Components Library For Vue

1,408 lines (1,269 loc) 71.5 kB
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 = 260); /******/ }) /************************************************************************/ /******/ ({ /***/ 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, (options.functional ? this.parent : 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 functional 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 } } /***/ }), /***/ 196: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __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!./components/Tree/treeUl.vue?vue&type=template&id=261170b9& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{class:_vm.ulClass},_vm._l((_vm.data),function(item,index){return _c('treeLi',_vm._b({key:item[_vm.TREE.nodeKey] ? item[_vm.TREE.nodeKey] : index,attrs:{"item":item,"index":index},nativeOn:{"drop":function($event){$event.stopPropagation();return _vm.drop(item, $event)},"dragover":function($event){$event.stopPropagation();return _vm.dragover(item, $event)}}},'treeLi',_vm.childBind,false))}),1)} var staticRenderFns = [] // CONCATENATED MODULE: ./components/Tree/treeUl.vue?vue&type=template&id=261170b9& // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/Tree/treeLi.vue?vue&type=template&id=2f2cdd80& var treeLivue_type_template_id_2f2cdd80_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.itemVisible)?_c('li',{class:_vm.liClass},[_c('div',{staticClass:"kd-tree-node-el",attrs:{"draggable":_vm.draggable},on:{"dragstart":function($event){return _vm.drag(_vm.item, $event)},"dragend":function($event){return _vm.dragEnd(_vm.item, $event)}}},[_c('span',{staticClass:"kd-tree-switcher",on:{"click":function($event){return _vm.expandNode(_vm.item)}}},[(_vm.showExpand)?_c('i',{class:_vm.switcherClass}):_vm._e()]),(_vm.checkbox && !_vm.item.nocheck && !_vm.TREE.nocheckKeys.includes(_vm.item[_vm.TREE.nodeKey]))?_c('kd-checkbox',{staticClass:"kd-tree-checkbox",attrs:{"disabled":_vm.item.chkDisabled || _vm.TREE.chkDisabledKeys.includes(_vm.item[_vm.TREE.nodeKey]),"indeterminate":_vm.item.halfcheck},on:{"change":function($event){return _vm.changeNodeCheckStatus(_vm.item, $event)}},model:{value:(_vm.item.checked),callback:function ($$v) {_vm.$set(_vm.item, "checked", $$v)},expression:"item.checked"}}):_vm._e(),(_vm.item.loading && _vm.item.expanded)?_c('span',{staticClass:"kd-tree-loading"},[_c('svg',{staticClass:"kd-tree-loading-svg",attrs:{"viewBox":"0 0 120 120"}},[_c('circle',{staticClass:"kd-tree-loading-circle",attrs:{"cx":"60","cy":"60","r":"57"}})])]):_vm._e(),_c('TreeNode',{attrs:{"node":_vm.item,"parent":_vm.parent,"index":_vm.index,"tpl":_vm.tpl,"node-mouse-over":_vm.nodeMouseOver,"level":_vm.level}})],1),(_vm.item.children && _vm.item.children.length)?_c('kd-transition',{attrs:{"type":"collapse"}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.item.expanded),expression:"item.expanded"}]},[_c('TreeUl',{attrs:{"drag-after-expanded":_vm.dragAfterExpanded,"draggable":_vm.draggable,"tpl":_vm.tpl,"data":_vm.item.children,"halfcheck":_vm.halfcheck,"scoped":_vm.scoped,"parent":_vm.item,"can-delete-root":_vm.canDeleteRoot,"checkbox":_vm.checkbox,"level":_vm.level,"allow-get-parent-node":_vm.allowGetParentNode,"show-line":_vm.showLine}})],1)]):_vm._e()],1):_vm._e()} var treeLivue_type_template_id_2f2cdd80_staticRenderFns = [] // CONCATENATED MODULE: ./components/Tree/treeLi.vue?vue&type=template&id=2f2cdd80& // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/Tree/treeNode.vue?vue&type=script&lang=js& /* harmony default export */ var treeNodevue_type_script_lang_js_ = ({ name: 'TreeNode', functional: true, props: { node: Object, parent: null, tpl: Function, index: Number, nodeMouseOver: Function, level: Number }, inject: ['TREE'], render: function render(h, ctx) { // const { TREE } = ctx.injections; // const { mode, dragInfo } = TREE; // const dragNodeKey = dragInfo.dragKey; // const targetKey = dragInfo.targetKey; var _ctx$props = ctx.props, node = _ctx$props.node, parent = _ctx$props.parent, tpl = _ctx$props.tpl, index = _ctx$props.index, nodeMouseOver = _ctx$props.nodeMouseOver, level = _ctx$props.level; var selected = node.selected, _node$selDisabled = node.selDisabled, selDisabled = _node$selDisabled === undefined ? false : _node$selDisabled; var titleClass = void 0; if (selDisabled) { titleClass = 'node-title-disabled'; } else { titleClass = selected ? 'node-title node-selected' : 'node-title'; } if (node.searched) titleClass += ' node-searched'; // postponed // if ( // mode && // targetKey === node.__key__ && // targetKey !== dragNodeKey // ) { // titleClass += ` kd-tree-insert-${mode}`; // } var _tree = ctx.injections.TREE; var nodeItem = function nodeItem() { return h( 'span', { attrs: { title: node[_tree.titleKey] }, 'class': titleClass, on: { 'mouseover': function mouseover() { return nodeMouseOver(node, index, parent); }, 'click': function click() { if (selDisabled) return; _tree.nodeSelected(node, { level: level, index: index }); } } }, [_tree.$scopedSlots.icon && _tree.$scopedSlots.icon(node), node[_tree.titleKey]] ); }; return tpl ? tpl(node, ctx, parent, index, ctx.props) : _tree.$scopedSlots.default ? h( 'div', { 'class': 'kd-tree-node' }, [nodeItem(), _tree.$scopedSlots.default && _tree.$scopedSlots.default(node)] ) : nodeItem(); } }); // CONCATENATED MODULE: ./components/Tree/treeNode.vue?vue&type=script&lang=js& /* harmony default export */ var Tree_treeNodevue_type_script_lang_js_ = (treeNodevue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./components/Tree/treeNode.vue var treeNode_render, treeNode_staticRenderFns /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( Tree_treeNodevue_type_script_lang_js_, treeNode_render, treeNode_staticRenderFns, false, null, null, null ) /* harmony default export */ var treeNode = (component.exports); // EXTERNAL MODULE: ./components/Transition/index.js + 3 modules var Transition = __webpack_require__(95); // EXTERNAL MODULE: ./components/Checkbox/index.js var Checkbox = __webpack_require__(61); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/Tree/treeLi.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var treeLivue_type_script_lang_js_ = ({ name: 'TreeLi', components: { TreeNode: treeNode, KdTransition: Transition["default"], KdCheckbox: Checkbox["default"], TreeUl: function TreeUl() { return Promise.resolve(/* import() */).then(__webpack_require__.bind(null, 196)); } }, props: { item: { type: Object, default: function _default() {} }, index: Number, parent: { type: Object, default: function _default() { return null; } }, checkbox: { type: Boolean, default: false }, draggable: { type: Boolean, default: false }, dragAfterExpanded: { type: Boolean, default: true }, halfcheck: { type: Boolean, default: false }, scoped: { type: Boolean, default: false }, canDeleteRoot: { type: Boolean, default: false }, showLine: { type: Boolean, default: false }, tpl: Function, level: Number, allowGetParentNode: Boolean // nocheckKeys: { // type: Array, // default: () => [] // } // chkDisabledKeys: { // type: Array, // default: () => [] // } }, inject: ['isLeaf', 'childChecked', 'parentChecked', 'nodeSelected', 'emitEventToTree', 'setAttr', 'TREE'], computed: { itemVisible: function itemVisible() { var _item$visible = this.item.visible, visible = _item$visible === undefined ? true : _item$visible; return visible; }, hasExpanded: function hasExpanded() { var _item = this.item, _item$hasExpanded = _item.hasExpanded, hasExpanded = _item$hasExpanded === undefined ? false : _item$hasExpanded, _item$expanded = _item.expanded, expanded = _item$expanded === undefined ? false : _item$expanded; return this.itemVisible && (expanded || hasExpanded); }, liClass: function liClass() { return { leaf: this.parent && this.isLeaf(this.item) }; }, switcherClass: function switcherClass() { return { 'kd-tree-switcher-icon': true, 'kd-icon-video-play': !this.showLine, 'tree-open': !this.showLine && this.item.expanded, 'kd-tree-switcher-border': this.showLine, 'kd-icon-plus': this.showLine && !this.item.expanded, 'kd-icon-minus-solid': this.showLine && this.item.expanded }; }, hasChildren: function hasChildren() { var item = this.item; return item.children && item.children.length > 0; }, showExpand: function showExpand() { var item = this.item; return this.hasChildren || item.async; }, position: function position() { return { level: this.level, index: this.index }; } }, watch: { 'item.checked': { immediate: true, handler: function handler() { if (!this.scoped) { this.checkedChange(); } } }, 'item.halfcheck': { immediate: true, handler: function handler() { this.checkedChange(); } } }, methods: { // drag node drag: function drag(node, ev) { this.$set(node, 'expanded', false); var guid = node.__key__; this.$set(this.TREE.dragInfo, 'dragKey', guid); this.$set(this.TREE.dragInfo, guid, { node: node, parent: this.parent }); ev.dataTransfer.setData('guid', guid); }, dragEnd: function dragEnd(node, ev) { this.$delete(this.TREE.dragInfo, 'dragKey'); this.$delete(this.TREE.dragInfo, 'targetKey'); }, // expand or shrink node expandNode: function expandNode(node) { if (!this.showExpand) return; var expended = !node.expanded; this.setAttr(node, 'expanded', expended); this.setAttr(node, 'hasExpanded', true); if (this.TREE.async && !node.loaded) { this.TREE.asyncLoadNodes(node); } this.emitEventToTree('node-expand', node, expended, this.position); }, // node check nodeCheck: function nodeCheck(node, checked) { var _this = this; this.$set(node, 'checked', checked); if (!this.scoped) { var halfcheck = this.halfcheck; if (halfcheck) { this.$set(node, 'halfcheck', false); } this.childChecked(node, checked, halfcheck); if (node.children && node.children.length) { node.children.forEach(function (cld) { _this.nodeCheck(cld, checked); }); } } }, // mouse over nodeMouseOver: function nodeMouseOver(node, index, parent) { this.emitEventToTree('node-mouse-over', node, index, parent); }, // change checkbox status changeNodeCheckStatus: function changeNodeCheckStatus(node, $event) { var checked = node.checked; this.nodeCheck(node, checked); this.emitEventToTree('node-check', node, checked, this.position); }, theParentChecked: function theParentChecked(checked, halfcheck) { var parentNode = this.parent; this.parentChecked(parentNode, checked, halfcheck); }, checkedChange: function checkedChange() { var _item2 = this.item, _item2$checked = _item2.checked, checked = _item2$checked === undefined ? false : _item2$checked, _item2$parentCheckedT = _item2.parentCheckedToChildren, parentCheckedToChildren = _item2$parentCheckedT === undefined ? false : _item2$parentCheckedT; if (!this.scoped || !parentCheckedToChildren) { this.theParentChecked(checked, this.halfcheck); } if (parentCheckedToChildren) { this.$delete(this.item, 'parentCheckedToChildren'); } } } }); // CONCATENATED MODULE: ./components/Tree/treeLi.vue?vue&type=script&lang=js& /* harmony default export */ var Tree_treeLivue_type_script_lang_js_ = (treeLivue_type_script_lang_js_); // CONCATENATED MODULE: ./components/Tree/treeLi.vue /* normalize component */ var treeLi_component = Object(componentNormalizer["a" /* default */])( Tree_treeLivue_type_script_lang_js_, treeLivue_type_template_id_2f2cdd80_render, treeLivue_type_template_id_2f2cdd80_staticRenderFns, false, null, null, null ) /* harmony default export */ var treeLi = (treeLi_component.exports); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/Tree/treeUl.vue?vue&type=script&lang=js& function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } // // // // // // // // // // // // // /* harmony default export */ var treeUlvue_type_script_lang_js_ = ({ name: 'TreeUl', components: { TreeLi: treeLi }, inheritAttrs: false, inject: ['isLeaf', 'childChecked', 'parentChecked', 'emitEventToTree', 'TREE'], props: { data: { type: Array, default: function _default() { return []; } }, parent: { type: Object, default: function _default() { return null; } }, dragAfterExpanded: { type: Boolean, default: true }, level: { type: Number, default: 0 }, allowGetParentNode: { type: Boolean, default: false }, showLine: { type: Boolean, default: false } }, computed: { ulClass: function ulClass() { return { 'kd-tree': true, 'kd-tree-line': this.showLine }; }, childBind: function childBind() { // eslint-disable-next-line no-unused-vars var _$props = this.$props, data = _$props.data, otherObj = _objectWithoutProperties(_$props, ['data']); return Object.assign({}, this.$attrs, otherObj, { level: this.treeLevel }); }, treeLevel: function treeLevel() { return this.level + 1; } }, created: function created() { var _this = this; this.data.forEach(function (item) { var __key__ = _this.guid(); // let __key__ = item[this.TREE.nodeKey]; // do not use nodeKey , maybe duplicate _this.$set(item, '__key__', __key__); if (_this.TREE.expandedKeys.includes(item[_this.TREE.nodeKey])) { _this.$set(item, 'expanded', true); } if (_this.TREE.checkedKeys.includes(item[_this.TREE.nodeKey])) { _this.$set(item, 'checked', true); var halfcheck = _this.TREE.halfcheck; if (halfcheck) { _this.$set(item, 'halfcheck', false); } _this.childChecked(item, true, halfcheck); } }); if (this.allowGetParentNode === true) { var parent = this.parent; this.data.forEach(function (item) { item.parent = function () { return parent; }; }); } }, methods: { guid: function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0; var v = c === 'x' ? r : r & 0x3 | 0x8; return v.toString(16); }); }, hasInGenerations: function hasInGenerations(root, node) { var ret = false; if (Object.prototype.hasOwnProperty.call(root, 'children') && root.children) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = root.children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var rn = _step.value; if (rn === node) return true; if (rn.children) ret |= this.hasInGenerations(rn, node); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } return ret; }, // get drag node info _getDragNodeInfo: function _getDragNodeInfo() { var guid = this.TREE.dragInfo.dragKey; return this.TREE.dragInfo[guid]; }, // node drop drop: function drop(node, e) { // const mode = this.TREE.mode; // todo: 后面根据模式在不同位置插入 e.preventDefault(); e.stopPropagation(); var _getDragNodeInfo2 = this._getDragNodeInfo(), dragNode = _getDragNodeInfo2.node, parentNode = _getDragNodeInfo2.parent; // drag from parent node to child node if (this.hasInGenerations(dragNode, node)) return false; // if drag node's parent is enter node or root node if (parentNode === node || dragNode === node) { return false; } // root position 不能向自己或内部节点push if (parentNode === null) { // delete node form tree this.TREE.data.splice(this.data.indexOf(dragNode), 1); if (node.children && node.children.indexOf(dragNode) === -1) { node.children.push(dragNode); } else { this.$set(node, 'children', [dragNode]); } if (this.dragAfterExpanded) { this.$set(node, 'expanded', true); } return false; } var dragHost = parentNode.children; if (node.children && node.children.indexOf(dragNode) === -1) { node.children.push(dragNode); dragHost.splice(dragHost.indexOf(dragNode), 1); } else { this.$set(node, 'children', [dragNode]); dragHost.splice(dragHost.indexOf(dragNode), 1); } if (this.dragAfterExpanded) { this.$set(node, 'expanded', true); } // debugger this.dragNodeEnd({ dragNode: dragNode, targetNode: node, event: e }); }, // dragover node dragover: function dragover(item, e) { var _getDragNodeInfo3 = this._getDragNodeInfo(), dragNode = _getDragNodeInfo3.node, parentNode = _getDragNodeInfo3.parent; // expand when node can drop if (parentNode !== item && dragNode !== item && !this.hasInGenerations(dragNode, item)) { this.$set(item, 'expanded', true); } var mode = this._calcInsertMode(e); this.TREE.mode = mode; // different mode style | target & drag this.TREE.dragInfo.targetKey = item.__key__; e.preventDefault(); e.stopPropagation(); }, // 计算节点拖放的位置 _calcInsertMode: function _calcInsertMode(e) { var RANGE = 1 / 4; var _event = event, clientY = _event.clientY; var _e$currentTarget$getB = e.currentTarget.getBoundingClientRect(), top = _e$currentTarget$getB.top, bottom = _e$currentTarget$getB.bottom, height = _e$currentTarget$getB.height; var des = height * RANGE; if (clientY <= top + des) { return 'before'; } else if (clientY >= bottom - des) { return 'after'; } else { return 'inner'; } }, // after node drop: emit event to tree dragNodeEnd: function dragNodeEnd() { var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; this.$delete(this.TREE.dragInfo, 'dragKey'); this.$delete(this.TREE.dragInfo, 'targetKey'); // reset after drop this.TREE.mode = null; this.emitEventToTree('drag-node-end', obj); } } }); // CONCATENATED MODULE: ./components/Tree/treeUl.vue?vue&type=script&lang=js& /* harmony default export */ var Tree_treeUlvue_type_script_lang_js_ = (treeUlvue_type_script_lang_js_); // CONCATENATED MODULE: ./components/Tree/treeUl.vue /* normalize component */ var treeUl_component = Object(componentNormalizer["a" /* default */])( Tree_treeUlvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* harmony default export */ var treeUl = __webpack_exports__["default"] = (treeUl_component.exports); /***/ }), /***/ 260: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __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!./components/Tree/tree.vue?vue&type=template&id=7086e5da& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('TreeUl',_vm._b({},'TreeUl',_vm.childBind,false))} var staticRenderFns = [] // CONCATENATED MODULE: ./components/Tree/tree.vue?vue&type=template&id=7086e5da& // EXTERNAL MODULE: ./components/Tree/treeUl.vue + 12 modules var treeUl = __webpack_require__(196); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/Tree/tree.vue?vue&type=script&lang=js& var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } // // // // /* harmony default export */ var treevue_type_script_lang_js_ = ({ name: 'KdTree', components: { TreeUl: treeUl["default"] }, inheritAttrs: false, provide: function provide() { return { isLeaf: this.isLeaf, // 是否为叶子节点 childChecked: this.childCheckedHandle, parentChecked: this.parentCheckedHandle, emitEventToTree: this.emitEventToParent, nodeSelected: this.nodeSelected, setAttr: this.setAttr, TREE: this, chkDisabledKeys: this.chkDisabledKeys }; }, props: { data: { type: Array, default: function _default() { return []; } }, // 唯一key nodeKey: { type: String, default: 'id' }, titleKey: { type: String, default: 'title' }, expandedKeys: { type: Array, default: function _default() { return []; } }, checkedKeys: { type: Array, default: function _default() { return []; } }, checkbox: { type: Boolean, default: false }, halfcheck: { type: Boolean, default: true }, // todo: 可增加selectedKeys radio: { // 单选, selected节点至多可以选一个 type: Boolean, default: false }, selectAlone: { // select事件不影响checkbox type: Boolean, default: false }, canDeleteRoot: { type: Boolean, default: false }, allowGetParentNode: { // 允许获取父节点 type: Boolean, default: false }, chkDisabledKeys: { type: Array, default: function _default() { return []; } }, nocheckKeys: { type: Array, default: function _default() { return []; } }, async: { type: Boolean, default: false }, asyncFn: Function }, data: function data() { return { // test: true, radioNode: null, mode: null, dragInfo: {} }; }, computed: { childBind: function childBind() { return Object.assign({}, this.$attrs, this.$props); } }, beforeCreate: function beforeCreate() { window.__tree = this; // default false this.$defVal = { visible: true }; }, methods: { // leaf node or not isLeaf: function isLeaf(node) { return !(node.children && node.children.length); }, childCheckedHandle: function childCheckedHandle(node, checked) { var _this = this; var halfcheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; var children = node.children; if (children && children.length) { children.forEach(function (child) { if (!child.chkDisabled) { _this.$set(child, 'checked', checked); if (halfcheck) { _this.$set(child, 'halfcheck', false); } _this.$set(child, 'parentCheckedToChildren', true); } }); } }, parentCheckedHandle: function parentCheckedHandle(parentNode, checked) { var halfcheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (!parentNode || parentNode.chkDisabled) return false; var someBrotherNodeChecked = checked; var allBrotherNodeChecked = checked; var childNodes = parentNode.children; if (checked) { allBrotherNodeChecked = childNodes.every(function (child) { return child.checked; }); } else { someBrotherNodeChecked = childNodes.some(function (_ref) { var checked = _ref.checked, itemHalfCheck = _ref.halfcheck; return checked || halfcheck && itemHalfCheck; }); } if (halfcheck) { // all | some | none var nodeHalfCheck = checked ? !allBrotherNodeChecked : someBrotherNodeChecked; var _parentNode$halfcheck = parentNode.halfcheck, oldHalfCheck = _parentNode$halfcheck === undefined ? false : _parentNode$halfcheck; if (oldHalfCheck !== nodeHalfCheck) { this.$set(parentNode, 'halfcheck', nodeHalfCheck); } else if (nodeHalfCheck) { return false; } this.$set(parentNode, 'checked', allBrotherNodeChecked); } else { this.$set(parentNode, 'checked', allBrotherNodeChecked); } return true; }, emitEventToParent: function emitEventToParent(eventName) { if (!eventName) return; switch (eventName) { case 'node-click': case 'node-select': case 'node-check': case 'node-mouse-over': case 'drag-node-end': case 'del-node': case 'node-expand': for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } this.$emit.apply(this, [eventName].concat(_toConsumableArray(args))); break; default: throw new ReferenceError('the event of ' + eventName + ' is not effective'); } }, // set node attr setAttr: function setAttr(node, attr) { var val = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var _node$attr = node[attr], defVal = _node$attr === undefined ? this._getDefVal(attr) : _node$attr; if (defVal !== val) { this.$set(node, attr, val); } }, setAttrs: function setAttrs(node) { var attrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var val = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var setAttr = this.setAttr; attrs.forEach(function (attr) { return setAttr(node, attr, val); }); }, setNodeAttr: function setNodeAttr(node, attr) { var val = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (!node || !attr) return; if (Object.prototype.hasOwnProperty.call(node, attr)) { this.setAttr(node, attr, val); } else { this.$set(node, attr, val); } }, updateRadioNode: function updateRadioNode(node) { var selected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (!selected) return; var previousNode = this.radioNode; if (previousNode) { this.setNodeAttr(previousNode, 'selected', !selected); } this.radioNode = node; }, // change node selected nodeSelected: function nodeSelected(node, position) { var selected = !node.selected; var changeCheck = this.checkbox && !this.selectAlone; if (changeCheck) { this.$set(node, 'checked', selected); this.childCheckedHandle(node, selected, this.halfcheck); } if (this.radio) { this.updateRadioNode(node, selected); } this.$set(node, 'selected', selected); this.emitEventToParent('node-click', node, selected, position); this.emitEventToParent('node-select', node, selected, position); }, // node: add, delete addNode: function addNode(parent, newNode) { if (!parent) return; var addnode = null; this.$set(parent, 'expanded', true); var newNodeType = typeof newNode === 'undefined' ? 'undefined' : _typeof(newNode); if (newNodeType === 'newNode') { throw new ReferenceError('newNode is required but undefined'); } else if (newNodeType === 'string') { addnode = { title: newNode }; } else if (newNodeType === 'object') { if (!Object.prototype.hasOwnProperty.call(newNode, 'title')) { throw new ReferenceError('the title property is missed'); } else { addnode = newNode; } } else { throw new ReferenceError('newNode type error, not allowed ' + newNodeType); } var halfcheck = parent.halfcheck, checked = parent.checked; addnode = Object.assign({ checked: !halfcheck && checked }, addnode); if (this.isLeaf(parent)) { this.$set(parent, 'children', []); parent.children.push(addnode); } else { parent.children.push(addnode); } }, addNodes: function addNodes(parent, children) { if (!parent) return; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var n = _step.value; this.addNode(parent, n); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } }, delNode: function delNode(node, parent, index) { if (parent === null || (typeof parent === 'undefined' ? 'undefined' : _typeof(parent)) === undefined) { if (this.canDeleteRoot) { this.data.splice(index, 1); } else { throw new ReferenceError("the root element can't deleted!"); } } else { parent.children.splice(index, 1); } this.emitEventToParent('del-node', { parentNode: parent, delNode: node }); }, // get node by options getNodes: function getNodes() { var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var data = arguments[1]; var isOriginal = arguments[2]; var ignoreInvisibleNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var isLeaf = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; var optArr = Object.entries(opt); var hasOpt = optArr.length > 0; return this._getNodes(optArr, hasOpt, data, isOriginal, ignoreInvisibleNode, isLeaf); }, // opt: Array _getNodes: function _getNodes(opt, hasOpt) { var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.data; var isOriginal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var ignoreInvisibleNode = arguments[4]; var _this2 = this; var isLeaf = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false; var res = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : []; var _pushNode = function _pushNode(arr, node, isOrg, isLeaf) { if (isLeaf && !_this2.isLeaf(node)) return; if (isOrg) { arr.push(node); } else { var n = Object.assign({}, node); Reflect.deleteProperty(n, 'hasExpanded'); Reflect.deleteProperty(n, 'children'); Reflect.deleteProperty(n, 'parent'); // Reflect.deleteProperty(n, "__key__"); arr.push(n); } }; var pushNode = function pushNode(node) { return _pushNode(res, node, isOriginal, isLeaf); }; // is a node matched the condition var _isMatchedNode = function _isMatchedNode(node, condition) { var matched = true; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = condition[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _ref2 = _step2.value; var _ref3 = _slicedToArray(_ref2, 2); var attr = _ref3[0]; var val = _ref3[1]; if (Object.prototype.hasOwnProperty.call(node, attr)) { var _node$attr2 = node[attr], nodeVal = _node$attr2 === undefined ? _this2._getDefVal(attr) : _node$attr2; matched = nodeVal === val; } else { matched = false; } if (!matched) break; } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return matched; }; var isMatchedNode = function isMatchedNode(node) { return _isMatchedNode(node, opt); }; var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = data[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var node = _step3.value; var children = node.children, _node$visible = node.visible, visible = _node$visible === undefined ? true : _node$visible; if (ignoreInvisibleNode && !visible) { continue; } if (hasOpt) { if (isMatchedNode(node)) { pushNode(node); } } else { pushNode(node); } if (children && children.length) { this._getNodes(opt, hasOpt, children, isOriginal, ignoreInvisibleNode, isLeaf, res); } } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } return res; }, // get selected node | condition getSelectedNodes: function getSelectedNodes() { var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _option$isOriginal = option.isOriginal, isOriginal = _option$isOriginal === undefined ? false : _option$isOriginal, _option$ignoreInvisib = optio