@studiometa/js-toolkit 2.0.0-beta.12 → 2.0.0-beta.16

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 (105) hide show
  1. package/Base/index.cjs +72 -64
  2. package/Base/index.js +60 -54
  3. package/Base/managers/ChildrenManager.cjs +20 -11
  4. package/Base/managers/ChildrenManager.js +15 -8
  5. package/Base/managers/EventsManager.cjs +56 -48
  6. package/Base/managers/EventsManager.js +50 -44
  7. package/Base/managers/OptionsManager.cjs +38 -28
  8. package/Base/managers/OptionsManager.js +35 -27
  9. package/Base/managers/RefsManager.cjs +14 -6
  10. package/Base/managers/RefsManager.js +10 -4
  11. package/Base/managers/ServicesManager.cjs +27 -19
  12. package/Base/managers/ServicesManager.js +14 -8
  13. package/Base/utils.cjs +3 -0
  14. package/decorators/index.cjs +11 -8
  15. package/decorators/withBreakpointManager.cjs +5 -2
  16. package/decorators/withBreakpointObserver.cjs +20 -12
  17. package/decorators/withBreakpointObserver.js +17 -11
  18. package/decorators/withDrag.cjs +15 -7
  19. package/decorators/withDrag.js +12 -6
  20. package/decorators/withExtraConfig.cjs +11 -3
  21. package/decorators/withExtraConfig.js +9 -3
  22. package/decorators/withIntersectionObserver.cjs +23 -15
  23. package/decorators/withIntersectionObserver.js +21 -15
  24. package/decorators/withMountWhenInView.cjs +26 -18
  25. package/decorators/withMountWhenInView.js +24 -18
  26. package/decorators/withScrolledInView.cjs +43 -32
  27. package/decorators/withScrolledInView.js +39 -30
  28. package/decorators/withVue2.cjs +16 -9
  29. package/decorators/withVue2.js +14 -9
  30. package/helpers/createApp.cjs +3 -0
  31. package/helpers/importOnInteraction.cjs +5 -2
  32. package/helpers/importOnInteraction.js +1 -1
  33. package/helpers/importWhenIdle.cjs +6 -2
  34. package/helpers/importWhenIdle.js +3 -2
  35. package/helpers/importWhenVisible.cjs +5 -2
  36. package/helpers/importWhenVisible.js +1 -1
  37. package/helpers/index.cjs +7 -4
  38. package/helpers/utils.cjs +4 -1
  39. package/index.cjs +7 -4
  40. package/package.json +1 -2
  41. package/services/Service.cjs +11 -3
  42. package/services/Service.js +7 -1
  43. package/services/drag.cjs +70 -41
  44. package/services/drag.d.ts +1 -0
  45. package/services/drag.js +60 -33
  46. package/services/index.cjs +10 -7
  47. package/services/key.cjs +35 -23
  48. package/services/key.js +27 -17
  49. package/services/load.cjs +19 -8
  50. package/services/load.js +12 -3
  51. package/services/pointer.cjs +45 -33
  52. package/services/pointer.js +38 -28
  53. package/services/raf.cjs +24 -13
  54. package/services/raf.js +16 -7
  55. package/services/resize.cjs +24 -13
  56. package/services/resize.js +16 -7
  57. package/services/scroll.cjs +44 -33
  58. package/services/scroll.js +36 -27
  59. package/utils/collide/boundingRectToCircle.cjs +3 -0
  60. package/utils/collide/collideCircleCircle.cjs +3 -0
  61. package/utils/collide/collideCircleRect.cjs +3 -0
  62. package/utils/collide/collidePointCircle.cjs +3 -0
  63. package/utils/collide/collidePointRect.cjs +3 -0
  64. package/utils/collide/collideRectRect.cjs +3 -0
  65. package/utils/collide/index.cjs +9 -6
  66. package/utils/css/classes.cjs +3 -0
  67. package/utils/css/index.cjs +7 -4
  68. package/utils/css/matrix.cjs +5 -1
  69. package/utils/css/matrix.js +2 -1
  70. package/utils/css/styles.cjs +4 -1
  71. package/utils/css/transition.cjs +16 -8
  72. package/utils/css/transition.js +8 -2
  73. package/utils/debounce.cjs +3 -0
  74. package/utils/focusTrap.cjs +6 -3
  75. package/utils/history.cjs +4 -1
  76. package/utils/index.cjs +15 -12
  77. package/utils/keyCodes.cjs +3 -0
  78. package/utils/math/clamp.cjs +3 -0
  79. package/utils/math/clamp01.cjs +4 -1
  80. package/utils/math/damp.cjs +3 -0
  81. package/utils/math/ease.cjs +17 -14
  82. package/utils/math/index.cjs +11 -8
  83. package/utils/math/inertiaFinalValue.cjs +3 -0
  84. package/utils/math/lerp.cjs +3 -0
  85. package/utils/math/map.cjs +3 -0
  86. package/utils/math/round.cjs +3 -0
  87. package/utils/memoize.cjs +3 -0
  88. package/utils/nextFrame.cjs +3 -0
  89. package/utils/object/autoBind.cjs +4 -1
  90. package/utils/object/getAllProperties.cjs +3 -0
  91. package/utils/object/index.cjs +6 -3
  92. package/utils/object/isObject.cjs +3 -0
  93. package/utils/scrollTo.cjs +4 -1
  94. package/utils/string/index.cjs +13 -10
  95. package/utils/string/withLeadingCharacters.cjs +4 -1
  96. package/utils/string/withLeadingSlash.cjs +4 -1
  97. package/utils/string/withTrailingCharacters.cjs +4 -1
  98. package/utils/string/withTrailingSlash.cjs +4 -1
  99. package/utils/string/withoutLeadingCharacters.cjs +3 -0
  100. package/utils/string/withoutLeadingCharactersRecursive.cjs +4 -1
  101. package/utils/string/withoutLeadingSlash.cjs +4 -1
  102. package/utils/string/withoutTrailingCharacters.cjs +3 -0
  103. package/utils/string/withoutTrailingCharactersRecursive.cjs +4 -1
  104. package/utils/string/withoutTrailingSlash.cjs +4 -1
  105. package/utils/throttle.cjs +3 -0
