{"version":3,"file":"taiga-ui-core-services.mjs","sources":["../../../projects/core/services/position.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/services/taiga-ui-core-services.ts"],"sourcesContent":["import {inject, Injectable, NgZone} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {finalize, map, Observable, startWith} from 'rxjs';\n\n@Injectable()\nexport class TuiPositionService extends Observable<TuiPoint> {\n    private readonly el = tuiInjectElement();\n    private readonly accessor = inject(TuiPositionAccessor);\n    private rect?: DOMRect;\n\n    constructor() {\n        const animationFrame$ = inject(WA_ANIMATION_FRAME);\n        const zone = inject(NgZone);\n\n        super((subscriber) =>\n            animationFrame$\n                .pipe(\n                    startWith(null),\n                    map(() => {\n                        const rect = this.el.getBoundingClientRect();\n                        const animations = this.el.getAnimations?.() || [];\n\n                        const animated =\n                            animations.length &&\n                            animations.every(\n                                ({effect}) =>\n                                    effect?.getComputedTiming().progress !== null,\n                            ) &&\n                            animations.some(\n                                (a) =>\n                                    'animationName' in a &&\n                                    a.animationName === 'tuiScale',\n                            );\n\n                        this.rect = (animated && this.rect) || rect;\n\n                        return this.accessor.getPosition(this.rect);\n                    }),\n                    tuiZonefree(zone),\n                    finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\n                )\n                .subscribe(subscriber),\n        );\n    }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {WA_IS_WEBKIT} from '@ng-web-apis/platform';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n@Injectable({providedIn: 'root'})\nexport class TuiVisualViewportService {\n    private readonly isWebkit = inject(WA_IS_WEBKIT);\n    private readonly win = inject(WA_WINDOW);\n\n    // https://bugs.webkit.org/show_bug.cgi?id=207089\n    public correct(point: TuiPoint): TuiPoint {\n        return this.isWebkit\n            ? [\n                  point[0] + (this.win.visualViewport?.offsetLeft ?? 0),\n                  point[1] + (this.win.visualViewport?.offsetTop ?? 0),\n              ]\n            : point;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAUM,MAAO,kBAAmB,SAAQ,UAAoB,CAAA;AAKxD,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAE3B,QAAA,KAAK,CAAC,CAAC,UAAU,KACb;aACK,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAK;YACL,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,IAAI,EAAE;AAElD,YAAA,MAAM,QAAQ,GACV,UAAU,CAAC,MAAM;AACjB,gBAAA,UAAU,CAAC,KAAK,CACZ,CAAC,EAAC,MAAM,EAAC,KACL,MAAM,EAAE,iBAAiB,EAAE,CAAC,QAAQ,KAAK,IAAI,CACpD;gBACD,UAAU,CAAC,IAAI,CACX,CAAC,CAAC,KACE,eAAe,IAAI,CAAC;AACpB,oBAAA,CAAC,CAAC,aAAa,KAAK,UAAU,CACrC;AAEL,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAE3C,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/C,CAAC,CAAC,EACF,WAAW,CAAC,IAAI,CAAC,EACjB,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAE/D,aAAA,SAAS,CAAC,UAAU,CAAC,CAC7B;QApCY,IAAA,CAAA,EAAE,GAAG,gBAAgB,EAAE;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAoCvD;+GAtCS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;MCHY,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;AAC/B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;AAW3C,IAAA;;AARU,IAAA,OAAO,CAAC,KAAe,EAAA;QAC1B,OAAO,IAAI,CAAC;AACR,cAAE;AACI,gBAAA,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,IAAI,CAAC,CAAC;AACrD,gBAAA,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,IAAI,CAAC,CAAC;AACvD;cACD,KAAK;IACf;+GAZS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADZ,MAAM,EAAA,CAAA,CAAA;;4FAClB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;ACLhC;;AAEG;;;;"}