@studiometa/js-toolkit 2.4.7 → 2.6.0

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 (57) hide show
  1. package/Base/index.cjs +15 -21
  2. package/Base/index.d.ts +5 -5
  3. package/Base/index.js +5 -5
  4. package/Base/managers/AbstractManager.cjs +2 -2
  5. package/Base/managers/AbstractManager.d.ts +11 -21
  6. package/Base/managers/AbstractManager.js +1 -1
  7. package/Base/managers/ChildrenManager.cjs +3 -9
  8. package/Base/managers/ChildrenManager.d.ts +2 -2
  9. package/Base/managers/ChildrenManager.js +2 -2
  10. package/Base/managers/EventsManager.cjs +49 -9
  11. package/Base/managers/EventsManager.d.ts +26 -2
  12. package/Base/managers/EventsManager.js +48 -8
  13. package/Base/managers/OptionsManager.cjs +6 -8
  14. package/Base/managers/OptionsManager.d.ts +42 -55
  15. package/Base/managers/OptionsManager.js +4 -6
  16. package/Base/managers/RefsManager.cjs +9 -14
  17. package/Base/managers/RefsManager.d.ts +3 -11
  18. package/Base/managers/RefsManager.js +7 -6
  19. package/Base/managers/ResponsiveOptionsManager.cjs +3 -9
  20. package/Base/managers/ResponsiveOptionsManager.d.ts +8 -4
  21. package/Base/managers/ResponsiveOptionsManager.js +2 -2
  22. package/Base/managers/ServicesManager.cjs +19 -36
  23. package/Base/managers/ServicesManager.d.ts +33 -58
  24. package/Base/managers/ServicesManager.js +11 -22
  25. package/decorators/withResponsiveOptions.cjs +2 -8
  26. package/decorators/withResponsiveOptions.js +1 -1
  27. package/helpers/getClosestParent.cjs +48 -0
  28. package/helpers/getClosestParent.d.ts +5 -0
  29. package/helpers/getClosestParent.js +20 -0
  30. package/helpers/index.cjs +3 -1
  31. package/helpers/index.d.ts +2 -1
  32. package/helpers/index.js +11 -9
  33. package/package.json +1 -1
  34. package/services/drag.cjs +62 -37
  35. package/services/drag.js +62 -37
  36. package/utils/css/animate.cjs +29 -2
  37. package/utils/css/animate.d.ts +4 -24
  38. package/utils/css/animate.js +29 -2
  39. package/utils/css/classes.cjs +5 -2
  40. package/utils/css/classes.d.ts +6 -6
  41. package/utils/css/classes.js +5 -2
  42. package/utils/css/index.cjs +1 -1
  43. package/utils/css/index.d.ts +7 -7
  44. package/utils/css/styles.cjs +11 -8
  45. package/utils/css/styles.d.ts +4 -4
  46. package/utils/css/styles.js +11 -8
  47. package/utils/css/transform.cjs +5 -2
  48. package/utils/css/transform.d.ts +2 -2
  49. package/utils/css/transform.js +5 -2
  50. package/utils/css/transition.cjs +7 -1
  51. package/utils/css/transition.d.ts +5 -8
  52. package/utils/css/transition.js +7 -1
  53. package/utils/css/utils.cjs +31 -0
  54. package/utils/css/utils.d.ts +1 -0
  55. package/utils/css/utils.js +9 -0
  56. package/utils/index.cjs +1 -1
  57. package/utils/index.d.ts +19 -19
