@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.
Files changed (189) hide show
  1. package/Base/index.cjs +285 -0
  2. package/Base/index.d.ts +13 -4
  3. package/Base/index.js +114 -197
  4. package/Base/managers/ChildrenManager.cjs +146 -0
  5. package/Base/managers/ChildrenManager.d.ts +9 -1
  6. package/Base/managers/ChildrenManager.js +60 -59
  7. package/Base/managers/EventsManager.cjs +183 -0
  8. package/Base/managers/EventsManager.js +72 -112
  9. package/Base/managers/OptionsManager.cjs +174 -0
  10. package/Base/managers/OptionsManager.d.ts +9 -5
  11. package/Base/managers/OptionsManager.js +60 -90
  12. package/Base/managers/RefsManager.cjs +99 -0
  13. package/Base/managers/RefsManager.js +30 -35
  14. package/Base/managers/ServicesManager.cjs +131 -0
  15. package/Base/managers/ServicesManager.js +39 -67
  16. package/Base/utils.cjs +41 -0
  17. package/Base/utils.js +12 -11
  18. package/README.md +13 -70
  19. package/decorators/index.cjs +45 -0
  20. package/decorators/index.d.ts +9 -9
  21. package/decorators/index.js +20 -9
  22. package/decorators/withBreakpointManager.cjs +85 -0
  23. package/decorators/withBreakpointManager.js +18 -39
  24. package/decorators/withBreakpointObserver.cjs +115 -0
  25. package/decorators/withBreakpointObserver.js +44 -86
  26. package/decorators/withDrag.cjs +53 -0
  27. package/decorators/withDrag.js +24 -26
  28. package/decorators/withExtraConfig.cjs +43 -0
  29. package/decorators/withExtraConfig.js +17 -12
  30. package/decorators/withFreezedOptions.cjs +36 -0
  31. package/decorators/withFreezedOptions.d.ts +14 -0
  32. package/decorators/withFreezedOptions.js +14 -0
  33. package/decorators/withIntersectionObserver.cjs +62 -0
  34. package/decorators/withIntersectionObserver.js +29 -32
  35. package/decorators/withMountWhenInView.cjs +69 -0
  36. package/decorators/withMountWhenInView.js +31 -52
  37. package/decorators/withScrolledInView.cjs +114 -0
  38. package/decorators/withScrolledInView.d.ts +2 -1
  39. package/decorators/withScrolledInView.js +35 -39
  40. package/decorators/withVue2.cjs +60 -0
  41. package/decorators/withVue2.js +26 -32
  42. package/helpers/createApp.cjs +52 -0
  43. package/helpers/createApp.d.ts +2 -2
  44. package/helpers/createApp.js +12 -12
  45. package/helpers/importOnInteraction.cjs +52 -0
  46. package/helpers/importOnInteraction.js +17 -18
  47. package/helpers/importWhenIdle.cjs +49 -0
  48. package/helpers/importWhenIdle.js +14 -17
  49. package/helpers/importWhenVisible.cjs +50 -0
  50. package/helpers/importWhenVisible.js +16 -18
  51. package/helpers/index.cjs +35 -0
  52. package/helpers/index.d.ts +4 -5
  53. package/helpers/index.js +10 -5
  54. package/helpers/utils.cjs +35 -0
  55. package/helpers/utils.js +7 -6
  56. package/index.cjs +33 -0
  57. package/index.d.ts +4 -21
  58. package/index.js +7 -5
  59. package/package.json +14 -4
  60. package/services/Service.cjs +76 -0
  61. package/services/Service.js +19 -32
  62. package/services/drag.cjs +213 -0
  63. package/services/drag.d.ts +1 -0
  64. package/services/drag.js +64 -68
  65. package/services/index.cjs +41 -0
  66. package/services/index.d.ts +7 -8
  67. package/services/index.js +16 -8
  68. package/services/key.cjs +104 -0
  69. package/services/key.js +28 -36
  70. package/services/load.cjs +72 -0
  71. package/services/load.js +17 -19
  72. package/services/pointer.cjs +162 -0
  73. package/services/pointer.js +43 -60
  74. package/services/raf.cjs +83 -0
  75. package/services/raf.js +20 -28
  76. package/services/resize.cjs +108 -0
  77. package/services/resize.js +33 -42
  78. package/services/scroll.cjs +131 -0
  79. package/services/scroll.js +26 -35
  80. package/utils/collide/boundingRectToCircle.cjs +34 -0
  81. package/utils/collide/boundingRectToCircle.d.ts +1 -1
  82. package/utils/collide/boundingRectToCircle.js +7 -10
  83. package/utils/collide/collideCircleCircle.cjs +34 -0
  84. package/utils/collide/collideCircleCircle.js +8 -7
  85. package/utils/collide/collideCircleRect.cjs +46 -0
  86. package/utils/collide/collideCircleRect.js +10 -12
  87. package/utils/collide/collidePointCircle.cjs +31 -0
  88. package/utils/collide/collidePointCircle.js +8 -5
  89. package/utils/collide/collidePointRect.cjs +28 -0
  90. package/utils/collide/collidePointRect.js +5 -2
  91. package/utils/collide/collideRectRect.cjs +28 -0
  92. package/utils/collide/collideRectRect.js +5 -2
  93. package/utils/collide/index.cjs +39 -0
  94. package/utils/collide/index.d.ts +6 -7
  95. package/utils/collide/index.js +14 -7
  96. package/utils/css/classes.cjs +47 -0
  97. package/utils/css/classes.d.ts +10 -9
  98. package/utils/css/classes.js +18 -14
  99. package/utils/css/index.cjs +38 -0
  100. package/utils/css/index.d.ts +4 -5
  101. package/utils/css/index.js +13 -5
  102. package/utils/css/matrix.cjs +30 -0
  103. package/utils/css/matrix.js +7 -5
  104. package/utils/css/styles.cjs +44 -0
  105. package/utils/css/styles.d.ts +6 -18
  106. package/utils/css/styles.js +12 -12
  107. package/utils/css/transition.cjs +120 -0
  108. package/utils/css/transition.d.ts +15 -9
  109. package/utils/css/transition.js +70 -119
  110. package/utils/debounce.cjs +34 -0
  111. package/utils/debounce.js +7 -9
  112. package/utils/focusTrap.cjs +82 -0
  113. package/utils/focusTrap.js +30 -21
  114. package/utils/history.cjs +89 -0
  115. package/utils/history.js +28 -57
  116. package/utils/index.cjs +54 -0
  117. package/utils/index.d.ts +14 -35
  118. package/utils/index.js +32 -17
  119. package/utils/keyCodes.cjs +35 -0
  120. package/utils/keyCodes.js +5 -2
  121. package/utils/math/clamp.cjs +28 -0
  122. package/utils/math/clamp.js +5 -2
  123. package/utils/math/clamp01.cjs +32 -0
  124. package/utils/math/clamp01.js +6 -3
  125. package/utils/math/damp.cjs +28 -0
  126. package/utils/math/damp.js +5 -4
  127. package/utils/math/ease.cjs +88 -0
  128. package/utils/math/ease.d.ts +78 -0
  129. package/utils/math/ease.js +66 -0
  130. package/utils/math/index.cjs +43 -0
  131. package/utils/math/index.d.ts +8 -8
  132. package/utils/math/index.js +17 -8
  133. package/utils/math/inertiaFinalValue.cjs +37 -0
  134. package/utils/math/inertiaFinalValue.js +8 -10
  135. package/utils/math/lerp.cjs +28 -0
  136. package/utils/math/lerp.js +5 -2
  137. package/utils/math/map.cjs +28 -0
  138. package/utils/math/map.js +5 -2
  139. package/utils/math/round.cjs +28 -0
  140. package/utils/math/round.js +5 -3
  141. package/utils/memoize.cjs +43 -0
  142. package/utils/memoize.js +10 -19
  143. package/utils/nextFrame.cjs +38 -0
  144. package/utils/nextFrame.d.ts +4 -3
  145. package/utils/nextFrame.js +13 -10
  146. package/utils/nextMicrotask.cjs +28 -0
  147. package/utils/nextMicrotask.d.ts +8 -0
  148. package/utils/nextMicrotask.js +6 -0
  149. package/utils/nextTick.cjs +30 -0
  150. package/utils/nextTick.d.ts +8 -0
  151. package/utils/nextTick.js +8 -0
  152. package/utils/object/autoBind.cjs +49 -0
  153. package/utils/object/autoBind.js +12 -22
  154. package/utils/object/getAllProperties.cjs +37 -0
  155. package/utils/object/getAllProperties.js +10 -13
  156. package/utils/object/index.cjs +33 -0
  157. package/utils/object/index.d.ts +3 -4
  158. package/utils/object/index.js +8 -4
  159. package/utils/object/isObject.cjs +28 -0
  160. package/utils/object/isObject.js +6 -3
  161. package/utils/scrollTo.cjs +80 -0
  162. package/utils/scrollTo.js +20 -40
  163. package/utils/string/index.cjs +47 -0
  164. package/utils/string/index.d.ts +10 -11
  165. package/utils/string/index.js +22 -11
  166. package/utils/string/withLeadingCharacters.cjs +32 -0
  167. package/utils/string/withLeadingCharacters.js +7 -4
  168. package/utils/string/withLeadingSlash.cjs +32 -0
  169. package/utils/string/withLeadingSlash.js +7 -4
  170. package/utils/string/withTrailingCharacters.cjs +32 -0
  171. package/utils/string/withTrailingCharacters.js +7 -4
  172. package/utils/string/withTrailingSlash.cjs +32 -0
  173. package/utils/string/withTrailingSlash.js +7 -4
  174. package/utils/string/withoutLeadingCharacters.cjs +28 -0
  175. package/utils/string/withoutLeadingCharacters.js +6 -3
  176. package/utils/string/withoutLeadingCharactersRecursive.cjs +37 -0
  177. package/utils/string/withoutLeadingCharactersRecursive.js +8 -7
  178. package/utils/string/withoutLeadingSlash.cjs +32 -0
  179. package/utils/string/withoutLeadingSlash.js +7 -4
  180. package/utils/string/withoutTrailingCharacters.cjs +28 -0
  181. package/utils/string/withoutTrailingCharacters.js +6 -3
  182. package/utils/string/withoutTrailingCharactersRecursive.cjs +37 -0
  183. package/utils/string/withoutTrailingCharactersRecursive.js +8 -7
  184. package/utils/string/withoutTrailingSlash.cjs +32 -0
  185. package/utils/string/withoutTrailingSlash.js +7 -4
  186. package/utils/throttle.cjs +36 -0
  187. package/utils/throttle.js +9 -9
  188. package/index.modern.js +0 -1
  189. package/index.umd.js +0 -1