@@ -1,35 +1,41 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
1
7
  import withMountWhenInView from "./withMountWhenInView.js";
2
8
  import { damp, clamp, clamp01 } from "../utils/index.js";
3
9
  function withScrolledInView(BaseClass, options) {
4
- return class extends withMountWhenInView(BaseClass, options) {
5
- static config = {
6
- name: `${BaseClass.config.name}WithMountWhenInView`,
7
- emits: ["scrolledInView"]
8
- };
9
- __props = {
10
- start: {
11
- x: 0,
12
- y: 0
13
- },
14
- end: {
15
- x: 0,
16
- y: 0
17
- },
18
- current: {
19
- x: 0,
20
- y: 0
21
- },
22
- progress: {
23
- x: 0,
24
- y: 0
25
- },
26
- dampedProgress: {
27
- x: 0,
28
- y: 0
29
- }
30
- };
31
- dampFactor = 0.1;
32
- dampPrecision = 1e-3;
10
+ var _a;
11
+ return _a = class extends withMountWhenInView(BaseClass, options) {
12
+ constructor() {
13
+ super(...arguments);
14
+ __publicField(this, "__props", {
15
+ start: {
16
+ x: 0,
17
+ y: 0
18
+ },
19
+ end: {
20
+ x: 0,
21
+ y: 0
22
+ },
23
+ current: {
24
+ x: 0,
25
+ y: 0
26
+ },
27
+ progress: {
28
+ x: 0,
29
+ y: 0
30
+ },
31
+ dampedProgress: {
32
+ x: 0,
33
+ y: 0
34
+ }
35
+ });
36
+ __publicField(this, "dampFactor", 0.1);
37
+ __publicField(this, "dampPrecision", 1e-3);
38
+ }
33
39
  mounted() {
34
40
  this.__setProps();
35
41
  }
@@ -74,7 +80,10 @@ function withScrolledInView(BaseClass, options) {
74
80
  this.__props.dampedProgress.x = damp(xProgress, this.__props.dampedProgress.x);
75
81
  this.__props.dampedProgress.y = damp(yProgress, this.__props.dampedProgress.y);
76
82
  }
77
- };
83
+ }, __publicField(_a, "config", {
84
+ name: `${BaseClass.config.name}WithMountWhenInView`,
85
+ emits: ["scrolledInView"]
86
+ }), _a;
78
87
  }
