UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

1 lines 6.86 kB
{"version":3,"file":"taiga-ui-cdk-directives-zoom.mjs","sources":["../../../projects/cdk/directives/zoom/zoom.options.ts","../../../projects/cdk/directives/zoom/zoom.service.ts","../../../projects/cdk/directives/zoom/zoom.directive.ts","../../../projects/cdk/directives/zoom/taiga-ui-cdk-directives-zoom.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nimport {type TuiZoomOptions} from './zoom.types';\n\n/**\n * Zoom options\n */\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>(\n ngDevMode ? 'TUI_ZOOM_OPTIONS' : '',\n {factory: () => ({wheelSensitivity: 0.01})},\n);\n","import {inject, Injectable} from '@angular/core';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiDistanceBetweenTouches} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {filter, map, merge, Observable, scan, switchMap, takeUntil} from 'rxjs';\n\nimport {TUI_ZOOM_OPTIONS} from './zoom.options';\nimport {type TuiZoomEvent} from './zoom.types';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoomEvent> {\n constructor() {\n const el = tuiInjectElement();\n const {wheelSensitivity} = inject(TUI_ZOOM_OPTIONS);\n\n super((subscriber) =>\n merge(\n tuiTypedFromEvent(el, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap((startEvent) =>\n tuiTypedFromEvent(el, 'touchmove', {passive: true}).pipe(\n tuiPreventDefault(),\n scan(\n (prev, event) => {\n const distance = tuiDistanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: tuiDistanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n const clientX =\n ((event.touches[0]?.clientX ?? 0) +\n (event.touches[1]?.clientX ?? 0)) /\n 2;\n\n const clientY =\n ((event.touches[0]?.clientY ?? 0) +\n (event.touches[1]?.clientY ?? 0)) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n takeUntil(tuiTypedFromEvent(el, 'touchend')),\n ),\n ),\n ),\n tuiTypedFromEvent(el, 'wheel', {passive: false}).pipe(\n tuiPreventDefault(),\n map((wheel) => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber),\n );\n }\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {TuiZoomService} from './zoom.service';\n\n@Directive({\n selector: '[tuiZoom]',\n outputs: ['tuiZoom'],\n providers: [TuiZoomService],\n host: {'[style.touch-action]': '\"none\"'},\n})\nexport class TuiZoom {\n protected readonly tuiZoom = inject(TuiZoomService);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}