PageSourceSearch

https://www.muzeum-kozienice.pl/lib/touch.js?v=4.4

js muzeum-kozienice.pl collected 2026-09-25 08:30:42 UTC 5,273 bytes, 178 lines download raw bytes

1(function(doc, win) {
2  'use strict';
3  if (typeof doc.createEvent !== 'function') return false; // no tap events here
4  // helpers
5  var useJquery = typeof jQuery !== 'undefined',
6    msPointerEnabled = !!navigator.pointerEnabled || navigator.msPointerEnabled,
7    isTouch = (!!('ontouchstart' in win) && navigator.userAgent.indexOf('PhantomJS') < 0) || msPointerEnabled,
8    msEventType = function(type) {
9      var lo = type.toLowerCase(),
10        ms = 'MS' + type;
11      return navigator.msPointerEnabled ? ms : lo;
12    },
13    touchevents = {
14      touchstart: msEventType('PointerDown') + ' touchstart',
15      touchend: msEventType('PointerUp') + ' touchend',
16      touchmove: msEventType('PointerMove') + ' touchmove'
17    },
18    setListener = function(elm, events, callback) {
19      var eventsArray = events.split(' '),
20        i = eventsArray.length;
21      while (i--) {
22        elm.addEventListener(eventsArray[i], callback, false);
23      }
24    },
25    getPointerEvent = function(event) {
26      return event.targetTouches ? event.targetTouches[0] : event;
27    },
28    getTimestamp = function () {
29      return new Date().getTime();
30    },
31    sendEvent = function(elm, eventName, originalEvent, data) {
32    
33    	
34    
35      var customEvent = doc.createEvent('Event');
36      data = data || {};
37      data.x = currX;
38      data.y = currY;
39      data.distance = data.distance;
40      if (useJquery){
41        jQuery(elm).trigger(eventName, data);
42        }
43      else {
44        customEvent.originalEvent = originalEvent;
45        for (var key in data) {
46          customEvent[key] = data[key];
47        }
48        customEvent.initEvent(eventName, true, true);
49        elm.dispatchEvent(customEvent);
50      }
51    },
52
53    onTouchStart = function(e) {
54    $(e.target).on('dragstart',function(e){e.preventDefault()});
55      var pointer = getPointerEvent(e);
56      cachedX = currX = pointer.pageX;
57      cachedY = currY = pointer.pageY;
58
59      timestamp = getTimestamp();
60      tapNum++;
61      
62       sendEvent(e.target, 'swipstart', e, {
63            distance: {
64              x: Math.abs(currX),
65              y: Math.abs(currY)
66            }
67          });
68      
69     
70    },
71    onTouchEnd = function(e) {
72    //e.preventDefault();
73
74	
75
76      var eventsArr = [],
77        deltaY = cachedY - currY,
78        deltaX = cachedX - currX;
79
80      // clear the previous timer in case it was set
81      clearTimeout(tapTimer);
82
83	 
84
85      if (deltaX <= -swipeThreshold)
86        eventsArr.push('swiperight');
87
88      if (deltaX >= swipeThreshold)
89        eventsArr.push('swipeleft');
90
91      if (deltaY <= -swipeThreshold)
92        eventsArr.push('swipedown');
93
94      if (deltaY >= swipeThreshold)
95        eventsArr.push('swipeup');
96        
97       
98        
99      if (eventsArr.length) {
100        for (var i = 0; i < eventsArr.length; i++) {
101          var eventName = eventsArr[i];
102          sendEvent(e.target, eventName, e, {
103            distance: {
104              x: Math.abs(deltaX),
105              y: Math.abs(deltaY)
106            }
107          });
108        }
109      } else {
110      
111      //console.log(timestamp + tapThreshold-getTimestamp());
112      //console.log(getTimestamp());
113      
114        if (
115          (timestamp + tapThreshold) - getTimestamp() >= 0 &&
116          cachedX >= currX - tapPrecision &&
117          cachedX <= currX + tapPrecision &&
118          cachedY >= currY - tapPrecision &&
119          cachedY <= currY + tapPrecision
120        ) {
121
122          sendEvent(e.target, (tapNum === 2) ? 'dbltap' : 'tap', e);
123        }
124
125        tapTimer = setTimeout(function() {
126          tapNum = 0;
127        }, dbltapThreshold);
128
129      }
130      
131      tapNum = 0;
132      
133      //e.preventDefault();
134      //return false;
135      
136    },
137    onTouchMove = function(e) {
138    
139   //e.preventDefault();
140    
141    if(tapNum == 0) return false;
142    
143    
144    
145      var pointer = getPointerEvent(e);
146      currX = pointer.pageX;
147      currY = pointer.pageY;
148      var deltaY = cachedY - currY,
149      deltaX = cachedX - currX;
150
151     	sendEvent(e.target, 'swipemove', e, {
152            distance: {
153              x: Math.abs(currX),
154              y: Math.abs(currY),
155              dX : deltaX,
156              dY : deltaY,
157            }
158          });
159     
160    },
161    swipeThreshold = win.SWIPE_THRESHOLD || 10,
162    tapThreshold = win.TAP_THRESHOLD || 200, // range of time where a tap event could be detected
163    dbltapThreshold = win.DBL_TAP_THRESHOLD || 200, // delay needed to detect a double tap
164    tapPrecision = win.TAP_PRECISION / 2 || 20 / 2, // touch events boundaries ( 60px by default )
165    //justTouchEvents = win.JUST_ON_TOUCH_DEVICES || isTouch,
166    justTouchEvents = false,
167    tapNum = 0,
168    currX, currY, cachedX, cachedY, tapTimer, timestamp;
169
170  setListener(doc, touchevents.touchstart + (justTouchEvents ? '' : ' mousedown'), onTouchStart);
171  setListener(doc, touchevents.touchend + (justTouchEvents ? '' : ' mouseup'), onTouchEnd);
172  setListener(doc, touchevents.touchmove + (justTouchEvents ? '' : ' mousemove'), onTouchMove);
173  
174  //console.log(win.TAP_THRESHOLD);
175  
176}(document, window));
177
178var isTouch = true;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.