@koine/dom 2.0.0-beta.1 → 2.0.0-beta.11

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 (109) hide show
  1. package/$$.d.ts +1 -1
  2. package/$$.mjs +1 -2
  3. package/$.d.ts +1 -1
  4. package/$.mjs +1 -2
  5. package/$each.mjs +3 -4
  6. package/_listen-delegation.d.ts +3 -2
  7. package/_listen-delegation.mjs +17 -23
  8. package/addClass.mjs +2 -5
  9. package/calculateFixedOffset.mjs +3 -4
  10. package/createElement.mjs +2 -3
  11. package/emitEvent.mjs +3 -7
  12. package/escapeSelector.mjs +1 -2
  13. package/exists.mjs +1 -2
  14. package/forEach.d.ts +3 -5
  15. package/forEach.mjs +29 -8
  16. package/getDataAttr.mjs +1 -2
  17. package/getDocumentHeight.mjs +2 -3
  18. package/getHeight.mjs +1 -2
  19. package/getListeners.d.ts +1 -1
  20. package/getListeners.mjs +4 -5
  21. package/getOffset.mjs +8 -6
  22. package/getOffsetTop.mjs +3 -4
  23. package/getOffsetTopSlim.mjs +1 -2
  24. package/getScrollbarWidth.mjs +1 -2
  25. package/getStyleValue.mjs +1 -2
  26. package/getVisualBackgroundColor.mjs +8 -10
  27. package/injectCss.mjs +2 -5
  28. package/isHidden.mjs +1 -2
  29. package/isInViewport.mjs +3 -9
  30. package/isNodeList.mjs +3 -8
  31. package/isTotallyScrolled.mjs +1 -2
  32. package/listen.d.ts +2 -1
  33. package/listen.mjs +11 -8
  34. package/listenLoaded.mjs +2 -3
  35. package/listenOnce.mjs +2 -3
  36. package/listenResize.mjs +1 -2
  37. package/listenResizeDebounced.mjs +28 -36
  38. package/listenResizeThrottled.mjs +1 -8
  39. package/listenScroll.mjs +2 -5
  40. package/listenScrollDebounced.mjs +1 -8
  41. package/listenScrollThrottled.mjs +1 -8
  42. package/off.d.ts +2 -2
  43. package/off.mjs +2 -5
  44. package/on.d.ts +2 -2
  45. package/on.mjs +5 -5
  46. package/onClickOutside.mjs +5 -7
  47. package/once.mjs +3 -5
  48. package/package.json +8 -5
  49. package/removeClass.mjs +3 -6
  50. package/scrollTo.mjs +13 -14
  51. package/setDataAttr.mjs +1 -2
  52. package/setVendorCSS.mjs +2 -3
  53. package/siblings.mjs +4 -5
  54. package/toArray.mjs +1 -2
  55. package/types.d.ts +5 -0
  56. package/types.mjs +1 -1
  57. package/unlisten.d.ts +2 -1
  58. package/unlisten.mjs +11 -9
  59. package/$$.js +0 -16
  60. package/$.js +0 -19
  61. package/$each.js +0 -22
  62. package/_listen-delegation.js +0 -90
  63. package/addClass.js +0 -19
  64. package/calculateFixedOffset.js +0 -14
  65. package/createElement.js +0 -21
  66. package/emitEvent.js +0 -18
  67. package/escapeSelector.js +0 -14
  68. package/exists.js +0 -16
  69. package/forEach.js +0 -17
  70. package/getDataAttr.js +0 -17
  71. package/getDocumentHeight.js +0 -14
  72. package/getHeight.js +0 -11
  73. package/getListeners.js +0 -22
  74. package/getOffset.js +0 -22
  75. package/getOffsetTop.js +0 -24
  76. package/getOffsetTopSlim.js +0 -17
  77. package/getScrollbarWidth.js +0 -11
  78. package/getStyleValue.js +0 -14
  79. package/getVisualBackground.d.ts +0 -6
  80. package/getVisualBackground.js +0 -25
  81. package/getVisualBackground.mjs +0 -21
  82. package/getVisualBackgroundColor.js +0 -25
  83. package/index.js +0 -93
  84. package/injectCss.js +0 -20
  85. package/isHidden.js +0 -11
  86. package/isInViewport.js +0 -22
  87. package/isNodeList.js +0 -18
  88. package/isTotallyScrolled.js +0 -14
  89. package/listen.js +0 -37
  90. package/listenLoaded.js +0 -15
  91. package/listenOnce.js +0 -24
  92. package/listenResize.js +0 -12
  93. package/listenResizeDebounced.js +0 -47
  94. package/listenResizeThrottled.js +0 -20
  95. package/listenScroll.js +0 -17
  96. package/listenScrollDebounced.js +0 -20
  97. package/listenScrollThrottled.js +0 -20
  98. package/off.js +0 -18
  99. package/on.js +0 -26
  100. package/onClickOutside.js +0 -21
  101. package/once.js +0 -20
  102. package/removeClass.js +0 -19
  103. package/scrollTo.js +0 -44
  104. package/setDataAttr.js +0 -22
  105. package/setVendorCSS.js +0 -25
  106. package/siblings.js +0 -23
  107. package/toArray.js +0 -13
  108. package/types.js +0 -2
  109. package/unlisten.js +0 -37
