@studiometa/js-toolkit 1.7.2 → 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 (237) hide show
  1. package/Base/index.d.ts +217 -0
  2. package/Base/index.js +237 -0
  3. package/Base/managers/ChildrenManager.d.ts +108 -0
  4. package/Base/managers/ChildrenManager.js +124 -0
  5. package/Base/managers/EventsManager.d.ts +190 -0
  6. package/Base/managers/EventsManager.js +195 -0
  7. package/Base/managers/OptionsManager.d.ts +120 -0
  8. package/Base/managers/OptionsManager.js +180 -0
  9. package/Base/managers/RefsManager.d.ts +84 -0
  10. package/Base/managers/RefsManager.js +83 -0
  11. package/{abstracts/Base/classes/Services.d.ts → Base/managers/ServicesManager.d.ts} +22 -7
  12. package/Base/managers/ServicesManager.js +115 -0
  13. package/{abstracts/Base → Base}/utils.d.ts +0 -30
  14. package/Base/utils.js +43 -0
  15. package/README.md +12 -70
  16. package/decorators/index.js +1 -2
  17. package/decorators/withBreakpointManager.d.ts +5 -5
  18. package/decorators/withBreakpointManager.js +41 -79
  19. package/decorators/withBreakpointObserver.d.ts +4 -4
  20. package/decorators/withBreakpointObserver.js +54 -77
  21. package/decorators/withDrag.d.ts +6 -6
  22. package/decorators/withDrag.js +17 -41
  23. package/decorators/withExtraConfig.d.ts +6 -6
  24. package/decorators/withExtraConfig.js +2 -24
  25. package/decorators/withIntersectionObserver.d.ts +4 -4
  26. package/decorators/withIntersectionObserver.js +17 -60
  27. package/decorators/withMountWhenInView.d.ts +8 -8
  28. package/decorators/withMountWhenInView.js +23 -51
  29. package/helpers/createApp.d.ts +4 -4
  30. package/helpers/createApp.js +10 -12
  31. package/helpers/importOnInteraction.d.ts +6 -6
  32. package/helpers/importOnInteraction.js +7 -8
  33. package/helpers/importWhenIdle.d.ts +4 -4
  34. package/helpers/importWhenIdle.js +7 -8
  35. package/helpers/importWhenVisible.d.ts +6 -6
  36. package/helpers/importWhenVisible.js +9 -16
  37. package/helpers/index.d.ts +1 -3
  38. package/helpers/index.js +1 -4
  39. package/helpers/utils.js +2 -3
  40. package/index.d.ts +19 -5
  41. package/index.js +5 -6
  42. package/index.modern.js +1 -3230
  43. package/index.umd.js +1 -3586
  44. package/package.json +3 -6
  45. package/{abstracts → services}/Service.d.ts +0 -0
  46. package/services/Service.js +63 -0
  47. package/services/drag.js +144 -180
  48. package/services/index.js +1 -2
  49. package/services/key.js +56 -98
  50. package/services/load.d.ts +1 -1
  51. package/services/load.js +22 -51
  52. package/services/pointer.js +118 -157
  53. package/services/raf.js +37 -65
  54. package/services/resize.js +46 -98
  55. package/services/scroll.js +81 -120
  56. package/utils/collide/boundingRectToCircle.js +7 -6
  57. package/utils/collide/collideCircleCircle.js +1 -2
  58. package/utils/collide/collideCircleRect.js +1 -2
  59. package/utils/collide/collidePointCircle.js +1 -2
  60. package/utils/collide/collidePointRect.js +1 -2
  61. package/utils/collide/collideRectRect.js +1 -2
  62. package/utils/collide/index.js +1 -2
  63. package/utils/css/classes.js +2 -3
  64. package/utils/css/index.js +1 -2
  65. package/utils/css/matrix.js +1 -2
  66. package/utils/css/styles.js +3 -8
  67. package/utils/css/transition.js +67 -140
  68. package/utils/debounce.js +3 -4
  69. package/utils/focusTrap.js +4 -5
  70. package/utils/history.js +12 -19
  71. package/utils/index.d.ts +2 -1
  72. package/utils/index.js +2 -2
  73. package/utils/keyCodes.js +1 -2
  74. package/utils/math/clamp.js +1 -2
  75. package/utils/math/clamp01.js +1 -2
  76. package/utils/math/damp.js +1 -2
  77. package/utils/math/index.js +1 -2
  78. package/utils/math/inertiaFinalValue.js +1 -2
  79. package/utils/math/lerp.js +1 -2
  80. package/utils/math/map.js +1 -2
  81. package/utils/math/round.js +1 -2
  82. package/utils/memoize.d.ts +30 -0
  83. package/utils/memoize.js +30 -0
  84. package/utils/nextFrame.js +4 -9
  85. package/utils/object/autoBind.js +11 -19
  86. package/utils/object/getAllProperties.d.ts +6 -3
  87. package/utils/object/getAllProperties.js +10 -8
  88. package/utils/object/index.js +1 -2
  89. package/utils/object/isObject.js +2 -4
  90. package/utils/string/index.js +1 -2
  91. package/utils/string/withLeadingCharacters.js +1 -2
  92. package/utils/string/withLeadingSlash.js +1 -2
  93. package/utils/string/withTrailingCharacters.js +1 -2
  94. package/utils/string/withTrailingSlash.js +1 -2
  95. package/utils/string/withoutLeadingCharacters.js +1 -2
  96. package/utils/string/withoutLeadingCharactersRecursive.js +1 -2
  97. package/utils/string/withoutLeadingSlash.js +1 -2
  98. package/utils/string/withoutTrailingCharacters.js +1 -2
  99. package/utils/string/withoutTrailingCharactersRecursive.js +1 -2
  100. package/utils/string/withoutTrailingSlash.js +1 -2
  101. package/utils/throttle.js +2 -3
  102. package/abstracts/Base/children.d.ts +0 -16
  103. package/abstracts/Base/children.js +0 -66
  104. package/abstracts/Base/children.js.map +0 -1
  105. package/abstracts/Base/classes/Options.d.ts +0 -37
  106. package/abstracts/Base/classes/Options.js +0 -182
  107. package/abstracts/Base/classes/Options.js.map +0 -1
  108. package/abstracts/Base/classes/Services.js +0 -120
  109. package/abstracts/Base/classes/Services.js.map +0 -1
  110. package/abstracts/Base/components.d.ts +0 -22
  111. package/abstracts/Base/components.js +0 -67
  112. package/abstracts/Base/components.js.map +0 -1
  113. package/abstracts/Base/events.d.ts +0 -8
  114. package/abstracts/Base/events.js +0 -185
  115. package/abstracts/Base/events.js.map +0 -1
  116. package/abstracts/Base/index.d.ts +0 -176
  117. package/abstracts/Base/index.js +0 -215
  118. package/abstracts/Base/index.js.map +0 -1
  119. package/abstracts/Base/options.d.ts +0 -17
  120. package/abstracts/Base/options.js +0 -112
  121. package/abstracts/Base/options.js.map +0 -1
  122. package/abstracts/Base/refs.d.ts +0 -30
  123. package/abstracts/Base/refs.js +0 -60
  124. package/abstracts/Base/refs.js.map +0 -1
  125. package/abstracts/Base/utils.js +0 -102
  126. package/abstracts/Base/utils.js.map +0 -1
  127. package/abstracts/EventManager.d.ts +0 -41
  128. package/abstracts/EventManager.js +0 -88
  129. package/abstracts/EventManager.js.map +0 -1
  130. package/abstracts/Service.js +0 -82
  131. package/abstracts/Service.js.map +0 -1
  132. package/abstracts/index.d.ts +0 -4
  133. package/abstracts/index.js +0 -5
  134. package/abstracts/index.js.map +0 -1
  135. package/components/Accordion/Accordion.d.ts +0 -83
  136. package/components/Accordion/Accordion.js +0 -121
  137. package/components/Accordion/Accordion.js.map +0 -1
  138. package/components/Accordion/AccordionItem.d.ts +0 -122
  139. package/components/Accordion/AccordionItem.js +0 -327
  140. package/components/Accordion/AccordionItem.js.map +0 -1
  141. package/components/Accordion/index.d.ts +0 -27
  142. package/components/Accordion/index.js +0 -39
  143. package/components/Accordion/index.js.map +0 -1
  144. package/components/Cursor.d.ts +0 -138
  145. package/components/Cursor.js +0 -167
  146. package/components/Cursor.js.map +0 -1
  147. package/components/Draggable.d.ts +0 -49
  148. package/components/Draggable.js +0 -77
  149. package/components/Draggable.js.map +0 -1
  150. package/components/Modal.d.ts +0 -158
  151. package/components/Modal.js +0 -270
  152. package/components/Modal.js.map +0 -1
  153. package/components/Tabs.d.ts +0 -108
  154. package/components/Tabs.js +0 -195
  155. package/components/Tabs.js.map +0 -1
  156. package/components/index.d.ts +0 -6
  157. package/components/index.js +0 -7
  158. package/components/index.js.map +0 -1
  159. package/decorators/index.js.map +0 -1
  160. package/decorators/withBreakpointManager.js.map +0 -1
  161. package/decorators/withBreakpointObserver.js.map +0 -1
  162. package/decorators/withDrag.js.map +0 -1
  163. package/decorators/withExtraConfig.js.map +0 -1
  164. package/decorators/withIntersectionObserver.js.map +0 -1
  165. package/decorators/withMountWhenInView.js.map +0 -1
  166. package/full.d.ts +0 -10
  167. package/full.js +0 -12
  168. package/full.js.map +0 -1
  169. package/full.modern.js +0 -7523
  170. package/full.modern.js.map +0 -1
  171. package/full.umd.js +0 -8277
  172. package/full.umd.js.map +0 -1
  173. package/helpers/createApp.js.map +0 -1
  174. package/helpers/createBase.d.ts +0 -7
  175. package/helpers/createBase.js +0 -7
  176. package/helpers/createBase.js.map +0 -1
  177. package/helpers/defineComponent.d.ts +0 -11
  178. package/helpers/defineComponent.js +0 -68
  179. package/helpers/defineComponent.js.map +0 -1
  180. package/helpers/importOnInteraction.js.map +0 -1
  181. package/helpers/importWhenIdle.js.map +0 -1
  182. package/helpers/importWhenVisible.js.map +0 -1
  183. package/helpers/index.js.map +0 -1
  184. package/helpers/utils.js.map +0 -1
  185. package/index.js.map +0 -1
  186. package/index.modern.js.map +0 -1
  187. package/index.umd.js.map +0 -1
  188. package/services/drag.js.map +0 -1
  189. package/services/index.js.map +0 -1
  190. package/services/key.js.map +0 -1
  191. package/services/load.js.map +0 -1
  192. package/services/pointer.js.map +0 -1
  193. package/services/raf.js.map +0 -1
  194. package/services/resize.js.map +0 -1
  195. package/services/scroll.js.map +0 -1
  196. package/utils/collide/boundingRectToCircle.js.map +0 -1
  197. package/utils/collide/collideCircleCircle.js.map +0 -1
  198. package/utils/collide/collideCircleRect.js.map +0 -1
  199. package/utils/collide/collidePointCircle.js.map +0 -1
  200. package/utils/collide/collidePointRect.js.map +0 -1
  201. package/utils/collide/collideRectRect.js.map +0 -1
  202. package/utils/collide/index.js.map +0 -1
  203. package/utils/css/classes.js.map +0 -1
  204. package/utils/css/index.js.map +0 -1
  205. package/utils/css/matrix.js.map +0 -1
  206. package/utils/css/styles.js.map +0 -1
  207. package/utils/css/transition.js.map +0 -1
  208. package/utils/debounce.js.map +0 -1
  209. package/utils/focusTrap.js.map +0 -1
  210. package/utils/history.js.map +0 -1
  211. package/utils/index.js.map +0 -1
  212. package/utils/keyCodes.js.map +0 -1
  213. package/utils/math/clamp.js.map +0 -1
  214. package/utils/math/clamp01.js.map +0 -1
  215. package/utils/math/damp.js.map +0 -1
  216. package/utils/math/index.js.map +0 -1
  217. package/utils/math/inertiaFinalValue.js.map +0 -1
  218. package/utils/math/lerp.js.map +0 -1
  219. package/utils/math/map.js.map +0 -1
  220. package/utils/math/round.js.map +0 -1
  221. package/utils/nextFrame.js.map +0 -1
  222. package/utils/object/autoBind.js.map +0 -1
  223. package/utils/object/getAllProperties.js.map +0 -1
  224. package/utils/object/index.js.map +0 -1
  225. package/utils/object/isObject.js.map +0 -1
  226. package/utils/string/index.js.map +0 -1
  227. package/utils/string/withLeadingCharacters.js.map +0 -1
  228. package/utils/string/withLeadingSlash.js.map +0 -1
  229. package/utils/string/withTrailingCharacters.js.map +0 -1
  230. package/utils/string/withTrailingSlash.js.map +0 -1
  231. package/utils/string/withoutLeadingCharacters.js.map +0 -1
  232. package/utils/string/withoutLeadingCharactersRecursive.js.map +0 -1
  233. package/utils/string/withoutLeadingSlash.js.map +0 -1
  234. package/utils/string/withoutTrailingCharacters.js.map +0 -1
  235. package/utils/string/withoutTrailingCharactersRecursive.js.map +0 -1
  236. package/utils/string/withoutTrailingSlash.js.map +0 -1
  237. package/utils/throttle.js.map +0 -1
