@studiometa/js-toolkit 2.0.0-beta.0 → 2.0.0-beta.12
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/Base/index.cjs +287 -0
- package/Base/index.d.ts +27 -1
- package/Base/index.js +149 -179
- package/Base/managers/ChildrenManager.cjs +122 -0
- package/Base/managers/ChildrenManager.js +29 -55
- package/Base/managers/EventsManager.cjs +182 -0
- package/Base/managers/EventsManager.d.ts +3 -1
- package/Base/managers/EventsManager.js +85 -127
- package/Base/managers/OptionsManager.cjs +167 -0
- package/Base/managers/OptionsManager.d.ts +2 -0
- package/Base/managers/OptionsManager.js +46 -88
- package/Base/managers/RefsManager.cjs +96 -0
- package/Base/managers/RefsManager.d.ts +2 -0
- package/Base/managers/RefsManager.js +24 -35
- package/Base/managers/ServicesManager.cjs +130 -0
- package/Base/managers/ServicesManager.d.ts +29 -4
- package/Base/managers/ServicesManager.js +33 -63
- package/Base/utils.cjs +43 -0
- package/Base/utils.js +12 -11
- package/README.md +13 -70
- package/decorators/index.cjs +47 -0
- package/decorators/index.d.ts +8 -9
- package/decorators/index.js +18 -9
- package/decorators/withBreakpointManager.cjs +89 -0
- package/decorators/withBreakpointManager.js +18 -39
- package/decorators/withBreakpointObserver.cjs +114 -0
- package/decorators/withBreakpointObserver.js +40 -88
- package/decorators/withDrag.cjs +52 -0
- package/decorators/withDrag.js +16 -18
- package/decorators/withExtraConfig.cjs +42 -0
- package/decorators/withExtraConfig.js +11 -12
- package/decorators/withIntersectionObserver.cjs +59 -0
- package/decorators/withIntersectionObserver.js +23 -31
- package/decorators/withMountWhenInView.cjs +66 -0
- package/decorators/withMountWhenInView.js +31 -55
- package/decorators/withScrolledInView.cjs +110 -0
- package/decorators/withScrolledInView.d.ts +4 -1
- package/decorators/withScrolledInView.js +77 -73
- package/decorators/withVue2.cjs +58 -0
- package/decorators/withVue2.js +21 -32
- package/helpers/createApp.cjs +54 -0
- package/helpers/createApp.js +12 -12
- package/helpers/importOnInteraction.cjs +54 -0
- package/helpers/importOnInteraction.js +17 -18
- package/helpers/importWhenIdle.cjs +50 -0
- package/helpers/importWhenIdle.js +13 -17
- package/helpers/importWhenVisible.cjs +52 -0
- package/helpers/importWhenVisible.js +16 -18
- package/helpers/index.cjs +39 -0
- package/helpers/index.d.ts +4 -5
- package/helpers/index.js +10 -5
- package/helpers/utils.cjs +37 -0
- package/helpers/utils.js +7 -6
- package/index.cjs +36 -0
- package/index.d.ts +4 -21
- package/index.js +7 -5
- package/package.json +14 -3
- package/services/Service.cjs +73 -0
- package/services/Service.d.ts +22 -17
- package/services/Service.js +14 -28
- package/services/drag.cjs +192 -0
- package/services/drag.d.ts +4 -18
- package/services/drag.js +103 -156
- package/services/index.cjs +45 -0
- package/services/index.d.ts +13 -10
- package/services/index.js +16 -8
- package/services/key.cjs +99 -0
- package/services/key.d.ts +4 -13
- package/services/key.js +58 -77
- package/services/load.cjs +68 -0
- package/services/load.d.ts +3 -13
- package/services/load.js +31 -36
- package/services/pointer.cjs +157 -0
- package/services/pointer.d.ts +4 -13
- package/services/pointer.js +91 -121
- package/services/raf.cjs +79 -0
- package/services/raf.d.ts +3 -13
- package/services/raf.js +32 -52
- package/services/resize.cjs +104 -0
- package/services/resize.d.ts +3 -13
- package/services/resize.js +52 -52
- package/services/scroll.cjs +127 -0
- package/services/scroll.d.ts +3 -13
- package/services/scroll.js +75 -89
- package/utils/collide/boundingRectToCircle.cjs +36 -0
- package/utils/collide/boundingRectToCircle.d.ts +1 -1
- package/utils/collide/boundingRectToCircle.js +7 -10
- package/utils/collide/collideCircleCircle.cjs +36 -0
- package/utils/collide/collideCircleCircle.js +8 -7
- package/utils/collide/collideCircleRect.cjs +48 -0
- package/utils/collide/collideCircleRect.js +10 -12
- package/utils/collide/collidePointCircle.cjs +33 -0
- package/utils/collide/collidePointCircle.js +8 -5
- package/utils/collide/collidePointRect.cjs +30 -0
- package/utils/collide/collidePointRect.js +5 -2
- package/utils/collide/collideRectRect.cjs +30 -0
- package/utils/collide/collideRectRect.js +5 -2
- package/utils/collide/index.cjs +43 -0
- package/utils/collide/index.d.ts +6 -7
- package/utils/collide/index.js +14 -7
- package/utils/css/classes.cjs +46 -0
- package/utils/css/classes.js +13 -12
- package/utils/css/index.cjs +39 -0
- package/utils/css/index.d.ts +4 -5
- package/utils/css/index.js +10 -5
- package/utils/css/matrix.cjs +31 -0
- package/utils/css/matrix.js +6 -5
- package/utils/css/styles.cjs +49 -0
- package/utils/css/styles.js +13 -12
- package/utils/css/transition.cjs +119 -0
- package/utils/css/transition.js +62 -117
- package/utils/debounce.cjs +36 -0
- package/utils/debounce.js +7 -9
- package/utils/focusTrap.cjs +86 -0
- package/utils/focusTrap.js +30 -21
- package/utils/history.cjs +93 -0
- package/utils/history.js +28 -57
- package/utils/index.cjs +55 -0
- package/utils/index.d.ts +12 -35
- package/utils/index.js +30 -17
- package/utils/keyCodes.cjs +37 -0
- package/utils/keyCodes.js +5 -2
- package/utils/math/clamp.cjs +30 -0
- package/utils/math/clamp.js +5 -2
- package/utils/math/clamp01.cjs +36 -0
- package/utils/math/clamp01.js +6 -3
- package/utils/math/damp.cjs +30 -0
- package/utils/math/damp.js +5 -4
- package/utils/math/ease.cjs +90 -0
- package/utils/math/ease.d.ts +78 -0
- package/utils/math/ease.js +66 -0
- package/utils/math/index.cjs +46 -0
- package/utils/math/index.d.ts +8 -8
- package/utils/math/index.js +17 -8
- package/utils/math/inertiaFinalValue.cjs +39 -0
- package/utils/math/inertiaFinalValue.js +8 -10
- package/utils/math/lerp.cjs +30 -0
- package/utils/math/lerp.js +5 -2
- package/utils/math/map.cjs +30 -0
- package/utils/math/map.js +5 -2
- package/utils/math/round.cjs +30 -0
- package/utils/math/round.js +5 -3
- package/utils/memoize.cjs +45 -0
- package/utils/memoize.js +10 -19
- package/utils/nextFrame.cjs +42 -0
- package/utils/nextFrame.js +14 -9
- package/utils/object/autoBind.cjs +53 -0
- package/utils/object/autoBind.js +12 -22
- package/utils/object/getAllProperties.cjs +39 -0
- package/utils/object/getAllProperties.js +11 -14
- package/utils/object/index.cjs +37 -0
- package/utils/object/index.d.ts +3 -4
- package/utils/object/index.js +8 -4
- package/utils/object/isObject.cjs +30 -0
- package/utils/object/isObject.js +6 -3
- package/utils/scrollTo.cjs +84 -0
- package/utils/scrollTo.js +20 -40
- package/utils/string/index.cjs +51 -0
- package/utils/string/index.d.ts +10 -11
- package/utils/string/index.js +22 -11
- package/utils/string/withLeadingCharacters.cjs +36 -0
- package/utils/string/withLeadingCharacters.js +7 -4
- package/utils/string/withLeadingSlash.cjs +36 -0
- package/utils/string/withLeadingSlash.js +7 -4
- package/utils/string/withTrailingCharacters.cjs +36 -0
- package/utils/string/withTrailingCharacters.js +7 -4
- package/utils/string/withTrailingSlash.cjs +36 -0
- package/utils/string/withTrailingSlash.js +7 -4
- package/utils/string/withoutLeadingCharacters.cjs +30 -0
- package/utils/string/withoutLeadingCharacters.js +6 -3
- package/utils/string/withoutLeadingCharactersRecursive.cjs +41 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +8 -7
- package/utils/string/withoutLeadingSlash.cjs +36 -0
- package/utils/string/withoutLeadingSlash.js +7 -4
- package/utils/string/withoutTrailingCharacters.cjs +30 -0
- package/utils/string/withoutTrailingCharacters.js +6 -3
- package/utils/string/withoutTrailingCharactersRecursive.cjs +41 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +8 -7
- package/utils/string/withoutTrailingSlash.cjs +36 -0
- package/utils/string/withoutTrailingSlash.js +7 -4
- package/utils/throttle.cjs +38 -0
- package/utils/throttle.js +9 -9
- package/index.modern.js +0 -1
- package/index.umd.js +0 -1
package/services/drag.js
CHANGED
|
@@ -1,216 +1,163 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var MODES = {
|
|
12
|
-
START: 'start',
|
|
13
|
-
DRAG: 'drag',
|
|
14
|
-
DROP: 'drop',
|
|
15
|
-
INERTIA: 'inertia',
|
|
16
|
-
STOP: 'stop'
|
|
1
|
+
import Service from "./Service.js";
|
|
2
|
+
import usePointer from "./pointer.js";
|
|
3
|
+
import useRaf from "./raf.js";
|
|
4
|
+
import inertiaFinalValue from "../utils/math/inertiaFinalValue.js";
|
|
5
|
+
const MODES = {
|
|
6
|
+
START: "start",
|
|
7
|
+
DRAG: "drag",
|
|
8
|
+
DROP: "drop",
|
|
9
|
+
INERTIA: "inertia",
|
|
10
|
+
STOP: "stop"
|
|
17
11
|
};
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
let instanceIds = 0;
|
|
20
13
|
class Drag extends Service {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
_defineProperty(this, "isGrabbing", false);
|
|
32
|
-
|
|
33
|
-
_defineProperty(this, "hasInertia", false);
|
|
34
|
-
|
|
35
|
-
_defineProperty(this, "x", 0);
|
|
36
|
-
|
|
37
|
-
_defineProperty(this, "y", 0);
|
|
38
|
-
|
|
39
|
-
_defineProperty(this, "delta", {
|
|
14
|
+
id;
|
|
15
|
+
props = {
|
|
16
|
+
target: null,
|
|
17
|
+
mode: void 0,
|
|
18
|
+
isGrabbing: false,
|
|
19
|
+
hasInertia: false,
|
|
20
|
+
x: 0,
|
|
21
|
+
y: 0,
|
|
22
|
+
delta: {
|
|
40
23
|
x: 0,
|
|
41
24
|
y: 0
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
_defineProperty(this, "origin", {
|
|
25
|
+
},
|
|
26
|
+
origin: {
|
|
45
27
|
x: 0,
|
|
46
28
|
y: 0
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
_defineProperty(this, "distance", {
|
|
29
|
+
},
|
|
30
|
+
distance: {
|
|
50
31
|
x: 0,
|
|
51
32
|
y: 0
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
_defineProperty(this, "final", {
|
|
33
|
+
},
|
|
34
|
+
final: {
|
|
55
35
|
x: 0,
|
|
56
36
|
y: 0
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
options = {
|
|
40
|
+
dampFactor: 0.85
|
|
41
|
+
};
|
|
42
|
+
constructor(target, options = {}) {
|
|
43
|
+
super();
|
|
63
44
|
instanceIds += 1;
|
|
64
|
-
this.id =
|
|
65
|
-
this.target = target;
|
|
66
|
-
this.options =
|
|
45
|
+
this.id = `drag-${instanceIds}`;
|
|
46
|
+
this.props.target = target;
|
|
47
|
+
this.options = { ...this.options, ...options };
|
|
67
48
|
this.pointerHandler = this.pointerHandler.bind(this);
|
|
68
49
|
this.rafHandler = this.rafHandler.bind(this);
|
|
69
50
|
return this;
|
|
70
51
|
}
|
|
71
|
-
|
|
72
52
|
init() {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
this.target.addEventListener('touchstart', this, options);
|
|
78
|
-
var pointer = usePointer();
|
|
53
|
+
const options = { passive: true };
|
|
54
|
+
this.props.target.addEventListener("mousedown", this, options);
|
|
55
|
+
this.props.target.addEventListener("touchstart", this, options);
|
|
56
|
+
const pointer = usePointer();
|
|
79
57
|
pointer.add(this.id, this.pointerHandler);
|
|
80
58
|
return this;
|
|
81
59
|
}
|
|
82
|
-
|
|
83
60
|
kill() {
|
|
84
|
-
this.target.removeEventListener(
|
|
85
|
-
this.target.removeEventListener(
|
|
86
|
-
|
|
61
|
+
this.props.target.removeEventListener("mousemove", this);
|
|
62
|
+
this.props.target.removeEventListener("touchmove", this);
|
|
63
|
+
const pointer = usePointer();
|
|
87
64
|
pointer.remove(this.id);
|
|
88
65
|
return this;
|
|
89
66
|
}
|
|
90
|
-
|
|
91
67
|
handleEvent(event) {
|
|
92
|
-
|
|
93
|
-
|
|
68
|
+
const x = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;
|
|
69
|
+
const y = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;
|
|
94
70
|
this.start(x, y);
|
|
95
71
|
}
|
|
96
|
-
|
|
97
72
|
start(x, y) {
|
|
98
|
-
this.x = x;
|
|
99
|
-
this.y = y;
|
|
100
|
-
this.origin.x = x;
|
|
101
|
-
this.origin.y = y;
|
|
102
|
-
this.delta.x = 0;
|
|
103
|
-
this.delta.y = 0;
|
|
104
|
-
this.distance.x = 0;
|
|
105
|
-
this.distance.y = 0;
|
|
106
|
-
this.final.x = x;
|
|
107
|
-
this.final.y = y;
|
|
108
|
-
this.mode = MODES.START;
|
|
109
|
-
this.isGrabbing = true;
|
|
73
|
+
this.props.x = x;
|
|
74
|
+
this.props.y = y;
|
|
75
|
+
this.props.origin.x = x;
|
|
76
|
+
this.props.origin.y = y;
|
|
77
|
+
this.props.delta.x = 0;
|
|
78
|
+
this.props.delta.y = 0;
|
|
79
|
+
this.props.distance.x = 0;
|
|
80
|
+
this.props.distance.y = 0;
|
|
81
|
+
this.props.final.x = x;
|
|
82
|
+
this.props.final.y = y;
|
|
83
|
+
this.props.mode = MODES.START;
|
|
84
|
+
this.props.isGrabbing = true;
|
|
110
85
|
this.trigger(this.props);
|
|
111
86
|
}
|
|
112
|
-
|
|
113
87
|
drop() {
|
|
114
|
-
this.isGrabbing = false;
|
|
115
|
-
this.mode = MODES.DROP;
|
|
116
|
-
this.hasInertia = true;
|
|
117
|
-
this.final.x = inertiaFinalValue(this.x, this.delta.x, this.options.dampFactor);
|
|
118
|
-
this.final.y = inertiaFinalValue(this.y, this.delta.y, this.options.dampFactor);
|
|
88
|
+
this.props.isGrabbing = false;
|
|
89
|
+
this.props.mode = MODES.DROP;
|
|
90
|
+
this.props.hasInertia = true;
|
|
91
|
+
this.props.final.x = inertiaFinalValue(this.props.x, this.props.delta.x, this.options.dampFactor);
|
|
92
|
+
this.props.final.y = inertiaFinalValue(this.props.y, this.props.delta.y, this.options.dampFactor);
|
|
119
93
|
this.trigger(this.props);
|
|
120
94
|
setTimeout(() => {
|
|
121
|
-
|
|
95
|
+
const raf = useRaf();
|
|
122
96
|
raf.remove(this.id);
|
|
123
97
|
raf.add(this.id, this.rafHandler);
|
|
124
98
|
}, 0);
|
|
125
99
|
}
|
|
126
|
-
|
|
127
100
|
stop() {
|
|
128
101
|
useRaf().remove(this.id);
|
|
129
|
-
this.hasInertia = false;
|
|
130
|
-
this.mode = MODES.STOP;
|
|
102
|
+
this.props.hasInertia = false;
|
|
103
|
+
this.props.mode = MODES.STOP;
|
|
131
104
|
this.trigger(this.props);
|
|
132
105
|
}
|
|
133
|
-
|
|
134
106
|
rafHandler() {
|
|
135
|
-
if (!this.isGrabbing) {
|
|
136
|
-
this.x += this.delta.x;
|
|
137
|
-
this.y += this.delta.y;
|
|
138
|
-
this.distance.x = this.x - this.origin.x;
|
|
139
|
-
this.distance.y = this.y - this.origin.y;
|
|
140
|
-
this.delta.x *= this.options.dampFactor;
|
|
141
|
-
this.delta.y *= this.options.dampFactor;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
this.mode = MODES.INERTIA;
|
|
107
|
+
if (!this.props.isGrabbing) {
|
|
108
|
+
this.props.x += this.props.delta.x;
|
|
109
|
+
this.props.y += this.props.delta.y;
|
|
110
|
+
this.props.distance.x = this.props.x - this.props.origin.x;
|
|
111
|
+
this.props.distance.y = this.props.y - this.props.origin.y;
|
|
112
|
+
this.props.delta.x *= this.options.dampFactor;
|
|
113
|
+
this.props.delta.y *= this.options.dampFactor;
|
|
114
|
+
if (this.props.mode !== MODES.INERTIA) {
|
|
115
|
+
this.props.mode = MODES.INERTIA;
|
|
145
116
|
}
|
|
146
|
-
|
|
147
117
|
this.trigger(this.props);
|
|
148
|
-
|
|
149
|
-
if (Math.abs(this.delta.x) < 0.1 && Math.abs(this.delta.y) < 0.1) {
|
|
118
|
+
if (Math.abs(this.props.delta.x) < 0.1 && Math.abs(this.props.delta.y) < 0.1) {
|
|
150
119
|
this.stop();
|
|
151
120
|
}
|
|
152
121
|
}
|
|
153
122
|
}
|
|
154
|
-
|
|
155
123
|
pointerHandler(props) {
|
|
156
|
-
if (this.isGrabbing) {
|
|
157
|
-
this.x = props.x;
|
|
158
|
-
this.y = props.y;
|
|
159
|
-
this.delta.x = props.delta.x;
|
|
160
|
-
this.delta.y = props.delta.y;
|
|
161
|
-
this.final.x = props.x;
|
|
162
|
-
this.final.y = props.y;
|
|
163
|
-
this.distance.x = this.x - this.origin.x;
|
|
164
|
-
this.distance.y = this.y - this.origin.y;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
this.mode = MODES.DRAG;
|
|
124
|
+
if (this.props.isGrabbing) {
|
|
125
|
+
this.props.x = props.x;
|
|
126
|
+
this.props.y = props.y;
|
|
127
|
+
this.props.delta.x = props.delta.x;
|
|
128
|
+
this.props.delta.y = props.delta.y;
|
|
129
|
+
this.props.final.x = props.x;
|
|
130
|
+
this.props.final.y = props.y;
|
|
131
|
+
this.props.distance.x = this.props.x - this.props.origin.x;
|
|
132
|
+
this.props.distance.y = this.props.y - this.props.origin.y;
|
|
133
|
+
if (this.props.mode !== MODES.DRAG) {
|
|
134
|
+
this.props.mode = MODES.DRAG;
|
|
168
135
|
}
|
|
169
|
-
|
|
170
136
|
this.trigger(this.props);
|
|
171
|
-
|
|
172
137
|
if (!props.isDown) {
|
|
173
138
|
this.drop();
|
|
174
139
|
}
|
|
175
140
|
}
|
|
176
141
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return {
|
|
180
|
-
target: this.target,
|
|
181
|
-
mode: this.mode,
|
|
182
|
-
isGrabbing: this.isGrabbing,
|
|
183
|
-
hasInertia: this.hasInertia,
|
|
184
|
-
x: this.x,
|
|
185
|
-
y: this.y,
|
|
186
|
-
delta: this.delta,
|
|
187
|
-
origin: this.origin,
|
|
188
|
-
distance: this.distance,
|
|
189
|
-
final: this.final
|
|
190
|
-
};
|
|
142
|
+
updateProps() {
|
|
143
|
+
return this.props;
|
|
191
144
|
}
|
|
192
|
-
|
|
193
145
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
var drag = instances.get(target);
|
|
198
|
-
|
|
146
|
+
const instances = /* @__PURE__ */ new WeakMap();
|
|
147
|
+
function useDrag(target, options) {
|
|
148
|
+
let drag = instances.get(target);
|
|
199
149
|
if (!drag) {
|
|
200
|
-
|
|
150
|
+
const instance = new Drag(target, options);
|
|
151
|
+
drag = {
|
|
152
|
+
add: instance.add.bind(instance),
|
|
153
|
+
remove: instance.remove.bind(instance),
|
|
154
|
+
has: instance.has.bind(instance),
|
|
155
|
+
props: instance.updateProps.bind(instance)
|
|
156
|
+
};
|
|
201
157
|
instances.set(target, drag);
|
|
202
158
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
var props = () => drag.props;
|
|
209
|
-
|
|
210
|
-
return {
|
|
211
|
-
add,
|
|
212
|
-
remove,
|
|
213
|
-
has,
|
|
214
|
-
props
|
|
215
|
-
};
|
|
216
|
-
}
|
|
159
|
+
return drag;
|
|
160
|
+
}
|
|
161
|
+
export {
|
|
162
|
+
useDrag as default
|
|
163
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var services_exports = {};
|
|
29
|
+
__export(services_exports, {
|
|
30
|
+
useDrag: () => import_drag.default,
|
|
31
|
+
useKey: () => import_key.default,
|
|
32
|
+
useLoad: () => import_load.default,
|
|
33
|
+
usePointer: () => import_pointer.default,
|
|
34
|
+
useRaf: () => import_raf.default,
|
|
35
|
+
useResize: () => import_resize.default,
|
|
36
|
+
useScroll: () => import_scroll.default
|
|
37
|
+
});
|
|
38
|
+
var import_drag = __toESM(require("./drag.js"), 1);
|
|
39
|
+
var import_key = __toESM(require("./key.js"), 1);
|
|
40
|
+
var import_load = __toESM(require("./load.js"), 1);
|
|
41
|
+
var import_pointer = __toESM(require("./pointer.js"), 1);
|
|
42
|
+
var import_raf = __toESM(require("./raf.js"), 1);
|
|
43
|
+
var import_resize = __toESM(require("./resize.js"), 1);
|
|
44
|
+
var import_scroll = __toESM(require("./scroll.js"), 1);
|
|
45
|
+
module.exports = __toCommonJS(services_exports);
|
package/services/index.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { default as useDrag } from "./drag.js";
|
|
2
|
+
export { default as useKey } from "./key.js";
|
|
3
|
+
export { default as useLoad } from "./load.js";
|
|
4
|
+
export { default as usePointer } from "./pointer.js";
|
|
5
|
+
export { default as useRaf } from "./raf.js";
|
|
6
|
+
export { default as useResize } from "./resize.js";
|
|
7
|
+
export { default as useScroll } from "./scroll.js";
|
|
8
|
+
export type ServiceInterface<T> = {
|
|
2
9
|
/**
|
|
3
10
|
* Remove a function from the resize service by its key.
|
|
4
11
|
*/
|
|
@@ -6,17 +13,13 @@ export type ServiceInterface = {
|
|
|
6
13
|
/**
|
|
7
14
|
* Add a callback to the service. The callback will receive the current service props as parameter.
|
|
8
15
|
*/
|
|
9
|
-
add: (key: string, cb: (props:
|
|
16
|
+
add: (key: string, cb: (props: T) => void) => void;
|
|
10
17
|
/**
|
|
11
18
|
* Test if the service has alreaydy a callback for the given key.
|
|
12
19
|
*/
|
|
13
20
|
has: (key: string) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Get the service's props.
|
|
23
|
+
*/
|
|
24
|
+
props: () => T;
|
|
14
25
|
};
|
|
15
|
-
import useKey from "./key.js";
|
|
16
|
-
import usePointer from "./pointer.js";
|
|
17
|
-
import useDrag from "./drag.js";
|
|
18
|
-
import useLoad from "./load.js";
|
|
19
|
-
import useRaf from "./raf.js";
|
|
20
|
-
import useResize from "./resize.js";
|
|
21
|
-
import useScroll from "./scroll.js";
|
|
22
|
-
export { useKey, usePointer, useDrag, useLoad, useRaf, useResize, useScroll };
|
package/services/index.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
export {
|
|
1
|
+
import { default as default2 } from "./drag.js";
|
|
2
|
+
import { default as default3 } from "./key.js";
|
|
3
|
+
import { default as default4 } from "./load.js";
|
|
4
|
+
import { default as default5 } from "./pointer.js";
|
|
5
|
+
import { default as default6 } from "./raf.js";
|
|
6
|
+
import { default as default7 } from "./resize.js";
|
|
7
|
+
import { default as default8 } from "./scroll.js";
|
|
8
|
+
export {
|
|
9
|
+
default2 as useDrag,
|
|
10
|
+
default3 as useKey,
|
|
11
|
+
default4 as useLoad,
|
|
12
|
+
default5 as usePointer,
|
|
13
|
+
default6 as useRaf,
|
|
14
|
+
default7 as useResize,
|
|
15
|
+
default8 as useScroll
|
|
16
|
+
};
|
package/services/key.cjs
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key2 of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key2) && (copyDefault || key2 !== "default"))
|
|
16
|
+
__defProp(target, key2, { get: () => module2[key2], enumerable: !(desc = __getOwnPropDesc(module2, key2)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var key_exports = {};
|
|
29
|
+
__export(key_exports, {
|
|
30
|
+
default: () => useKey
|
|
31
|
+
});
|
|
32
|
+
var import_Service = __toESM(require("./Service.js"), 1);
|
|
33
|
+
var import_keyCodes = __toESM(require("../utils/keyCodes.js"), 1);
|
|
34
|
+
class Key extends import_Service.default {
|
|
35
|
+
previousEvent;
|
|
36
|
+
props = {
|
|
37
|
+
event: null,
|
|
38
|
+
triggered: 0,
|
|
39
|
+
isUp: false,
|
|
40
|
+
isDown: false,
|
|
41
|
+
ENTER: false,
|
|
42
|
+
SPACE: false,
|
|
43
|
+
TAB: false,
|
|
44
|
+
ESC: false,
|
|
45
|
+
LEFT: false,
|
|
46
|
+
UP: false,
|
|
47
|
+
RIGHT: false,
|
|
48
|
+
DOWN: false,
|
|
49
|
+
direction: "none"
|
|
50
|
+
};
|
|
51
|
+
init() {
|
|
52
|
+
document.addEventListener("keydown", this);
|
|
53
|
+
document.addEventListener("keyup", this);
|
|
54
|
+
}
|
|
55
|
+
handleEvent(event) {
|
|
56
|
+
this.updateProps(event);
|
|
57
|
+
this.trigger(this.props);
|
|
58
|
+
}
|
|
59
|
+
kill() {
|
|
60
|
+
document.removeEventListener("keydown", this);
|
|
61
|
+
document.removeEventListener("keyup", this);
|
|
62
|
+
}
|
|
63
|
+
updateProps(event) {
|
|
64
|
+
this.props.event = event;
|
|
65
|
+
Object.entries(import_keyCodes.default).forEach(([name, code]) => {
|
|
66
|
+
this.props[name] = code === event.keyCode;
|
|
67
|
+
});
|
|
68
|
+
if (!this.previousEvent) {
|
|
69
|
+
this.props.triggered = 0;
|
|
70
|
+
}
|
|
71
|
+
if (this.props.event.type === "keydown" && this.previousEvent?.type === "keydown") {
|
|
72
|
+
this.props.triggered += 1;
|
|
73
|
+
} else {
|
|
74
|
+
this.props.triggered = 1;
|
|
75
|
+
}
|
|
76
|
+
this.previousEvent = this.props.event;
|
|
77
|
+
this.props.direction = this.props.event.type === "keydown" ? "down" : "up";
|
|
78
|
+
this.props.isUp = this.props.event.type === "keyup";
|
|
79
|
+
this.props.isDown = this.props.event.type === "keydown";
|
|
80
|
+
return this.props;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
let instance;
|
|
84
|
+
let key;
|
|
85
|
+
function useKey() {
|
|
86
|
+
if (!key) {
|
|
87
|
+
if (!instance) {
|
|
88
|
+
instance = new Key();
|
|
89
|
+
}
|
|
90
|
+
key = {
|
|
91
|
+
add: instance.add.bind(instance),
|
|
92
|
+
remove: instance.remove.bind(instance),
|
|
93
|
+
has: instance.has.bind(instance),
|
|
94
|
+
props: instance.updateProps.bind(instance)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return key;
|
|
98
|
+
}
|
|
99
|
+
module.exports = __toCommonJS(key_exports);
|
package/services/key.d.ts
CHANGED
|
@@ -9,13 +9,14 @@
|
|
|
9
9
|
* props();
|
|
10
10
|
* ```
|
|
11
11
|
*
|
|
12
|
-
* @return {
|
|
12
|
+
* @return {KeyService}
|
|
13
13
|
*/
|
|
14
|
-
export default function useKey():
|
|
15
|
-
export type
|
|
14
|
+
export default function useKey(): KeyService;
|
|
15
|
+
export type KeyService = import('./index').ServiceInterface<KeyServiceProps>;
|
|
16
16
|
export type KeyServiceProps = {
|
|
17
17
|
event: KeyboardEvent;
|
|
18
18
|
triggered: number;
|
|
19
|
+
direction: 'up' | 'down' | 'none';
|
|
19
20
|
isUp: boolean;
|
|
20
21
|
isDown: boolean;
|
|
21
22
|
ENTER: boolean;
|
|
@@ -27,13 +28,3 @@ export type KeyServiceProps = {
|
|
|
27
28
|
RIGHT: boolean;
|
|
28
29
|
DOWN: boolean;
|
|
29
30
|
};
|
|
30
|
-
export type KeyService = {
|
|
31
|
-
/**
|
|
32
|
-
* Add a function to the resize service. The key must be uniq.
|
|
33
|
-
*/
|
|
34
|
-
add: (key: string, callback: (props: KeyServiceProps) => void) => void;
|
|
35
|
-
/**
|
|
36
|
-
* Get the current values of the resize service props.
|
|
37
|
-
*/
|
|
38
|
-
props: () => KeyServiceProps;
|
|
39
|
-
};
|