@studiometa/js-toolkit 2.0.0-beta.11 → 2.0.0-beta.15
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 +295 -0
- package/Base/index.js +114 -194
- package/Base/managers/ChildrenManager.cjs +131 -0
- package/Base/managers/ChildrenManager.js +38 -57
- package/Base/managers/EventsManager.cjs +190 -0
- package/Base/managers/EventsManager.js +72 -112
- package/Base/managers/OptionsManager.cjs +177 -0
- package/Base/managers/OptionsManager.js +54 -88
- package/Base/managers/RefsManager.cjs +104 -0
- package/Base/managers/RefsManager.js +28 -38
- package/Base/managers/ServicesManager.cjs +138 -0
- package/Base/managers/ServicesManager.js +39 -67
- package/Base/utils.cjs +46 -0
- package/Base/utils.js +12 -11
- package/decorators/index.cjs +50 -0
- package/decorators/index.js +18 -8
- package/decorators/withBreakpointManager.cjs +92 -0
- package/decorators/withBreakpointManager.js +18 -39
- package/decorators/withBreakpointObserver.cjs +122 -0
- package/decorators/withBreakpointObserver.js +44 -86
- package/decorators/withDrag.cjs +60 -0
- package/decorators/withDrag.js +24 -26
- package/decorators/withExtraConfig.cjs +50 -0
- package/decorators/withExtraConfig.js +17 -12
- package/decorators/withIntersectionObserver.cjs +67 -0
- package/decorators/withIntersectionObserver.js +29 -32
- package/decorators/withMountWhenInView.cjs +74 -0
- package/decorators/withMountWhenInView.js +31 -52
- package/decorators/withScrolledInView.cjs +121 -0
- package/decorators/withScrolledInView.js +35 -39
- package/decorators/withVue2.cjs +65 -0
- package/decorators/withVue2.js +26 -32
- package/helpers/createApp.cjs +57 -0
- package/helpers/createApp.js +12 -12
- package/helpers/importOnInteraction.cjs +57 -0
- package/helpers/importOnInteraction.js +17 -18
- package/helpers/importWhenIdle.cjs +54 -0
- package/helpers/importWhenIdle.js +14 -17
- package/helpers/importWhenVisible.cjs +55 -0
- package/helpers/importWhenVisible.js +16 -18
- package/helpers/index.cjs +42 -0
- package/helpers/index.js +10 -4
- package/helpers/utils.cjs +40 -0
- package/helpers/utils.js +7 -6
- package/index.cjs +39 -0
- package/index.js +7 -4
- package/package.json +14 -4
- package/services/Service.cjs +81 -0
- package/services/Service.js +19 -32
- package/services/drag.cjs +200 -0
- package/services/drag.js +42 -66
- package/services/index.cjs +48 -0
- package/services/index.js +16 -7
- package/services/key.cjs +111 -0
- package/services/key.js +28 -36
- package/services/load.cjs +79 -0
- package/services/load.js +17 -19
- package/services/pointer.cjs +169 -0
- package/services/pointer.js +43 -60
- package/services/raf.cjs +90 -0
- package/services/raf.js +20 -28
- package/services/resize.cjs +115 -0
- package/services/resize.js +33 -42
- package/services/scroll.cjs +138 -0
- package/services/scroll.js +26 -35
- package/utils/collide/boundingRectToCircle.cjs +39 -0
- package/utils/collide/boundingRectToCircle.d.ts +1 -1
- package/utils/collide/boundingRectToCircle.js +7 -10
- package/utils/collide/collideCircleCircle.cjs +39 -0
- package/utils/collide/collideCircleCircle.js +8 -7
- package/utils/collide/collideCircleRect.cjs +51 -0
- package/utils/collide/collideCircleRect.js +10 -12
- package/utils/collide/collidePointCircle.cjs +36 -0
- package/utils/collide/collidePointCircle.js +8 -5
- package/utils/collide/collidePointRect.cjs +33 -0
- package/utils/collide/collidePointRect.js +5 -2
- package/utils/collide/collideRectRect.cjs +33 -0
- package/utils/collide/collideRectRect.js +5 -2
- package/utils/collide/index.cjs +46 -0
- package/utils/collide/index.js +14 -6
- package/utils/css/classes.cjs +49 -0
- package/utils/css/classes.js +13 -12
- package/utils/css/index.cjs +42 -0
- package/utils/css/index.js +10 -6
- package/utils/css/matrix.cjs +35 -0
- package/utils/css/matrix.js +7 -5
- package/utils/css/styles.cjs +52 -0
- package/utils/css/styles.js +13 -12
- package/utils/css/transition.cjs +127 -0
- package/utils/css/transition.js +68 -117
- package/utils/debounce.cjs +39 -0
- package/utils/debounce.js +7 -9
- package/utils/focusTrap.cjs +89 -0
- package/utils/focusTrap.js +30 -21
- package/utils/history.cjs +96 -0
- package/utils/history.js +28 -57
- package/utils/index.cjs +58 -0
- package/utils/index.d.ts +1 -0
- package/utils/index.js +30 -11
- package/utils/keyCodes.cjs +40 -0
- package/utils/keyCodes.js +5 -2
- package/utils/math/clamp.cjs +33 -0
- package/utils/math/clamp.js +5 -2
- package/utils/math/clamp01.cjs +39 -0
- package/utils/math/clamp01.js +6 -3
- package/utils/math/damp.cjs +33 -0
- package/utils/math/damp.js +5 -4
- package/utils/math/ease.cjs +93 -0
- package/utils/math/ease.js +50 -25
- package/utils/math/index.cjs +49 -0
- package/utils/math/index.js +17 -8
- package/utils/math/inertiaFinalValue.cjs +42 -0
- package/utils/math/inertiaFinalValue.js +8 -10
- package/utils/math/lerp.cjs +33 -0
- package/utils/math/lerp.js +5 -2
- package/utils/math/map.cjs +33 -0
- package/utils/math/map.js +5 -2
- package/utils/math/round.cjs +33 -0
- package/utils/math/round.js +5 -3
- package/utils/memoize.cjs +48 -0
- package/utils/memoize.js +10 -19
- package/utils/nextFrame.cjs +45 -0
- package/utils/nextFrame.js +14 -9
- package/utils/object/autoBind.cjs +56 -0
- package/utils/object/autoBind.js +12 -22
- package/utils/object/getAllProperties.cjs +42 -0
- package/utils/object/getAllProperties.js +10 -13
- package/utils/object/index.cjs +40 -0
- package/utils/object/index.js +8 -3
- package/utils/object/isObject.cjs +33 -0
- package/utils/object/isObject.js +6 -3
- package/utils/scrollTo.cjs +87 -0
- package/utils/scrollTo.js +20 -40
- package/utils/string/index.cjs +54 -0
- package/utils/string/index.js +22 -10
- package/utils/string/withLeadingCharacters.cjs +39 -0
- package/utils/string/withLeadingCharacters.js +7 -4
- package/utils/string/withLeadingSlash.cjs +39 -0
- package/utils/string/withLeadingSlash.js +7 -4
- package/utils/string/withTrailingCharacters.cjs +39 -0
- package/utils/string/withTrailingCharacters.js +7 -4
- package/utils/string/withTrailingSlash.cjs +39 -0
- package/utils/string/withTrailingSlash.js +7 -4
- package/utils/string/withoutLeadingCharacters.cjs +33 -0
- package/utils/string/withoutLeadingCharacters.js +6 -3
- package/utils/string/withoutLeadingCharactersRecursive.cjs +44 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +8 -7
- package/utils/string/withoutLeadingSlash.cjs +39 -0
- package/utils/string/withoutLeadingSlash.js +7 -4
- package/utils/string/withoutTrailingCharacters.cjs +33 -0
- package/utils/string/withoutTrailingCharacters.js +6 -3
- package/utils/string/withoutTrailingCharactersRecursive.cjs +44 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +8 -7
- package/utils/string/withoutTrailingSlash.cjs +39 -0
- package/utils/string/withoutTrailingSlash.js +7 -4
- package/utils/throttle.cjs +41 -0
- package/utils/throttle.js +9 -9
- package/index.modern.js +0 -1
- package/index.umd.js +0 -1
package/services/key.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value;
|
|
3
|
+
var __publicField = (obj, key2, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key2 !== "symbol" ? key2 + "" : key2, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import Service from "./Service.js";
|
|
8
|
+
import keyCodes from "../utils/keyCodes.js";
|
|
5
9
|
class Key extends Service {
|
|
6
10
|
constructor() {
|
|
7
11
|
super(...arguments);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
_defineProperty(this, "props", {
|
|
12
|
+
__publicField(this, "previousEvent");
|
|
13
|
+
__publicField(this, "props", {
|
|
12
14
|
event: null,
|
|
13
15
|
triggered: 0,
|
|
14
16
|
isUp: false,
|
|
@@ -21,61 +23,49 @@ class Key extends Service {
|
|
|
21
23
|
UP: false,
|
|
22
24
|
RIGHT: false,
|
|
23
25
|
DOWN: false,
|
|
24
|
-
direction:
|
|
26
|
+
direction: "none"
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
|
-
|
|
28
29
|
init() {
|
|
29
|
-
document.addEventListener(
|
|
30
|
-
document.addEventListener(
|
|
30
|
+
document.addEventListener("keydown", this);
|
|
31
|
+
document.addEventListener("keyup", this);
|
|
31
32
|
}
|
|
32
|
-
|
|
33
33
|
handleEvent(event) {
|
|
34
34
|
this.updateProps(event);
|
|
35
35
|
this.trigger(this.props);
|
|
36
36
|
}
|
|
37
|
-
|
|
38
37
|
kill() {
|
|
39
|
-
document.removeEventListener(
|
|
40
|
-
document.removeEventListener(
|
|
38
|
+
document.removeEventListener("keydown", this);
|
|
39
|
+
document.removeEventListener("keyup", this);
|
|
41
40
|
}
|
|
42
|
-
|
|
43
41
|
updateProps(event) {
|
|
44
|
-
var
|
|
45
|
-
|
|
42
|
+
var _a;
|
|
46
43
|
this.props.event = event;
|
|
47
|
-
Object.entries(keyCodes).forEach(
|
|
48
|
-
var [name, code] = _ref;
|
|
44
|
+
Object.entries(keyCodes).forEach(([name, code]) => {
|
|
49
45
|
this.props[name] = code === event.keyCode;
|
|
50
46
|
});
|
|
51
|
-
|
|
52
47
|
if (!this.previousEvent) {
|
|
53
48
|
this.props.triggered = 0;
|
|
54
49
|
}
|
|
55
|
-
|
|
56
|
-
if (this.props.event.type === 'keydown' && ((_this$previousEvent = this.previousEvent) === null || _this$previousEvent === void 0 ? void 0 : _this$previousEvent.type) === 'keydown') {
|
|
50
|
+
if (this.props.event.type === "keydown" && ((_a = this.previousEvent) == null ? void 0 : _a.type) === "keydown") {
|
|
57
51
|
this.props.triggered += 1;
|
|
58
52
|
} else {
|
|
59
53
|
this.props.triggered = 1;
|
|
60
54
|
}
|
|
61
|
-
|
|
62
55
|
this.previousEvent = this.props.event;
|
|
63
|
-
this.props.direction = this.props.event.type ===
|
|
64
|
-
this.props.isUp = this.props.event.type ===
|
|
65
|
-
this.props.isDown = this.props.event.type ===
|
|
56
|
+
this.props.direction = this.props.event.type === "keydown" ? "down" : "up";
|
|
57
|
+
this.props.isUp = this.props.event.type === "keyup";
|
|
58
|
+
this.props.isDown = this.props.event.type === "keydown";
|
|
66
59
|
return this.props;
|
|
67
60
|
}
|
|
68
|
-
|
|
69
61
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
export default function useKey() {
|
|
62
|
+
let instance;
|
|
63
|
+
let key;
|
|
64
|
+
function useKey() {
|
|
74
65
|
if (!key) {
|
|
75
66
|
if (!instance) {
|
|
76
67
|
instance = new Key();
|
|
77
68
|
}
|
|
78
|
-
|
|
79
69
|
key = {
|
|
80
70
|
add: instance.add.bind(instance),
|
|
81
71
|
remove: instance.remove.bind(instance),
|
|
@@ -83,6 +73,8 @@ export default function useKey() {
|
|
|
83
73
|
props: instance.updateProps.bind(instance)
|
|
84
74
|
};
|
|
85
75
|
}
|
|
86
|
-
|
|
87
76
|
return key;
|
|
88
|
-
}
|
|
77
|
+
}
|
|
78
|
+
export {
|
|
79
|
+
useKey as default
|
|
80
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
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 __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (module2, isNodeMode) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
25
|
+
return (module2, temp) => {
|
|
26
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
27
|
+
};
|
|
28
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
29
|
+
var __publicField = (obj, key, value) => {
|
|
30
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// packages/js-toolkit/services/load.js
|
|
35
|
+
var load_exports = {};
|
|
36
|
+
__export(load_exports, {
|
|
37
|
+
default: () => useLoad
|
|
38
|
+
});
|
|
39
|
+
var import_Service = __toESM(require("./Service.cjs"), 1);
|
|
40
|
+
var Load = class extends import_Service.default {
|
|
41
|
+
constructor() {
|
|
42
|
+
super(...arguments);
|
|
43
|
+
__publicField(this, "props", {
|
|
44
|
+
time: window.performance.now()
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
init() {
|
|
48
|
+
window.addEventListener("load", this);
|
|
49
|
+
}
|
|
50
|
+
handleEvent() {
|
|
51
|
+
this.updateProps();
|
|
52
|
+
this.trigger(this.props);
|
|
53
|
+
}
|
|
54
|
+
kill() {
|
|
55
|
+
window.removeEventListener("load", this);
|
|
56
|
+
}
|
|
57
|
+
updateProps() {
|
|
58
|
+
this.props.time = window.performance.now();
|
|
59
|
+
return this.props;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
var instance;
|
|
63
|
+
var load;
|
|
64
|
+
function useLoad() {
|
|
65
|
+
if (!load) {
|
|
66
|
+
if (!instance) {
|
|
67
|
+
instance = new Load();
|
|
68
|
+
}
|
|
69
|
+
load = {
|
|
70
|
+
add: instance.add.bind(instance),
|
|
71
|
+
remove: instance.remove.bind(instance),
|
|
72
|
+
has: instance.has.bind(instance),
|
|
73
|
+
props: instance.updateProps.bind(instance)
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return load;
|
|
77
|
+
}
|
|
78
|
+
module.exports = __toCommonJS(load_exports);
|
|
79
|
+
if (module.exports.default) module.exports = module.exports.default;
|
package/services/load.js
CHANGED
|
@@ -1,43 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import Service from "./Service.js";
|
|
4
8
|
class Load extends Service {
|
|
5
9
|
constructor() {
|
|
6
10
|
super(...arguments);
|
|
7
|
-
|
|
8
|
-
_defineProperty(this, "props", {
|
|
11
|
+
__publicField(this, "props", {
|
|
9
12
|
time: window.performance.now()
|
|
10
13
|
});
|
|
11
14
|
}
|
|
12
|
-
|
|
13
15
|
init() {
|
|
14
|
-
window.addEventListener(
|
|
16
|
+
window.addEventListener("load", this);
|
|
15
17
|
}
|
|
16
|
-
|
|
17
18
|
handleEvent() {
|
|
18
19
|
this.updateProps();
|
|
19
20
|
this.trigger(this.props);
|
|
20
21
|
}
|
|
21
|
-
|
|
22
22
|
kill() {
|
|
23
|
-
window.removeEventListener(
|
|
23
|
+
window.removeEventListener("load", this);
|
|
24
24
|
}
|
|
25
|
-
|
|
26
25
|
updateProps() {
|
|
27
26
|
this.props.time = window.performance.now();
|
|
28
27
|
return this.props;
|
|
29
28
|
}
|
|
30
|
-
|
|
31
29
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
export default function useLoad() {
|
|
30
|
+
let instance;
|
|
31
|
+
let load;
|
|
32
|
+
function useLoad() {
|
|
36
33
|
if (!load) {
|
|
37
34
|
if (!instance) {
|
|
38
35
|
instance = new Load();
|
|
39
36
|
}
|
|
40
|
-
|
|
41
37
|
load = {
|
|
42
38
|
add: instance.add.bind(instance),
|
|
43
39
|
remove: instance.remove.bind(instance),
|
|
@@ -45,6 +41,8 @@ export default function useLoad() {
|
|
|
45
41
|
props: instance.updateProps.bind(instance)
|
|
46
42
|
};
|
|
47
43
|
}
|
|
48
|
-
|
|
49
44
|
return load;
|
|
50
|
-
}
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
useLoad as default
|
|
48
|
+
};
|
|
@@ -0,0 +1,169 @@
|
|
|
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 __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (module2, isNodeMode) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
25
|
+
return (module2, temp) => {
|
|
26
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
27
|
+
};
|
|
28
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
29
|
+
var __publicField = (obj, key, value) => {
|
|
30
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// packages/js-toolkit/services/pointer.js
|
|
35
|
+
var pointer_exports = {};
|
|
36
|
+
__export(pointer_exports, {
|
|
37
|
+
default: () => usePointer
|
|
38
|
+
});
|
|
39
|
+
var import_Service = __toESM(require("./Service.cjs"), 1);
|
|
40
|
+
function isTouchEvent(event) {
|
|
41
|
+
return typeof TouchEvent !== "undefined" && event instanceof TouchEvent;
|
|
42
|
+
}
|
|
43
|
+
var Pointer = class extends import_Service.default {
|
|
44
|
+
constructor() {
|
|
45
|
+
super(...arguments);
|
|
46
|
+
__publicField(this, "props", {
|
|
47
|
+
event: null,
|
|
48
|
+
isDown: false,
|
|
49
|
+
x: window.innerWidth / 2,
|
|
50
|
+
y: window.innerHeight / 2,
|
|
51
|
+
changed: {
|
|
52
|
+
x: false,
|
|
53
|
+
y: false
|
|
54
|
+
},
|
|
55
|
+
last: {
|
|
56
|
+
x: window.innerWidth / 2,
|
|
57
|
+
y: window.innerHeight / 2
|
|
58
|
+
},
|
|
59
|
+
delta: {
|
|
60
|
+
x: 0,
|
|
61
|
+
y: 0
|
|
62
|
+
},
|
|
63
|
+
progress: {
|
|
64
|
+
x: 0.5,
|
|
65
|
+
y: 0.5
|
|
66
|
+
},
|
|
67
|
+
max: {
|
|
68
|
+
x: window.innerWidth,
|
|
69
|
+
y: window.innerHeight
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
__publicField(this, "hasRaf", false);
|
|
73
|
+
}
|
|
74
|
+
init() {
|
|
75
|
+
document.documentElement.addEventListener("mouseenter", this, {
|
|
76
|
+
once: true,
|
|
77
|
+
capture: true
|
|
78
|
+
});
|
|
79
|
+
const options = { passive: true, capture: true };
|
|
80
|
+
document.addEventListener("mousemove", this, options);
|
|
81
|
+
document.addEventListener("touchmove", this, options);
|
|
82
|
+
document.addEventListener("mousedown", this, options);
|
|
83
|
+
document.addEventListener("touchstart", this, options);
|
|
84
|
+
document.addEventListener("mouseup", this, options);
|
|
85
|
+
document.addEventListener("touchend", this, options);
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
handleEvent(event) {
|
|
89
|
+
switch (event.type) {
|
|
90
|
+
case "mouseenter":
|
|
91
|
+
case "mousemove":
|
|
92
|
+
case "touchmove":
|
|
93
|
+
this.handler(event);
|
|
94
|
+
break;
|
|
95
|
+
case "mousedown":
|
|
96
|
+
case "touchstart":
|
|
97
|
+
this.downHandler();
|
|
98
|
+
break;
|
|
99
|
+
case "mouseup":
|
|
100
|
+
case "touchend":
|
|
101
|
+
this.upHandler();
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
kill() {
|
|
106
|
+
document.removeEventListener("mousemove", this);
|
|
107
|
+
document.removeEventListener("touchmove", this);
|
|
108
|
+
document.removeEventListener("mousedown", this);
|
|
109
|
+
document.removeEventListener("touchstart", this);
|
|
110
|
+
document.removeEventListener("mouseup", this);
|
|
111
|
+
document.removeEventListener("touchend", this);
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
handler(event) {
|
|
115
|
+
this.updateProps(event);
|
|
116
|
+
this.trigger(this.props);
|
|
117
|
+
}
|
|
118
|
+
downHandler() {
|
|
119
|
+
this.props.isDown = true;
|
|
120
|
+
this.trigger(this.props);
|
|
121
|
+
}
|
|
122
|
+
upHandler() {
|
|
123
|
+
this.props.isDown = false;
|
|
124
|
+
this.trigger(this.props);
|
|
125
|
+
}
|
|
126
|
+
updateProps(event) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
this.props.event = event;
|
|
129
|
+
const yLast = this.props.y;
|
|
130
|
+
const xLast = this.props.x;
|
|
131
|
+
const y = isTouchEvent(event) ? (_a = event.touches[0]) == null ? void 0 : _a.clientY : event.clientY;
|
|
132
|
+
if (y !== this.props.y) {
|
|
133
|
+
this.props.y = y;
|
|
134
|
+
}
|
|
135
|
+
const x = isTouchEvent(event) ? (_b = event.touches[0]) == null ? void 0 : _b.clientX : event.clientX;
|
|
136
|
+
if (x !== this.props.x) {
|
|
137
|
+
this.props.x = x;
|
|
138
|
+
}
|
|
139
|
+
this.props.changed.x = this.props.x !== xLast;
|
|
140
|
+
this.props.changed.y = this.props.y !== yLast;
|
|
141
|
+
this.props.last.x = xLast;
|
|
142
|
+
this.props.last.y = yLast;
|
|
143
|
+
this.props.delta.x = this.props.x - xLast;
|
|
144
|
+
this.props.delta.y = this.props.y - yLast;
|
|
145
|
+
this.props.max.x = window.innerWidth;
|
|
146
|
+
this.props.max.y = window.innerHeight;
|
|
147
|
+
this.props.progress.x = this.props.x / this.props.max.x;
|
|
148
|
+
this.props.progress.y = this.props.y / this.props.max.y;
|
|
149
|
+
return this.props;
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
var instance;
|
|
153
|
+
var pointer;
|
|
154
|
+
function usePointer() {
|
|
155
|
+
if (!pointer) {
|
|
156
|
+
if (!instance) {
|
|
157
|
+
instance = new Pointer();
|
|
158
|
+
}
|
|
159
|
+
pointer = {
|
|
160
|
+
add: instance.add.bind(instance),
|
|
161
|
+
remove: instance.remove.bind(instance),
|
|
162
|
+
has: instance.has.bind(instance),
|
|
163
|
+
props: instance.updateProps.bind(instance)
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
return pointer;
|
|
167
|
+
}
|
|
168
|
+
module.exports = __toCommonJS(pointer_exports);
|
|
169
|
+
if (module.exports.default) module.exports = module.exports.default;
|
package/services/pointer.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import Service from "./Service.js";
|
|
4
8
|
function isTouchEvent(event) {
|
|
5
|
-
return typeof TouchEvent !==
|
|
9
|
+
return typeof TouchEvent !== "undefined" && event instanceof TouchEvent;
|
|
6
10
|
}
|
|
7
|
-
|
|
8
11
|
class Pointer extends Service {
|
|
9
12
|
constructor() {
|
|
10
13
|
super(...arguments);
|
|
11
|
-
|
|
12
|
-
_defineProperty(this, "props", {
|
|
14
|
+
__publicField(this, "props", {
|
|
13
15
|
event: null,
|
|
14
16
|
isDown: false,
|
|
15
17
|
x: window.innerWidth / 2,
|
|
@@ -35,91 +37,73 @@ class Pointer extends Service {
|
|
|
35
37
|
y: window.innerHeight
|
|
36
38
|
}
|
|
37
39
|
});
|
|
38
|
-
|
|
39
|
-
_defineProperty(this, "hasRaf", false);
|
|
40
|
+
__publicField(this, "hasRaf", false);
|
|
40
41
|
}
|
|
41
|
-
|
|
42
42
|
init() {
|
|
43
|
-
document.documentElement.addEventListener(
|
|
43
|
+
document.documentElement.addEventListener("mouseenter", this, {
|
|
44
44
|
once: true,
|
|
45
45
|
capture: true
|
|
46
46
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
document.addEventListener(
|
|
52
|
-
document.addEventListener(
|
|
53
|
-
document.addEventListener(
|
|
54
|
-
document.addEventListener('touchstart', this, options);
|
|
55
|
-
document.addEventListener('mouseup', this, options);
|
|
56
|
-
document.addEventListener('touchend', this, options);
|
|
47
|
+
const options = { passive: true, capture: true };
|
|
48
|
+
document.addEventListener("mousemove", this, options);
|
|
49
|
+
document.addEventListener("touchmove", this, options);
|
|
50
|
+
document.addEventListener("mousedown", this, options);
|
|
51
|
+
document.addEventListener("touchstart", this, options);
|
|
52
|
+
document.addEventListener("mouseup", this, options);
|
|
53
|
+
document.addEventListener("touchend", this, options);
|
|
57
54
|
return this;
|
|
58
55
|
}
|
|
59
|
-
|
|
60
56
|
handleEvent(event) {
|
|
61
57
|
switch (event.type) {
|
|
62
|
-
case
|
|
63
|
-
case
|
|
64
|
-
case
|
|
58
|
+
case "mouseenter":
|
|
59
|
+
case "mousemove":
|
|
60
|
+
case "touchmove":
|
|
65
61
|
this.handler(event);
|
|
66
62
|
break;
|
|
67
|
-
|
|
68
|
-
case
|
|
69
|
-
case 'touchstart':
|
|
63
|
+
case "mousedown":
|
|
64
|
+
case "touchstart":
|
|
70
65
|
this.downHandler();
|
|
71
66
|
break;
|
|
72
|
-
|
|
73
|
-
case
|
|
74
|
-
case 'touchend':
|
|
67
|
+
case "mouseup":
|
|
68
|
+
case "touchend":
|
|
75
69
|
this.upHandler();
|
|
76
70
|
break;
|
|
77
71
|
}
|
|
78
72
|
}
|
|
79
|
-
|
|
80
73
|
kill() {
|
|
81
|
-
document.removeEventListener(
|
|
82
|
-
document.removeEventListener(
|
|
83
|
-
document.removeEventListener(
|
|
84
|
-
document.removeEventListener(
|
|
85
|
-
document.removeEventListener(
|
|
86
|
-
document.removeEventListener(
|
|
74
|
+
document.removeEventListener("mousemove", this);
|
|
75
|
+
document.removeEventListener("touchmove", this);
|
|
76
|
+
document.removeEventListener("mousedown", this);
|
|
77
|
+
document.removeEventListener("touchstart", this);
|
|
78
|
+
document.removeEventListener("mouseup", this);
|
|
79
|
+
document.removeEventListener("touchend", this);
|
|
87
80
|
return this;
|
|
88
81
|
}
|
|
89
|
-
|
|
90
82
|
handler(event) {
|
|
91
83
|
this.updateProps(event);
|
|
92
84
|
this.trigger(this.props);
|
|
93
85
|
}
|
|
94
|
-
|
|
95
86
|
downHandler() {
|
|
96
87
|
this.props.isDown = true;
|
|
97
88
|
this.trigger(this.props);
|
|
98
89
|
}
|
|
99
|
-
|
|
100
90
|
upHandler() {
|
|
101
91
|
this.props.isDown = false;
|
|
102
92
|
this.trigger(this.props);
|
|
103
93
|
}
|
|
104
|
-
|
|
105
94
|
updateProps(event) {
|
|
106
|
-
var
|
|
107
|
-
|
|
95
|
+
var _a, _b;
|
|
108
96
|
this.props.event = event;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
97
|
+
const yLast = this.props.y;
|
|
98
|
+
const xLast = this.props.x;
|
|
99
|
+
const y = isTouchEvent(event) ? (_a = event.touches[0]) == null ? void 0 : _a.clientY : event.clientY;
|
|
113
100
|
if (y !== this.props.y) {
|
|
114
101
|
this.props.y = y;
|
|
115
102
|
}
|
|
116
|
-
|
|
117
|
-
var x = isTouchEvent(event) ? (_event$touches$2 = event.touches[0]) === null || _event$touches$2 === void 0 ? void 0 : _event$touches$2.clientX : event.clientX;
|
|
118
|
-
|
|
103
|
+
const x = isTouchEvent(event) ? (_b = event.touches[0]) == null ? void 0 : _b.clientX : event.clientX;
|
|
119
104
|
if (x !== this.props.x) {
|
|
120
105
|
this.props.x = x;
|
|
121
106
|
}
|
|
122
|
-
|
|
123
107
|
this.props.changed.x = this.props.x !== xLast;
|
|
124
108
|
this.props.changed.y = this.props.y !== yLast;
|
|
125
109
|
this.props.last.x = xLast;
|
|
@@ -132,17 +116,14 @@ class Pointer extends Service {
|
|
|
132
116
|
this.props.progress.y = this.props.y / this.props.max.y;
|
|
133
117
|
return this.props;
|
|
134
118
|
}
|
|
135
|
-
|
|
136
119
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
export default function usePointer() {
|
|
120
|
+
let instance;
|
|
121
|
+
let pointer;
|
|
122
|
+
function usePointer() {
|
|
141
123
|
if (!pointer) {
|
|
142
124
|
if (!instance) {
|
|
143
125
|
instance = new Pointer();
|
|
144
126
|
}
|
|
145
|
-
|
|
146
127
|
pointer = {
|
|
147
128
|
add: instance.add.bind(instance),
|
|
148
129
|
remove: instance.remove.bind(instance),
|
|
@@ -150,6 +131,8 @@ export default function usePointer() {
|
|
|
150
131
|
props: instance.updateProps.bind(instance)
|
|
151
132
|
};
|
|
152
133
|
}
|
|
153
|
-
|
|
154
134
|
return pointer;
|
|
155
|
-
}
|
|
135
|
+
}
|
|
136
|
+
export {
|
|
137
|
+
usePointer as default
|
|
138
|
+
};
|
package/services/raf.cjs
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
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 __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
14
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(module2))
|
|
16
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
17
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return target;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (module2, isNodeMode) => {
|
|
22
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
25
|
+
return (module2, temp) => {
|
|
26
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
27
|
+
};
|
|
28
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
29
|
+
var __publicField = (obj, key, value) => {
|
|
30
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// packages/js-toolkit/services/raf.js
|
|
35
|
+
var raf_exports = {};
|
|
36
|
+
__export(raf_exports, {
|
|
37
|
+
default: () => useRaf
|
|
38
|
+
});
|
|
39
|
+
var import_Service = __toESM(require("./Service.cjs"), 1);
|
|
40
|
+
var import_nextFrame = require("../utils/nextFrame.cjs");
|
|
41
|
+
var Raf = class extends import_Service.default {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
__publicField(this, "isTicking", false);
|
|
45
|
+
__publicField(this, "id", 0);
|
|
46
|
+
__publicField(this, "raf", (0, import_nextFrame.getRaf)());
|
|
47
|
+
__publicField(this, "cancelRaf", (0, import_nextFrame.getCancelRaf)());
|
|
48
|
+
__publicField(this, "props", {
|
|
49
|
+
time: performance.now()
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
init() {
|
|
53
|
+
this.isTicking = true;
|
|
54
|
+
this.loop();
|
|
55
|
+
}
|
|
56
|
+
loop() {
|
|
57
|
+
this.updateProps();
|
|
58
|
+
this.trigger(this.props);
|
|
59
|
+
if (!this.isTicking) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.id = this.raf(() => this.loop());
|
|
63
|
+
}
|
|
64
|
+
kill() {
|
|
65
|
+
this.cancelRaf(this.id);
|
|
66
|
+
this.isTicking = false;
|
|
67
|
+
}
|
|
68
|
+
updateProps() {
|
|
69
|
+
this.props.time = window.performance.now();
|
|
70
|
+
return this.props;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
var instance;
|
|
74
|
+
var raf;
|
|
75
|
+
function useRaf() {
|
|
76
|
+
if (!raf) {
|
|
77
|
+
if (!instance) {
|
|
78
|
+
instance = new Raf();
|
|
79
|
+
}
|
|
80
|
+
raf = {
|
|
81
|
+
add: instance.add.bind(instance),
|
|
82
|
+
remove: instance.remove.bind(instance),
|
|
83
|
+
has: instance.has.bind(instance),
|
|
84
|
+
props: instance.updateProps.bind(instance)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return raf;
|
|
88
|
+
}
|
|
89
|
+
module.exports = __toCommonJS(raf_exports);
|
|
90
|
+
if (module.exports.default) module.exports = module.exports.default;
|