@koine/dom 1.1.5 → 1.1.6

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.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Get an element's distance from the top of the Document (using more modern/performant
3
+ * technique compared to {@link ./getOffsetTop})
4
+ *
5
+ * @see https://stackoverflow.com/q/5598743/1938970
6
+ *
7
+ * @param elem The HTML node element
8
+ * @return Distance from the top in pixels
9
+ */
10
+ export declare function getOffsetTopSlim(elem: HTMLElement): number;
11
+ export default getOffsetTopSlim;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Get an element's distance from the top of the Document (using more modern/performant
3
+ * technique compared to {@link ./getOffsetTop})
4
+ *
5
+ * @see https://stackoverflow.com/q/5598743/1938970
6
+ *
7
+ * @param elem The HTML node element
8
+ * @return Distance from the top in pixels
9
+ */
10
+ export function getOffsetTopSlim(elem) {
11
+ return elem.getBoundingClientRect().top + window.scrollY;
12
+ }
13
+ export default getOffsetTopSlim;
package/index.d.ts CHANGED
@@ -12,8 +12,9 @@ export * from "./getDataAttr";
12
12
  export * from "./getDocumentHeight";
13
13
  export * from "./getHeight";
14
14
  export * from "./getListeners";
15
- export * from "./getOffsetTop";
16
15
  export * from "./getOffset";
16
+ export * from "./getOffsetTop";
17
+ export * from "./getOffsetTopSlim";
17
18
  export * from "./getScrollbarWidth";
18
19
  export * from "./getStyleValue";
19
20
  export * from "./injectCss";
@@ -24,7 +25,11 @@ export * from "./isTotallyScrolled";
24
25
  export * from "./listenLoaded";
25
26
  export * from "./listenOnce";
26
27
  export * from "./listenResize";
28
+ export * from "./listenResizeDebounced";
29
+ export * from "./listenResizeThrottled";
27
30
  export * from "./listenScroll";
31
+ export * from "./listenScrollDebounced";
32
+ export * from "./listenScrollThrottled";
28
33
  export * from "./listen";
29
34
  export * from "./off";
30
35
  export * from "./once";
@@ -37,3 +42,4 @@ export * from "./setVendorCSS";
37
42
  export * from "./siblings";
38
43
  export * from "./toArray";
39
44
  export * from "./unlisten";
45
+ export * from "./types";
package/index.js CHANGED
@@ -12,8 +12,9 @@ export * from "./getDataAttr";
12
12
  export * from "./getDocumentHeight";
13
13
  export * from "./getHeight";
14
14
  export * from "./getListeners";
15
- export * from "./getOffsetTop";
16
15
  export * from "./getOffset";
16
+ export * from "./getOffsetTop";
17
+ export * from "./getOffsetTopSlim";
17
18
  export * from "./getScrollbarWidth";
18
19
  export * from "./getStyleValue";
19
20
  export * from "./injectCss";
@@ -24,7 +25,11 @@ export * from "./isTotallyScrolled";
24
25
  export * from "./listenLoaded";
25
26
  export * from "./listenOnce";
26
27
  export * from "./listenResize";
28
+ export * from "./listenResizeDebounced";
29
+ export * from "./listenResizeThrottled";
27
30
  export * from "./listenScroll";
31
+ export * from "./listenScrollDebounced";
32
+ export * from "./listenScrollThrottled";
28
33
  export * from "./listen";
29
34
  export * from "./off";
30
35
  export * from "./once";
@@ -37,3 +42,4 @@ export * from "./setVendorCSS";
37
42
  export * from "./siblings";
38
43
  export * from "./toArray";
39
44
  export * from "./unlisten";
45
+ export * from "./types";
package/listen.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { activeEvents, eventHandler, } from "./_listen-delegation";
2
2
  import { on } from "./on";
3
+ // import { off } from "./off";
3
4
  /**
4
5
  * Listen an event
5
6
  *
package/listenResize.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { debounce } from "@koine/utils";
1
+ import type { AnyDOMEventTargetLoose } from "./types";
2
2
  /**
3
- * Listen window resize event debouncing the given handler
3
+ * Listen element's (`window` by default) _scroll_ event
4
4
  *
5
5
  * @returns An automatic unbinding function to run to deregister the listener upon call
6
6
  */
7
- export declare function listenResize(...args: Parameters<typeof debounce>): () => void;
7
+ export declare const listenResize: (handler: () => void, el?: AnyDOMEventTargetLoose) => () => void;
8
8
  export default listenResize;
