@studiometa/js-toolkit 2.0.0-beta.1 → 2.0.0-beta.13

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 (184) hide show
  1. package/Base/index.cjs +294 -0
  2. package/Base/index.d.ts +27 -1
  3. package/Base/index.js +149 -179
  4. package/Base/managers/ChildrenManager.cjs +124 -0
  5. package/Base/managers/ChildrenManager.js +29 -55
  6. package/Base/managers/EventsManager.cjs +184 -0
  7. package/Base/managers/EventsManager.d.ts +3 -1
  8. package/Base/managers/EventsManager.js +85 -127
  9. package/Base/managers/OptionsManager.cjs +175 -0
  10. package/Base/managers/OptionsManager.d.ts +2 -0
  11. package/Base/managers/OptionsManager.js +46 -88
  12. package/Base/managers/RefsManager.cjs +98 -0
  13. package/Base/managers/RefsManager.d.ts +2 -0
  14. package/Base/managers/RefsManager.js +24 -35
  15. package/Base/managers/ServicesManager.cjs +132 -0
  16. package/Base/managers/ServicesManager.d.ts +29 -4
  17. package/Base/managers/ServicesManager.js +33 -63
  18. package/Base/utils.cjs +45 -0
  19. package/Base/utils.js +12 -11
  20. package/README.md +13 -70
  21. package/decorators/index.cjs +49 -0
  22. package/decorators/index.d.ts +8 -9
  23. package/decorators/index.js +18 -9
  24. package/decorators/withBreakpointManager.cjs +91 -0
  25. package/decorators/withBreakpointManager.js +18 -39
  26. package/decorators/withBreakpointObserver.cjs +116 -0
  27. package/decorators/withBreakpointObserver.js +40 -88
  28. package/decorators/withDrag.cjs +54 -0
  29. package/decorators/withDrag.js +16 -18
  30. package/decorators/withExtraConfig.cjs +44 -0
  31. package/decorators/withExtraConfig.js +11 -12
  32. package/decorators/withIntersectionObserver.cjs +61 -0
  33. package/decorators/withIntersectionObserver.js +23 -31
  34. package/decorators/withMountWhenInView.cjs +68 -0
  35. package/decorators/withMountWhenInView.js +31 -55
  36. package/decorators/withScrolledInView.cjs +112 -0
  37. package/decorators/withScrolledInView.d.ts +4 -1
  38. package/decorators/withScrolledInView.js +77 -73
  39. package/decorators/withVue2.cjs +60 -0
  40. package/decorators/withVue2.js +21 -32
  41. package/helpers/createApp.cjs +56 -0
  42. package/helpers/createApp.js +12 -12
  43. package/helpers/importOnInteraction.cjs +56 -0
  44. package/helpers/importOnInteraction.js +17 -18
  45. package/helpers/importWhenIdle.cjs +52 -0
  46. package/helpers/importWhenIdle.js +13 -17
  47. package/helpers/importWhenVisible.cjs +54 -0
  48. package/helpers/importWhenVisible.js +16 -18
  49. package/helpers/index.cjs +41 -0
  50. package/helpers/index.d.ts +4 -5
  51. package/helpers/index.js +10 -5
  52. package/helpers/utils.cjs +39 -0
  53. package/helpers/utils.js +7 -6
  54. package/index.cjs +38 -0
  55. package/index.d.ts +4 -21
  56. package/index.js +7 -5
  57. package/package.json +14 -3
  58. package/services/Service.cjs +75 -0
  59. package/services/Service.d.ts +22 -17
  60. package/services/Service.js +14 -28
  61. package/services/drag.cjs +194 -0
  62. package/services/drag.d.ts +4 -18
  63. package/services/drag.js +103 -156
  64. package/services/index.cjs +47 -0
  65. package/services/index.d.ts +13 -10
  66. package/services/index.js +16 -8
  67. package/services/key.cjs +101 -0
  68. package/services/key.d.ts +4 -13
  69. package/services/key.js +58 -77
  70. package/services/load.cjs +70 -0
  71. package/services/load.d.ts +3 -13
  72. package/services/load.js +31 -36
  73. package/services/pointer.cjs +159 -0
  74. package/services/pointer.d.ts +4 -13
  75. package/services/pointer.js +91 -121
  76. package/services/raf.cjs +81 -0
  77. package/services/raf.d.ts +3 -13
  78. package/services/raf.js +32 -52
  79. package/services/resize.cjs +106 -0
  80. package/services/resize.d.ts +3 -13
  81. package/services/resize.js +52 -52
  82. package/services/scroll.cjs +129 -0
  83. package/services/scroll.d.ts +3 -13
  84. package/services/scroll.js +75 -89
  85. package/utils/collide/boundingRectToCircle.cjs +38 -0
  86. package/utils/collide/boundingRectToCircle.d.ts +1 -1
  87. package/utils/collide/boundingRectToCircle.js +7 -10
  88. package/utils/collide/collideCircleCircle.cjs +38 -0
  89. package/utils/collide/collideCircleCircle.js +8 -7
  90. package/utils/collide/collideCircleRect.cjs +50 -0
  91. package/utils/collide/collideCircleRect.js +10 -12
  92. package/utils/collide/collidePointCircle.cjs +35 -0
  93. package/utils/collide/collidePointCircle.js +8 -5
  94. package/utils/collide/collidePointRect.cjs +32 -0
  95. package/utils/collide/collidePointRect.js +5 -2
  96. package/utils/collide/collideRectRect.cjs +32 -0
  97. package/utils/collide/collideRectRect.js +5 -2
  98. package/utils/collide/index.cjs +45 -0
  99. package/utils/collide/index.d.ts +6 -7
  100. package/utils/collide/index.js +14 -7
  101. package/utils/css/classes.cjs +48 -0
  102. package/utils/css/classes.js +13 -12
  103. package/utils/css/index.cjs +41 -0
  104. package/utils/css/index.d.ts +4 -5
  105. package/utils/css/index.js +10 -5
  106. package/utils/css/matrix.cjs +33 -0
  107. package/utils/css/matrix.js +6 -5
  108. package/utils/css/styles.cjs +51 -0
  109. package/utils/css/styles.js +13 -12
  110. package/utils/css/transition.cjs +121 -0
  111. package/utils/css/transition.js +62 -117
  112. package/utils/debounce.cjs +38 -0
  113. package/utils/debounce.js +7 -9
  114. package/utils/focusTrap.cjs +88 -0
  115. package/utils/focusTrap.js +30 -21
  116. package/utils/history.cjs +95 -0
  117. package/utils/history.js +28 -57
  118. package/utils/index.cjs +57 -0
  119. package/utils/index.d.ts +12 -35
  120. package/utils/index.js +30 -17
  121. package/utils/keyCodes.cjs +39 -0
  122. package/utils/keyCodes.js +5 -2
  123. package/utils/math/clamp.cjs +32 -0
  124. package/utils/math/clamp.js +5 -2
  125. package/utils/math/clamp01.cjs +38 -0
  126. package/utils/math/clamp01.js +6 -3
  127. package/utils/math/damp.cjs +32 -0
  128. package/utils/math/damp.js +5 -4
  129. package/utils/math/ease.cjs +92 -0
  130. package/utils/math/ease.d.ts +78 -0
  131. package/utils/math/ease.js +66 -0
  132. package/utils/math/index.cjs +48 -0
  133. package/utils/math/index.d.ts +8 -8
  134. package/utils/math/index.js +17 -8
  135. package/utils/math/inertiaFinalValue.cjs +41 -0
  136. package/utils/math/inertiaFinalValue.js +8 -10
  137. package/utils/math/lerp.cjs +32 -0
  138. package/utils/math/lerp.js +5 -2
  139. package/utils/math/map.cjs +32 -0
  140. package/utils/math/map.js +5 -2
  141. package/utils/math/round.cjs +32 -0
  142. package/utils/math/round.js +5 -3
  143. package/utils/memoize.cjs +47 -0
  144. package/utils/memoize.js +10 -19
  145. package/utils/nextFrame.cjs +44 -0
  146. package/utils/nextFrame.js +14 -9
  147. package/utils/object/autoBind.cjs +55 -0
  148. package/utils/object/autoBind.js +12 -22
  149. package/utils/object/getAllProperties.cjs +41 -0
  150. package/utils/object/getAllProperties.js +11 -14
  151. package/utils/object/index.cjs +39 -0
  152. package/utils/object/index.d.ts +3 -4
  153. package/utils/object/index.js +8 -4
  154. package/utils/object/isObject.cjs +32 -0
  155. package/utils/object/isObject.js +6 -3
  156. package/utils/scrollTo.cjs +86 -0
  157. package/utils/scrollTo.js +20 -40
  158. package/utils/string/index.cjs +53 -0
  159. package/utils/string/index.d.ts +10 -11
  160. package/utils/string/index.js +22 -11
  161. package/utils/string/withLeadingCharacters.cjs +38 -0
  162. package/utils/string/withLeadingCharacters.js +7 -4
  163. package/utils/string/withLeadingSlash.cjs +38 -0
  164. package/utils/string/withLeadingSlash.js +7 -4
  165. package/utils/string/withTrailingCharacters.cjs +38 -0
  166. package/utils/string/withTrailingCharacters.js +7 -4
  167. package/utils/string/withTrailingSlash.cjs +38 -0
  168. package/utils/string/withTrailingSlash.js +7 -4
  169. package/utils/string/withoutLeadingCharacters.cjs +32 -0
  170. package/utils/string/withoutLeadingCharacters.js +6 -3
  171. package/utils/string/withoutLeadingCharactersRecursive.cjs +43 -0
  172. package/utils/string/withoutLeadingCharactersRecursive.js +8 -7
  173. package/utils/string/withoutLeadingSlash.cjs +38 -0
  174. package/utils/string/withoutLeadingSlash.js +7 -4
  175. package/utils/string/withoutTrailingCharacters.cjs +32 -0
  176. package/utils/string/withoutTrailingCharacters.js +6 -3
  177. package/utils/string/withoutTrailingCharactersRecursive.cjs +43 -0
  178. package/utils/string/withoutTrailingCharactersRecursive.js +8 -7
  179. package/utils/string/withoutTrailingSlash.cjs +38 -0
  180. package/utils/string/withoutTrailingSlash.js +7 -4
  181. package/utils/throttle.cjs +40 -0
  182. package/utils/throttle.js +9 -9
  183. package/index.modern.js +0 -1
  184. package/index.umd.js +0 -1
