UNPKG

6.8 kBPlain TextView Raw
1{"code":"\n/*body*/\nexport const navigator = new class {\n\t\n\t\n\tget iosΦ(){\n\t\t\n\t\tlet nav = globalThis.navigator.platform || '';\n\t\tif (nav.match(/iPhone|iPod|iPad/)) { return true };\n\t\tif (nav == 'MacIntel' && globalThis.navigator.maxTouchPoints > 2) { return true };\n\t\treturn false;\n\t}\n};\n\nexport function toElement(sel,source){\n\t\n\tlet el = source;\n\t\n\tif (sel instanceof Element) {\n\t\t\n\t\treturn sel;\n\t};\n\t\n\tif (typeof sel == 'string') {\n\t\t\n\t\tif (sel == 'this' || sel == '') {\n\t\t\t\n\t\t\treturn el;\n\t\t} else if (sel == 'up') {\n\t\t\t\n\t\t\treturn el.parentNode;\n\t\t} else if (sel == 'op') {\n\t\t\t\n\t\t\treturn el.offsetParent;\n\t\t} else {\n\t\t\t\n\t\t\treturn el.closest(sel) || el.querySelector(sel) || globalThis.document.querySelector(sel);\n\t\t};\n\t};\n\t\n\treturn null;\n};\n\nexport function parseDimension(val){\n\t\n\tif (typeof val == 'string') {\n\t\t\n\t\tlet [m,num,unit] = val.match(/^([-+]?[\\d\\.]+)(%|\\w+)$/);\n\t\treturn [parseFloat(num),unit];\n\t} else if (typeof val == 'number') {\n\t\t\n\t\treturn [val];\n\t};\n};\n\nexport function round(val,step = 1){\n\t\n\tlet inv = 1.0 / step;\n\treturn Math.round(val * inv) / inv;\n};\n\nexport function clamp(val,min,max){\n\t\n\tif (min > max) {\n\t\t\n\t\treturn Math.max(max,Math.min(min,val));\n\t} else {\n\t\t\n\t\treturn Math.min(max,Math.max(min,val));\n\t};\n};\n\nexport function createScale(a0,a1,b0r,b1r,s = 0.1){\n\t\n\tlet [b0,b0u] = parseDimension(b0r);\n\tlet [b1,b1u] = parseDimension(b1r);\n\tlet [sv,su] = parseDimension(s);\n\t\n\tif (b0u == '%') { b0 = (a1 - a0) * (b0 / 100) };\n\tif (b1u == '%') { b1 = (a1 - a0) * (b1 / 100) };\n\t\n\tif (su == '%') { sv = (b1 - b0) * (sv / 100) };\n\t\n\treturn function(value,fit) {\n\t\t\n\t\tlet pct = (value - a0) / (a1 - a0);\n\t\tlet val = b0 + (b1 - b0) * pct;\n\t\t// console.log 'scaling',value,[a0,a1],[b0,b1],s,val\n\t\tif (s) { val = round(val,sv) };\n\t\tif (fit) { val = clamp(val,b0,b1) };\n\t\treturn val;\n\t};\n};\n","map":{"version":3,"file":"helpers.js","sourceRoot":"","sources":["/Users/abdellah/workspace/scrimba/imba/packages/imba/src/imba/events/helpers.imba"],"sourcesContent":["export const navigator = new class\n\n\tget ios?\n\t\tlet nav = global.navigator.platform or ''\n\t\treturn true if nav.match(/iPhone|iPod|iPad/)\n\t\treturn true if nav == 'MacIntel' and global.navigator.maxTouchPoints > 2\n\t\treturn false\n\nexport def toElement sel, source\n\tlet el = source\n\n\tif sel isa Element\n\t\treturn sel\n\n\tif typeof sel == 'string'\n\t\tif sel == 'this' or sel == ''\n\t\t\treturn el\n\t\telif sel == 'up'\n\t\t\treturn el.parentNode\n\t\telif sel == 'op'\n\t\t\treturn el.offsetParent\n\t\telse\n\t\t\treturn el.closest(sel) or el.querySelector(sel) or global.document.querySelector(sel)\n\n\treturn null\n\nexport def parseDimension val\n\tif typeof val == 'string'\n\t\tlet [m,num,unit] = val.match(/^([-+]?[\\d\\.]+)(%|\\w+)$/)\n\t\treturn [parseFloat(num),unit]\n\telif typeof val == 'number'\n\t\treturn [val]\n\nexport def round val,step = 1\n\tlet inv = 1.0 / step\n\tMath.round(val * inv) / inv\n\nexport def clamp val,min,max\n\tif min > max\n\t\tMath.max(max,Math.min(min,val))\n\telse\n\t\tMath.min(max,Math.max(min,val))\n\nexport def createScale a0,a1,b0r,b1r,s = 0.1\n\tlet [b0,b0u] = parseDimension(b0r)\n\tlet [b1,b1u] = parseDimension(b1r)\n\tlet [sv,su] = parseDimension(s)\n\n\tb0 = (a1 - a0) * (b0 / 100) if b0u == '%'\n\tb1 = (a1 - a0) * (b1 / 100) if b1u == '%'\n\n\tsv = (b1 - b0) * (sv / 100) if su == '%'\n\n\treturn do(value,fit)\n\t\tlet pct = (value - a0) / (a1 - a0)\n\t\tlet val = b0 + (b1 - b0) * pct\n\t\t# console.log 'scaling',value,[a0,a1],[b0,b1],s,val\n\t\tval = round(val,sv) if s\n\t\tval = clamp(val,b0,b1) if fit\n\t\treturn val"],"names":[],"mappings":"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"},"dependencies":[],"meta":{"vite":{"lang":"js"}}}
\No newline at end of file