{"version":3,"file":"taiga-ui-cdk-directives-pan.mjs","sources":["../../../projects/cdk/directives/pan/pan.service.ts","../../../projects/cdk/directives/pan/pan.directive.ts","../../../projects/cdk/directives/pan/taiga-ui-cdk-directives-pan.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n    filter,\n    map,\n    merge,\n    Observable,\n    pairwise,\n    repeat,\n    switchMap,\n    takeUntil,\n} from 'rxjs';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n    constructor() {\n        const el = tuiInjectElement();\n        const doc = inject(DOCUMENT);\n\n        super((subscriber) =>\n            merge(\n                tuiTypedFromEvent(el, 'touchstart', {passive: true}),\n                tuiTypedFromEvent(el, 'mousedown'),\n            )\n                .pipe(\n                    switchMap(() =>\n                        merge(\n                            tuiTypedFromEvent(doc, 'touchmove', {passive: true}).pipe(\n                                filter(({touches}) => touches.length < 2),\n                                map(({touches}) => touches[0]),\n                            ),\n                            tuiTypedFromEvent(doc, 'mousemove'),\n                        ),\n                    ),\n                    pairwise(),\n                    map(([first, second]) => {\n                        const deltaX = (second?.clientX ?? 0) - (first?.clientX ?? 0);\n                        const deltaY = (second?.clientY ?? 0) - (first?.clientY ?? 0);\n\n                        return [deltaX, deltaY] as [number, number];\n                    }),\n                    takeUntil(\n                        merge(\n                            tuiTypedFromEvent(doc, 'touchend'),\n                            tuiTypedFromEvent(doc, 'mouseup'),\n                        ),\n                    ),\n                    repeat(),\n                )\n                .subscribe(subscriber),\n        );\n    }\n}\n","import {Directive, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\n\nimport {TuiPanService} from './pan.service';\n\n@Directive({\n    selector: '[tuiPan]',\n    providers: [TuiPanService],\n})\nexport class TuiPan {\n    public readonly tuiPan = outputFromObservable(inject(TuiPanService));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAgBM,MAAO,aAAc,SAAQ,UAAqC,CAAA;AACpE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,EAAE,GAAG,gBAAgB,EAAE;AAC7B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE5B,KAAK,CAAC,CAAC,UAAU,KACb,KAAK,CACD,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EACpD,iBAAiB,CAAC,EAAE,EAAE,WAAW,CAAC;AAEjC,aAAA,IAAI,CACD,SAAS,CAAC,MACN,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EACzC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CACjC,EACD,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CACtC,CACJ,EACD,QAAQ,EAAE,EACV,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAI;AACpB,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAC7D,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;AAE7D,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAqB;QAC/C,CAAC,CAAC,EACF,SAAS,CACL,KAAK,CACD,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,EAClC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CACpC,CACJ,EACD,MAAM,EAAE;AAEX,aAAA,SAAS,CAAC,UAAU,CAAC,CAC7B;IACL;+GArCS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAb,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;;MCNY,MAAM,CAAA;AAJnB,IAAA,WAAA,GAAA;QAKoB,IAAA,CAAA,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACvE,IAAA;+GAFY,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAFJ,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEjB,MAAM,EAAA,UAAA,EAAA,CAAA;kBAJlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC7B,iBAAA;;;ACRD;;AAEG;;;;"}