{"version":3,"file":"bespunky-angular-cdk-reactive-input-touch.mjs","sources":["../../../../libs/angular-cdk/reactive-input/touch/src/types/touch-direction.ts","../../../../libs/angular-cdk/reactive-input/touch/src/types/touch-pointers.ts","../../../../libs/angular-cdk/reactive-input/touch/src/utils/create-reactive-touch-input-observable.ts","../../../../libs/angular-cdk/reactive-input/touch/src/services/reactive-touch.service.ts","../../../../libs/angular-cdk/reactive-input/touch/src/bespunky-angular-cdk-reactive-input-touch.ts"],"sourcesContent":["import { DIRECTION_ALL, DIRECTION_DOWN, DIRECTION_HORIZONTAL, DIRECTION_LEFT, DIRECTION_NONE, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_VERTICAL } from 'hammerjs';\n\nexport type TouchDirection = 'left' | 'right' | 'up' | 'down' | 'vertical' | 'horizontal' | 'all' | 'none';\n\nexport const TouchDirectionCodes: Record<TouchDirection, number> = {\n    left      : DIRECTION_LEFT,\n    right     : DIRECTION_RIGHT,\n    up        : DIRECTION_UP,\n    down      : DIRECTION_DOWN,\n    vertical  : DIRECTION_VERTICAL,\n    horizontal: DIRECTION_HORIZONTAL,\n    all       : DIRECTION_ALL,\n    none      : DIRECTION_NONE\n};\n    ","export type TouchPointerName = 'mouse' | 'touch' | 'pen' | 'kinect';\n\nexport enum TouchPointer { Mouse = 'mouse', Touch = 'touch', Pen = 'pen', Kinect = 'kinect' };","import { fromEvent, Observable         } from 'rxjs';\nimport { filter                        } from 'rxjs/operators';\nimport { JQueryStyleEventEmitter       } from 'rxjs/internal/observable/fromEvent';\nimport { ElementRef                    } from '@angular/core';\nimport { useActivationSwitch           } from '@bespunky/rxjs';\nimport { DocumentRef                   } from '@bespunky/angular-zen';\n\nimport { TouchEventName                } from '../types/touch-event';\nimport { TouchDirectionCodes           } from '../types/touch-direction';\nimport { TouchPointer                  } from '../types/touch-pointers';\nimport { TouchFeedWithRecognizerConfig } from '../feeds/touch-feed-config';\n\nexport function createReactiveTouchInputObservable<TEvent extends HammerInput>(element: ElementRef | DocumentRef, eventName: TouchEventName, recognizerName: string, config?: TouchFeedWithRecognizerConfig): Observable<TEvent>\n{\n    const { activationSwitch, ignoreMouse } = config || {};\n    \n    const nativeElement = element instanceof DocumentRef ? element.nativeDocument : element.nativeElement;\n    \n    const hammer            = new Hammer(nativeElement);\n    const eventTarget       = hammer as unknown as JQueryStyleEventEmitter<unknown, TEvent>;\n    const recognizer        = hammer.get(recognizerName);\n\n    recognizer.set(extractNativeRecognizerOptions(config))\n    \n    let event = fromEvent<TEvent>(eventTarget, eventName);\n    \n    if (activationSwitch) event = event.pipe(useActivationSwitch(activationSwitch));\n    if (ignoreMouse     ) event = event.pipe(filter(e => e.pointerType !== TouchPointer.Mouse));\n\n    return event;\n}\n\nfunction extractNativeRecognizerOptions(config?: TouchFeedWithRecognizerConfig): RecognizerOptions\n{\n    // activationSwitch is decounstructed even though not used to exclude it when deconstruction `...nativeRecognizerOptions`.\n    // Ignoring lint:\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const { activationSwitch, direction, ...nativeRecognizerOptions } = config || {};\n\n    const options = nativeRecognizerOptions as RecognizerOptions;\n\n    if (direction) options.direction = TouchDirectionCodes[direction];\n    \n    return options;\n}","import { Observable             } from 'rxjs';\nimport { ElementRef, Injectable } from '@angular/core';\nimport { DocumentRef            } from '@bespunky/angular-zen';\n\nimport { createReactiveTouchInputObservable                                                          } from '../utils/create-reactive-touch-input-observable';\nimport { PanEventName, PinchEventName, PressEventName, RotateEventName, SwipeEventName, TapEventName } from '../types/touch-event';\nimport { TouchFeedWithRecognizerConfig                                                               } from '../feeds/touch-feed-config';\n\n@Injectable({ providedIn: 'root' })\nexport class ReactiveTouchService\n{\n    public pan(element: ElementRef | DocumentRef, eventName: PanEventName, config?: TouchFeedWithRecognizerConfig): Observable<HammerInput>\n    {\n        return createReactiveTouchInputObservable<HammerInput>(element, eventName, 'pan', config);\n    }\n\n    public pinch(element: ElementRef | DocumentRef, eventName: PinchEventName, config?: TouchFeedWithRecognizerConfig): Observable<HammerInput>\n    {\n        return createReactiveTouchInputObservable<HammerInput>(element, eventName, 'pinch', config);\n    }\n\n    public press(element: ElementRef | DocumentRef, eventName: PressEventName, config?: TouchFeedWithRecognizerConfig): Observable<HammerInput>\n    {\n        return createReactiveTouchInputObservable<HammerInput>(element, eventName, 'press', config);\n    }\n\n    public rotate(element: ElementRef | DocumentRef, eventName: RotateEventName, config?: TouchFeedWithRecognizerConfig): Observable<HammerInput>\n    {\n        return createReactiveTouchInputObservable<HammerInput>(element, eventName, 'rotate', config);\n    }\n\n    public swipe(element: ElementRef | DocumentRef, eventName: SwipeEventName, config?: TouchFeedWithRecognizerConfig): Observable<HammerInput>\n    {\n        return createReactiveTouchInputObservable<HammerInput>(element, eventName, 'swipe', config);\n    }\n\n    public tap(element: ElementRef | DocumentRef, eventName: TapEventName, config?: TouchFeedWithRecognizerConfig): Observable<HammerInput>\n    {\n        return createReactiveTouchInputObservable<HammerInput>(element, eventName, 'tap', config);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}