package/listenResize.js CHANGED
@@ -1,17 +1,8 @@
1
- import { debounce } from "@koine/utils";
2
1
  import { on } from "./on";
3
2
  /**
4
- * Listen window resize event debouncing the given handler
3
+ * Listen element's (`window` by default) _scroll_ event
5
4
  *
6
5
  * @returns An automatic unbinding function to run to deregister the listener upon call
7
6
  */
8
- export function listenResize() {
9
- var args = [];
10
- for (var _i = 0; _i < arguments.length; _i++) {
11
- args[_i] = arguments[_i];
12
- }
13
- var handler = debounce.apply(void 0, args);
14
- var unbinder = on(window, "resize", handler);
15
- return unbinder;
16
- }
7
+ export var listenResize = function (handler, el) { return on(el || window, "resize", handler); };
17
8
  export default listenResize;
@@ -0,0 +1,8 @@
1
+ import { listenResize } from "./listenResize";
2
+ /**
3
+ * Listen element's (`window` by default) _resize_ event debouncing the callback
4
+ *
5
+ * @returns An automatic unbinding function to run to deregister the listener upon call
6
+ */
7
+ export declare const listenResizeDebounced: (el?: Parameters<typeof listenResize>[1], fn: (...args: any[]) => any, wait?: number | undefined, immediate?: boolean | undefined) => () => void;
8
+ export default listenResizeDebounced;
@@ -0,0 +1,41 @@
1
+ import { debounce } from "@koine/utils";
2
+ import { listenResize } from "./listenResize";
3
+ /**
4
+ * Listen element's (`window` by default) _resize_ event debouncing the callback
5
+ *
6
+ * @returns An automatic unbinding function to run to deregister the listener upon call
7
+ */
8
+ export var listenResizeDebounced = function (el) {
9
+ var args = [];
10
+ for (var _i = 1; _i < arguments.length; _i++) {
11
+ args[_i - 1] = arguments[_i];
12
+ }
13
+ return listenResize(debounce.apply(void 0, args), el);
14
+ };
15
+ export default listenResizeDebounced;
16
+ // EXP: with too complex overload signature...
17
+ // import { debounce, isUndefined } from "@koine/utils";
18
+ // import { listenResize } from "./listenResize";
19
+ // /**
20
+ // * Listen element's (`window` by default) _resize_ event debouncing the callback
21
+ // *
22
+ // * @returns An automatic unbinding function to run to deregister the listener upon call
23
+ // */
24
+ // export function listenResizeDebounced(
25
+ // ...args: Parameters<typeof debounce>
26
+ // ): ReturnType<typeof listenResize>;
27
+ // export function listenResizeDebounced(
28
+ // el: Parameters<typeof listenResize>[1],
29
+ // ...args: Parameters<typeof debounce>
30
+ // ): ReturnType<typeof listenResize>;
31
+ // export function listenResizeDebounced(
32
+ // ...args:
33
+ // | [Parameters<typeof listenResize>[1], ...Parameters<typeof debounce>]
34
+ // | Parameters<typeof debounce>
35
+ // ) {
36
+ // if (isUndefined(args[0])) {
37
+ // return listenResize(debounce(...args));
38
+ // }
39
+ // return listenResize(debounce(...args.slice(1)), args[0]);
40
+ // }
41
+ // export default listenResizeDebounced;
@@ -0,0 +1,8 @@
1
+ import { listenResize } from "./listenResize";
2
+ /**
3
+ * Listen element's (`window` by default) _resize_ event throttling the callback
4
+ *
5
+ * @returns An automatic unbinding function to run to deregister the listener upon call
6
+ */
7
+ export declare const listenResizeThrottled: (el?: Parameters<typeof listenResize>[1], fn: Function, limit: number, context?: unknown) => () => void;
8
+ export default listenResizeThrottled;
@@ -0,0 +1,15 @@
1
+ import { throttle } from "@koine/utils";
2
+ import { listenResize } from "./listenResize";
3
+ /**
4
+ * Listen element's (`window` by default) _resize_ event throttling the callback
5
+ *
6
+ * @returns An automatic unbinding function to run to deregister the listener upon call
7
+ */
8
+ export var listenResizeThrottled = function (el) {
9
+ var args = [];
10
+ for (var _i = 1; _i < arguments.length; _i++) {
11
+ args[_i - 1] = arguments[_i];
12
+ }
13
+ return listenResize(throttle.apply(void 0, args), el);
14
+ };
15
+ export default listenResizeThrottled;
package/listenScroll.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { debounce } from "@koine/utils";
1
+ import type { AnyDOMEventTargetLoose } from "./types";
2
2
  /**
3
- * Listen window scroll event debouncing the given handler
3
+ * Listen element's (`window` by default) _scroll_ event
4
4
  *
5
5
  * @returns An automatic unbinding function to run to deregister the listener upon call
6
6
  */
