@studiometa/js-toolkit 2.0.0-alpha.4 → 2.0.0-alpha.8

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 (194) hide show
  1. package/Base/index.d.ts +29 -47
  2. package/Base/index.js +19 -14
  3. package/Base/managers/ChildrenManager.d.ts +6 -6
  4. package/Base/managers/ChildrenManager.js +1 -2
  5. package/Base/managers/EventsManager.d.ts +9 -9
  6. package/Base/managers/EventsManager.js +18 -33
  7. package/Base/managers/OptionsManager.d.ts +0 -8
  8. package/Base/managers/OptionsManager.js +1 -6
  9. package/Base/managers/RefsManager.js +1 -2
  10. package/Base/managers/ServicesManager.d.ts +14 -3
  11. package/Base/managers/ServicesManager.js +30 -12
  12. package/Base/utils.js +1 -2
  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 +1 -2
  17. package/decorators/withBreakpointObserver.d.ts +2 -2
  18. package/decorators/withBreakpointObserver.js +1 -2
  19. package/decorators/withDrag.d.ts +3 -3
  20. package/decorators/withDrag.js +1 -2
  21. package/decorators/withExtraConfig.d.ts +3 -3
  22. package/decorators/withExtraConfig.js +1 -2
  23. package/decorators/withIntersectionObserver.d.ts +2 -2
  24. package/decorators/withIntersectionObserver.js +1 -11
  25. package/decorators/withMountWhenInView.d.ts +3 -3
  26. package/decorators/withMountWhenInView.js +1 -2
  27. package/helpers/createApp.d.ts +3 -3
  28. package/helpers/createApp.js +9 -9
  29. package/helpers/importOnInteraction.d.ts +3 -3
  30. package/helpers/importOnInteraction.js +1 -2
  31. package/helpers/importWhenIdle.d.ts +3 -3
  32. package/helpers/importWhenIdle.js +1 -2
  33. package/helpers/importWhenVisible.d.ts +3 -3
  34. package/helpers/importWhenVisible.js +1 -2
  35. package/helpers/index.js +1 -2
  36. package/helpers/utils.js +1 -2
  37. package/index.d.ts +2 -2
  38. package/index.js +1 -2
  39. package/index.modern.js +1 -2
  40. package/index.umd.js +1 -2
  41. package/package.json +3 -4
  42. package/services/Service.js +1 -2
  43. package/services/drag.js +1 -2
  44. package/services/index.js +1 -2
  45. package/services/key.js +1 -2
  46. package/services/load.d.ts +1 -1
  47. package/services/load.js +2 -3
  48. package/services/pointer.js +1 -2
  49. package/services/raf.js +1 -2
  50. package/services/resize.js +1 -6
  51. package/services/scroll.js +1 -2
  52. package/utils/collide/boundingRectToCircle.js +1 -2
  53. package/utils/collide/collideCircleCircle.js +1 -2
  54. package/utils/collide/collideCircleRect.js +1 -2
  55. package/utils/collide/collidePointCircle.js +1 -2
  56. package/utils/collide/collidePointRect.js +1 -2
  57. package/utils/collide/collideRectRect.js +1 -2
  58. package/utils/collide/index.js +1 -2
  59. package/utils/css/classes.js +1 -2
  60. package/utils/css/index.js +1 -2
  61. package/utils/css/matrix.js +1 -2
  62. package/utils/css/styles.js +1 -2
  63. package/utils/css/transition.js +1 -2
  64. package/utils/debounce.js +1 -2
  65. package/utils/focusTrap.js +1 -2
  66. package/utils/history.js +2 -3
  67. package/utils/index.d.ts +2 -1
  68. package/utils/index.js +2 -2
  69. package/utils/keyCodes.js +1 -2
  70. package/utils/math/clamp.js +1 -2
  71. package/utils/math/clamp01.js +1 -2
  72. package/utils/math/damp.js +1 -2
  73. package/utils/math/index.js +1 -2
  74. package/utils/math/inertiaFinalValue.js +1 -2
  75. package/utils/math/lerp.js +1 -2
  76. package/utils/math/map.js +1 -2
  77. package/utils/math/round.js +1 -2
  78. package/utils/memoize.d.ts +30 -0
  79. package/utils/memoize.js +30 -0
  80. package/utils/nextFrame.js +1 -2
  81. package/utils/object/autoBind.js +1 -2
  82. package/utils/object/getAllProperties.js +1 -2
  83. package/utils/object/index.js +1 -2
  84. package/utils/object/isObject.js +1 -2
  85. package/utils/string/index.js +1 -2
  86. package/utils/string/withLeadingCharacters.js +1 -2
  87. package/utils/string/withLeadingSlash.js +1 -2
  88. package/utils/string/withTrailingCharacters.js +1 -2
  89. package/utils/string/withTrailingSlash.js +1 -2
  90. package/utils/string/withoutLeadingCharacters.js +1 -2
  91. package/utils/string/withoutLeadingCharactersRecursive.js +1 -2
  92. package/utils/string/withoutLeadingSlash.js +1 -2
  93. package/utils/string/withoutTrailingCharacters.js +1 -2
  94. package/utils/string/withoutTrailingCharactersRecursive.js +1 -2
  95. package/utils/string/withoutTrailingSlash.js +1 -2
  96. package/utils/throttle.js +1 -2
  97. package/Base/index.js.map +0 -1
  98. package/Base/managers/ChildrenManager.js.map +0 -1
  99. package/Base/managers/EventsManager.js.map +0 -1
  100. package/Base/managers/OptionsManager.js.map +0 -1
  101. package/Base/managers/RefsManager.js.map +0 -1
  102. package/Base/managers/ServicesManager.js.map +0 -1
  103. package/Base/utils.js.map +0 -1
  104. package/components/Accordion/Accordion.d.ts +0 -83
  105. package/components/Accordion/Accordion.js +0 -58
  106. package/components/Accordion/Accordion.js.map +0 -1
  107. package/components/Accordion/AccordionItem.d.ts +0 -122
  108. package/components/Accordion/AccordionItem.js +0 -244
  109. package/components/Accordion/AccordionItem.js.map +0 -1
  110. package/components/Accordion/index.d.ts +0 -27
  111. package/components/Accordion/index.js +0 -19
  112. package/components/Accordion/index.js.map +0 -1
  113. package/components/Cursor.d.ts +0 -138
  114. package/components/Cursor.js +0 -136
  115. package/components/Cursor.js.map +0 -1
  116. package/components/Draggable.d.ts +0 -49
  117. package/components/Draggable.js +0 -43
  118. package/components/Draggable.js.map +0 -1
  119. package/components/Modal.d.ts +0 -158
  120. package/components/Modal.js +0 -186
  121. package/components/Modal.js.map +0 -1
  122. package/components/Tabs.d.ts +0 -108
  123. package/components/Tabs.js +0 -120
  124. package/components/Tabs.js.map +0 -1
  125. package/components/index.d.ts +0 -6
  126. package/components/index.js +0 -7
  127. package/components/index.js.map +0 -1
  128. package/decorators/index.js.map +0 -1
  129. package/decorators/withBreakpointManager.js.map +0 -1
  130. package/decorators/withBreakpointObserver.js.map +0 -1
  131. package/decorators/withDrag.js.map +0 -1
  132. package/decorators/withExtraConfig.js.map +0 -1
  133. package/decorators/withIntersectionObserver.js.map +0 -1
  134. package/decorators/withMountWhenInView.js.map +0 -1
  135. package/helpers/createApp.js.map +0 -1
  136. package/helpers/importOnInteraction.js.map +0 -1
  137. package/helpers/importWhenIdle.js.map +0 -1
  138. package/helpers/importWhenVisible.js.map +0 -1
  139. package/helpers/index.js.map +0 -1
  140. package/helpers/utils.js.map +0 -1
  141. package/index.js.map +0 -1
  142. package/index.modern.js.map +0 -1
  143. package/index.umd.js.map +0 -1
  144. package/services/Service.js.map +0 -1
  145. package/services/drag.js.map +0 -1
  146. package/services/index.js.map +0 -1
  147. package/services/key.js.map +0 -1
  148. package/services/load.js.map +0 -1
  149. package/services/pointer.js.map +0 -1
  150. package/services/raf.js.map +0 -1
  151. package/services/resize.js.map +0 -1
  152. package/services/scroll.js.map +0 -1
  153. package/utils/collide/boundingRectToCircle.js.map +0 -1
  154. package/utils/collide/collideCircleCircle.js.map +0 -1
  155. package/utils/collide/collideCircleRect.js.map +0 -1
  156. package/utils/collide/collidePointCircle.js.map +0 -1
  157. package/utils/collide/collidePointRect.js.map +0 -1
  158. package/utils/collide/collideRectRect.js.map +0 -1
  159. package/utils/collide/index.js.map +0 -1
  160. package/utils/css/classes.js.map +0 -1
  161. package/utils/css/index.js.map +0 -1
  162. package/utils/css/matrix.js.map +0 -1
  163. package/utils/css/styles.js.map +0 -1
  164. package/utils/css/transition.js.map +0 -1
  165. package/utils/debounce.js.map +0 -1
  166. package/utils/focusTrap.js.map +0 -1
  167. package/utils/history.js.map +0 -1
  168. package/utils/index.js.map +0 -1
  169. package/utils/keyCodes.js.map +0 -1
  170. package/utils/math/clamp.js.map +0 -1
  171. package/utils/math/clamp01.js.map +0 -1
  172. package/utils/math/damp.js.map +0 -1
  173. package/utils/math/index.js.map +0 -1
  174. package/utils/math/inertiaFinalValue.js.map +0 -1
  175. package/utils/math/lerp.js.map +0 -1
  176. package/utils/math/map.js.map +0 -1
  177. package/utils/math/round.js.map +0 -1
  178. package/utils/nextFrame.js.map +0 -1
  179. package/utils/object/autoBind.js.map +0 -1
  180. package/utils/object/getAllProperties.js.map +0 -1
  181. package/utils/object/index.js.map +0 -1
  182. package/utils/object/isObject.js.map +0 -1
  183. package/utils/string/index.js.map +0 -1
  184. package/utils/string/withLeadingCharacters.js.map +0 -1
  185. package/utils/string/withLeadingSlash.js.map +0 -1
  186. package/utils/string/withTrailingCharacters.js.map +0 -1
  187. package/utils/string/withTrailingSlash.js.map +0 -1
  188. package/utils/string/withoutLeadingCharacters.js.map +0 -1
  189. package/utils/string/withoutLeadingCharactersRecursive.js.map +0 -1
  190. package/utils/string/withoutLeadingSlash.js.map +0 -1
  191. package/utils/string/withoutTrailingCharacters.js.map +0 -1
  192. package/utils/string/withoutTrailingCharactersRecursive.js.map +0 -1
  193. package/utils/string/withoutTrailingSlash.js.map +0 -1
  194. package/utils/throttle.js.map +0 -1
