preact-gestures
Version:
Preact compatible HOCs for gesture detection
2 lines • 737 B
JavaScript
import{h}from"preact";import gestureTriggers from"./gestureTriggers.js";import{splitCamelCase,mergeWith,series,mapObj,setPath}from"./utils.js";const splitHandlerName=e=>{let[t,r,...s]=splitCamelCase(e);return[t+r,(s=0===s.length?["default"]:s).join("")]};export function withGestures(e,t){const r=[],s=gestureTriggers(t);return function(t){let i={},n={},l={};return Object.entries(t).forEach(([e,t])=>{let[r,n]=splitHandlerName(e);if(n=n.toLowerCase(),r in s){setPath(l,[r,n],t)}else i[e]=t}),Object.entries(l).forEach(([e,t])=>{let i=mapObj(s[e],(e,s)=>((e,t)=>{return e.bind(null,(e,s="default")=>{r.includes(e)||(r.push(e),s in t&&t[s](e))})})(s,t));n=mergeWith(series,n,i)}),h("span",n,h(e,i))}}
//# sourceMappingURL=index.min.js.map