{"version":3,"file":"ng-web-apis-intersection-observer.mjs","sources":["../../../libs/intersection-observer/src/classes/safe-observer.ts","../../../libs/intersection-observer/src/tokens/intersection-root.ts","../../../libs/intersection-observer/src/tokens/intersection-root-margin.ts","../../../libs/intersection-observer/src/utils/root-margin-factory.ts","../../../libs/intersection-observer/src/tokens/intersection-threshold.ts","../../../libs/intersection-observer/src/utils/threshold-factory.ts","../../../libs/intersection-observer/src/directives/intersection-observer.directive.ts","../../../libs/intersection-observer/src/services/intersection-observee.service.ts","../../../libs/intersection-observer/src/directives/intersection-observee.directive.ts","../../../libs/intersection-observer/src/directives/intersection-root.directive.ts","../../../libs/intersection-observer/src/module.ts","../../../libs/intersection-observer/src/services/intersection-observer.service.ts","../../../libs/intersection-observer/src/tokens/support.ts","../../../libs/intersection-observer/src/ng-web-apis-intersection-observer.ts"],"sourcesContent":["export const SafeObserver =\n    typeof IntersectionObserver !== 'undefined'\n        ? IntersectionObserver\n        : class implements IntersectionObserver {\n              public readonly root = null;\n              public readonly rootMargin = '';\n              public readonly thresholds = [];\n              public observe(): void {}\n              public unobserve(): void {}\n              public disconnect(): void {}\n              public takeRecords(): IntersectionObserverEntry[] {\n                  return [];\n              }\n          };\n","import type {ElementRef} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\n\nexport const WA_INTERSECTION_ROOT = new InjectionToken<ElementRef<Element>>(\n    '[WA_INTERSECTION_ROOT]',\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_INTERSECTION_ROOT}\n */\nexport const INTERSECTION_ROOT = WA_INTERSECTION_ROOT;\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_INTERSECTION_ROOT_MARGIN_DEFAULT = '0px 0px 0px 0px';\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_INTERSECTION_ROOT_MARGIN_DEFAULT}\n */\nexport const INTERSECTION_ROOT_MARGIN_DEFAULT = WA_INTERSECTION_ROOT_MARGIN_DEFAULT;\n\nexport const WA_INTERSECTION_ROOT_MARGIN = new InjectionToken<string>(\n    '[WA_INTERSECTION_ROOT_MARGIN]',\n    {\n        providedIn: 'root',\n        factory: () => INTERSECTION_ROOT_MARGIN_DEFAULT,\n    },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_INTERSECTION_ROOT_MARGIN}\n */\nexport const INTERSECTION_ROOT_MARGIN = WA_INTERSECTION_ROOT_MARGIN;\n","import {ElementRef, inject} from '@angular/core';\n\nimport {INTERSECTION_ROOT_MARGIN_DEFAULT} from '../tokens/intersection-root-margin';\n\nexport function rootMarginFactory(): string {\n    return (\n        inject(ElementRef).nativeElement.getAttribute('waIntersectionRootMargin') ||\n        INTERSECTION_ROOT_MARGIN_DEFAULT\n    );\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_INTERSECTION_THRESHOLD_DEFAULT = 0;\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_INTERSECTION_THRESHOLD_DEFAULT}\n */\nexport const INTERSECTION_THRESHOLD_DEFAULT = WA_INTERSECTION_THRESHOLD_DEFAULT;\n\nexport const WA_INTERSECTION_THRESHOLD = new InjectionToken<number[] | number>(\n    '[WA_INTERSECTION_THRESHOLD]',\n    {\n        providedIn: 'root',\n        factory: () => INTERSECTION_THRESHOLD_DEFAULT,\n    },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_INTERSECTION_THRESHOLD}\n */\nexport const INTERSECTION_THRESHOLD = WA_INTERSECTION_THRESHOLD;\n","import {ElementRef, inject} from '@angular/core';\n\nimport {INTERSECTION_THRESHOLD_DEFAULT} from '../tokens/intersection-threshold';\n\nexport function thresholdFactory(): number[] | number {\n    return (\n        inject(ElementRef)\n            .nativeElement.getAttribute('waIntersectionThreshold')\n            ?.split(',')\n            .map(parseFloat) || INTERSECTION_THRESHOLD_DEFAULT\n    );\n}\n","/* eslint-disable @angular-eslint/no-attribute-decorator */\nimport type {OnDestroy} from '@angular/core';\nimport {Directive, inject} from '@angular/core';\n\nimport {SafeObserver} from '../classes/safe-observer';\nimport {INTERSECTION_ROOT} from '../tokens/intersection-root';\nimport {rootMarginFactory} from '../utils/root-margin-factory';\nimport {thresholdFactory} from '../utils/threshold-factory';\n\n@Directive({\n    standalone: true,\n    selector: '[waIntersectionObserver]',\n    inputs: ['margin: waIntersectionRootMargin', 'threshold: waIntersectionThreshold'],\n    exportAs: 'IntersectionObserver',\n})\nexport class WaIntersectionObserverDirective extends SafeObserver implements OnDestroy {\n    private readonly callbacks = new Map<Element, IntersectionObserverCallback>();\n\n    public margin = '';\n    public threshold = '';\n\n    constructor() {\n        const root = inject(INTERSECTION_ROOT, {optional: true});\n\n        super(\n            (entries) => {\n                this.callbacks.forEach((callback, element) => {\n                    const filtered = entries.filter(({target}) => target === element);\n\n                    return filtered.length && callback(filtered, this);\n                });\n            },\n            {\n                root: root?.nativeElement,\n                rootMargin: rootMarginFactory(),\n                threshold: thresholdFactory(),\n            },\n        );\n    }\n\n    public override observe(\n        target: Element,\n        callback: IntersectionObserverCallback = () => {},\n    ): void {\n        super.observe(target);\n        this.callbacks.set(target, callback);\n    }\n\n    public override unobserve(target: Element): void {\n        super.unobserve(target);\n        this.callbacks.delete(target);\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n}\n\n/**\n * @deprecated: use {@link WaIntersectionObserverDirective}\n */\nexport const IntersectionObserverDirective = WaIntersectionObserverDirective;\n\n/**\n * @deprecated: use {@link WaIntersectionObserver}\n */\nexport const WaObserver = WaIntersectionObserverDirective;\n","import {ElementRef, inject, Injectable} from '@angular/core';\nimport {Observable, share} from 'rxjs';\n\nimport {WaIntersectionObserverDirective} from '../directives/intersection-observer.directive';\n\n@Injectable()\nexport class IntersectionObserveeService extends Observable<IntersectionObserverEntry[]> {\n    constructor() {\n        const nativeElement: Element = inject(ElementRef).nativeElement;\n        const observer = inject(WaIntersectionObserverDirective);\n\n        super((subscriber) => {\n            observer.observe(nativeElement, (entries) => {\n                subscriber.next(entries);\n            });\n\n            return () => {\n                observer.unobserve(nativeElement);\n            };\n        });\n\n        return this.pipe(share());\n    }\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {IntersectionObserveeService} from '../services/intersection-observee.service';\n\n@Directive({\n    standalone: true,\n    selector: '[waIntersectionObservee]',\n    outputs: ['waIntersectionObservee'],\n    providers: [IntersectionObserveeService],\n})\nexport class WaIntersectionObservee {\n    protected readonly waIntersectionObservee = inject(IntersectionObserveeService);\n}\n\n/**\n * @deprecated: use {@link WaIntersectionObservee}\n */\nexport const IntersectionObserveeDirective = WaIntersectionObservee;\n\n/**\n * @deprecated: use {@link WaIntersectionObservee}\n */\nexport const WaObservee = WaIntersectionObservee;\n","import {Directive, ElementRef} from '@angular/core';\n\nimport {INTERSECTION_ROOT} from '../tokens/intersection-root';\n\n@Directive({\n    standalone: true,\n    selector: '[waIntersectionRoot]',\n    providers: [\n        {\n            provide: INTERSECTION_ROOT,\n            useExisting: ElementRef,\n        },\n    ],\n})\nexport class WaIntersectionRoot {}\n\n/**\n * @deprecated: use {@link WaIntersectionRoot}\n */\nexport const IntersectionRootDirective = WaIntersectionRoot;\n","import {NgModule} from '@angular/core';\n\nimport {WaIntersectionObservee} from './directives/intersection-observee.directive';\nimport {WaIntersectionObserverDirective} from './directives/intersection-observer.directive';\nimport {WaIntersectionRoot} from './directives/intersection-root.directive';\n\nexport const WaIntersectionObserver = [\n    WaIntersectionObserverDirective,\n    WaIntersectionObservee,\n    WaIntersectionRoot,\n] as const;\n\n/**\n * @deprecated: use {@link WaIntersectionObserver}\n */\n@NgModule({\n    imports: [\n        WaIntersectionObserverDirective,\n        WaIntersectionObservee,\n        WaIntersectionRoot,\n    ],\n    exports: [\n        WaIntersectionObserverDirective,\n        WaIntersectionObservee,\n        WaIntersectionRoot,\n    ],\n})\nexport class IntersectionObserverModule {}\n","import {ElementRef, inject, Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\n\nimport {SafeObserver} from '../classes/safe-observer';\nimport {INTERSECTION_ROOT} from '../tokens/intersection-root';\nimport {INTERSECTION_ROOT_MARGIN} from '../tokens/intersection-root-margin';\nimport {INTERSECTION_THRESHOLD} from '../tokens/intersection-threshold';\n\n@Injectable()\nexport class IntersectionObserverService extends Observable<IntersectionObserverEntry[]> {\n    private readonly nativeElement: Element = inject(ElementRef).nativeElement;\n    private readonly rootMargin = inject(INTERSECTION_ROOT_MARGIN);\n    private readonly threshold = inject(INTERSECTION_THRESHOLD);\n    private readonly root: Element | null =\n        inject(INTERSECTION_ROOT, {optional: true})?.nativeElement ?? null;\n\n    constructor() {\n        super((subscriber) => {\n            const observer = new SafeObserver(\n                (entries) => {\n                    subscriber.next(entries);\n                },\n                {\n                    root: this.root,\n                    rootMargin: this.rootMargin,\n                    threshold: this.threshold,\n                },\n            );\n\n            observer.observe(this.nativeElement);\n\n            return () => {\n                observer.disconnect();\n            };\n        });\n    }\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\n\nexport const WA_INTERSECTION_OBSERVER_SUPPORT = new InjectionToken<boolean>(\n    '[WA_INTERSECTION_OBSERVER_SUPPORT]: [INTERSECTION_OBSERVER_SUPPORT]',\n    {\n        providedIn: 'root',\n        factory: () => !!(inject(WA_WINDOW) as any).IntersectionObserver,\n    },\n);\n\n/**\n * @deprecated: drop in v5.0, use {@link WA_INTERSECTION_OBSERVER_SUPPORT}\n */\nexport const INTERSECTION_OBSERVER_SUPPORT = WA_INTERSECTION_OBSERVER_SUPPORT;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}