UNPKG

@edugouvfr/ngx-dsfr

Version:

NgxDsfr est un portage Angular des éléments d'interface du Système de Design de l'État Français (DSFR).

44 lines 5.44 kB
import { Directive, EventEmitter, Input, Output } from '@angular/core'; import * as i0 from "@angular/core"; export class WatchAttrDirective { constructor(elementRef) { this.elementRef = elementRef; // /** // * Obligatoire : permet d'indiquer quel attribut on souhaite observer. // */ // @Input() attrObserver: string; this.watchAttrName = undefined; this.watchAttr = new EventEmitter(); const element = this.elementRef.nativeElement; this._changes = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (this.watchAttrName === undefined || (this.watchAttrName.trim().length > 0 && this.watchAttrName.trim() === mutation.attributeName)) { this.watchAttr.emit(mutation); } }); }); this._changes.observe(element, { attributes: true, childList: false, characterData: false, }); } ngOnDestroy() { this._changes.disconnect(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WatchAttrDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WatchAttrDirective, isStandalone: true, selector: "[watchAttr]", inputs: { watchAttrName: "watchAttrName" }, outputs: { watchAttr: "watchAttr" }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WatchAttrDirective, decorators: [{ type: Directive, args: [{ selector: '[watchAttr]', standalone: true, }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { watchAttrName: [{ type: Input }], watchAttr: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtYXR0ci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHNmci1jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvd2F0Y2gtYXR0ci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNOUYsTUFBTSxPQUFPLGtCQUFrQjtJQWM3QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBYjFDLE1BQU07UUFDTix5RUFBeUU7UUFDekUsTUFBTTtRQUNOLGlDQUFpQztRQUcxQixrQkFBYSxHQUF1QixTQUFTLENBQUM7UUFHOUMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBS3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTlDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUNuRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO2dCQUM3QyxJQUNFLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUztvQkFDaEMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQzlGO29CQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMvQjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDN0IsVUFBVSxFQUFFLElBQUk7WUFDaEIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdCLENBQUM7K0dBckNVLGtCQUFrQjttR0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7aUdBUVEsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxTQUFTO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YXRjaEF0dHJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0Y2hBdHRyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gLyoqXG4gIC8vICAqIE9ibGlnYXRvaXJlIDogcGVybWV0IGQnaW5kaXF1ZXIgcXVlbCBhdHRyaWJ1dCBvbiBzb3VoYWl0ZSBvYnNlcnZlci5cbiAgLy8gICovXG4gIC8vIEBJbnB1dCgpIGF0dHJPYnNlcnZlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB3YXRjaEF0dHJOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB3YXRjaEF0dHIgPSBuZXcgRXZlbnRFbWl0dGVyPE11dGF0aW9uUmVjb3JkPigpO1xuXG4gIHByaXZhdGUgX2NoYW5nZXM6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5fY2hhbmdlcyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IHtcbiAgICAgIG11dGF0aW9ucy5mb3JFYWNoKChtdXRhdGlvbjogTXV0YXRpb25SZWNvcmQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMud2F0Y2hBdHRyTmFtZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgKHRoaXMud2F0Y2hBdHRyTmFtZS50cmltKCkubGVuZ3RoID4gMCAmJiB0aGlzLndhdGNoQXR0ck5hbWUudHJpbSgpID09PSBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLndhdGNoQXR0ci5lbWl0KG11dGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9jaGFuZ2VzLm9ic2VydmUoZWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGNoaWxkTGlzdDogZmFsc2UsXG4gICAgICBjaGFyYWN0ZXJEYXRhOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZXMuZGlzY29ubmVjdCgpO1xuICB9XG59XG4iXX0=