{"version":3,"file":"ng-web-apis-mutation-observer.mjs","sources":["../../../libs/mutation-observer/src/classes/safe-observer.ts","../../../libs/mutation-observer/src/tokens/mutation-observer-init.ts","../../../libs/mutation-observer/src/utils/boolean-attribute.ts","../../../libs/mutation-observer/src/utils/mutation-observer-init-factory.ts","../../../libs/mutation-observer/src/directives/mutation-observer.directive.ts","../../../libs/mutation-observer/src/services/mutation-observer.service.ts","../../../libs/mutation-observer/src/ng-web-apis-mutation-observer.ts"],"sourcesContent":["export const SafeObserver =\n    typeof MutationObserver !== 'undefined'\n        ? MutationObserver\n        : class implements MutationObserver {\n              public observe(): void {}\n              public disconnect(): void {}\n              public takeRecords(): MutationRecord[] {\n                  return [];\n              }\n          };\n","import {InjectionToken, type Provider} from '@angular/core';\n\nexport const WA_MUTATION_OBSERVER_INIT = new InjectionToken<MutationObserverInit>(\n    ngDevMode ? '[WA_MUTATION_OBSERVER_INIT]' : '',\n);\n\nexport function provideMutationObserverInit(useValue: MutationObserverInit): Provider {\n    return {provide: WA_MUTATION_OBSERVER_INIT, useValue};\n}\n","export function booleanAttribute(element: Element, attribute: string): true | undefined {\n    return element.getAttribute(attribute) !== null || undefined;\n}\n","import {ElementRef, inject} from '@angular/core';\n\nimport {booleanAttribute} from './boolean-attribute';\n\nexport function mutationObserverInitFactory(): MutationObserverInit {\n    const {nativeElement} = inject(ElementRef);\n    const attributeFilter: string | null = nativeElement.getAttribute('attributeFilter');\n\n    return {\n        attributeFilter: attributeFilter?.split(',').map((attr) => attr.trim()),\n        attributeOldValue: booleanAttribute(nativeElement, 'attributeOldValue'),\n        attributes: booleanAttribute(nativeElement, 'attributes'),\n        characterData: booleanAttribute(nativeElement, 'characterData'),\n        characterDataOldValue: booleanAttribute(nativeElement, 'characterDataOldValue'),\n        childList: booleanAttribute(nativeElement, 'childList'),\n        subtree: booleanAttribute(nativeElement, 'subtree'),\n    };\n}\n","import {Directive, ElementRef, inject, type OnDestroy, output} from '@angular/core';\n\nimport {SafeObserver} from '../classes/safe-observer';\nimport {WA_MUTATION_OBSERVER_INIT} from '../tokens/mutation-observer-init';\nimport {mutationObserverInitFactory} from '../utils/mutation-observer-init-factory';\n\n@Directive({\n    selector: '[waMutationObserver]',\n    inputs: [\n        'attributeFilter',\n        'attributeOldValue',\n        'attributes',\n        'characterData',\n        'characterDataOldValue',\n        'childList',\n        'subtree',\n    ],\n    providers: [\n        {provide: WA_MUTATION_OBSERVER_INIT, useFactory: mutationObserverInitFactory},\n    ],\n    exportAs: 'MutationObserver',\n})\nexport class WaMutationObserver extends SafeObserver implements OnDestroy {\n    private readonly nativeElement: Node = inject(ElementRef).nativeElement;\n    private readonly config = inject(WA_MUTATION_OBSERVER_INIT);\n\n    public attributeFilter = '';\n    public attributeOldValue = '' as const;\n    public attributes = '' as const;\n    public characterData = '' as const;\n    public characterDataOldValue = '' as const;\n    public childList = '' as const;\n    public subtree = '' as const;\n\n    public readonly waMutationObserver = output<MutationRecord[]>();\n\n    constructor() {\n        super((records) => {\n            this.waMutationObserver.emit(records);\n        });\n\n        this.observe(this.nativeElement, this.config);\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n}\n","import {ElementRef, inject, Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {SafeObserver} from '../classes/safe-observer';\nimport {WA_MUTATION_OBSERVER_INIT} from '../tokens/mutation-observer-init';\n\n@Injectable()\nexport class WaMutationObserverService extends Observable<readonly MutationRecord[]> {\n    constructor() {\n        const nativeElement: Node = inject(ElementRef).nativeElement;\n        const config = inject(WA_MUTATION_OBSERVER_INIT);\n\n        super((subscriber) => {\n            const observer = new SafeObserver((records) => {\n                subscriber.next(records);\n            });\n\n            observer.observe(nativeElement, config);\n\n            return () => {\n                observer.disconnect();\n            };\n        });\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}