{"version":3,"file":"uipath-angular-directives-ui-scroll-into-view.mjs","sources":["../../../projects/angular/directives/ui-scroll-into-view/src/ui-scroll-into-view.directive.ts","../../../projects/angular/directives/ui-scroll-into-view/src/ui-scroll-into-view.module.ts","../../../projects/angular/directives/ui-scroll-into-view/src/uipath-angular-directives-ui-scroll-into-view.ts"],"sourcesContent":["import { merge } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport scrollIntoViewIfNeeded, { Options } from 'scroll-into-view-if-needed';\n\nimport {\n    Directive,\n    ElementRef,\n    Input,\n    NgZone,\n} from '@angular/core';\n\ntype Boundary = 'parent' | Element;\n\n/**\n * A directive that scrolls an element into view.\n * Depends On: [scroll-into-view-if-needed](https://www.npmjs.com/package/scroll-into-view-if-needed)\n *\n * The browser APIs available for scrolling to an element are very primitive, scrolls on the parents as well as the child.\n * This behavior results in weird jumps in certain scenarios, using `scroll-into-view-if-needed` helps avoid this issue.\n *\n * `scroll-into-view-if-needed` allows us to better control the scroll `boundary` and much more.\n *\n * @export\n */\n@Directive({\n    selector: '[uiScrollIntoView]',\n})\nexport class UiScrollIntoViewDirective {\n    /**\n     * The boundary of the `scroll` effect.\n     *\n     */\n    @Input()\n    boundary: Boundary = 'parent';\n\n    @Input()\n    block: Options['block'] = 'start';\n\n    /**\n     * Configures if the decorated element should be scrolled into view.\n     * eg: `[uiScrollIntoView]=\"isFocused\"`\n     *\n     */\n    @Input()\n    set uiScrollIntoView(condition: boolean) {\n        this._zone.runOutsideAngular(() => {\n            if (!condition) { return; }\n            merge(\n                this._zone.onMicrotaskEmpty,\n                this._zone.onStable,\n            ).\n                pipe(\n                    take(1),\n                ).subscribe(() => {\n                    this.scrollIntoViewIfNeeded(\n                        this._element.nativeElement, {\n                        block: this.block,\n                        boundary: this.boundary === 'parent' ?\n                            this._element.nativeElement.parentElement :\n                            this.boundary,\n                    },\n                    );\n                });\n        });\n    }\n\n    /**\n     * Method that scrolls to the the provided `target`.\n     *\n     */\n    scrollIntoViewIfNeeded = scrollIntoViewIfNeeded;\n\n    /**\n     * @ignore\n     */\n    constructor(\n        private _element: ElementRef,\n        private _zone: NgZone,\n    ) { }\n}\n","import { NgModule } from '@angular/core';\n\nimport { UiScrollIntoViewDirective } from './ui-scroll-into-view.directive';\n\n@NgModule({\n    declarations: [UiScrollIntoViewDirective],\n    exports: [UiScrollIntoViewDirective],\n})\nexport class UiScrollIntoViewModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;AAaA;;;;;;;;;;AAUG;MAIU,yBAAyB,CAAA;AAWlC;;;;AAIG;IACH,IACI,gBAAgB,CAAC,SAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAK;YAC9B,IAAI,CAAC,SAAS,EAAE;gBAAE,OAAO;AAAE,aAAA;AAC3B,YAAA,KAAK,CACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CACtB;gBACG,IAAI,CACA,IAAI,CAAC,CAAC,CAAC,CACV,CAAC,SAAS,CAAC,MAAK;gBACb,IAAI,CAAC,sBAAsB,CACvB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,oBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ;AAChC,wBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa;AACzC,wBAAA,IAAI,CAAC,QAAQ;AACpB,iBAAA,CACA,CAAC;AACN,aAAC,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;KACN;AAQD;;AAEG;IACH,WACY,CAAA,QAAoB,EACpB,KAAa,EAAA;QADb,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAY;QACpB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AAjDzB;;;AAGG;QAEH,IAAQ,CAAA,QAAA,GAAa,QAAQ,CAAC;QAG9B,IAAK,CAAA,KAAA,GAAqB,OAAO,CAAC;AA8BlC;;;AAGG;QACH,IAAsB,CAAA,sBAAA,GAAG,sBAAsB,CAAC;KAQ3C;;sHAnDI,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AACjC,iBAAA,CAAA;sHAOG,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBASF,gBAAgB,EAAA,CAAA;sBADnB,KAAK;;;MCnCG,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;oHAAtB,sBAAsB,EAAA,YAAA,EAAA,CAHhB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAC9B,yBAAyB,CAAA,EAAA,CAAA,CAAA;oHAE1B,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACvC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}