{"version":3,"file":"BwU2957c.js","sources":["../../../../node_modules/@smenaspace/ui-layer/utils/ui-touch.ts"],"sourcesContent":["type Direction = 'down' | 'left'\n\ntype CoordinateSystem = 'clientX' | 'clientY'\n\ntype Constructor = {\n distance: number\n direction: Direction\n onTouchEnd: Function\n}\n\nconst coordinateSystemMap: Record = {\n left: 'clientX',\n down: 'clientY',\n}\n\nexport class TouchService {\n private startPosition = 0\n private endPosition = 0\n private readonly coordinateSystem: CoordinateSystem\n private readonly distance: number\n private readonly direction: Direction\n private readonly onTouchEnd: Function\n\n /**\n * Сервис для обработки касаний экрана для touch устройств\n * @param distance - Расстояние между начальной и конечной позицей касания экрана для срабатывания колбэка\n * @param direction - Направление движение свайпа для срабатывания колбэка\n * @param onTouchEnd - Функция, которая выполнится при пройденной дистанции\n */\n constructor({ distance, direction, onTouchEnd }: Constructor) {\n this.distance = distance\n this.direction = direction\n this.onTouchEnd = onTouchEnd\n this.coordinateSystem = coordinateSystemMap[direction]\n }\n\n // Устанавливаем позицию равную началу касания экрана\n onStart(event: TouchEvent) {\n if (!event.touches?.length) return\n\n this.startPosition = event.touches[0][this.coordinateSystem]\n }\n\n // Устанавливаем конечную позицию касания экрана\n onMove(event: TouchEvent) {\n if (!event.touches?.length) return\n\n this.endPosition = event.touches[0][this.coordinateSystem]\n }\n\n // При завершении касаний, сравниваем пройденное расстояние между касаниями и высчитываем разницу\n onEnd() {\n let delta = 0\n\n if (this.direction === 'down') delta = this.endPosition - this.startPosition\n\n if (this.direction === 'left') delta = this.startPosition - this.endPosition\n\n if (this.endPosition > 0 && delta >= this.distance) this.onTouchEnd()\n\n this.startPosition = 0\n this.endPosition = 0\n }\n}\n"],"names":["e","n","coordinateSystemMap","TouchService","distance","direction","onTouchEnd","__publicField","event","_a","delta"],"mappings":";;qKAUA,UAAA,CAAA,GAAA,CAAA,IAAAA,EAAA,OAAA,OAAA,IAAA,OAAA,OAAA,OAAA,IAAA,OAAA,OAAA,KAAA,IAAA,KAAA,CAAA,EAAAC,EAAA,IAAAD,EAAA,QAAA,MAAAC,IAAAD,EAAA,gBAAAA,EAAA,iBAAA,CAAA,EAAAA,EAAA,gBAAAC,CAAA,EAAA,uCAAAD,EAAA,yBAAA,mDAAA,MAAA,CAAA,CAAA,GAAA,EAAA,MAAME,EAA2D,CAC/D,KAAM,UACN,KAAM,SACR,EAEO,MAAMC,CAAa,CAcxB,YAAY,CAAE,SAAAC,EAAU,UAAAC,EAAW,WAAAC,GAA2B,CAbtDC,EAAA,qBAAgB,GAChBA,EAAA,mBAAc,GACLA,EAAA,yBACAA,EAAA,iBACAA,EAAA,kBACAA,EAAA,mBASf,KAAK,SAAWH,EAChB,KAAK,UAAYC,EACjB,KAAK,WAAaC,EACb,KAAA,iBAAmBJ,EAAoBG,CAAS,CACvD,CAGA,QAAQG,EAAmB,CA3B7B,IAAAC,GA4BSA,EAAAD,EAAM,UAAN,MAAAC,EAAe,SAEpB,KAAK,cAAgBD,EAAM,QAAQ,CAAC,EAAE,KAAK,gBAAgB,EAC7D,CAGA,OAAOA,EAAmB,CAlC5B,IAAAC,GAmCSA,EAAAD,EAAM,UAAN,MAAAC,EAAe,SAEpB,KAAK,YAAcD,EAAM,QAAQ,CAAC,EAAE,KAAK,gBAAgB,EAC3D,CAGA,OAAQ,CACN,IAAIE,EAAQ,EAER,KAAK,YAAc,SAAgBA,EAAA,KAAK,YAAc,KAAK,eAE3D,KAAK,YAAc,SAAgBA,EAAA,KAAK,cAAgB,KAAK,aAE7D,KAAK,YAAc,GAAKA,GAAS,KAAK,eAAe,aAEzD,KAAK,cAAgB,EACrB,KAAK,YAAc,CACrB,CACF","debug_id":"749186db-a8eb-5c3e-88bc-88837529ea2f"}