This repository has been archived on 2024-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
keksAccountGUI/node_modulesOLD/vuetify/es5/directives/touch/index.js

117 lines
3.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.Touch = void 0;
var _helpers = require("../../util/helpers");
var handleGesture = function handleGesture(wrapper) {
var touchstartX = wrapper.touchstartX,
touchendX = wrapper.touchendX,
touchstartY = wrapper.touchstartY,
touchendY = wrapper.touchendY;
var dirRatio = 0.5;
var minDistance = 16;
wrapper.offsetX = touchendX - touchstartX;
wrapper.offsetY = touchendY - touchstartY;
if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {
wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);
wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);
}
if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {
wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);
wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);
}
};
function _touchstart(event, wrapper) {
var touch = event.changedTouches[0];
wrapper.touchstartX = touch.clientX;
wrapper.touchstartY = touch.clientY;
wrapper.start && wrapper.start(Object.assign(event, wrapper));
}
function _touchend(event, wrapper) {
var touch = event.changedTouches[0];
wrapper.touchendX = touch.clientX;
wrapper.touchendY = touch.clientY;
wrapper.end && wrapper.end(Object.assign(event, wrapper));
handleGesture(wrapper);
}
function _touchmove(event, wrapper) {
var touch = event.changedTouches[0];
wrapper.touchmoveX = touch.clientX;
wrapper.touchmoveY = touch.clientY;
wrapper.move && wrapper.move(Object.assign(event, wrapper));
}
function createHandlers(value) {
var wrapper = {
touchstartX: 0,
touchstartY: 0,
touchendX: 0,
touchendY: 0,
touchmoveX: 0,
touchmoveY: 0,
offsetX: 0,
offsetY: 0,
left: value.left,
right: value.right,
up: value.up,
down: value.down,
start: value.start,
move: value.move,
end: value.end
};
return {
touchstart: function touchstart(e) {
return _touchstart(e, wrapper);
},
touchend: function touchend(e) {
return _touchend(e, wrapper);
},
touchmove: function touchmove(e) {
return _touchmove(e, wrapper);
}
};
}
function inserted(el, binding, vnode) {
var value = binding.value;
var target = value.parent ? el.parentElement : el;
var options = value.options || {
passive: true
}; // Needed to pass unit tests
if (!target) return;
var handlers = createHandlers(binding.value);
target._touchHandlers = Object(target._touchHandlers);
target._touchHandlers[vnode.context._uid] = handlers;
(0, _helpers.keys)(handlers).forEach(function (eventName) {
target.addEventListener(eventName, handlers[eventName], options);
});
}
function unbind(el, binding, vnode) {
var target = binding.value.parent ? el.parentElement : el;
if (!target || !target._touchHandlers) return;
var handlers = target._touchHandlers[vnode.context._uid];
(0, _helpers.keys)(handlers).forEach(function (eventName) {
target.removeEventListener(eventName, handlers[eventName]);
});
delete target._touchHandlers[vnode.context._uid];
}
var Touch = {
inserted: inserted,
unbind: unbind
};
exports.Touch = Touch;
var _default = Touch;
exports.default = _default;
//# sourceMappingURL=index.js.map