@@ -4,39 +4,31 @@ import listenResize from "./listenResize";
4
4
  * Listen element's (`window` by default) _resize_ event debouncing the callback
5
5
  *
6
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 from "@koine/utils/debounce";
18
- // import isUndefined from "@koine/utils/isUndefined";
19
- // import listenResize from "./listenResize";
20
- // /**
21
- // * Listen element's (`window` by default) _resize_ event debouncing the callback
22
- // *
23
- // * @returns An automatic unbinding function to run to deregister the listener upon call
24
- // */
25
- // export function listenResizeDebounced(
26
- // ...args: Parameters<typeof debounce>
27
- // ): ReturnType<typeof listenResize>;
28
- // export function listenResizeDebounced(
29
- // el: Parameters<typeof listenResize>[1],
30
- // ...args: Parameters<typeof debounce>
31
- // ): ReturnType<typeof listenResize>;
32
- // export function listenResizeDebounced(
33
- // ...args:
34
- // | [Parameters<typeof listenResize>[1], ...Parameters<typeof debounce>]
35
- // | Parameters<typeof debounce>
36
- // ) {
37
- // if (isUndefined(args[0])) {
38
- // return listenResize(debounce(...args));
39
- // }
40
- // return listenResize(debounce(...args.slice(1)), args[0]);
41
- // }
42
- // export default listenResizeDebounced;
7
+ */ export const listenResizeDebounced = (el, ...args)=>listenResize(debounce(...args), el);
8
+ export default listenResizeDebounced; // EXP: with too complex overload signature...
9
+ // import debounce from "@koine/utils/debounce";
10
+ // import isUndefined from "@koine/utils/isUndefined";
11
+ // import listenResize from "./listenResize";
12
+ // /**
13
+ // * Listen element's (`window` by default) _resize_ event debouncing the callback
14
+ // *
15
+ // * @returns An automatic unbinding function to run to deregister the listener upon call
16
+ // */
17
+ // export function listenResizeDebounced(
18
+ // ...args: Parameters<typeof debounce>
19
+ // ): ReturnType<typeof listenResize>;
20
+ // export function listenResizeDebounced(
21
+ // el: Parameters<typeof listenResize>[1],
22
+ // ...args: Parameters<typeof debounce>
23
+ // ): ReturnType<typeof listenResize>;
24
+ // export function listenResizeDebounced(
25
+ // ...args:
26
+ // | [Parameters<typeof listenResize>[1], ...Parameters<typeof debounce>]
27
+ // | Parameters<typeof debounce>
28
+ // ) {
29
+ // if (isUndefined(args[0])) {
30
+ // return listenResize(debounce(...args));
31
+ // }
32
+ // return listenResize(debounce(...args.slice(1)), args[0]);
33
+ // }
34
+ // export default listenResizeDebounced;
@@ -4,12 +4,5 @@ import { listenResize } from "./listenResize";
4
4
  * Listen element's (`window` by default) _resize_ event throttling the callback
5
5
  *
6
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
- };
7
+ */ export const listenResizeThrottled = (el, ...args)=>listenResize(throttle(...args), el);
15
8
  export default listenResizeThrottled;
