UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

74 lines 8.53 kB
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==