package/Base/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @typedef {typeof Base} BaseComponent
3
- * @typedef {(Base) => Promise<BaseComponent | { default: BaseComponent }>} BaseAsyncComponent
2
+ * @typedef {typeof Base} BaseConstructor
3
+ * @typedef {(Base) => Promise<BaseConstructor | { default: BaseConstructor }>} BaseAsyncConstructor
4
4
  * @typedef {OptionsManager & { [name:string]: any }} BaseOptions
5
5
  * @typedef {{ [name:string]: HTMLElement | HTMLElement[] }} BaseRefs
6
6
  * @typedef {{ [nameOrSelector:string]: Base[] | Promise<Base>[] }} BaseChildren
7
- * @typedef {{ [nameOrSelector:string]: BaseComponent | BaseAsyncComponent }} BaseConfigComponents
7
+ * @typedef {{ [nameOrSelector:string]: BaseConstructor | BaseAsyncConstructor }} BaseConfigComponents
8
8
  * @typedef {import('./managers/OptionsManager').OptionsSchema} BaseConfigOptions
9
9
  * @typedef {import('./managers/ServicesManager.js').ServiceName} ServiceName
10
10
  */
@@ -18,39 +18,15 @@
18
18
  * @property {BaseConfigOptions} [options]
19
19
  */