@@ -1,19 +1,17 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import { getComponentElements } from '../utils.js';
3
- export default class ChildrenManager {
4
- get registeredNames() {
5
- return Object.keys(this).filter(key => !key.startsWith('__'));
6
- }
7
-
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 { getComponentElements } from "../utils.js";
8
+ class ChildrenManager {
8
9
  constructor(base, element, components, eventsManager) {
9
- _defineProperty(this, "__base", void 0);
10
-
11
- _defineProperty(this, "__element", void 0);
12
-
13
- _defineProperty(this, "__components", void 0);
14
-
15
- _defineProperty(this, "__eventsManager", void 0);
16
-
10
+ __publicField(this, "__base");
11
+ __publicField(this, "__element");
12
+ __publicField(this, "__components");
13
+ __publicField(this, "__eventsManager");
14
+ __publicField(this, "__asyncComponentPromises", /* @__PURE__ */ new WeakMap());
17
15
  Object.defineProperties(this, {
18
16
  __base: {
19
17
  enumerable: false,
@@ -37,88 +35,91 @@ export default class ChildrenManager {
37
35
  }
38
36
  });
39
37
  }
40
-
38
+ get registeredNames() {
39
+ return Object.keys(this).filter((key) => !key.startsWith("__"));
40
+ }
41
41
  registerAll() {
42
- Object.entries(this.__components).forEach(_ref => {
43
- var [name, component] = _ref;
44
- return this.__register(name, component);
45
- });
42
+ Object.entries(this.__components).forEach(([name, component]) => this.__register(name, component));
46
43
  }
47
-
48
44
  __register(name, component) {
49
45
  Object.defineProperty(this, name, {
50
46
  enumerable: true,
51
47
  configurable: true,
52
48
  get: () => {
53
- var elements = getComponentElements(name, this.__element);
54
-
49
+ const elements = getComponentElements(name, this.__element);
55
50
  if (elements.length === 0) {
56
51
  return [];
57
52
  }
58
-
59
- return elements.map(element => this.__getChild(element, component, name)).filter(instance => instance !== 'terminated');
53
+ return elements.map((element) => this.__getChild(element, component, name)).filter((instance) => instance !== "terminated");
60
54
  }
61
55
  });
62
56
  }
63
-
64
57
  __getChild(el, ComponentClass, name) {
65
- if (el.__base__) {
66
- return el.__base__;
58
+ const asyncComponentPromise = this.__asyncComponentPromises.get(ComponentClass);
59
+ if ("$isBase" in ComponentClass || asyncComponentPromise && asyncComponentPromise.status === "resolved") {
60
+ let ctor = ComponentClass;
61
+ if (asyncComponentPromise) {
62
+ ctor = asyncComponentPromise.ctor;
63
+ }
64
+ if (el.__base__ && el.__base__.has(ctor)) {
65
+ return el.__base__.get(ctor);
66
+ }
67
+ const child = new ctor(el);
68
+ Object.defineProperty(child, "$parent", { get: () => this.__base });
69
+ return child;
67
70
  }
68
-
69
- if ('$isBase' in ComponentClass) {
70
- var child = new ComponentClass(el);
71
- Object.defineProperty(child, '$parent', {
72
- get: () => this.__base
71
+ const promise = asyncComponentPromise ? asyncComponentPromise.promise : ComponentClass(this.__base);
72
+ if (!asyncComponentPromise) {
73
+ this.__asyncComponentPromises.set(ComponentClass, {
74
+ promise,
75
+ status: "pending",
76
+ ctor: void 0
73
77
  });
74
- return child;
75
78
  }
76
-
77
- return ComponentClass(this.__base).then(module => {
78
- var _module$default;
79
-
80
- return this.__getChild(el, (_module$default = module.default) !== null && _module$default !== void 0 ? _module$default : module, name);
79
+ return promise.then((module) => {
80
+ var _a;
81
+ const ctor = (_a = module.default) != null ? _a : module;
82
+ this.__asyncComponentPromises.set(ComponentClass, {
83
+ promise,
84
+ status: "resolved",
85
+ ctor
86
+ });
87
+ return this.__getChild(el, ctor, name);
81
88
  });
82
89
  }
83
-
84
90
  mountAll() {
85
- this.__triggerHookForAll('$mount');
91
+ this.__triggerHookForAll("$mount");
86
92
  }
87
-
88
93
  updateAll() {
89
- this.__triggerHookForAll('$update');
94
+ this.__triggerHookForAll("$update");
90
95
  }
91
-
92
96
  destroyAll() {
93
- this.__triggerHookForAll('$destroy');
97
+ this.__triggerHookForAll("$destroy");
94
98
  }
95
-
96
99
  __triggerHookForAll(hook) {
97
- this.registeredNames.forEach(name => {
98
- this[name].forEach(instance => {
100
+ this.registeredNames.forEach((name) => {
101
+ this[name].forEach((instance) => {
99
102
  if (instance instanceof Promise) {
100
- instance.then(resolvedInstance => this.__triggerHook(hook, resolvedInstance, name));
103
+ instance.then((resolvedInstance) => this.__triggerHook(hook, resolvedInstance, name));
101
104
  } else {
102
105
  this.__triggerHook(hook, instance, name);
103
106
  }
104
107
  });
105
108
  });
106
109
  }
107
-
108
110
  __triggerHook(hook, instance, name) {
109
- if (hook === '$update' && !instance.$isMounted) {
110
- hook = '$mount';
111
+ if (hook === "$update" && !instance.$isMounted) {
112
+ hook = "$mount";
111
113
  }
112
-
113
- if (hook === '$update' || hook === '$destroy') {
114
+ if (hook === "$update" || hook === "$destroy") {
114
115
  this.__eventsManager.unbindChild(name, instance);
115
116
  }
116
-
117
- if (hook === '$update' || hook === '$mount') {
117
+ if (hook === "$update" || hook === "$mount") {
118
118
  this.__eventsManager.bindChild(name, instance);
119
119
  }
120
-
121
120
  instance[hook]();
122
121
  }
123
-
124
- }
122
+ }
123
+ export {
124
+ ChildrenManager as default
125
+ };
@@ -0,0 +1,183 @@
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/EventsManager.js
28
+ var EventsManager_exports = {};
29
+ __export(EventsManager_exports, {
30
+ default: () => EventsManager
31
+ });
32
+ module.exports = __toCommonJS(EventsManager_exports);
33
+ var import_getAllProperties = __toESM(require("../../utils/object/getAllProperties.cjs"), 1);
34
+ var import_RefsManager = __toESM(require("./RefsManager.cjs"), 1);
35
+ var EventsManager = class {
36
+ constructor(rootElement, base) {
37
+ __publicField(this, "__rootElement");
38
+ __publicField(this, "__base");
39
+ __publicField(this, "__methodsCache", /* @__PURE__ */ new Map());
40
+ __publicField(this, "__rootElementHandler", {
41
+ handleEvent: (event) => {
42
+ const normalizedEventName = EventsManager.normalizeName(event.type);
43
+ const method = `on${normalizedEventName}`;
44
+ this.__base[method](event);
45
+ }
46
+ });
47
+ __publicField(this, "__refsHandler", {
48
+ handleEvent: (event) => {
49
+ const ref = event.currentTarget;
50
+ const refName = import_RefsManager.default.normalizeRefName(ref.dataset.ref);
51
+ const normalizedRefName = EventsManager.normalizeName(refName);
52
+ const normalizedEventName = EventsManager.normalizeName(event.type);
53
+ const method = `on${normalizedRefName}${normalizedEventName}`;
54
+ let index = 0;
55
+ if (Array.isArray(this.__base.$refs[refName])) {
56
+ index = this.__base.$refs[refName].indexOf(ref);
57
+ }
58
+ this.__base[method](event, index);
59
+ }
60
+ });
61
+ __publicField(this, "__childrenHandler", {
62
+ handleEvent: (event) => {
63
+ const child = event.currentTarget;
64
+ let childName;
65
+ let index = 0;
66
+ const childrenManager = this.__base.$children;
67
+ childrenManager.registeredNames.find((name) => {
68
+ if (childrenManager[name].includes(child)) {
69
+ childName = name;
70
+ index = childrenManager[name].indexOf(child);
71
+ return true;
72
+ }
73
+ return false;
74
+ });
75
+ const normalizedRefName = EventsManager.normalizeName(childName);
76
+ const normalizedEventName = EventsManager.normalizeName(event.type);
77
+ const method = `on${normalizedRefName}${normalizedEventName}`;
78
+ const args = Array.isArray(event.detail) ? event.detail : [];
79
+ this.__base[method](...args, index, event);
80
+ }
81
+ });
82
+ Object.defineProperties(this, {
83
+ __rootElement: {
84
+ enumerable: false,
85
+ writable: false,
86
+ value: rootElement
87
+ },
88
+ __base: {
89
+ enumerable: false,
90
+ writable: false,
91
+ value: base
92
+ },
93
+ __methodsCache: {
94
+ enumerable: false,
95
+ writable: false,
96
+ value: this.__methodsCache
97
+ },
98
+ __rootElementHandler: {
99
+ enumerable: false,
100
+ writable: false,
101
+ value: this.__rootElementHandler
102
+ },
103
+ __refsHandler: {
104
+ enumerable: false,
105
+ writable: false,
106
+ value: this.__refsHandler
107
+ },
108
+ __childrenHandler: {
109
+ enumerable: false,
110
+ writable: false,
111
+ value: this.__childrenHandler
112
+ }
113
+ });
114
+ }
115
+ __manageRef(name, elements, mode = "add") {
116
+ const action = `${mode}EventListener`;
117
+ const methods = this.__getEventMethodsByName(name);
118
+ methods.forEach((method) => {
119
+ const event = this.__getEventNameByMethod(method, name);
120
+ elements.forEach((element) => element[action](event, this.__refsHandler));
121
+ });
122
+ }
123
+ bindRef(name, elements) {
124
+ this.__manageRef(name, elements);
125
+ }
126
+ unbindRef(name, elements) {
127
+ this.__manageRef(name, elements, "remove");
128
+ }
129
+ __manageChild(name, instance, mode = "add") {
130
+ const action = mode === "add" ? "$on" : "$off";
131
+ const methods = this.__getEventMethodsByName(name);
132
+ methods.forEach((method) => {
133
+ const event = this.__getEventNameByMethod(method, name);
134
+ instance[action](event, this.__childrenHandler);
135
+ });
136
+ }
137
+ bindChild(name, instance) {
138
+ this.__manageChild(name, instance);
139
+ }
140
+ unbindChild(name, instance) {
141
+ this.__manageChild(name, instance, "remove");
142
+ }
143
+ __manageRootElement(mode = "add") {
144
+ const modeMethod = `${mode}EventListener`;
145
+ const methods = this.__getEventMethodsByName();
146
+ const { emits = [] } = this.__base.__config;
147
+ methods.forEach((method) => {
148
+ const event = this.__getEventNameByMethod(method);
149
+ const target = emits.includes(event) ? this.__base : this.__rootElement;
150
+ target[modeMethod](event, this.__rootElementHandler);
151
+ });
152
+ }
153
+ bindRootElement() {
154
+ this.__manageRootElement();
155
+ }
156
+ unbindRootElement() {
157
+ this.__manageRootElement("remove");
158
+ }
159
+ __getEventNameByMethod(method, name = "") {
160
+ const normalizedName = EventsManager.normalizeName(name);
161
+ const regex = new RegExp(`^on${normalizedName}([A-Z].*)$`);
162
+ const [, event] = method.match(regex);
163
+ return EventsManager.normalizeEventName(event);
164
+ }
165
+ __getEventMethodsByName(name = "") {
166
+ const normalizedName = EventsManager.normalizeName(name);
167
+ const regex = new RegExp(`^on${normalizedName}[A-Z].*$`);
168
+ const key = regex.toString();
169
+ let methods = this.__methodsCache.get(key);
170
+ if (!methods) {
171
+ methods = Array.from((0, import_getAllProperties.default)(this.__base, [], (method) => regex.test(method)).reduce((set, [method]) => set.add(method), /* @__PURE__ */ new Set()));
172
+ this.__methodsCache.set(key, methods);
173
+ }
174
+ return methods;
175
+ }
176
+ static normalizeName(name) {
177
+ return name.replace(/[A-Z]([A-Z].*)/g, (c) => c.toLowerCase()).replace(/[^a-zA-Z\d\s:]/g, " ").replace(/(^\w|\s+\w)/g, (c) => c.trim().toUpperCase()).trim();
178
+ }
179
+ static normalizeEventName(name) {
180
+ return name.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`).replace(/^-/, "");
181
+ }
182
+ };
183
+ if (module.exports.default) module.exports = module.exports.default;
@@ -1,64 +1,58 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import getAllProperties from '../../utils/object/getAllProperties.js';
3
- import RefsManager from './RefsManager.js';
4
- export default class EventsManager {
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 getAllProperties from "../../utils/object/getAllProperties.js";
8
+ import RefsManager from "./RefsManager.js";
9
+ class EventsManager {
5
10
  constructor(rootElement, base) {
6
- _defineProperty(this, "__rootElement", void 0);
7
-
8
- _defineProperty(this, "__base", void 0);
9
-
10
- _defineProperty(this, "__methodsCache", new Map());
11
-
12
- _defineProperty(this, "__rootElementHandler", {
13
- handleEvent: event => {
14
- var normalizedEventName = EventsManager.normalizeName(event.type);
15
- var method = "on".concat(normalizedEventName);
16
-
11
+ __publicField(this, "__rootElement");
12
+ __publicField(this, "__base");
13
+ __publicField(this, "__methodsCache", /* @__PURE__ */ new Map());
14
+ __publicField(this, "__rootElementHandler", {
15
+ handleEvent: (event) => {
16
+ const normalizedEventName = EventsManager.normalizeName(event.type);
17
+ const method = `on${normalizedEventName}`;
17
18
  this.__base[method](event);
18
19
  }
19
20
  });
20
-
21
- _defineProperty(this, "__refsHandler", {
22
- handleEvent: event => {
23
- var ref = event.currentTarget;
24
- var refName = RefsManager.normalizeRefName(ref.dataset.ref);
25
- var normalizedRefName = EventsManager.normalizeName(refName);
26
- var normalizedEventName = EventsManager.normalizeName(event.type);
27
- var method = "on".concat(normalizedRefName).concat(normalizedEventName);
28
- var index = 0;
29
-
21
+ __publicField(this, "__refsHandler", {
22
+ handleEvent: (event) => {
23
+ const ref = event.currentTarget;
24
+ const refName = RefsManager.normalizeRefName(ref.dataset.ref);
25
+ const normalizedRefName = EventsManager.normalizeName(refName);
26
+ const normalizedEventName = EventsManager.normalizeName(event.type);
27
+ const method = `on${normalizedRefName}${normalizedEventName}`;
28
+ let index = 0;
30
29
  if (Array.isArray(this.__base.$refs[refName])) {
31
30
  index = this.__base.$refs[refName].indexOf(ref);
32
31
  }
33
-
34
32
  this.__base[method](event, index);
35
33
  }
36
34
  });
37
-
38
- _defineProperty(this, "__childrenHandler", {
39
- handleEvent: event => {
40
- var child = event.currentTarget;
41
- var childName;
42
- var index = 0;
43
- var childrenManager = this.__base.$children;
44
- childrenManager.registeredNames.find(name => {
35
+ __publicField(this, "__childrenHandler", {
36
+ handleEvent: (event) => {
37
+ const child = event.currentTarget;
38
+ let childName;
39
+ let index = 0;
40
+ const childrenManager = this.__base.$children;
41
+ childrenManager.registeredNames.find((name) => {
45
42
  if (childrenManager[name].includes(child)) {
46
43
  childName = name;
47
44
  index = childrenManager[name].indexOf(child);
48
45
  return true;
49
46
  }
50
-
51
47
  return false;
52
48
  });
53
- var normalizedRefName = EventsManager.normalizeName(childName);
54
- var normalizedEventName = EventsManager.normalizeName(event.type);
55
- var method = "on".concat(normalizedRefName).concat(normalizedEventName);
56
- var args = Array.isArray(event.detail) ? event.detail : [];
57
-
49
+ const normalizedRefName = EventsManager.normalizeName(childName);
50
+ const normalizedEventName = EventsManager.normalizeName(event.type);
51
+ const method = `on${normalizedRefName}${normalizedEventName}`;
52
+ const args = Array.isArray(event.detail) ? event.detail : [];
58
53
  this.__base[method](...args, index, event);
59
54
  }
60
55
  });
61
-
62
56
  Object.defineProperties(this, {
63
57
  __rootElement: {
64
58
  enumerable: false,
@@ -92,108 +86,74 @@ export default class EventsManager {
92
86
  }
93
87
  });
94
88
  }
95
-
96
- __manageRef(name, elements) {
97
- var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'add';
98
- var action = "".concat(mode, "EventListener");
99
-
100
- var methods = this.__getEventMethodsByName(name);
101
-
102
- methods.forEach(method => {
103
- var event = this.__getEventNameByMethod(method, name);
104
-
105
- elements.forEach(element => element[action](event, this.__refsHandler));
89
+ __manageRef(name, elements, mode = "add") {
90
+ const action = `${mode}EventListener`;
91
+ const methods = this.__getEventMethodsByName(name);
92
+ methods.forEach((method) => {
93
+ const event = this.__getEventNameByMethod(method, name);
94
+ elements.forEach((element) => element[action](event, this.__refsHandler));
106
95
  });
107
96
  }
108
-
109
97
  bindRef(name, elements) {
110
98
  this.__manageRef(name, elements);
111
99
  }
112
-
113
100
  unbindRef(name, elements) {
114
- this.__manageRef(name, elements, 'remove');
101
+ this.__manageRef(name, elements, "remove");
115
102
  }
116
-
117
- __manageChild(name, instance) {
118
- var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'add';
119
- var action = mode === 'add' ? '$on' : '$off';
120
-
121
- var methods = this.__getEventMethodsByName(name);
122
-
123
- methods.forEach(method => {
124
- var event = this.__getEventNameByMethod(method, name);
125
-
103
+ __manageChild(name, instance, mode = "add") {
104
+ const action = mode === "add" ? "$on" : "$off";
105
+ const methods = this.__getEventMethodsByName(name);
106
+ methods.forEach((method) => {
107
+ const event = this.__getEventNameByMethod(method, name);
126
108
  instance[action](event, this.__childrenHandler);
127
109
  });
128
110
  }
129
-
130
111
  bindChild(name, instance) {
131
112
  this.__manageChild(name, instance);
132
113
  }
133
-
134
114
  unbindChild(name, instance) {
135
- this.__manageChild(name, instance, 'remove');
115
+ this.__manageChild(name, instance, "remove");
136
116
  }
137
-
138
- __manageRootElement() {
139
- var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'add';
140
- var modeMethod = "".concat(mode, "EventListener");
141
-
142
- var methods = this.__getEventMethodsByName();
143
-
144
- var {
145
- emits = []
146
- } = this.__base.__config;
147
- methods.forEach(method => {
148
- var event = this.__getEventNameByMethod(method);
149
-
150
- var target = emits.includes(event) ? this.__base : this.__rootElement;
117
+ __manageRootElement(mode = "add") {
118
+ const modeMethod = `${mode}EventListener`;
119
+ const methods = this.__getEventMethodsByName();
120
+ const { emits = [] } = this.__base.__config;
121
+ methods.forEach((method) => {
122
+ const event = this.__getEventNameByMethod(method);
123
+ const target = emits.includes(event) ? this.__base : this.__rootElement;
151
124
  target[modeMethod](event, this.__rootElementHandler);
152
125
  });
153
126
  }
154
-
155
127
  bindRootElement() {
156
128
  this.__manageRootElement();
157
129
  }
158
-
159
130
  unbindRootElement() {
160
- this.__manageRootElement('remove');
131
+ this.__manageRootElement("remove");
161
132
  }
162
-
163
- __getEventNameByMethod(method) {
164
- var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
165
- var normalizedName = EventsManager.normalizeName(name);
166
- var regex = new RegExp("^on".concat(normalizedName, "([A-Z].*)$"));
167
- var [, event] = method.match(regex);
133
+ __getEventNameByMethod(method, name = "") {
134
+ const normalizedName = EventsManager.normalizeName(name);
135
+ const regex = new RegExp(`^on${normalizedName}([A-Z].*)$`);
136
+ const [, event] = method.match(regex);
168
137
  return EventsManager.normalizeEventName(event);
169
138
  }
170
-
171
- __getEventMethodsByName() {
172
- var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
173
- var normalizedName = EventsManager.normalizeName(name);
174
- var regex = new RegExp("^on".concat(normalizedName, "[A-Z].*$"));
175
- var key = regex.toString();
176
-
177
- var methods = this.__methodsCache.get(key);
178
-
139
+ __getEventMethodsByName(name = "") {
140
+ const normalizedName = EventsManager.normalizeName(name);
141
+ const regex = new RegExp(`^on${normalizedName}[A-Z].*$`);
142
+ const key = regex.toString();
143
+ let methods = this.__methodsCache.get(key);
179
144
  if (!methods) {
180
- methods = Array.from(getAllProperties(this.__base, [], method => regex.test(method)).reduce((set, _ref) => {
181
- var [method] = _ref;
182
- return set.add(method);
183
- }, new Set()));
184
-
145
+ methods = Array.from(getAllProperties(this.__base, [], (method) => regex.test(method)).reduce((set, [method]) => set.add(method), /* @__PURE__ */ new Set()));
185
146
  this.__methodsCache.set(key, methods);
186
147
  }
187
-
188
148
  return methods;
189
149
  }
190
-
191
150
  static normalizeName(name) {
192
- return name.replace(/[A-Z]([A-Z].*)/g, c => c.toLowerCase()).replace(/[^a-zA-Z\d\s:]/g, ' ').replace(/(^\w|\s+\w)/g, c => c.trim().toUpperCase()).trim();
151
+ return name.replace(/[A-Z]([A-Z].*)/g, (c) => c.toLowerCase()).replace(/[^a-zA-Z\d\s:]/g, " ").replace(/(^\w|\s+\w)/g, (c) => c.trim().toUpperCase()).trim();
193
152
  }
194
-
195
153
  static normalizeEventName(name) {
196
- return name.replace(/[A-Z]/g, c => "-".concat(c.toLowerCase())).replace(/^-/, '');
154
+ return name.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`).replace(/^-/, "");
197
155
  }
198
-
199
- }
156
+ }
157
+ export {
158
+ EventsManager as default
159
+ };