79
88
  export {
80
89
  withScrolledInView as default
@@ -2,6 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
6
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
@@ -20,21 +21,22 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
21
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
22
  };
22
23
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
24
+ var __publicField = (obj, key, value) => {
25
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
26
+ return value;
27
+ };
28
+
29
+ // packages/js-toolkit/decorators/withVue2.js
23
30
  var withVue2_exports = {};
24
31
  __export(withVue2_exports, {
25
32
  default: () => withVue2_default
26
33
  });
27
34
  var withVue2_default = (BaseClass, Vue) => {
28
- return class WithVue2 extends BaseClass {
29
- static config = {
30
- ...BaseClass.config || {},
31
- name: `${BaseClass?.config?.name ?? ""}WithVue`,
32
- refs: [...BaseClass?.config?.refs ?? [], "vue"]
33
- };
34
- $vue;
35
- static vueConfig;
35
+ var _a, _b, _c;
36
+ return _c = class extends BaseClass {
36
37
  constructor(element) {
37
38
  super(element);
39
+ __publicField(this, "$vue");
38
40
  const { vueConfig } = this.constructor;
39
41
  if (!vueConfig) {
40
42
  throw new Error("[withVue] You must define a `vueConfig` object.");
@@ -53,6 +55,11 @@ var withVue2_default = (BaseClass, Vue) => {
53
55
  this.$vue.$destroy();
54
56
  });
55
57
  }
56
- };
58
+ }, __publicField(_c, "config", {
59
+ ...BaseClass.config,
60
+ name: `${BaseClass.config.name}WithVue`,
61
+ refs: [...(_b = (_a = BaseClass.config) == null ? void 0 : _a.refs) != null ? _b : [], "vue"]
62
+ }), __publicField(_c, "vueConfig"), _c;
57
63
  };
58
64
  module.exports = __toCommonJS(withVue2_exports);
65
+ if (module.exports.default) module.exports = module.exports.default;
@@ -1,14 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
1
7
  var withVue2_default = (BaseClass, Vue) => {
2
- return class WithVue2 extends BaseClass {
3
- static config = {
4
- ...BaseClass.config || {},
5
- name: `${BaseClass?.config?.name ?? ""}WithVue`,
6
- refs: [...BaseClass?.config?.refs ?? [], "vue"]
7
- };
8
- $vue;
9
- static vueConfig;
8
+ var _a, _b, _c;
9
+ return _c = class extends BaseClass {
10
10
  constructor(element) {
11
11
  super(element);
12
+ __publicField(this, "$vue");
12
13
  const { vueConfig } = this.constructor;
13
14
  if (!vueConfig) {
14
15
  throw new Error("[withVue] You must define a `vueConfig` object.");
@@ -27,7 +28,11 @@ var withVue2_default = (BaseClass, Vue) => {
27
28
  this.$vue.$destroy();
28
29
  });
29
30
  }
30
- };
31
+ }, __publicField(_c, "config", {
32
+ ...BaseClass.config,
33
+ name: `${BaseClass.config.name}WithVue`,
34
+ refs: [...(_b = (_a = BaseClass.config) == null ? void 0 : _a.refs) != null ? _b : [], "vue"]
35
+ }), __publicField(_c, "vueConfig"), _c;
31
36
  };
32
37
  export {
33
38
  withVue2_default as default
@@ -20,6 +20,8 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
20
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
21
  };
22
22
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+
24
+ // packages/js-toolkit/helpers/createApp.js
23
25
  var createApp_exports = {};
24
26
  __export(createApp_exports, {
25
27
  default: () => createApp
@@ -52,3 +54,4 @@ function createApp(App, rootElement) {
52
54
  };
53
55
  }
54
56
  module.exports = __toCommonJS(createApp_exports);
57
+ if (module.exports.default) module.exports = module.exports.default;
@@ -20,11 +20,13 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
20
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
21
  };
22
22
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+
24
+ // packages/js-toolkit/helpers/importOnInteraction.js
23
25
  var importOnInteraction_exports = {};
24
26
  __export(importOnInteraction_exports, {
25
27
  default: () => importOnInteraction
26
28
  });
