@studiometa/js-toolkit 2.0.0-rc.2 → 2.1.0
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 +54 -18
- package/Base/index.d.ts +47 -26
- package/Base/index.js +54 -18
- package/Base/managers/AbstractManager.cjs +56 -0
- package/Base/managers/AbstractManager.d.ts +44 -0
- package/Base/managers/AbstractManager.js +35 -0
- package/Base/managers/ChildrenManager.cjs +79 -100
- package/Base/managers/ChildrenManager.d.ts +8 -83
- package/Base/managers/ChildrenManager.js +76 -100
- package/Base/managers/EventsManager.cjs +75 -99
- package/Base/managers/EventsManager.d.ts +37 -113
- package/Base/managers/EventsManager.js +75 -99
- package/Base/managers/OptionsManager.cjs +65 -79
- package/Base/managers/OptionsManager.d.ts +41 -80
- package/Base/managers/OptionsManager.js +66 -80
- package/Base/managers/RefsManager.cjs +44 -68
- package/Base/managers/RefsManager.d.ts +12 -66
- package/Base/managers/RefsManager.js +41 -69
- package/Base/managers/ResponsiveOptionsManager.cjs +62 -0
- package/Base/managers/ResponsiveOptionsManager.d.ts +26 -0
- package/Base/managers/ResponsiveOptionsManager.js +37 -0
- package/Base/managers/ServicesManager.cjs +7 -10
- package/Base/managers/ServicesManager.d.ts +16 -19
- package/Base/managers/ServicesManager.js +7 -10
- package/Base/utils.d.ts +4 -4
- package/decorators/index.cjs +2 -0
- package/decorators/index.d.ts +1 -0
- package/decorators/index.js +6 -4
- package/decorators/withBreakpointManager.cjs +0 -1
- package/decorators/withBreakpointManager.d.ts +2 -2
- package/decorators/withBreakpointManager.js +0 -1
- package/decorators/withBreakpointObserver.cjs +1 -2
- package/decorators/withBreakpointObserver.d.ts +1 -1
- package/decorators/withBreakpointObserver.js +1 -2
- package/decorators/withDrag.d.ts +1 -1
- package/decorators/withExtraConfig.d.ts +1 -1
- package/decorators/withFreezedOptions.cjs +12 -3
- package/decorators/withFreezedOptions.d.ts +1 -1
- package/decorators/withFreezedOptions.js +13 -3
- package/decorators/withIntersectionObserver.cjs +0 -1
- package/decorators/withIntersectionObserver.d.ts +1 -1
- package/decorators/withIntersectionObserver.js +0 -1
- package/decorators/withMountWhenInView.cjs +0 -1
- package/decorators/withMountWhenInView.d.ts +1 -1
- package/decorators/withMountWhenInView.js +0 -1
- package/decorators/withResponsiveOptions.cjs +39 -0
- package/decorators/withResponsiveOptions.d.ts +8 -0
- package/decorators/withResponsiveOptions.js +14 -0
- package/decorators/withScrolledInView.cjs +58 -23
- package/decorators/withScrolledInView.d.ts +5 -3
- package/decorators/withScrolledInView.js +59 -24
- package/helpers/createApp.d.ts +3 -26
- package/helpers/getInstanceFromElement.cjs +32 -0
- package/helpers/getInstanceFromElement.d.ts +14 -0
- package/helpers/getInstanceFromElement.js +10 -0
- package/helpers/importOnInteraction.d.ts +3 -5
- package/helpers/importWhenIdle.d.ts +3 -5
- package/helpers/importWhenVisible.d.ts +4 -6
- package/helpers/index.cjs +2 -0
- package/helpers/index.d.ts +1 -0
- package/helpers/index.js +8 -6
- package/helpers/utils.d.ts +3 -4
- package/package.json +2 -1
- package/services/Service.d.ts +9 -9
- package/services/drag.cjs +0 -1
- package/services/drag.d.ts +3 -3
- package/services/drag.js +0 -1
- package/services/key.d.ts +1 -1
- package/services/load.d.ts +1 -1
- package/services/pointer.d.ts +1 -1
- package/services/raf.d.ts +1 -1
- package/services/resize.cjs +2 -2
- package/services/resize.d.ts +1 -1
- package/services/resize.js +2 -2
- package/services/scroll.cjs +3 -1
- package/services/scroll.d.ts +1 -1
- package/services/scroll.js +3 -1
- package/utils/collide/boundingRectToCircle.d.ts +5 -5
- package/utils/collide/collideCircleCircle.d.ts +4 -4
- package/utils/collide/collideCircleRect.d.ts +8 -8
- package/utils/collide/collidePointCircle.d.ts +6 -6
- package/utils/collide/collidePointRect.d.ts +7 -7
- package/utils/collide/collideRectRect.d.ts +5 -5
- package/utils/css/animate.cjs +190 -0
- package/utils/css/animate.d.ts +57 -0
- package/utils/css/animate.js +165 -0
- package/utils/css/classes.cjs +3 -3
- package/utils/css/classes.d.ts +10 -10
- package/utils/css/classes.js +3 -3
- package/utils/css/getOffsetSizes.cjs +47 -0
- package/utils/css/getOffsetSizes.d.ts +15 -0
- package/utils/css/getOffsetSizes.js +25 -0
- package/utils/css/index.cjs +6 -0
- package/utils/css/index.d.ts +3 -0
- package/utils/css/index.js +9 -4
- package/utils/css/matrix.d.ts +14 -15
- package/utils/css/styles.d.ts +2 -2
- package/utils/css/transform.cjs +91 -0
- package/utils/css/transform.d.ts +43 -0
- package/utils/css/transform.js +66 -0
- package/utils/css/transition.cjs +2 -0
- package/utils/css/transition.d.ts +2 -2
- package/utils/css/transition.js +2 -0
- package/utils/debounce.d.ts +4 -4
- package/utils/focusTrap.cjs +1 -1
- package/utils/focusTrap.d.ts +1 -0
- package/utils/focusTrap.js +1 -1
- package/utils/history.d.ts +13 -11
- package/utils/index.cjs +4 -0
- package/utils/index.d.ts +2 -0
- package/utils/index.js +4 -0
- package/utils/isDefined.cjs +28 -0
- package/utils/isDefined.d.ts +7 -0
- package/utils/isDefined.js +6 -0
- package/utils/isFunction.cjs +28 -0
- package/utils/isFunction.d.ts +7 -0
- package/utils/isFunction.js +6 -0
- package/utils/math/clamp.d.ts +1 -1
- package/utils/math/clamp01.d.ts +1 -1
- package/utils/math/damp.d.ts +6 -6
- package/utils/math/ease.d.ts +7 -7
- package/utils/math/index.cjs +2 -0
- package/utils/math/index.d.ts +1 -0
- package/utils/math/index.js +2 -0
- package/utils/math/inertiaFinalValue.d.ts +5 -5
- package/utils/math/lerp.d.ts +4 -4
- package/utils/math/map.d.ts +6 -6
- package/utils/math/round.d.ts +4 -4
- package/utils/memoize.d.ts +1 -1
- package/utils/nextFrame.d.ts +3 -4
- package/utils/nextMicrotask.d.ts +1 -1
- package/utils/nextTick.d.ts +1 -1
- package/utils/object/autoBind.d.ts +3 -3
- package/utils/object/getAllProperties.d.ts +3 -3
- package/utils/object/isObject.d.ts +1 -1
- package/utils/scrollTo.cjs +1 -1
- package/utils/scrollTo.d.ts +1 -1
- package/utils/scrollTo.js +1 -1
- package/utils/string/withLeadingCharacters.d.ts +3 -2
- package/utils/string/withLeadingSlash.d.ts +1 -1
- package/utils/string/withTrailingCharacters.d.ts +3 -2
- package/utils/string/withTrailingSlash.d.ts +1 -1
- package/utils/string/withoutLeadingCharacters.d.ts +3 -2
- package/utils/string/withoutLeadingCharactersRecursive.d.ts +3 -2
- package/utils/string/withoutLeadingSlash.d.ts +1 -1
- package/utils/string/withoutTrailingCharacters.d.ts +3 -2
- package/utils/string/withoutTrailingCharactersRecursive.d.ts +3 -2
- package/utils/string/withoutTrailingSlash.d.ts +1 -1
- package/utils/throttle.cjs +1 -1
- package/utils/throttle.d.ts +3 -3
- package/utils/throttle.js +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -15,85 +16,60 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
16
|
}
|
|
16
17
|
return to;
|
|
17
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));
|
|
18
20
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __publicField = (obj, key, value) => {
|
|
20
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
21
|
|
|
24
22
|
// packages/js-toolkit/Base/managers/RefsManager.js
|
|
25
23
|
var RefsManager_exports = {};
|
|
26
24
|
__export(RefsManager_exports, {
|
|
27
|
-
default: () => RefsManager
|
|
25
|
+
default: () => RefsManager,
|
|
26
|
+
normalizeRefName: () => normalizeRefName
|
|
28
27
|
});
|
|
29
28
|
module.exports = __toCommonJS(RefsManager_exports);
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
enumerable: false,
|
|
39
|
-
writable: false,
|
|
40
|
-
value: element
|
|
41
|
-
},
|
|
42
|
-
__refs: {
|
|
43
|
-
enumerable: false,
|
|
44
|
-
writable: false,
|
|
45
|
-
value: refs
|
|
46
|
-
},
|
|
47
|
-
__base: {
|
|
48
|
-
enumerable: false,
|
|
49
|
-
writable: false,
|
|
50
|
-
value: base
|
|
51
|
-
},
|
|
52
|
-
__eventsManager: {
|
|
53
|
-
enumerable: false,
|
|
54
|
-
writable: false,
|
|
55
|
-
value: eventsManager
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
registerAll() {
|
|
60
|
-
this.__refs.forEach((refName) => this.__register(refName));
|
|
29
|
+
var import_AbstractManager = __toESM(require("./AbstractManager.cjs"), 1);
|
|
30
|
+
function normalizeRefName(name) {
|
|
31
|
+
return name.endsWith("[]") ? name.replace(/\[\]$/, "") : name;
|
|
32
|
+
}
|
|
33
|
+
function __filterRefsBelongingToInstance(that, ref) {
|
|
34
|
+
let ancestor = ref.parentElement;
|
|
35
|
+
while (ancestor && ancestor.dataset.component === void 0) {
|
|
36
|
+
ancestor = ancestor.parentElement;
|
|
61
37
|
}
|
|
62
|
-
|
|
63
|
-
|
|
38
|
+
return ancestor === null || ancestor === that.__element;
|
|
39
|
+
}
|
|
40
|
+
function __register(that, refName) {
|
|
41
|
+
const isMultiple = refName.endsWith("[]");
|
|
42
|
+
const propName = normalizeRefName(refName);
|
|
43
|
+
const refs = Array.from(that.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => __filterRefsBelongingToInstance(that, ref));
|
|
44
|
+
if (!isMultiple && refs.length > 1) {
|
|
45
|
+
console.warn(`[${that.__base.$options.name}]`, `The "${refName}" ref has been found multiple times.`, "Did you forgot to add the `[]` suffix to its name?");
|
|
64
46
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const refs = Array.from(this.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => this.__filterRefsBelongingToInstance(ref));
|
|
69
|
-
if (!isMultiple && refs.length > 1) {
|
|
70
|
-
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref has been found multiple times.`, "Did you forgot to add the `[]` suffix to its name?");
|
|
71
|
-
}
|
|
72
|
-
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
73
|
-
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
this.__eventsManager.bindRef(refName, refs);
|
|
77
|
-
Object.defineProperty(this, propName, {
|
|
78
|
-
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
79
|
-
enumerable: true,
|
|
80
|
-
configurable: true
|
|
81
|
-
});
|
|
47
|
+
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
48
|
+
console.warn(`[${that.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
49
|
+
return;
|
|
82
50
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
51
|
+
that.__eventsManager.bindRef(refName, refs);
|
|
52
|
+
Object.defineProperty(that, propName, {
|
|
53
|
+
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function __unregister(that, refName) {
|
|
59
|
+
const propName = normalizeRefName(refName);
|
|
60
|
+
const refs = Array.isArray(that[propName]) ? that[propName] : [that[propName]];
|
|
61
|
+
that.__eventsManager.unbindRef(refName, refs);
|
|
62
|
+
}
|
|
63
|
+
var RefsManager = class extends import_AbstractManager.default {
|
|
64
|
+
get __refs() {
|
|
65
|
+
var _a;
|
|
66
|
+
return (_a = this.__config.refs) != null ? _a : [];
|
|
87
67
|
}
|
|
88
|
-
|
|
89
|
-
|
|
68
|
+
registerAll() {
|
|
69
|
+
this.__refs.forEach((refName) => __register(this, refName));
|
|
90
70
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
while (ancestor && ancestor.dataset.component === void 0) {
|
|
94
|
-
ancestor = ancestor.parentElement;
|
|
95
|
-
}
|
|
96
|
-
return ancestor === null || ancestor === this.__element;
|
|
71
|
+
unregisterAll() {
|
|
72
|
+
this.__refs.forEach((refName) => __unregister(this, refName));
|
|
97
73
|
}
|
|
98
74
|
};
|
|
99
75
|
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -1,86 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Normalize the name of ref.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} name The original name.
|
|
5
|
+
* @returns {string} The normalized name.
|
|
4
6
|
*/
|
|
7
|
+
export function normalizeRefName(name: string): string;
|
|
5
8
|
/**
|
|
6
9
|
* Refs Manager
|
|
7
10
|
*
|
|
8
11
|
* @todo Use `MutationObserver` to automatically update refs?
|
|
9
12
|
*/
|
|
10
|
-
export default class RefsManager {
|
|
11
|
-
/**
|
|
12
|
-
* Normalize the name of ref.
|
|
13
|
-
*
|
|
14
|
-
* @param {string} name The original name.
|
|
15
|
-
* @return {string} The normalized name.
|
|
16
|
-
*/
|
|
17
|
-
static normalizeRefName(name: string): string;
|
|
18
|
-
/**
|
|
19
|
-
* Class constructor.
|
|
20
|
-
*
|
|
21
|
-
* @param {Base} base
|
|
22
|
-
* The base instance tied to this manager.
|
|
23
|
-
* @param {HTMLElement} element
|
|
24
|
-
* The root element of a Base component.
|
|
25
|
-
* @param {string[]} refs
|
|
26
|
-
* The list of refs of this component.
|
|
27
|
-
* @param {EventsManager} eventsManager
|
|
28
|
-
*/
|
|
29
|
-
constructor(base: Base, element: HTMLElement, refs: string[], eventsManager: EventsManager);
|
|
30
|
-
/**
|
|
31
|
-
* @type {HTMLElement}
|
|
32
|
-
* @private
|
|
33
|
-
*/
|
|
34
|
-
private __element;
|
|
35
|
-
/**
|
|
36
|
-
* @type {string[]}
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
private __refs;
|
|
13
|
+
export default class RefsManager extends AbstractManager {
|
|
40
14
|
/**
|
|
41
|
-
*
|
|
42
|
-
* @
|
|
15
|
+
* Get refs configuration.
|
|
16
|
+
* @returns {string[]}
|
|
43
17
|
*/
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @type {EventsManager}
|
|
47
|
-
* @private
|
|
48
|
-
*/
|
|
49
|
-
private __eventsManager;
|
|
18
|
+
get __refs(): string[];
|
|
50
19
|
/**
|
|
51
20
|
* Register all refs.
|
|
52
21
|
*
|
|
53
|
-
* @
|
|
22
|
+
* @returns {void}
|
|
54
23
|
*/
|
|
55
24
|
registerAll(): void;
|
|
56
25
|
/**
|
|
57
26
|
* Unregister all refs.
|
|
58
27
|
*
|
|
59
|
-
* @
|
|
28
|
+
* @returns {void}
|
|
60
29
|
*/
|
|
61
30
|
unregisterAll(): void;
|
|
62
|
-
/**
|
|
63
|
-
* Register one ref.
|
|
64
|
-
*
|
|
65
|
-
* @param {string} refName The ref name.
|
|
66
|
-
* @private
|
|
67
|
-
*/
|
|
68
|
-
private __register;
|
|
69
|
-
/**
|
|
70
|
-
* Unregister one ref.
|
|
71
|
-
*
|
|
72
|
-
* @param {string} refName The ref name.
|
|
73
|
-
* @private
|
|
74
|
-
*/
|
|
75
|
-
private __unregister;
|
|
76
|
-
/**
|
|
77
|
-
* Filter refs belonging to the related Base instance.
|
|
78
|
-
*
|
|
79
|
-
* @param {HTMLElement} ref The ref to test.
|
|
80
|
-
* @return {boolean}
|
|
81
|
-
* @private
|
|
82
|
-
*/
|
|
83
|
-
private __filterRefsBelongingToInstance;
|
|
84
31
|
}
|
|
85
|
-
|
|
86
|
-
export type EventsManager = import('./EventsManager.js').default;
|
|
32
|
+
import AbstractManager from "./AbstractManager.js";
|
|
@@ -1,78 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
__publicField(this, "__element");
|
|
10
|
-
__publicField(this, "__refs");
|
|
11
|
-
__publicField(this, "__base");
|
|
12
|
-
__publicField(this, "__eventsManager");
|
|
13
|
-
Object.defineProperties(this, {
|
|
14
|
-
__element: {
|
|
15
|
-
enumerable: false,
|
|
16
|
-
writable: false,
|
|
17
|
-
value: element
|
|
18
|
-
},
|
|
19
|
-
__refs: {
|
|
20
|
-
enumerable: false,
|
|
21
|
-
writable: false,
|
|
22
|
-
value: refs
|
|
23
|
-
},
|
|
24
|
-
__base: {
|
|
25
|
-
enumerable: false,
|
|
26
|
-
writable: false,
|
|
27
|
-
value: base
|
|
28
|
-
},
|
|
29
|
-
__eventsManager: {
|
|
30
|
-
enumerable: false,
|
|
31
|
-
writable: false,
|
|
32
|
-
value: eventsManager
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
registerAll() {
|
|
37
|
-
this.__refs.forEach((refName) => this.__register(refName));
|
|
1
|
+
import AbstractManager from "./AbstractManager.js";
|
|
2
|
+
function normalizeRefName(name) {
|
|
3
|
+
return name.endsWith("[]") ? name.replace(/\[\]$/, "") : name;
|
|
4
|
+
}
|
|
5
|
+
function __filterRefsBelongingToInstance(that, ref) {
|
|
6
|
+
let ancestor = ref.parentElement;
|
|
7
|
+
while (ancestor && ancestor.dataset.component === void 0) {
|
|
8
|
+
ancestor = ancestor.parentElement;
|
|
38
9
|
}
|
|
39
|
-
|
|
40
|
-
|
|
10
|
+
return ancestor === null || ancestor === that.__element;
|
|
11
|
+
}
|
|
12
|
+
function __register(that, refName) {
|
|
13
|
+
const isMultiple = refName.endsWith("[]");
|
|
14
|
+
const propName = normalizeRefName(refName);
|
|
15
|
+
const refs = Array.from(that.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => __filterRefsBelongingToInstance(that, ref));
|
|
16
|
+
if (!isMultiple && refs.length > 1) {
|
|
17
|
+
console.warn(`[${that.__base.$options.name}]`, `The "${refName}" ref has been found multiple times.`, "Did you forgot to add the `[]` suffix to its name?");
|
|
41
18
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const refs = Array.from(this.__element.querySelectorAll(`[data-ref="${refName}"]`)).filter((ref) => this.__filterRefsBelongingToInstance(ref));
|
|
46
|
-
if (!isMultiple && refs.length > 1) {
|
|
47
|
-
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref has been found multiple times.`, "Did you forgot to add the `[]` suffix to its name?");
|
|
48
|
-
}
|
|
49
|
-
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
50
|
-
console.warn(`[${this.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this.__eventsManager.bindRef(refName, refs);
|
|
54
|
-
Object.defineProperty(this, propName, {
|
|
55
|
-
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
56
|
-
enumerable: true,
|
|
57
|
-
configurable: true
|
|
58
|
-
});
|
|
19
|
+
if (!isMultiple && refs.length <= 1 && refs[0] === void 0) {
|
|
20
|
+
console.warn(`[${that.__base.$options.name}]`, `The "${refName}" ref is missing.`, `Is there an \`[data-ref="${refName}"]\` element in the component's scope?`);
|
|
21
|
+
return;
|
|
59
22
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
23
|
+
that.__eventsManager.bindRef(refName, refs);
|
|
24
|
+
Object.defineProperty(that, propName, {
|
|
25
|
+
value: isMultiple || refs.length > 1 ? refs : refs[0],
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function __unregister(that, refName) {
|
|
31
|
+
const propName = normalizeRefName(refName);
|
|
32
|
+
const refs = Array.isArray(that[propName]) ? that[propName] : [that[propName]];
|
|
33
|
+
that.__eventsManager.unbindRef(refName, refs);
|
|
34
|
+
}
|
|
35
|
+
class RefsManager extends AbstractManager {
|
|
36
|
+
get __refs() {
|
|
37
|
+
var _a;
|
|
38
|
+
return (_a = this.__config.refs) != null ? _a : [];
|
|
64
39
|
}
|
|
65
|
-
|
|
66
|
-
|
|
40
|
+
registerAll() {
|
|
41
|
+
this.__refs.forEach((refName) => __register(this, refName));
|
|
67
42
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
while (ancestor && ancestor.dataset.component === void 0) {
|
|
71
|
-
ancestor = ancestor.parentElement;
|
|
72
|
-
}
|
|
73
|
-
return ancestor === null || ancestor === this.__element;
|
|
43
|
+
unregisterAll() {
|
|
44
|
+
this.__refs.forEach((refName) => __unregister(this, refName));
|
|
74
45
|
}
|
|
75
46
|
}
|
|
76
47
|
export {
|
|
77
|
-
RefsManager as default
|
|
48
|
+
RefsManager as default,
|
|
49
|
+
normalizeRefName
|
|
78
50
|
};
|
|
@@ -0,0 +1,62 @@
|
|
|
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/Base/managers/ResponsiveOptionsManager.js
|
|
23
|
+
var ResponsiveOptionsManager_exports = {};
|
|
24
|
+
__export(ResponsiveOptionsManager_exports, {
|
|
25
|
+
default: () => ResponsiveOptionsManager
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(ResponsiveOptionsManager_exports);
|
|
28
|
+
var import_OptionsManager = __toESM(require("./OptionsManager.cjs"), 1);
|
|
29
|
+
var import_services = require("../../services/index.cjs");
|
|
30
|
+
function __getResponsiveName(that, name) {
|
|
31
|
+
const { breakpoint } = (0, import_services.useResize)().props();
|
|
32
|
+
if (!breakpoint) {
|
|
33
|
+
return name;
|
|
34
|
+
}
|
|
35
|
+
let responsiveName = name;
|
|
36
|
+
const propertyName = (0, import_OptionsManager.__getPropertyName)(name);
|
|
37
|
+
const regex = new RegExp(`${propertyName}:(.+)$`);
|
|
38
|
+
Object.keys(that.__element.dataset).filter((optionName) => regex.test(optionName)).forEach((optionName) => {
|
|
39
|
+
const [, breakpoints] = optionName.match(regex);
|
|
40
|
+
const isInBreakpoint = breakpoints.split(":").includes(breakpoint);
|
|
41
|
+
if (isInBreakpoint) {
|
|
42
|
+
responsiveName = optionName.replace(/^option/, "");
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return responsiveName;
|
|
46
|
+
}
|
|
47
|
+
var ResponsiveOptionsManager = class extends import_OptionsManager.default {
|
|
48
|
+
get(name, config) {
|
|
49
|
+
if (!config.responsive) {
|
|
50
|
+
return super.get(name, config);
|
|
51
|
+
}
|
|
52
|
+
return super.get(__getResponsiveName(this, name), config);
|
|
53
|
+
}
|
|
54
|
+
set(name, value, config) {
|
|
55
|
+
if (!config.responsive) {
|
|
56
|
+
super.set(name, value, config);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
console.warn(`[${this.__config.name}]`, "Responsive options are read-only.");
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
if (module.exports.default) module.exports = module.exports.default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class options to manage options as data attributes on an HTML element.
|
|
3
|
+
*/
|
|
4
|
+
export default class ResponsiveOptionsManager extends OptionsManager {
|
|
5
|
+
/**
|
|
6
|
+
* Get an option value.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} name The option name.
|
|
9
|
+
* @param {ResponsiveOptionObject} config The option configuration.
|
|
10
|
+
* @returns {any}
|
|
11
|
+
*/
|
|
12
|
+
get(name: string, config: ResponsiveOptionObject): any;
|
|
13
|
+
/**
|
|
14
|
+
* Set an option value.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} name The option name.
|
|
17
|
+
* @param {any} value The new value.
|
|
18
|
+
* @param {ResponsiveOptionObject} config The option configuration.
|
|
19
|
+
*/
|
|
20
|
+
set(name: string, value: any, config: ResponsiveOptionObject): void;
|
|
21
|
+
}
|
|
22
|
+
export type OptionObject = import('./OptionsManager.js').OptionObject;
|
|
23
|
+
export type ResponsiveOptionObject = OptionObject & {
|
|
24
|
+
responsive?: boolean;
|
|
25
|
+
};
|
|
26
|
+
import OptionsManager from "./OptionsManager.js";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import OptionsManager, { __getPropertyName } from "./OptionsManager.js";
|
|
2
|
+
import { useResize } from "../../services/index.js";
|
|
3
|
+
function __getResponsiveName(that, name) {
|
|
4
|
+
const { breakpoint } = useResize().props();
|
|
5
|
+
if (!breakpoint) {
|
|
6
|
+
return name;
|
|
7
|
+
}
|
|
8
|
+
let responsiveName = name;
|
|
9
|
+
const propertyName = __getPropertyName(name);
|
|
10
|
+
const regex = new RegExp(`${propertyName}:(.+)$`);
|
|
11
|
+
Object.keys(that.__element.dataset).filter((optionName) => regex.test(optionName)).forEach((optionName) => {
|
|
12
|
+
const [, breakpoints] = optionName.match(regex);
|
|
13
|
+
const isInBreakpoint = breakpoints.split(":").includes(breakpoint);
|
|
14
|
+
if (isInBreakpoint) {
|
|
15
|
+
responsiveName = optionName.replace(/^option/, "");
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return responsiveName;
|
|
19
|
+
}
|
|
20
|
+
class ResponsiveOptionsManager extends OptionsManager {
|
|
21
|
+
get(name, config) {
|
|
22
|
+
if (!config.responsive) {
|
|
23
|
+
return super.get(name, config);
|
|
24
|
+
}
|
|
25
|
+
return super.get(__getResponsiveName(this, name), config);
|
|
26
|
+
}
|
|
27
|
+
set(name, value, config) {
|
|
28
|
+
if (!config.responsive) {
|
|
29
|
+
super.set(name, value, config);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
console.warn(`[${this.__config.name}]`, "Responsive options are read-only.");
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
ResponsiveOptionsManager as default
|
|
37
|
+
};
|
|
@@ -36,6 +36,7 @@ var import_resize = __toESM(require("../../services/resize.cjs"), 1);
|
|
|
36
36
|
var import_scroll = __toESM(require("../../services/scroll.cjs"), 1);
|
|
37
37
|
var import_key = __toESM(require("../../services/key.cjs"), 1);
|
|
38
38
|
var import_load = __toESM(require("../../services/load.cjs"), 1);
|
|
39
|
+
var import_AbstractManager = __toESM(require("./AbstractManager.cjs"), 1);
|
|
39
40
|
var import_utils = require("../utils.cjs");
|
|
40
41
|
var SERVICES_MAP = {
|
|
41
42
|
scrolled: import_scroll.default,
|
|
@@ -46,17 +47,10 @@ var SERVICES_MAP = {
|
|
|
46
47
|
loaded: import_load.default
|
|
47
48
|
};
|
|
48
49
|
var SERVICE_NAMES = Object.keys(SERVICES_MAP);
|
|
49
|
-
var ServicesManager = class {
|
|
50
|
-
constructor(
|
|
51
|
-
|
|
50
|
+
var ServicesManager = class extends import_AbstractManager.default {
|
|
51
|
+
constructor() {
|
|
52
|
+
super(...arguments);
|
|
52
53
|
__publicField(this, "__customServices", {});
|
|
53
|
-
Object.defineProperties(this, {
|
|
54
|
-
__base: {
|
|
55
|
-
enumerable: false,
|
|
56
|
-
writable: false,
|
|
57
|
-
value: instance
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
54
|
}
|
|
61
55
|
get __services() {
|
|
62
56
|
return {
|
|
@@ -71,6 +65,9 @@ var ServicesManager = class {
|
|
|
71
65
|
const { has } = this.__services[service]();
|
|
72
66
|
return has(this.__base.$id);
|
|
73
67
|
}
|
|
68
|
+
get(service) {
|
|
69
|
+
return this.__services[service]().props();
|
|
70
|
+
}
|
|
74
71
|
enable(service) {
|
|
75
72
|
if (this.has(service)) {
|
|
76
73
|
return this.disable.bind(this, service);
|
|
@@ -7,63 +7,59 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @todo Add support for disabled services on mount when the method is defined.
|
|
9
9
|
*/
|
|
10
|
-
export default class ServicesManager {
|
|
11
|
-
/**
|
|
12
|
-
* Class constructor.
|
|
13
|
-
* @param {Base} instance The Base instance.
|
|
14
|
-
*/
|
|
15
|
-
constructor(instance: Base);
|
|
16
|
-
/**
|
|
17
|
-
* @type {Base}
|
|
18
|
-
* @private
|
|
19
|
-
*/
|
|
20
|
-
private __base;
|
|
10
|
+
export default class ServicesManager extends AbstractManager {
|
|
21
11
|
/**
|
|
22
12
|
* @type {Record<string, () => ServiceInterface>}
|
|
23
13
|
*/
|
|
24
14
|
__customServices: Record<string, () => ServiceInterface>;
|
|
25
15
|
/**
|
|
26
|
-
* @
|
|
16
|
+
* @returns {Record<string, () => ServiceInterface>}
|
|
27
17
|
*/
|
|
28
18
|
get __services(): Record<string, () => ServiceInterface>;
|
|
29
19
|
/**
|
|
30
20
|
* Test if the given service is registered.
|
|
31
21
|
*
|
|
32
22
|
* @param {ServiceName} service The name of the service.
|
|
33
|
-
* @
|
|
23
|
+
* @returns {boolean}
|
|
34
24
|
*/
|
|
35
25
|
has(service: ServiceName): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Get a service props by name.
|
|
28
|
+
* @param {ServiceName} service The name of the service.
|
|
29
|
+
* @returns {ReturnType<ServiceInterface['props']>}
|
|
30
|
+
*/
|
|
31
|
+
get(service: ServiceName): ReturnType<ServiceInterface['props']>;
|
|
36
32
|
/**
|
|
37
33
|
* Init the given service and bind it to the given instance.
|
|
38
34
|
*
|
|
39
35
|
* @param {ServiceName} service The name of the service.
|
|
40
|
-
* @
|
|
36
|
+
* @returns {() => void} A function to unbind the service.
|
|
41
37
|
*/
|
|
42
38
|
enable(service: ServiceName): () => void;
|
|
43
39
|
/**
|
|
44
40
|
* Enable all services and return methods to disable them.
|
|
45
41
|
*
|
|
46
|
-
* @
|
|
42
|
+
* @returns {Function[]}
|
|
47
43
|
*/
|
|
48
44
|
enableAll(): Function[];
|
|
49
45
|
/**
|
|
50
46
|
* Disable all services.
|
|
51
47
|
*
|
|
52
|
-
* @
|
|
48
|
+
* @returns {void}
|
|
53
49
|
*/
|
|
54
50
|
disableAll(): void;
|
|
55
51
|
/**
|
|
56
52
|
* Disable a service.
|
|
57
53
|
*
|
|
58
|
-
* @param {
|
|
59
|
-
* @
|
|
54
|
+
* @param {string} service The name of the service.
|
|
55
|
+
* @returns {void}
|
|
60
56
|
*/
|
|
61
57
|
disable(service: string): void;
|
|
62
58
|
/**
|
|
63
59
|
* Toggle a service.
|
|
64
60
|
* @param {string} service The name of the service.
|
|
65
61
|
* @param {boolean} [force] The state to force.
|
|
66
|
-
* @
|
|
62
|
+
* @returns {void}
|
|
67
63
|
*/
|
|
68
64
|
toggle(service: string, force?: boolean): void;
|
|
69
65
|
/**
|
|
@@ -95,6 +91,7 @@ export type ServiceName = keyof {
|
|
|
95
91
|
keyed: typeof useKey;
|
|
96
92
|
loaded: typeof useLoad;
|
|
97
93
|
} | string;
|
|
94
|
+
import AbstractManager from "./AbstractManager.js";
|
|
98
95
|
declare namespace SERVICES_MAP {
|
|
99
96
|
export { useScroll as scrolled };
|
|
100
97
|
export { useResize as resized };
|
|
@@ -10,6 +10,7 @@ import useResize from "../../services/resize.js";
|
|
|
10
10
|
import useScroll from "../../services/scroll.js";
|
|
11
11
|
import useKey from "../../services/key.js";
|
|
12
12
|
import useLoad from "../../services/load.js";
|
|
13
|
+
import AbstractManager from "./AbstractManager.js";
|
|
13
14
|
import { hasMethod } from "../utils.js";
|
|
14
15
|
const SERVICES_MAP = {
|
|
15
16
|
scrolled: useScroll,
|
|
@@ -20,17 +21,10 @@ const SERVICES_MAP = {
|
|
|
20
21
|
loaded: useLoad
|
|
21
22
|
};
|
|
22
23
|
const SERVICE_NAMES = Object.keys(SERVICES_MAP);
|
|
23
|
-
class ServicesManager {
|
|
24
|
-
constructor(
|
|
25
|
-
|
|
24
|
+
class ServicesManager extends AbstractManager {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
26
27
|
__publicField(this, "__customServices", {});
|
|
27
|
-
Object.defineProperties(this, {
|
|
28
|
-
__base: {
|
|
29
|
-
enumerable: false,
|
|
30
|
-
writable: false,
|
|
31
|
-
value: instance
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
28
|
}
|
|
35
29
|
get __services() {
|
|
36
30
|
return {
|
|
@@ -45,6 +39,9 @@ class ServicesManager {
|
|
|
45
39
|
const { has } = this.__services[service]();
|
|
46
40
|
return has(this.__base.$id);
|
|
47
41
|
}
|
|
42
|
+
get(service) {
|
|
43
|
+
return this.__services[service]().props();
|
|
44
|
+
}
|
|
48
45
|
enable(service) {
|
|
49
46
|
if (this.has(service)) {
|
|
50
47
|
return this.disable.bind(this, service);
|
package/Base/utils.d.ts
CHANGED
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
* Test if an object has a method.
|
|
6
6
|
*
|
|
7
7
|
* @param {Object} obj The object to test
|
|
8
|
-
* @param {
|
|
9
|
-
* @
|
|
8
|
+
* @param {string} name The method's name
|
|
9
|
+
* @returns {boolean}
|
|
10
10
|
*/
|
|
11
11
|
export function hasMethod(obj: any, name: string): boolean;
|
|
12
12
|
/**
|
|
13
13
|
* Get a list of elements based on the name of a component.
|
|
14
14
|
*
|
|
15
|
-
* @param {
|
|
15
|
+
* @param {string} nameOrSelector
|
|
16
16
|
* The name or selector to used for this component.
|
|
17
17
|
* @param {HTMLElement|Document} element
|
|
18
18
|
* The root element on which to query the selector, defaults to `document`.
|
|
19
|
-
* @
|
|
19
|
+
* @returns {Array<HTMLElement>}
|
|
20
20
|
* A list of elements on which the component should be mounted.
|
|
21
21
|
*/
|
|
22
22
|
export function getComponentElements(nameOrSelector: string, element?: HTMLElement | Document): Array<HTMLElement>;
|