@bigmistqke/minni 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,22 @@
1
+ ## 🐭 minni, a minimal drag utility
2
+
3
+ ```ts
4
+ import {minni} from "@bigmistqke/minni"
5
+
6
+ const mouseDownHandler = async (e: MouseEvent) => {
7
+ console.log('start dragging')
8
+ const delta = await minni(e, (delta) => {
9
+ ...
10
+ })
11
+ console.log('finished dragging:', delta)
12
+ }
13
+
14
+ const touchStartHandler = async (e: TouchEvent) => {
15
+ console.log('start dragging')
16
+ const delta = await minni(e, (delta) => {
17
+ ...
18
+ })
19
+ console.log('finished dragging:', delta)
20
+ }
21
+
22
+ ```
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var n=(e,m)=>e+m;exports.a = n;
@@ -0,0 +1 @@
1
+ var n=(e,m)=>e+m;export{n as a};
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk72AXEIDXcjs = require('./chunk-72AXEIDX.cjs');exports.sum = _chunk72AXEIDXcjs.a;
@@ -0,0 +1 @@
1
+ export { sum } from './sum.js';
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{a as m}from"./chunk-ZCVFACLD.js";export{m as sum};
package/dist/sum.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk72AXEIDXcjs = require('./chunk-72AXEIDX.cjs');exports.sum = _chunk72AXEIDXcjs.a;
package/dist/sum.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const sum: (a: number, b: number) => number;
2
+
3
+ export { sum };
package/dist/sum.js ADDED
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-ZCVFACLD.js";export{a as sum};
package/lib/index.cjs ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }const minni = (event, callback) => new Promise((resolve) => {
2
+ if ("touches" in event) {
3
+ const start = {
4
+ x: event.touches[0].clientX,
5
+ y: event.touches[0].clientY
6
+ };
7
+ const getDelta = (event2) => ({
8
+ x: event2.touches[0].clientX - start.x,
9
+ y: start.y - event2.touches[0].clientY
10
+ });
11
+ const move = (event2) => _optionalChain([callback, 'optionalCall', _ => _(getDelta(event2), event2)]);
12
+ const end = (event2) => {
13
+ window.removeEventListener("touchmove", move);
14
+ window.removeEventListener("touchend", end);
15
+ resolve(getDelta(event2));
16
+ };
17
+ window.addEventListener("touchmove", move);
18
+ window.addEventListener("touchend", end);
19
+ } else {
20
+ const start = {
21
+ x: event.clientX,
22
+ y: event.clientY
23
+ };
24
+ const getDelta = (event2) => ({
25
+ x: event2.clientX - start.x,
26
+ y: start.y - event2.clientY
27
+ });
28
+ const move = (event2) => _optionalChain([callback, 'optionalCall', _2 => _2(getDelta(event2), event2)]);
29
+ const end = (event2) => {
30
+ window.removeEventListener("mousemove", move);
31
+ window.removeEventListener("mouseup", end);
32
+ resolve(getDelta(event2));
33
+ };
34
+ window.addEventListener("mousemove", move);
35
+ window.addEventListener("mouseup", end);
36
+ }
37
+ });
38
+
39
+
40
+ exports.minni = minni;
package/lib/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ declare const minni: <TEvent extends MouseEvent | TouchEvent>(event: TEvent, callback?: ((delta: {
2
+ x: number;
3
+ y: number;
4
+ }, event: TEvent) => {}) | undefined) => Promise<{
5
+ x: number;
6
+ y: number;
7
+ }>;
8
+
9
+ export { minni };
package/lib/index.js ADDED
@@ -0,0 +1,40 @@
1
+ const minni = (event, callback) => new Promise((resolve) => {
2
+ if ("touches" in event) {
3
+ const start = {
4
+ x: event.touches[0].clientX,
5
+ y: event.touches[0].clientY
6
+ };
7
+ const getDelta = (event2) => ({
8
+ x: event2.touches[0].clientX - start.x,
9
+ y: start.y - event2.touches[0].clientY
10
+ });
11
+ const move = (event2) => callback?.(getDelta(event2), event2);
12
+ const end = (event2) => {
13
+ window.removeEventListener("touchmove", move);
14
+ window.removeEventListener("touchend", end);
15
+ resolve(getDelta(event2));
16
+ };
17
+ window.addEventListener("touchmove", move);
18
+ window.addEventListener("touchend", end);
19
+ } else {
20
+ const start = {
21
+ x: event.clientX,
22
+ y: event.clientY
23
+ };
24
+ const getDelta = (event2) => ({
25
+ x: event2.clientX - start.x,
26
+ y: start.y - event2.clientY
27
+ });
28
+ const move = (event2) => callback?.(getDelta(event2), event2);
29
+ const end = (event2) => {
30
+ window.removeEventListener("mousemove", move);
31
+ window.removeEventListener("mouseup", end);
32
+ resolve(getDelta(event2));
33
+ };
34
+ window.addEventListener("mousemove", move);
35
+ window.addEventListener("mouseup", end);
36
+ }
37
+ });
38
+ export {
39
+ minni
40
+ };
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@bigmistqke/minni",
3
+ "version": "0.0.1",
4
+ "description": "minimal drag utility",
5
+ "author": "bigmistqke",
6
+ "license": "MIT",
7
+ "url": "https://github.com/bigmistqke/minni",
8
+ "scripts": {
9
+ "ts-types": "tsc",
10
+ "build:dev": "rimraf lib && tsup --watch",
11
+ "build:prod": "rimraf dist && env NODE_ENV=production tsup",
12
+ "build:watch": "tsup --watch",
13
+ "lint:fix": "eslint ./src --ext .ts,.tsx --quiet --fix --ignore-path ./.gitignore",
14
+ "lint:format": "prettier --loglevel warn --write \"./**/*.{ts,tsx,css,md,json}\" ",
15
+ "lint": "yarn lint:format && yarn lint:fix "
16
+ },
17
+ "devDependencies": {
18
+ "@typescript-eslint/eslint-plugin": "^5.27.0",
19
+ "@typescript-eslint/parser": "^5.27.0",
20
+ "prettier": "^2.6.2",
21
+ "rimraf": "^3.0.2",
22
+ "tsup": "^6.0.1"
23
+ },
24
+ "main": "dist/index.cjs",
25
+ "module": "dist/index.js",
26
+ "types": "dist/index.d.ts",
27
+ "type": "module",
28
+ "dependencies": {
29
+ "typescript": "^4.7.2"
30
+ },
31
+ "files": [
32
+ "lib",
33
+ "dist"
34
+ ],
35
+ "directories": {
36
+ "lib": "lib"
37
+ },
38
+ "keywords": []
39
+ }