@studiometa/js-toolkit 2.0.0-beta.7 → 2.0.0-rc.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/Base/index.cjs +285 -0
- package/Base/index.d.ts +13 -4
- package/Base/index.js +114 -197
- package/Base/managers/ChildrenManager.cjs +146 -0
- package/Base/managers/ChildrenManager.d.ts +9 -1
- package/Base/managers/ChildrenManager.js +60 -59
- package/Base/managers/EventsManager.cjs +183 -0
- package/Base/managers/EventsManager.js +72 -112
- package/Base/managers/OptionsManager.cjs +174 -0
- package/Base/managers/OptionsManager.d.ts +9 -5
- package/Base/managers/OptionsManager.js +60 -90
- package/Base/managers/RefsManager.cjs +99 -0
- package/Base/managers/RefsManager.js +30 -35
- package/Base/managers/ServicesManager.cjs +131 -0
- package/Base/managers/ServicesManager.js +39 -67
- package/Base/utils.cjs +41 -0
- package/Base/utils.js +12 -11
- package/README.md +13 -70
- package/decorators/index.cjs +45 -0
- package/decorators/index.d.ts +9 -9
- package/decorators/index.js +20 -9
- package/decorators/withBreakpointManager.cjs +85 -0
- package/decorators/withBreakpointManager.js +18 -39
- package/decorators/withBreakpointObserver.cjs +115 -0
- package/decorators/withBreakpointObserver.js +44 -86
- package/decorators/withDrag.cjs +53 -0
- package/decorators/withDrag.js +24 -26
- package/decorators/withExtraConfig.cjs +43 -0
- package/decorators/withExtraConfig.js +17 -12
- package/decorators/withFreezedOptions.cjs +36 -0
- package/decorators/withFreezedOptions.d.ts +14 -0
- package/decorators/withFreezedOptions.js +14 -0
- package/decorators/withIntersectionObserver.cjs +62 -0
- package/decorators/withIntersectionObserver.js +29 -32
- package/decorators/withMountWhenInView.cjs +69 -0
- package/decorators/withMountWhenInView.js +31 -52
- package/decorators/withScrolledInView.cjs +114 -0
- package/decorators/withScrolledInView.d.ts +2 -1
- package/decorators/withScrolledInView.js +35 -39
- package/decorators/withVue2.cjs +60 -0
- package/decorators/withVue2.js +26 -32
- package/helpers/createApp.cjs +52 -0
- package/helpers/createApp.d.ts +2 -2
- package/helpers/createApp.js +12 -12
- package/helpers/importOnInteraction.cjs +52 -0
- package/helpers/importOnInteraction.js +17 -18
- package/helpers/importWhenIdle.cjs +49 -0
- package/helpers/importWhenIdle.js +14 -17
- package/helpers/importWhenVisible.cjs +50 -0
- package/helpers/importWhenVisible.js +16 -18
- package/helpers/index.cjs +35 -0
- package/helpers/index.d.ts +4 -5
- package/helpers/index.js +10 -5
- package/helpers/utils.cjs +35 -0
- package/helpers/utils.js +7 -6
- package/index.cjs +33 -0
- package/index.d.ts +4 -21
- package/index.js +7 -5
- package/package.json +14 -4
- package/services/Service.cjs +76 -0
- package/services/Service.js +19 -32
- package/services/drag.cjs +213 -0
- package/services/drag.d.ts +1 -0
- package/services/drag.js +64 -68
- package/services/index.cjs +41 -0
- package/services/index.d.ts +7 -8
- package/services/index.js +16 -8
- package/services/key.cjs +104 -0
- package/services/key.js +28 -36
- package/services/load.cjs +72 -0
- package/services/load.js +17 -19
- package/services/pointer.cjs +162 -0
- package/services/pointer.js +43 -60
- package/services/raf.cjs +83 -0
- package/services/raf.js +20 -28
- package/services/resize.cjs +108 -0
- package/services/resize.js +33 -42
- package/services/scroll.cjs +131 -0
- package/services/scroll.js +26 -35
- package/utils/collide/boundingRectToCircle.cjs +34 -0
- package/utils/collide/boundingRectToCircle.d.ts +1 -1
- package/utils/collide/boundingRectToCircle.js +7 -10
- package/utils/collide/collideCircleCircle.cjs +34 -0
- package/utils/collide/collideCircleCircle.js +8 -7
- package/utils/collide/collideCircleRect.cjs +46 -0
- package/utils/collide/collideCircleRect.js +10 -12
- package/utils/collide/collidePointCircle.cjs +31 -0
- package/utils/collide/collidePointCircle.js +8 -5
- package/utils/collide/collidePointRect.cjs +28 -0
- package/utils/collide/collidePointRect.js +5 -2
- package/utils/collide/collideRectRect.cjs +28 -0
- package/utils/collide/collideRectRect.js +5 -2
- package/utils/collide/index.cjs +39 -0
- package/utils/collide/index.d.ts +6 -7
- package/utils/collide/index.js +14 -7
- package/utils/css/classes.cjs +47 -0
- package/utils/css/classes.d.ts +10 -9
- package/utils/css/classes.js +18 -14
- package/utils/css/index.cjs +38 -0
- package/utils/css/index.d.ts +4 -5
- package/utils/css/index.js +13 -5
- package/utils/css/matrix.cjs +30 -0
- package/utils/css/matrix.js +7 -5
- package/utils/css/styles.cjs +44 -0
- package/utils/css/styles.d.ts +6 -18
- package/utils/css/styles.js +12 -12
- package/utils/css/transition.cjs +120 -0
- package/utils/css/transition.d.ts +15 -9
- package/utils/css/transition.js +70 -119
- package/utils/debounce.cjs +34 -0
- package/utils/debounce.js +7 -9
- package/utils/focusTrap.cjs +82 -0
- package/utils/focusTrap.js +30 -21
- package/utils/history.cjs +89 -0
- package/utils/history.js +28 -57
- package/utils/index.cjs +54 -0
- package/utils/index.d.ts +14 -35
- package/utils/index.js +32 -17
- package/utils/keyCodes.cjs +35 -0
- package/utils/keyCodes.js +5 -2
- package/utils/math/clamp.cjs +28 -0
- package/utils/math/clamp.js +5 -2
- package/utils/math/clamp01.cjs +32 -0
- package/utils/math/clamp01.js +6 -3
- package/utils/math/damp.cjs +28 -0
- package/utils/math/damp.js +5 -4
- package/utils/math/ease.cjs +88 -0
- package/utils/math/ease.d.ts +78 -0
- package/utils/math/ease.js +66 -0
- package/utils/math/index.cjs +43 -0
- package/utils/math/index.d.ts +8 -8
- package/utils/math/index.js +17 -8
- package/utils/math/inertiaFinalValue.cjs +37 -0
- package/utils/math/inertiaFinalValue.js +8 -10
- package/utils/math/lerp.cjs +28 -0
- package/utils/math/lerp.js +5 -2
- package/utils/math/map.cjs +28 -0
- package/utils/math/map.js +5 -2
- package/utils/math/round.cjs +28 -0
- package/utils/math/round.js +5 -3
- package/utils/memoize.cjs +43 -0
- package/utils/memoize.js +10 -19
- package/utils/nextFrame.cjs +38 -0
- package/utils/nextFrame.d.ts +4 -3
- package/utils/nextFrame.js +13 -10
- package/utils/nextMicrotask.cjs +28 -0
- package/utils/nextMicrotask.d.ts +8 -0
- package/utils/nextMicrotask.js +6 -0
- package/utils/nextTick.cjs +30 -0
- package/utils/nextTick.d.ts +8 -0
- package/utils/nextTick.js +8 -0
- package/utils/object/autoBind.cjs +49 -0
- package/utils/object/autoBind.js +12 -22
- package/utils/object/getAllProperties.cjs +37 -0
- package/utils/object/getAllProperties.js +10 -13
- package/utils/object/index.cjs +33 -0
- package/utils/object/index.d.ts +3 -4
- package/utils/object/index.js +8 -4
- package/utils/object/isObject.cjs +28 -0
- package/utils/object/isObject.js +6 -3
- package/utils/scrollTo.cjs +80 -0
- package/utils/scrollTo.js +20 -40
- package/utils/string/index.cjs +47 -0
- package/utils/string/index.d.ts +10 -11
- package/utils/string/index.js +22 -11
- package/utils/string/withLeadingCharacters.cjs +32 -0
- package/utils/string/withLeadingCharacters.js +7 -4
- package/utils/string/withLeadingSlash.cjs +32 -0
- package/utils/string/withLeadingSlash.js +7 -4
- package/utils/string/withTrailingCharacters.cjs +32 -0
- package/utils/string/withTrailingCharacters.js +7 -4
- package/utils/string/withTrailingSlash.cjs +32 -0
- package/utils/string/withTrailingSlash.js +7 -4
- package/utils/string/withoutLeadingCharacters.cjs +28 -0
- package/utils/string/withoutLeadingCharacters.js +6 -3
- package/utils/string/withoutLeadingCharactersRecursive.cjs +37 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +8 -7
- package/utils/string/withoutLeadingSlash.cjs +32 -0
- package/utils/string/withoutLeadingSlash.js +7 -4
- package/utils/string/withoutTrailingCharacters.cjs +28 -0
- package/utils/string/withoutTrailingCharacters.js +6 -3
- package/utils/string/withoutTrailingCharactersRecursive.cjs +37 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +8 -7
- package/utils/string/withoutTrailingSlash.cjs +32 -0
- package/utils/string/withoutTrailingSlash.js +7 -4
- package/utils/throttle.cjs +36 -0
- package/utils/throttle.js +9 -9
- package/index.modern.js +0 -1
- package/index.umd.js +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
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 __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
21
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
var __publicField = (obj, key, value) => {
|
|
23
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
24
|
+
return value;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// packages/js-toolkit/Base/managers/ServicesManager.js
|
|
28
|
+
var ServicesManager_exports = {};
|
|
29
|
+
__export(ServicesManager_exports, {
|
|
30
|
+
default: () => ServicesManager
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(ServicesManager_exports);
|
|
33
|
+
var import_pointer = __toESM(require("../../services/pointer.cjs"), 1);
|
|
34
|
+
var import_raf = __toESM(require("../../services/raf.cjs"), 1);
|
|
35
|
+
var import_resize = __toESM(require("../../services/resize.cjs"), 1);
|
|
36
|
+
var import_scroll = __toESM(require("../../services/scroll.cjs"), 1);
|
|
37
|
+
var import_key = __toESM(require("../../services/key.cjs"), 1);
|
|
38
|
+
var import_load = __toESM(require("../../services/load.cjs"), 1);
|
|
39
|
+
var import_utils = require("../utils.cjs");
|
|
40
|
+
var SERVICES_MAP = {
|
|
41
|
+
scrolled: import_scroll.default,
|
|
42
|
+
resized: import_resize.default,
|
|
43
|
+
ticked: import_raf.default,
|
|
44
|
+
moved: import_pointer.default,
|
|
45
|
+
keyed: import_key.default,
|
|
46
|
+
loaded: import_load.default
|
|
47
|
+
};
|
|
48
|
+
var SERVICE_NAMES = Object.keys(SERVICES_MAP);
|
|
49
|
+
var ServicesManager = class {
|
|
50
|
+
constructor(instance) {
|
|
51
|
+
__publicField(this, "__base");
|
|
52
|
+
__publicField(this, "__customServices", {});
|
|
53
|
+
Object.defineProperties(this, {
|
|
54
|
+
__base: {
|
|
55
|
+
enumerable: false,
|
|
56
|
+
writable: false,
|
|
57
|
+
value: instance
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
get __services() {
|
|
62
|
+
return {
|
|
63
|
+
...this.__customServices,
|
|
64
|
+
...SERVICES_MAP
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
has(service) {
|
|
68
|
+
if (!(((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) && this.__services[service])) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
const { has } = this.__services[service]();
|
|
72
|
+
return has(this.__base.$id);
|
|
73
|
+
}
|
|
74
|
+
enable(service) {
|
|
75
|
+
if (this.has(service)) {
|
|
76
|
+
return this.disable.bind(this, service);
|
|
77
|
+
}
|
|
78
|
+
if (!((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) || !this.__services[service]) {
|
|
79
|
+
return function noop() {
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const { add } = this.__services[service]();
|
|
83
|
+
const self = this;
|
|
84
|
+
function serviceHandler(...args) {
|
|
85
|
+
self.__base.__callMethod(service, ...args);
|
|
86
|
+
}
|
|
87
|
+
add(this.__base.$id, serviceHandler);
|
|
88
|
+
return this.disable.bind(this, service);
|
|
89
|
+
}
|
|
90
|
+
enableAll() {
|
|
91
|
+
return Object.keys(this.__services).map((serviceName) => this.enable(serviceName));
|
|
92
|
+
}
|
|
93
|
+
disableAll() {
|
|
94
|
+
Object.keys(this.__services).forEach((serviceName) => {
|
|
95
|
+
this.disable(serviceName);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
disable(service) {
|
|
99
|
+
if (!this.__services[service]) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const { remove } = this.__services[service]();
|
|
103
|
+
remove(this.__base.$id);
|
|
104
|
+
}
|
|
105
|
+
toggle(service, force) {
|
|
106
|
+
if (typeof force !== "undefined") {
|
|
107
|
+
if (force && !this.has(service)) {
|
|
108
|
+
this.enable(service);
|
|
109
|
+
}
|
|
110
|
+
if (!force && this.has(service)) {
|
|
111
|
+
this.disable(service);
|
|
112
|
+
}
|
|
113
|
+
} else if (this.has(service)) {
|
|
114
|
+
this.disable(service);
|
|
115
|
+
} else {
|
|
116
|
+
this.enable(service);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
register(name, useFunction) {
|
|
120
|
+
this.__customServices[name] = useFunction;
|
|
121
|
+
this.__base.__addEmits(name);
|
|
122
|
+
}
|
|
123
|
+
unregister(name) {
|
|
124
|
+
if (SERVICE_NAMES.includes(name)) {
|
|
125
|
+
throw new Error(`[ServicesManager] The \`${name}\` core service can not be unregistered.`);
|
|
126
|
+
}
|
|
127
|
+
this.__base.__removeEmits(name);
|
|
128
|
+
delete this.__customServices[name];
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import usePointer from
|
|
8
|
-
import useRaf from
|
|
9
|
-
import useResize from
|
|
10
|
-
import useScroll from
|
|
11
|
-
import useKey from
|
|
12
|
-
import useLoad from
|
|
13
|
-
import { hasMethod } from
|
|
14
|
-
|
|
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 usePointer from "../../services/pointer.js";
|
|
8
|
+
import useRaf from "../../services/raf.js";
|
|
9
|
+
import useResize from "../../services/resize.js";
|
|
10
|
+
import useScroll from "../../services/scroll.js";
|
|
11
|
+
import useKey from "../../services/key.js";
|
|
12
|
+
import useLoad from "../../services/load.js";
|
|
13
|
+
import { hasMethod } from "../utils.js";
|
|
14
|
+
const SERVICES_MAP = {
|
|
15
15
|
scrolled: useScroll,
|
|
16
16
|
resized: useResize,
|
|
17
17
|
ticked: useRaf,
|
|
@@ -19,17 +19,11 @@ var SERVICES_MAP = {
|
|
|
19
19
|
keyed: useKey,
|
|
20
20
|
loaded: useLoad
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
get __services() {
|
|
25
|
-
return _objectSpread(_objectSpread({}, this.__customServices), SERVICES_MAP);
|
|
26
|
-
}
|
|
27
|
-
|
|
22
|
+
const SERVICE_NAMES = Object.keys(SERVICES_MAP);
|
|
23
|
+
class ServicesManager {
|
|
28
24
|
constructor(instance) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
_defineProperty(this, "__customServices", {});
|
|
32
|
-
|
|
25
|
+
__publicField(this, "__base");
|
|
26
|
+
__publicField(this, "__customServices", {});
|
|
33
27
|
Object.defineProperties(this, {
|
|
34
28
|
__base: {
|
|
35
29
|
enumerable: false,
|
|
@@ -38,74 +32,55 @@ export default class ServicesManager {
|
|
|
38
32
|
}
|
|
39
33
|
});
|
|
40
34
|
}
|
|
41
|
-
|
|
35
|
+
get __services() {
|
|
36
|
+
return {
|
|
37
|
+
...this.__customServices,
|
|
38
|
+
...SERVICES_MAP
|
|
39
|
+
};
|
|
40
|
+
}
|
|
42
41
|
has(service) {
|
|
43
42
|
if (!((hasMethod(this.__base, service) || this.__base.__hasEvent(service)) && this.__services[service])) {
|
|
44
43
|
return false;
|
|
45
44
|
}
|
|
46
|
-
|
|
47
|
-
var {
|
|
48
|
-
has
|
|
49
|
-
} = this.__services[service]();
|
|
50
|
-
|
|
45
|
+
const { has } = this.__services[service]();
|
|
51
46
|
return has(this.__base.$id);
|
|
52
47
|
}
|
|
53
|
-
|
|
54
48
|
enable(service) {
|
|
55
49
|
if (this.has(service)) {
|
|
56
50
|
return this.disable.bind(this, service);
|
|
57
51
|
}
|
|
58
|
-
|
|
59
52
|
if (!(hasMethod(this.__base, service) || this.__base.__hasEvent(service)) || !this.__services[service]) {
|
|
60
|
-
return function noop() {
|
|
53
|
+
return function noop() {
|
|
54
|
+
};
|
|
61
55
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
} = this.__services[service]();
|
|
66
|
-
|
|
67
|
-
var self = this;
|
|
68
|
-
|
|
69
|
-
function serviceHandler() {
|
|
70
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
71
|
-
args[_key] = arguments[_key];
|
|
72
|
-
}
|
|
73
|
-
|
|
56
|
+
const { add } = this.__services[service]();
|
|
57
|
+
const self = this;
|
|
58
|
+
function serviceHandler(...args) {
|
|
74
59
|
self.__base.__callMethod(service, ...args);
|
|
75
60
|
}
|
|
76
|
-
|
|
77
61
|
add(this.__base.$id, serviceHandler);
|
|
78
62
|
return this.disable.bind(this, service);
|
|
79
63
|
}
|
|
80
|
-
|
|
81
64
|
enableAll() {
|
|
82
|
-
return Object.keys(this.__services).map(serviceName => this.enable(serviceName));
|
|
65
|
+
return Object.keys(this.__services).map((serviceName) => this.enable(serviceName));
|
|
83
66
|
}
|
|
84
|
-
|
|
85
67
|
disableAll() {
|
|
86
|
-
Object.keys(this.__services).forEach(serviceName => {
|
|
68
|
+
Object.keys(this.__services).forEach((serviceName) => {
|
|
87
69
|
this.disable(serviceName);
|
|
88
70
|
});
|
|
89
71
|
}
|
|
90
|
-
|
|
91
72
|
disable(service) {
|
|
92
73
|
if (!this.__services[service]) {
|
|
93
74
|
return;
|
|
94
75
|
}
|
|
95
|
-
|
|
96
|
-
var {
|
|
97
|
-
remove
|
|
98
|
-
} = this.__services[service]();
|
|
99
|
-
|
|
76
|
+
const { remove } = this.__services[service]();
|
|
100
77
|
remove(this.__base.$id);
|
|
101
78
|
}
|
|
102
|
-
|
|
103
79
|
toggle(service, force) {
|
|
104
|
-
if (typeof force !==
|
|
80
|
+
if (typeof force !== "undefined") {
|
|
105
81
|
if (force && !this.has(service)) {
|
|
106
82
|
this.enable(service);
|
|
107
83
|
}
|
|
108
|
-
|
|
109
84
|
if (!force && this.has(service)) {
|
|
110
85
|
this.disable(service);
|
|
111
86
|
}
|
|
@@ -115,21 +90,18 @@ export default class ServicesManager {
|
|
|
115
90
|
this.enable(service);
|
|
116
91
|
}
|
|
117
92
|
}
|
|
118
|
-
|
|
119
93
|
register(name, useFunction) {
|
|
120
94
|
this.__customServices[name] = useFunction;
|
|
121
|
-
|
|
122
95
|
this.__base.__addEmits(name);
|
|
123
96
|
}
|
|
124
|
-
|
|
125
97
|
unregister(name) {
|
|
126
98
|
if (SERVICE_NAMES.includes(name)) {
|
|
127
|
-
throw new Error(
|
|
99
|
+
throw new Error(`[ServicesManager] The \`${name}\` core service can not be unregistered.`);
|
|
128
100
|
}
|
|
129
|
-
|
|
130
101
|
this.__base.__removeEmits(name);
|
|
131
|
-
|
|
132
102
|
delete this.__customServices[name];
|
|
133
103
|
}
|
|
134
|
-
|
|
135
|
-
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
ServicesManager as default
|
|
107
|
+
};
|
package/Base/utils.cjs
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// packages/js-toolkit/Base/utils.js
|
|
20
|
+
var utils_exports = {};
|
|
21
|
+
__export(utils_exports, {
|
|
22
|
+
getComponentElements: () => getComponentElements,
|
|
23
|
+
hasMethod: () => hasMethod
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(utils_exports);
|
|
26
|
+
function hasMethod(obj, name) {
|
|
27
|
+
return typeof obj[name] === "function";
|
|
28
|
+
}
|
|
29
|
+
function getComponentElements(nameOrSelector, element = document) {
|
|
30
|
+
const selector = `[data-component="${nameOrSelector}"]`;
|
|
31
|
+
let elements = [];
|
|
32
|
+
try {
|
|
33
|
+
elements = Array.from(element.querySelectorAll(selector));
|
|
34
|
+
} catch {
|
|
35
|
+
}
|
|
36
|
+
if (elements.length === 0) {
|
|
37
|
+
elements = Array.from(element.querySelectorAll(nameOrSelector));
|
|
38
|
+
}
|
|
39
|
+
return elements;
|
|
40
|
+
}
|
|
41
|
+
if (module.exports.default) module.exports = module.exports.default;
|
package/Base/utils.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
return typeof obj[name] ===
|
|
1
|
+
function hasMethod(obj, name) {
|
|
2
|
+
return typeof obj[name] === "function";
|
|
3
3
|
}
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var elements = [];
|
|
8
|
-
|
|
4
|
+
function getComponentElements(nameOrSelector, element = document) {
|
|
5
|
+
const selector = `[data-component="${nameOrSelector}"]`;
|
|
6
|
+
let elements = [];
|
|
9
7
|
try {
|
|
10
8
|
elements = Array.from(element.querySelectorAll(selector));
|
|
11
|
-
} catch
|
|
12
|
-
|
|
9
|
+
} catch {
|
|
10
|
+
}
|
|
13
11
|
if (elements.length === 0) {
|
|
14
12
|
elements = Array.from(element.querySelectorAll(nameOrSelector));
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
return elements;
|
|
18
|
-
}
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
getComponentElements,
|
|
18
|
+
hasMethod
|
|
19
|
+
};
|
package/README.md
CHANGED
|
@@ -15,80 +15,23 @@ Install the latest version via NPM:
|
|
|
15
15
|
npm install @studiometa/js-toolkit
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Documentation
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
This project contains a JavaScript micro-framework and its utility functions whose main objectives are:
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
- Enforcing best-practice and consistency between projects
|
|
23
|
+
- Using elements from the DOM easily
|
|
24
|
+
- Enabling custom behaviours on component initialization or other user events
|
|
25
|
+
- Disabling custom behaviours on component destruction or other user events
|
|
26
|
+
- Initializing components in the right place at the right time
|
|
27
|
+
- Defining dependencies between components
|
|
23
28
|
|
|
24
|
-
|
|
29
|
+
Visit [js-toolkit.studiometa.dev](https://js-toolkit.studiometa.dev) to learn more.
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
import { Base, createApp } from '@studiometa/js-toolkit';
|
|
31
|
+
## Contributing
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
static config = {
|
|
31
|
-
name: 'Component',
|
|
32
|
-
}
|
|
33
|
+
This projects follows the [Git Flow](https://github.com/petervanderdoes/gitflow-avh) methodology to manage its branches and features. The packages and their dependencies are managed with NPM workspaces. The files are linted with ESLint, type checked with TypeScript and formatted with Prettier.
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
console.log('Hello!');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
35
|
+
## License
|
|
38
36
|
|
|
39
|
-
|
|
40
|
-
static config = {
|
|
41
|
-
name: 'App',
|
|
42
|
-
components: {
|
|
43
|
-
Component,
|
|
44
|
-
},
|
|
45
|
-
refs: ['btn', 'items[]'],
|
|
46
|
-
options: {
|
|
47
|
-
foo: String,
|
|
48
|
-
bar: { type: String, default: 'bar' },
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
mounted() {
|
|
53
|
-
this.$log('mounted');
|
|
54
|
-
|
|
55
|
-
// Options
|
|
56
|
-
this.$options.name; // 'App'
|
|
57
|
-
this.$options.log; // true
|
|
58
|
-
this.$options.debug; // false
|
|
59
|
-
this.$options.foo // ''
|
|
60
|
-
this.$options.bar // 'bar'
|
|
61
|
-
|
|
62
|
-
// Children
|
|
63
|
-
this.$children.Component; // Array<Component>
|
|
64
|
-
|
|
65
|
-
// DOM references
|
|
66
|
-
this.$refs.btn; // <button data-ref="btn"></button>
|
|
67
|
-
this.$refs.items[0]; // <li data-ref="items[]"></li>
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
destroyed() {
|
|
71
|
-
this.$log('destroyed');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
scrolled(props) {
|
|
75
|
-
this.$log('scrolled', props);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
resized(props) {
|
|
79
|
-
this.$log('resized', props);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export default createApp(App, document.body);
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Read the [documentation](https://js-toolkit.studiometa.dev/) to learn more.
|
|
87
|
-
|
|
88
|
-
## Contribution
|
|
89
|
-
|
|
90
|
-
This projects follows the [Git Flow](https://github.com/petervanderdoes/gitflow-avh) methodology to manage its branches and features.
|
|
91
|
-
|
|
92
|
-
The packages from this project are managed with NPM workspaces.
|
|
93
|
-
|
|
94
|
-
The files are linted with ESLint, type checked with TypeScript and formatted with Prettier.
|
|
37
|
+
See [LICENSE](./LICENSE).
|
|
@@ -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 __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
|
|
22
|
+
// packages/js-toolkit/decorators/index.js
|
|
23
|
+
var decorators_exports = {};
|
|
24
|
+
__export(decorators_exports, {
|
|
25
|
+
withBreakpointManager: () => import_withBreakpointManager.default,
|
|
26
|
+
withBreakpointObserver: () => import_withBreakpointObserver.default,
|
|
27
|
+
withDrag: () => import_withDrag.default,
|
|
28
|
+
withExtraConfig: () => import_withExtraConfig.default,
|
|
29
|
+
withFreezedOptions: () => import_withFreezedOptions.default,
|
|
30
|
+
withIntersectionObserver: () => import_withIntersectionObserver.default,
|
|
31
|
+
withMountWhenInView: () => import_withMountWhenInView.default,
|
|
32
|
+
withScrolledInView: () => import_withScrolledInView.default,
|
|
33
|
+
withVue2: () => import_withVue2.default
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(decorators_exports);
|
|
36
|
+
var import_withBreakpointManager = __toESM(require("./withBreakpointManager.cjs"), 1);
|
|
37
|
+
var import_withBreakpointObserver = __toESM(require("./withBreakpointObserver.cjs"), 1);
|
|
38
|
+
var import_withDrag = __toESM(require("./withDrag.cjs"), 1);
|
|
39
|
+
var import_withExtraConfig = __toESM(require("./withExtraConfig.cjs"), 1);
|
|
40
|
+
var import_withFreezedOptions = __toESM(require("./withFreezedOptions.cjs"), 1);
|
|
41
|
+
var import_withIntersectionObserver = __toESM(require("./withIntersectionObserver.cjs"), 1);
|
|
42
|
+
var import_withMountWhenInView = __toESM(require("./withMountWhenInView.cjs"), 1);
|
|
43
|
+
var import_withScrolledInView = __toESM(require("./withScrolledInView.cjs"), 1);
|
|
44
|
+
var import_withVue2 = __toESM(require("./withVue2.cjs"), 1);
|
|
45
|
+
if (module.exports.default) module.exports = module.exports.default;
|
package/decorators/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export {
|
|
1
|
+
export { default as withBreakpointManager } from "./withBreakpointManager.js";
|
|
2
|
+
export { default as withBreakpointObserver } from "./withBreakpointObserver.js";
|
|
3
|
+
export { default as withDrag } from "./withDrag.js";
|
|
4
|
+
export { default as withExtraConfig } from "./withExtraConfig.js";
|
|
5
|
+
export { default as withFreezedOptions } from "./withFreezedOptions.js";
|
|
6
|
+
export { default as withIntersectionObserver } from "./withIntersectionObserver.js";
|
|
7
|
+
export { default as withMountWhenInView } from "./withMountWhenInView.js";
|
|
8
|
+
export { default as withScrolledInView } from "./withScrolledInView.js";
|
|
9
|
+
export { default as withVue2 } from "./withVue2.js";
|
package/decorators/index.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
1
|
+
import { default as default2 } from "./withBreakpointManager.js";
|
|
2
|
+
import { default as default3 } from "./withBreakpointObserver.js";
|
|
3
|
+
import { default as default4 } from "./withDrag.js";
|
|
4
|
+
import { default as default5 } from "./withExtraConfig.js";
|
|
5
|
+
import { default as default6 } from "./withFreezedOptions.js";
|
|
6
|
+
import { default as default7 } from "./withIntersectionObserver.js";
|
|
7
|
+
import { default as default8 } from "./withMountWhenInView.js";
|
|
8
|
+
import { default as default9 } from "./withScrolledInView.js";
|
|
9
|
+
import { default as default10 } from "./withVue2.js";
|
|
10
|
+
export {
|
|
11
|
+
default2 as withBreakpointManager,
|
|
12
|
+
default3 as withBreakpointObserver,
|
|
13
|
+
default4 as withDrag,
|
|
14
|
+
default5 as withExtraConfig,
|
|
15
|
+
default6 as withFreezedOptions,
|
|
16
|
+
default7 as withIntersectionObserver,
|
|
17
|
+
default8 as withMountWhenInView,
|
|
18
|
+
default9 as withScrolledInView,
|
|
19
|
+
default10 as withVue2
|
|
20
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
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 __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
|
|
22
|
+
// packages/js-toolkit/decorators/withBreakpointManager.js
|
|
23
|
+
var withBreakpointManager_exports = {};
|
|
24
|
+
__export(withBreakpointManager_exports, {
|
|
25
|
+
default: () => withBreakpointManager
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(withBreakpointManager_exports);
|
|
28
|
+
var import_resize = __toESM(require("../services/resize.cjs"), 1);
|
|
29
|
+
function testBreakpoints(breakpoints) {
|
|
30
|
+
const { breakpoint } = (0, import_resize.default)().props();
|
|
31
|
+
breakpoints.forEach(([breakpointKeys, instance]) => {
|
|
32
|
+
if (breakpointKeys.includes(breakpoint) && !instance.$isMounted) {
|
|
33
|
+
setTimeout(() => instance.$mount(), 0);
|
|
34
|
+
} else if (!breakpointKeys.includes(breakpoint) && instance.$isMounted) {
|
|
35
|
+
instance.$destroy();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function mountComponents(instance, breakpoints) {
|
|
40
|
+
return breakpoints.map(([bk, ComponentClass]) => {
|
|
41
|
+
const child = new ComponentClass(instance.$el);
|
|
42
|
+
Object.defineProperty(child, "$parent", { get: () => instance.$parent });
|
|
43
|
+
return [bk, child];
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
var instances = /* @__PURE__ */ new WeakMap();
|
|
47
|
+
function withBreakpointManager(BaseClass, breakpoints) {
|
|
48
|
+
if (!Array.isArray(breakpoints)) {
|
|
49
|
+
throw new Error("[withBreakpointManager] The `breakpoints` parameter must be an array.");
|
|
50
|
+
}
|
|
51
|
+
if (breakpoints.length < 2) {
|
|
52
|
+
throw new Error("[withBreakpointManager] You must define at least 2 breakpoints.");
|
|
53
|
+
}
|
|
54
|
+
const { add, props } = (0, import_resize.default)();
|
|
55
|
+
if (!props().breakpoint) {
|
|
56
|
+
throw new Error(`The \`BreakpointManager\` class requires breakpoints to be defined.`);
|
|
57
|
+
}
|
|
58
|
+
return class extends BaseClass {
|
|
59
|
+
constructor(element) {
|
|
60
|
+
super(element);
|
|
61
|
+
if (!instances.has(this)) {
|
|
62
|
+
instances.set(this, mountComponents(this, breakpoints));
|
|
63
|
+
}
|
|
64
|
+
add(`BreakpointManager-${this.$id}`, () => {
|
|
65
|
+
testBreakpoints(instances.get(this));
|
|
66
|
+
});
|
|
67
|
+
this.instances = instances.get(this);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
$mount() {
|
|
71
|
+
super.$mount();
|
|
72
|
+
testBreakpoints(instances.get(this));
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
$destroy() {
|
|
76
|
+
if (Array.isArray(instances.get(this))) {
|
|
77
|
+
instances.get(this).forEach(([, instance]) => {
|
|
78
|
+
instance.$destroy();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return super.$destroy();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (module.exports.default) module.exports = module.exports.default;
|