{"version":3,"file":"bespunky-angular-cdk-reactive-input-mouse.mjs","sources":["../../../../libs/angular-cdk/reactive-input/mouse/src/types/mouse-buttons.ts","../../../../libs/angular-cdk/reactive-input/mouse/src/services/reactive-mouse.service.ts","../../../../libs/angular-cdk/reactive-input/mouse/src/bespunky-angular-cdk-reactive-input-mouse.ts"],"sourcesContent":["export type MouseButton = 'main' | 'secondary' | 'aux' | 'fourth' | 'fifth';\n\nexport const MouseButtonNumbers: Record<MouseButton, number> = {\n    main     : 0,\n    aux      : 1,\n    secondary: 2,\n    fourth   : 3,\n    fifth    : 4\n};","import { Observable             } from 'rxjs';\nimport { filter                 } from 'rxjs/operators';\nimport { ElementRef, Injectable } from '@angular/core';\nimport { DocumentRef            } from '@bespunky/angular-zen';\n\nimport { createReactiveInputWithModifiersObservable } from '@bespunky/angular-cdk/reactive-input/shared';\nimport { MouseWheelFeedConfig                       } from '../feeds/mouse-wheel-feed-config';\nimport { MouseDownFeedConfig                        } from '../feeds/mouse-down-feed-config';\nimport { MouseEventName                             } from '../types/mouse-event';\nimport { MouseButtonNumbers                         } from '../types/mouse-buttons';\n\n@Injectable({ providedIn: 'root' })\nexport class ReactiveMouseService\n{\n    public wheel(element: ElementRef | DocumentRef, config?: MouseWheelFeedConfig): Observable<WheelEvent>\n    {\n        const { direction } = config || {};\n\n        let wheel = createReactiveInputWithModifiersObservable<WheelEvent>(element, 'wheel', config) as Observable<WheelEvent>;\n        \n        // A direction (i.e. deltaX, deltaY) different to zero means movement in that direction\n        if (direction) wheel = wheel.pipe(filter(e => e[direction] !== 0));\n\n        return wheel;\n    }\n\n    public button(element: ElementRef | DocumentRef, eventName: MouseEventName, config?: MouseDownFeedConfig): Observable<MouseEvent>\n    {\n        const { button } = config || {};\n\n        let mouseButton = createReactiveInputWithModifiersObservable<MouseEvent>(element, eventName, config) as Observable<MouseEvent>;\n        \n        if (button)\n        {\n            const buttonNumber = typeof button === 'number' ? button : MouseButtonNumbers[button];\n\n            mouseButton = mouseButton.pipe(filter(e => e.button === buttonNumber));\n        }\n\n        return mouseButton;\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAEa,MAAA,kBAAkB,GAAgC;AAC3D,IAAA,IAAI,EAAO,CAAC;AACZ,IAAA,GAAG,EAAQ,CAAC;AACZ,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,MAAM,EAAK,CAAC;AACZ,IAAA,KAAK,EAAM,CAAC;;;MCKH,oBAAoB,CAAA;IAEtB,KAAK,CAAC,OAAiC,EAAE,MAA6B,EAAA;AAEzE,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAEnC,IAAI,KAAK,GAAG,0CAA0C,CAAa,OAAO,EAAE,OAAO,EAAE,MAAM,CAA2B,CAAC;;AAGvH,QAAA,IAAI,SAAS;AAAE,YAAA,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnE,QAAA,OAAO,KAAK,CAAC;KAChB;AAEM,IAAA,MAAM,CAAC,OAAiC,EAAE,SAAyB,EAAE,MAA4B,EAAA;AAEpG,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAEhC,IAAI,WAAW,GAAG,0CAA0C,CAAa,OAAO,EAAE,SAAS,EAAE,MAAM,CAA2B,CAAC;AAE/H,QAAA,IAAI,MAAM,EACV;AACI,YAAA,MAAM,YAAY,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAEtF,YAAA,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC;AAC1E,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;;iHA5BQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA,CAAA;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACXlC;;AAEG;;;;"}