{"version":3,"file":"ironsource-fusion-ui-directives-scroll-to.mjs","sources":["../../../projects/fusion-ui/directives/scroll-to/scroll-to.service.ts","../../../projects/fusion-ui/directives/scroll-to/scroll-to.directive.ts","../../../projects/fusion-ui/directives/scroll-to/scroll-to.module.ts","../../../projects/fusion-ui/directives/scroll-to/ironsource-fusion-ui-directives-scroll-to.ts"],"sourcesContent":["import {Inject, Injectable} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n/** @dynamic */\n@Injectable({\n    providedIn: 'root'\n})\nexport class ScrollToService {\n    constructor(@Inject(DOCUMENT) private document: Document) {}\n\n    /**\n     * Scroll to element\n     */\n    public scrollTo({\n        element,\n        duration = 500,\n        offset = 0,\n        mainView = 'body'\n    }: {\n        element: string | HTMLElement;\n        duration: number;\n        offset: number;\n        mainView: string;\n    }) {\n        const el = this._getElem(element);\n        if (!el) {\n            throw new Error(`Element [${element}] for isScrollTo not found`);\n        }\n        this._scrollToElement(el as HTMLElement, duration, offset, mainView);\n    }\n\n    /**\n     * Get HTMLElement\n     */\n    private _getElem(element: string | HTMLElement) {\n        return typeof element === 'string'\n            ? this.document.querySelector(element as string)\n            : element instanceof HTMLElement\n            ? element\n            : null;\n    }\n\n    /**\n     * Do scroll to the element\n     */\n    private _scrollToElement(el: HTMLElement, duration: number, offset: number, mainView: string) {\n        if (el) {\n            // just suppress lint warning\n            offset = offset;\n            // todo: temp code, without animation\n            el.scrollIntoView();\n\n            // if(!el.offsetTop){\n            if (offset) {\n                // todo: need to fix this 'hardcoded' selection\n                this.document.querySelector(mainView).scrollTop -= offset;\n            }\n            // }\n            // --------------------------------------------------\n            // this._doScrolling(el.offsetTop + offset, duration);\n        } else {\n            throw new Error('Element for isScrollTo not found');\n        }\n    }\n\n    // todo: check scroll with animation,  window.scrollTo do not work ;((\n\n    /*    private _doScrolling(elementY, duration) {\n   const startingY = window.pageYOffset;\n   const diff = elementY - startingY;\n   let start;\n\n   window.requestAnimationFrame(function step(timestamp) {\n   start = (!start) ? timestamp : start;\n\n   const time = timestamp - start;\n   let percent = Math.min(time / duration, 1);\n\n   console.log(\">\",percent, startingY + diff * percent)\n\n   window.scrollTo(0, startingY + diff * percent);\n\n   if (time < duration) {\n   window.requestAnimationFrame(step);\n   }\n   });\n   }*/\n}\n","import {Directive, HostListener, Input, OnInit} from '@angular/core';\nimport {ScrollToService} from './scroll-to.service';\n\n@Directive({\n    selector: '[fusionScrollTo]'\n})\nexport class ScrollToDirective implements OnInit {\n    @Input() fusionScrollTo: string;\n    @Input() scrollDuration: number;\n    @Input() scrollOffset: number;\n    @Input() scrollMainView: string;\n\n    constructor(private scrollToService: ScrollToService) {}\n\n    ngOnInit(): void {\n        this.scrollDuration = !this.scrollDuration ? 500 : this.scrollDuration;\n        this.scrollOffset = !this.scrollOffset ? 0 : this.scrollOffset;\n    }\n\n    @HostListener('mouseup')\n    onMouseClick() {\n        if (this.fusionScrollTo) {\n            this.scrollToService.scrollTo({\n                element: this.fusionScrollTo,\n                duration: this.scrollDuration,\n                offset: this.scrollOffset,\n                mainView: this.scrollMainView\n            });\n        }\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ScrollToDirective} from './scroll-to.directive';\n\n@NgModule({\n    declarations: [ScrollToDirective],\n    exports: [ScrollToDirective],\n    imports: [CommonModule]\n})\nexport class ScrollToModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ScrollToService"],"mappings":"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"}