dbweb-common
Version:
用`yarn add dbweb-common`安装,不要忘记修改`angular.json`里的 `architect\build\options\assets`,加上
80 lines • 5.72 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export class TreeNode {
/**
* @param {?} name
* @param {?} parent
*/
constructor(name, parent) {
this.name = name;
this.parent = parent;
this.children = [];
}
/**
* @return {?}
*/
title() {
if (this.ele) {
return this.ele.title();
}
if (this.name.search(/[0-9]{2}\./) > -1) {
return this.name.substr(3);
}
return this.name;
}
// 强制创建一个节点,路径上的父节点如果不存在则创建,返回最终的节点
/**
* @param {?} paths
* @param {?} ele
* @return {?}
*/
forceCreate(paths, ele) {
if (paths.length === 0) {
return null;
}
/** @type {?} */
const val = paths.shift();
// 需要排序
/** @type {?} */
const idx = this.children.findIndex((/**
* @param {?} item
* @return {?}
*/
item => val.localeCompare(item.name) <= 0));
/** @type {?} */
let node = new TreeNode(val, this);
if (idx === -1) {
this.children.push(node);
}
else if (this.children[idx].name === val) {
node = this.children[idx];
}
else {
this.children.splice(idx, 0, node);
}
if (paths.length === 0) {
node.ele = ele;
return node;
}
else {
return node.forceCreate(paths, ele);
}
}
}
if (false) {
/** @type {?} */
TreeNode.prototype.iconName;
/** @type {?} */
TreeNode.prototype.color;
/** @type {?} */
TreeNode.prototype.children;
/** @type {?} */
TreeNode.prototype.ele;
/** @type {?} */
TreeNode.prototype.name;
/** @type {?} */
TreeNode.prototype.parent;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZGJ3ZWItY29tbW9uLyIsInNvdXJjZXMiOlsibGliL3JvbGUvdHJlZS1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sUUFBUTs7Ozs7SUFLcEIsWUFBbUIsSUFBWSxFQUFTLE1BQWdCO1FBQXJDLFNBQUksR0FBSixJQUFJLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFVO1FBRnhELGFBQVEsR0FBZ0IsRUFBRSxDQUFDO0lBRWdDLENBQUM7Ozs7SUFDNUQsS0FBSztRQUNKLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtRQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzQjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDOzs7Ozs7O0lBRUQsV0FBVyxDQUFDLEtBQWUsRUFBRSxHQUFZO1FBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUM7U0FDWjs7Y0FDSyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRTs7O2NBRW5CLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7Ozs7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQzs7WUFDMUUsSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDbEMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQzNDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ1o7YUFBTTtZQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDcEM7SUFDRixDQUFDO0NBQ0Q7OztJQXJDQSw0QkFBa0I7O0lBQ2xCLHlCQUFlOztJQUNmLDRCQUEyQjs7SUFDM0IsdUJBQWE7O0lBQ0Qsd0JBQW1COztJQUFFLDBCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnQgfSBmcm9tICdkYndlYi1jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZSB7XHJcblx0aWNvbk5hbWU/OiBzdHJpbmc7XHJcblx0Y29sb3I/OiBzdHJpbmc7XHJcblx0Y2hpbGRyZW4/OiBUcmVlTm9kZVtdID0gW107XHJcblx0ZWxlOiBFbGVtZW50O1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lOiBzdHJpbmcsIHB1YmxpYyBwYXJlbnQ6IFRyZWVOb2RlKSB7fVxyXG5cdHRpdGxlKCk6IHN0cmluZyB7XHJcblx0XHRpZiAodGhpcy5lbGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZWxlLnRpdGxlKCk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5uYW1lLnNlYXJjaCgvWzAtOV17Mn1cXC4vKSA+IC0xKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLm5hbWUuc3Vic3RyKDMpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMubmFtZTtcclxuXHR9XHJcblx0Ly8g5by65Yi25Yib5bu65LiA5Liq6IqC54K577yM6Lev5b6E5LiK55qE54i26IqC54K55aaC5p6c5LiN5a2Y5Zyo5YiZ5Yib5bu677yM6L+U5Zue5pyA57uI55qE6IqC54K5XHJcblx0Zm9yY2VDcmVhdGUocGF0aHM6IHN0cmluZ1tdLCBlbGU6IEVsZW1lbnQpOiBUcmVlTm9kZSB7XHJcblx0XHRpZiAocGF0aHMubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgdmFsID0gcGF0aHMuc2hpZnQoKTtcclxuXHRcdC8vIOmcgOimgeaOkuW6j1xyXG5cdFx0Y29uc3QgaWR4ID0gdGhpcy5jaGlsZHJlbi5maW5kSW5kZXgoaXRlbSA9PiB2YWwubG9jYWxlQ29tcGFyZShpdGVtLm5hbWUpIDw9IDApO1xyXG5cdFx0bGV0IG5vZGUgPSBuZXcgVHJlZU5vZGUodmFsLCB0aGlzKTtcclxuXHRcdGlmIChpZHggPT09IC0xKSB7XHJcblx0XHRcdHRoaXMuY2hpbGRyZW4ucHVzaChub2RlKTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5jaGlsZHJlbltpZHhdLm5hbWUgPT09IHZhbCkge1xyXG5cdFx0XHRub2RlID0gdGhpcy5jaGlsZHJlbltpZHhdO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5jaGlsZHJlbi5zcGxpY2UoaWR4LCAwLCBub2RlKTtcclxuXHRcdH1cclxuXHRcdGlmIChwYXRocy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0bm9kZS5lbGUgPSBlbGU7XHJcblx0XHRcdHJldHVybiBub2RlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIG5vZGUuZm9yY2VDcmVhdGUocGF0aHMsIGVsZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==