@@ -1,112 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
-
4
- 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; }
5
-
6
- 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; }
7
-
8
- import Options from './classes/Options.js';
9
- import { warn } from './utils.js';
10
-
11
- function getLegacyOptionsSchema(instance, config) {
12
- var propsToExclude = ['name', 'log', 'debug', 'components', 'refs', 'options'];
13
- return Object.keys(config).reduce(function (schema, propName) {
14
- if (propsToExclude.includes(propName)) {
15
- return schema;
16
- }
17
-
18
- var value = config[propName];
19
- var type = value === null || value === undefined ? Object : value.constructor;
20
-
21
- if (!Options.types.includes(type)) {
22
- type = Object;
23
- }
24
-
25
- warn(instance, '\n Options must be defined in the `config.options` property.', "\n Consider moving the `config.".concat(propName, "` option to `config.options.").concat(propName, "`."));
26
-
27
- if (type === Array || type === Object) {
28
- schema[propName] = {
29
- type: type,
30
- default: function _default() {
31
- return value;
32
- }
33
- };
34
- } else {
35
- schema[propName] = {
36
- type: type,
37
- default: value
38
- };
39
- }
40
-
41
- return schema;
42
- }, {});
43
- }
44
-
45
- function getParentOptionsSchema(instance) {
46
- var schema = {};
47
- var prototype = instance;
48
-
49
- while (prototype) {
50
- var getterConfig = prototype.config;
51
- var staticConfig = prototype.constructor.config;
52
-
53
- if (getterConfig || staticConfig) {
54
- schema = Object.assign((getterConfig || {}).options || {}, (staticConfig || {}).options || {}, schema);
55
- prototype = Object.getPrototypeOf(prototype);
56
- } else {
57
- prototype = false;
58
- }
59
- }
60
-
61
- return schema;
62
- }
63
-
64
- function updateOptionsWithLegacyValues(instance, element, options) {
65
- var legacyOptionsValues = {};
66
-
67
- if (element.dataset.options) {
68
- warn(instance, 'The `data-options` attribute usage is deprecated, use multiple `data-option-...` attributes instead.');
69
-
70
- try {
71
- legacyOptionsValues = JSON.parse(element.dataset.options);
72
- } catch (err) {
73
- throw new Error('Can not parse the `data-options` attribute. Is it a valid JSON string?');
74
- }
75
- }
76
-
77
- Object.entries(legacyOptionsValues).forEach(function (_ref) {
78
- var _ref2 = _slicedToArray(_ref, 2),
79
- optionName = _ref2[0],
80
- optionValue = _ref2[1];
81
-
82
- options[optionName] = optionValue;
83
- });
84
- }
85
-
86
- export function getOptions(instance, element, config) {
87
- var _config$log, _config$debug;
88
-
89
- var schema = _objectSpread(_objectSpread(_objectSpread({
90
- name: {
91
- type: String,
92
- default: config.name
93
- },
94
- log: {
95
- type: Boolean,
96
- default: (_config$log = config.log) !== null && _config$log !== void 0 ? _config$log : false
97
- },
98
- debug: {
99
- type: Boolean,
100
- default: (_config$debug = config.debug) !== null && _config$debug !== void 0 ? _config$debug : false
101
- }
102
- }, getParentOptionsSchema(instance)), getLegacyOptionsSchema(instance, config)), config.options || {});
103
-
104
- var options = new Options(element, schema);
105
- updateOptionsWithLegacyValues(instance, element, options);
106
- instance.$emit('get:options', options);
107
- return options;
108
- }
109
- export default {
110
- getOptions: getOptions
111
- };
112
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/js-toolkit/abstracts/Base/options.js"],"names":["Options","warn","getLegacyOptionsSchema","instance","config","propsToExclude","Object","keys","reduce","schema","propName","includes","value","type","undefined","constructor","types","Array","default","getParentOptionsSchema","prototype","getterConfig","staticConfig","assign","options","getPrototypeOf","updateOptionsWithLegacyValues","element","legacyOptionsValues","dataset","JSON","parse","err","Error","entries","forEach","optionName","optionValue","getOptions","name","String","log","Boolean","debug","$emit"],"mappings":"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","sourcesContent":["import Options from './classes/Options.js';\nimport { warn } from './utils.js';\n\n/**\n * @typedef {import('./index.js').default} Base\n * @typedef {import('./index.js').BaseOptions} BaseOptions\n * @typedef {import('./classes/Options.js').OptionsSchema} OptionsSchema\n */\n\n/**\n * Get the legacy options from the `config` properties.\n *\n * @param {Base} instance The component's instance.\n * @param {Object} config The component's config.\n * @return {OptionsSchema}\n */\nfunction getLegacyOptionsSchema(instance, config) {\n // Add legacy options to the schema\n const propsToExclude = ['name', 'log', 'debug', 'components', 'refs', 'options'];\n return Object.keys(config).reduce(\n /**\n * @param {OptionsSchema} schema\n * @param {String} propName\n */\n (schema, propName) => {\n if (propsToExclude.includes(propName)) {\n return schema;\n }\n\n const value = config[propName];\n let type = value === null || value === undefined ? Object : value.constructor;\n\n // Default to object type as it should work for any values.\n if (!Options.types.includes(type)) {\n type = Object;\n }\n\n warn(\n instance,\n '\\n Options must be defined in the `config.options` property.',\n `\\n Consider moving the \\`config.${propName}\\` option to \\`config.options.${propName}\\`.`\n );\n\n if (type === Array || type === Object) {\n schema[propName] = { type, default: () => value };\n } else {\n schema[propName] = { type, default: value };\n }\n\n return schema;\n },\n {}\n );\n}\n\n/**\n * Get the inherited options values from the current instance parent classes.\n * @param {Base} instance The component's instance.\n * @return {OptionsSchema}\n */\nfunction getParentOptionsSchema(instance) {\n /** @type {OptionsSchema} [description] */\n let schema = {};\n\n /** @type {Base|false} Merge inherited options. */\n let prototype = instance;\n\n while (prototype) {\n const getterConfig = prototype.config;\n // @ts-ignore\n const staticConfig = prototype.constructor.config;\n if (getterConfig || staticConfig) {\n schema = Object.assign(\n (getterConfig || {}).options || {},\n (staticConfig || {}).options || {},\n schema\n );\n prototype = Object.getPrototypeOf(prototype);\n } else {\n prototype = false;\n }\n }\n\n return schema;\n}\n\n/**\n * Update an Options object with the legacy values from the element's `data-options` attribute.\n *\n * @param {Base} instance The component's instance.\n * @param {HTMLElement} element The component's root element.\n * @param {Options} options The component's options.\n */\nfunction updateOptionsWithLegacyValues(instance, element, options) {\n // Update legacy options with value from the `data-options` attribute\n let legacyOptionsValues = {};\n if (element.dataset.options) {\n warn(\n instance,\n 'The `data-options` attribute usage is deprecated, use multiple `data-option-...` attributes instead.'\n );\n try {\n legacyOptionsValues = JSON.parse(element.dataset.options);\n } catch (err) {\n throw new Error('Can not parse the `data-options` attribute. Is it a valid JSON string?');\n }\n }\n\n Object.entries(legacyOptionsValues).forEach(([optionName, optionValue]) => {\n options[optionName] = optionValue;\n });\n}\n\n/**\n * Get a component's options.\n *\n * @param {Base} instance The component's instance.\n * @param {HTMLElement} element The component's root element.\n * @param {Object} config The component's default config.\n * @return {Options & BaseOptions} The component's merged options.\n */\nexport function getOptions(instance, element, config) {\n /** @type {OptionsSchema} */\n const schema = {\n name: {\n type: String,\n default: config.name,\n },\n log: {\n type: Boolean,\n default: config.log ?? false,\n },\n debug: {\n type: Boolean,\n default: config.debug ?? false,\n },\n ...getParentOptionsSchema(instance),\n ...getLegacyOptionsSchema(instance, config),\n ...(config.options || {}),\n };\n\n const options = new Options(element, schema);\n\n updateOptionsWithLegacyValues(instance, element, options);\n\n instance.$emit('get:options', options);\n\n return /** @type {Options & BaseOptions} */ (options);\n}\n\nexport default {\n getOptions,\n};\n"],"file":"options.js"}
@@ -1,30 +0,0 @@
1
- /**
2
- * @typedef {import('./index.js').default} Base
3
- */
4
- /**
5
- * A ponyfill for the CSS `:scope` selector which is not supported in IE11.
6
- * The following method will return an array of elements similare to the
7
- * `:scope ${selector}` selector.
8
- *
9
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/:scope
10
- * @see https://github.com/jonathantneal/element-qsa-scope
11
- *
12
- * @param {HTMLElement} element The element from which the scope is taken.
13
- * @param {String} selector The children selector.
14
- * @param {String} uniqId A uniq ID to prefix the selector with.
15
- * @return {Array} A list of elements.
16
- */
17
- export function scopeSelectorPonyfill(element: HTMLElement, selector: string, uniqId: string): any[];
18
- /**
19
- * Get all refs of a component.
20
- *
21
- * @param {Base} instance The component's instance.
22
- * @param {HTMLElement} element The component's root element.
23
- * @return {Object} Return an object containing all the component's refs.
24
- */
25
- export function getRefs(instance: Base, element: HTMLElement): any;
26
- declare namespace _default {
27
- export { getRefs };
28
- }
29
- export default _default;
30
- export type Base = import('./index.js').default;
@@ -1,60 +0,0 @@
1
- import { getConfig, warn } from './utils.js';
2
- export function scopeSelectorPonyfill(element, selector, uniqId) {
3
- var list = [];
4
-
5
- try {
6
- list = Array.from(element.querySelectorAll(":scope ".concat(selector)));
7
- } catch (err) {
8
- var attr = "data-uniq-id";
9
- var scopedSelector = "[".concat(attr, "=\"").concat(uniqId, "\"] ").concat(selector);
10
- element.setAttribute(attr, uniqId);
11
- list = Array.from(element.querySelectorAll(scopedSelector));
12
- element.removeAttribute(attr);
13
- }
14
-
15
- return list;
16
- }
17
- export function getRefs(instance, element) {
18
- var definedRefs = getConfig(instance).refs || [];
19
- var allRefs = Array.from(element.querySelectorAll("[data-ref]"));
20
- var childrenRefs = scopeSelectorPonyfill(element, '[data-component] [data-ref]', instance.$id);
21
- var elements = allRefs.filter(function (ref) {
22
- return !childrenRefs.includes(ref);
23
- });
24
- var refs = elements.reduce(function ($refs, $ref) {
25
- var refName = $ref.dataset.ref;
26
-
27
- if (!definedRefs.includes(refName)) {
28
- warn(instance, "The \"".concat(refName, "\" ref is not defined in the class configuration."), 'Did you forgot to define it?');
29
- }
30
-
31
- var $realRef = $ref.__base__ ? $ref.__base__ : $ref;
32
-
33
- if (refName.endsWith('[]')) {
34
- refName = refName.replace(/\[\]$/, '');
35
-
36
- if (!$refs[refName]) {
37
- $refs[refName] = [];
38
- }
39
- }
40
-
41
- if ($refs[refName]) {
42
- if (Array.isArray($refs[refName])) {
43
- $refs[refName].push($realRef);
44
- } else {
45
- $refs[refName] = [$refs[refName], $realRef];
46
- warn(instance, "The \"".concat(refName, "\" ref has been found multiple times."), 'Did you forgot to add the `[]` suffix to its name?');
47
- }
48
- } else {
49
- $refs[refName] = $realRef;
50
- }
51
-
52
- return $refs;
53
- }, {});
54
- instance.$emit('get:refs', refs);
55
- return refs;
56
- }
57
- export default {
58
- getRefs: getRefs
59
- };
60
- //# sourceMappingURL=refs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/js-toolkit/abstracts/Base/refs.js"],"names":["getConfig","warn","scopeSelectorPonyfill","element","selector","uniqId","list","Array","from","querySelectorAll","err","attr","scopedSelector","setAttribute","removeAttribute","getRefs","instance","definedRefs","refs","allRefs","childrenRefs","$id","elements","filter","ref","includes","reduce","$refs","$ref","refName","dataset","$realRef","__base__","endsWith","replace","isArray","push","$emit"],"mappings":"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","sourcesContent":["import { getConfig, warn } from './utils.js';\n\n/**\n * @typedef {import('./index.js').default} Base\n */\n\n/**\n * A ponyfill for the CSS `:scope` selector which is not supported in IE11.\n * The following method will return an array of elements similare to the\n * `:scope ${selector}` selector.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/:scope\n * @see https://github.com/jonathantneal/element-qsa-scope\n *\n * @param {HTMLElement} element The element from which the scope is taken.\n * @param {String} selector The children selector.\n * @param {String} uniqId A uniq ID to prefix the selector with.\n * @return {Array} A list of elements.\n */\nexport function scopeSelectorPonyfill(element, selector, uniqId) {\n let list = [];\n\n try {\n list = Array.from(element.querySelectorAll(`:scope ${selector}`));\n } catch (err) {\n const attr = `data-uniq-id`;\n const scopedSelector = `[${attr}=\"${uniqId}\"] ${selector}`;\n element.setAttribute(attr, uniqId);\n list = Array.from(element.querySelectorAll(scopedSelector));\n element.removeAttribute(attr);\n }\n\n return list;\n}\n\n/**\n * Get all refs of a component.\n *\n * @param {Base} instance The component's instance.\n * @param {HTMLElement} element The component's root element.\n * @return {Object} Return an object containing all the component's refs.\n */\nexport function getRefs(instance, element) {\n const definedRefs = getConfig(instance).refs || [];\n /** @type {Array<HTMLElement>} */\n const allRefs = Array.from(element.querySelectorAll(`[data-ref]`));\n const childrenRefs = scopeSelectorPonyfill(element, '[data-component] [data-ref]', instance.$id);\n const elements = allRefs.filter((ref) => !childrenRefs.includes(ref));\n\n const refs = elements.reduce(\n /**\n * @param {Object} $refs\n * @param {HTMLElement & {__base__?: Base}} $ref\n */\n ($refs, $ref) => {\n let refName = $ref.dataset.ref;\n\n if (!definedRefs.includes(refName)) {\n warn(\n instance,\n `The \"${refName}\" ref is not defined in the class configuration.`,\n 'Did you forgot to define it?'\n );\n }\n\n const $realRef = $ref.__base__ ? $ref.__base__ : $ref;\n\n if (refName.endsWith('[]')) {\n refName = refName.replace(/\\[\\]$/, '');\n\n if (!$refs[refName]) {\n $refs[refName] = [];\n }\n }\n\n if ($refs[refName]) {\n if (Array.isArray($refs[refName])) {\n $refs[refName].push($realRef);\n } else {\n $refs[refName] = [$refs[refName], $realRef];\n warn(\n instance,\n `The \"${refName}\" ref has been found multiple times.`,\n 'Did you forgot to add the `[]` suffix to its name?'\n );\n }\n } else {\n $refs[refName] = $realRef;\n }\n\n return $refs;\n },\n {}\n );\n\n instance.$emit('get:refs', refs);\n return refs;\n}\n\nexport default {\n getRefs,\n};\n"],"file":"refs.js"}
@@ -1,102 +0,0 @@
1
- export function getConfig(instance) {
2
- var config = instance.constructor.config || instance.config;
3
-
4
- if (!config) {
5
- throw new Error('The `config` property must be defined.');
6
- }
7
-
8
- if (!config.name) {
9
- throw new Error('The `config.name` property is required.');
10
- }
11
-
12
- if (instance.config && !instance.constructor.config) {
13
- console.warn("[".concat(config.name, "]"), 'Defining the `config` as a getter is deprecated, replace it with a static property.');
14
- }
15
-
16
- return config;
17
- }
18
- export function warn(instance) {
19
- var _console;
20
-
21
- var _getConfig = getConfig(instance),
22
- name = _getConfig.name;
23
-
24
- for (var _len = arguments.length, msg = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
25
- msg[_key - 1] = arguments[_key];
26
- }
27
-
28
- (_console = console).warn.apply(_console, ["[".concat(name, "]")].concat(msg));
29
- }
30
- export function log(instance) {
31
- var _console2;
32
-
33
- var _getConfig2 = getConfig(instance),
34
- name = _getConfig2.name;
35
-
36
- for (var _len2 = arguments.length, msg = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
37
- msg[_key2 - 1] = arguments[_key2];
38
- }
39
-
40
- (_console2 = console).log.apply(_console2, ["[".concat(name, "]")].concat(msg));
41
- }
42
- export function debug(instance) {
43
- if (instance.$options.debug) {
44
- for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
45
- args[_key3 - 1] = arguments[_key3];
46
- }
47
-
48
- log.apply(void 0, [instance, '[debug]'].concat(args));
49
- }
50
- }
51
- export function hasMethod(obj, name) {
52
- return typeof obj[name] === 'function';
53
- }
54
- export function callMethod(instance, method) {
55
- var _instance$method;
56
-
57
- for (var _len4 = arguments.length, args = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
58
- args[_key4 - 2] = arguments[_key4];
59
- }
60
-
61
- if (__DEV__) {
62
- debug.apply(void 0, [instance, 'callMethod', method].concat(args));
63
- }
64
-
65
- if (method === 'destroyed' && !instance.$isMounted || method === 'mounted' && instance.$isMounted) {
66
- if (__DEV__) {
67
- debug(instance, 'not', method, 'because the method has already been triggered once.');
68
- }
69
-
70
- return instance;
71
- }
72
-
73
- instance.$emit.apply(instance, [method].concat(args));
74
-
75
- if (!hasMethod(instance, method)) {
76
- return instance;
77
- }
78
-
79
- (_instance$method = instance[method]).call.apply(_instance$method, [instance].concat(args));
80
-
81
- if (__DEV__) {
82
- debug.apply(void 0, [instance, method, instance].concat(args));
83
- }
84
-
85
- return instance;
86
- }
87
- export function getComponentElements(nameOrSelector) {
88
- var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
89
- var selector = "[data-component=\"".concat(nameOrSelector, "\"]");
90
- var elements = [];
91
-
92
- try {
93
- elements = Array.from(element.querySelectorAll(selector));
94
- } catch (_unused) {}
95
-
96
- if (elements.length === 0) {
97
- elements = Array.from(element.querySelectorAll(nameOrSelector));
98
- }
99
-
100
- return elements;
101
- }
102
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/js-toolkit/abstracts/Base/utils.js"],"names":["getConfig","instance","config","constructor","Error","name","console","warn","msg","log","debug","$options","args","hasMethod","obj","callMethod","method","__DEV__","$isMounted","$emit","call","getComponentElements","nameOrSelector","element","document","selector","elements","Array","from","querySelectorAll","length"],"mappings":"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","sourcesContent":["/**\n * @typedef {import('./index.js').default} Base\n * @typedef {import('./index.js').BaseConfig} BaseConfig\n */\n\n/**\n * Get the config from a Base instance, either the new static one or the old getter one.\n *\n * @param {Base} instance The instance to get the config from.\n * @return {BaseConfig} A Base class configuration object.\n */\nexport function getConfig(instance) {\n // @ts-ignore\n const config = instance.constructor.config || instance.config;\n\n if (!config) {\n throw new Error('The `config` property must be defined.');\n }\n\n if (!config.name) {\n throw new Error('The `config.name` property is required.');\n }\n\n // @ts-ignore\n if (instance.config && !instance.constructor.config) {\n console.warn(\n `[${config.name}]`,\n 'Defining the `config` as a getter is deprecated, replace it with a static property.'\n );\n }\n\n return config;\n}\n\n/**\n * Display a console warning for the given instance.\n *\n * @param {Base} instance A Base instance.\n * @param {...String} msg Values to display in the console.\n */\nexport function warn(instance, ...msg) {\n const { name } = getConfig(instance);\n console.warn(`[${name}]`, ...msg);\n}\n\n/**\n * Display a console log for the given instance.\n *\n * @param {Base} instance The instance to log information from.\n * @param {...any} msg The data to print to the console.\n */\nexport function log(instance, ...msg) {\n const { name } = getConfig(instance);\n console.log(`[${name}]`, ...msg);\n}\n\n/**\n * Verbose debug for the component.\n *\n * @param {Base} instance The instance to debug.\n * @param {...any} args The data to print.\n */\nexport function debug(instance, ...args) {\n if (instance.$options.debug) {\n log(instance, '[debug]', ...args);\n }\n}\n\n/**\n * Test if an object has a method.\n *\n * @param {Object} obj The object to test\n * @param {String} name The method's name\n * @return {Boolean}\n */\nexport function hasMethod(obj, name) {\n return typeof obj[name] === 'function';\n}\n\n/**\n * Call the given method while applying the given arguments.\n *\n * @param {Base} instance The Base instance on which to trigger the method.\n * @param {String} method The method to call.\n * @param {...any} args The arguments to pass to the method.\n */\nexport function callMethod(instance, method, ...args) {\n if (__DEV__) {\n debug(instance, 'callMethod', method, ...args);\n }\n\n // Prevent duplicate call of `mounted` and `destroyed`\n // methods based on the component status\n if (\n (method === 'destroyed' && !instance.$isMounted) ||\n (method === 'mounted' && instance.$isMounted)\n ) {\n if (__DEV__) {\n debug(instance, 'not', method, 'because the method has already been triggered once.');\n }\n return instance;\n }\n\n instance.$emit(method, ...args);\n\n // We always emit an event, but we do not call the method if it does not exist\n if (!hasMethod(instance, method)) {\n return instance;\n }\n\n instance[method].call(instance, ...args);\n if (__DEV__) {\n debug(instance, method, instance, ...args);\n }\n\n return instance;\n}\n\n/**\n * Get a list of elements based on the name of a component.\n *\n * @param {String} nameOrSelector\n * The name or selector to used for this component.\n * @param {HTMLElement|Document} element\n * The root element on which to query the selector, defaults to `document`.\n * @return {Array<HTMLElement>}\n * A list of elements on which the component should be mounted.\n */\nexport function getComponentElements(nameOrSelector, element = document) {\n const selector = `[data-component=\"${nameOrSelector}\"]`;\n let elements = [];\n\n try {\n elements = Array.from(element.querySelectorAll(selector));\n // eslint-disable-next-line no-empty\n } catch {}\n\n // If no child component found with the default selector, try a classic DOM selector\n if (elements.length === 0) {\n elements = Array.from(element.querySelectorAll(nameOrSelector));\n }\n\n return elements;\n}\n"],"file":"utils.js"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Event management class.
3
- */
4
- export default class EventManager {
5
- /** @type {{[eventName:string]: Array<Function>}} An object to store the events */
6
- _events: {
7
- [eventName: string]: Function[];
8
- };
9
- /**
10
- * Bind a listener function to an event.
11
- *
12
- * @param {String} event Name of the event.
13
- * @param {Function} listener Function to be called.
14
- * @return {Function} A function to unbind the listener.
15
- */
16
- $on(event: string, listener: Function): Function;
17
- /**
18
- * Unbind a listener function from an event.
19
- *
20
- * @param {String} event Name of the event.
21
- * @param {Function} listener Function to be removed.
22
- * @return {EventManager} The current instance.
23
- */
24
- $off(event: string, listener: Function): EventManager;
25
- /**
26
- * Emits an event.
27
- *
28
- * @param {String} event Name of the event.
29
- * @param {Array} args The arguments to apply to the functions bound to this event.
30
- * @return {EventManager} The current instance.
31
- */
32
- $emit(event: string, ...args: any[]): EventManager;
33
- /**
34
- * Bind a listener function to an event for one execution only.
35
- *
36
- * @param {String} event Name of the event.
37
- * @param {Function} listener Function to be called.
38
- * @return {EventManager} The current instance.
39
- */
40
- $once(event: string, listener: Function): EventManager;
41
- }
@@ -1,88 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
-
5
- var EventManager = function () {
6
- function EventManager() {
7
- _classCallCheck(this, EventManager);
8
-
9
- _defineProperty(this, "_events", {});
10
- }
11
-
12
- _createClass(EventManager, [{
13
- key: "$on",
14
- value: function $on(event, listener) {
15
- var _this = this;
16
-
17
- if (!Array.isArray(this._events[event])) {
18
- this._events[event] = [];
19
- }
20
-
21
- this._events[event].push(listener);
22
-
23
- return function () {
24
- _this.$off(event, listener);
25
- };
26
- }
27
- }, {
28
- key: "$off",
29
- value: function $off(event, listener) {
30
- if (!event) {
31
- this._events = {};
32
- return this;
33
- }
34
-
35
- if (!listener) {
36
- this._events[event] = [];
37
- return this;
38
- }
39
-
40
- var index = this._events[event].indexOf(listener);
41
-
42
- if (index > -1) {
43
- this._events[event].splice(index, 1);
44
- }
45
-
46
- return this;
47
- }
48
- }, {
49
- key: "$emit",
50
- value: function $emit(event) {
51
- var _this2 = this;
52
-
53
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
54
- args[_key - 1] = arguments[_key];
55
- }
56
-
57
- if (!Array.isArray(this._events[event])) {
58
- return this;
59
- }
60
-
61
- this._events[event].forEach(function (listener) {
62
- listener.apply(_this2, args);
63
- });
64
-
65
- return this;
66
- }
67
- }, {
68
- key: "$once",
69
- value: function $once(event, listener) {
70
- var instance = this;
71
- this.$on(event, function handler() {
72
- instance.$off(event, handler);
73
-
74
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
75
- args[_key2] = arguments[_key2];
76
- }
77
-
78
- listener.apply(instance, args);
79
- });
80
- return this;
81
- }
82
- }]);
83
-
84
- return EventManager;
85
- }();
86
-
87
- export { EventManager as default };
88
- //# sourceMappingURL=EventManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../packages/js-toolkit/abstracts/EventManager.js"],"names":["EventManager","event","listener","Array","isArray","_events","push","$off","index","indexOf","splice","args","forEach","apply","instance","$on","handler"],"mappings":";;;;IAIqBA,Y;;;;qCAET,E;;;;;WASV,aAAIC,KAAJ,EAAWC,QAAX,EAAqB;AAAA;;AACnB,UAAI,CAACC,KAAK,CAACC,OAAN,CAAc,KAAKC,OAAL,CAAaJ,KAAb,CAAd,CAAL,EAAyC;AACvC,aAAKI,OAAL,CAAaJ,KAAb,IAAsB,EAAtB;AACD;;AACD,WAAKI,OAAL,CAAaJ,KAAb,EAAoBK,IAApB,CAAyBJ,QAAzB;;AAEA,aAAO,YAAM;AACX,QAAA,KAAI,CAACK,IAAL,CAAUN,KAAV,EAAiBC,QAAjB;AACD,OAFD;AAGD;;;WASD,cAAKD,KAAL,EAAYC,QAAZ,EAAsB;AAEpB,UAAI,CAACD,KAAL,EAAY;AACV,aAAKI,OAAL,GAAe,EAAf;AACA,eAAO,IAAP;AACD;;AAGD,UAAI,CAACH,QAAL,EAAe;AACb,aAAKG,OAAL,CAAaJ,KAAb,IAAsB,EAAtB;AACA,eAAO,IAAP;AACD;;AAED,UAAMO,KAAK,GAAG,KAAKH,OAAL,CAAaJ,KAAb,EAAoBQ,OAApB,CAA4BP,QAA5B,CAAd;;AAEA,UAAIM,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd,aAAKH,OAAL,CAAaJ,KAAb,EAAoBS,MAApB,CAA2BF,KAA3B,EAAkC,CAAlC;AACD;;AAED,aAAO,IAAP;AACD;;;WASD,eAAMP,KAAN,EAAsB;AAAA;;AAAA,wCAANU,IAAM;AAANA,QAAAA,IAAM;AAAA;;AACpB,UAAI,CAACR,KAAK,CAACC,OAAN,CAAc,KAAKC,OAAL,CAAaJ,KAAb,CAAd,CAAL,EAAyC;AACvC,eAAO,IAAP;AACD;;AAED,WAAKI,OAAL,CAAaJ,KAAb,EAAoBW,OAApB,CAA4B,UAACV,QAAD,EAAc;AACxCA,QAAAA,QAAQ,CAACW,KAAT,CAAe,MAAf,EAAqBF,IAArB;AACD,OAFD;;AAGA,aAAO,IAAP;AACD;;;WASD,eAAMV,KAAN,EAAaC,QAAb,EAAuB;AACrB,UAAMY,QAAQ,GAAG,IAAjB;AACA,WAAKC,GAAL,CACEd,KADF,EAKE,SAASe,OAAT,GAA0B;AACxBF,QAAAA,QAAQ,CAACP,IAAT,CAAcN,KAAd,EAAqBe,OAArB;;AADwB,2CAANL,IAAM;AAANA,UAAAA,IAAM;AAAA;;AAExBT,QAAAA,QAAQ,CAACW,KAAT,CAAeC,QAAf,EAAyBH,IAAzB;AACD,OARH;AAUA,aAAO,IAAP;AACD;;;;;;SAzFkBX,Y","sourcesContent":["/* eslint no-underscore-dangle: [\"error\", { \"allow\": [\"_events\"] }] */\n/**\n * Event management class.\n */\nexport default class EventManager {\n /** @type {{[eventName:string]: Array<Function>}} An object to store the events */\n _events = {};\n\n /**\n * Bind a listener function to an event.\n *\n * @param {String} event Name of the event.\n * @param {Function} listener Function to be called.\n * @return {Function} A function to unbind the listener.\n */\n $on(event, listener) {\n if (!Array.isArray(this._events[event])) {\n this._events[event] = [];\n }\n this._events[event].push(listener);\n\n return () => {\n this.$off(event, listener);\n };\n }\n\n /**\n * Unbind a listener function from an event.\n *\n * @param {String} event Name of the event.\n * @param {Function} listener Function to be removed.\n * @return {EventManager} The current instance.\n */\n $off(event, listener) {\n // If no event specified, we remove them all.\n if (!event) {\n this._events = {};\n return this;\n }\n // If no listener have been specified, we remove all\n // the listeners for the given event.\n if (!listener) {\n this._events[event] = [];\n return this;\n }\n\n const index = this._events[event].indexOf(listener);\n\n if (index > -1) {\n this._events[event].splice(index, 1);\n }\n\n return this;\n }\n\n /**\n * Emits an event.\n *\n * @param {String} event Name of the event.\n * @param {Array} args The arguments to apply to the functions bound to this event.\n * @return {EventManager} The current instance.\n */\n $emit(event, ...args) {\n if (!Array.isArray(this._events[event])) {\n return this;\n }\n\n this._events[event].forEach((listener) => {\n listener.apply(this, args);\n });\n return this;\n }\n\n /**\n * Bind a listener function to an event for one execution only.\n *\n * @param {String} event Name of the event.\n * @param {Function} listener Function to be called.\n * @return {EventManager} The current instance.\n */\n $once(event, listener) {\n const instance = this;\n this.$on(\n event,\n /**\n * @param {...any} args\n */\n function handler(...args) {\n instance.$off(event, handler);\n listener.apply(instance, args);\n }\n );\n return this;\n }\n}\n"],"file":"EventManager.js"}
@@ -1,82 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
-
4
- var Service = function () {
5
- function Service() {
6
- _classCallCheck(this, Service);
7
-
8
- this.callbacks = new Map();
9
- this.isInit = false;
10
- }
11
-
12
- _createClass(Service, [{
13
- key: "props",
14
- get: function get() {
15
- throw new Error('The `props` getter must be implemented.');
16
- }
17
- }, {
18
- key: "init",
19
- value: function init() {
20
- throw new Error('The `init` method must be implemented.');
21
- }
22
- }, {
23
- key: "kill",
24
- value: function kill() {
25
- throw new Error('The `kill` method must be implemented.');
26
- }
27
- }, {
28
- key: "add",
29
- value: function add(key, callback) {
30
- if (this.has(key)) {
31
- throw new Error("A callback with the key `".concat(key, "` has already been registered."));
32
- }
33
-
34
- if (this.callbacks.size === 0 && !this.isInit) {
35
- this.init();
36
- this.isInit = true;
37
- }
38
-
39
- this.callbacks.set(key, callback);
40
- return this;
41
- }
42
- }, {
43
- key: "has",
44
- value: function has(key) {
45
- return this.callbacks.has(key);
46
- }
47
- }, {
48
- key: "get",
49
- value: function get(key) {
50
- return this.callbacks.get(key);
51
- }
52
- }, {
53
- key: "remove",
54
- value: function remove(key) {
55
- this.callbacks.delete(key);
56
-
57
- if (this.callbacks.size === 0 && this.isInit) {
58
- this.kill();
59
- this.isInit = false;
60
- }
61
-
62
- return this;
63
- }
64
- }, {
65
- key: "trigger",
66
- value: function trigger() {
67
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
68
- args[_key] = arguments[_key];
69
- }
70
-
71
- this.callbacks.forEach(function forEachCallback(callback) {
72
- callback.apply(void 0, args);
73
- });
74
- return this;
75
- }
76
- }]);
77
-
78
- return Service;
79
- }();
80
-
81
- export { Service as default };
82
- //# sourceMappingURL=Service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../packages/js-toolkit/abstracts/Service.js"],"names":["Service","callbacks","Map","isInit","Error","key","callback","has","size","init","set","get","delete","kill","args","forEach","forEachCallback"],"mappings":";;;IAGqBA,O;AAInB,qBAAc;AAAA;;AACZ,SAAKC,SAAL,GAAiB,IAAIC,GAAJ,EAAjB;AACA,SAAKC,MAAL,GAAc,KAAd;AACD;;;;SAOD,eAAY;AACV,YAAM,IAAIC,KAAJ,CAAU,yCAAV,CAAN;AACD;;;WAQD,gBAAO;AACL,YAAM,IAAIA,KAAJ,CAAU,wCAAV,CAAN;AACD;;;WAQD,gBAAO;AACL,YAAM,IAAIA,KAAJ,CAAU,wCAAV,CAAN;AACD;;;WASD,aAAIC,GAAJ,EAASC,QAAT,EAAmB;AACjB,UAAI,KAAKC,GAAL,CAASF,GAAT,CAAJ,EAAmB;AACjB,cAAM,IAAID,KAAJ,oCAAuCC,GAAvC,oCAAN;AACD;;AAGD,UAAI,KAAKJ,SAAL,CAAeO,IAAf,KAAwB,CAAxB,IAA6B,CAAC,KAAKL,MAAvC,EAA+C;AAC7C,aAAKM,IAAL;AACA,aAAKN,MAAL,GAAc,IAAd;AACD;;AAED,WAAKF,SAAL,CAAeS,GAAf,CAAmBL,GAAnB,EAAwBC,QAAxB;AACA,aAAO,IAAP;AACD;;;WAQD,aAAID,GAAJ,EAAS;AACP,aAAO,KAAKJ,SAAL,CAAeM,GAAf,CAAmBF,GAAnB,CAAP;AACD;;;WAQD,aAAIA,GAAJ,EAAS;AACP,aAAO,KAAKJ,SAAL,CAAeU,GAAf,CAAmBN,GAAnB,CAAP;AACD;;;WAQD,gBAAOA,GAAP,EAAY;AACV,WAAKJ,SAAL,CAAeW,MAAf,CAAsBP,GAAtB;;AAGA,UAAI,KAAKJ,SAAL,CAAeO,IAAf,KAAwB,CAAxB,IAA6B,KAAKL,MAAtC,EAA8C;AAC5C,aAAKU,IAAL;AACA,aAAKV,MAAL,GAAc,KAAd;AACD;;AAED,aAAO,IAAP;AACD;;;WAQD,mBAAiB;AAAA,wCAANW,IAAM;AAANA,QAAAA,IAAM;AAAA;;AACf,WAAKb,SAAL,CAAec,OAAf,CAAuB,SAASC,eAAT,CAAyBV,QAAzB,EAAmC;AACxDA,QAAAA,QAAQ,MAAR,SAAYQ,IAAZ;AACD,OAFD;AAIA,aAAO,IAAP;AACD;;;;;;SA9GkBd,O","sourcesContent":["/**\n * Service abstract class\n */\nexport default class Service {\n /**\n * Class constructor, used to test the abstract class implementation.\n */\n constructor() {\n this.callbacks = new Map();\n this.isInit = false;\n }\n\n /**\n * Getter to get the services properties.\n * This getter MUST be implementer by the service extending this class.\n * @return {Object}\n */\n get props() {\n throw new Error('The `props` getter must be implemented.');\n }\n\n /**\n * Method to initialize the service behaviors.\n * This method MUST be implemented by the service extending this class.\n *\n * @return {Service} The current instance\n */\n init() {\n throw new Error('The `init` method must be implemented.');\n }\n\n /**\n * Method to kill the service behaviors.\n * This method MUST be implemented by the service extending this class.\n *\n * @return {Service} The current instance\n */\n kill() {\n throw new Error('The `kill` method must be implemented.');\n }\n\n /**\n * Add a callback.\n *\n * @param {String} key The callback's identifier\n * @param {Function} callback The callback function\n * @return {this} The current instance\n */\n add(key, callback) {\n if (this.has(key)) {\n throw new Error(`A callback with the key \\`${key}\\` has already been registered.`);\n }\n\n // Initialize the service when we add the first callback\n if (this.callbacks.size === 0 && !this.isInit) {\n this.init();\n this.isInit = true;\n }\n\n this.callbacks.set(key, callback);\n return this;\n }\n\n /**\n * Test if a callback with the given key has already been added.\n *\n * @param {String} key The identifier to test\n * @return {Boolean} Whether or not the identifier already exists\n */\n has(key) {\n return this.callbacks.has(key);\n }\n\n /**\n * Get the callback tied to the given key.\n *\n * @param {String} key The identifier to get\n * @return {Function} The callback function\n */\n get(key) {\n return this.callbacks.get(key);\n }\n\n /**\n * Remove the callback tied to the given key.\n *\n * @param {String} key The identifier to remove\n * @return {Service} The current instance\n */\n remove(key) {\n this.callbacks.delete(key);\n\n // Kill the service when we remove the last callback\n if (this.callbacks.size === 0 && this.isInit) {\n this.kill();\n this.isInit = false;\n }\n\n return this;\n }\n\n /**\n * Trigger each added callback with the given arguments.\n *\n * @param {Array} args All the arguments to apply to the callback\n * @return {Service} The current instance\n */\n trigger(...args) {\n this.callbacks.forEach(function forEachCallback(callback) {\n callback(...args);\n });\n\n return this;\n }\n}\n"],"file":"Service.js"}
@@ -1,4 +0,0 @@
1
- import Base from "./Base/index.js";
2
- import EventManager from "./EventManager.js";
3
- import Service from "./Service.js";
4
- export { Base, EventManager, Service };
@@ -1,5 +0,0 @@
1
- import Base from './Base/index.js';
2
- import EventManager from './EventManager.js';
3
- import Service from './Service.js';
4
- export { Base, EventManager, Service };
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../packages/js-toolkit/abstracts/index.js"],"names":["Base","EventManager","Service"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,iBAAjB;AACA,OAAOC,YAAP,MAAyB,mBAAzB;AACA,OAAOC,OAAP,MAAoB,cAApB;AAEA,SAASF,IAAT,EAAeC,YAAf,EAA6BC,OAA7B","sourcesContent":["import Base from './Base/index.js';\nimport EventManager from './EventManager.js';\nimport Service from './Service.js';\n\nexport { Base, EventManager, Service };\n"],"file":"index.js"}