@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
74 lines • 8.53 kB
JavaScript
import { NavigatorNodeRoot } from '@c8y/ngx-components';
import { assign } from 'lodash-es';
export class NavigatorNodeRootLegacy extends NavigatorNodeRoot {
addRoot(nodeData) {
let duplicate;
if (nodeData.path === '') {
nodeData.path = '/';
}
nodeData.label = nodeData.name;
if (typeof nodeData.parent === 'object') {
nodeData.parent.label = nodeData.parent.name;
}
if (nodeData.preventDuplicates) {
duplicate = this.find(({ path, parents, label }) => {
return (path === nodeData.path &&
label === nodeData.label &&
parents.some(p => p.label === nodeData.parent));
});
if (duplicate) {
duplicate.routerLinkExact = false;
}
}
return duplicate || super.addRoot(nodeData);
}
createNode(node) {
const newNode = super.createNode(node);
const update = newNode.update.bind(newNode);
// eslint-disable-next-line @typescript-eslint/no-this-alias
const root = this;
return Object.defineProperties(assign(newNode, {
realName: newNode.name || newNode.label,
_parent: true, // just use it to detect if it has been deleted
update(data) {
if (this._parent === undefined) {
// _parent was deleted somene instead to put this in root
root.addRoot(this);
// put it back so it can be deleted again
this._parent = true;
}
update(data);
},
addChild(nodeChild) {
this.add(root.createNode(nodeChild));
}
}), {
label: {
get() {
return this.realName || '';
},
set(name) {
this.realName = name;
}
},
name: {
get() {
return this.realName || '';
},
set(name) {
this.realName = name;
}
},
show: {
get() {
return !this.hidden;
},
set(show) {
this.hidden = !show;
},
configurable: true
}
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW5vZGUtcm9vdC1sZWdhY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi91cGdyYWRlL25nMS9uYXZpZ2F0b3Itbm9kZS1yb290LWxlZ2FjeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsaUJBQWlCO0lBQzVELE9BQU8sQ0FBQyxRQUFRO1FBQ2QsSUFBSSxTQUFTLENBQUM7UUFDZCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDekIsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDdEIsQ0FBQztRQUNELFFBQVEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMvQixJQUFJLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMvQixTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO2dCQUNqRCxPQUFPLENBQ0wsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJO29CQUN0QixLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUs7b0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDL0MsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxTQUFTLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFJO1FBQ2IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1Qyw0REFBNEQ7UUFDNUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUM1QixNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2QsUUFBUSxFQUFHLE9BQWUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUs7WUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSwrQ0FBK0M7WUFDOUQsTUFBTSxDQUFDLElBQUk7Z0JBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUMvQix5REFBeUQ7b0JBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25CLHlDQUF5QztvQkFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUNELFFBQVEsQ0FBQyxTQUFTO2dCQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0YsQ0FBQyxFQUNGO1lBQ0UsS0FBSyxFQUFFO2dCQUNMLEdBQUc7b0JBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztnQkFDRCxHQUFHLENBQUMsSUFBSTtvQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDdkIsQ0FBQzthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEdBQUc7b0JBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQztnQkFDRCxHQUFHLENBQUMsSUFBSTtvQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDdkIsQ0FBQzthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEdBQUc7b0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsR0FBRyxDQUFDLElBQUk7b0JBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDdEIsQ0FBQztnQkFDRCxZQUFZLEVBQUUsSUFBSTthQUNuQjtTQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdmlnYXRvck5vZGVSb290LCBOYXZpZ2F0b3JOb2RlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBhc3NpZ24gfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgY2xhc3MgTmF2aWdhdG9yTm9kZVJvb3RMZWdhY3kgZXh0ZW5kcyBOYXZpZ2F0b3JOb2RlUm9vdCB7XG4gIGFkZFJvb3Qobm9kZURhdGEpOiBOYXZpZ2F0b3JOb2RlIHtcbiAgICBsZXQgZHVwbGljYXRlO1xuICAgIGlmIChub2RlRGF0YS5wYXRoID09PSAnJykge1xuICAgICAgbm9kZURhdGEucGF0aCA9ICcvJztcbiAgICB9XG4gICAgbm9kZURhdGEubGFiZWwgPSBub2RlRGF0YS5uYW1lO1xuICAgIGlmICh0eXBlb2Ygbm9kZURhdGEucGFyZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgbm9kZURhdGEucGFyZW50LmxhYmVsID0gbm9kZURhdGEucGFyZW50Lm5hbWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGVEYXRhLnByZXZlbnREdXBsaWNhdGVzKSB7XG4gICAgICBkdXBsaWNhdGUgPSB0aGlzLmZpbmQoKHsgcGF0aCwgcGFyZW50cywgbGFiZWwgfSkgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHBhdGggPT09IG5vZGVEYXRhLnBhdGggJiZcbiAgICAgICAgICBsYWJlbCA9PT0gbm9kZURhdGEubGFiZWwgJiZcbiAgICAgICAgICBwYXJlbnRzLnNvbWUocCA9PiBwLmxhYmVsID09PSBub2RlRGF0YS5wYXJlbnQpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgZHVwbGljYXRlLnJvdXRlckxpbmtFeGFjdCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkdXBsaWNhdGUgfHwgc3VwZXIuYWRkUm9vdChub2RlRGF0YSk7XG4gIH1cblxuICBjcmVhdGVOb2RlKG5vZGUpIHtcbiAgICBjb25zdCBuZXdOb2RlID0gc3VwZXIuY3JlYXRlTm9kZShub2RlKTtcbiAgICBjb25zdCB1cGRhdGUgPSBuZXdOb2RlLnVwZGF0ZS5iaW5kKG5ld05vZGUpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhcbiAgICAgIGFzc2lnbihuZXdOb2RlLCB7XG4gICAgICAgIHJlYWxOYW1lOiAobmV3Tm9kZSBhcyBhbnkpLm5hbWUgfHwgbmV3Tm9kZS5sYWJlbCxcbiAgICAgICAgX3BhcmVudDogdHJ1ZSwgLy8ganVzdCB1c2UgaXQgdG8gZGV0ZWN0IGlmIGl0IGhhcyBiZWVuIGRlbGV0ZWRcbiAgICAgICAgdXBkYXRlKGRhdGEpIHtcbiAgICAgICAgICBpZiAodGhpcy5fcGFyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIF9wYXJlbnQgd2FzIGRlbGV0ZWQgc29tZW5lIGluc3RlYWQgdG8gcHV0IHRoaXMgaW4gcm9vdFxuICAgICAgICAgICAgcm9vdC5hZGRSb290KHRoaXMpO1xuICAgICAgICAgICAgLy8gcHV0IGl0IGJhY2sgc28gaXQgY2FuIGJlIGRlbGV0ZWQgYWdhaW5cbiAgICAgICAgICAgIHRoaXMuX3BhcmVudCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHVwZGF0ZShkYXRhKTtcbiAgICAgICAgfSxcbiAgICAgICAgYWRkQ2hpbGQobm9kZUNoaWxkKSB7XG4gICAgICAgICAgdGhpcy5hZGQocm9vdC5jcmVhdGVOb2RlKG5vZGVDaGlsZCkpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFsTmFtZSB8fCAnJztcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldChuYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnJlYWxOYW1lID0gbmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6IHtcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFsTmFtZSB8fCAnJztcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldChuYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnJlYWxOYW1lID0gbmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNob3c6IHtcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuaGlkZGVuO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0KHNob3cpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZGVuID0gIXNob3c7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiJdfQ==