@alauda-fe/common
Version:
Alauda frontend team common codes.
41 lines • 5.04 kB
JavaScript
import { TemplatePortal } from '@angular/cdk/portal';
import { Directive, TemplateRef, ViewContainerRef, } from '@angular/core';
import { TemplateHolderType, UiStateService, } from '../services/ui-state.service';
import * as i0 from "@angular/core";
import * as i1 from "../services/ui-state.service";
/**
* Dynamically change page header content based on active template.
*
* Usage:
* If you want to customize a page header, wrap a template with *aclPageHeaderContent.
*
* eg:
* <ng-container *aclPageHeaderContent>
* ... YOUR TEMPLATE CONTENT
* </ng-container>
*/
export class PageHeaderContentDirective {
constructor(templateRef, viewContainerRef, uiState) {
this.templateRef = templateRef;
this.viewContainerRef = viewContainerRef;
this.uiState = uiState;
this.templateHolder = this.uiState.getTemplateHolder(TemplateHolderType.PageHeaderContent);
}
ngOnInit() {
const portal = new TemplatePortal(this.templateRef, this.viewContainerRef);
this.templateHolder.setTemplatePortal(portal);
}
ngOnDestroy() {
this.templateHolder.setTemplatePortal(null);
}
static { this.ɵfac = function PageHeaderContentDirective_Factory(t) { return new (t || PageHeaderContentDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.UiStateService)); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PageHeaderContentDirective, selectors: [["", "aclPageHeaderContent", ""]], standalone: true }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageHeaderContentDirective, [{
type: Directive,
args: [{
selector: '[aclPageHeaderContent]',
standalone: true,
}]
}], () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.UiStateService }], null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXItY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29yZS9kaXJlY3RpdmVzL3BhZ2UtaGVhZGVyLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsU0FBUyxFQUdULFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixjQUFjLEdBQ2YsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRXRDOzs7Ozs7Ozs7O0dBVUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBR3JDLFlBQ21CLFdBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxPQUF1QjtRQUZ2QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUV4QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQ2xELGtCQUFrQixDQUFDLGlCQUFpQixDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7MkZBcEJVLDBCQUEwQjtvRUFBMUIsMEJBQTBCOztpRkFBMUIsMEJBQTBCO2NBSnRDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxVQUFVLEVBQUUsSUFBSTthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFRlbXBsYXRlSG9sZGVyLFxuICBUZW1wbGF0ZUhvbGRlclR5cGUsXG4gIFVpU3RhdGVTZXJ2aWNlLFxufSBmcm9tICcuLi9zZXJ2aWNlcy91aS1zdGF0ZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBEeW5hbWljYWxseSBjaGFuZ2UgcGFnZSBoZWFkZXIgY29udGVudCBiYXNlZCBvbiBhY3RpdmUgdGVtcGxhdGUuXG4gKlxuICogVXNhZ2U6XG4gKiBJZiB5b3Ugd2FudCB0byBjdXN0b21pemUgYSBwYWdlIGhlYWRlciwgd3JhcCBhIHRlbXBsYXRlIHdpdGggKmFjbFBhZ2VIZWFkZXJDb250ZW50LlxuICpcbiAqIGVnOlxuICogPG5nLWNvbnRhaW5lciAqYWNsUGFnZUhlYWRlckNvbnRlbnQ+XG4gKiAgIC4uLiBZT1VSIFRFTVBMQVRFIENPTlRFTlRcbiAqIDwvbmctY29udGFpbmVyPlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsUGFnZUhlYWRlckNvbnRlbnRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUhlYWRlckNvbnRlbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHRlbXBsYXRlSG9sZGVyOiBUZW1wbGF0ZUhvbGRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVpU3RhdGU6IFVpU3RhdGVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnRlbXBsYXRlSG9sZGVyID0gdGhpcy51aVN0YXRlLmdldFRlbXBsYXRlSG9sZGVyKFxuICAgICAgVGVtcGxhdGVIb2xkZXJUeXBlLlBhZ2VIZWFkZXJDb250ZW50LFxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLnRlbXBsYXRlSG9sZGVyLnNldFRlbXBsYXRlUG9ydGFsKHBvcnRhbCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlSG9sZGVyLnNldFRlbXBsYXRlUG9ydGFsKG51bGwpO1xuICB9XG59XG4iXX0=