package/listenScroll.mjs CHANGED
@@ -3,11 +3,8 @@ import { on } from "./on";
3
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
- */
7
- export var listenScroll = function (handler, el) {
8
- return on(el || window, "scroll", handler, {
6
+ */ export const listenScroll = (handler, el)=>on(el || window, "scroll", handler, {
9
7
  capture: true,
10
- passive: true,
8
+ passive: true
11
9
  });
12
- };
13
10
  export default listenScroll;
@@ -4,12 +4,5 @@ import { listenScroll } from "./listenScroll";
4
4
  * Listen element's (`window` by default) _scroll_ event debouncing the callback
5
5
  *
6
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
- };
7
+ */ export const listenScrollDebounced = (el, ...args)=>listenScroll(debounce(...args), el);
15
8
  export default listenScrollDebounced;
@@ -4,12 +4,5 @@ import { listenScroll } from "./listenScroll";
4
4
  * Listen element's (`window` by default) _scroll_ event throttling the callback
5
5
  *
6
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
- };
7
+ */ export const listenScrollThrottled = (el, ...args)=>listenScroll(throttle(...args), el);
15
8
  export default listenScrollThrottled;
package/off.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { AnyDOMEventTargetLoose } from "./types";
1
+ import type { AnyDOMEvent, AnyDOMEventTargetLoose, AnyDOMEventType } from "./types";
2
2
  /**
3
3
  * Shortcut for `removeEventListener`
4
4
  */
5
- export declare function off(el: AnyDOMEventTargetLoose, type: string, handler: EventListener, options?: EventListenerOptions | boolean): void;
5
+ export declare function off<TType extends AnyDOMEventType>(el: AnyDOMEventTargetLoose, type: TType, handler: (event: AnyDOMEvent<TType>) => void, options?: EventListenerOptions | boolean): void;
6
6
  export default off;
