@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
33 lines • 6.6 kB
JavaScript
import { Component, ElementRef, NgZone } from '@angular/core';
import { HeaderService } from '../header.service';
import { debounceTime, map, filter } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "../header.service";
import * as i2 from "../../common/outlet.directive";
export class TitleOutletComponent {
constructor(headerService, element, zone) {
this.headerService = headerService;
this.element = element;
this.zone = zone;
this.title = undefined;
this.pageTitleUpdate = true;
const title$ = this.headerService.map(state => state.title);
title$.subscribe(title => {
this.title = title;
});
const pageTitleUpdate$ = this.headerService.map(state => state.pageTitleUpdate);
pageTitleUpdate$.subscribe(pageTitleUpdate => (this.pageTitleUpdate = pageTitleUpdate));
this.zone.runOutsideAngular(() => {
this.headerService.state$
.pipe(debounceTime(100), filter(state => state.pageTitleUpdate), debounceTime(100), map(() => this.element.nativeElement.querySelector('h1')), filter(el => el !== null), map(el => el.innerText), filter(Boolean))
.subscribe((title) => headerService.changePageTitle(title));
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TitleOutletComponent, deps: [{ token: i1.HeaderService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TitleOutletComponent, selector: "c8y-title-outlet", ngImport: i0, template: "<div class=\"c8y-ui-title\" data-cy=\"c8y-title--title-outlet\">\n <div class=\"title\" *c8yOutlet=\"title\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TitleOutletComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-title-outlet', template: "<div class=\"c8y-ui-title\" data-cy=\"c8y-title--title-outlet\">\n <div class=\"title\" *c8yOutlet=\"title\"></div>\n</div>\n" }]
}], ctorParameters: () => [{ type: i1.HeaderService }, { type: i0.ElementRef }, { type: i0.NgZone }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvcmUvaGVhZGVyL3RpdGxlL3RpdGxlLW91dGxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9jb3JlL2hlYWRlci90aXRsZS90aXRsZS1vdXRsZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU0zRCxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLFlBQ1UsYUFBNEIsRUFDNUIsT0FBbUIsRUFDbkIsSUFBWTtRQUZaLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQU50QixVQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBT3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hGLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBRXhGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTTtpQkFDdEIsSUFBSSxDQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUN0QyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDekQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUN6QixHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDaEI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTlCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix3RENSakMsZ0lBR0E7OzRGREthLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2hlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS10aXRsZS1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGl0bGUtb3V0bGV0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaXRsZU91dGxldENvbXBvbmVudCB7XG4gIHRpdGxlID0gdW5kZWZpbmVkO1xuICBwYWdlVGl0bGVVcGRhdGUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgY29uc3QgdGl0bGUkID0gdGhpcy5oZWFkZXJTZXJ2aWNlLm1hcChzdGF0ZSA9PiBzdGF0ZS50aXRsZSk7XG4gICAgdGl0bGUkLnN1YnNjcmliZSh0aXRsZSA9PiB7XG4gICAgICB0aGlzLnRpdGxlID0gdGl0bGU7XG4gICAgfSk7XG5cbiAgICBjb25zdCBwYWdlVGl0bGVVcGRhdGUkID0gdGhpcy5oZWFkZXJTZXJ2aWNlLm1hcChzdGF0ZSA9PiBzdGF0ZS5wYWdlVGl0bGVVcGRhdGUpO1xuICAgIHBhZ2VUaXRsZVVwZGF0ZSQuc3Vic2NyaWJlKHBhZ2VUaXRsZVVwZGF0ZSA9PiAodGhpcy5wYWdlVGl0bGVVcGRhdGUgPSBwYWdlVGl0bGVVcGRhdGUpKTtcblxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmhlYWRlclNlcnZpY2Uuc3RhdGUkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgIGZpbHRlcihzdGF0ZSA9PiBzdGF0ZS5wYWdlVGl0bGVVcGRhdGUpLFxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdoMScpKSxcbiAgICAgICAgICBmaWx0ZXIoZWwgPT4gZWwgIT09IG51bGwpLFxuICAgICAgICAgIG1hcChlbCA9PiBlbC5pbm5lclRleHQpLFxuICAgICAgICAgIGZpbHRlcihCb29sZWFuKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHRpdGxlOiBzdHJpbmcpID0+IGhlYWRlclNlcnZpY2UuY2hhbmdlUGFnZVRpdGxlKHRpdGxlKSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjOHktdWktdGl0bGVcIiBkYXRhLWN5PVwiYzh5LXRpdGxlLS10aXRsZS1vdXRsZXRcIj5cbiAgPGRpdiBjbGFzcz1cInRpdGxlXCIgKmM4eU91dGxldD1cInRpdGxlXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==