20
20
  /**
21
- * Base class to easily create components.
22
- *
23
- * @example
24
- * ```js
25
- * class Component extends Base {
26
- * static config = {
27
- * name: 'Component',
28
- * log: true,
29
- * };
30
- *
31
- * mounted() {
32
- * this.$log('Component is mounted!');
33
- * }
34
- * }
35
- *
36
- * class App extends Base {
37
- * static config = {
38
- * name: 'App',
39
- * components: {
40
- * Component,
41
- * },
42
- * };
43
- * }
44
- *
45
- * new App(document.body).$mount();
46
- * ```
21
+ * Base class.
47
22
  */
48
23
  export default class Base {
49
24
  /**
50
25
  * This is a Base instance.
51
26
  * @type {Boolean}
27
+ * @readonly
52
28
  */
53
- static $isBase: boolean;
29
+ static readonly $isBase: boolean;
54
30
  /**
55
31
  * @type {BaseConfig}
56
32
  */
@@ -89,10 +65,10 @@ export default class Base {
89
65
  */
90
66
  $isMounted: boolean;
91
67
  /**
92
- * Get properties to exclude from the autobind call.
93
- * @return {Array<String|RegExp>}
68
+ * Get the root instance of the app.
69
+ * @return {Base}
94
70
  */
95
- get __excludeFromAutoBind(): (string | RegExp)[];
71
+ get $root(): Base;
96
72
  /**
97
73
  * Merge configuration with the parents' configurations.
98
74
  *
@@ -102,41 +78,45 @@ export default class Base {
102
78
  private get __config();
103
79
  /**
104
80
  * @type {ServicesManager}
81
+ * @private
105
82
  */
106
- __services: ServicesManager;
83
+ private __services;
107
84
  /**
108
- * The instance services.
109
85
  * @type {ServicesManager}
110
86
  */
111
87
  get $services(): ServicesManager;
112
88
  /**
113
89
  * @type {RefsManager}
90
+ * @private
114
91
  */
115
- __refs: RefsManager;
92
+ private __refs;
116
93
  /**
117
94
  * @return {RefsManager}
118
95
  */
119
96
  get $refs(): RefsManager;
120
97
  /**
121
98
  * @type {BaseOptions}
99
+ * @private
122
100
  */
123
- __options: BaseOptions;
101
+ private __options;
124
102
  /**
125
103
  * @return {BaseOptions}
126
104
  */
127
105
  get $options(): BaseOptions;
128
106
  /**
129
107
  * @type {ChildrenManager}
108
+ * @private
130
109
  */
131
- __children: ChildrenManager;
110
+ private __children;
132
111
  /**
133
112
  * @return {ChildrenManager}
134
113
  */
135
114
  get $children(): ChildrenManager;
136
115
  /**
137
116
  * @type {EventsManager}
117
+ * @private
138
118
  */
139
- __events: EventsManager;
119
+ private __events;
140
120
  /**
141
121
  * Small helper to log stuff.
142
122
  *
@@ -151,16 +131,19 @@ export default class Base {
151
131
  get __debug(): (...args: any) => void;
152
132
  /**
153
133
  * Trigger the `mounted` callback.
134
+ * @return {this}
154
135
  */
155
- $mount(): Base;
136
+ $mount(): this;
156
137
  /**
157
138
  * Update the instance children.
139
+ * @return {this}
158
140
  */
159
- $update(): Base;
141
+ $update(): this;
160
142
  /**
161
143
  * Trigger the `destroyed` callback.
144
+ * @return {this}
162
145
  */
163
- $destroy(): Base;
146
+ $destroy(): this;
164
147
  /**
165
148
  * Terminate a child instance when it is not needed anymore.
166
149
  * @return {void}
@@ -202,9 +185,9 @@ export default class Base {
202
185
  */
203
186
  $emit(event: string, ...args: any[]): void;
204
187
  }
205
- export type BaseComponent = typeof Base;
206
- export type BaseAsyncComponent = (Base: any) => Promise<BaseComponent | {
207
- default: BaseComponent;
188
+ export type BaseConstructor = typeof Base;
189
+ export type BaseAsyncConstructor = (Base: any) => Promise<BaseConstructor | {
190
+ default: BaseConstructor;
208
191
  }>;
209
192
  export type BaseOptions = OptionsManager & {
210
193
  [name: string]: any;
@@ -216,7 +199,7 @@ export type BaseChildren = {
216
199
  [nameOrSelector: string]: Base[] | Promise<Base>[];
217
200
  };
218
201
  export type BaseConfigComponents = {
219
- [nameOrSelector: string]: typeof Base | BaseAsyncComponent;
202
+ [nameOrSelector: string]: typeof Base | BaseAsyncConstructor;
220
203
  };
221
204
  export type BaseConfigOptions = import('./managers/OptionsManager').OptionsSchema;
222
205
  export type ServiceName = import('./managers/ServicesManager.js').ServiceName;
@@ -231,5 +214,4 @@ export type BaseConfig = {
231
214
  import ServicesManager from "./managers/ServicesManager.js";
232
215
  import RefsManager from "./managers/RefsManager.js";
233
216
  import ChildrenManager from "./managers/ChildrenManager.js";
234
- import EventsManager from "./managers/EventsManager.js";
235
217
  import OptionsManager from "./managers/OptionsManager.js";
package/Base/index.js CHANGED
@@ -4,7 +4,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
4
4
 
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
6
 
7
- import autoBind from '../utils/object/autoBind.js';
8
7
  import { callMethod, getComponentElements } from './utils.js';
9
8
  import ChildrenManager from './managers/ChildrenManager.js';
10
9
  import RefsManager from './managers/RefsManager.js';
@@ -13,11 +12,26 @@ import EventsManager from './managers/EventsManager.js';
13
12
  import OptionsManager from './managers/OptionsManager.js';
14
13
  var id = 0;
15
14
 
16
- var noop = function noop() {};
15
+ function noop() {}
17
16
 
18
17
  export default class Base {
19
- get __excludeFromAutoBind() {
20
- return ['$mount', '$update', '$destroy', '$terminate', '$log', '$on', '$once', '$off', '$emit', 'mounted', 'loaded', 'ticked', 'resized', 'moved', 'keyed', 'scrolled', 'destroyed', 'terminated'];
18
+ get $root() {
19
+ if (!this.$parent) {
20
+ return this;
21
+ }
22
+
23
+ var parent = this.$parent;
24
+ var root = this.$parent;
25
+
26
+ while (parent) {
27
+ if (!parent.$parent) {
28
+ root = parent;
29
+ }
30
+
31
+ parent = parent.$parent;
32
+ }
33
+
34
+ return root;
21
35
  }
22
36
 
23
37
  get __config() {
@@ -58,13 +72,8 @@ export default class Base {
58
72
  }
59
73
 
60
74
  get $children() {
61
- this.__debug('before:getChildren', this.$el, this.__config.components);
62
-
63
75
  var children = this.__children;
64
76
  this.$emit('get:children', children);
65
-
66
- this.__debug(this, 'after:getChildren', children);
67
-
68
77
  return children;
69
78
  }
70
79
 
@@ -127,9 +136,6 @@ export default class Base {
127
136
  this.__events = new EventsManager(element, this);
128
137
  this.__children = new ChildrenManager(this, element, __config.components || {}, this.__events);
129
138
  this.__refs = new RefsManager(this, element, __config.refs || [], this.__events);
130
- autoBind(this, {
131
- exclude: [...this.__excludeFromAutoBind]
132
- });
133
139
 
134
140
  this.__debug('constructor', this);
135
141
 
@@ -228,5 +234,4 @@ export default class Base {
228
234
 
229
235
  _defineProperty(Base, "$isBase", true);
230
236
 
231
- _defineProperty(Base, "config", void 0);
232
- //# sourceMappingURL=index.js.map
237
+ _defineProperty(Base, "config", void 0);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @typedef {import('../index.js').default} Base
3
- * @typedef {import('../index.js').BaseComponent} BaseComponent
4
- * @typedef {import('../index.js').BaseAsyncComponent} BaseAsyncComponent
3
+ * @typedef {import('../index.js').BaseConstructor} BaseConstructor
4
+ * @typedef {import('../index.js').BaseAsyncConstructor} BaseAsyncConstructor
5
5
  * @typedef {import('../index.js').BaseConfigComponents} BaseConfigComponents
6
6
  * @typedef {import('./EventsManager.js').default} EventsManager
7
7
  */
@@ -53,7 +53,7 @@ export default class ChildrenManager {
53
53
  *
54
54
  * @param {string} name
55
55
  * The name of the child component.
56
- * @param {BaseComponent|BaseAsyncComponent} component
56
+ * @param {BaseConstructor|BaseAsyncConstructor} component
57
57
  * A Base class or a Promise for async components.
58
58
  * @private
59
59
  */
@@ -63,7 +63,7 @@ export default class ChildrenManager {
63
63
  *
64
64
  * @param {HTMLElement & { __base__?: Base | 'terminated' }} el
65
65
  * The root element of the child component.
66
- * @param {BaseComponent|BaseAsyncComponent} ComponentClass
66
+ * @param {BaseConstructor|BaseAsyncConstructor} ComponentClass
67
67
  * A Base class or a Promise for async components.
68
68
  * @param {string} name
69
69
  * The name of the child component.
@@ -102,7 +102,7 @@ export default class ChildrenManager {
102
102
  private __triggerHook;
103
103
  }
104
104
  export type Base = import('../index.js').default;
105
- export type BaseComponent = import('../index.js').BaseComponent;
106
- export type BaseAsyncComponent = import('../index.js').BaseAsyncComponent;
105
+ export type BaseConstructor = import('../index.js').BaseConstructor;
106
+ export type BaseAsyncConstructor = import('../index.js').BaseAsyncConstructor;
107
107
  export type BaseConfigComponents = import('../index.js').BaseConfigComponents;
108
108
  export type EventsManager = import('./EventsManager.js').default;
@@ -103,5 +103,4 @@ export default class ChildrenManager {
103
103
  instance[hook]();
104
104
  }
105
105
 
106
- }
107
- //# sourceMappingURL=ChildrenManager.js.map
106
+ }
@@ -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
  * ```
@@ -7,16 +7,14 @@ export default class EventsManager {
7
7
 
8
8
  _defineProperty(this, "__base", void 0);
9
9
 
10
- _defineProperty(this, "__methodsCache", new WeakMap());
10
+ _defineProperty(this, "__methodsCache", new Map());
11
11
 
12
12
  _defineProperty(this, "__rootElementHandler", {
13
13
  handleEvent: event => {
14
14
  var normalizedEventName = EventsManager.normalizeName(event.type);
15
15
  var method = "on".concat(normalizedEventName);
16
16
 
17
- if (typeof this.__base[method] === 'function') {
18
- this.__base[method](event);
19
- }
17
+ this.__base[method](event);
20
18
  }
21
19
  });
22
20
 
@@ -27,16 +25,13 @@ export default class EventsManager {
27
25
  var normalizedRefName = EventsManager.normalizeName(refName);
28
26
  var normalizedEventName = EventsManager.normalizeName(event.type);
29
27
  var method = "on".concat(normalizedRefName).concat(normalizedEventName);
28
+ var index = 0;
30
29
 
31
- if (typeof this.__base[method] === 'function') {
32
- var index = 0;
33
-
34
- if (Array.isArray(this.__base.$refs[refName])) {
35
- index = this.__base.$refs[refName].indexOf(ref);
36
- }
37
-
38
- this.__base[method](event, index);
30
+ if (Array.isArray(this.__base.$refs[refName])) {
31
+ index = this.__base.$refs[refName].indexOf(ref);
39
32
  }
33
+
34
+ this.__base[method](event, index);
40
35
  }
41
36
  });
42
37
 
@@ -58,14 +53,9 @@ export default class EventsManager {
58
53
  var normalizedRefName = EventsManager.normalizeName(childName);
59
54
  var normalizedEventName = EventsManager.normalizeName(event.type);
60
55
  var method = "on".concat(normalizedRefName).concat(normalizedEventName);
56
+ var args = Array.isArray(event.detail) ? event.detail : [];
61
57
 
62
- if (typeof this.__base[method] === 'function') {
63
- var _event$detail;
64
-
65
- var args = (_event$detail = event.detail) !== null && _event$detail !== void 0 ? _event$detail : [];
66
-
67
- this.__base[method](...args, index, event);
68
- }
58
+ this.__base[method](...args, index, event);
69
59
  }
70
60
  });
71
61
 
@@ -148,24 +138,20 @@ export default class EventsManager {
148
138
  var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
149
139
  var normalizedName = EventsManager.normalizeName(name);
150
140
  var regex = new RegExp("^on".concat(normalizedName, "[A-Z].*$"));
141
+ var key = regex.toString();
151
142
 
152
- var methods = this.__methodsCache.get(regex);
143
+ var methods = this.__methodsCache.get(key);
153
144
 
154
145
  if (!methods) {
155
- methods = getAllProperties(this.__base, [], method => regex.test(method));
146
+ methods = Array.from(getAllProperties(this.__base, [], method => regex.test(method)).reduce((set, _ref) => {
147
+ var [method] = _ref;
148
+ return set.add(method);
149
+ }, new Set()));
156
150
 
157
- this.__methodsCache.set(regex, methods);
151
+ this.__methodsCache.set(key, methods);
158
152
  }
159
153
 
160
- return methods.reduce((acc, _ref) => {
161
- var [method] = _ref;
162
-
163
- if (!acc.includes(method)) {
164
- acc.push(method);
165
- }
166
-
167
- return acc;
168
- }, []);
154
+ return methods;
169
155
  }
170
156
 
171
157
  static normalizeName(name) {
@@ -176,5 +162,4 @@ export default class EventsManager {
176
162
  return name.replace(/[A-Z]/g, c => "-".concat(c.toLowerCase())).replace(/^-/, '');
177
163
  }
178
164
 
179
- }
180
- //# sourceMappingURL=EventsManager.js.map
165
+ }
@@ -31,14 +31,6 @@ export default class OptionsManager {
31
31
  * @private
32
32
  */
33
33
  private static __getPropertyName;
34
- /**
35
- * Test if a value is primitive
36
- *
37
- * @param {any} value
38
- * @return {boolean}
39
- * @private
40
- */
41
- private static __isPrimitive;
42
34
  /**
43
35
  * Class constructor.
44
36
  *
@@ -157,13 +157,8 @@ export default class OptionsManager {
157
157
  return propertyName;
158
158
  }
159
159
 
160
- static __isPrimitive(value) {
161
- return typeof value === 'string' || typeof value === 'number' || typeof value === 'symbol' || typeof value === 'boolean';
162
- }
163
-
164
160
  }
165
161
 
166
162
  _defineProperty(OptionsManager, "types", [String, Number, Boolean, Array, Object]);
167
163
 
168
- _defineProperty(OptionsManager, "__propertyNameCache", new Map());
169
- //# sourceMappingURL=OptionsManager.js.map
164
+ _defineProperty(OptionsManager, "__propertyNameCache", new Map());
@@ -62,5 +62,4 @@ export default class RefsManager {
62
62
  return ancestor === null || ancestor === this.__element;
63
63
  }
64
64
 
65
- }
66
- //# sourceMappingURL=RefsManager.js.map
65
+ }
@@ -15,6 +15,14 @@ export default class ServicesManager {
15
15
  * @private
16
16
  */
17
17
  private __base;
18
+ /**
19
+ * @type {Record<string, () => ServiceInterface>}
20
+ */
21
+ __customServices: Record<string, () => ServiceInterface>;
22
+ /**
23
+ * @return {Record<string, () => ServiceInterface>}
24
+ */
25
+ get __services(): Record<string, () => ServiceInterface>;
18
26
  /**
19
27
  * Test if the given service is registered.
20
28
  *
@@ -51,14 +59,17 @@ export default class ServicesManager {
51
59
  /**
52
60
  * Register a new service to be enabled/disabled.
53
61
  *
54
- * @param {string} name The name of the service hook.
55
- * @param {() => ServiceInterface} useFunction The `use...` function for the service.
62
+ * @param {string} name
63
+ * The name of the service hook.
64
+ * @param {() => ServiceInterface} useFunction
65
+ * The `use...` function for the service.
56
66
  */
57
67
  register(name: string, useFunction: () => ServiceInterface): void;
58
68
  /**
59
69
  * Unregister a new service to be enabled disabled.
60
70
  *
61
- * @param {string} name The name of the service hooK
71
+ * @param {string} name
72
+ * The name of the service hook.
62
73
  */
63
74
  unregister(name: string): void;
64
75
  }
@@ -1,4 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
+
2
7
  import usePointer from '../../services/pointer.js';
3
8
  import useRaf from '../../services/raf.js';
4
9
  import useResize from '../../services/resize.js';
@@ -14,21 +19,29 @@ var SERVICES_MAP = {
14
19
  keyed: useKey,
15
20
  loaded: useLoad
16
21
  };
22
+ var SERVICE_NAMES = Object.keys(SERVICES_MAP);
17
23
  export default class ServicesManager {
24
+ get __services() {
25
+ return _objectSpread(_objectSpread({}, this.__customServices), SERVICES_MAP);
26
+ }
27
+
18
28
  constructor(instance) {
19
29
  _defineProperty(this, "__base", void 0);
20
30
 
31
+ _defineProperty(this, "__customServices", {});
32
+
21
33
  this.__base = instance;
22
34
  }
23
35
 
24
36
  has(service) {
25
- if (!hasMethod(this.__base, service) && !SERVICES_MAP[service]) {
37
+ if (!hasMethod(this.__base, service) && !this.__services[service]) {
26
38
  return false;
27
39
  }
28
40
 
29
41
  var {
30
42
  has
31
- } = SERVICES_MAP[service]();
43
+ } = this.__services[service]();
44
+
32
45
  return has(this.__base.$id);
33
46
  }
34
47
 
@@ -37,13 +50,14 @@ export default class ServicesManager {
37
50
  return this.disable.bind(this, service);
38
51
  }
39
52
 
40
- if (!hasMethod(this.__base, service) || !SERVICES_MAP[service]) {
53
+ if (!hasMethod(this.__base, service) || !this.__services[service]) {
41
54
  return function noop() {};
42
55
  }
43
56
 
44
57
  var {
45
58
  add
46
- } = SERVICES_MAP[service]();
59
+ } = this.__services[service]();
60
+
47
61
  var self = this;
48
62
 
49
63
  function serviceHandler() {
@@ -59,33 +73,37 @@ export default class ServicesManager {
59
73
  }
60
74
 
61
75
  enableAll() {
62
- return Object.keys(SERVICES_MAP).map(serviceName => this.enable(serviceName));
76
+ return Object.keys(this.__services).map(serviceName => this.enable(serviceName));
63
77
  }
64
78
 
65
79
  disableAll() {
66
- Object.keys(SERVICES_MAP).forEach(serviceName => {
80
+ Object.keys(this.__services).forEach(serviceName => {
67
81
  this.disable(serviceName);
68
82
  });
69
83
  }
70
84
 
71
85
  disable(service) {
72
- if (!SERVICES_MAP[service]) {
86
+ if (!this.__services[service]) {
73
87
  return;
74
88
  }
75
89
 
76
90
  var {
77
91
  remove
78
- } = SERVICES_MAP[service]();
92
+ } = this.__services[service]();
93
+
79
94
  remove(this.__base.$id);
80
95
  }
81
96
 
82
97
  register(name, useFunction) {
83
- SERVICES_MAP[name] = useFunction;
98
+ this.__customServices[name] = useFunction;
84
99
  }
85
100
 
86
101
  unregister(name) {
87
- delete SERVICES_MAP[name];
102
+ if (SERVICE_NAMES.includes(name)) {
103
+ throw new Error("[ServicesManager] The `".concat(name, "` core service can not be unregistered."));
104
+ }
105
+
106
+ delete this.__customServices[name];
88
107
  }
89
108
 
90
- }
91
- //# sourceMappingURL=ServicesManager.js.map
109
+ }
package/Base/utils.js CHANGED
@@ -40,5 +40,4 @@ export function getComponentElements(nameOrSelector) {
40
40
  }
41
41
 
42
42
  return elements;
43
- }
44
- //# sourceMappingURL=utils.js.map
43
+ }