27
- var import_utils = require("./utils.js");
29
+ var import_utils = require("./utils.cjs");
28
30
  function importOnInteraction(fn, nameOrSelectorOrElement, events, parent) {
29
31
  const normalizedEvents = typeof events === "string" ? [events] : events;
30
32
  let ResolvedClass;
@@ -35,7 +37,7 @@ function importOnInteraction(fn, nameOrSelectorOrElement, events, parent) {
35
37
  });
36
38
  };
37
39
  return new Promise((resolve) => {
38
- const elements = (0, import_utils.getTargetElements)(nameOrSelectorOrElement, parent?.$el);
40
+ const elements = (0, import_utils.getTargetElements)(nameOrSelectorOrElement, parent == null ? void 0 : parent.$el);
39
41
  const eventListenerOptions = {
40
42
  capture: true,
41
43
  passive: true,
@@ -52,3 +54,4 @@ function importOnInteraction(fn, nameOrSelectorOrElement, events, parent) {
52
54
  });
53
55
  }
54
56
  module.exports = __toCommonJS(importOnInteraction_exports);
57
+ if (module.exports.default) module.exports = module.exports.default;
@@ -9,7 +9,7 @@ function importOnInteraction(fn, nameOrSelectorOrElement, events, parent) {
9
9
  });
10
10
  };
11
11
  return new Promise((resolve) => {
12
- const elements = getTargetElements(nameOrSelectorOrElement, parent?.$el);
12
+ const elements = getTargetElements(nameOrSelectorOrElement, parent == null ? void 0 : parent.$el);
13
13
  const eventListenerOptions = {
14
14
  capture: true,
15
15
  passive: true,
@@ -20,6 +20,8 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
20
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
21
  };
22
22
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+
24
+ // packages/js-toolkit/helpers/importWhenIdle.js
23
25
  var importWhenIdle_exports = {};
24
26
  __export(importWhenIdle_exports, {
25
27
  default: () => importWhenIdle
@@ -33,7 +35,8 @@ function importWhenIdle(fn, options) {
33
35
  });
34
36
  };
35
37
  return new Promise((resolve) => {
36
- const timeout = options?.timeout ?? 1;
38
+ var _a;
39
+ const timeout = (_a = options == null ? void 0 : options.timeout) != null ? _a : 1;
37
40
  if (!("requestIdleCallback" in window)) {
38
41
  setTimeout(() => {
39
42
  resolver(resolve);
@@ -43,8 +46,9 @@ function importWhenIdle(fn, options) {
43
46
  setTimeout(() => {
44
47
  resolver(resolve);
45
48
  }, 0);
46
- }, { timeout: options?.timeout });
49
+ }, { timeout: options == null ? void 0 : options.timeout });
47
50
  }
48
51
  });
49
52
  }
50
53
  module.exports = __toCommonJS(importWhenIdle_exports);
54
+ if (module.exports.default) module.exports = module.exports.default;
@@ -7,7 +7,8 @@ function importWhenIdle(fn, options) {
7
7
  });
8
8
  };
9
9
  return new Promise((resolve) => {
10
- const timeout = options?.timeout ?? 1;
10
+ var _a;
11
+ const timeout = (_a = options == null ? void 0 : options.timeout) != null ? _a : 1;
11
12
  if (!("requestIdleCallback" in window)) {
12
13
  setTimeout(() => {
13
14
  resolver(resolve);
@@ -17,7 +18,7 @@ function importWhenIdle(fn, options) {
17
18
  setTimeout(() => {
18
19
  resolver(resolve);
19
20
  }, 0);
20
- }, { timeout: options?.timeout });
21
+ }, { timeout: options == null ? void 0 : options.timeout });
21
22
  }
22
23
  });
23
24
  }
@@ -20,11 +20,13 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
20
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
21
  };
22
22
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+
24
+ // packages/js-toolkit/helpers/importWhenVisible.js
23
25
  var importWhenVisible_exports = {};
24
26
  __export(importWhenVisible_exports, {
25
27
  default: () => importWhenVisible
26
28
  });
27
- var import_utils = require("./utils.js");
29
+ var import_utils = require("./utils.cjs");
28
30
  function importWhenVisible(fn, nameOrSelectorOrElement, parent, observerOptions = {}) {
29
31
  let ResolvedClass;
30
32
  const resolver = (resolve, cb) => {
@@ -45,8 +47,9 @@ function importWhenVisible(fn, nameOrSelectorOrElement, parent, observerOptions
45
47
  }, 0);
46
48
  }
