{"version":3,"file":"ironsource-fusion-ui-directives-intersection.mjs","sources":["../../../projects/fusion-ui/directives/intersection/intersection.directive.ts","../../../projects/fusion-ui/directives/intersection/intersection.module.ts","../../../projects/fusion-ui/directives/intersection/ironsource-fusion-ui-directives-intersection.ts"],"sourcesContent":["import {Directive, AfterViewInit, OnInit, OnDestroy, ElementRef, EventEmitter, Output, Input} from '@angular/core';\nimport {WindowService} from '@ironsource/fusion-ui/services/window';\nimport {IntersectionOptions} from './intersection';\n\n@Directive({\n    selector: '[fusionIntersection]'\n})\nexport class IntersectionDirective implements OnInit, OnDestroy, AfterViewInit {\n    @Input() set intersectionOptions(value: IntersectionOptions) {\n        this.options = value || {};\n        this.disconnect();\n        this.observe();\n    }\n\n    @Output() fusionIntersection = new EventEmitter<IntersectionObserverEntry>();\n\n    private isSupported: boolean;\n    private isAfterViewInit = false;\n    private observer: IntersectionObserver | null;\n    private options: IntersectionOptions;\n\n    private observerCallback = ([entry]: [IntersectionObserverEntry]): void => {\n        this.fusionIntersection.emit(entry);\n    };\n\n    constructor(private el: ElementRef, private windowService: WindowService) {}\n\n    ngOnInit(): void {\n        this.isSupported = typeof (this.windowService.nativeWindow as any).IntersectionObserver === 'function';\n    }\n\n    ngOnDestroy(): void {\n        this.disconnect();\n    }\n\n    ngAfterViewInit(): void {\n        this.isAfterViewInit = true;\n        this.observe();\n    }\n\n    private observe(): void {\n        if (this.isSupported && this.isAfterViewInit) {\n            const options = this.createObserverOptions();\n            this.observer = new IntersectionObserver(this.observerCallback, options);\n            this.observer.observe(this.el.nativeElement);\n        }\n    }\n\n    private disconnect(): void {\n        if (this.isSupported && this.isAfterViewInit && this.observer) {\n            this.observer.disconnect();\n            this.observer = null;\n        }\n    }\n\n    private createObserverOptions(): IntersectionObserverInit {\n        const options: IntersectionObserverInit = {\n            rootMargin: this.createRootMarginValue()\n        };\n        const root = this.getRoot();\n        if (root) {\n            options.root = root;\n        }\n        if (this.options && this.options.threshold) {\n            options.threshold = this.options.threshold;\n        }\n        return options;\n    }\n\n    private createRootMarginValue(): string {\n        if (!this.options || !this.options.rootMargin) {\n            return '';\n        }\n        return [this.options.rootMargin.top, this.options.rootMargin.left, this.options.rootMargin.bottom, this.options.rootMargin.right]\n            .map(value => {\n                if (typeof value === 'number') {\n                    return value + 'px';\n                }\n                return value || '0px';\n            })\n            .join(' ');\n    }\n\n    private getRoot(): HTMLElement {\n        if (!this.options) {\n            return null;\n        }\n        return typeof this.options.root === 'string'\n            ? this.windowService.nativeWindow.document.querySelector(this.options.root as string)\n            : this.options.root instanceof HTMLElement\n            ? (this.options.root as HTMLElement)\n            : null;\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IntersectionDirective} from './intersection.directive';\n\n@NgModule({\n    declarations: [IntersectionDirective],\n    exports: [IntersectionDirective],\n    imports: [CommonModule]\n})\nexport class IntersectionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}