package/off.mjs CHANGED
@@ -1,14 +1,11 @@
1
1
  /**
2
2
  * Shortcut for `removeEventListener`
3
- */
4
- export function off(el, type, handler, options) {
5
- if (options === void 0) { options = false; }
3
+ */ export function off(el, type, handler, options = false) {
6
4
  if (process.env["NODE_ENV"] !== "production") {
7
5
  if (!el) {
8
6
  console.warn("[@koine/dom:off] unexisting DOM element");
9
7
  }
10
8
  }
11
- if (el)
12
- el.removeEventListener(type, handler, options);
9
+ if (el) el.removeEventListener(type, handler, options);
13
10
  }
14
11
  export default off;
package/on.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import type { AnyDOMEventTargetLoose } from "./types";
1
+ import type { AnyDOMEvent, AnyDOMEventTargetLoose, AnyDOMEventType } from "./types";
2
2
  /**
3
3
  * Shortcut for `addEventListener`
4
4
  *
5
5
  * @returns An automatic unbinding function to run to deregister the listener upon call
6
6
  */
7
- export declare function on<THandler extends (event: any) => void>(el: AnyDOMEventTargetLoose, type: string, handler: THandler, options?: AddEventListenerOptions | boolean): () => void;
7
+ export declare function on<TType extends AnyDOMEventType>(el: AnyDOMEventTargetLoose, type: TType, handler: (event: AnyDOMEvent<TType>) => void, options?: AddEventListenerOptions | boolean): () => void;
8
8
  export default on;
package/on.mjs CHANGED
@@ -1,11 +1,11 @@
1
+ // import noop from "@koine/utils/noop"; FIXME: build breaks with this import
1
2
  import off from "./off";
2
3
  /**
3
4
  * Shortcut for `addEventListener`
4
5
  *
5
6
  * @returns An automatic unbinding function to run to deregister the listener upon call
6
- */
7
- export function on(el, type, handler /* EventListener | */ /* ((event: Event) => void) */, options) {
8
- if (options === void 0) { options = false; }
7
+ */ export function on(el, type, handler, // handler: THandler /* EventListener | */ /* ((event: Event) => void) */,
8
+ options = false) {
9
9
  if (process.env["NODE_ENV"] !== "production") {
10
10
  if (!el) {
11
11
  console.warn("[@koine/dom:on] unexisting DOM element");
@@ -13,9 +13,9 @@ export function on(el, type, handler /* EventListener | */ /* ((event: Event) =
13
13
  }
14
14
  if (el) {
15
15
  el.addEventListener(type, handler, options);
16
- return function () { return off(el, type, handler); };
16
+ return ()=>off(el, type, handler);
17
17
  }
18
18
  // return noop;
19
- return function () { return void 0; };
19
+ return ()=>void 0;
20
20
  }
21
21
  export default on;
@@ -1,15 +1,13 @@
1
- import { on, off } from "./index";
2
- export function onClickOutside(element, callback, autoUnbind) {
3
- if (autoUnbind === void 0) { autoUnbind = false; }
4
- var bind = function (event) {
1
+ import { off, on } from "./index";
2
+ export function onClickOutside(element, callback, autoUnbind = false) {
3
+ const bind = (event)=>{
5
4
  // if (event.target.closest(element) === null) {
6
5
  if (!element.contains(event.target)) {
7
6
  callback(event);
8
- if (autoUnbind)
9
- unbind();
7
+ if (autoUnbind) unbind();
10
8
  }
11
9
  };
12
- var unbind = function () {
10
+ const unbind = ()=>{
13
11
  off(document, "click", bind);
14
12
  };
15
13
  on(document, "click", bind);
package/once.mjs CHANGED
@@ -1,12 +1,10 @@
1
- import on from "./on";
2
1
  import off from "./off";
2
+ import on from "./on";
3
3
  /**
4
4
  * One shot listener, it `addEventListener` and removes it first time is called
5
5
  * with `removeEventListener`
6
- */
7
- export function once(el, type, handler, options) {
8
- if (options === void 0) { options = false; }
9
- var handlerWrapper = function (event) {
6
+ */ export function once(el, type, handler, options = false) {
7
+ const handlerWrapper = (event)=>{
10
8
  handler(event);
11
9
  off(el, type, handlerWrapper);
12
10
  };
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "@koine/dom",
3
3
  "sideEffects": false,
4
- "peerDependencies": {
5
- "tslib": "2.5.3"
4
+ "dependencies": {
5
+ "@koine/utils": "2.0.0-beta.11"
6
6
  },
7
+ "module": "./index.mjs",
7
8
  "main": "./index.js",
8
9
  "types": "./index.d.ts",
9
- "version": "2.0.0-beta.1",
10
- "module": "./index.mjs"
11
- }
10
+ "peerDependencies": {
11
+ "type-fest": "^4.1.0"
12
+ },
13
+ "version": "2.0.0-beta.11"
14
+ }
package/removeClass.mjs CHANGED
@@ -1,15 +1,12 @@
1
1
  /**
2
2
  * Remove class shortcut
3
- */
4
- export function removeClass(el, className) {
5
- if (className === void 0) { className = ""; }
3
+ */ export function removeClass(el, className = "") {
6
4
  if (process.env["NODE_ENV"] !== "production") {
7
5
  if (!el) {
8
- ("[@koine/dom:removeClass] unexisting DOM element");
6
+ "[@koine/dom:removeClass] unexisting DOM element";
9
7
  return;
10
8
  }
11
9
  }
12
- if (el)
13
- el.classList.remove(className);
10
+ if (el) el.classList.remove(className);
14
11
  }
15
12
  export default removeClass;
package/scrollTo.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { on } from "./on";
2
1
  import { off } from "./off";
2
+ import { on } from "./on";
3
3
  /**
4
4
  * Native `scrollTo`, `"smooth"` and with callback
5
5
  *
@@ -9,24 +9,23 @@ import { off } from "./off";
9
9
  * @param callback - callback function
10
10
  * @param [fallbackTimeout] - this appears to be needed in some hard to reproduce scenario on safari, where the callback seem to be never called
11
11
  * @param [behavior="smooth"]
12
- */
13
- export function scrollTo(destination, callback, fallbackTimeout, behavior) {
14
- var fixedDestination = destination.toFixed();
12
+ */ export function scrollTo(destination, callback, fallbackTimeout, behavior) {
13
+ const fixedDestination = destination.toFixed();
15
14
  if (callback) {
16
- var callbackFired_1 = false;
17
- var onScroll_1 = function () {
15
+ let callbackFired = false;
16
+ const onScroll = function() {
18
17
  if (window.pageYOffset.toFixed() === fixedDestination) {
19
- off(window, "scroll", onScroll_1);
20
- callbackFired_1 = true;
18
+ off(window, "scroll", onScroll);
19
+ callbackFired = true;
21
20
  callback();
22
21
  }
23
22
  };
24
- on(window, "scroll", onScroll_1);
25
- onScroll_1();
23
+ on(window, "scroll", onScroll);
24
+ onScroll();
26
25
  if (fallbackTimeout) {
27
- setTimeout(function () {
28
- if (!callbackFired_1) {
29
- off(window, "scroll", onScroll_1);
26
+ setTimeout(()=>{
27
+ if (!callbackFired) {
28
+ off(window, "scroll", onScroll);
30
29
  callback();
31
30
  }
32
31
  }, fallbackTimeout);
@@ -34,7 +33,7 @@ export function scrollTo(destination, callback, fallbackTimeout, behavior) {
34
33
  }
35
34
  window.scrollTo({
36
35
  top: destination,
37
- behavior: behavior || "smooth",
36
+ behavior: behavior || "smooth"
38
37
  });
39
38
  }
40
39
  export default scrollTo;
package/setDataAttr.mjs CHANGED
@@ -4,8 +4,7 @@
4
4
  * @param element
5
5
  * @param attribute The name of the `data-{attr}`
6
6
  * @param value The value to set, `null` or `undefined` will remove the attribute
7
- */
8
- export function setDataAttr(element, attribute, value) {
7
+ */ export function setDataAttr(element, attribute, value) {
9
8
  if (value === null || typeof value === "undefined") {
10
9
  // delete element.dataset[attribute];
11
10
  // return;
package/setVendorCSS.mjs CHANGED
@@ -4,9 +4,8 @@
4
4
  * @param element A single HTMLElement
5
5
  * @param prop CSS rule proerty
6
6
  * @param value The CSS value to set, it will be automatically vendor prefixed
7
- */
8
- export function setVendorCSS(element, prop, value) {
9
- var propUpper = prop.charAt(0).toUpperCase() + prop.slice(1);
7
+ */ export function setVendorCSS(element, prop, value) {
8
+ const propUpper = prop.charAt(0).toUpperCase() + prop.slice(1);
10
9
  // @ts-expect-error nevermind now...
11
10
  element.style["webkit" + propUpper] = value;
12
11
  // @ts-expect-error nevermind now...
package/siblings.mjs CHANGED
@@ -2,12 +2,11 @@
2
2
  * Finds siblings nodes of the passed node.
3
3
  *
4
4
  * @borrows @glidejs/glide/src/utils/dom (source)
5
- */
6
- export function siblings(node) {
5
+ */ export function siblings(node) {
7
6
  if (node && node.parentNode) {
8
- var n = node.parentNode.firstChild;
9
- var matched = [];
10
- for (; n; n = n.nextSibling) {
7
+ let n = node.parentNode.firstChild;
8
+ const matched = [];
9
+ for(; n; n = n.nextSibling){
11
10
  if (n.nodeType === 1 && n !== node) {
12
11
  matched.push(n);
13
12
  }
package/toArray.mjs CHANGED
@@ -2,8 +2,7 @@
2
2
  * Node list to array
3
3
  *
4
4
  * @param nodeList
5
- */
6
- export function toArray(nodeList) {
5
+ */ export function toArray(nodeList) {
7
6
  return Array.prototype.slice.call(nodeList);
8
7
  }
9
8
  export default toArray;
package/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { LiteralUnion } from "type-fest";
1
2
  import type { AnythingFalsy } from "@koine/utils/types";
2
3
  export type AnyDOMEventTarget = Window | Document | HTMLElement | Element;
3
4
  /**
@@ -5,3 +6,7 @@ export type AnyDOMEventTarget = Window | Document | HTMLElement | Element;
5
6
  * to `window` in case of _scroll_ or _resize_ events
6
7
  */
7
8
  export type AnyDOMEventTargetLoose = AnyDOMEventTarget | AnythingFalsy;
9
+ type StandardDOMEventTypes = keyof GlobalEventHandlersEventMap;
10
+ export type AnyDOMEventType = LiteralUnion<StandardDOMEventTypes | "storage" | "popstate", string>;
11
+ export type AnyDOMEvent<TType extends AnyDOMEventType> = TType extends StandardDOMEventTypes ? GlobalEventHandlersEventMap[TType] : TType extends "storage" ? StorageEvent : TType extends "popstate" ? PopStateEvent : Event;
12
+ export {};
package/types.mjs CHANGED
@@ -1 +1 @@
1
- export {};
1
+ export { };
package/unlisten.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type EventCallback } from "./_listen-delegation";
2
+ import type { AnyDOMEventTarget, AnyDOMEventType } from "./types";
2
3
  /**
3
4
  * Stop listening for an event
4
5
  *
@@ -8,5 +9,5 @@ import { type EventCallback } from "./_listen-delegation";
8
9
  * @param selector The selector to remove the event from
9
10
  * @param callback The function to remove
10
11
  */
11
- export declare function unlisten(types: string, selector: string, callback: EventCallback): void;
12
+ export declare function unlisten<TTypes extends AnyDOMEventType, TTarget extends AnyDOMEventTarget = AnyDOMEventTarget>(types: TTypes, selector: string, callback: EventCallback<TTarget, TTypes>): void;
12
13
  export default unlisten;
package/unlisten.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { activeEvents, getIndex, eventHandler, } from "./_listen-delegation";
1
+ import { activeEvents, eventHandler, getIndex } from "./_listen-delegation";
2
2
  import { off } from "./off";
3
3
  /**
4
4
  * Stop listening for an event
@@ -8,15 +8,17 @@ import { off } from "./off";
8
8
  * @param types The event type or types (comma separated)
9
9
  * @param selector The selector to remove the event from
10
10
  * @param callback The function to remove
11
- */
12
- export function unlisten(types, selector, callback) {
11
+ */ export function unlisten(types, // | `${TTypes},${TTypes}`
12
+ // | `${TTypes},${TTypes},${TTypes}`
13
+ // | `${TTypes},${TTypes},${TTypes},${TTypes}`
14
+ // | `${TTypes},${TTypes},${TTypes},${TTypes},${TTypes}`,
15
+ selector, callback) {
13
16
  // Loop through each event type
14
- types.split(",").forEach(function (type) {
17
+ types.split(",").forEach(function(type) {
15
18
  // Remove whitespace
16
19
  type = type.trim();
17
20
  // if event type doesn't exist, bail
18
- if (!activeEvents[type])
19
- return;
21
+ if (!activeEvents[type]) return;
20
22
  // If it's the last event of it's type, remove entirely
21
23
  if (activeEvents[type].length < 2 || !selector) {
22
24
  delete activeEvents[type];
@@ -24,9 +26,9 @@ export function unlisten(types, selector, callback) {
24
26
  return;
25
27
  }
26
28
  // Otherwise, remove event
27
- var index = getIndex(activeEvents[type], selector, callback);
28
- if (index < 0)
29
- return;
29
+ // @ts-expect-error FIXME: type...
30
+ const index = getIndex(activeEvents[type], selector, callback);
31
+ if (index < 0) return;
30
32
  activeEvents[type].splice(index, 1);
31
33
  });
32
34
  }
package/$$.js DELETED
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$$ = void 0;
4
- /**
5
- * Sizzle/jQuery like DOM nodes shortcut for `document.querySelectorAll`
6
- * To avoid an extra function call we inline the above `escape`
7
- *
8
- * @param string selector DOM selector
9
- * @param parent It falls back to `window.document`
10
- * @param avoidEscape Whether to avoid escaping `:` in the selector string
11
- */
12
- function $$(selector, parent, avoidEscape) {
13
- return (parent ? parent : document).querySelectorAll(avoidEscape ? selector : selector.replace(/:/g, "\\:"));
14
- }
15
- exports.$$ = $$;
16
- exports.default = $$;
package/$.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$ = void 0;
4
- /**
5
- * Sizzle/jQuery like DOM nodes shortcut for `document.querySelector`
6
- * To avoid an extra function call we inline the above `escape`
7
- *
8
- * @param selector DOM selector
9
- * @param parent It falls back to `window.document`
10
- * @param avoidEscape Whether to avoid escaping `:` in the selector string
11
- * @example <caption>Basic DOM selection</caption>
12
- * const $container = $(".my-section:");
13
- * const $el = $("[data-some-attr]", $container);
14
- */
15
- function $(selector, parent, avoidEscape) {
16
- return (parent ? parent : document).querySelector(avoidEscape ? selector : selector.replace(/:/g, "\\:"));
17
- }
18
- exports.$ = $;
19
- exports.default = $;
package/$each.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$each = void 0;
4
- var tslib_1 = require("tslib");
5
- var __1 = tslib_1.__importDefault(require("./$$"));
6
- /**
7
- * Each shortcut, iterate through a NodeList of HTMLElements retrieved with the
8
- * given selector (and optionally a parent container passed as thrid arguement)
9
- *
10
- * @param selector DOM selector
11
- * @param callback
12
- * @param parent It falls back to `window.document`
13
- * @param scope
14
- */
15
- function $each(selector, callback, parent, scope) {
16
- var nodes = (0, __1.default)(selector, parent);
17
- for (var i = 0; i < nodes.length; i++) {
18
- callback.call(scope, nodes[i], i);
19
- }
20
- }
21
- exports.$each = $each;
22
- exports.default = $each;
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.eventHandler = exports.getRunTarget = exports.getIndex = exports.activeEvents = void 0;
4
- var tslib_1 = require("tslib");
5
- /**
6
- * Listen: events delegation system
7
- *
8
- * From:
9
- * https://github.com/cferdinandi/events
10
- * https://github.com/cferdinandi/events/blob/master/src/js/events/events.js
11
- *
12
- * @fileoverview
13
- */
14
- var isString_1 = tslib_1.__importDefault(require("@koine/utils/isString"));
15
- var escapeSelector_1 = tslib_1.__importDefault(require("./escapeSelector"));
16
- /**
17
- * Active events
18
- *
19
- * @internal
20
- */
21
- exports.activeEvents = {};
22
- /**
23
- * Get the index for the listener
24
- *
25
- * @internal
26
- */
27
- function getIndex(arr, selector, callback) {
28
- for (var i = 0; i < arr.length; i++) {
29
- if (arr[i].selector === selector &&
30
- arr[i].callback.toString() === callback.toString())
31
- return i;
32
- }
33
- return -1;
34
- }
35
- exports.getIndex = getIndex;
36
- /**
37
- * Check if the listener callback should run or not
38
- *
39
- * @internal
40
- * @param target The event.target
41
- * @param selector The selector/element to check the target against
42
- * @return If not false, run listener and pass the targeted element to use in the callback
43
- */
44
- function getRunTarget(target, selector) {
45
- // @ts-expect-error FIXME: type
46
- if (["*", "window", window].includes(selector)) {
47
- return window;
48
- }
49
- if ([
50
- "document",
51
- "document.documentElement",
52
- document,
53
- document.documentElement,
54
- // @ts-expect-error FIXME: type
55
- ].includes(selector))
56
- return document;
57
- if ((0, isString_1.default)(selector)) {
58
- return target.closest((0, escapeSelector_1.default)(selector));
59
- }
60
- // @ts-expect-error FIXME: type
61
- if (typeof selector !== "string" && selector.contains) {
62
- if (selector === target) {
63
- return target;
64
- }
65
- // @ts-expect-error FIXME: type
66
- if (selector.contains(target)) {
67
- return selector;
68
- }
69
- return false;
70
- }
71
- return false;
72
- }
73
- exports.getRunTarget = getRunTarget;
74
- /**
75
- * Handle listeners after event fires
76
- *
77
- * @internal
78
- */
79
- function eventHandler(event) {
80
- if (!exports.activeEvents[event.type])
81
- return;
82
- exports.activeEvents[event.type].forEach(function (listener) {
83
- var target = getRunTarget(event.target, listener.selector);
84
- if (!target) {
85
- return;
86
- }
87
- listener.callback(event, target);
88
- });
89
- }
90
- exports.eventHandler = eventHandler;
package/addClass.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addClass = void 0;
4
- /**
5
- * Add class shortcut
6
- */
7
- function addClass(el, className) {
8
- if (className === void 0) { className = ""; }
9
- if (process.env["NODE_ENV"] !== "production") {
10
- if (!el) {
11
- console.warn("[@koine/dom:addClass] unexisting DOM element");
12
- return;
13
- }
14
- }
15
- if (el)
16
- el.classList.add(className);
17
- }
18
- exports.addClass = addClass;
19
- exports.default = addClass;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateFixedOffset = void 0;
4
- var _each_1 = require("./$each");
5
- function calculateFixedOffset(selector) {
6
- if (selector === void 0) { selector = "[data-fixed]"; }
7
- var fixedOffset = 0;
8
- (0, _each_1.$each)(selector, function ($el) {
9
- fixedOffset += $el.offsetHeight;
10
- });
11
- return fixedOffset;
12
- }
13
- exports.calculateFixedOffset = calculateFixedOffset;
14
- exports.default = calculateFixedOffset;