@studiometa/js-toolkit 2.0.0-alpha.1 → 2.0.0-alpha.10

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 (201) hide show
  1. package/Base/index.d.ts +29 -47
  2. package/Base/index.js +144 -171
  3. package/Base/managers/ChildrenManager.d.ts +6 -6
  4. package/Base/managers/ChildrenManager.js +95 -119
  5. package/Base/managers/EventsManager.d.ts +9 -9
  6. package/Base/managers/EventsManager.js +128 -161
  7. package/Base/managers/OptionsManager.d.ts +50 -5
  8. package/Base/managers/OptionsManager.js +115 -116
  9. package/Base/managers/RefsManager.js +62 -73
  10. package/Base/managers/ServicesManager.d.ts +14 -3
  11. package/Base/managers/ServicesManager.js +78 -77
  12. package/Base/utils.js +5 -8
  13. package/README.md +12 -70
  14. package/decorators/index.js +1 -2
  15. package/decorators/withBreakpointManager.d.ts +4 -4
  16. package/decorators/withBreakpointManager.js +37 -75
  17. package/decorators/withBreakpointObserver.d.ts +2 -2
  18. package/decorators/withBreakpointObserver.js +54 -77
  19. package/decorators/withDrag.d.ts +3 -3
  20. package/decorators/withDrag.js +17 -41
  21. package/decorators/withExtraConfig.d.ts +3 -3
  22. package/decorators/withExtraConfig.js +2 -24
  23. package/decorators/withIntersectionObserver.d.ts +2 -2
  24. package/decorators/withIntersectionObserver.js +17 -56
  25. package/decorators/withMountWhenInView.d.ts +3 -3
  26. package/decorators/withMountWhenInView.js +23 -51
  27. package/helpers/createApp.d.ts +3 -3
  28. package/helpers/createApp.js +10 -12
  29. package/helpers/importOnInteraction.d.ts +3 -3
  30. package/helpers/importOnInteraction.js +7 -8
  31. package/helpers/importWhenIdle.d.ts +3 -3
  32. package/helpers/importWhenIdle.js +7 -8
  33. package/helpers/importWhenVisible.d.ts +3 -3
  34. package/helpers/importWhenVisible.js +9 -16
  35. package/helpers/index.d.ts +1 -3
  36. package/helpers/index.js +1 -4
  37. package/helpers/utils.js +1 -2
  38. package/index.d.ts +14 -4
  39. package/index.js +4 -4
  40. package/index.modern.js +1 -2
  41. package/index.umd.js +1 -2
  42. package/package.json +4 -6
  43. package/services/Service.js +48 -67
  44. package/services/drag.js +143 -179
  45. package/services/index.js +1 -2
  46. package/services/key.js +55 -97
  47. package/services/load.d.ts +1 -1
  48. package/services/load.js +21 -50
  49. package/services/pointer.js +117 -156
  50. package/services/raf.js +36 -64
  51. package/services/resize.js +47 -86
  52. package/services/scroll.js +81 -120
  53. package/utils/collide/boundingRectToCircle.js +7 -6
  54. package/utils/collide/collideCircleCircle.js +1 -2
  55. package/utils/collide/collideCircleRect.js +1 -2
  56. package/utils/collide/collidePointCircle.js +1 -2
  57. package/utils/collide/collidePointRect.js +1 -2
  58. package/utils/collide/collideRectRect.js +1 -2
  59. package/utils/collide/index.js +1 -2
  60. package/utils/css/classes.js +2 -3
  61. package/utils/css/index.js +1 -2
  62. package/utils/css/matrix.js +1 -2
  63. package/utils/css/styles.js +3 -8
  64. package/utils/css/transition.js +67 -140
  65. package/utils/debounce.js +3 -4
  66. package/utils/focusTrap.js +4 -5
  67. package/utils/history.js +13 -20
  68. package/utils/index.d.ts +2 -1
  69. package/utils/index.js +2 -2
  70. package/utils/keyCodes.js +1 -2
  71. package/utils/math/clamp.js +1 -2
  72. package/utils/math/clamp01.js +1 -2
  73. package/utils/math/damp.js +1 -2
  74. package/utils/math/index.js +1 -2
  75. package/utils/math/inertiaFinalValue.js +1 -2
  76. package/utils/math/lerp.js +1 -2
  77. package/utils/math/map.js +1 -2
  78. package/utils/math/round.js +1 -2
  79. package/utils/memoize.d.ts +30 -0
  80. package/utils/memoize.js +30 -0
  81. package/utils/nextFrame.js +4 -9
  82. package/utils/object/autoBind.js +11 -19
  83. package/utils/object/getAllProperties.js +3 -11
  84. package/utils/object/index.js +1 -2
  85. package/utils/object/isObject.js +2 -4
  86. package/utils/string/index.js +1 -2
  87. package/utils/string/withLeadingCharacters.js +1 -2
  88. package/utils/string/withLeadingSlash.js +1 -2
  89. package/utils/string/withTrailingCharacters.js +1 -2
  90. package/utils/string/withTrailingSlash.js +1 -2
  91. package/utils/string/withoutLeadingCharacters.js +1 -2
  92. package/utils/string/withoutLeadingCharactersRecursive.js +1 -2
  93. package/utils/string/withoutLeadingSlash.js +1 -2
  94. package/utils/string/withoutTrailingCharacters.js +1 -2
  95. package/utils/string/withoutTrailingCharactersRecursive.js +1 -2
  96. package/utils/string/withoutTrailingSlash.js +1 -2
  97. package/utils/throttle.js +2 -3
  98. package/Base/index.js.map +0 -1
  99. package/Base/managers/ChildrenManager.js.map +0 -1
  100. package/Base/managers/EventsManager.js.map +0 -1
  101. package/Base/managers/OptionsManager.js.map +0 -1
  102. package/Base/managers/RefsManager.js.map +0 -1
  103. package/Base/managers/ServicesManager.js.map +0 -1
  104. package/Base/utils.js.map +0 -1
  105. package/components/Accordion/Accordion.d.ts +0 -83
  106. package/components/Accordion/Accordion.js +0 -121
  107. package/components/Accordion/Accordion.js.map +0 -1
  108. package/components/Accordion/AccordionItem.d.ts +0 -122
  109. package/components/Accordion/AccordionItem.js +0 -327
  110. package/components/Accordion/AccordionItem.js.map +0 -1
  111. package/components/Accordion/index.d.ts +0 -27
  112. package/components/Accordion/index.js +0 -39
  113. package/components/Accordion/index.js.map +0 -1
  114. package/components/Cursor.d.ts +0 -138
  115. package/components/Cursor.js +0 -167
  116. package/components/Cursor.js.map +0 -1
  117. package/components/Draggable.d.ts +0 -49
  118. package/components/Draggable.js +0 -77
  119. package/components/Draggable.js.map +0 -1
  120. package/components/Modal.d.ts +0 -158
  121. package/components/Modal.js +0 -270
  122. package/components/Modal.js.map +0 -1
  123. package/components/Tabs.d.ts +0 -108
  124. package/components/Tabs.js +0 -195
  125. package/components/Tabs.js.map +0 -1
  126. package/components/index.d.ts +0 -6
  127. package/components/index.js +0 -7
  128. package/components/index.js.map +0 -1
  129. package/decorators/index.js.map +0 -1
  130. package/decorators/withBreakpointManager.js.map +0 -1
  131. package/decorators/withBreakpointObserver.js.map +0 -1
  132. package/decorators/withDrag.js.map +0 -1
  133. package/decorators/withExtraConfig.js.map +0 -1
  134. package/decorators/withIntersectionObserver.js.map +0 -1
  135. package/decorators/withMountWhenInView.js.map +0 -1
  136. package/helpers/createApp.js.map +0 -1
  137. package/helpers/createBase.d.ts +0 -7
  138. package/helpers/createBase.js +0 -7
  139. package/helpers/createBase.js.map +0 -1
  140. package/helpers/defineComponent.d.ts +0 -11
  141. package/helpers/defineComponent.js +0 -68
  142. package/helpers/defineComponent.js.map +0 -1
  143. package/helpers/importOnInteraction.js.map +0 -1
  144. package/helpers/importWhenIdle.js.map +0 -1
  145. package/helpers/importWhenVisible.js.map +0 -1
  146. package/helpers/index.js.map +0 -1
  147. package/helpers/utils.js.map +0 -1
  148. package/index.js.map +0 -1
  149. package/index.modern.js.map +0 -1
  150. package/index.umd.js.map +0 -1
  151. package/services/Service.js.map +0 -1
  152. package/services/drag.js.map +0 -1
  153. package/services/index.js.map +0 -1
  154. package/services/key.js.map +0 -1
  155. package/services/load.js.map +0 -1
  156. package/services/pointer.js.map +0 -1
  157. package/services/raf.js.map +0 -1
  158. package/services/resize.js.map +0 -1
  159. package/services/scroll.js.map +0 -1
  160. package/utils/collide/boundingRectToCircle.js.map +0 -1
  161. package/utils/collide/collideCircleCircle.js.map +0 -1
  162. package/utils/collide/collideCircleRect.js.map +0 -1
  163. package/utils/collide/collidePointCircle.js.map +0 -1
  164. package/utils/collide/collidePointRect.js.map +0 -1
  165. package/utils/collide/collideRectRect.js.map +0 -1
  166. package/utils/collide/index.js.map +0 -1
  167. package/utils/css/classes.js.map +0 -1
  168. package/utils/css/index.js.map +0 -1
  169. package/utils/css/matrix.js.map +0 -1
  170. package/utils/css/styles.js.map +0 -1
  171. package/utils/css/transition.js.map +0 -1
  172. package/utils/debounce.js.map +0 -1
  173. package/utils/focusTrap.js.map +0 -1
  174. package/utils/history.js.map +0 -1
  175. package/utils/index.js.map +0 -1
  176. package/utils/keyCodes.js.map +0 -1
  177. package/utils/math/clamp.js.map +0 -1
  178. package/utils/math/clamp01.js.map +0 -1
  179. package/utils/math/damp.js.map +0 -1
  180. package/utils/math/index.js.map +0 -1
  181. package/utils/math/inertiaFinalValue.js.map +0 -1
  182. package/utils/math/lerp.js.map +0 -1
  183. package/utils/math/map.js.map +0 -1
  184. package/utils/math/round.js.map +0 -1
  185. package/utils/nextFrame.js.map +0 -1
  186. package/utils/object/autoBind.js.map +0 -1
  187. package/utils/object/getAllProperties.js.map +0 -1
  188. package/utils/object/index.js.map +0 -1
  189. package/utils/object/isObject.js.map +0 -1
  190. package/utils/string/index.js.map +0 -1
  191. package/utils/string/withLeadingCharacters.js.map +0 -1
  192. package/utils/string/withLeadingSlash.js.map +0 -1
  193. package/utils/string/withTrailingCharacters.js.map +0 -1
  194. package/utils/string/withTrailingSlash.js.map +0 -1
  195. package/utils/string/withoutLeadingCharacters.js.map +0 -1
  196. package/utils/string/withoutLeadingCharactersRecursive.js.map +0 -1
  197. package/utils/string/withoutLeadingSlash.js.map +0 -1
  198. package/utils/string/withoutTrailingCharacters.js.map +0 -1
  199. package/utils/string/withoutTrailingCharactersRecursive.js.map +0 -1
  200. package/utils/string/withoutTrailingSlash.js.map +0 -1
  201. package/utils/throttle.js.map +0 -1
