tdesign-mobile-vue
Version:
tdesign-mobile-vue
257 lines (249 loc) • 7.21 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
var _createClass = require('@babel/runtime/helpers/createClass');
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var isUndefined = require('lodash/isUndefined');
var isBoolean = require('lodash/isBoolean');
var omit = require('lodash/omit');
var get = require('lodash/get');
var _common_js_log_log = require('../log/log.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var isUndefined__default = /*#__PURE__*/_interopDefaultLegacy(isUndefined);
var isBoolean__default = /*#__PURE__*/_interopDefaultLegacy(isBoolean);
var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
var nodeKey = "__tdesign_tree-node__";
var TreeNodeModel = /*#__PURE__*/function () {
function TreeNodeModel(node) {
_classCallCheck__default["default"](this, TreeNodeModel);
_defineProperty__default["default"](this, nodeKey, void 0);
this[nodeKey] = node;
}
return _createClass__default["default"](TreeNodeModel, [{
key: "value",
get: function get() {
var node = this[nodeKey];
return node.value;
}
}, {
key: "label",
get: function get() {
var node = this[nodeKey];
return node.label;
}
}, {
key: "data",
get: function get() {
var node = this[nodeKey];
return node.data;
}
}, {
key: "actived",
get: function get() {
var node = this[nodeKey];
return node.actived;
}
}, {
key: "expanded",
get: function get() {
var node = this[nodeKey];
return node.expanded;
}
}, {
key: "checked",
get: function get() {
var node = this[nodeKey];
return node.checked;
}
}, {
key: "indeterminate",
get: function get() {
var node = this[nodeKey];
return node.indeterminate;
}
}, {
key: "loading",
get: function get() {
var node = this[nodeKey];
return node.loading;
}
}, {
key: "disabled",
get: function get() {
var node = this[nodeKey];
return node.isDisabled();
}
}, {
key: "getLevel",
value: function getLevel() {
var node = this[nodeKey];
return node.getLevel();
}
}, {
key: "getIndex",
value: function getIndex() {
var node = this[nodeKey];
return node.getIndex();
}
}, {
key: "isFirst",
value: function isFirst() {
var node = this[nodeKey];
return node.isFirst();
}
}, {
key: "isLast",
value: function isLast() {
var node = this[nodeKey];
return node.isLast();
}
}, {
key: "isLeaf",
value: function isLeaf() {
var node = this[nodeKey];
return node.isLeaf();
}
}, {
key: "insertBefore",
value: function insertBefore(newData) {
var node = this[nodeKey];
return node.insertBefore(newData);
}
}, {
key: "insertAfter",
value: function insertAfter(newData) {
var node = this[nodeKey];
return node.insertAfter(newData);
}
}, {
key: "appendData",
value: function appendData(data) {
var node = this[nodeKey];
return node.append(data);
}
}, {
key: "getPath",
value: function getPath() {
var node = this[nodeKey];
var nodes = node.getPath();
return nodes.map(function (item) {
return item.getModel();
});
}
}, {
key: "getParent",
value: function getParent() {
var _node$parent;
var node = this[nodeKey];
return (_node$parent = node.parent) === null || _node$parent === void 0 ? void 0 : _node$parent.getModel();
}
}, {
key: "getParents",
value: function getParents() {
var node = this[nodeKey];
var nodes = node.getParents();
return nodes.map(function (item) {
return item.getModel();
});
}
}, {
key: "getRoot",
value: function getRoot() {
var node = this[nodeKey];
var root = node.getRoot();
return root === null || root === void 0 ? void 0 : root.getModel();
}
}, {
key: "getSiblings",
value: function getSiblings() {
var node = this[nodeKey];
var nodes = node.getSiblings();
return nodes.map(function (item) {
return item.getModel();
});
}
}, {
key: "getChildren",
value: function getChildren(deep) {
var node = this[nodeKey];
var childrenModel = false;
var children = node.children;
if (Array.isArray(children)) {
if (children.length > 0) {
if (deep) {
var nodes = node.walk();
nodes.shift();
childrenModel = nodes.map(function (item) {
return item.getModel();
});
} else {
childrenModel = children.map(function (item) {
return item.getModel();
});
}
} else {
childrenModel = false;
}
} else if (isBoolean__default["default"](children)) {
childrenModel = children;
}
return childrenModel;
}
}, {
key: "remove",
value: function remove(value) {
var node = this[nodeKey];
if (!value) {
node.remove();
return;
}
var tree = node.tree;
var targetNode = tree.getNode(value);
if (!targetNode) {
_common_js_log_log["default"].warnOnce("Tree", "`".concat(value, "` is not exist"));
return;
}
var parents = targetNode.getParents();
var parentValues = parents.map(function (pnode) {
return pnode.value;
});
if (parentValues.indexOf(node.value) < 0) {
_common_js_log_log["default"].warnOnce("Tree", "`".concat(value, "` is not a childNode of current node"));
return;
}
targetNode.remove();
}
}, {
key: "setData",
value: function setData(data) {
var node = this[nodeKey];
var syncAttrs = ["value", "label", "disabled"];
var cleanData = omit__default["default"](data, ["children"].concat(syncAttrs));
var keys = node.tree.config.keys;
syncAttrs.forEach(function (attr) {
var dataAttrValue = get__default["default"](data, (keys === null || keys === void 0 ? void 0 : keys[attr]) || attr);
if (!isUndefined__default["default"](dataAttrValue)) cleanData[attr] = dataAttrValue;
});
Object.assign(node.data, cleanData);
Object.assign(node, cleanData);
node.update();
}
}]);
}();
function createNodeModel(node) {
var model = new TreeNodeModel(node);
return model;
}
exports.TreeNodeModel = TreeNodeModel;
exports.createNodeModel = createNodeModel;
exports.nodeKey = nodeKey;
//# sourceMappingURL=tree-node-model.js.map