@@ -0,0 +1,132 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+
29
+ // packages/js-toolkit/Base/managers/ServicesManager.js
30
+ var ServicesManager_exports = {};
31
+ __export(ServicesManager_exports, {
32
+ default: () => ServicesManager
33
+ });
34
+ var import_pointer = __toESM(require("../../services/pointer.cjs"), 1);
35
+ var import_raf = __toESM(require("../../services/raf.cjs"), 1);
36
+ var import_resize = __toESM(require("../../services/resize.cjs"), 1);
37
+ var import_scroll = __toESM(require("../../services/scroll.cjs"), 1);
38
+ var import_key = __toESM(require("../../services/key.cjs"), 1);
39
+ var import_load = __toESM(require("../../services/load.cjs"), 1);
40
+ var import_utils = require("../utils.cjs");
41
+ var SERVICES_MAP = {
42
+ scrolled: import_scroll.default,
43
+ resized: import_resize.default,
44
+ ticked: import_raf.default,
45
+ moved: import_pointer.default,
46
+ keyed: import_key.default,
47
+ loaded: import_load.default
48
+ };
49
+ var SERVICE_NAMES = Object.keys(SERVICES_MAP);
50
+ var ServicesManager = class {
51
+ __base;
52
+ __customServices = {};
53
+ get __services() {
54
+ return {
55
+ ...this.__customServices,
56
+ ...SERVICES_MAP
57
+ };
58
+ }
59
+ constructor(instance) {
60
+ Object.defineProperties(this, {
61
+ __base: {
62
+ enumerable: false,
63
+ writable: false,
64
+ value: instance
65
+ }
66
+ });
67
+ }
68
+ has(service) {
69
+ if (!(((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) && this.__services[service])) {
70
+ return false;
71
+ }
72
+ const { has } = this.__services[service]();
73
+ return has(this.__base.$id);
74
+ }
75
+ enable(service) {
76
+ if (this.has(service)) {
77
+ return this.disable.bind(this, service);
78
+ }
79
+ if (!((0, import_utils.hasMethod)(this.__base, service) || this.__base.__hasEvent(service)) || !this.__services[service]) {
80
+ return function noop() {
81
+ };
82
+ }
83
+ const { add } = this.__services[service]();
84
+ const self = this;
85
+ function serviceHandler(...args) {
86
+ self.__base.__callMethod(service, ...args);
87
+ }
88
+ add(this.__base.$id, serviceHandler);
89
+ return this.disable.bind(this, service);
90
+ }
91
+ enableAll() {
92
+ return Object.keys(this.__services).map((serviceName) => this.enable(serviceName));
93
+ }
94
+ disableAll() {
95
+ Object.keys(this.__services).forEach((serviceName) => {
96
+ this.disable(serviceName);
97
+ });
98
+ }
99
+ disable(service) {
100
+ if (!this.__services[service]) {
101
+ return;
102
+ }
103
+ const { remove } = this.__services[service]();
104
+ remove(this.__base.$id);
105
+ }
106
+ toggle(service, force) {
107
+ if (typeof force !== "undefined") {
108
+ if (force && !this.has(service)) {
109
+ this.enable(service);
110
+ }
111
+ if (!force && this.has(service)) {
112
+ this.disable(service);
113
+ }
114
+ } else if (this.has(service)) {
115
+ this.disable(service);
116
+ } else {
117
+ this.enable(service);
118
+ }
119
+ }
120
+ register(name, useFunction) {
121
+ this.__customServices[name] = useFunction;
122
+ this.__base.__addEmits(name);
123
+ }
124
+ unregister(name) {
125
+ if (SERVICE_NAMES.includes(name)) {
126
+ throw new Error(`[ServicesManager] The \`${name}\` core service can not be unregistered.`);
127
+ }
128
+ this.__base.__removeEmits(name);
129
+ delete this.__customServices[name];
130
+ }
131
+ };
132
+ module.exports = __toCommonJS(ServicesManager_exports);
@@ -1,8 +1,11 @@
1
1
  /**
2
- * @typedef {keyof SERVICES_MAP} ServiceName
2
+ * @typedef {typeof SERVICES_MAP & Record<string, () => ServiceInterface>} Services
3
+ * @typedef {keyof SERVICES_MAP|string} ServiceName
3
4
  */
4
5
  /**
5
6
  * Services management for the Base class.
7
+ *
8
+ * @todo Add support for disabled services on mount when the method is defined.
6
9
  */
7
10
  export default class ServicesManager {
8
11
  /**
@@ -81,7 +84,29 @@ export default class ServicesManager {
81
84
  unregister(name: string): void;
82
85
  }
83
86
  export type Base = import('../index').default;
84
- export type ServiceInterface = import('../../services').ServiceInterface;
87
+ export type BaseConstructor = import('../index').BaseConstructor;
88
+ export type ServiceInterface = import('../../services').ServiceInterface<any>;
89
+ export type Services = typeof SERVICES_MAP & Record<string, () => ServiceInterface>;
85
90
  export type ServiceName = keyof {
86
- [x: string]: () => import("../../services").ServiceInterface;
87
- };
91
+ scrolled: typeof useScroll;
92
+ resized: typeof useResize;
93
+ ticked: typeof useRaf;
94
+ moved: typeof usePointer;
95
+ keyed: typeof useKey;
96
+ loaded: typeof useLoad;
97
+ } | string;
98
+ declare namespace SERVICES_MAP {
99
+ export { useScroll as scrolled };
100
+ export { useResize as resized };
101
+ export { useRaf as ticked };
102
+ export { usePointer as moved };
103
+ export { useKey as keyed };
104
+ export { useLoad as loaded };
105
+ }
106
+ import useScroll from "../../services/scroll.js";
107
+ import useResize from "../../services/resize.js";
108
+ import useRaf from "../../services/raf.js";
109
+ import usePointer from "../../services/pointer.js";
110
+ import useKey from "../../services/key.js";
111
+ import useLoad from "../../services/load.js";
112
+ export {};
@@ -1,17 +1,11 @@
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
-
7
- import usePointer from '../../services/pointer.js';
8
- import useRaf from '../../services/raf.js';
9
- import useResize from '../../services/resize.js';
10
- import useScroll from '../../services/scroll.js';
11
- import useKey from '../../services/key.js';
12
- import useLoad from '../../services/load.js';
13
- import { hasMethod } from '../utils.js';
14
- var SERVICES_MAP = {
1
+ import usePointer from "../../services/pointer.js";
2
+ import useRaf from "../../services/raf.js";
3
+ import useResize from "../../services/resize.js";
4
+ import useScroll from "../../services/scroll.js";
5
+ import useKey from "../../services/key.js";
6
+ import useLoad from "../../services/load.js";
7
+ import { hasMethod } from "../utils.js";
8
+ const SERVICES_MAP = {
15
9
  scrolled: useScroll,
16
10
  resized: useResize,
17
11
  ticked: useRaf,
@@ -19,17 +13,17 @@ var SERVICES_MAP = {
19
13
  keyed: useKey,
20
14
  loaded: useLoad
21
15
  };
22
- var SERVICE_NAMES = Object.keys(SERVICES_MAP);
23
- export default class ServicesManager {
16
+ const SERVICE_NAMES = Object.keys(SERVICES_MAP);
17
+ class ServicesManager {
18
+ __base;
19
+ __customServices = {};
24
20
  get __services() {
25
- return _objectSpread(_objectSpread({}, this.__customServices), SERVICES_MAP);
21
+ return {
22
+ ...this.__customServices,
23
+ ...SERVICES_MAP
24
+ };
26
25
  }
27
-
28
26
  constructor(instance) {
29
- _defineProperty(this, "__base", void 0);
30
-
31
- _defineProperty(this, "__customServices", {});
32
-
33
27
  Object.defineProperties(this, {
34
28
  __base: {
35
29
  enumerable: false,
@@ -38,74 +32,49 @@ export default class ServicesManager {
38
32
  }
39
33
  });
40
34
  }
41
-
42
35
  has(service) {
43
36
  if (!((hasMethod(this.__base, service) || this.__base.__hasEvent(service)) && this.__services[service])) {
44
37
  return false;
45
38
  }
46
-
47
- var {
48
- has
49
- } = this.__services[service]();
50
-
39
+ const { has } = this.__services[service]();
51
40
  return has(this.__base.$id);
52
41
  }
53
-
54
42
  enable(service) {
55
43
  if (this.has(service)) {
56
44
  return this.disable.bind(this, service);
57
45
  }
58
-
59
46
  if (!(hasMethod(this.__base, service) || this.__base.__hasEvent(service)) || !this.__services[service]) {
60
- return function noop() {};
47
+ return function noop() {
48
+ };
61
49
  }
62
-
63
- var {
64
- add
65
- } = this.__services[service]();
66
-
67
- var self = this;
68
-
69
- function serviceHandler() {
70
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
71
- args[_key] = arguments[_key];
72
- }
73
-
50
+ const { add } = this.__services[service]();
51
+ const self = this;
52
+ function serviceHandler(...args) {
74
53
  self.__base.__callMethod(service, ...args);
75
54
  }
76
-
77
55
  add(this.__base.$id, serviceHandler);
78
56
  return this.disable.bind(this, service);
79
57
  }
80
-
81
58
  enableAll() {
82
- return Object.keys(this.__services).map(serviceName => this.enable(serviceName));
59
+ return Object.keys(this.__services).map((serviceName) => this.enable(serviceName));
83
60
  }
84
-
85
61
  disableAll() {
86
- Object.keys(this.__services).forEach(serviceName => {
62
+ Object.keys(this.__services).forEach((serviceName) => {
87
63
  this.disable(serviceName);
88
64
  });
89
65
  }
90
-
91
66
  disable(service) {
92
67
  if (!this.__services[service]) {
93
68
  return;
94
69
  }
95
-
96
- var {
97
- remove
98
- } = this.__services[service]();
99
-
70
+ const { remove } = this.__services[service]();
100
71
  remove(this.__base.$id);
101
72
  }
102
-
103
73
  toggle(service, force) {
104
- if (typeof force !== 'undefined') {
74
+ if (typeof force !== "undefined") {
105
75
  if (force && !this.has(service)) {
106
76
  this.enable(service);
107
77
  }
108
-
109
78
  if (!force && this.has(service)) {
110
79
  this.disable(service);
111
80
  }
@@ -115,17 +84,18 @@ export default class ServicesManager {
115
84
  this.enable(service);
116
85
  }
117
86
  }
118
-
119
87
  register(name, useFunction) {
120
88
  this.__customServices[name] = useFunction;
89
+ this.__base.__addEmits(name);
121
90
  }
122
-
123
91
  unregister(name) {
124
92
  if (SERVICE_NAMES.includes(name)) {
125
- throw new Error("[ServicesManager] The `".concat(name, "` core service can not be unregistered."));
93
+ throw new Error(`[ServicesManager] The \`${name}\` core service can not be unregistered.`);
126
94
  }
127
-
95
+ this.__base.__removeEmits(name);
128
96
  delete this.__customServices[name];
129
97
  }
130
-
131
- }
98
+ }
99
+ export {
100
+ ServicesManager as default
101
+ };
package/Base/utils.cjs ADDED
@@ -0,0 +1,45 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __reExport = (target, module2, copyDefault, desc) => {
11
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
12
+ for (let key of __getOwnPropNames(module2))
13
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
14
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
15
+ }
16
+ return target;
17
+ };
18
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
19
+ return (module2, temp) => {
20
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
+ };
22
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+
24
+ // packages/js-toolkit/Base/utils.js
25
+ var utils_exports = {};
26
+ __export(utils_exports, {
27
+ getComponentElements: () => getComponentElements,
28
+ hasMethod: () => hasMethod
29
+ });
30
+ function hasMethod(obj, name) {
31
+ return typeof obj[name] === "function";
32
+ }
33
+ function getComponentElements(nameOrSelector, element = document) {
34
+ const selector = `[data-component="${nameOrSelector}"]`;
35
+ let elements = [];
36
+ try {
37
+ elements = Array.from(element.querySelectorAll(selector));
38
+ } catch {
39
+ }
40
+ if (elements.length === 0) {
41
+ elements = Array.from(element.querySelectorAll(nameOrSelector));
42
+ }
43
+ return elements;
44
+ }
45
+ module.exports = __toCommonJS(utils_exports);
package/Base/utils.js CHANGED
@@ -1,18 +1,19 @@
1
- export function hasMethod(obj, name) {
2
- return typeof obj[name] === 'function';
1
+ function hasMethod(obj, name) {
2
+ return typeof obj[name] === "function";
3
3
  }
4
- export function getComponentElements(nameOrSelector) {
5
- var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;
6
- var selector = "[data-component=\"".concat(nameOrSelector, "\"]");
7
- var elements = [];
8
-
4
+ function getComponentElements(nameOrSelector, element = document) {
5
+ const selector = `[data-component="${nameOrSelector}"]`;
6
+ let elements = [];
9
7
  try {
10
8
  elements = Array.from(element.querySelectorAll(selector));
11
- } catch (_unused) {}
12
-
9
+ } catch {
10
+ }
13
11
  if (elements.length === 0) {
14
12
  elements = Array.from(element.querySelectorAll(nameOrSelector));
15
13
  }
16
-
17
14
  return elements;
18
- }
15
+ }
16
+ export {
17
+ getComponentElements,
18
+ hasMethod
19
+ };
package/README.md CHANGED
@@ -15,80 +15,23 @@ Install the latest version via NPM:
15
15
  npm install @studiometa/js-toolkit
16
16
  ```
17
17
 
18
- ## Concept
18
+ ## Documentation
19
19
 
20
- [] todo
20
+ This project contains a JavaScript micro-framework and its utility functions whose main objectives are:
21
21
 
22
- ## Usage
22
+ - Enforcing best-practice and consistency between projects
23
+ - Using elements from the DOM easily
24
+ - Enabling custom behaviours on component initialization or other user events
25
+ - Disabling custom behaviours on component destruction or other user events
26
+ - Initializing components in the right place at the right time
27
+ - Defining dependencies between components
23
28
 
24
- Import the `Base` class and extend it to create your components:
29
+ Visit [js-toolkit.studiometa.dev](https://js-toolkit.studiometa.dev) to learn more.
25
30
 
26
- ```js
27
- import { Base, createApp } from '@studiometa/js-toolkit';
31
+ ## Contributing
28
32
 
29
- class Component extends Base {
30
- static config = {
31
- name: 'Component',
32
- }
33
+ This projects follows the [Git Flow](https://github.com/petervanderdoes/gitflow-avh) methodology to manage its branches and features. The packages and their dependencies are managed with NPM workspaces. The files are linted with ESLint, type checked with TypeScript and formatted with Prettier.
33
34
 
34
- sayHello() {
35
- console.log('Hello!');
36
- }
37
- }
35
+ ## License
38
36
 
39
- class App extends Base {
40
- static config = {
41
- name: 'App',
42
- components: {
43
- Component,
44
- },
45
- refs: ['btn', 'items[]'],
46
- options: {
47
- foo: String,
48
- bar: { type: String, default: 'bar' },
49
- }
50
- };
51
-
52
- mounted() {
53
- this.$log('mounted');
54
-
55
- // Options
56
- this.$options.name; // 'App'
57
- this.$options.log; // true
58
- this.$options.debug; // false
59
- this.$options.foo // ''
60
- this.$options.bar // 'bar'
61
-
62
- // Children
63
- this.$children.Component; // Array<Component>
64
-
65
- // DOM references
66
- this.$refs.btn; // <button data-ref="btn"></button>
67
- this.$refs.items[0]; // <li data-ref="items[]"></li>
68
- }
69
-
70
- destroyed() {
71
- this.$log('destroyed');
72
- }
73
-
74
- scrolled(props) {
75
- this.$log('scrolled', props);
76
- }
77
-
78
- resized(props) {
79
- this.$log('resized', props);
80
- }
81
- }
82
-
83
- export default createApp(App, document.body);
84
- ```
85
-
86
- Read the [documentation](https://js-toolkit.studiometa.dev/) to learn more.
87
-
88
- ## Contribution
89
-
90
- This projects follows the [Git Flow](https://github.com/petervanderdoes/gitflow-avh) methodology to manage its branches and features.
91
-
92
- The packages from this project are managed with NPM workspaces.
93
-
94
- The files are linted with ESLint, type checked with TypeScript and formatted with Prettier.
37
+ See [LICENSE](./LICENSE).
@@ -0,0 +1,49 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+
29
+ // packages/js-toolkit/decorators/index.js
30
+ var decorators_exports = {};
31
+ __export(decorators_exports, {
32
+ withBreakpointManager: () => import_withBreakpointManager.default,
33
+ withBreakpointObserver: () => import_withBreakpointObserver.default,
34
+ withDrag: () => import_withDrag.default,
35
+ withExtraConfig: () => import_withExtraConfig.default,
36
+ withIntersectionObserver: () => import_withIntersectionObserver.default,
37
+ withMountWhenInView: () => import_withMountWhenInView.default,
38
+ withScrolledInView: () => import_withScrolledInView.default,
39
+ withVue2: () => import_withVue2.default
40
+ });
41
+ var import_withBreakpointManager = __toESM(require("./withBreakpointManager.cjs"), 1);
42
+ var import_withBreakpointObserver = __toESM(require("./withBreakpointObserver.cjs"), 1);
43
+ var import_withDrag = __toESM(require("./withDrag.cjs"), 1);
44
+ var import_withExtraConfig = __toESM(require("./withExtraConfig.cjs"), 1);
45
+ var import_withIntersectionObserver = __toESM(require("./withIntersectionObserver.cjs"), 1);
46
+ var import_withMountWhenInView = __toESM(require("./withMountWhenInView.cjs"), 1);
47
+ var import_withScrolledInView = __toESM(require("./withScrolledInView.cjs"), 1);
48
+ var import_withVue2 = __toESM(require("./withVue2.cjs"), 1);
49
+ module.exports = __toCommonJS(decorators_exports);
@@ -1,9 +1,8 @@
1
- import withBreakpointManager from "./withBreakpointManager.js";
2
- import withBreakpointObserver from "./withBreakpointObserver.js";
3
- import withDrag from "./withDrag.js";
4
- import withExtraConfig from "./withExtraConfig.js";
5
- import withIntersectionObserver from "./withIntersectionObserver.js";
6
- import withMountWhenInView from "./withMountWhenInView.js";
7
- import withScrolledInView from "./withScrolledInView.js";
8
- import withVue2 from "./withVue2.js";
9
- export { withBreakpointManager, withBreakpointObserver, withDrag, withExtraConfig, withIntersectionObserver, withMountWhenInView, withScrolledInView, withVue2 };
1
+ export { default as withBreakpointManager } from "./withBreakpointManager.js";
2
+ export { default as withBreakpointObserver } from "./withBreakpointObserver.js";
3
+ export { default as withDrag } from "./withDrag.js";
4
+ export { default as withExtraConfig } from "./withExtraConfig.js";
5
+ export { default as withIntersectionObserver } from "./withIntersectionObserver.js";
6
+ export { default as withMountWhenInView } from "./withMountWhenInView.js";
7
+ export { default as withScrolledInView } from "./withScrolledInView.js";
8
+ export { default as withVue2 } from "./withVue2.js";
@@ -1,9 +1,18 @@
1
- import withBreakpointManager from './withBreakpointManager.js';
2
- import withBreakpointObserver from './withBreakpointObserver.js';
3
- import withDrag from './withDrag.js';
4
- import withExtraConfig from './withExtraConfig.js';
5
- import withIntersectionObserver from './withIntersectionObserver.js';
6
- import withMountWhenInView from './withMountWhenInView.js';
7
- import withScrolledInView from './withScrolledInView.js';
8
- import withVue2 from './withVue2.js';
9
- export { withBreakpointManager, withBreakpointObserver, withDrag, withExtraConfig, withIntersectionObserver, withMountWhenInView, withScrolledInView, withVue2 };
1
+ import { default as default2 } from "./withBreakpointManager.js";
2
+ import { default as default3 } from "./withBreakpointObserver.js";
3
+ import { default as default4 } from "./withDrag.js";
4
+ import { default as default5 } from "./withExtraConfig.js";
5
+ import { default as default6 } from "./withIntersectionObserver.js";
6
+ import { default as default7 } from "./withMountWhenInView.js";
7
+ import { default as default8 } from "./withScrolledInView.js";
8
+ import { default as default9 } from "./withVue2.js";
9
+ export {
10
+ default2 as withBreakpointManager,
11
+ default3 as withBreakpointObserver,
12
+ default4 as withDrag,
13
+ default5 as withExtraConfig,
14
+ default6 as withIntersectionObserver,
15
+ default7 as withMountWhenInView,
16
+ default8 as withScrolledInView,
17
+ default9 as withVue2
18
+ };