47
49
  }, observerOptions);
48
- const elements = (0, import_utils.getTargetElements)(nameOrSelectorOrElement, parent?.$el);
50
+ const elements = (0, import_utils.getTargetElements)(nameOrSelectorOrElement, parent == null ? void 0 : parent.$el);
49
51
  elements.forEach((element) => observer.observe(element));
50
52
  });
51
53
  }
52
54
  module.exports = __toCommonJS(importWhenVisible_exports);
55
+ if (module.exports.default) module.exports = module.exports.default;
@@ -19,7 +19,7 @@ function importWhenVisible(fn, nameOrSelectorOrElement, parent, observerOptions
19
19
  }, 0);
20
20
  }
21
21
  }, observerOptions);
22
- const elements = getTargetElements(nameOrSelectorOrElement, parent?.$el);
22
+ const elements = getTargetElements(nameOrSelectorOrElement, parent == null ? void 0 : parent.$el);
23
23
  elements.forEach((element) => observer.observe(element));
24
24
  });
25
25
  }
package/helpers/index.cjs CHANGED
@@ -25,6 +25,8 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
25
25
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
26
  };
27
27
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+
29
+ // packages/js-toolkit/helpers/index.js
28
30
  var helpers_exports = {};
29
31
  __export(helpers_exports, {
30
32
  createApp: () => import_createApp.default,
@@ -32,8 +34,9 @@ __export(helpers_exports, {
32
34
  importWhenIdle: () => import_importWhenIdle.default,
33
35
  importWhenVisible: () => import_importWhenVisible.default
34
36
  });
35
- var import_createApp = __toESM(require("./createApp.js"), 1);
36
- var import_importOnInteraction = __toESM(require("./importOnInteraction.js"), 1);
37
- var import_importWhenIdle = __toESM(require("./importWhenIdle.js"), 1);
38
- var import_importWhenVisible = __toESM(require("./importWhenVisible.js"), 1);
37
+ var import_createApp = __toESM(require("./createApp.cjs"), 1);
38
+ var import_importOnInteraction = __toESM(require("./importOnInteraction.cjs"), 1);
39
+ var import_importWhenIdle = __toESM(require("./importWhenIdle.cjs"), 1);
40
+ var import_importWhenVisible = __toESM(require("./importWhenVisible.cjs"), 1);
39
41
  module.exports = __toCommonJS(helpers_exports);
42
+ if (module.exports.default) module.exports = module.exports.default;
package/helpers/utils.cjs CHANGED
@@ -20,11 +20,13 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
20
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
21
  };
22
22
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+
24
+ // packages/js-toolkit/helpers/utils.js
23
25
  var utils_exports = {};
24
26
  __export(utils_exports, {
25
27
  getTargetElements: () => getTargetElements
26
28
  });
27
- var import_utils = require("../Base/utils.js");
29
+ var import_utils = require("../Base/utils.cjs");
28
30
  function getTargetElements(nameOrSelectorOrElement, context) {
29
31
  if (typeof nameOrSelectorOrElement === "string") {
30
32
  return (0, import_utils.getComponentElements)(nameOrSelectorOrElement, context);
@@ -35,3 +37,4 @@ function getTargetElements(nameOrSelectorOrElement, context) {
35
37
  return nameOrSelectorOrElement;
36
38
  }
37
39
  module.exports = __toCommonJS(utils_exports);
40
+ if (module.exports.default) module.exports = module.exports.default;
package/index.cjs CHANGED
@@ -25,12 +25,15 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
25
25
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
26
  };
27
27
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+
29
+ // packages/js-toolkit/index.js
28
30
  var js_toolkit_exports = {};
29
31
  __export(js_toolkit_exports, {
30
32
  Base: () => import_Base.default
31
33
  });
32
- var import_Base = __toESM(require("./Base/index.js"), 1);
33
- __reExport(js_toolkit_exports, require("./decorators/index.js"));
34
- __reExport(js_toolkit_exports, require("./helpers/index.js"));
35
- __reExport(js_toolkit_exports, require("./services/index.js"));
34
+ var import_Base = __toESM(require("./Base/index.cjs"), 1);
35
+ __reExport(js_toolkit_exports, require("./decorators/index.cjs"));
36
+ __reExport(js_toolkit_exports, require("./helpers/index.cjs"));
37
+ __reExport(js_toolkit_exports, require("./services/index.cjs"));
36
38
  module.exports = __toCommonJS(js_toolkit_exports);
39
+ if (module.exports.default) module.exports = module.exports.default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studiometa/js-toolkit",
3
- "version": "2.0.0-beta.12",
3
+ "version": "2.0.0-beta.16",
4
4
  "description": "A set of useful little bits of JavaScript to boost your project! 🚀",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -39,7 +39,6 @@
39
39
  "toolkit"
40
40
  ],
41
41
  "dependencies": {
42
- "@babel/runtime": "^7.15.4",
43
42
  "deepmerge": "^4.2.2"
44
43
  }
45
44
  }
