diff --git a/.babelrc b/.babelrc deleted file mode 100644 index bbb9d9d..0000000 --- a/.babelrc +++ /dev/null @@ -1 +0,0 @@ -{"presets":["@babel/env", "@babel/react"]} \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b7dab5e..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -build \ No newline at end of file diff --git a/1398ff7979a2ce0128b2.worker.js b/1398ff7979a2ce0128b2.worker.js new file mode 100644 index 0000000..cede228 --- /dev/null +++ b/1398ff7979a2ce0128b2.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){let n=null,o={},i={},r={},c={};onmessage=function(e){e.data.config?d(e.data.config):l(e.data)};const d=e=>{const t=e.listen;r=e,c={...t,c_or_p:!!t.click||!!t.press,move:!!t.pan||!!t.pinch||!!t.rotate,move2t:!!t.pinch||!!t.rotate}},l=e=>{console.log(e.type);const t=e.touches,o=e.inactiveTouches;switch(e.type){case"start":a(t);break;case"move":s(t,o);break;case"end":u(t);break;default:console.log("ERROR")}n=e.touches},a=e=>{if(c.c_or_p)for(let t=0;t{if(c.move)if(1===e.length)c.c_or_p&&(o[e[0].id]?(clearTimeout(o[e[0].id]),delete o[e[0].id]):i[e[0].id]&&(clearInterval(i[e[0].id]),delete i[e[0].id])),console.log(c),0===t.length&&c.pan&&postMessage({action:"pan",id:e[0].id,x:e[0].x,y:e[0].y});else if(2===e.length&&c.move2t){const t=n.find(t=>t.id===e[0].id),o=e[0].x-(t?t.x:0),i=e[0].y-(t?t.y:0),r=n.find(t=>t.id===e[1].id),c=e[1].x-(r?r.x:0),d=e[1].y-(r?r.y:0);console.log({action:"pinch",id:e[0].id,dAx:o,dAy:i,dBx:c,dBy:d}),postMessage({action:"pinch",id:e[0].id,dAx:o,dAy:i,dBx:c,dBy:d})}},u=e=>{for(let t=0;t{delete o[e];let r=setInterval(()=>postMessage({action:"press",id:e,x:t,y:n}),1e3/60);i[e]=r}}]); +//# sourceMappingURL=1398ff7979a2ce0128b2.worker.js.map \ No newline at end of file diff --git a/1398ff7979a2ce0128b2.worker.js.map b/1398ff7979a2ce0128b2.worker.js.map new file mode 100644 index 0000000..1f78007 --- /dev/null +++ b/1398ff7979a2ce0128b2.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","move","pan","pinch","rotate","move2t","e","console","log","type","touches","iT","inactiveTouches","start","end","length","timer","setTimeout","setPress","this","id","x","y","inacT","clearTimeout","clearInterval","postMessage","action","oldA","find","oT","dAx","dAy","oldB","dBx","dBy","pTimer","setInterval"],"mappings":"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","file":"1398ff7979a2ce0128b2.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = null;\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n move: !!l.pan || !!l.pinch || !!l.rotate, // actions that need move event\n move2t: !!l.pinch || !!l.rotate // actions that need two move events\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n console.log(e.type)\n const t = e.touches;\n const iT = e.inactiveTouches;\n switch(e.type){\n case 'start':\n start(t);\n break;\n case 'move':\n move(t,iT) ;\n break;\n case 'end':\n end(t);\n break;\n default: console.log('ERROR');\n }\n oldTouches = e.touches;\n}\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n if(listen.move){\n if(t.length === 1){\n if(listen.c_or_p){\n if(timers[t[0].id]){\n clearTimeout(timers[t[0].id]);\n delete timers[t[0].id];\n }\n else if(pressTimers[t[0].id]){\n clearInterval(pressTimers[t[0].id]);\n delete pressTimers[t[0].id];\n }\n }\n console.log(listen)\n if(inacT.length === 0 && listen.pan) postMessage({action: 'pan',id:t[0].id,x: t[0].x, y:t[0].y});\n }\n else if(t.length === 2 && listen.move2t){\n\n const oldA = oldTouches.find((oT) => oT.id === t[0].id);\n const dAx = t[0].x - (oldA ? oldA.x : 0);\n const dAy = t[0].y - (oldA ? oldA.y : 0);\n const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n const dBx = t[1].x - (oldB ? oldB.x : 0);\n const dBy = t[1].y - (oldB ? oldB.y : 0);\n\n console.log({action: 'pinch',id:t[0].id,dAx,dAy,dBx,dBy});\n postMessage({action: 'pinch',id:t[0].id,dAx,dAy,dBx,dBy});\n }\n }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/25e8eba7f92fc8b6772a.worker.js b/25e8eba7f92fc8b6772a.worker.js new file mode 100644 index 0000000..5fcfc11 --- /dev/null +++ b/25e8eba7f92fc8b6772a.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,o),i.l=!0,i.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t){let o=[],n={},i={},r={},l={};onmessage=function(e){e.data.config?c(e.data.config):s(e.data)};const c=e=>{const t=e.listen;r=e,l={...t,c_or_p:!!t.click||!!t.press,move:!!t.pan||!!t.pinch||!!t.rotate,move2t:!!t.pinch||!!t.rotate}},s=e=>{const t=e.touches,n=e.inactiveTouches;switch(e.type){case"start":a(t),o=[];break;case"move":d(t,n),o=e.touches;break;case"end":u(t),o=[];break;default:console.log("ERROR")}},a=e=>{if(l.c_or_p)for(let t=0;t{if(l.move)if(1===e.length)l.c_or_p&&(n[e[0].id]?(clearTimeout(n[e[0].id]),delete n[e[0].id]):i[e[0].id]&&(clearInterval(i[e[0].id]),delete i[e[0].id])),0===t.length&&1===o.length&&l.pan&&postMessage({action:"pan",id:e[0].id,x:e[0].x,y:e[0].y});else if(2===e.length&&2===o.length&&l.move2t){const t=o.find(t=>t.id===e[0].id),n=e[0].x-(t?t.x:0),i=e[0].y-(t?t.y:0);console.log(t),console.log(e[0]);const r=o.find(t=>t.id===e[1].id),l=e[1].x-(r?r.x:0),c=e[1].y-(r?r.y:0);console.log(r),console.log(e[1]),console.log(`${n} - ${i} # ${l} - ${c} - `);const s=n*l<0&&i*c<0?"pinch":"rotate";console.log(s),postMessage({action:s,id:e[0].id,dAx:n,dAy:i,dBx:l,dBy:c})}},u=e=>{for(let t=0;t{delete n[e];let r=setInterval(()=>postMessage({action:"press",id:e,x:t,y:o}),1e3/60);i[e]=r}}]); +//# sourceMappingURL=25e8eba7f92fc8b6772a.worker.js.map \ No newline at end of file diff --git a/25e8eba7f92fc8b6772a.worker.js.map b/25e8eba7f92fc8b6772a.worker.js.map new file mode 100644 index 0000000..e54bdc0 --- /dev/null +++ b/25e8eba7f92fc8b6772a.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","move","pan","pinch","rotate","move2t","e","touches","iT","inactiveTouches","type","start","end","console","log","length","timer","setTimeout","setPress","this","id","x","y","inacT","clearTimeout","clearInterval","postMessage","action","oldA","find","oT","dAx","dAy","oldB","dBx","dBy","action2t","pTimer","setInterval"],"mappings":"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","file":"25e8eba7f92fc8b6772a.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = [];\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n move: !!l.pan || !!l.pinch || !!l.rotate, // actions that need move event\n move2t: !!l.pinch || !!l.rotate // actions that need two move events\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n const t = e.touches;\n const iT = e.inactiveTouches;\n switch(e.type){\n case 'start':\n start(t);\n oldTouches = [];\n break;\n case 'move':\n move(t,iT) ;\n oldTouches = e.touches;\n break;\n case 'end':\n end(t);\n oldTouches = [];\n break;\n default: console.log('ERROR');\n }\n}\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n if(listen.move){\n if(t.length === 1){\n if(listen.c_or_p){\n if(timers[t[0].id]){\n clearTimeout(timers[t[0].id]);\n delete timers[t[0].id];\n }\n else if(pressTimers[t[0].id]){\n clearInterval(pressTimers[t[0].id]);\n delete pressTimers[t[0].id];\n }\n }\n if(inacT.length === 0 && oldTouches.length === 1 && listen.pan) postMessage({action: 'pan',id:t[0].id,x: t[0].x, y:t[0].y});\n }\n else if(t.length === 2 && oldTouches.length === 2 && listen.move2t){\n\n const oldA = oldTouches.find((oT) => oT.id === t[0].id);\n const dAx = t[0].x - (oldA ? oldA.x : 0);\n const dAy = t[0].y - (oldA ? oldA.y : 0);\n console.log(oldA)\n console.log(t[0])\n const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n const dBx = t[1].x - (oldB ? oldB.x : 0);\n const dBy = t[1].y - (oldB ? oldB.y : 0);\n console.log(oldB)\n console.log(t[1])\n console.log(`${dAx} - ${dAy} # ${dBx} - ${dBy} - `)\n const action2t = dAx * dBx < 0.0 && dAy * dBy < 0.0 ? 'pinch' : 'rotate';\n console.log(action2t)\n postMessage({action: action2t,id:t[0].id,dAx,dAy,dBx,dBy});\n }\n }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/27e185a11816b4423aa5.worker.js b/27e185a11816b4423aa5.worker.js new file mode 100644 index 0000000..a06626e --- /dev/null +++ b/27e185a11816b4423aa5.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){let n=null,o={},i={},r={},d={};onmessage=function(e){e.data.config?c(e.data.config):l(e.data)};const c=e=>{const t=e.listen;r=e,d={...t,c_or_p:!!t.click||!!t.press,move:!!t.pan||!!t.pinch||!!t.rotate}},l=e=>{console.log(e.type);const t=e.touches,o=e.inactiveTouches;switch(e.type){case"start":a(t);break;case"move":s(t,o);break;case"end":u(t);break;default:console.log("ERROR")}n=e.touches},a=e=>{if(d.c_or_p)for(let t=0;t{if(d.move)if(1===e.length)d.c_or_p&&(o[e[0].id]?(clearTimeout(o[e[0].id]),delete o[e[0].id]):i[e[0].id]&&(clearInterval(i[e[0].id]),delete i[e[0].id])),console.log(d),0===t.length&&d.pan&&postMessage({action:"pan",id:e[0].id,x:e[0].x,y:e[0].y});else if(2===e.length){const t=n.find(t=>t.id===e[0].id),o=e[0].x-(t?t.x:0),i=e[0].y-(t?t.y:0),r=n.find(t=>t.id===e[1].id),d=e[1].x-(r?r.x:0),c=e[1].y-(r?r.y:0);console.log({action:"pinch",id:e[0].id,dAx:o,dAy:i,dBx:d,dBy:c}),postMessage({action:"pinch",id:e[0].id,dAx:o,dAy:i,dBx:d,dBy:c})}},u=e=>{for(let t=0;t{delete o[e];let r=setInterval(()=>postMessage({action:"press",id:e,x:t,y:n}),1e3/60);i[e]=r}}]); +//# sourceMappingURL=27e185a11816b4423aa5.worker.js.map \ No newline at end of file diff --git a/27e185a11816b4423aa5.worker.js.map b/27e185a11816b4423aa5.worker.js.map new file mode 100644 index 0000000..b5ea9dc --- /dev/null +++ b/27e185a11816b4423aa5.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","move","pan","pinch","rotate","e","console","log","type","touches","iT","inactiveTouches","start","end","length","timer","setTimeout","setPress","this","id","x","y","inacT","clearTimeout","clearInterval","postMessage","action","oldA","find","oT","dAx","dAy","oldB","dBx","dBy","pTimer","setInterval"],"mappings":"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","file":"27e185a11816b4423aa5.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = null;\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n move: !!l.pan || !!l.pinch || !!l.rotate // actions that need move event\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n console.log(e.type)\n const t = e.touches;\n const iT = e.inactiveTouches;\n switch(e.type){\n case 'start':\n start(t);\n break;\n case 'move':\n move(t,iT) ;\n break;\n case 'end':\n end(t);\n break;\n default: console.log('ERROR');\n }\n oldTouches = e.touches;\n}\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n if(listen.move){\n if(t.length === 1){\n if(listen.c_or_p){\n if(timers[t[0].id]){\n clearTimeout(timers[t[0].id]);\n delete timers[t[0].id];\n }\n else if(pressTimers[t[0].id]){\n clearInterval(pressTimers[t[0].id]);\n delete pressTimers[t[0].id];\n }\n }\n console.log(listen)\n if(inacT.length === 0 && listen.pan) postMessage({action: 'pan',id:t[0].id,x: t[0].x, y:t[0].y});\n }\n else if(t.length === 2){\n\n const oldA = oldTouches.find((oT) => oT.id === t[0].id);\n const dAx = t[0].x - (oldA ? oldA.x : 0);\n const dAy = t[0].y - (oldA ? oldA.y : 0);\n const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n const dBx = t[1].x - (oldB ? oldB.x : 0);\n const dBy = t[1].y - (oldB ? oldB.y : 0);\n console.log({action: 'pinch',id:t[0].id,dAx,dAy,dBx,dBy});\n postMessage({action: 'pinch',id:t[0].id,dAx,dAy,dBx,dBy});\n }\n }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/3e36b58050e7304f9afe.worker.js b/3e36b58050e7304f9afe.worker.js new file mode 100644 index 0000000..d4c85fe --- /dev/null +++ b/3e36b58050e7304f9afe.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){let n=null,i={},o={};onmessage=function(e){r(e.data)};const r=e=>{console.log(e.type);const t=e.touches,i=e.inactiveTouches;switch(e.type){case"start":d(t,e.listen);break;case"move":l(t,i,e.listen);break;case"end":s(t,e.listen);break;default:console.log("ERROR")}n=e.touches},d=(e,t)=>{if(t.click||t.press)for(let t=0;t{if(1===e.length)i[e[0].id]?(clearTimeout(i[e[0].id]),delete i[e[0].id]):o[e[0].id]&&(clearInterval(o[e[0].id]),delete o[e[0].id]),0===t.length&&postMessage({action:"pan",id:e[0].id,x:e[0].x,y:e[0].y});else if(2===e.length){const t=n.find(t=>t.id===e[0].id),i=e[0].x-(t?t.x:0),o=e[0].y-(t?t.y:0),r=n.find(t=>t.id===e[1].id),d=e[1].x-(r?r.x:0),l=e[1].y-(r?r.y:0);console.log({action:"pinch",id:e[0].id,dAx:i,dAy:o,dBx:d,dBy:l}),postMessage({action:"pinch",id:e[0].id,dAx:i,dAy:o,dBx:d,dBy:l})}},s=(e,t)=>{for(let t=0;t{delete i[e];let r=setInterval(()=>postMessage({action:"press",id:e,x:t,y:n}),1e3/60);o[e]=r}}]); +//# sourceMappingURL=3e36b58050e7304f9afe.worker.js.map \ No newline at end of file diff --git a/3e36b58050e7304f9afe.worker.js.map b/3e36b58050e7304f9afe.worker.js.map new file mode 100644 index 0000000..334b118 --- /dev/null +++ b/3e36b58050e7304f9afe.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","onmessage","event","processEvent","data","e","console","log","type","touches","iT","inactiveTouches","start","listen","move","end","click","press","length","timer","setTimeout","setPress","this","id","x","y","inacT","clearTimeout","clearInterval","postMessage","action","oldA","find","oT","dAx","dAy","oldB","dBx","dBy","pTimer","setInterval"],"mappings":"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","file":"3e36b58050e7304f9afe.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = null;\nlet timers = {};\nlet pressTimers = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n processEvent(event.data);\n};\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n console.log(e.type)\n const t = e.touches;\n const iT = e.inactiveTouches;\n switch(e.type){\n case 'start':\n start(t,e.listen);\n break;\n case 'move':\n move(t,iT,e.listen) ;\n break;\n case 'end':\n end(t,e.listen);\n break;\n default: console.log('ERROR');\n }\n oldTouches = e.touches;\n}\n\n// START event\nconst start = (t,listen) => {\n // init timers to check if it's click or press event\n if(listen.click || listen.press){\n for(let i=0;i {\n if(t.length === 1){\n if(timers[t[0].id]){\n clearTimeout(timers[t[0].id]);\n delete timers[t[0].id];\n }\n else if(pressTimers[t[0].id]){\n clearInterval(pressTimers[t[0].id]);\n delete pressTimers[t[0].id];\n }\n if(inacT.length === 0) postMessage({action: 'pan',id:t[0].id,x: t[0].x, y:t[0].y});\n }\n else if(t.length === 2){\n\n const oldA = oldTouches.find((oT) => oT.id === t[0].id);\n const dAx = t[0].x - (oldA ? oldA.x : 0);\n const dAy = t[0].y - (oldA ? oldA.y : 0);\n const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n const dBx = t[1].x - (oldB ? oldB.x : 0);\n const dBy = t[1].y - (oldB ? oldB.y : 0);\n console.log({action: 'pinch',id:t[0].id,dAx,dAy,dBx,dBy});\n postMessage({action: 'pinch',id:t[0].id,dAx,dAy,dBx,dBy});\n }\n}\n\n// END event\nconst end = (t,listen) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/4a28b84f9fe4e1e791db.worker.js b/4a28b84f9fe4e1e791db.worker.js new file mode 100644 index 0000000..5c1c3d2 --- /dev/null +++ b/4a28b84f9fe4e1e791db.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,o),i.l=!0,i.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t){let o=[],n={},i={},r={},l={};onmessage=function(e){e.data.config?s(e.data.config):c(e.data)};const s=e=>{const t=e.listen;r=e,l={...t,c_or_p:!!t.click||!!t.press,move:!!t.pan||!!t.pinch||!!t.rotate,move2t:!!t.pinch||!!t.rotate}},c=e=>{const t=e.touches,n=e.inactiveTouches;switch(e.type){case"start":a(t),o=[];break;case"move":d(t,n),o=e.touches;break;case"end":u(t),o=[];break;default:console.log("ERROR")}},a=e=>{if(l.c_or_p)for(let t=0;t{if(l.c_or_p&&(n[e[0].id]?(clearTimeout(n[e[0].id]),delete n[e[0].id]):i[e[0].id]&&(clearInterval(i[e[0].id]),delete i[e[0].id])),l.move)if(1===e.length)if(l.move2t)l.move2t&&0===t.length&&1===o.length&&l.pan&&postMessage({action:"pan",id:e[0].id,x:e[0].x,y:e[0].y});else for(let t=0;tt.id===e[0].id),n=e[0].x-(t?t.x:0),i=e[0].y-(t?t.y:0);console.log(t),console.log(e[0]);const r=o.find(t=>t.id===e[1].id),l=e[1].x-(r?r.x:0),s=e[1].y-(r?r.y:0);console.log(r),console.log(e[1]),console.log(`${n} - ${i} # ${l} - ${s} - `);const c=n*l<0&&i*s<0?"pinch":"rotate";console.log(c),postMessage({action:c,id:e[0].id,dAx:n,dAy:i,dBx:l,dBy:s})}},u=e=>{for(let t=0;t{delete n[e];let r=setInterval(()=>postMessage({action:"press",id:e,x:t,y:o}),1e3/60);i[e]=r}}]); +//# sourceMappingURL=4a28b84f9fe4e1e791db.worker.js.map \ No newline at end of file diff --git a/4a28b84f9fe4e1e791db.worker.js.map b/4a28b84f9fe4e1e791db.worker.js.map new file mode 100644 index 0000000..466b776 --- /dev/null +++ b/4a28b84f9fe4e1e791db.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","move","pan","pinch","rotate","move2t","e","touches","iT","inactiveTouches","type","start","end","console","log","length","timer","setTimeout","setPress","this","id","x","y","inacT","clearTimeout","clearInterval","postMessage","action","oldA","find","oT","dAx","dAy","oldB","dBx","dBy","action2t","pTimer","setInterval"],"mappings":"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","file":"4a28b84f9fe4e1e791db.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = [];\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n move: !!l.pan || !!l.pinch || !!l.rotate, // actions that need move event\n move2t: !!l.pinch || !!l.rotate // actions that need two move events\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n const t = e.touches;\n const iT = e.inactiveTouches;\n switch(e.type){\n case 'start':\n start(t);\n oldTouches = [];\n break;\n case 'move':\n move(t,iT) ;\n oldTouches = e.touches;\n break;\n case 'end':\n end(t);\n oldTouches = [];\n break;\n default: console.log('ERROR');\n }\n}\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n if(listen.c_or_p){\n if(timers[t[0].id]){\n clearTimeout(timers[t[0].id]);\n delete timers[t[0].id];\n }\n else if(pressTimers[t[0].id]){\n clearInterval(pressTimers[t[0].id]);\n delete pressTimers[t[0].id];\n }\n }\n if(listen.move){\n if(t.length === 1){\n if(!listen.move2t){\n for(let i=0;i oT.id === t[0].id);\n const dAx = t[0].x - (oldA ? oldA.x : 0);\n const dAy = t[0].y - (oldA ? oldA.y : 0);\n console.log(oldA)\n console.log(t[0])\n const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n const dBx = t[1].x - (oldB ? oldB.x : 0);\n const dBy = t[1].y - (oldB ? oldB.y : 0);\n console.log(oldB)\n console.log(t[1])\n console.log(`${dAx} - ${dAy} # ${dBx} - ${dBy} - `)\n const action2t = dAx * dBx < 0.0 && dAy * dBy < 0.0 ? 'pinch' : 'rotate';\n console.log(action2t)\n postMessage({action: action2t,id:t[0].id,dAx,dAy,dBx,dBy});\n }\n }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/5195800c15e0371892db.worker.js b/5195800c15e0371892db.worker.js new file mode 100644 index 0000000..14ee977 --- /dev/null +++ b/5195800c15e0371892db.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function o(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,o),i.l=!0,i.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t){let o=[],n={},i={},r={},l={};onmessage=function(e){e.data.config?a(e.data.config):s(e.data)};const a=e=>{const t=e.listen;r=e,l={...t,c_or_p:!!t.click||!!t.press,p_or_s:!!t.pan||!!t.swipe,move:!!t.pan||!!t.pinch||!!t.rotate,move2t:!!t.pinch||!!t.rotate}},s=e=>{console.log(e.type);const t=e.touches;switch(e.type){case"start":c(t.filter(e=>!e.event)),o=t;break;case"move":d(t),o=t.map(e=>e.inactive?e:{...e,moving:!0});break;case"end":u(t),o=t;break;default:console.log("ERROR")}},c=e=>{if(l.c_or_p)for(let t=0;t{for(let t=0;to.id===e[t].id),a=r.x-e[t].x,s=r.y-e[t].y,c=Math.sqrt(a*a+s*s);console.log(c),r.moving?(i[e[t].id]&&(console.log("CANCEL PRESS"),clearInterval(i[e[t].id]),delete i[e[t].id]),l.move&&l.p_or_s&&postMessage({action:"pan",id:e[t].id,x:e[t].x,y:e[t].y})):i[e[t].id]&&c>5?(console.log("CANCEL CLICK"),clearTimeout(n[e[t].id]),delete n[e[t].id]):i[e[t].id]&&c>5&&(console.log("CANCEL PRESS"),clearInterval(i[e[t].id]),delete i[e[t].id])}},u=e=>{for(let t=0;t{delete n[e];let r=setInterval(()=>postMessage({action:"press",id:e,x:t,y:o}),1e3/60);i[e]=r}}]); +//# sourceMappingURL=5195800c15e0371892db.worker.js.map \ No newline at end of file diff --git a/5195800c15e0371892db.worker.js.map b/5195800c15e0371892db.worker.js.map new file mode 100644 index 0000000..1fad185 --- /dev/null +++ b/5195800c15e0371892db.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","p_or_s","pan","swipe","move","pinch","rotate","move2t","e","console","log","type","touches","start","filter","map","to","inactive","moving","end","length","timer","setTimeout","setPress","this","id","x","y","ot","find","dx","dy","inc","Math","sqrt","clearInterval","postMessage","action","clearTimeout","pTimer","setInterval"],"mappings":"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","file":"5195800c15e0371892db.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = [];\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n p_or_s: !!l.pan || !!l.swipe,\n move: !!l.pan || !!l.pinch || !!l.rotate, // actions that need move event\n move2t: !!l.pinch || !!l.rotate // actions that need two move events\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n console.log(e.type)\n const t = e.touches;\n\n // console.log('EVENT -> ' + e.type)\n // console.log('OLD -> ' + JSON.stringify(oldTouches))\n // console.log('NOW -> ' + JSON.stringify(e.touches))\n\n switch(e.type){\n case 'start':\n start(t.filter((t) => !t.event));\n oldTouches = t;\n break;\n case 'move':\n move(t);\n oldTouches = t.map(to => {return !to.inactive ? {...to,moving:true} : to});\n break;\n case 'end':\n end(t);\n oldTouches = t;\n break;\n default: console.log('ERROR');\n\n\n }\n}\n\n\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n\n // Remove click or press events associated to this touch events\n for(let i=0 ; i ot.id === t[i].id);\n const dx = ot.x - t[i].x;\n const dy = ot.y - t[i].y;\n const inc = Math.sqrt(dx*dx + dy*dy);\n console.log(inc);\n if(!ot.moving){\n if (pressTimers[t[i].id] && inc > 5.0){\n console.log('CANCEL CLICK')\n clearTimeout(timers[t[i].id]);\n delete timers[t[i].id];\n }\n else if(pressTimers[t[i].id] && inc > 5.0){\n console.log('CANCEL PRESS')\n clearInterval(pressTimers[t[i].id]);\n delete pressTimers[t[i].id];\n }\n }\n else{\n if(pressTimers[t[i].id]){\n console.log('CANCEL PRESS')\n clearInterval(pressTimers[t[i].id]);\n delete pressTimers[t[i].id];\n }\n if(listen.move){\n if(listen.p_or_s){\n // if(!ot.moving){\n // timers[ot.id] = setTimeout(listen.swipe ? () => postMessage({action: 'swipe',id:t[i].id,x: t[i].x, y:t[i].y}) : null,200);\n // }\n // else if(!timers[ot.id] && ot.moving){\n postMessage({action: 'pan',id:t[i].id,x: t[i].x, y:t[i].y})\n // }\n }\n }\n }\n }\n\n // if(listen.move){\n // if(listen.p_or_s){\n // for(let i=0 ; i ot.id === t[i].id);\n // const dx = ot.x - t[i].x;\n // const dy = ot.y - t[i].y;\n // const inc = Math.sqrt(dx*dx + dy*dy);\n // console.log(inc);\n // if(inc > 2.0){\n // if(listen.pan && inc > 2.0 && inc < 20.0) postMessage({action: 'pan',id:t[i].id,x: t[i].x, y:t[i].y});\n // else if(listen.swipe && inc >= 20.0) postMessage({action: 'swipe',id:t[i].id,x: t[i].x, y:t[i].y});\n // }\n // }\n // }\n\n // }\n\n\n\n // console.log('move')\n // if(listen.c_or_p){\n // if(timers[t[0].id]){\n // console.log('CANCELADO CLICK')\n // clearTimeout(timers[t[0].id]);\n // delete timers[t[0].id];\n // }\n // else if(pressTimers[t[0].id]){\n // clearInterval(pressTimers[t[0].id]);\n // delete pressTimers[t[0].id];\n // }\n // }\n // if(listen.move){\n // if(t.length === 1){\n // if(!listen.move2t){\n // for(let i=0;i oT.id === t[0].id);\n // const dAx = t[0].x - (oldA ? oldA.x : 0);\n // const dAy = t[0].y - (oldA ? oldA.y : 0);\n // console.log(oldA)\n // console.log(t[0])\n // const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n // const dBx = t[1].x - (oldB ? oldB.x : 0);\n // const dBy = t[1].y - (oldB ? oldB.y : 0);\n // console.log(oldB)\n // console.log(t[1])\n // console.log(`${dAx} - ${dAy} # ${dBx} - ${dBy}`)\n // const action2t = dAx * dBx < 0.0 && dAy * dBy < 0.0 ? 'pinch' : 'rotate';\n // console.log(action2t)\n // postMessage({action: action2t,id:t[0].id,dAx,dAy,dBx,dBy});\n // }\n // }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/7136383d153c3feb9b0c.worker.js b/7136383d153c3feb9b0c.worker.js new file mode 100644 index 0000000..9427471 --- /dev/null +++ b/7136383d153c3feb9b0c.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){let n=[],o={},r={},i={},l={};onmessage=function(e){e.data.config?a(e.data.config):c(e.data)};const a=e=>{const t=e.listen;i=e,l={...t,c_or_p:!!t.click||!!t.press,p_or_s:!!t.pan||!!t.swipe,move:!!t.pan||!!t.pinch||!!t.rotate,move2t:!!t.pinch||!!t.rotate}},c=e=>{console.log(e.type);const t=e.touches;switch(e.type){case"start":s(t.filter(e=>!e.event)),n=t;break;case"move":d(t),n=t.map(e=>e.inactive?e:{...e,moving:!0});break;case"end":u(t),n=t;break;default:console.log("ERROR")}},s=e=>{if(l.c_or_p)for(let t=0;t{for(let t=0;tn.id===e[t].id),i=o.x-e[t].x,l=o.y-e[t].y,a=Math.sqrt(i*i+l*l);console.log(a),r[e[t].id]&&a>5&&(console.log("CANCEL PRESS"),clearInterval(r[e[t].id]),delete r[e[t].id])}},u=e=>{for(let t=0;t{delete o[e];let i=setInterval(()=>postMessage({action:"press",id:e,x:t,y:n}),1e3/60);r[e]=i}}]); +//# sourceMappingURL=7136383d153c3feb9b0c.worker.js.map \ No newline at end of file diff --git a/7136383d153c3feb9b0c.worker.js.map b/7136383d153c3feb9b0c.worker.js.map new file mode 100644 index 0000000..a7379a0 --- /dev/null +++ b/7136383d153c3feb9b0c.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","p_or_s","pan","swipe","move","pinch","rotate","move2t","e","console","log","type","touches","start","filter","map","to","inactive","moving","end","length","timer","setTimeout","setPress","this","id","x","y","ot","find","dx","dy","inc","Math","sqrt","clearInterval","postMessage","action","clearTimeout","pTimer","setInterval"],"mappings":"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","file":"7136383d153c3feb9b0c.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = [];\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n p_or_s: !!l.pan || !!l.swipe,\n move: !!l.pan || !!l.pinch || !!l.rotate, // actions that need move event\n move2t: !!l.pinch || !!l.rotate // actions that need two move events\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n console.log(e.type)\n const t = e.touches;\n\n // console.log('EVENT -> ' + e.type)\n // console.log('OLD -> ' + JSON.stringify(oldTouches))\n // console.log('NOW -> ' + JSON.stringify(e.touches))\n\n switch(e.type){\n case 'start':\n start(t.filter((t) => !t.event));\n oldTouches = t;\n break;\n case 'move':\n move(t);\n oldTouches = t.map(to => {return !to.inactive ? {...to,moving:true} : to});\n break;\n case 'end':\n end(t);\n oldTouches = t;\n break;\n default: console.log('ERROR');\n\n\n }\n}\n\n\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n\n // Remove click or press events associated to this touch events\n for(let i=0 ; i ot.id === t[i].id);\n const dx = ot.x - t[i].x;\n const dy = ot.y - t[i].y;\n const inc = Math.sqrt(dx*dx + dy*dy);\n console.log(inc);\n if(pressTimers[t[i].id] && inc > 5.0){\n console.log('CANCEL PRESS')\n clearInterval(pressTimers[t[i].id]);\n delete pressTimers[t[i].id];\n }\n // const ot = oldTouches.find(ot => ot.id === t[i].id);\n // const dx = ot.x - t[i].x;\n // const dy = ot.y - t[i].y;\n // const inc = Math.sqrt(dx*dx + dy*dy);\n // console.log(inc);\n // console.log(ot.moving)\n // if(!ot.moving && listen.c_or_p){\n\n // if( inc > 5.0){\n // if(timers[t[i].id]){\n // console.log('CANCEL CLICK')\n // clearTimeout(timers[t[i].id]);\n // delete timers[t[i].id];\n // }\n // if(pressTimers[t[i].id]){\n // console.log('CANCEL PRESS')\n // clearInterval(pressTimers[t[i].id]);\n // delete pressTimers[t[i].id];\n // }\n // }\n }\n\n // if(listen.move){\n // if(listen.p_or_s){\n // if(!ot.moving){\n // timers[ot.id] = setTimeout(listen.swipe ? () => postMessage({action: 'swipe',id:t[i].id,x: t[i].x, y:t[i].y}) : null,200);\n // }\n // else if(!timers[ot.id] && ot.moving){\n // postMessage({action: 'pan',id:t[i].id,x: t[i].x, y:t[i].y})\n // }\n // }\n // }\n // }\n\n // if(listen.move){\n // if(listen.p_or_s){\n // for(let i=0 ; i ot.id === t[i].id);\n // const dx = ot.x - t[i].x;\n // const dy = ot.y - t[i].y;\n // const inc = Math.sqrt(dx*dx + dy*dy);\n // console.log(inc);\n // if(inc > 2.0){\n // if(listen.pan && inc > 2.0 && inc < 20.0) postMessage({action: 'pan',id:t[i].id,x: t[i].x, y:t[i].y});\n // else if(listen.swipe && inc >= 20.0) postMessage({action: 'swipe',id:t[i].id,x: t[i].x, y:t[i].y});\n // }\n // }\n // }\n\n // }\n\n\n\n // console.log('move')\n // if(listen.c_or_p){\n // if(timers[t[0].id]){\n // console.log('CANCELADO CLICK')\n // clearTimeout(timers[t[0].id]);\n // delete timers[t[0].id];\n // }\n // else if(pressTimers[t[0].id]){\n // clearInterval(pressTimers[t[0].id]);\n // delete pressTimers[t[0].id];\n // }\n // }\n // if(listen.move){\n // if(t.length === 1){\n // if(!listen.move2t){\n // for(let i=0;i oT.id === t[0].id);\n // const dAx = t[0].x - (oldA ? oldA.x : 0);\n // const dAy = t[0].y - (oldA ? oldA.y : 0);\n // console.log(oldA)\n // console.log(t[0])\n // const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n // const dBx = t[1].x - (oldB ? oldB.x : 0);\n // const dBy = t[1].y - (oldB ? oldB.y : 0);\n // console.log(oldB)\n // console.log(t[1])\n // console.log(`${dAx} - ${dAy} # ${dBx} - ${dBy}`)\n // const action2t = dAx * dBx < 0.0 && dAy * dBy < 0.0 ? 'pinch' : 'rotate';\n // console.log(action2t)\n // postMessage({action: action2t,id:t[0].id,dAx,dAy,dBx,dBy});\n // }\n // }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/b0546bf76b4721bf692d.worker.js b/b0546bf76b4721bf692d.worker.js new file mode 100644 index 0000000..eb4aa3f --- /dev/null +++ b/b0546bf76b4721bf692d.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t){let o=[],n={},r={},i={},l={};onmessage=function(e){e.data.config?s(e.data.config):c(e.data)};const s=e=>{const t=e.listen;i=e,l={...t,c_or_p:!!t.click||!!t.press,move:!!t.pan||!!t.pinch||!!t.rotate,move2t:!!t.pinch||!!t.rotate}},c=e=>{const t=e.touches;switch(console.log("EVENT -> "+e.type),console.log("OLD -> "+JSON.stringify(o)),console.log("NOW -> "+JSON.stringify(e.touches)),e.type){case"start":a(t.filter(e=>!e.event)),o=t;break;case"move":d(t),o=t;break;case"end":u(t),o=t;break;default:console.log("ERROR")}},a=e=>{if(l.c_or_p)for(let t=0;t{if(l.c_or_p)for(let t=0;to.id===e[t].id),l=i.x-e[t].x,s=i.y-e[t].y,c=Math.sqrt(l*l+s*s);console.log(c),c>5&&(n[e[t].id]?(console.log("CANCEL CLICK"),clearTimeout(n[e[t].id]),delete n[e[t].id]):r[e[t].id]&&(console.log("CANCEL PRESS"),clearInterval(r[e[t].id]),delete r[e[t].id]))}if(l.move&&l.pan)for(let t=0;to.id===e[t].id),r=n.x-e[t].x,i=n.y-e[t].y,l=Math.sqrt(r*r+i*i);console.log(l),l>2&&postMessage({action:"pan",id:e[t].id,x:e[t].x,y:e[t].y})}return e},u=e=>{for(let t=0;t{delete n[e];let i=setInterval(()=>postMessage({action:"press",id:e,x:t,y:o}),1e3/60);r[e]=i}}]); +//# sourceMappingURL=b0546bf76b4721bf692d.worker.js.map \ No newline at end of file diff --git a/b0546bf76b4721bf692d.worker.js.map b/b0546bf76b4721bf692d.worker.js.map new file mode 100644 index 0000000..bbbc934 --- /dev/null +++ b/b0546bf76b4721bf692d.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","move","pan","pinch","rotate","move2t","e","touches","console","log","type","JSON","stringify","start","filter","end","length","timer","setTimeout","setPress","this","id","x","y","ot","find","dx","dy","inc","Math","sqrt","clearTimeout","clearInterval","postMessage","action","pTimer","setInterval"],"mappings":"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","file":"b0546bf76b4721bf692d.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = [];\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n move: !!l.pan || !!l.pinch || !!l.rotate, // actions that need move event\n move2t: !!l.pinch || !!l.rotate // actions that need two move events\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n\n const t = e.touches;\n\n console.log('EVENT -> ' + e.type)\n console.log('OLD -> ' + JSON.stringify(oldTouches))\n console.log('NOW -> ' + JSON.stringify(e.touches))\n\n switch(e.type){\n case 'start':\n start(t.filter((t) => !t.event));\n oldTouches = t;\n break;\n case 'move':\n move(t);\n oldTouches = t;\n break;\n case 'end':\n end(t);\n oldTouches = t;\n break;\n default: console.log('ERROR');\n\n\n }\n}\n\n\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n\n // Remove click or press events associated to this touch events\n if(listen.c_or_p){\n for(let i=0 ; i ot.id === t[i].id);\n const dx = ot.x - t[i].x;\n const dy = ot.y - t[i].y;\n const inc = Math.sqrt(dx*dx + dy*dy);\n console.log(inc);\n if(inc > 5.0){\n if(timers[t[i].id]){\n console.log('CANCEL CLICK')\n clearTimeout(timers[t[i].id]);\n delete timers[t[i].id];\n }\n else if(pressTimers[t[i].id]){\n console.log('CANCEL PRESS')\n clearInterval(pressTimers[t[i].id]);\n delete pressTimers[t[i].id];\n }\n }\n }\n }\n\n if(listen.move){\n if(listen.pan){\n for(let i=0 ; i ot.id === t[i].id);\n const dx = ot.x - t[i].x;\n const dy = ot.y - t[i].y;\n const inc = Math.sqrt(dx*dx + dy*dy);\n console.log(inc);\n if(inc > 2.0){\n postMessage({action: 'pan',id:t[i].id,x: t[i].x, y:t[i].y});\n }\n }\n }\n\n }\n\n\n\n return t;\n // console.log('move')\n // if(listen.c_or_p){\n // if(timers[t[0].id]){\n // console.log('CANCELADO CLICK')\n // clearTimeout(timers[t[0].id]);\n // delete timers[t[0].id];\n // }\n // else if(pressTimers[t[0].id]){\n // clearInterval(pressTimers[t[0].id]);\n // delete pressTimers[t[0].id];\n // }\n // }\n // if(listen.move){\n // if(t.length === 1){\n // if(!listen.move2t){\n // for(let i=0;i oT.id === t[0].id);\n // const dAx = t[0].x - (oldA ? oldA.x : 0);\n // const dAy = t[0].y - (oldA ? oldA.y : 0);\n // console.log(oldA)\n // console.log(t[0])\n // const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n // const dBx = t[1].x - (oldB ? oldB.x : 0);\n // const dBy = t[1].y - (oldB ? oldB.y : 0);\n // console.log(oldB)\n // console.log(t[1])\n // console.log(`${dAx} - ${dAy} # ${dBx} - ${dBy}`)\n // const action2t = dAx * dBx < 0.0 && dAy * dBy < 0.0 ? 'pinch' : 'rotate';\n // console.log(action2t)\n // postMessage({action: action2t,id:t[0].id,dAx,dAy,dBx,dBy});\n // }\n // }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/bfcdcd354f3be4739497.worker.js b/bfcdcd354f3be4739497.worker.js new file mode 100644 index 0000000..54cfc83 --- /dev/null +++ b/bfcdcd354f3be4739497.worker.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){let n=null,o={},i={},r={},a={};onmessage=function(e){e.data.config?c(e.data.config):l(e.data)};const c=e=>{const t=e.listen;r=e,a={...t,c_or_p:!!t.click||!!t.press,move:!!t.pan||!!t.pinch||!!t.rotate,move2t:!!t.pinch||!!t.rotate}},l=e=>{console.log(e.type);const t=e.touches,o=e.inactiveTouches;switch(e.type){case"start":s(t);break;case"move":d(t,o);break;case"end":u(t);break;default:console.log("ERROR")}n=e.touches},s=e=>{if(a.c_or_p)for(let t=0;t{if(a.move)if(1===e.length)a.c_or_p&&(o[e[0].id]?(clearTimeout(o[e[0].id]),delete o[e[0].id]):i[e[0].id]&&(clearInterval(i[e[0].id]),delete i[e[0].id])),console.log(a),0===t.length&&a.pan&&postMessage({action:"pan",id:e[0].id,x:e[0].x,y:e[0].y});else if(2===e.length&&a.move2t){const t=n.find(t=>t.id===e[0].id),o=e[0].x-(t?t.x:0),i=e[0].y-(t?t.y:0),r=n.find(t=>t.id===e[1].id),a=e[1].x-(r?r.x:0),c=e[1].y-(r?r.y:0);postMessage({action:o*a<=0&&i*c<=0?"pinch":"rotate",id:e[0].id,dAx:o,dAy:i,dBx:a,dBy:c})}},u=e=>{for(let t=0;t{delete o[e];let r=setInterval(()=>postMessage({action:"press",id:e,x:t,y:n}),1e3/60);i[e]=r}}]); +//# sourceMappingURL=bfcdcd354f3be4739497.worker.js.map \ No newline at end of file diff --git a/bfcdcd354f3be4739497.worker.js.map b/bfcdcd354f3be4739497.worker.js.map new file mode 100644 index 0000000..0474d3e --- /dev/null +++ b/bfcdcd354f3be4739497.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/workers/test.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","oldTouches","timers","pressTimers","cfg","listen","onmessage","event","data","config","initializeConfig","processEvent","c_or_p","click","press","move","pan","pinch","rotate","move2t","e","console","log","type","touches","iT","inactiveTouches","start","end","length","timer","setTimeout","setPress","this","id","x","y","inacT","clearTimeout","clearInterval","postMessage","action","oldA","find","oT","dAx","dAy","oldB","dBx","dBy","pTimer","setInterval"],"mappings":"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","file":"bfcdcd354f3be4739497.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\n// Auxiliar variables\nlet oldTouches = null;\nlet timers = {};\nlet pressTimers = {};\nlet cfg = {}\nlet listen = {};\n\n// Messages from hooks that listen basic touch events\nonmessage = function (event) {\n if(!event.data.config) processEvent(event.data);\n else initializeConfig(event.data.config)\n};\n\nconst initializeConfig = (config) => {\n const l = config.listen;\n cfg = config;\n listen = {...l,\n c_or_p: !!l.click || !!l.press, // click or press events\n move: !!l.pan || !!l.pinch || !!l.rotate, // actions that need move event\n move2t: !!l.pinch || !!l.rotate // actions that need two move events\n }\n}\n\n// Dispatch a concrete event\nconst processEvent = (e) => {\n console.log(e.type)\n const t = e.touches;\n const iT = e.inactiveTouches;\n switch(e.type){\n case 'start':\n start(t);\n break;\n case 'move':\n move(t,iT) ;\n break;\n case 'end':\n end(t);\n break;\n default: console.log('ERROR');\n }\n oldTouches = e.touches;\n}\n\n// START event\nconst start = (t) => {\n // init timers to check if it's click or press event\n if(listen.c_or_p){\n for(let i=0;i {\n if(listen.move){\n if(t.length === 1){\n if(listen.c_or_p){\n if(timers[t[0].id]){\n clearTimeout(timers[t[0].id]);\n delete timers[t[0].id];\n }\n else if(pressTimers[t[0].id]){\n clearInterval(pressTimers[t[0].id]);\n delete pressTimers[t[0].id];\n }\n }\n console.log(listen)\n if(inacT.length === 0 && listen.pan) postMessage({action: 'pan',id:t[0].id,x: t[0].x, y:t[0].y});\n }\n else if(t.length === 2 && listen.move2t){\n\n const oldA = oldTouches.find((oT) => oT.id === t[0].id);\n const dAx = t[0].x - (oldA ? oldA.x : 0);\n const dAy = t[0].y - (oldA ? oldA.y : 0);\n const oldB = oldTouches.find((oT) => oT.id === t[1].id);\n const dBx = t[1].x - (oldB ? oldB.x : 0);\n const dBy = t[1].y - (oldB ? oldB.y : 0);\n\n const action2t = dAx * dBx <= 0 && dAy * dBy <= 0 ? 'pinch' : 'rotate';\n\n postMessage({action: action2t,id:t[0].id,dAx,dAy,dBx,dBy});\n }\n }\n}\n\n// END event\nconst end = (t) => {\n for(let i=0;i {\n delete timers[id];\n let pTimer = setInterval(() => postMessage({action: 'press',id:id,x,y}),1000/60);\n pressTimers[id] = pTimer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/build.js b/build.js new file mode 100644 index 0000000..a15a1a4 --- /dev/null +++ b/build.js @@ -0,0 +1,32 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var l=t[r]={i:r,l:!1,exports:{}};return e[r].call(l.exports,l,l.exports,n),l.l=!0,l.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(r,l,function(t){return e[t]}.bind(null,l));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([function(e,t,n){"use strict";e.exports=n(4)},function(e,t,n){"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/var r=Object.getOwnPropertySymbols,l=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,o=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;uz.length&&z.push(e)}function D(e,t,n){return null==e?0:function e(t,n,r,l){var o=typeof t;"undefined"!==o&&"boolean"!==o||(t=null);var u=!1;if(null===t)u=!0;else switch(o){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case a:u=!0}}if(u)return r(l,t,""===n?"."+U(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;cthis.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=ce,e.release=se}l(ue.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ae)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ae)},persist:function(){this.isPersistent=ae},isPersistent:oe,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=oe,this._dispatchInstances=this._dispatchListeners=null}}),ue.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},ue.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return l(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=l({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(ue);var de=ue.extend({data:null}),pe=ue.extend({data:null}),me=[9,13,27,32],he=$&&"CompositionEvent"in window,ve=null;$&&"documentMode"in document&&(ve=document.documentMode);var ye=$&&"TextEvent"in window&&!ve,ge=$&&(!he||ve&&8=ve),be=String.fromCharCode(32),ke={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},xe=!1;function we(e,t){switch(e){case"keyup":return-1!==me.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Te(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Se=!1;var Ee={eventTypes:ke,extractEvents:function(e,t,n,r){var l=void 0,i=void 0;if(he)e:{switch(e){case"compositionstart":l=ke.compositionStart;break e;case"compositionend":l=ke.compositionEnd;break e;case"compositionupdate":l=ke.compositionUpdate;break e}l=void 0}else Se?we(e,n)&&(l=ke.compositionEnd):"keydown"===e&&229===n.keyCode&&(l=ke.compositionStart);return l?(ge&&"ko"!==n.locale&&(Se||l!==ke.compositionStart?l===ke.compositionEnd&&Se&&(i=ie()):(re="value"in(ne=r)?ne.value:ne.textContent,Se=!0)),l=de.getPooled(l,t,n,r),i?l.data=i:null!==(i=Te(n))&&(l.data=i),H(l),i=l):i=null,(e=ye?function(e,t){switch(e){case"compositionend":return Te(t);case"keypress":return 32!==t.which?null:(xe=!0,be);case"textInput":return(e=t.data)===be&&xe?null:e;default:return null}}(e,n):function(e,t){if(Se)return"compositionend"===e||!he&&we(e,t)?(e=ie(),le=re=ne=null,Se=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1