@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
50 lines • 8.03 kB
JavaScript
import { Component } from '@angular/core';
import { HeaderService } from '../header/header.service';
import { NavigatorService } from './navigator.service';
import * as i0 from "@angular/core";
import * as i1 from "../header/header.service";
import * as i2 from "./navigator.service";
import * as i3 from "../i18n/c8y-translate.directive";
import * as i4 from "@angular/common";
import * as i5 from "../common/skip-link.directive";
import * as i6 from "./navigator-node.component";
import * as i7 from "../i18n/c8y-translate.pipe";
/**
* The component shows all nodes that have been added to the navigator.
* In addition, it allows you to add a header and a footer to the navigator.
*
* ```html
* <c8y-navigator-outlet>
* <header class="navigator-slot-top"></header>
* <footer class="navigator-slot-bottom"></footer>
* </c8y-navigator-outlet>
* ```
*/
export class NavigatorOutletComponent {
constructor(headerService, navigatorNodes) {
this.headerService = headerService;
this.navigatorNodes = navigatorNodes;
this.nodes$ = this.navigatorNodes.items$;
}
/**
* Closes the navigator menu after clicking an item in the menu, in case of insufficient screen width.
*/
collapseNavigator(from) {
if (from === 'link' && !this.headerService.largeWidth) {
this.headerService.closeNavigator();
}
}
/**
* @ignore
*/
trackByPathOrLabel(index, node) {
return node.path ? node.path : node.label;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigatorOutletComponent, deps: [{ token: i1.HeaderService }, { token: i2.NavigatorService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NavigatorOutletComponent, selector: "c8y-navigator-outlet, c8y-ui-navigator", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"navigatorContent\" role=\"navigation\" [attr.aria-label]=\"'Main navigation' | translate\">\n <button class=\"sr-only sr-only-focusable btn btn-default btn-sm\" tabindex=\"0\" [c8ySkipLink]=\"'main-content'\" translate>Skip to content</button>\n <c8y-navigator-node\n (nodeClick)=\"collapseNavigator($event)\"\n [node]=\"node\"\n *ngFor=\"let node of nodes$ | async; trackBy: trackByPathOrLabel\"\n [isRoot]=\"true\"\n class=\"d-contents\"\n ></c8y-navigator-node>\n</div>\n", dependencies: [{ kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.SkipLinkDirective, selector: "[c8ySkipLink]", inputs: ["c8ySkipLink"] }, { kind: "component", type: i6.NavigatorNodeComponent, selector: "c8y-navigator-node", inputs: ["node", "isRoot"], outputs: ["nodeClick"] }, { kind: "pipe", type: i7.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NavigatorOutletComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-navigator-outlet, c8y-ui-navigator', host: { class: 'd-contents' }, template: "<div class=\"navigatorContent\" role=\"navigation\" [attr.aria-label]=\"'Main navigation' | translate\">\n <button class=\"sr-only sr-only-focusable btn btn-default btn-sm\" tabindex=\"0\" [c8ySkipLink]=\"'main-content'\" translate>Skip to content</button>\n <c8y-navigator-node\n (nodeClick)=\"collapseNavigator($event)\"\n [node]=\"node\"\n *ngFor=\"let node of nodes$ | async; trackBy: trackByPathOrLabel\"\n [isRoot]=\"true\"\n class=\"d-contents\"\n ></c8y-navigator-node>\n</div>\n" }]
}], ctorParameters: () => [{ type: i1.HeaderService }, { type: i2.NavigatorService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLW91dGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL25hdmlnYXRvci9uYXZpZ2F0b3Itb3V0bGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvcmUvbmF2aWdhdG9yL25hdmlnYXRvci1vdXRsZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQUV2RDs7Ozs7Ozs7OztHQVVHO0FBTUgsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQyxZQUNVLGFBQTRCLEVBQzVCLGNBQWdDO1FBRGhDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUV4QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLElBQWtDO1FBQ2xELElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQzVDLENBQUM7K0dBM0JVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHNIQ3RCckMsMmZBVUE7OzRGRFlhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx3Q0FBd0MsUUFFNUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JOb2RlIH0gZnJvbSAnLi9uYXZpZ2F0b3Itbm9kZSc7XG5pbXBvcnQgeyBIZWFkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vaGVhZGVyL2hlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdmlnYXRvclNlcnZpY2UgfSBmcm9tICcuL25hdmlnYXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGUgY29tcG9uZW50IHNob3dzIGFsbCBub2RlcyB0aGF0IGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgbmF2aWdhdG9yLlxuICogSW4gYWRkaXRpb24sIGl0IGFsbG93cyB5b3UgdG8gYWRkIGEgaGVhZGVyIGFuZCBhIGZvb3RlciB0byB0aGUgbmF2aWdhdG9yLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxjOHktbmF2aWdhdG9yLW91dGxldD5cbiAqICAgPGhlYWRlciBjbGFzcz1cIm5hdmlnYXRvci1zbG90LXRvcFwiPjwvaGVhZGVyPlxuICogICA8Zm9vdGVyIGNsYXNzPVwibmF2aWdhdG9yLXNsb3QtYm90dG9tXCI+PC9mb290ZXI+XG4gKiA8L2M4eS1uYXZpZ2F0b3Itb3V0bGV0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1uYXZpZ2F0b3Itb3V0bGV0LCBjOHktdWktbmF2aWdhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRvci1vdXRsZXQuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JPdXRsZXRDb21wb25lbnQge1xuICAvKipcbiAgICogTmF2aWdhdG9yIG5vZGVzIGxpc3QuXG4gICAqL1xuICBub2RlcyQ6IE9ic2VydmFibGU8TmF2aWdhdG9yTm9kZVtdPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhlYWRlclNlcnZpY2U6IEhlYWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JOb2RlczogTmF2aWdhdG9yU2VydmljZVxuICApIHtcbiAgICB0aGlzLm5vZGVzJCA9IHRoaXMubmF2aWdhdG9yTm9kZXMuaXRlbXMkO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbmF2aWdhdG9yIG1lbnUgYWZ0ZXIgY2xpY2tpbmcgYW4gaXRlbSBpbiB0aGUgbWVudSwgaW4gY2FzZSBvZiBpbnN1ZmZpY2llbnQgc2NyZWVuIHdpZHRoLlxuICAgKi9cbiAgY29sbGFwc2VOYXZpZ2F0b3IoZnJvbTogJ2ljb24nIHwgJ2V4cGFuZGVyJyB8ICdsaW5rJykge1xuICAgIGlmIChmcm9tID09PSAnbGluaycgJiYgIXRoaXMuaGVhZGVyU2VydmljZS5sYXJnZVdpZHRoKSB7XG4gICAgICB0aGlzLmhlYWRlclNlcnZpY2UuY2xvc2VOYXZpZ2F0b3IoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgdHJhY2tCeVBhdGhPckxhYmVsKGluZGV4LCBub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUucGF0aCA/IG5vZGUucGF0aCA6IG5vZGUubGFiZWw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuYXZpZ2F0b3JDb250ZW50XCIgcm9sZT1cIm5hdmlnYXRpb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidNYWluIG5hdmlnYXRpb24nIHwgdHJhbnNsYXRlXCI+XG4gIDxidXR0b24gY2xhc3M9XCJzci1vbmx5IHNyLW9ubHktZm9jdXNhYmxlIGJ0biBidG4tZGVmYXVsdCBidG4tc21cIiB0YWJpbmRleD1cIjBcIiBbYzh5U2tpcExpbmtdPVwiJ21haW4tY29udGVudCdcIiB0cmFuc2xhdGU+U2tpcCB0byBjb250ZW50PC9idXR0b24+XG4gIDxjOHktbmF2aWdhdG9yLW5vZGVcbiAgICAobm9kZUNsaWNrKT1cImNvbGxhcHNlTmF2aWdhdG9yKCRldmVudClcIlxuICAgIFtub2RlXT1cIm5vZGVcIlxuICAgICpuZ0Zvcj1cImxldCBub2RlIG9mIG5vZGVzJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5UGF0aE9yTGFiZWxcIlxuICAgIFtpc1Jvb3RdPVwidHJ1ZVwiXG4gICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgPjwvYzh5LW5hdmlnYXRvci1ub2RlPlxuPC9kaXY+XG4iXX0=