@@ -2,6 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
6
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
@@ -20,16 +21,22 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
21
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
22
  };
22
23
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
24
+ var __publicField = (obj, key, value) => {
25
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
26
+ return value;
27
+ };
28
+
29
+ // packages/js-toolkit/services/Service.js
23
30
  var Service_exports = {};
24
31
  __export(Service_exports, {
25
32
  default: () => Service
26
33
  });
27
- class Service {
34
+ var Service = class {
28
35
  constructor() {
36
+ __publicField(this, "props");
29
37
  this.callbacks = /* @__PURE__ */ new Map();
30
38
  this.isInit = false;
31
39
  }
32
- props;
33
40
  updateProps(...args) {
34
41
  this.props = args;
35
42
  throw new Error("The `updateProps` method must be implemented.");
@@ -69,5 +76,6 @@ class Service {
69
76
  });
70
77
  return this;
71
78
  }
72
- }
79
+ };
73
80
  module.exports = __toCommonJS(Service_exports);
81
+ if (module.exports.default) module.exports = module.exports.default;
@@ -1,9 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
1
7
  class Service {
2
8
  constructor() {
9
+ __publicField(this, "props");
3
10
  this.callbacks = /* @__PURE__ */ new Map();
4
11
  this.isInit = false;
5
12
  }
6
- props;
7
13
  updateProps(...args) {
8
14
  this.props = args;
9
15
  throw new Error("The `updateProps` method must be implemented.");
package/services/drag.cjs CHANGED
@@ -4,6 +4,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
8
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
@@ -25,55 +26,62 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
25
26
  return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
27
  };
27
28
  })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
29
+ var __publicField = (obj, key, value) => {
30
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
31
+ return value;
32
+ };
33
+
34
+ // packages/js-toolkit/services/drag.js
28
35
  var drag_exports = {};
29
36
  __export(drag_exports, {
30
37
  default: () => useDrag
31
38
  });