7
- export declare function listenScroll(...args: Parameters<typeof debounce>): () => void;
7
+ export declare const listenScroll: (handler: () => void, el?: AnyDOMEventTargetLoose) => () => void;
8
8
  export default listenScroll;
package/listenScroll.js CHANGED
@@ -1,20 +1,13 @@
1
- import { debounce } from "@koine/utils";
2
1
  import { on } from "./on";
3
2
  /**
4
- * Listen window scroll event debouncing the given handler
3
+ * Listen element's (`window` by default) _scroll_ event
5
4
  *
6
5
  * @returns An automatic unbinding function to run to deregister the listener upon call
7
6
  */
8
- export function listenScroll() {
9
- var args = [];
10
- for (var _i = 0; _i < arguments.length; _i++) {
11
- args[_i] = arguments[_i];
12
- }
13
- var handler = debounce.apply(void 0, args);
14
- var unbinder = on(window, "scroll", handler, {
7
+ export var listenScroll = function (handler, el) {
8
+ return on(el || window, "scroll", handler, {
15
9
  capture: true,
16
10
  passive: true,
17
11
  });
18
- return unbinder;
19
- }
12
+ };
20
13
  export default listenScroll;
@@ -0,0 +1,8 @@
1
+ import { listenScroll } from "./listenScroll";
2
+ /**
3
+ * Listen element's (`window` by default) _scroll_ event debouncing the callback
4
+ *
5
+ * @returns An automatic unbinding function to run to deregister the listener upon call
6
+ */
7
+ export declare const listenScrollDebounced: (el?: Parameters<typeof listenScroll>[1], fn: (...args: any[]) => any, wait?: number | undefined, immediate?: boolean | undefined) => () => void;
8
+ export default listenScrollDebounced;
@@ -0,0 +1,15 @@
1
+ import { debounce } from "@koine/utils";
2
+ import { listenScroll } from "./listenScroll";
3
+ /**
4
+ * Listen element's (`window` by default) _scroll_ event debouncing the callback
5
+ *
6
+ * @returns An automatic unbinding function to run to deregister the listener upon call
7
+ */
8
+ export var listenScrollDebounced = function (el) {
9
+ var args = [];
10
+ for (var _i = 1; _i < arguments.length; _i++) {
11
+ args[_i - 1] = arguments[_i];
12
+ }
13
+ return listenScroll(debounce.apply(void 0, args), el);
14
+ };
15
+ export default listenScrollDebounced;
@@ -0,0 +1,8 @@
1
+ import { listenScroll } from "./listenScroll";
2
+ /**
3
+ * Listen element's (`window` by default) _scroll_ event throttling the callback
4
+ *
5
+ * @returns An automatic unbinding function to run to deregister the listener upon call
6
+ */
7
+ export declare const listenScrollThrottled: (el?: Parameters<typeof listenScroll>[1], fn: Function, limit: number, context?: unknown) => () => void;
8
+ export default listenScrollThrottled;
@@ -0,0 +1,15 @@
1
+ import { throttle } from "@koine/utils";
2
+ import { listenScroll } from "./listenScroll";
3
+ /**
4
+ * Listen element's (`window` by default) _scroll_ event throttling the callback
5
+ *
6
+ * @returns An automatic unbinding function to run to deregister the listener upon call
7
+ */
8
+ export var listenScrollThrottled = function (el) {
9
+ var args = [];
10
+ for (var _i = 1; _i < arguments.length; _i++) {
11
+ args[_i - 1] = arguments[_i];
12
+ }
13
+ return listenScroll(throttle.apply(void 0, args), el);
14
+ };
15
+ export default listenScrollThrottled;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOffsetTopSlim = void 0;
4
+ /**
5
+ * Get an element's distance from the top of the Document (using more modern/performant
6
+ * technique compared to {@link ./getOffsetTop})
7
+ *
8
+ * @see https://stackoverflow.com/q/5598743/1938970
9
+ *
10
+ * @param elem The HTML node element
11
+ * @return Distance from the top in pixels
12
+ */
13
+ function getOffsetTopSlim(elem) {
14
+ return elem.getBoundingClientRect().top + window.scrollY;
15
+ }
16
+ exports.getOffsetTopSlim = getOffsetTopSlim;
17
+ exports.default = getOffsetTopSlim;
package/node/index.js CHANGED
@@ -15,8 +15,9 @@ tslib_1.__exportStar(require("./getDataAttr"), exports);
15
15
  tslib_1.__exportStar(require("./getDocumentHeight"), exports);
16
16
  tslib_1.__exportStar(require("./getHeight"), exports);
17
17
  tslib_1.__exportStar(require("./getListeners"), exports);
18
- tslib_1.__exportStar(require("./getOffsetTop"), exports);
19
18
  tslib_1.__exportStar(require("./getOffset"), exports);
19
+ tslib_1.__exportStar(require("./getOffsetTop"), exports);
20
+ tslib_1.__exportStar(require("./getOffsetTopSlim"), exports);
20
21
  tslib_1.__exportStar(require("./getScrollbarWidth"), exports);
21
22
  tslib_1.__exportStar(require("./getStyleValue"), exports);
22
23
  tslib_1.__exportStar(require("./injectCss"), exports);
@@ -27,7 +28,11 @@ tslib_1.__exportStar(require("./isTotallyScrolled"), exports);
27
28
  tslib_1.__exportStar(require("./listenLoaded"), exports);
28
29
  tslib_1.__exportStar(require("./listenOnce"), exports);
29
30
  tslib_1.__exportStar(require("./listenResize"), exports);
31
+ tslib_1.__exportStar(require("./listenResizeDebounced"), exports);
32
+ tslib_1.__exportStar(require("./listenResizeThrottled"), exports);
30
33
  tslib_1.__exportStar(require("./listenScroll"), exports);
34
+ tslib_1.__exportStar(require("./listenScrollDebounced"), exports);
35
+ tslib_1.__exportStar(require("./listenScrollThrottled"), exports);
31
36
  tslib_1.__exportStar(require("./listen"), exports);
32
37
  tslib_1.__exportStar(require("./off"), exports);
33
38
  tslib_1.__exportStar(require("./once"), exports);
@@ -40,3 +45,4 @@ tslib_1.__exportStar(require("./setVendorCSS"), exports);
40
45
  tslib_1.__exportStar(require("./siblings"), exports);
41
46
  tslib_1.__exportStar(require("./toArray"), exports);
42
47
  tslib_1.__exportStar(require("./unlisten"), exports);
48
+ tslib_1.__exportStar(require("./types"), exports);
package/node/listen.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listen = void 0;
4
4
  var _listen_delegation_1 = require("./_listen-delegation");
5
5
  var on_1 = require("./on");
6
+ // import { off } from "./off";
6
7
  /**
7
8
  * Listen an event
8
9
  *
@@ -1,21 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listenResize = void 0;
4
- var utils_1 = require("@koine/utils");
5
4
  var on_1 = require("./on");
6
5
  /**
7
- * Listen window resize event debouncing the given handler
6
+ * Listen element's (`window` by default) _scroll_ event
8
7
  *
9
8
  * @returns An automatic unbinding function to run to deregister the listener upon call
10
9
  */
11
- function listenResize() {
12
- var args = [];
13
- for (var _i = 0; _i < arguments.length; _i++) {
14
- args[_i] = arguments[_i];
15
- }
16
- var handler = utils_1.debounce.apply(void 0, args);
17
- var unbinder = (0, on_1.on)(window, "resize", handler);
18
- return unbinder;
19
- }
10
+ var listenResize = function (handler, el) { return (0, on_1.on)(el || window, "resize", handler); };
20
11
  exports.listenResize = listenResize;
21
- exports.default = listenResize;
12
+ exports.default = exports.listenResize;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listenResizeDebounced = void 0;
4
+ var utils_1 = require("@koine/utils");
5
+ var listenResize_1 = require("./listenResize");
6
+ /**
7
+ * Listen element's (`window` by default) _resize_ event debouncing the callback
8
+ *
9
+ * @returns An automatic unbinding function to run to deregister the listener upon call
10
+ */
11
+ var listenResizeDebounced = function (el) {
12
+ var args = [];
13
+ for (var _i = 1; _i < arguments.length; _i++) {
14
+ args[_i - 1] = arguments[_i];
15
+ }
16
+ return (0, listenResize_1.listenResize)(utils_1.debounce.apply(void 0, args), el);
17
+ };
18
+ exports.listenResizeDebounced = listenResizeDebounced;
19
+ exports.default = exports.listenResizeDebounced;
20
+ // EXP: with too complex overload signature...
21
+ // import { debounce, isUndefined } from "@koine/utils";
22
+ // import { listenResize } from "./listenResize";
23
+ // /**
24
+ // * Listen element's (`window` by default) _resize_ event debouncing the callback
25
+ // *
26
+ // * @returns An automatic unbinding function to run to deregister the listener upon call
27
+ // */
28
+ // export function listenResizeDebounced(
29
+ // ...args: Parameters<typeof debounce>
30
+ // ): ReturnType<typeof listenResize>;
31
+ // export function listenResizeDebounced(
32
+ // el: Parameters<typeof listenResize>[1],
33
+ // ...args: Parameters<typeof debounce>
34
+ // ): ReturnType<typeof listenResize>;
35
+ // export function listenResizeDebounced(
36
+ // ...args:
37
+ // | [Parameters<typeof listenResize>[1], ...Parameters<typeof debounce>]
38
+ // | Parameters<typeof debounce>
39
+ // ) {
40
+ // if (isUndefined(args[0])) {
41
+ // return listenResize(debounce(...args));
42
+ // }
43
+ // return listenResize(debounce(...args.slice(1)), args[0]);
44
+ // }
45
+ // export default listenResizeDebounced;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listenResizeThrottled = void 0;
4
+ var utils_1 = require("@koine/utils");
5
+ var listenResize_1 = require("./listenResize");
6
+ /**
7
+ * Listen element's (`window` by default) _resize_ event throttling the callback
8
+ *
9
+ * @returns An automatic unbinding function to run to deregister the listener upon call
10
+ */
11
+ var listenResizeThrottled = function (el) {
12
+ var args = [];
13
+ for (var _i = 1; _i < arguments.length; _i++) {
14
+ args[_i - 1] = arguments[_i];
15
+ }
16
+ return (0, listenResize_1.listenResize)(utils_1.throttle.apply(void 0, args), el);
17
+ };
18
+ exports.listenResizeThrottled = listenResizeThrottled;
19
+ exports.default = exports.listenResizeThrottled;
@@ -1,24 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listenScroll = void 0;
4
- var utils_1 = require("@koine/utils");
5
4
  var on_1 = require("./on");
6
5
  /**
7
- * Listen window scroll event debouncing the given handler
6
+ * Listen element's (`window` by default) _scroll_ event
8
7
  *
9
8
  * @returns An automatic unbinding function to run to deregister the listener upon call
10
9
  */
11
- function listenScroll() {
12
- var args = [];
13
- for (var _i = 0; _i < arguments.length; _i++) {
14
- args[_i] = arguments[_i];
15
- }
16
- var handler = utils_1.debounce.apply(void 0, args);
17
- var unbinder = (0, on_1.on)(window, "scroll", handler, {
10
+ var listenScroll = function (handler, el) {
11
+ return (0, on_1.on)(el || window, "scroll", handler, {
18
12
  capture: true,
19
13
  passive: true,
20
14
  });
21
- return unbinder;
22
- }
15
+ };
23
16
  exports.listenScroll = listenScroll;
24
- exports.default = listenScroll;
17
+ exports.default = exports.listenScroll;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listenScrollDebounced = void 0;
4
+ var utils_1 = require("@koine/utils");
5
+ var listenScroll_1 = require("./listenScroll");
6
+ /**
7
+ * Listen element's (`window` by default) _scroll_ event debouncing the callback
8
+ *
9
+ * @returns An automatic unbinding function to run to deregister the listener upon call
10
+ */
11
+ var listenScrollDebounced = function (el) {
12
+ var args = [];
13
+ for (var _i = 1; _i < arguments.length; _i++) {
14
+ args[_i - 1] = arguments[_i];
15
+ }
16
+ return (0, listenScroll_1.listenScroll)(utils_1.debounce.apply(void 0, args), el);
17
+ };
18
+ exports.listenScrollDebounced = listenScrollDebounced;
19
+ exports.default = exports.listenScrollDebounced;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listenScrollThrottled = void 0;
4
+ var utils_1 = require("@koine/utils");
5
+ var listenScroll_1 = require("./listenScroll");
6
+ /**
7
+ * Listen element's (`window` by default) _scroll_ event throttling the callback
8
+ *
9
+ * @returns An automatic unbinding function to run to deregister the listener upon call
10
+ */
11
+ var listenScrollThrottled = function (el) {
12
+ var args = [];
13
+ for (var _i = 1; _i < arguments.length; _i++) {
14
+ args[_i - 1] = arguments[_i];
15
+ }
16
+ return (0, listenScroll_1.listenScroll)(utils_1.throttle.apply(void 0, args), el);
17
+ };
18
+ exports.listenScrollThrottled = listenScrollThrottled;
19
+ exports.default = exports.listenScrollThrottled;
package/node/on.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.on = void 0;
4
- // import { noop } from "@koine/utils"; FIXME: build breaks with this import
5
4
  var off_1 = require("./off");
6
5
  /**
7
6
  * Shortcut for `addEventListener`
package/node/once.js CHANGED
@@ -14,7 +14,7 @@ function once(el, type, handler, options) {
14
14
  handler(event);
15
15
  (0, off_1.default)(el, type, handlerWrapper);
16
16
  };
17
- (0, on_1.default)(el, type, handlerWrapper, options);
17
+ return (0, on_1.default)(el, type, handlerWrapper, options);
18
18
  }
19
19
  exports.once = once;
20
20
  exports.default = once;
package/node/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/off.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ import type { AnyDOMEventTargetLoose } from "./types";
1
2
  /**
2
3
  * Shortcut for `removeEventListener`
3
4
  */
4
- export declare function off(el: Window | Document | HTMLElement | Element, type: string, handler: EventListener, options?: EventListenerOptions | boolean): void;
5
+ export declare function off(el: AnyDOMEventTargetLoose, type: string, handler: EventListener, options?: EventListenerOptions | boolean): void;
5
6
  export default off;
package/on.d.ts CHANGED
@@ -1,7 +1,8 @@
1
+ import type { AnyDOMEventTargetLoose } from "./types";
1
2
  /**
2
3
  * Shortcut for `addEventListener`
3
4
  *
4
5
  * @returns An automatic unbinding function to run to deregister the listener upon call
5
6
  */
6
- export declare function on<THandler extends (event: any) => void>(el: Window | Document | HTMLElement | Element, type: string, handler: THandler, options?: AddEventListenerOptions | boolean): () => void;
7
+ export declare function on<THandler extends (event: any) => void>(el: AnyDOMEventTargetLoose, type: string, handler: THandler, options?: AddEventListenerOptions | boolean): () => void;
7
8
  export default on;
package/on.js CHANGED
@@ -1,4 +1,3 @@
1
- // import { noop } from "@koine/utils"; FIXME: build breaks with this import
2
1
  import { off } from "./off";
3
2
  /**
4
3
  * Shortcut for `addEventListener`
package/once.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import { AnyDOMEventTargetLoose } from "./types";
1
2
  /**
2
3
  * One shot listener, it `addEventListener` and removes it first time is called
3
4
  * with `removeEventListener`
4
5
  */
5
- export declare function once(el: Window | Document | HTMLElement, type: string, handler: EventListener, options?: EventListenerOptions | boolean): void;
6
+ export declare function once(el: AnyDOMEventTargetLoose, type: string, handler: EventListener, options?: EventListenerOptions | boolean): () => void;
6
7
  export default once;
package/once.js CHANGED
@@ -10,6 +10,6 @@ export function once(el, type, handler, options) {
10
10
  handler(event);
11
11
  off(el, type, handlerWrapper);
12
12
  };
13
- on(el, type, handlerWrapper, options);
13
+ return on(el, type, handlerWrapper, options);
14
14
  }
15
15
  export default once;
package/package.json CHANGED
@@ -9,6 +9,6 @@
9
9
  "type-fest": "3.5.3",
10
10
  "tslib": "2.5.0"
11
11
  },
12
- "version": "1.1.5",
12
+ "version": "1.1.6",
13
13
  "module": "./index.js"
14
14
  }
package/types.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { AnythingFalsy } from "@koine/utils/types";
2
+ export type AnyDOMEventTarget = Window | Document | HTMLElement | Element;
3
+ /**
4
+ * We use it either throwing an error on unexisting element or falling back
5
+ * to `window` in case of _scroll_ or _resize_ events
6
+ */
7
+ export type AnyDOMEventTargetLoose = AnyDOMEventTarget | AnythingFalsy;
package/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};