package/Base/index.cjs CHANGED
@@ -1,8 +1,6 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
6
  var __export = (target, all) => {
@@ -17,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
19
  var __publicField = (obj, key, value) => {
26
20
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -34,11 +28,11 @@ __export(Base_exports, {
34
28
  });
35
29
  module.exports = __toCommonJS(Base_exports);
36
30
  var import_utils = require("./utils.cjs");
37
- var import_ChildrenManager = __toESM(require("./managers/ChildrenManager.cjs"), 1);
38
- var import_RefsManager = __toESM(require("./managers/RefsManager.cjs"), 1);
39
- var import_ServicesManager = __toESM(require("./managers/ServicesManager.cjs"), 1);
40
- var import_EventsManager = __toESM(require("./managers/EventsManager.cjs"), 1);
41
- var import_OptionsManager = __toESM(require("./managers/OptionsManager.cjs"), 1);
31
+ var import_ChildrenManager = require("./managers/ChildrenManager.cjs");
32
+ var import_RefsManager = require("./managers/RefsManager.cjs");
33
+ var import_ServicesManager = require("./managers/ServicesManager.cjs");
34
+ var import_EventsManager = require("./managers/EventsManager.cjs");
35
+ var import_OptionsManager = require("./managers/OptionsManager.cjs");
42
36
  var import_utils2 = require("../utils/index.cjs");
43
37
  var id = 0;
44
38
  function createAndTestManagers(instance) {
@@ -46,27 +40,27 @@ function createAndTestManagers(instance) {
46
40
  {
47
41
  prop: "__options",
48
42
  constructorName: "OptionsManager",
49
- constructor: import_OptionsManager.default
43
+ constructor: import_OptionsManager.OptionsManager
50
44
  },
51
45
  {
52
46
  prop: "__services",
53
47
  constructorName: "ServicesManager",
54
- constructor: import_ServicesManager.default
48
+ constructor: import_ServicesManager.ServicesManager
55
49
  },
56
50
  {
57
51
  prop: "__events",
58
52
  constructorName: "EventsManager",
59
- constructor: import_EventsManager.default
53
+ constructor: import_EventsManager.EventsManager
60
54
  },
61
55
  {
62
56
  prop: "__refs",
63
57
  constructorName: "RefsManager",
64
- constructor: import_RefsManager.default
58
+ constructor: import_RefsManager.RefsManager
65
59
  },
66
60
  {
67
61
  prop: "__children",
68
62
  constructorName: "ChildrenManager",
69
- constructor: import_ChildrenManager.default
63
+ constructor: import_ChildrenManager.ChildrenManager
70
64
  }
71
65
  ].forEach(({ prop, constructorName, constructor }) => {
72
66
  instance[prop] = new instance.__managers[constructorName](instance);
@@ -168,11 +162,11 @@ var Base = class extends EventTarget {
168
162
  }
169
163
  get __managers() {
170
164
  return {
171
- ChildrenManager: import_ChildrenManager.default,
172
- EventsManager: import_EventsManager.default,
173
- OptionsManager: import_OptionsManager.default,
174
- RefsManager: import_RefsManager.default,
175
- ServicesManager: import_ServicesManager.default
165
+ ChildrenManager: import_ChildrenManager.ChildrenManager,
166
+ EventsManager: import_EventsManager.EventsManager,
167
+ OptionsManager: import_OptionsManager.OptionsManager,
168
+ RefsManager: import_RefsManager.RefsManager,
169
+ ServicesManager: import_ServicesManager.ServicesManager
176
170
  };
177
171
  }
178
172
  __callMethod(method, ...args) {
package/Base/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import ChildrenManager from './managers/ChildrenManager.js';
2
- import RefsManager from './managers/RefsManager.js';
3
- import ServicesManager from './managers/ServicesManager.js';
4
- import EventsManager from './managers/EventsManager.js';
5
- import OptionsManager from './managers/OptionsManager.js';
1
+ import { ChildrenManager } from './managers/ChildrenManager.js';
2
+ import { RefsManager } from './managers/RefsManager.js';
3
+ import { ServicesManager } from './managers/ServicesManager.js';
4
+ import { EventsManager } from './managers/EventsManager.js';
5
+ import { OptionsManager } from './managers/OptionsManager.js';
6
6
  export declare type BaseEl = HTMLElement & {
7
7
  __base__?: WeakMap<BaseConstructor, Base | 'terminated'>;
8
8
  };
package/Base/index.js CHANGED
@@ -5,11 +5,11 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  import { getComponentElements, getEventTarget } from "./utils.js";
8
- import ChildrenManager from "./managers/ChildrenManager.js";
9
- import RefsManager from "./managers/RefsManager.js";
10
- import ServicesManager from "./managers/ServicesManager.js";
11
- import EventsManager from "./managers/EventsManager.js";
12
- import OptionsManager from "./managers/OptionsManager.js";
8
+ import { ChildrenManager } from "./managers/ChildrenManager.js";
9
+ import { RefsManager } from "./managers/RefsManager.js";
10
+ import { ServicesManager } from "./managers/ServicesManager.js";
11
+ import { EventsManager } from "./managers/EventsManager.js";
12
+ import { OptionsManager } from "./managers/OptionsManager.js";
13
13
  import { noop, isDev, isFunction, isArray } from "../utils/index.js";
14
14
  let id = 0;
15
15
  function createAndTestManagers(instance) {
@@ -21,10 +21,10 @@ var __publicField = (obj, key, value) => {
21
21
  return value;
22
22
  };
23
23
 
24
- // packages/js-toolkit/Base/managers/AbstractManager.js
24
+ // packages/js-toolkit/Base/managers/AbstractManager.ts
25
25
  var AbstractManager_exports = {};
26
26
  __export(AbstractManager_exports, {
27
- default: () => AbstractManager
27
+ AbstractManager: () => AbstractManager
28
28
  });
29
29
  module.exports = __toCommonJS(AbstractManager_exports);
30
30
  var AbstractManager = class {
@@ -1,37 +1,30 @@
1
- /**
2
- * @typedef {import('../index.js').Base} Base
3
- * @typedef {import('../index.js').BaseConfig} BaseConfig
4
- * @typedef {import('./EventsManager.js').default} EventsManager
5
- */
1
+ import type { Base } from '../index.js';
6
2
  /**
7
3
  * AbstractManager class.
8
4
  */
9
- export default class AbstractManager {
10
- /**
11
- * Class constructor.
12
- *
13
- * @param {Base} base
14
- */
15
- constructor(base: Base);
5
+ export declare class AbstractManager {
16
6
  /**
17
- * @type {Base}
7
+ * Base instance.
18
8
  */
19
9
  __base: Base;
20
10
  /**
21
11
  * Get the base instance root element.
22
- * @returns {HTMLElement}
23
12
  */
24
- get __element(): HTMLElement;
13
+ get __element(): HTMLElement & {
14
+ __base__?: WeakMap<import("../index.js").BaseConstructor<Base<import("../index.js").BaseProps>>, Base<import("../index.js").BaseProps> | "terminated">;
15
+ };
25
16
  /**
26
17
  * Get the base instance config.
27
- * @returns {BaseConfig}
28
18
  */
29
19
  get __config(): import("../index.js").BaseConfig;
30
20
  /**
31
21
  * Get the events manager.
32
- * @returns {EventsManager}
33
22
  */
34
- get __eventsManager(): import("./EventsManager.js").default;
23
+ get __eventsManager(): import("./EventsManager.js").EventsManager;
24
+ /**
25
+ * Class constructor.
26
+ */
27
+ constructor(base: Base);
35
28
  /**
36
29
  * Prevent a list of properties from being enumerable and writable.
37
30
  * @param {string[]} properties
@@ -39,6 +32,3 @@ export default class AbstractManager {
39
32
  */
40
33
  __hideProperties(properties: string[]): void;
41
34
  }
42
- export type Base = import('../index.js').Base;
43
- export type BaseConfig = import('../index.js').BaseConfig;
44
- export type EventsManager = import('./EventsManager.js').default;
@@ -36,5 +36,5 @@ class AbstractManager {
36
36
  }
37
37
  }
38
38
  export {
39
- AbstractManager as default
39
+ AbstractManager
40
40
  };
@@ -1,8 +1,6 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
6
  var __export = (target, all) => {
@@ -17,10 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
24
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
19
  var __publicField = (obj, key, value) => {
26
20
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -30,10 +24,10 @@ var __publicField = (obj, key, value) => {
30
24
  // packages/js-toolkit/Base/managers/ChildrenManager.ts
31
25
  var ChildrenManager_exports = {};
32
26
  __export(ChildrenManager_exports, {
33
- default: () => ChildrenManager
27
+ ChildrenManager: () => ChildrenManager
34
28
  });
35
29
  module.exports = __toCommonJS(ChildrenManager_exports);
36
- var import_AbstractManager = __toESM(require("./AbstractManager.cjs"), 1);
30
+ var import_AbstractManager = require("./AbstractManager.cjs");
37
31
  var import_utils = require("../utils.cjs");
38
32
  function __getChild(that, el, ComponentClass, name) {
39
33
  const asyncComponentPromise = that.__asyncComponentPromises.get(ComponentClass);
@@ -104,7 +98,7 @@ function __triggerHookForAll(that, hook) {
104
98
  });
105
99
  });
106
100
  }
107
- var ChildrenManager = class extends import_AbstractManager.default {
101
+ var ChildrenManager = class extends import_AbstractManager.AbstractManager {
108
102
  constructor() {
109
103
  super(...arguments);
110
104
  __publicField(this, "__asyncComponentPromises", /* @__PURE__ */ new WeakMap());
@@ -1,9 +1,9 @@
1
1
  import type { BaseConstructor, BaseAsyncConstructor } from '../index.js';
2
- import AbstractManager from './AbstractManager.js';
2
+ import { AbstractManager } from './AbstractManager.js';
3
3
  /**
4
4
  * Children manager.
5
5
  */
6
- export default class ChildrenManager extends AbstractManager {
6
+ export declare class ChildrenManager extends AbstractManager {
7
7
  /**
8
8
  * Store async component promises to avoid calling them multiple times and
9
9
  * waiting for them when they are already resolved.
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import AbstractManager from "./AbstractManager.js";
7
+ import { AbstractManager } from "./AbstractManager.js";
8
8
  import { getComponentElements } from "../utils.js";
9
9
  function __getChild(that, el, ComponentClass, name) {
10
10
  const asyncComponentPromise = that.__asyncComponentPromises.get(ComponentClass);
@@ -99,5 +99,5 @@ class ChildrenManager extends AbstractManager {
99
99
  }
100
100
  }
101
101
  export {
102
- ChildrenManager as default
102
+ ChildrenManager
103
103
  };
@@ -30,7 +30,7 @@ var __publicField = (obj, key, value) => {
30
30
  // packages/js-toolkit/Base/managers/EventsManager.ts
31
31
  var EventsManager_exports = {};
32
32
  __export(EventsManager_exports, {
33
- default: () => EventsManager,
33
+ EventsManager: () => EventsManager,
34
34
  normalizeEventName: () => normalizeEventName,
35
35
  normalizeName: () => normalizeName
36
36
  });
@@ -38,22 +38,30 @@ module.exports = __toCommonJS(EventsManager_exports);
38
38
  var import_getAllProperties = __toESM(require("../../utils/object/getAllProperties.cjs"), 1);
39
39
  var import_utils = require("../../utils/index.cjs");
40
40
  var import_utils2 = require("../utils.cjs");
41
- var import_AbstractManager = __toESM(require("./AbstractManager.cjs"), 1);
41
+ var import_AbstractManager = require("./AbstractManager.cjs");
42
42
  var import_RefsManager = require("./RefsManager.cjs");
43
43
  var names = /* @__PURE__ */ new Map();
44
+ var normalizeRegex1 = /[A-Z]([A-Z].*)/g;
45
+ var normalizeRegex2 = /[^a-zA-Z\d\s:]/g;
46
+ var normalizeRegex3 = /(^\w|\s+\w)/g;
44
47
  function normalizeName(name) {
45
48
  if (!names.has(name)) {
46
49
  names.set(
47
50
  name,
48
- name.replace(/[A-Z]([A-Z].*)/g, (c) => c.toLowerCase()).replace(/[^a-zA-Z\d\s:]/g, " ").replace(/(^\w|\s+\w)/g, (c) => c.trim().toUpperCase()).trim()
51
+ name.replace(normalizeRegex1, (c) => c.toLowerCase()).replace(normalizeRegex2, " ").replace(normalizeRegex3, (c) => c.trim().toUpperCase()).trim()
49
52
  );
50
53
  }
51
54
  return names.get(name);
52
55
  }
53
56
  var eventNames = /* @__PURE__ */ new Map();
57
+ var normalizeEventRegex1 = /[A-Z]/g;
58
+ var normalizeEventRegex2 = /^-/;
54
59
  function normalizeEventName(name) {
55
60
  if (!eventNames.has(name)) {
56
- eventNames.set(name, name.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`).replace(/^-/, ""));
61
+ eventNames.set(
62
+ name,
63
+ name.replace(normalizeEventRegex1, (c) => `-${c.toLowerCase()}`).replace(normalizeEventRegex2, "")
64
+ );
57
65
  }
58
66
  return eventNames.get(name);
59
67
  }
@@ -100,16 +108,32 @@ function manageChild(that, name, instance, mode = "add") {
100
108
  instance[action](event, that.__childrenHandler);
101
109
  });
102
110
  }
111
+ var isDocumentRegex = /^onDocument[A-Z][a-z]+/;
112
+ var isWindowRegex = /^onWindow[A-Z][a-z]+/;
113
+ var methodIsDocument = (method) => isDocumentRegex.test(method);
114
+ var methodIsWindow = (method) => isWindowRegex.test(method);
115
+ var methodIsGlobal = (method) => methodIsWindow(method) || methodIsDocument(method);
116
+ var getGlobalEventTarget = (method) => methodIsDocument(method) ? document : window;
103
117
  function manageRootElement(that, mode = "add") {
104
118
  const modeMethod = `${mode}EventListener`;
105
119
  const methods = getEventMethodsByName(that);
106
120
  const { __base: base, __config: config } = that;
107
- methods.map((method) => getEventNameByMethod(method)).filter((event) => (0, import_utils2.eventIsDefinedInConfig)(event, config) || (0, import_utils2.eventIsNative)(event, base.$el)).forEach((event) => {
108
- const target = (0, import_utils2.getEventTarget)(base, event, config);
109
- target[modeMethod](event, that.__rootElementHandler);
121
+ methods.forEach((method) => {
122
+ let event = getEventNameByMethod(method);
123
+ if ((0, import_utils2.eventIsDefinedInConfig)(event, config) || (0, import_utils2.eventIsNative)(event, base.$el)) {
124
+ const target = (0, import_utils2.getEventTarget)(base, event, config);
125
+ target[modeMethod](event, that.__rootElementHandler);
126
+ } else if (methodIsGlobal(method)) {
127
+ event = getEventNameByMethod(method, methodIsDocument(method) ? "document" : "window");
128
+ const target = getGlobalEventTarget(method);
129
+ target[modeMethod](
130
+ event,
131
+ methodIsDocument(method) ? that.__documentHandler : that.__windowHandler
132
+ );
133
+ }
110
134
  });
111
135
  }
112
- var EventsManager = class extends import_AbstractManager.default {
136
+ var EventsManager = class extends import_AbstractManager.AbstractManager {
113
137
  constructor(base) {
114
138
  super(base);
115
139
  __publicField(this, "__methodsCache", /* @__PURE__ */ new Map());
@@ -124,6 +148,20 @@ var EventsManager = class extends import_AbstractManager.default {
124
148
  }
125
149
  }
126
150
  });
151
+ __publicField(this, "__documentHandler", {
152
+ handleEvent: (event) => {
153
+ const normalizedEventName = normalizeName(event.type);
154
+ const method = `onDocument${normalizedEventName}`;
155
+ this.__base[method](event);
156
+ }
157
+ });
158
+ __publicField(this, "__windowHandler", {
159
+ handleEvent: (event) => {
160
+ const normalizedEventName = normalizeName(event.type);
161
+ const method = `onWindow${normalizedEventName}`;
162
+ this.__base[method](event);
163
+ }
164
+ });
127
165
  __publicField(this, "__refsHandler", {
128
166
  handleEvent: (event) => {
129
167
  const ref = event.currentTarget;
@@ -159,7 +197,9 @@ var EventsManager = class extends import_AbstractManager.default {
159
197
  "__methodsCache",
160
198
  "__rootElementHandler",
161
199
  "__refsHandler",
162
- "__childrenHandler"
200
+ "__childrenHandler",
201
+ "__documentHandler",
202
+ "__windowHandler"
163
203
  ]);
164
204
  }
165
205
  bindRef(name, elements) {
@@ -1,5 +1,5 @@
1
1
  import type { Base } from '../index.js';
2
- import AbstractManager from './AbstractManager.js';
2
+ import { AbstractManager } from './AbstractManager.js';
3
3
  /**
4
4
  * Normalize the given name to PascalCase, such as:
5
5
  *
@@ -33,12 +33,36 @@ export declare function normalizeEventName(name: string): string;
33
33
  * @todo Prevent binding of `onChildOrRefEvent` to the root element
34
34
  * @todo Use event delegation?
35
35
  */
36
- export default class EventsManager extends AbstractManager {
36
+ export declare class EventsManager extends AbstractManager {
37
37
  __methodsCache: Map<string, string[]>;
38
38
  /**
39
39
  * Event listener object for the root element.
40
40
  */
41
41
  __rootElementHandler: EventListenerObject;
42
+ /**
43
+ * Event listener object for the root element.
44
+ *
45
+ * @type {EventListenerObject}
46
+ */
47
+ __documentHandler: {
48
+ /**
49
+ * @param {Event|CustomEvent} event
50
+ * @returns {void}
51
+ */
52
+ handleEvent: (event: any) => void;
53
+ };
54
+ /**
55
+ * Event listener object for the root element.
56
+ *
57
+ * @type {EventListenerObject}
58
+ */
59
+ __windowHandler: {
60
+ /**
61
+ * @param {Event|CustomEvent} event
62
+ * @returns {void}
63
+ */
64
+ handleEvent: (event: any) => void;
65
+ };
42
66
  /**
43
67
  * Event listener object for the refs.
44
68
  */
@@ -7,22 +7,30 @@ var __publicField = (obj, key, value) => {
7
7
  import getAllProperties from "../../utils/object/getAllProperties.js";
8
8
  import { isArray } from "../../utils/index.js";
9
9
  import { getEventTarget, eventIsNative, eventIsDefinedInConfig } from "../utils.js";
10
- import AbstractManager from "./AbstractManager.js";
10
+ import { AbstractManager } from "./AbstractManager.js";
11
11
  import { normalizeRefName } from "./RefsManager.js";
12
12
  const names = /* @__PURE__ */ new Map();
13
+ const normalizeRegex1 = /[A-Z]([A-Z].*)/g;
14
+ const normalizeRegex2 = /[^a-zA-Z\d\s:]/g;
15
+ const normalizeRegex3 = /(^\w|\s+\w)/g;
13
16
  function normalizeName(name) {
14
17
  if (!names.has(name)) {
15
18
  names.set(
16
19
  name,
17
- name.replace(/[A-Z]([A-Z].*)/g, (c) => c.toLowerCase()).replace(/[^a-zA-Z\d\s:]/g, " ").replace(/(^\w|\s+\w)/g, (c) => c.trim().toUpperCase()).trim()
20
+ name.replace(normalizeRegex1, (c) => c.toLowerCase()).replace(normalizeRegex2, " ").replace(normalizeRegex3, (c) => c.trim().toUpperCase()).trim()
18
21
  );
19
22
  }
20
23
  return names.get(name);
21
24
  }
22
25
  const eventNames = /* @__PURE__ */ new Map();
26
+ const normalizeEventRegex1 = /[A-Z]/g;
27
+ const normalizeEventRegex2 = /^-/;
23
28
  function normalizeEventName(name) {
24
29
  if (!eventNames.has(name)) {
25
- eventNames.set(name, name.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`).replace(/^-/, ""));
30
+ eventNames.set(
31
+ name,
32
+ name.replace(normalizeEventRegex1, (c) => `-${c.toLowerCase()}`).replace(normalizeEventRegex2, "")
33
+ );
26
34
  }
27
35
  return eventNames.get(name);
28
36
  }
@@ -69,13 +77,29 @@ function manageChild(that, name, instance, mode = "add") {
69
77
  instance[action](event, that.__childrenHandler);
70
78
  });
71
79
  }
80
+ const isDocumentRegex = /^onDocument[A-Z][a-z]+/;
81
+ const isWindowRegex = /^onWindow[A-Z][a-z]+/;
82
+ const methodIsDocument = (method) => isDocumentRegex.test(method);
83
+ const methodIsWindow = (method) => isWindowRegex.test(method);
84
+ const methodIsGlobal = (method) => methodIsWindow(method) || methodIsDocument(method);
85
+ const getGlobalEventTarget = (method) => methodIsDocument(method) ? document : window;
72
86
  function manageRootElement(that, mode = "add") {
73
87
  const modeMethod = `${mode}EventListener`;
74
88
  const methods = getEventMethodsByName(that);
75
89
  const { __base: base, __config: config } = that;
76
- methods.map((method) => getEventNameByMethod(method)).filter((event) => eventIsDefinedInConfig(event, config) || eventIsNative(event, base.$el)).forEach((event) => {
77
- const target = getEventTarget(base, event, config);
78
- target[modeMethod](event, that.__rootElementHandler);
90
+ methods.forEach((method) => {
91
+ let event = getEventNameByMethod(method);
92
+ if (eventIsDefinedInConfig(event, config) || eventIsNative(event, base.$el)) {
93
+ const target = getEventTarget(base, event, config);
94
+ target[modeMethod](event, that.__rootElementHandler);
95
+ } else if (methodIsGlobal(method)) {
96
+ event = getEventNameByMethod(method, methodIsDocument(method) ? "document" : "window");
97
+ const target = getGlobalEventTarget(method);
98
+ target[modeMethod](
99
+ event,
100
+ methodIsDocument(method) ? that.__documentHandler : that.__windowHandler
101
+ );
102
+ }
79
103
  });
80
104
  }
81
105
  class EventsManager extends AbstractManager {
@@ -93,6 +117,20 @@ class EventsManager extends AbstractManager {
93
117
  }
94
118
  }
95
119
  });
120
+ __publicField(this, "__documentHandler", {
121
+ handleEvent: (event) => {
122
+ const normalizedEventName = normalizeName(event.type);
123
+ const method = `onDocument${normalizedEventName}`;
124
+ this.__base[method](event);
125
+ }
126
+ });
127
+ __publicField(this, "__windowHandler", {
128
+ handleEvent: (event) => {
129
+ const normalizedEventName = normalizeName(event.type);
130
+ const method = `onWindow${normalizedEventName}`;
131
+ this.__base[method](event);
132
+ }
133
+ });
96
134
  __publicField(this, "__refsHandler", {
97
135
  handleEvent: (event) => {
98
136
  const ref = event.currentTarget;
@@ -128,7 +166,9 @@ class EventsManager extends AbstractManager {
128
166
  "__methodsCache",
129
167
  "__rootElementHandler",
130
168
  "__refsHandler",
131
- "__childrenHandler"
169
+ "__childrenHandler",
170
+ "__documentHandler",
171
+ "__windowHandler"
132
172
  ]);
133
173
  }
134
174
  bindRef(name, elements) {
@@ -151,7 +191,7 @@ class EventsManager extends AbstractManager {
151
191
  }
152
192
  }
153
193
  export {
154
- EventsManager as default,
194
+ EventsManager,
155
195
  normalizeEventName,
156
196
  normalizeName
157
197
  };
@@ -27,15 +27,15 @@ var __publicField = (obj, key, value) => {
27
27
  return value;
28
28
  };
29
29
 
30
- // packages/js-toolkit/Base/managers/OptionsManager.js
30
+ // packages/js-toolkit/Base/managers/OptionsManager.ts
31
31
  var OptionsManager_exports = {};
32
32
  __export(OptionsManager_exports, {
33
- __getPropertyName: () => __getPropertyName,
34
- default: () => OptionsManager
33
+ OptionsManager: () => OptionsManager,
34
+ __getPropertyName: () => __getPropertyName
35
35
  });
36
36
  module.exports = __toCommonJS(OptionsManager_exports);
37
37
  var import_deepmerge = __toESM(require("deepmerge"), 1);
38
- var import_AbstractManager = __toESM(require("./AbstractManager.cjs"), 1);
38
+ var import_AbstractManager = require("./AbstractManager.cjs");
39
39
  var import_utils = require("../../utils/index.cjs");
40
40
  var types = /* @__PURE__ */ new Set([String, Number, Boolean, Array, Object]);
41
41
  var __defaultValues = {
@@ -75,16 +75,14 @@ function __register(that, name, config) {
75
75
  return;
76
76
  }
77
77
  Object.defineProperty(that, name, {
78
- get: () => {
79
- return that.get(name, config);
80
- },
78
+ get: () => that.get(name, config),
81
79
  set: (value) => {
82
80
  that.set(name, value, config);
83
81
  },
84
82
  enumerable: true
85
83
  });
86
84
  }
87
- var OptionsManager = class extends import_AbstractManager.default {
85
+ var OptionsManager = class extends import_AbstractManager.AbstractManager {
88
86
  constructor(base) {
89
87
  var _a, _b;
90
88
  super(base);