@taiga-ui/kit
Version:
Taiga UI Angular main components kit
43 lines • 4.34 kB
JavaScript
import { __decorate, __param } from "tslib";
import { AfterViewChecked, Directive, ElementRef, Inject, Input } from '@angular/core';
import { tuiDefaultProp } from '@taiga-ui/cdk';
/**
* A directive for projecting classes from nested children to host
*/
var TuiProjectClassDirective = /** @class */ (function () {
function TuiProjectClassDirective(elementRef) {
this.elementRef = elementRef;
this.classNames = [];
}
TuiProjectClassDirective.prototype.ngAfterViewChecked = function () {
var _this = this;
if (!this.classNames.length) {
return;
}
this.classNames.forEach(function (className) {
var hostElement = _this.elementRef.nativeElement;
if (hostElement.querySelector("." + className)) {
hostElement.classList.add(className);
}
else {
hostElement.classList.remove(className);
}
});
};
TuiProjectClassDirective.ctorParameters = function () { return [
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
]; };
__decorate([
Input('tuiProjectClass'),
tuiDefaultProp()
], TuiProjectClassDirective.prototype, "classNames", void 0);
TuiProjectClassDirective = __decorate([
Directive({
selector: '[tuiProjectClass]',
}),
__param(0, Inject(ElementRef))
], TuiProjectClassDirective);
return TuiProjectClassDirective;
}());
export { TuiProjectClassDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1jbGFzcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkva2l0L2RpcmVjdGl2ZXMvcHJvamVjdC1jbGFzcy8iLCJzb3VyY2VzIjpbInByb2plY3QtY2xhc3MuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0M7O0dBRUc7QUFJSDtJQUtJLGtDQUN5QyxVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUg1RSxlQUFVLEdBQXNCLEVBQUUsQ0FBQztJQUloQyxDQUFDO0lBRUoscURBQWtCLEdBQWxCO1FBQUEsaUJBY0M7UUFiRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBQSxTQUFTO1lBQzdCLElBQU0sV0FBVyxHQUFHLEtBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1lBRWxELElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFJLFNBQVcsQ0FBQyxFQUFFO2dCQUM1QyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDSCxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMzQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0JBakJvRCxVQUFVLHVCQUExRCxNQUFNLFNBQUMsVUFBVTs7SUFIdEI7UUFGQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDeEIsY0FBYyxFQUFFO2dFQUNrQjtJQUgxQix3QkFBd0I7UUFIcEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG1CQUFtQjtTQUNoQyxDQUFDO1FBT08sV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7T0FOZCx3QkFBd0IsQ0F3QnBDO0lBQUQsK0JBQUM7Q0FBQSxBQXhCRCxJQXdCQztTQXhCWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0NoZWNrZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aURlZmF1bHRQcm9wfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSBmb3IgcHJvamVjdGluZyBjbGFzc2VzIGZyb20gbmVzdGVkIGNoaWxkcmVuIHRvIGhvc3RcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpUHJvamVjdENsYXNzXScsXG59KVxuZXhwb3J0IGNsYXNzIFR1aVByb2plY3RDbGFzc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xuICAgIEBJbnB1dCgndHVpUHJvamVjdENsYXNzJylcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNsYXNzTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNsYXNzTmFtZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsYXNzTmFtZXMuZm9yRWFjaChjbGFzc05hbWUgPT4ge1xuICAgICAgICAgICAgY29uc3QgaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKGhvc3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke2NsYXNzTmFtZX1gKSkge1xuICAgICAgICAgICAgICAgIGhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShjbGFzc05hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=