@studiometa/js-toolkit 2.0.0-beta.11 → 2.0.0-beta.15

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