UNPKG

@ng-web-apis/mutation-observer

Version:
69 lines 7.62 kB
import { Directive, ElementRef, EventEmitter, inject, Input, Output } from '@angular/core'; import { SafeObserver } from '../classes/safe-observer'; import { MUTATION_OBSERVER_INIT } from '../tokens/mutation-observer-init'; import { mutationObserverInitFactory } from '../utils/mutation-observer-init-factory'; import * as i0 from "@angular/core"; class WaMutationObserver extends SafeObserver { nativeElement = inject(ElementRef).nativeElement; config = inject(MUTATION_OBSERVER_INIT); attributeFilter = ''; attributeOldValue = ''; attributes = ''; characterData = ''; characterDataOldValue = ''; childList = ''; subtree = ''; waMutationObserver = new EventEmitter(); constructor() { super((records) => { this.waMutationObserver.emit(records); }); this.observe(this.nativeElement, this.config); } ngOnDestroy() { this.disconnect(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaMutationObserver, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: WaMutationObserver, isStandalone: true, selector: "[waMutationObserver]", inputs: { attributeFilter: "attributeFilter", attributeOldValue: "attributeOldValue", attributes: "attributes", characterData: "characterData", characterDataOldValue: "characterDataOldValue", childList: "childList", subtree: "subtree" }, outputs: { waMutationObserver: "waMutationObserver" }, providers: [ { provide: MUTATION_OBSERVER_INIT, useFactory: mutationObserverInitFactory, }, ], exportAs: ["MutationObserver"], usesInheritance: true, ngImport: i0 }); } export { WaMutationObserver }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WaMutationObserver, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[waMutationObserver]', providers: [ { provide: MUTATION_OBSERVER_INIT, useFactory: mutationObserverInitFactory, }, ], exportAs: 'MutationObserver', }] }], ctorParameters: function () { return []; }, propDecorators: { attributeFilter: [{ type: Input }], attributeOldValue: [{ type: Input }], attributes: [{ type: Input }], characterData: [{ type: Input }], characterDataOldValue: [{ type: Input }], childList: [{ type: Input }], subtree: [{ type: Input }], waMutationObserver: [{ type: Output }] } }); /** * @deprecated: use {@link WaMutationObserver} */ export const MutationObserverDirective = WaMutationObserver; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb24tb2JzZXJ2ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9tdXRhdGlvbi1vYnNlcnZlci9zcmMvZGlyZWN0aXZlcy9tdXRhdGlvbi1vYnNlcnZlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFFcEYsTUFXYSxrQkFBbUIsU0FBUSxZQUFZO0lBQy9CLGFBQWEsR0FBUyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO0lBQ3ZELE1BQU0sR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUdsRCxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBR3JCLGlCQUFpQixHQUFHLEVBQVcsQ0FBQztJQUdoQyxVQUFVLEdBQUcsRUFBVyxDQUFDO0lBR3pCLGFBQWEsR0FBRyxFQUFXLENBQUM7SUFHNUIscUJBQXFCLEdBQUcsRUFBVyxDQUFDO0lBR3BDLFNBQVMsR0FBRyxFQUFXLENBQUM7SUFHeEIsT0FBTyxHQUFHLEVBQVcsQ0FBQztJQUdiLGtCQUFrQixHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBRTFFO1FBQ0ksS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDZCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO3dHQXRDUSxrQkFBa0I7NEZBQWxCLGtCQUFrQix3V0FSaEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixVQUFVLEVBQUUsMkJBQTJCO2FBQzFDO1NBQ0o7O1NBR1Esa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBWDlCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsc0JBQXNCOzRCQUMvQixVQUFVLEVBQUUsMkJBQTJCO3lCQUMxQztxQkFDSjtvQkFDRCxRQUFRLEVBQUUsa0JBQWtCO2lCQUMvQjswRUFNVSxlQUFlO3NCQURyQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMscUJBQXFCO3NCQUQzQixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSVUsa0JBQWtCO3NCQURqQyxNQUFNOztBQWdCWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWF0dHJpYnV0ZS1kZWNvcmF0b3IgKi9cbmltcG9ydCB0eXBlIHtPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtTYWZlT2JzZXJ2ZXJ9IGZyb20gJy4uL2NsYXNzZXMvc2FmZS1vYnNlcnZlcic7XG5pbXBvcnQge01VVEFUSU9OX09CU0VSVkVSX0lOSVR9IGZyb20gJy4uL3Rva2Vucy9tdXRhdGlvbi1vYnNlcnZlci1pbml0JztcbmltcG9ydCB7bXV0YXRpb25PYnNlcnZlckluaXRGYWN0b3J5fSBmcm9tICcuLi91dGlscy9tdXRhdGlvbi1vYnNlcnZlci1pbml0LWZhY3RvcnknO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dhTXV0YXRpb25PYnNlcnZlcl0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNVVRBVElPTl9PQlNFUlZFUl9JTklULFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogbXV0YXRpb25PYnNlcnZlckluaXRGYWN0b3J5LFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICdNdXRhdGlvbk9ic2VydmVyJyxcbn0pXG5leHBvcnQgY2xhc3MgV2FNdXRhdGlvbk9ic2VydmVyIGV4dGVuZHMgU2FmZU9ic2VydmVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQ6IE5vZGUgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChNVVRBVElPTl9PQlNFUlZFUl9JTklUKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF0dHJpYnV0ZUZpbHRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXR0cmlidXRlT2xkVmFsdWUgPSAnJyBhcyBjb25zdDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF0dHJpYnV0ZXMgPSAnJyBhcyBjb25zdDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNoYXJhY3RlckRhdGEgPSAnJyBhcyBjb25zdDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNoYXJhY3RlckRhdGFPbGRWYWx1ZSA9ICcnIGFzIGNvbnN0O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2hpbGRMaXN0ID0gJycgYXMgY29uc3Q7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdWJ0cmVlID0gJycgYXMgY29uc3Q7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgd2FNdXRhdGlvbk9ic2VydmVyID0gbmV3IEV2ZW50RW1pdHRlcjxNdXRhdGlvblJlY29yZFtdPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKChyZWNvcmRzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLndhTXV0YXRpb25PYnNlcnZlci5lbWl0KHJlY29yZHMpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHVzZSB7QGxpbmsgV2FNdXRhdGlvbk9ic2VydmVyfVxuICovXG5leHBvcnQgY29uc3QgTXV0YXRpb25PYnNlcnZlckRpcmVjdGl2ZSA9IFdhTXV0YXRpb25PYnNlcnZlcjtcbiJdfQ==