@studiometa/js-toolkit 2.0.0-beta.1 → 2.0.0-beta.13
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 +294 -0
- package/Base/index.d.ts +27 -1
- package/Base/index.js +149 -179
- package/Base/managers/ChildrenManager.cjs +124 -0
- package/Base/managers/ChildrenManager.js +29 -55
- package/Base/managers/EventsManager.cjs +184 -0
- package/Base/managers/EventsManager.d.ts +3 -1
- package/Base/managers/EventsManager.js +85 -127
- package/Base/managers/OptionsManager.cjs +175 -0
- package/Base/managers/OptionsManager.d.ts +2 -0
- package/Base/managers/OptionsManager.js +46 -88
- package/Base/managers/RefsManager.cjs +98 -0
- package/Base/managers/RefsManager.d.ts +2 -0
- package/Base/managers/RefsManager.js +24 -35
- package/Base/managers/ServicesManager.cjs +132 -0
- package/Base/managers/ServicesManager.d.ts +29 -4
- package/Base/managers/ServicesManager.js +33 -63
- package/Base/utils.cjs +45 -0
- package/Base/utils.js +12 -11
- package/README.md +13 -70
- package/decorators/index.cjs +49 -0
- package/decorators/index.d.ts +8 -9
- package/decorators/index.js +18 -9
- package/decorators/withBreakpointManager.cjs +91 -0
- package/decorators/withBreakpointManager.js +18 -39
- package/decorators/withBreakpointObserver.cjs +116 -0
- package/decorators/withBreakpointObserver.js +40 -88
- package/decorators/withDrag.cjs +54 -0
- package/decorators/withDrag.js +16 -18
- package/decorators/withExtraConfig.cjs +44 -0
- package/decorators/withExtraConfig.js +11 -12
- package/decorators/withIntersectionObserver.cjs +61 -0
- package/decorators/withIntersectionObserver.js +23 -31
- package/decorators/withMountWhenInView.cjs +68 -0
- package/decorators/withMountWhenInView.js +31 -55
- package/decorators/withScrolledInView.cjs +112 -0
- package/decorators/withScrolledInView.d.ts +4 -1
- package/decorators/withScrolledInView.js +77 -73
- package/decorators/withVue2.cjs +60 -0
- package/decorators/withVue2.js +21 -32
- package/helpers/createApp.cjs +56 -0
- package/helpers/createApp.js +12 -12
- package/helpers/importOnInteraction.cjs +56 -0
- package/helpers/importOnInteraction.js +17 -18
- package/helpers/importWhenIdle.cjs +52 -0
- package/helpers/importWhenIdle.js +13 -17
- package/helpers/importWhenVisible.cjs +54 -0
- package/helpers/importWhenVisible.js +16 -18
- package/helpers/index.cjs +41 -0
- package/helpers/index.d.ts +4 -5
- package/helpers/index.js +10 -5
- package/helpers/utils.cjs +39 -0
- package/helpers/utils.js +7 -6
- package/index.cjs +38 -0
- package/index.d.ts +4 -21
- package/index.js +7 -5
- package/package.json +14 -3
- package/services/Service.cjs +75 -0
- package/services/Service.d.ts +22 -17
- package/services/Service.js +14 -28
- package/services/drag.cjs +194 -0
- package/services/drag.d.ts +4 -18
- package/services/drag.js +103 -156
- package/services/index.cjs +47 -0
- package/services/index.d.ts +13 -10
- package/services/index.js +16 -8
- package/services/key.cjs +101 -0
- package/services/key.d.ts +4 -13
- package/services/key.js +58 -77
- package/services/load.cjs +70 -0
- package/services/load.d.ts +3 -13
- package/services/load.js +31 -36
- package/services/pointer.cjs +159 -0
- package/services/pointer.d.ts +4 -13
- package/services/pointer.js +91 -121
- package/services/raf.cjs +81 -0
- package/services/raf.d.ts +3 -13
- package/services/raf.js +32 -52
- package/services/resize.cjs +106 -0
- package/services/resize.d.ts +3 -13
- package/services/resize.js +52 -52
- package/services/scroll.cjs +129 -0
- package/services/scroll.d.ts +3 -13
- package/services/scroll.js +75 -89
- package/utils/collide/boundingRectToCircle.cjs +38 -0
- package/utils/collide/boundingRectToCircle.d.ts +1 -1
- package/utils/collide/boundingRectToCircle.js +7 -10
- package/utils/collide/collideCircleCircle.cjs +38 -0
- package/utils/collide/collideCircleCircle.js +8 -7
- package/utils/collide/collideCircleRect.cjs +50 -0
- package/utils/collide/collideCircleRect.js +10 -12
- package/utils/collide/collidePointCircle.cjs +35 -0
- package/utils/collide/collidePointCircle.js +8 -5
- package/utils/collide/collidePointRect.cjs +32 -0
- package/utils/collide/collidePointRect.js +5 -2
- package/utils/collide/collideRectRect.cjs +32 -0
- package/utils/collide/collideRectRect.js +5 -2
- package/utils/collide/index.cjs +45 -0
- package/utils/collide/index.d.ts +6 -7
- package/utils/collide/index.js +14 -7
- package/utils/css/classes.cjs +48 -0
- package/utils/css/classes.js +13 -12
- package/utils/css/index.cjs +41 -0
- package/utils/css/index.d.ts +4 -5
- package/utils/css/index.js +10 -5
- package/utils/css/matrix.cjs +33 -0
- package/utils/css/matrix.js +6 -5
- package/utils/css/styles.cjs +51 -0
- package/utils/css/styles.js +13 -12
- package/utils/css/transition.cjs +121 -0
- package/utils/css/transition.js +62 -117
- package/utils/debounce.cjs +38 -0
- package/utils/debounce.js +7 -9
- package/utils/focusTrap.cjs +88 -0
- package/utils/focusTrap.js +30 -21
- package/utils/history.cjs +95 -0
- package/utils/history.js +28 -57
- package/utils/index.cjs +57 -0
- package/utils/index.d.ts +12 -35
- package/utils/index.js +30 -17
- package/utils/keyCodes.cjs +39 -0
- package/utils/keyCodes.js +5 -2
- package/utils/math/clamp.cjs +32 -0
- package/utils/math/clamp.js +5 -2
- package/utils/math/clamp01.cjs +38 -0
- package/utils/math/clamp01.js +6 -3
- package/utils/math/damp.cjs +32 -0
- package/utils/math/damp.js +5 -4
- package/utils/math/ease.cjs +92 -0
- package/utils/math/ease.d.ts +78 -0
- package/utils/math/ease.js +66 -0
- package/utils/math/index.cjs +48 -0
- package/utils/math/index.d.ts +8 -8
- package/utils/math/index.js +17 -8
- package/utils/math/inertiaFinalValue.cjs +41 -0
- package/utils/math/inertiaFinalValue.js +8 -10
- package/utils/math/lerp.cjs +32 -0
- package/utils/math/lerp.js +5 -2
- package/utils/math/map.cjs +32 -0
- package/utils/math/map.js +5 -2
- package/utils/math/round.cjs +32 -0
- package/utils/math/round.js +5 -3
- package/utils/memoize.cjs +47 -0
- package/utils/memoize.js +10 -19
- package/utils/nextFrame.cjs +44 -0
- package/utils/nextFrame.js +14 -9
- package/utils/object/autoBind.cjs +55 -0
- package/utils/object/autoBind.js +12 -22
- package/utils/object/getAllProperties.cjs +41 -0
- package/utils/object/getAllProperties.js +11 -14
- package/utils/object/index.cjs +39 -0
- package/utils/object/index.d.ts +3 -4
- package/utils/object/index.js +8 -4
- package/utils/object/isObject.cjs +32 -0
- package/utils/object/isObject.js +6 -3
- package/utils/scrollTo.cjs +86 -0
- package/utils/scrollTo.js +20 -40
- package/utils/string/index.cjs +53 -0
- package/utils/string/index.d.ts +10 -11
- package/utils/string/index.js +22 -11
- package/utils/string/withLeadingCharacters.cjs +38 -0
- package/utils/string/withLeadingCharacters.js +7 -4
- package/utils/string/withLeadingSlash.cjs +38 -0
- package/utils/string/withLeadingSlash.js +7 -4
- package/utils/string/withTrailingCharacters.cjs +38 -0
- package/utils/string/withTrailingCharacters.js +7 -4
- package/utils/string/withTrailingSlash.cjs +38 -0
- package/utils/string/withTrailingSlash.js +7 -4
- package/utils/string/withoutLeadingCharacters.cjs +32 -0
- package/utils/string/withoutLeadingCharacters.js +6 -3
- package/utils/string/withoutLeadingCharactersRecursive.cjs +43 -0
- package/utils/string/withoutLeadingCharactersRecursive.js +8 -7
- package/utils/string/withoutLeadingSlash.cjs +38 -0
- package/utils/string/withoutLeadingSlash.js +7 -4
- package/utils/string/withoutTrailingCharacters.cjs +32 -0
- package/utils/string/withoutTrailingCharacters.js +6 -3
- package/utils/string/withoutTrailingCharactersRecursive.cjs +43 -0
- package/utils/string/withoutTrailingCharactersRecursive.js +8 -7
- package/utils/string/withoutTrailingSlash.cjs +38 -0
- package/utils/string/withoutTrailingSlash.js +7 -4
- package/utils/throttle.cjs +40 -0
- package/utils/throttle.js +9 -9
- package/index.modern.js +0 -1
- package/index.umd.js +0 -1
|
@@ -0,0 +1,132 @@
|
|
|
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
|
+
|
|
29
|
+
// packages/js-toolkit/Base/managers/ServicesManager.js
|
|
30
|
+
var ServicesManager_exports = {};
|
|
31
|
+
__export(ServicesManager_exports, {
|
|
32
|
+
default: () => ServicesManager
|
|
33
|
+
});
|
|
34
|
+
var import_pointer = __toESM(require("../../services/pointer.cjs"), 1);
|
|
35
|
+
var import_raf = __toESM(require("../../services/raf.cjs"), 1);
|
|
36
|
+
var import_resize = __toESM(require("../../services/resize.cjs"), 1);
|
|
37
|
+
var import_scroll = __toESM(require("../../services/scroll.cjs"), 1);
|
|
38
|
+
var import_key = __toESM(require("../../services/key.cjs"), 1);
|
|
39
|
+
var import_load = __toESM(require("../../services/load.cjs"), 1);
|
|
40
|
+
var import_utils = require("../utils.cjs");
|
|
41
|
+
var SERVICES_MAP = {
|
|
42
|
+
scrolled: import_scroll.default,
|
|
43
|
+
resized: import_resize.default,
|
|
44
|
+
ticked: import_raf.default,
|
|
45
|
+
moved: import_pointer.default,
|
|
46
|
+
keyed: import_key.default,
|
|
47
|
+
loaded: import_load.default
|
|
48
|
+
};
|
|
49
|
+
var SERVICE_NAMES = Object.keys(SERVICES_MAP);
|
|
50
|
+
var ServicesManager = class {
|
|
51
|
+
__base;
|
|
52
|
+
__customServices = {};
|
|
53
|
+
get __services() {
|
|
54
|
+
return {
|
|
55
|
+
...this.__customServices,
|
|
56
|
+
...SERVICES_MAP
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
constructor(instance) {
|
|
60
|
+
Object.defineProperties(this, {
|
|
61
|
+
__base: {
|
|
62
|
+
enumerable: false,
|
|
63
|
+
writable: false,
|
|
64
|
+
value: instance
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
has(service) {
|
|
69
|
+
if (!(((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) && this.__services[service])) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
const { has } = this.__services[service]();
|
|
73
|
+
return has(this.__base.$id);
|
|
74
|
+
}
|
|
75
|
+
enable(service) {
|
|
76
|
+
if (this.has(service)) {
|
|
77
|
+
return this.disable.bind(this, service);
|
|
78
|
+
}
|
|
79
|
+
if (!((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) || !this.__services[service]) {
|
|
80
|
+
return function noop() {
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const { add } = this.__services[service]();
|
|
84
|
+
const self = this;
|
|
85
|
+
function serviceHandler(...args) {
|
|
86
|
+
self.__base.__callMethod(service, ...args);
|
|
87
|
+
}
|
|
88
|
+
add(this.__base.$id, serviceHandler);
|
|
89
|
+
return this.disable.bind(this, service);
|
|
90
|
+
}
|
|
91
|
+
enableAll() {
|
|
92
|
+
return Object.keys(this.__services).map((serviceName) => this.enable(serviceName));
|
|
93
|
+
}
|
|
94
|
+
disableAll() {
|
|
95
|
+
Object.keys(this.__services).forEach((serviceName) => {
|
|
96
|
+
this.disable(serviceName);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
disable(service) {
|
|
100
|
+
if (!this.__services[service]) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const { remove } = this.__services[service]();
|
|
104
|
+
remove(this.__base.$id);
|
|
105
|
+
}
|
|
106
|
+
toggle(service, force) {
|
|
107
|
+
if (typeof force !== "undefined") {
|
|
108
|
+
if (force && !this.has(service)) {
|
|
109
|
+
this.enable(service);
|
|
110
|
+
}
|
|
111
|
+
if (!force && this.has(service)) {
|
|
112
|
+
this.disable(service);
|
|
113
|
+
}
|
|
114
|
+
} else if (this.has(service)) {
|
|
115
|
+
this.disable(service);
|
|
116
|
+
} else {
|
|
117
|
+
this.enable(service);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
register(name, useFunction) {
|
|
121
|
+
this.__customServices[name] = useFunction;
|
|
122
|
+
this.__base.__addEmits(name);
|
|
123
|
+
}
|
|
124
|
+
unregister(name) {
|
|
125
|
+
if (SERVICE_NAMES.includes(name)) {
|
|
126
|
+
throw new Error(`[ServicesManager] The \`${name}\` core service can not be unregistered.`);
|
|
127
|
+
}
|
|
128
|
+
this.__base.__removeEmits(name);
|
|
129
|
+
delete this.__customServices[name];
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
module.exports = __toCommonJS(ServicesManager_exports);
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @typedef {
|
|
2
|
+
* @typedef {typeof SERVICES_MAP & Record<string, () => ServiceInterface>} Services
|
|
3
|
+
* @typedef {keyof SERVICES_MAP|string} ServiceName
|
|
3
4
|
*/
|
|
4
5
|
/**
|
|
5
6
|
* Services management for the Base class.
|
|
7
|
+
*
|
|
8
|
+
* @todo Add support for disabled services on mount when the method is defined.
|
|
6
9
|
*/
|
|
7
10
|
export default class ServicesManager {
|
|
8
11
|
/**
|
|
@@ -81,7 +84,29 @@ export default class ServicesManager {
|
|
|
81
84
|
unregister(name: string): void;
|
|
82
85
|
}
|
|
83
86
|
export type Base = import('../index').default;
|
|
84
|
-
export type
|
|
87
|
+
export type BaseConstructor = import('../index').BaseConstructor;
|
|
88
|
+
export type ServiceInterface = import('../../services').ServiceInterface<any>;
|
|
89
|
+
export type Services = typeof SERVICES_MAP & Record<string, () => ServiceInterface>;
|
|
85
90
|
export type ServiceName = keyof {
|
|
86
|
-
|
|
87
|
-
|
|
91
|
+
scrolled: typeof useScroll;
|
|
92
|
+
resized: typeof useResize;
|
|
93
|
+
ticked: typeof useRaf;
|
|
94
|
+
moved: typeof usePointer;
|
|
95
|
+
keyed: typeof useKey;
|
|
96
|
+
loaded: typeof useLoad;
|
|
97
|
+
} | string;
|
|
98
|
+
declare namespace SERVICES_MAP {
|
|
99
|
+
export { useScroll as scrolled };
|
|
100
|
+
export { useResize as resized };
|
|
101
|
+
export { useRaf as ticked };
|
|
102
|
+
export { usePointer as moved };
|
|
103
|
+
export { useKey as keyed };
|
|
104
|
+
export { useLoad as loaded };
|
|
105
|
+
}
|
|
106
|
+
import useScroll from "../../services/scroll.js";
|
|
107
|
+
import useResize from "../../services/resize.js";
|
|
108
|
+
import useRaf from "../../services/raf.js";
|
|
109
|
+
import usePointer from "../../services/pointer.js";
|
|
110
|
+
import useKey from "../../services/key.js";
|
|
111
|
+
import useLoad from "../../services/load.js";
|
|
112
|
+
export {};
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
|
|
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
|
-
var SERVICES_MAP = {
|
|
1
|
+
import usePointer from "../../services/pointer.js";
|
|
2
|
+
import useRaf from "../../services/raf.js";
|
|
3
|
+
import useResize from "../../services/resize.js";
|
|
4
|
+
import useScroll from "../../services/scroll.js";
|
|
5
|
+
import useKey from "../../services/key.js";
|
|
6
|
+
import useLoad from "../../services/load.js";
|
|
7
|
+
import { hasMethod } from "../utils.js";
|
|
8
|
+
const SERVICES_MAP = {
|
|
15
9
|
scrolled: useScroll,
|
|
16
10
|
resized: useResize,
|
|
17
11
|
ticked: useRaf,
|
|
@@ -19,17 +13,17 @@ var SERVICES_MAP = {
|
|
|
19
13
|
keyed: useKey,
|
|
20
14
|
loaded: useLoad
|
|
21
15
|
};
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
const SERVICE_NAMES = Object.keys(SERVICES_MAP);
|
|
17
|
+
class ServicesManager {
|
|
18
|
+
__base;
|
|
19
|
+
__customServices = {};
|
|
24
20
|
get __services() {
|
|
25
|
-
return
|
|
21
|
+
return {
|
|
22
|
+
...this.__customServices,
|
|
23
|
+
...SERVICES_MAP
|
|
24
|
+
};
|
|
26
25
|
}
|
|
27
|
-
|
|
28
26
|
constructor(instance) {
|
|
29
|
-
_defineProperty(this, "__base", void 0);
|
|
30
|
-
|
|
31
|
-
_defineProperty(this, "__customServices", {});
|
|
32
|
-
|
|
33
27
|
Object.defineProperties(this, {
|
|
34
28
|
__base: {
|
|
35
29
|
enumerable: false,
|
|
@@ -38,74 +32,49 @@ export default class ServicesManager {
|
|
|
38
32
|
}
|
|
39
33
|
});
|
|
40
34
|
}
|
|
41
|
-
|
|
42
35
|
has(service) {
|
|
43
36
|
if (!((hasMethod(this.__base, service) || this.__base.__hasEvent(service)) && this.__services[service])) {
|
|
44
37
|
return false;
|
|
45
38
|
}
|
|
46
|
-
|
|
47
|
-
var {
|
|
48
|
-
has
|
|
49
|
-
} = this.__services[service]();
|
|
50
|
-
|
|
39
|
+
const { has } = this.__services[service]();
|
|
51
40
|
return has(this.__base.$id);
|
|
52
41
|
}
|
|
53
|
-
|
|
54
42
|
enable(service) {
|
|
55
43
|
if (this.has(service)) {
|
|
56
44
|
return this.disable.bind(this, service);
|
|
57
45
|
}
|
|
58
|
-
|
|
59
46
|
if (!(hasMethod(this.__base, service) || this.__base.__hasEvent(service)) || !this.__services[service]) {
|
|
60
|
-
return function noop() {
|
|
47
|
+
return function noop() {
|
|
48
|
+
};
|
|
61
49
|
}
|
|
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
|
-
|
|
50
|
+
const { add } = this.__services[service]();
|
|
51
|
+
const self = this;
|
|
52
|
+
function serviceHandler(...args) {
|
|
74
53
|
self.__base.__callMethod(service, ...args);
|
|
75
54
|
}
|
|
76
|
-
|
|
77
55
|
add(this.__base.$id, serviceHandler);
|
|
78
56
|
return this.disable.bind(this, service);
|
|
79
57
|
}
|
|
80
|
-
|
|
81
58
|
enableAll() {
|
|
82
|
-
return Object.keys(this.__services).map(serviceName => this.enable(serviceName));
|
|
59
|
+
return Object.keys(this.__services).map((serviceName) => this.enable(serviceName));
|
|
83
60
|
}
|
|
84
|
-
|
|
85
61
|
disableAll() {
|
|
86
|
-
Object.keys(this.__services).forEach(serviceName => {
|
|
62
|
+
Object.keys(this.__services).forEach((serviceName) => {
|
|
87
63
|
this.disable(serviceName);
|
|
88
64
|
});
|
|
89
65
|
}
|
|
90
|
-
|
|
91
66
|
disable(service) {
|
|
92
67
|
if (!this.__services[service]) {
|
|
93
68
|
return;
|
|
94
69
|
}
|
|
95
|
-
|
|
96
|
-
var {
|
|
97
|
-
remove
|
|
98
|
-
} = this.__services[service]();
|
|
99
|
-
|
|
70
|
+
const { remove } = this.__services[service]();
|
|
100
71
|
remove(this.__base.$id);
|
|
101
72
|
}
|
|
102
|
-
|
|
103
73
|
toggle(service, force) {
|
|
104
|
-
if (typeof force !==
|
|
74
|
+
if (typeof force !== "undefined") {
|
|
105
75
|
if (force && !this.has(service)) {
|
|
106
76
|
this.enable(service);
|
|
107
77
|
}
|
|
108
|
-
|
|
109
78
|
if (!force && this.has(service)) {
|
|
110
79
|
this.disable(service);
|
|
111
80
|
}
|
|
@@ -115,17 +84,18 @@ export default class ServicesManager {
|
|
|
115
84
|
this.enable(service);
|
|
116
85
|
}
|
|
117
86
|
}
|
|
118
|
-
|
|
119
87
|
register(name, useFunction) {
|
|
120
88
|
this.__customServices[name] = useFunction;
|
|
89
|
+
this.__base.__addEmits(name);
|
|
121
90
|
}
|
|
122
|
-
|
|
123
91
|
unregister(name) {
|
|
124
92
|
if (SERVICE_NAMES.includes(name)) {
|
|
125
|
-
throw new Error(
|
|
93
|
+
throw new Error(`[ServicesManager] The \`${name}\` core service can not be unregistered.`);
|
|
126
94
|
}
|
|
127
|
-
|
|
95
|
+
this.__base.__removeEmits(name);
|
|
128
96
|
delete this.__customServices[name];
|
|
129
97
|
}
|
|
130
|
-
|
|
131
|
-
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
ServicesManager as default
|
|
101
|
+
};
|
package/Base/utils.cjs
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
11
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(module2))
|
|
13
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
14
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return target;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
19
|
+
return (module2, temp) => {
|
|
20
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
21
|
+
};
|
|
22
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
23
|
+
|
|
24
|
+
// packages/js-toolkit/Base/utils.js
|
|
25
|
+
var utils_exports = {};
|
|
26
|
+
__export(utils_exports, {
|
|
27
|
+
getComponentElements: () => getComponentElements,
|
|
28
|
+
hasMethod: () => hasMethod
|
|
29
|
+
});
|
|
30
|
+
function hasMethod(obj, name) {
|
|
31
|
+
return typeof obj[name] === "function";
|
|
32
|
+
}
|
|
33
|
+
function getComponentElements(nameOrSelector, element = document) {
|
|
34
|
+
const selector = `[data-component="${nameOrSelector}"]`;
|
|
35
|
+
let elements = [];
|
|
36
|
+
try {
|
|
37
|
+
elements = Array.from(element.querySelectorAll(selector));
|
|
38
|
+
} catch {
|
|
39
|
+
}
|
|
40
|
+
if (elements.length === 0) {
|
|
41
|
+
elements = Array.from(element.querySelectorAll(nameOrSelector));
|
|
42
|
+
}
|
|
43
|
+
return elements;
|
|
44
|
+
}
|
|
45
|
+
module.exports = __toCommonJS(utils_exports);
|
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,49 @@
|
|
|
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
|
+
|
|
29
|
+
// packages/js-toolkit/decorators/index.js
|
|
30
|
+
var decorators_exports = {};
|
|
31
|
+
__export(decorators_exports, {
|
|
32
|
+
withBreakpointManager: () => import_withBreakpointManager.default,
|
|
33
|
+
withBreakpointObserver: () => import_withBreakpointObserver.default,
|
|
34
|
+
withDrag: () => import_withDrag.default,
|
|
35
|
+
withExtraConfig: () => import_withExtraConfig.default,
|
|
36
|
+
withIntersectionObserver: () => import_withIntersectionObserver.default,
|
|
37
|
+
withMountWhenInView: () => import_withMountWhenInView.default,
|
|
38
|
+
withScrolledInView: () => import_withScrolledInView.default,
|
|
39
|
+
withVue2: () => import_withVue2.default
|
|
40
|
+
});
|
|
41
|
+
var import_withBreakpointManager = __toESM(require("./withBreakpointManager.cjs"), 1);
|
|
42
|
+
var import_withBreakpointObserver = __toESM(require("./withBreakpointObserver.cjs"), 1);
|
|
43
|
+
var import_withDrag = __toESM(require("./withDrag.cjs"), 1);
|
|
44
|
+
var import_withExtraConfig = __toESM(require("./withExtraConfig.cjs"), 1);
|
|
45
|
+
var import_withIntersectionObserver = __toESM(require("./withIntersectionObserver.cjs"), 1);
|
|
46
|
+
var import_withMountWhenInView = __toESM(require("./withMountWhenInView.cjs"), 1);
|
|
47
|
+
var import_withScrolledInView = __toESM(require("./withScrolledInView.cjs"), 1);
|
|
48
|
+
var import_withVue2 = __toESM(require("./withVue2.cjs"), 1);
|
|
49
|
+
module.exports = __toCommonJS(decorators_exports);
|
package/decorators/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export { withBreakpointManager, withBreakpointObserver, withDrag, withExtraConfig, withIntersectionObserver, withMountWhenInView, withScrolledInView, withVue2 };
|
|
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 withIntersectionObserver } from "./withIntersectionObserver.js";
|
|
6
|
+
export { default as withMountWhenInView } from "./withMountWhenInView.js";
|
|
7
|
+
export { default as withScrolledInView } from "./withScrolledInView.js";
|
|
8
|
+
export { default as withVue2 } from "./withVue2.js";
|
package/decorators/index.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
export {
|
|
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 "./withIntersectionObserver.js";
|
|
6
|
+
import { default as default7 } from "./withMountWhenInView.js";
|
|
7
|
+
import { default as default8 } from "./withScrolledInView.js";
|
|
8
|
+
import { default as default9 } from "./withVue2.js";
|
|
9
|
+
export {
|
|
10
|
+
default2 as withBreakpointManager,
|
|
11
|
+
default3 as withBreakpointObserver,
|
|
12
|
+
default4 as withDrag,
|
|
13
|
+
default5 as withExtraConfig,
|
|
14
|
+
default6 as withIntersectionObserver,
|
|
15
|
+
default7 as withMountWhenInView,
|
|
16
|
+
default8 as withScrolledInView,
|
|
17
|
+
default9 as withVue2
|
|
18
|
+
};
|