32
- var import_Service = __toESM(require("./Service.js"), 1);
33
- var import_pointer = __toESM(require("./pointer.js"), 1);
34
- var import_raf = __toESM(require("./raf.js"), 1);
35
- var import_inertiaFinalValue = __toESM(require("../utils/math/inertiaFinalValue.js"), 1);
36
- const MODES = {
39
+ var import_Service = __toESM(require("./Service.cjs"), 1);
40
+ var import_pointer = __toESM(require("./pointer.cjs"), 1);
41
+ var import_raf = __toESM(require("./raf.cjs"), 1);
42
+ var import_inertiaFinalValue = __toESM(require("../utils/math/inertiaFinalValue.cjs"), 1);
43
+ var MODES = {
37
44
  START: "start",
38
45
  DRAG: "drag",
39
46
  DROP: "drop",
40
47
  INERTIA: "inertia",
41
48
  STOP: "stop"
42
49
  };
43
- let instanceIds = 0;
44
- class Drag extends import_Service.default {
45
- id;
46
- props = {
47
- target: null,
48
- mode: void 0,
49
- isGrabbing: false,
50
- hasInertia: false,
51
- x: 0,
52
- y: 0,
53
- delta: {
54
- x: 0,
55
- y: 0
56
- },
57
- origin: {
58
- x: 0,
59
- y: 0
60
- },
61
- distance: {
62
- x: 0,
63
- y: 0
64
- },
65
- final: {
66
- x: 0,
67
- y: 0
68
- }
69
- };
70
- options = {
71
- dampFactor: 0.85
72
- };
50
+ var id = 0;
51
+ var Drag = class extends import_Service.default {
73
52
  constructor(target, options = {}) {
74
53
  super();
75
- instanceIds += 1;
76
- this.id = `drag-${instanceIds}`;
54
+ __publicField(this, "id");
55
+ __publicField(this, "props", {
56
+ target: null,
57
+ mode: void 0,
58
+ isGrabbing: false,
59
+ hasInertia: false,
60
+ x: 0,
61
+ y: 0,
62
+ delta: {
63
+ x: 0,
64
+ y: 0
65
+ },
66
+ origin: {
67
+ x: 0,
68
+ y: 0
69
+ },
70
+ distance: {
71
+ x: 0,
72
+ y: 0
73
+ },
74
+ final: {
75
+ x: 0,
76
+ y: 0
77
+ }
78
+ });
79
+ __publicField(this, "options", {
80
+ dampFactor: 0.85,
81
+ dragTreshold: 10
82
+ });
83
+ id += 1;
84
+ this.id = `drag-${id}`;
77
85
  this.props.target = target;
78
86
  this.options = { ...this.options, ...options };
79
87
  this.pointerHandler = this.pointerHandler.bind(this);
@@ -84,18 +92,34 @@ class Drag extends import_Service.default {
84
92
  const options = { passive: true };
85
93
  this.props.target.addEventListener("mousedown", this, options);
86
94
  this.props.target.addEventListener("touchstart", this, options);
95
+ this.props.target.addEventListener("dragstart", this, { capture: true });
96
+ this.props.target.addEventListener("click", this, { capture: true });
87
97
  const pointer = (0, import_pointer.default)();
88
98
  pointer.add(this.id, this.pointerHandler);
89
99
  return this;
90
100
  }
91
101
  kill() {
92
- this.props.target.removeEventListener("mousemove", this);
93
- this.props.target.removeEventListener("touchmove", this);
102
+ this.props.target.removeEventListener("mousedown", this);
103
+ this.props.target.removeEventListener("touchstart", this);
104
+ this.props.target.removeEventListener("dragstart", this);
105
+ this.props.target.removeEventListener("click", this);
94
106
  const pointer = (0, import_pointer.default)();
95
107
  pointer.remove(this.id);
96
108
  return this;
97
109
  }
98
110
  handleEvent(event) {
111
+ if (event.type === "dragstart") {
112
+ event.preventDefault();
113
+ return;
114
+ }
115
+ if (event.type === "click") {
116
+ if (this.__shouldPreventClick) {
117
+ event.stopImmediatePropagation();
118
+ event.stopPropagation();
119
+ event.preventDefault();
120
+ }
121
+ return;
122
+ }
99
123
  const x = event instanceof MouseEvent ? event.clientX : event.touches[0].clientX;
100
124
  const y = event instanceof MouseEvent ? event.clientY : event.touches[0].clientY;
101
125
  this.start(x, y);
@@ -152,6 +176,7 @@ class Drag extends import_Service.default {
152
176
  }
153
177
  }
154
178
  pointerHandler(props) {
179
+ props.event.preventDefault();
155
180
  if (this.props.isGrabbing) {
156
181
  this.props.x = props.x;
157
182
  this.props.y = props.y;
@@ -173,8 +198,11 @@ class Drag extends import_Service.default {
173
198
  updateProps() {
174
199
  return this.props;
175
200
  }
176
- }
177
- const instances = /* @__PURE__ */ new WeakMap();
201
+ get __shouldPreventClick() {
202
+ return Math.abs(this.props.distance.x) > this.options.dragTreshold || Math.abs(this.props.distance.y) > this.options.dragTreshold;
203
+ }
204
+ };
205
+ var instances = /* @__PURE__ */ new WeakMap();
178
206
  function useDrag(target, options) {
179
207
  let drag = instances.get(target);
180
208
  if (!drag) {
@@ -190,3 +218,4 @@ function useDrag(target, options) {
190
218
  return drag;
191
219
  }
192
220
  module.exports = __toCommonJS(drag_exports);
221
+ if (module.exports.default) module.exports = module.exports.default;
@@ -74,4 +74,5 @@ export type DragServiceProps = {
74
74
  };
75
75
  export type DragServiceOptions = {
76
76
  dampFactor?: number | undefined;
77
+ dragTreshold?: number | undefined;
77
78
  };