@@ -1,13 +1,11 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/createClass";
4
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
2
  import { getComponentElements } from '../utils.js';
3
+ export default class ChildrenManager {
4
+ get registeredNames() {
5
+ return Object.keys(this).filter(key => !key.startsWith('__'));
6
+ }
6
7
 
7
- var ChildrenManager = function () {
8
- function ChildrenManager(base, element, components, eventsManager) {
9
- _classCallCheck(this, ChildrenManager);
10
-
8
+ constructor(base, element, components, eventsManager) {
11
9
  _defineProperty(this, "__base", void 0);
12
10
 
13
11
  _defineProperty(this, "__element", void 0);
@@ -16,133 +14,111 @@ var ChildrenManager = function () {
16
14
 
17
15
  _defineProperty(this, "__eventsManager", void 0);
18
16
 
19
- this.__base = base;
20
- this.__element = element;
21
- this.__components = components;
22
- this.__eventsManager = eventsManager;
17
+ Object.defineProperties(this, {
18
+ __base: {
19
+ enumerable: false,
20
+ writable: false,
21
+ value: base
22
+ },
23
+ __element: {
24
+ enumerable: false,
25
+ writable: false,
26
+ value: element
27
+ },
28
+ __components: {
29
+ enumerable: false,
30
+ writable: false,
31
+ value: components
32
+ },
33
+ __eventsManager: {
34
+ enumerable: false,
35
+ writable: false,
36
+ value: eventsManager
37
+ }
38
+ });
23
39
  }
24
40
 
25
- _createClass(ChildrenManager, [{
26
- key: "registeredNames",
27
- get: function get() {
28
- return Object.keys(this).filter(function (key) {
29
- return !key.startsWith('__');
30
- });
31
- }
32
- }, {
33
- key: "registerAll",
34
- value: function registerAll() {
35
- var _this = this;
41
+ registerAll() {
42
+ Object.entries(this.__components).forEach(_ref => {
43
+ var [name, component] = _ref;
44
+ return this.__register(name, component);
45
+ });
46
+ }
36
47
 
37
- Object.entries(this.__components).forEach(function (_ref) {
38
- var _ref2 = _slicedToArray(_ref, 2),
39
- name = _ref2[0],
40
- component = _ref2[1];
48
+ __register(name, component) {
49
+ Object.defineProperty(this, name, {
50
+ enumerable: true,
51
+ configurable: true,
52
+ get: () => {
53
+ var elements = getComponentElements(name, this.__element);
41
54
 
42
- return _this.__register(name, component);
43
- });
44
- }
45
- }, {
46
- key: "__register",
47
- value: function __register(name, component) {
48
- var _this2 = this;
49
-
50
- Object.defineProperty(this, name, {
51
- enumerable: true,
52
- configurable: true,
53
- get: function get() {
54
- var elements = getComponentElements(name, _this2.__element);
55
-
56
- if (elements.length === 0) {
57
- return [];
58
- }
59
-
60
- return elements.map(function (element) {
61
- return _this2.__getChild(element, component, name);
62
- }).filter(function (instance) {
63
- return instance !== 'terminated';
64
- });
55
+ if (elements.length === 0) {
56
+ return [];
65
57
  }
66
- });
67
- }
68
- }, {
69
- key: "__getChild",
70
- value: function __getChild(el, ComponentClass, name) {
71
- var _this3 = this;
72
-
73
- if (el.__base__) {
74
- return el.__base__;
75
- }
76
58
 
77
- if ('$isBase' in ComponentClass) {
78
- var child = new ComponentClass(el);
79
- Object.defineProperty(child, '$parent', {
80
- get: function get() {
81
- return _this3.__base;
82
- }
83
- });
84
- return child;
59
+ return elements.map(element => this.__getChild(element, component, name)).filter(instance => instance !== 'terminated');
85
60
  }
61
+ });
62
+ }
86
63
 
87
- return ComponentClass(this.__base).then(function (module) {
88
- var _module$default;
64
+ __getChild(el, ComponentClass, name) {
65
+ if (el.__base__) {
66
+ return el.__base__;
67
+ }
89
68
 
90
- return _this3.__getChild(el, (_module$default = module.default) !== null && _module$default !== void 0 ? _module$default : module, name);
69
+ if ('$isBase' in ComponentClass) {
70
+ var child = new ComponentClass(el);
71
+ Object.defineProperty(child, '$parent', {
72
+ get: () => this.__base
91
73
  });
74
+ return child;
92
75
  }
93
- }, {
94
- key: "mountAll",
95
- value: function mountAll() {
96
- this.__triggerHookForAll('$mount');
97
- }
98
- }, {
99
- key: "updateAll",
100
- value: function updateAll() {
101
- this.__triggerHookForAll('$update');
102
- }
103
- }, {
104
- key: "destroyAll",
105
- value: function destroyAll() {
106
- this.__triggerHookForAll('$destroy');
107
- }
108
- }, {
109
- key: "__triggerHookForAll",
110
- value: function __triggerHookForAll(hook) {
111
- var _this4 = this;
112
-
113
- this.registeredNames.forEach(function (name) {
114
- _this4[name].forEach(function (instance) {
115
- if (instance instanceof Promise) {
116
- instance.then(function (resolvedInstance) {
117
- return _this4.__triggerHook(hook, resolvedInstance, name);
118
- });
119
- } else {
120
- _this4.__triggerHook(hook, instance, name);
121
- }
122
- });
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);
81
+ });
82
+ }
83
+
84
+ mountAll() {
85
+ this.__triggerHookForAll('$mount');
86
+ }
87
+
88
+ updateAll() {
89
+ this.__triggerHookForAll('$update');
90
+ }
91
+
92
+ destroyAll() {
93
+ this.__triggerHookForAll('$destroy');
94
+ }
95
+
96
+ __triggerHookForAll(hook) {
97
+ this.registeredNames.forEach(name => {
98
+ this[name].forEach(instance => {
99
+ if (instance instanceof Promise) {
100
+ instance.then(resolvedInstance => this.__triggerHook(hook, resolvedInstance, name));
101
+ } else {
102
+ this.__triggerHook(hook, instance, name);
103
+ }
123
104
  });
124
- }
125
- }, {
126
- key: "__triggerHook",
127
- value: function __triggerHook(hook, instance, name) {
128
- if (hook === '$update' && !instance.$isMounted) {
129
- hook = '$mount';
130
- }
105
+ });
106
+ }
131
107
 
132
- if (hook === '$update' || hook === '$destroy') {
133
- this.__eventsManager.unbindChild(name, instance);
134
- }
108
+ __triggerHook(hook, instance, name) {
109
+ if (hook === '$update' && !instance.$isMounted) {
110
+ hook = '$mount';
111
+ }
135
112
 
136
- if (hook === '$update' || hook === '$mount') {
137
- this.__eventsManager.bindChild(name, instance);
138
- }
113
+ if (hook === '$update' || hook === '$destroy') {
114
+ this.__eventsManager.unbindChild(name, instance);
115
+ }
139
116
 
140
- instance[hook]();
117
+ if (hook === '$update' || hook === '$mount') {
118
+ this.__eventsManager.bindChild(name, instance);
141
119
  }
142
- }]);
143
120
 
144
- return ChildrenManager;
145
- }();
121
+ instance[hook]();
122
+ }
146
123
 
147
- export { ChildrenManager as default };
148
- //# sourceMappingURL=ChildrenManager.js.map
124
+ }
@@ -10,15 +10,15 @@ export default class EventsManager {
10
10
  * Normalize the given name to PascalCase, such as:
11
11
  *
12
12
  * ```
13
- * sentence case => SentenceCase
14
- * lowercase => Lowercase
15
- * UPPERCASE => Uppercase
16
- * kebab-case => KebabCase
17
- * snake_case => SnakeCase
18
- * camelCase => CamelCase
19
- * PascalCase => PascalCase
20
- * .class-selector => ClassSelector
21
- * .bem__selector => BemSelector
13
+ * sentence case => SentenceCase
14
+ * lowercase => Lowercase
15
+ * UPPERCASE => Uppercase
16
+ * kebab-case => KebabCase
17
+ * snake_case => SnakeCase
18
+ * camelCase => CamelCase
19
+ * PascalCase => PascalCase
20
+ * .class-selector => ClassSelector
21
+ * .bem__selector => BemSelector
22
22
  * __id-selector => IdSelector
23
23
  * .complex[class^ ="__"] => ComplexClass
24
24
  * ```
@@ -1,61 +1,47 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/createClass";
5
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
2
  import getAllProperties from '../../utils/object/getAllProperties.js';
7
3
  import RefsManager from './RefsManager.js';
8
-
9
- var EventsManager = function () {
10
- function EventsManager(rootElement, base) {
11
- var _this = this;
12
-
13
- _classCallCheck(this, EventsManager);
14
-
4
+ export default class EventsManager {
5
+ constructor(rootElement, base) {
15
6
  _defineProperty(this, "__rootElement", void 0);
16
7
 
17
8
  _defineProperty(this, "__base", void 0);
18
9
 
19
- _defineProperty(this, "__methodsCache", new WeakMap());
10
+ _defineProperty(this, "__methodsCache", new Map());
20
11
 
21
12
  _defineProperty(this, "__rootElementHandler", {
22
- handleEvent: function handleEvent(event) {
13
+ handleEvent: event => {
23
14
  var normalizedEventName = EventsManager.normalizeName(event.type);
24
15
  var method = "on".concat(normalizedEventName);
25
16
 
26
- if (typeof _this.__base[method] === 'function') {
27
- _this.__base[method](event);
28
- }
17
+ this.__base[method](event);
29
18
  }
30
19
  });
31
20
 
32
21
  _defineProperty(this, "__refsHandler", {
33
- handleEvent: function handleEvent(event) {
22
+ handleEvent: event => {
34
23
  var ref = event.currentTarget;
35
24
  var refName = RefsManager.normalizeRefName(ref.dataset.ref);
36
25
  var normalizedRefName = EventsManager.normalizeName(refName);
37
26
  var normalizedEventName = EventsManager.normalizeName(event.type);
38
27
  var method = "on".concat(normalizedRefName).concat(normalizedEventName);
28
+ var index = 0;
39
29
 
40
- if (typeof _this.__base[method] === 'function') {
41
- var index = 0;
42
-
43
- if (Array.isArray(_this.__base.$refs[refName])) {
44
- index = _this.__base.$refs[refName].indexOf(ref);
45
- }
46
-
47
- _this.__base[method](event, index);
30
+ if (Array.isArray(this.__base.$refs[refName])) {
31
+ index = this.__base.$refs[refName].indexOf(ref);
48
32
  }
33
+
34
+ this.__base[method](event, index);
49
35
  }
50
36
  });
51
37
 
52
38
  _defineProperty(this, "__childrenHandler", {
53
- handleEvent: function handleEvent(event) {
39
+ handleEvent: event => {
54
40
  var child = event.currentTarget.__base__;
55
41
  var childName;
56
42
  var index = 0;
57
- var childrenManager = _this.__base.$children;
58
- childrenManager.registeredNames.find(function (name) {
43
+ var childrenManager = this.__base.$children;
44
+ childrenManager.registeredNames.find(name => {
59
45
  if (childrenManager[name].includes(child)) {
60
46
  childName = name;
61
47
  index = childrenManager[name].indexOf(child);
@@ -67,162 +53,143 @@ var EventsManager = function () {
67
53
  var normalizedRefName = EventsManager.normalizeName(childName);
68
54
  var normalizedEventName = EventsManager.normalizeName(event.type);
69
55
  var method = "on".concat(normalizedRefName).concat(normalizedEventName);
56
+ var args = Array.isArray(event.detail) ? event.detail : [];
70
57
 
71
- if (typeof _this.__base[method] === 'function') {
72
- var _event$detail, _this$__base;
73
-
74
- var args = (_event$detail = event.detail) !== null && _event$detail !== void 0 ? _event$detail : [];
58
+ this.__base[method](...args, index, event);
59
+ }
60
+ });
75
61
 
76
- (_this$__base = _this.__base)[method].apply(_this$__base, _toConsumableArray(args).concat([index, event]));
77
- }
62
+ Object.defineProperties(this, {
63
+ __rootElement: {
64
+ enumerable: false,
65
+ writable: false,
66
+ value: rootElement
67
+ },
68
+ __base: {
69
+ enumerable: false,
70
+ writable: false,
71
+ value: base
72
+ },
73
+ __methodsCache: {
74
+ enumerable: false,
75
+ writable: false,
76
+ value: this.__methodsCache
77
+ },
78
+ __rootElementHandler: {
79
+ enumerable: false,
80
+ writable: false,
81
+ value: this.__rootElementHandler
82
+ },
83
+ __refsHandler: {
84
+ enumerable: false,
85
+ writable: false,
86
+ value: this.__refsHandler
87
+ },
88
+ __childrenHandler: {
89
+ enumerable: false,
90
+ writable: false,
91
+ value: this.__childrenHandler
78
92
  }
79
93
  });
94
+ }
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);
80
104
 
81
- this.__rootElement = rootElement;
82
- this.__base = base;
105
+ elements.forEach(element => element[action](event, this.__refsHandler));
106
+ });
83
107
  }
84
108
 
85
- _createClass(EventsManager, [{
86
- key: "__manageRef",
87
- value: function __manageRef(name, elements) {
88
- var _this2 = this;
109
+ bindRef(name, elements) {
110
+ this.__manageRef(name, elements);
111
+ }
89
112
 
90
- var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'add';
91
- var action = "".concat(mode, "EventListener");
113
+ unbindRef(name, elements) {
114
+ this.__manageRef(name, elements, 'remove');
115
+ }
92
116
 
93
- var methods = this.__getEventMethodsByName(name);
117
+ __manageChild(name, instance) {
118
+ var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'add';
119
+ var action = mode === 'add' ? '$on' : '$off';
94
120
 
95
- methods.forEach(function (method) {
96
- var event = _this2.__getEventNameByMethod(method, name);
121
+ var methods = this.__getEventMethodsByName(name);
97
122
 
98
- elements.forEach(function (element) {
99
- return element[action](event, _this2.__refsHandler);
100
- });
101
- });
102
- }
103
- }, {
104
- key: "bindRef",
105
- value: function bindRef(name, elements) {
106
- this.__manageRef(name, elements);
107
- }
108
- }, {
109
- key: "unbindRef",
110
- value: function unbindRef(name, elements) {
111
- this.__manageRef(name, elements, 'remove');
112
- }
113
- }, {
114
- key: "__manageChild",
115
- value: function __manageChild(name, instance) {
116
- var _this3 = this;
123
+ methods.forEach(method => {
124
+ var event = this.__getEventNameByMethod(method, name);
125
+
126
+ instance[action](event, this.__childrenHandler);
127
+ });
128
+ }
117
129
 
118
- var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'add';
119
- var action = mode === 'add' ? '$on' : '$off';
130
+ bindChild(name, instance) {
131
+ this.__manageChild(name, instance);
132
+ }
120
133
 
121
- var methods = this.__getEventMethodsByName(name);
134
+ unbindChild(name, instance) {
135
+ this.__manageChild(name, instance, 'remove');
136
+ }
122
137
 
123
- methods.forEach(function (method) {
124
- var event = _this3.__getEventNameByMethod(method, name);
138
+ __manageRootElement() {
139
+ var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'add';
140
+ var modeMethod = "".concat(mode, "EventListener");
125
141
 
126
- instance[action](event, _this3.__childrenHandler);
127
- });
128
- }
129
- }, {
130
- key: "bindChild",
131
- value: function bindChild(name, instance) {
132
- this.__manageChild(name, instance);
133
- }
134
- }, {
135
- key: "unbindChild",
136
- value: function unbindChild(name, instance) {
137
- this.__manageChild(name, instance, 'remove');
138
- }
139
- }, {
140
- key: "__manageRootElement",
141
- value: function __manageRootElement() {
142
- var _this4 = this;
142
+ var methods = this.__getEventMethodsByName();
143
143
 
144
- var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'add';
145
- var modeMethod = "".concat(mode, "EventListener");
144
+ methods.forEach(method => {
145
+ var event = this.__getEventNameByMethod(method);
146
146
 
147
- var methods = this.__getEventMethodsByName();
147
+ this.__rootElement[modeMethod](event, this.__rootElementHandler);
148
+ });
149
+ }
148
150
 
149
- methods.forEach(function (method) {
150
- var event = _this4.__getEventNameByMethod(method);
151
+ bindRootElement() {
152
+ this.__manageRootElement();
153
+ }
151
154
 
152
- _this4.__rootElement[modeMethod](event, _this4.__rootElementHandler);
153
- });
154
- }
155
- }, {
156
- key: "bindRootElement",
157
- value: function bindRootElement() {
158
- this.__manageRootElement();
159
- }
160
- }, {
161
- key: "unbindRootElement",
162
- value: function unbindRootElement() {
163
- this.__manageRootElement('remove');
164
- }
165
- }, {
166
- key: "__getEventNameByMethod",
167
- value: function __getEventNameByMethod(method) {
168
- var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
169
- var normalizedName = EventsManager.normalizeName(name);
170
- var regex = new RegExp("^on".concat(normalizedName, "([A-Z].*)$"));
171
-
172
- var _method$match = method.match(regex),
173
- _method$match2 = _slicedToArray(_method$match, 2),
174
- event = _method$match2[1];
175
-
176
- return EventsManager.normalizeEventName(event);
177
- }
178
- }, {
179
- key: "__getEventMethodsByName",
180
- value: function __getEventMethodsByName() {
181
- var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
182
- var normalizedName = EventsManager.normalizeName(name);
183
- var regex = new RegExp("^on".concat(normalizedName, "[A-Z].*$"));
184
-
185
- var methods = this.__methodsCache.get(regex);
186
-
187
- if (!methods) {
188
- methods = getAllProperties(this.__base, [], function (method) {
189
- return regex.test(method);
190
- });
155
+ unbindRootElement() {
156
+ this.__manageRootElement('remove');
157
+ }
191
158
 
192
- this.__methodsCache.set(regex, methods);
193
- }
159
+ __getEventNameByMethod(method) {
160
+ var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
161
+ var normalizedName = EventsManager.normalizeName(name);
162
+ var regex = new RegExp("^on".concat(normalizedName, "([A-Z].*)$"));
163
+ var [, event] = method.match(regex);
164
+ return EventsManager.normalizeEventName(event);
165
+ }
194
166
 
195
- return methods.reduce(function (acc, _ref) {
196
- var _ref2 = _slicedToArray(_ref, 1),
197
- method = _ref2[0];
167
+ __getEventMethodsByName() {
168
+ var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
169
+ var normalizedName = EventsManager.normalizeName(name);
170
+ var regex = new RegExp("^on".concat(normalizedName, "[A-Z].*$"));
171
+ var key = regex.toString();
198
172
 
199
- if (!acc.includes(method)) {
200
- acc.push(method);
201
- }
173
+ var methods = this.__methodsCache.get(key);
202
174
 
203
- return acc;
204
- }, []);
205
- }
206
- }], [{
207
- key: "normalizeName",
208
- value: function normalizeName(name) {
209
- return name.replace(/[A-Z]([A-Z].*)/g, function (c) {
210
- return c.toLowerCase();
211
- }).replace(/[^a-zA-Z\d\s:]/g, ' ').replace(/(^\w|\s+\w)/g, function (c) {
212
- return c.trim().toUpperCase();
213
- }).trim();
214
- }
215
- }, {
216
- key: "normalizeEventName",
217
- value: function normalizeEventName(name) {
218
- return name.replace(/[A-Z]/g, function (c) {
219
- return "-".concat(c.toLowerCase());
220
- }).replace(/^-/, '');
175
+ if (!methods) {
176
+ methods = Array.from(getAllProperties(this.__base, [], method => regex.test(method)).reduce((set, _ref) => {
177
+ var [method] = _ref;
178
+ return set.add(method);
179
+ }, new Set()));
180
+
181
+ this.__methodsCache.set(key, methods);
221
182
  }
222
- }]);
223
183
 
224
- return EventsManager;
225
- }();
184
+ return methods;
185
+ }
186
+
187
+ static normalizeName(name) {
188
+ 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();
189
+ }
190
+
191
+ static normalizeEventName(name) {
192
+ return name.replace(/[A-Z]/g, c => "-".concat(c.toLowerCase())).replace(/^-/, '');
193
+ }
226
194
 
227
- export { EventsManager as default };
228
- //# sourceMappingURL=EventsManager.js.map
195
+ }