@koine/dom 2.0.0-beta.37 → 2.0.0-beta.39
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.
- package/$.d.ts +1 -2
- package/$all.d.ts +1 -2
- package/$each.d.ts +1 -2
- package/README.md +1 -0
- package/_listen-delegation.d.ts +5 -5
- package/addClass.d.ts +1 -2
- package/calculateFixedOffset.d.ts +1 -2
- package/createElement.d.ts +2 -3
- package/emitEvent.d.ts +1 -2
- package/escapeSelector.d.ts +1 -2
- package/exists.d.ts +1 -2
- package/forEach.d.ts +1 -2
- package/getDataAttr.d.ts +1 -2
- package/getDocumentHeight.d.ts +1 -2
- package/getHeight.d.ts +1 -2
- package/getListeners.d.ts +1 -2
- package/getOffset.d.ts +1 -2
- package/getOffsetTop.d.ts +1 -2
- package/getOffsetTopSlim.d.ts +1 -2
- package/getScrollbarWidth.d.ts +1 -2
- package/getStyleValue.d.ts +1 -2
- package/getVisualBackgroundColor.d.ts +1 -2
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +143 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +46 -46
- package/index.esm.js +95 -0
- package/injectCss.d.ts +1 -2
- package/isHidden.d.ts +1 -2
- package/isInViewport.d.ts +1 -2
- package/isNodeList.d.ts +1 -2
- package/isTotallyScrolled.d.ts +1 -2
- package/listen.d.ts +3 -4
- package/listenLoaded.d.ts +1 -2
- package/listenOnce.d.ts +2 -3
- package/listenResize.d.ts +2 -3
- package/listenResizeDebounced.d.ts +2 -3
- package/listenResizeThrottled.d.ts +2 -3
- package/listenScroll.d.ts +2 -3
- package/listenScrollDebounced.d.ts +2 -3
- package/listenScrollThrottled.d.ts +2 -3
- package/off.d.ts +2 -3
- package/on.d.ts +2 -3
- package/onClickOutside.d.ts +1 -1
- package/once.d.ts +2 -3
- package/package.json +8 -146
- package/removeClass.d.ts +1 -2
- package/scrollTo.d.ts +1 -2
- package/setDataAttr.d.ts +1 -2
- package/setVendorCSS.d.ts +1 -2
- package/siblings.d.ts +1 -2
- package/toArray.d.ts +1 -2
- package/types.d.ts +1 -2
- package/unlisten.d.ts +3 -4
- package/$.js +0 -4
- package/$all.js +0 -4
- package/$each.js +0 -8
- package/_listen-delegation.js +0 -46
- package/addClass.js +0 -12
- package/calculateFixedOffset.js +0 -10
- package/createElement.js +0 -9
- package/emitEvent.js +0 -11
- package/escapeSelector.js +0 -4
- package/exists.js +0 -7
- package/forEach.js +0 -6
- package/getDataAttr.js +0 -4
- package/getDocumentHeight.js +0 -5
- package/getHeight.js +0 -4
- package/getListeners.js +0 -9
- package/getOffset.js +0 -11
- package/getOffsetTop.js +0 -11
- package/getOffsetTopSlim.js +0 -4
- package/getScrollbarWidth.js +0 -4
- package/getStyleValue.js +0 -4
- package/getVisualBackgroundColor.js +0 -16
- package/index.js +0 -45
- package/injectCss.js +0 -13
- package/isHidden.js +0 -4
- package/isInViewport.js +0 -10
- package/isNodeList.js +0 -9
- package/isTotallyScrolled.js +0 -4
- package/listen.js +0 -19
- package/listenLoaded.js +0 -5
- package/listenOnce.js +0 -11
- package/listenResize.js +0 -3
- package/listenResizeDebounced.js +0 -11
- package/listenResizeThrottled.js +0 -11
- package/listenScroll.js +0 -8
- package/listenScrollDebounced.js +0 -11
- package/listenScrollThrottled.js +0 -11
- package/off.js +0 -11
- package/on.js +0 -15
- package/onClickOutside.js +0 -16
- package/once.js +0 -11
- package/removeClass.js +0 -12
- package/scrollTo.js +0 -30
- package/setDataAttr.js +0 -8
- package/setVendorCSS.js +0 -9
- package/siblings.js +0 -14
- package/toArray.js +0 -4
- package/types.js +0 -1
- package/typings.d.ts +0 -4
- package/unlisten.js +0 -19
package/$.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default $;
|
|
1
|
+
export declare let $: <T extends Element = HTMLElement>(selector: string, parent?: HTMLElement | Document | null, avoidEscape?: boolean) => T;
|
package/$all.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default $all;
|
|
1
|
+
export declare let $all: <T extends Element = HTMLElement>(selector: string, parent?: Element | HTMLElement | Document | null, avoidEscape?: boolean) => NodeListOf<T>;
|
package/$each.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default $each;
|
|
1
|
+
export declare let $each: <T extends Element = HTMLElement>(selector: string, callback: ($element: T, index: number) => any, parent?: HTMLElement, scope?: object) => void;
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# @koine/dom
|
package/_listen-delegation.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { AnyDOMEvent, AnyDOMEventTarget, AnyDOMEventType } from "./types
|
|
1
|
+
import type { AnyDOMEvent, AnyDOMEventTarget, AnyDOMEventType } from "./types";
|
|
2
2
|
export type EventCallback<TTarget extends AnyDOMEventTarget = AnyDOMEventTarget, TType extends AnyDOMEventType = AnyDOMEventType> = (event: AnyDOMEvent<TType>, desiredTarget: TTarget) => any;
|
|
3
3
|
export type ListenEvent = {
|
|
4
4
|
selector: string;
|
|
5
5
|
callback: EventCallback;
|
|
6
6
|
};
|
|
7
|
-
export declare
|
|
8
|
-
export declare
|
|
9
|
-
export declare
|
|
10
|
-
export declare
|
|
7
|
+
export declare let activeEvents: Partial<Record<AnyDOMEventType, ListenEvent[]>>;
|
|
8
|
+
export declare let getIndex: (arr: ListenEvent[], selector: string, callback: EventCallback) => number;
|
|
9
|
+
export declare let getRunTarget: (target: Element, selector: string | Window | Document | Element) => false | Window | Document | Element | null;
|
|
10
|
+
export declare let eventHandler: (event: Event) => void;
|
package/addClass.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default addClass;
|
|
1
|
+
export declare let addClass: <T extends Element = HTMLElement>(el?: T | undefined, className?: string) => void;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default calculateFixedOffset;
|
|
1
|
+
export declare let calculateFixedOffset: (selector?: string) => number;
|
package/createElement.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type { LiteralUnion } from "
|
|
2
|
-
export declare
|
|
3
|
-
export default createElement;
|
|
1
|
+
import type { LiteralUnion } from "@koine/utils";
|
|
2
|
+
export declare let createElement: <TType extends LiteralUnion<keyof HTMLElementTagNameMap, string>, TElement extends HTMLElement = TType extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[TType] : HTMLElement>(type: TType, className?: string) => TElement;
|
package/emitEvent.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default emitEvent;
|
|
1
|
+
export declare let emitEvent: (type?: string, detail?: {}) => void;
|
package/escapeSelector.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default escapeSelector;
|
|
1
|
+
export declare let escapeSelector: (selector: string) => string;
|
package/exists.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default exists;
|
|
1
|
+
export declare let exists: (node?: Element) => boolean | undefined;
|
package/forEach.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default forEach;
|
|
1
|
+
export declare let forEach: <T extends HTMLElement, TScope = object>(nodes: NodeListOf<T> | T[], callback: (this: TScope, $element: T, index: number) => any, scope?: TScope | undefined) => void;
|
package/getDataAttr.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getDataAttr;
|
|
1
|
+
export declare let getDataAttr: (element: HTMLElement, attribute: string) => string | null;
|
package/getDocumentHeight.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getDocumentHeight;
|
|
1
|
+
export declare let getDocumentHeight: () => number;
|
package/getHeight.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getHeight;
|
|
1
|
+
export declare let getHeight: <T extends Element>(element: T) => number;
|
package/getListeners.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getListeners;
|
|
1
|
+
export declare let getListeners: () => Partial<Record<import("./types").AnyDOMEventType, import("./_listen-delegation").ListenEvent[]>>;
|
package/getOffset.d.ts
CHANGED
package/getOffsetTop.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getOffsetTop;
|
|
1
|
+
export declare let getOffsetTop: <T extends HTMLElement>(elem: T) => number;
|
package/getOffsetTopSlim.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getOffsetTopSlim;
|
|
1
|
+
export declare let getOffsetTopSlim: <T extends HTMLElement>(elem: T) => number;
|
package/getScrollbarWidth.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getScrollbarWidth;
|
|
1
|
+
export declare let getScrollbarWidth: <T extends HTMLElement>(element?: T | undefined) => number;
|
package/getStyleValue.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getStyleValue;
|
|
1
|
+
export declare let getStyleValue: <T extends HTMLElement>(el: T, prop: string) => string;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default getVisualBackgroundColor;
|
|
1
|
+
export declare let getVisualBackgroundColor: (elem?: null | HTMLElement) => string;
|
package/index.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./index.cjs.js').default;
|
package/index.cjs.js
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
let $=(e,r,t)=>(r||document).querySelector(t?e:e.replace(/:/g,"\\:"));
|
|
8
|
+
|
|
9
|
+
let $all=(e,l,r)=>(l||document).querySelectorAll(r?e:e.replace(/:/g,"\\:"));
|
|
10
|
+
|
|
11
|
+
let $each=(e,t,o,r)=>{let a=$all(e,o);for(let l=0;l<a.length;l++)t.call(r,a[l],l);};
|
|
12
|
+
|
|
13
|
+
let addClass=(e,s="")=>{if("development"===process.env.NODE_ENV&&!e){console.warn("[@koine/dom:addClass] unexisting DOM element");return}e&&e.classList.add(s);};
|
|
14
|
+
|
|
15
|
+
let calculateFixedOffset=(t="[data-fixed]")=>{let f=0;return $each(t,e=>{f+=e.offsetHeight;}),f};
|
|
16
|
+
|
|
17
|
+
let createElement=(t,r)=>{let l=document.createElement(t);return r&&addClass(l,r),l};
|
|
18
|
+
|
|
19
|
+
let emitEvent=(t="customEvent",e={})=>{"function"==typeof window.CustomEvent&&document.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:e}));};
|
|
20
|
+
|
|
21
|
+
let escapeSelector=e=>e.replace(/:/g,"\\:");
|
|
22
|
+
|
|
23
|
+
let exists=e=>e&&e instanceof window.HTMLElement;
|
|
24
|
+
|
|
25
|
+
let forEach=(l,e,t)=>{for(let o=0;o<l.length;o++)e.call(t,l[o],o);};
|
|
26
|
+
|
|
27
|
+
let getDataAttr=(t,e)=>t.getAttribute("data-"+e);
|
|
28
|
+
|
|
29
|
+
let getDocumentHeight=()=>{let{body:t,documentElement:e}=document;return Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,t.clientHeight,e.clientHeight)};
|
|
30
|
+
|
|
31
|
+
let getHeight=e=>parseInt(window.getComputedStyle(e).height,10);
|
|
32
|
+
|
|
33
|
+
let activeEvents={};let getIndex=(e,t,n)=>{for(let r=0;r<e.length;r++)if(e[r].selector===t&&e[r].callback.toString()===n.toString())return r;return -1};let getRunTarget=(n,r)=>{if(["*","window",window].includes(r))return window;if(["document","document.documentElement",document,document.documentElement].includes(r))return document;if(utils.isString(r))return n.closest(escapeSelector(r));if("string"!=typeof r&&r.contains){if(r===n)return n;if(r.contains(n))return r}return !1};let eventHandler=e=>{activeEvents[e.type]?.forEach(function(t){let n=getRunTarget(e.target,t.selector);n&&t.callback(e,n);});};
|
|
34
|
+
|
|
35
|
+
let getListeners=()=>{let t={};for(let r in activeEvents)t[r]=activeEvents[r];return t};
|
|
36
|
+
|
|
37
|
+
let getOffset=f=>{let e=0,t=0;for(;f&&!isNaN(f.offsetLeft)&&!isNaN(f.offsetTop);)e+=f.offsetLeft-f.scrollLeft,t+=f.offsetTop-f.scrollTop,f=f.offsetParent;return {top:t,left:e}};
|
|
38
|
+
|
|
39
|
+
let getOffsetTop=e=>{let t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return t>=0?t:0};
|
|
40
|
+
|
|
41
|
+
let getOffsetTopSlim=t=>t.getBoundingClientRect().top+window.scrollY;
|
|
42
|
+
|
|
43
|
+
let getScrollbarWidth=t=>window.innerWidth-(t||document.documentElement).clientWidth;
|
|
44
|
+
|
|
45
|
+
let getStyleValue=(e,t)=>getComputedStyle(e,null).getPropertyValue(t);
|
|
46
|
+
|
|
47
|
+
let getVisualBackgroundColor=r=>{if(!r)return "#fff";let e=window.getComputedStyle(r).backgroundColor;if("rgba(0, 0, 0, 0)"===e||"transparent"===e){let e=r.parentElement;return e?getVisualBackgroundColor(e):"#fff"}return e};
|
|
48
|
+
|
|
49
|
+
let injectCss=(t,n="",d=document)=>{let i=$("#"+t);i||((i=d.createElement("style")).id=t,d.body.appendChild(i)),i.innerHTML=n;};
|
|
50
|
+
|
|
51
|
+
let isHidden=e=>!e||null===e.offsetParent;
|
|
52
|
+
|
|
53
|
+
let isInViewport=t=>{let e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)};
|
|
54
|
+
|
|
55
|
+
let isNodeList=t=>{let e=Object.prototype.toString.call(t);return "object"==typeof t&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(e)&&"number"==typeof t.length&&(0===t.length||"object"==typeof t[0]&&t[0].nodeType>0)};
|
|
56
|
+
|
|
57
|
+
let isTotallyScrolled=l=>!!l&&l.scrollHeight-l.scrollTop<=l.clientHeight;
|
|
58
|
+
|
|
59
|
+
let off=(e,n,o,t=!1)=>{"development"!==process.env.NODE_ENV||e||console.warn("[@koine/dom:off] unexisting DOM element"),e&&e.removeEventListener(n,o,t);};
|
|
60
|
+
|
|
61
|
+
let on=(n,t,i,r=!1)=>("development"!==process.env.NODE_ENV||n||console.warn("[@koine/dom:on] unexisting DOM element"),n)?(n.addEventListener(t,i,r),()=>off(n,t,i)):utils.noop;
|
|
62
|
+
|
|
63
|
+
let listenLoaded=e=>on(document,"DOMContentLoaded",e);
|
|
64
|
+
|
|
65
|
+
let listen=(e,l,r)=>{l&&r&&e.split(",").forEach(function(e){activeEvents[e=e.trim()]||(activeEvents[e]=[],on(window,e,eventHandler,!0)),activeEvents[e]?.push({selector:l,callback:r});});};
|
|
66
|
+
|
|
67
|
+
let unlisten=(l,o,n)=>{l.split(",").forEach(l=>{let f=activeEvents[l=l.trim()];if(!f)return;if(f.length<2||!o){delete activeEvents[l],off(window,l,eventHandler,!0);return}let m=getIndex(f,o,n);m<0||activeEvents[l].splice(m,1);});};
|
|
68
|
+
|
|
69
|
+
let listenOnce=(n,o,r)=>listen(n,o,function e(l){let m=getRunTarget(l.target,o);r(l,m||window),unlisten(n,o,e);});
|
|
70
|
+
|
|
71
|
+
let listenResize=(i,o)=>on(o||window,"resize",i);
|
|
72
|
+
|
|
73
|
+
let listenResizeDebounced=(o,...t)=>listenResize(utils.debounce(...t),o);
|
|
74
|
+
|
|
75
|
+
let listenResizeThrottled=(i,...o)=>listenResize(utils.throttle(...o),i);
|
|
76
|
+
|
|
77
|
+
let listenScroll=(l,r)=>on(r||window,"scroll",l,{capture:!0,passive:!0});
|
|
78
|
+
|
|
79
|
+
let listenScrollDebounced=(e,...r)=>listenScroll(utils.debounce(...r),e);
|
|
80
|
+
|
|
81
|
+
let listenScrollThrottled=(t,...r)=>listenScroll(utils.throttle(...r),t);
|
|
82
|
+
|
|
83
|
+
let once=(t,e,f,m=!1)=>{let n=r=>{f(r),off(t,e,n);};return on(t,e,n,m)};
|
|
84
|
+
|
|
85
|
+
let onClickOutside=(c,e,r=!1)=>{let i=t=>{!c.contains(t.target)&&(e(t),r&&n());},n=()=>{off(document,"click",i);};return on(document,"click",i),n};
|
|
86
|
+
|
|
87
|
+
let removeClass=(e,s="")=>{("development"!==process.env.NODE_ENV||e)&&e&&e.classList.remove(s);};
|
|
88
|
+
|
|
89
|
+
let scrollTo=(i,l,e,r)=>{let w=i.toFixed();if(l){let i=!1,r=function(){window.pageYOffset.toFixed()===w&&(off(window,"scroll",r),i=!0,l());};on(window,"scroll",r),r(),e&&setTimeout(()=>{i||(off(window,"scroll",r),l());},e);}window.scrollTo({top:i,behavior:r||"smooth"});};
|
|
90
|
+
|
|
91
|
+
let setDataAttr=(t,e,r)=>{if(null==r){t.removeAttribute("data-"+e);return}t.setAttribute("data-"+e,r.toString());};
|
|
92
|
+
|
|
93
|
+
let setVendorCSS=(e,t,s)=>{let l=t.charAt(0).toUpperCase()+t.slice(1);e.style["webkit"+l]=s,e.style["moz"+l]=s,e.style["ms"+l]=s,e.style["o"+l]=s,e.style[t]=s;};
|
|
94
|
+
|
|
95
|
+
let siblings=e=>{if(e&&e.parentNode){let r=e.parentNode.firstChild,t=[];for(;r;r=r.nextSibling)1===r.nodeType&&r!==e&&t.push(r);return t}return []};
|
|
96
|
+
|
|
97
|
+
let toArray=r=>Array.prototype.slice.call(r);
|
|
98
|
+
|
|
99
|
+
exports.$ = $;
|
|
100
|
+
exports.$all = $all;
|
|
101
|
+
exports.$each = $each;
|
|
102
|
+
exports.addClass = addClass;
|
|
103
|
+
exports.calculateFixedOffset = calculateFixedOffset;
|
|
104
|
+
exports.createElement = createElement;
|
|
105
|
+
exports.emitEvent = emitEvent;
|
|
106
|
+
exports.escapeSelector = escapeSelector;
|
|
107
|
+
exports.exists = exists;
|
|
108
|
+
exports.forEach = forEach;
|
|
109
|
+
exports.getDataAttr = getDataAttr;
|
|
110
|
+
exports.getDocumentHeight = getDocumentHeight;
|
|
111
|
+
exports.getHeight = getHeight;
|
|
112
|
+
exports.getListeners = getListeners;
|
|
113
|
+
exports.getOffset = getOffset;
|
|
114
|
+
exports.getOffsetTop = getOffsetTop;
|
|
115
|
+
exports.getOffsetTopSlim = getOffsetTopSlim;
|
|
116
|
+
exports.getScrollbarWidth = getScrollbarWidth;
|
|
117
|
+
exports.getStyleValue = getStyleValue;
|
|
118
|
+
exports.getVisualBackgroundColor = getVisualBackgroundColor;
|
|
119
|
+
exports.injectCss = injectCss;
|
|
120
|
+
exports.isHidden = isHidden;
|
|
121
|
+
exports.isInViewport = isInViewport;
|
|
122
|
+
exports.isNodeList = isNodeList;
|
|
123
|
+
exports.isTotallyScrolled = isTotallyScrolled;
|
|
124
|
+
exports.listen = listen;
|
|
125
|
+
exports.listenLoaded = listenLoaded;
|
|
126
|
+
exports.listenOnce = listenOnce;
|
|
127
|
+
exports.listenResize = listenResize;
|
|
128
|
+
exports.listenResizeDebounced = listenResizeDebounced;
|
|
129
|
+
exports.listenResizeThrottled = listenResizeThrottled;
|
|
130
|
+
exports.listenScroll = listenScroll;
|
|
131
|
+
exports.listenScrollDebounced = listenScrollDebounced;
|
|
132
|
+
exports.listenScrollThrottled = listenScrollThrottled;
|
|
133
|
+
exports.off = off;
|
|
134
|
+
exports.on = on;
|
|
135
|
+
exports.onClickOutside = onClickOutside;
|
|
136
|
+
exports.once = once;
|
|
137
|
+
exports.removeClass = removeClass;
|
|
138
|
+
exports.scrollTo = scrollTo;
|
|
139
|
+
exports.setDataAttr = setDataAttr;
|
|
140
|
+
exports.setVendorCSS = setVendorCSS;
|
|
141
|
+
exports.siblings = siblings;
|
|
142
|
+
exports.toArray = toArray;
|
|
143
|
+
exports.unlisten = unlisten;
|
package/index.cjs.mjs
ADDED
package/index.d.ts
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
export { $ } from "
|
|
2
|
-
export { $all } from "./$all
|
|
3
|
-
export { $each } from "./$each
|
|
4
|
-
export { addClass } from "./addClass
|
|
5
|
-
export { calculateFixedOffset } from "./calculateFixedOffset
|
|
6
|
-
export { createElement } from "./createElement
|
|
7
|
-
export { emitEvent } from "./emitEvent
|
|
8
|
-
export { escapeSelector } from "./escapeSelector
|
|
9
|
-
export { exists } from "./exists
|
|
10
|
-
export { forEach } from "./forEach
|
|
11
|
-
export { getDataAttr } from "./getDataAttr
|
|
12
|
-
export { getDocumentHeight } from "./getDocumentHeight
|
|
13
|
-
export { getHeight } from "./getHeight
|
|
14
|
-
export { getListeners } from "./getListeners
|
|
15
|
-
export { getOffset } from "./getOffset
|
|
16
|
-
export { getOffsetTop } from "./getOffsetTop
|
|
17
|
-
export { getOffsetTopSlim } from "./getOffsetTopSlim
|
|
18
|
-
export { getScrollbarWidth } from "./getScrollbarWidth
|
|
19
|
-
export { getStyleValue } from "./getStyleValue
|
|
20
|
-
export { getVisualBackgroundColor } from "./getVisualBackgroundColor
|
|
21
|
-
export { injectCss } from "./injectCss
|
|
22
|
-
export { isHidden } from "./isHidden
|
|
23
|
-
export { isInViewport } from "./isInViewport
|
|
24
|
-
export { isNodeList } from "./isNodeList
|
|
25
|
-
export { isTotallyScrolled } from "./isTotallyScrolled
|
|
26
|
-
export { listenLoaded } from "./listenLoaded
|
|
27
|
-
export { listenOnce } from "./listenOnce
|
|
28
|
-
export { listenResize } from "./listenResize
|
|
29
|
-
export { listenResizeDebounced } from "./listenResizeDebounced
|
|
30
|
-
export { listenResizeThrottled } from "./listenResizeThrottled
|
|
31
|
-
export { listenScroll } from "./listenScroll
|
|
32
|
-
export { listenScrollDebounced } from "./listenScrollDebounced
|
|
33
|
-
export { listenScrollThrottled } from "./listenScrollThrottled
|
|
34
|
-
export { listen } from "./listen
|
|
35
|
-
export { off } from "./off
|
|
36
|
-
export { once } from "./once
|
|
37
|
-
export { onClickOutside } from "./onClickOutside
|
|
38
|
-
export { on } from "./on
|
|
39
|
-
export { removeClass } from "./removeClass
|
|
40
|
-
export { scrollTo } from "./scrollTo
|
|
41
|
-
export { setDataAttr } from "./setDataAttr
|
|
42
|
-
export { setVendorCSS } from "./setVendorCSS
|
|
43
|
-
export { siblings } from "./siblings
|
|
44
|
-
export { toArray } from "./toArray
|
|
45
|
-
export { unlisten } from "./unlisten
|
|
46
|
-
export type { AnyDOMEventTarget, AnyDOMEventTargetLoose, AnyDOMEventType, AnyDOMEvent, } from "./types
|
|
1
|
+
export { $ } from "./$";
|
|
2
|
+
export { $all } from "./$all";
|
|
3
|
+
export { $each } from "./$each";
|
|
4
|
+
export { addClass } from "./addClass";
|
|
5
|
+
export { calculateFixedOffset } from "./calculateFixedOffset";
|
|
6
|
+
export { createElement } from "./createElement";
|
|
7
|
+
export { emitEvent } from "./emitEvent";
|
|
8
|
+
export { escapeSelector } from "./escapeSelector";
|
|
9
|
+
export { exists } from "./exists";
|
|
10
|
+
export { forEach } from "./forEach";
|
|
11
|
+
export { getDataAttr } from "./getDataAttr";
|
|
12
|
+
export { getDocumentHeight } from "./getDocumentHeight";
|
|
13
|
+
export { getHeight } from "./getHeight";
|
|
14
|
+
export { getListeners } from "./getListeners";
|
|
15
|
+
export { getOffset } from "./getOffset";
|
|
16
|
+
export { getOffsetTop } from "./getOffsetTop";
|
|
17
|
+
export { getOffsetTopSlim } from "./getOffsetTopSlim";
|
|
18
|
+
export { getScrollbarWidth } from "./getScrollbarWidth";
|
|
19
|
+
export { getStyleValue } from "./getStyleValue";
|
|
20
|
+
export { getVisualBackgroundColor } from "./getVisualBackgroundColor";
|
|
21
|
+
export { injectCss } from "./injectCss";
|
|
22
|
+
export { isHidden } from "./isHidden";
|
|
23
|
+
export { isInViewport } from "./isInViewport";
|
|
24
|
+
export { isNodeList } from "./isNodeList";
|
|
25
|
+
export { isTotallyScrolled } from "./isTotallyScrolled";
|
|
26
|
+
export { listenLoaded } from "./listenLoaded";
|
|
27
|
+
export { listenOnce } from "./listenOnce";
|
|
28
|
+
export { listenResize } from "./listenResize";
|
|
29
|
+
export { listenResizeDebounced } from "./listenResizeDebounced";
|
|
30
|
+
export { listenResizeThrottled } from "./listenResizeThrottled";
|
|
31
|
+
export { listenScroll } from "./listenScroll";
|
|
32
|
+
export { listenScrollDebounced } from "./listenScrollDebounced";
|
|
33
|
+
export { listenScrollThrottled } from "./listenScrollThrottled";
|
|
34
|
+
export { listen } from "./listen";
|
|
35
|
+
export { off } from "./off";
|
|
36
|
+
export { once } from "./once";
|
|
37
|
+
export { onClickOutside } from "./onClickOutside";
|
|
38
|
+
export { on } from "./on";
|
|
39
|
+
export { removeClass } from "./removeClass";
|
|
40
|
+
export { scrollTo } from "./scrollTo";
|
|
41
|
+
export { setDataAttr } from "./setDataAttr";
|
|
42
|
+
export { setVendorCSS } from "./setVendorCSS";
|
|
43
|
+
export { siblings } from "./siblings";
|
|
44
|
+
export { toArray } from "./toArray";
|
|
45
|
+
export { unlisten } from "./unlisten";
|
|
46
|
+
export type { AnyDOMEventTarget, AnyDOMEventTargetLoose, AnyDOMEventType, AnyDOMEvent, } from "./types";
|
package/index.esm.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { isString, noop, debounce, throttle } from '@koine/utils';
|
|
2
|
+
|
|
3
|
+
let $=(e,r,t)=>(r||document).querySelector(t?e:e.replace(/:/g,"\\:"));
|
|
4
|
+
|
|
5
|
+
let $all=(e,l,r)=>(l||document).querySelectorAll(r?e:e.replace(/:/g,"\\:"));
|
|
6
|
+
|
|
7
|
+
let $each=(e,t,o,r)=>{let a=$all(e,o);for(let l=0;l<a.length;l++)t.call(r,a[l],l);};
|
|
8
|
+
|
|
9
|
+
let addClass=(e,s="")=>{if("development"===process.env.NODE_ENV&&!e){console.warn("[@koine/dom:addClass] unexisting DOM element");return}e&&e.classList.add(s);};
|
|
10
|
+
|
|
11
|
+
let calculateFixedOffset=(t="[data-fixed]")=>{let f=0;return $each(t,e=>{f+=e.offsetHeight;}),f};
|
|
12
|
+
|
|
13
|
+
let createElement=(t,r)=>{let l=document.createElement(t);return r&&addClass(l,r),l};
|
|
14
|
+
|
|
15
|
+
let emitEvent=(t="customEvent",e={})=>{"function"==typeof window.CustomEvent&&document.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:e}));};
|
|
16
|
+
|
|
17
|
+
let escapeSelector=e=>e.replace(/:/g,"\\:");
|
|
18
|
+
|
|
19
|
+
let exists=e=>e&&e instanceof window.HTMLElement;
|
|
20
|
+
|
|
21
|
+
let forEach=(l,e,t)=>{for(let o=0;o<l.length;o++)e.call(t,l[o],o);};
|
|
22
|
+
|
|
23
|
+
let getDataAttr=(t,e)=>t.getAttribute("data-"+e);
|
|
24
|
+
|
|
25
|
+
let getDocumentHeight=()=>{let{body:t,documentElement:e}=document;return Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,t.clientHeight,e.clientHeight)};
|
|
26
|
+
|
|
27
|
+
let getHeight=e=>parseInt(window.getComputedStyle(e).height,10);
|
|
28
|
+
|
|
29
|
+
let activeEvents={};let getIndex=(e,t,n)=>{for(let r=0;r<e.length;r++)if(e[r].selector===t&&e[r].callback.toString()===n.toString())return r;return -1};let getRunTarget=(n,r)=>{if(["*","window",window].includes(r))return window;if(["document","document.documentElement",document,document.documentElement].includes(r))return document;if(isString(r))return n.closest(escapeSelector(r));if("string"!=typeof r&&r.contains){if(r===n)return n;if(r.contains(n))return r}return !1};let eventHandler=e=>{activeEvents[e.type]?.forEach(function(t){let n=getRunTarget(e.target,t.selector);n&&t.callback(e,n);});};
|
|
30
|
+
|
|
31
|
+
let getListeners=()=>{let t={};for(let r in activeEvents)t[r]=activeEvents[r];return t};
|
|
32
|
+
|
|
33
|
+
let getOffset=f=>{let e=0,t=0;for(;f&&!isNaN(f.offsetLeft)&&!isNaN(f.offsetTop);)e+=f.offsetLeft-f.scrollLeft,t+=f.offsetTop-f.scrollTop,f=f.offsetParent;return {top:t,left:e}};
|
|
34
|
+
|
|
35
|
+
let getOffsetTop=e=>{let t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return t>=0?t:0};
|
|
36
|
+
|
|
37
|
+
let getOffsetTopSlim=t=>t.getBoundingClientRect().top+window.scrollY;
|
|
38
|
+
|
|
39
|
+
let getScrollbarWidth=t=>window.innerWidth-(t||document.documentElement).clientWidth;
|
|
40
|
+
|
|
41
|
+
let getStyleValue=(e,t)=>getComputedStyle(e,null).getPropertyValue(t);
|
|
42
|
+
|
|
43
|
+
let getVisualBackgroundColor=r=>{if(!r)return "#fff";let e=window.getComputedStyle(r).backgroundColor;if("rgba(0, 0, 0, 0)"===e||"transparent"===e){let e=r.parentElement;return e?getVisualBackgroundColor(e):"#fff"}return e};
|
|
44
|
+
|
|
45
|
+
let injectCss=(t,n="",d=document)=>{let i=$("#"+t);i||((i=d.createElement("style")).id=t,d.body.appendChild(i)),i.innerHTML=n;};
|
|
46
|
+
|
|
47
|
+
let isHidden=e=>!e||null===e.offsetParent;
|
|
48
|
+
|
|
49
|
+
let isInViewport=t=>{let e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)};
|
|
50
|
+
|
|
51
|
+
let isNodeList=t=>{let e=Object.prototype.toString.call(t);return "object"==typeof t&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(e)&&"number"==typeof t.length&&(0===t.length||"object"==typeof t[0]&&t[0].nodeType>0)};
|
|
52
|
+
|
|
53
|
+
let isTotallyScrolled=l=>!!l&&l.scrollHeight-l.scrollTop<=l.clientHeight;
|
|
54
|
+
|
|
55
|
+
let off=(e,n,o,t=!1)=>{"development"!==process.env.NODE_ENV||e||console.warn("[@koine/dom:off] unexisting DOM element"),e&&e.removeEventListener(n,o,t);};
|
|
56
|
+
|
|
57
|
+
let on=(n,t,i,r=!1)=>("development"!==process.env.NODE_ENV||n||console.warn("[@koine/dom:on] unexisting DOM element"),n)?(n.addEventListener(t,i,r),()=>off(n,t,i)):noop;
|
|
58
|
+
|
|
59
|
+
let listenLoaded=e=>on(document,"DOMContentLoaded",e);
|
|
60
|
+
|
|
61
|
+
let listen=(e,l,r)=>{l&&r&&e.split(",").forEach(function(e){activeEvents[e=e.trim()]||(activeEvents[e]=[],on(window,e,eventHandler,!0)),activeEvents[e]?.push({selector:l,callback:r});});};
|
|
62
|
+
|
|
63
|
+
let unlisten=(l,o,n)=>{l.split(",").forEach(l=>{let f=activeEvents[l=l.trim()];if(!f)return;if(f.length<2||!o){delete activeEvents[l],off(window,l,eventHandler,!0);return}let m=getIndex(f,o,n);m<0||activeEvents[l].splice(m,1);});};
|
|
64
|
+
|
|
65
|
+
let listenOnce=(n,o,r)=>listen(n,o,function e(l){let m=getRunTarget(l.target,o);r(l,m||window),unlisten(n,o,e);});
|
|
66
|
+
|
|
67
|
+
let listenResize=(i,o)=>on(o||window,"resize",i);
|
|
68
|
+
|
|
69
|
+
let listenResizeDebounced=(o,...t)=>listenResize(debounce(...t),o);
|
|
70
|
+
|
|
71
|
+
let listenResizeThrottled=(i,...o)=>listenResize(throttle(...o),i);
|
|
72
|
+
|
|
73
|
+
let listenScroll=(l,r)=>on(r||window,"scroll",l,{capture:!0,passive:!0});
|
|
74
|
+
|
|
75
|
+
let listenScrollDebounced=(e,...r)=>listenScroll(debounce(...r),e);
|
|
76
|
+
|
|
77
|
+
let listenScrollThrottled=(t,...r)=>listenScroll(throttle(...r),t);
|
|
78
|
+
|
|
79
|
+
let once=(t,e,f,m=!1)=>{let n=r=>{f(r),off(t,e,n);};return on(t,e,n,m)};
|
|
80
|
+
|
|
81
|
+
let onClickOutside=(c,e,r=!1)=>{let i=t=>{!c.contains(t.target)&&(e(t),r&&n());},n=()=>{off(document,"click",i);};return on(document,"click",i),n};
|
|
82
|
+
|
|
83
|
+
let removeClass=(e,s="")=>{("development"!==process.env.NODE_ENV||e)&&e&&e.classList.remove(s);};
|
|
84
|
+
|
|
85
|
+
let scrollTo=(i,l,e,r)=>{let w=i.toFixed();if(l){let i=!1,r=function(){window.pageYOffset.toFixed()===w&&(off(window,"scroll",r),i=!0,l());};on(window,"scroll",r),r(),e&&setTimeout(()=>{i||(off(window,"scroll",r),l());},e);}window.scrollTo({top:i,behavior:r||"smooth"});};
|
|
86
|
+
|
|
87
|
+
let setDataAttr=(t,e,r)=>{if(null==r){t.removeAttribute("data-"+e);return}t.setAttribute("data-"+e,r.toString());};
|
|
88
|
+
|
|
89
|
+
let setVendorCSS=(e,t,s)=>{let l=t.charAt(0).toUpperCase()+t.slice(1);e.style["webkit"+l]=s,e.style["moz"+l]=s,e.style["ms"+l]=s,e.style["o"+l]=s,e.style[t]=s;};
|
|
90
|
+
|
|
91
|
+
let siblings=e=>{if(e&&e.parentNode){let r=e.parentNode.firstChild,t=[];for(;r;r=r.nextSibling)1===r.nodeType&&r!==e&&t.push(r);return t}return []};
|
|
92
|
+
|
|
93
|
+
let toArray=r=>Array.prototype.slice.call(r);
|
|
94
|
+
|
|
95
|
+
export { $, $all, $each, addClass, calculateFixedOffset, createElement, emitEvent, escapeSelector, exists, forEach, getDataAttr, getDocumentHeight, getHeight, getListeners, getOffset, getOffsetTop, getOffsetTopSlim, getScrollbarWidth, getStyleValue, getVisualBackgroundColor, injectCss, isHidden, isInViewport, isNodeList, isTotallyScrolled, listen, listenLoaded, listenOnce, listenResize, listenResizeDebounced, listenResizeThrottled, listenScroll, listenScrollDebounced, listenScrollThrottled, off, on, onClickOutside, once, removeClass, scrollTo, setDataAttr, setVendorCSS, siblings, toArray, unlisten };
|
package/injectCss.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default injectCss;
|
|
1
|
+
export declare let injectCss: (id: string, cssString?: string, root?: Document) => void;
|
package/isHidden.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default isHidden;
|
|
1
|
+
export declare let isHidden: <T extends HTMLElement>(el?: T | undefined) => boolean;
|
package/isInViewport.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default isInViewport;
|
|
1
|
+
export declare let isInViewport: <T extends Element>(elem: T) => boolean;
|
package/isNodeList.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default isNodeList;
|
|
1
|
+
export declare let isNodeList: (nodes: any) => nodes is NodeList;
|
package/isTotallyScrolled.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default isTotallyScrolled;
|
|
1
|
+
export declare let isTotallyScrolled: <T extends HTMLElement>(el?: T | null | undefined) => boolean;
|
package/listen.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type EventCallback } from "./_listen-delegation
|
|
2
|
-
import type { AnyDOMEventTarget, AnyDOMEventType } from "./types
|
|
3
|
-
export declare
|
|
4
|
-
export default listen;
|
|
1
|
+
import { type EventCallback } from "./_listen-delegation";
|
|
2
|
+
import type { AnyDOMEventTarget, AnyDOMEventType } from "./types";
|
|
3
|
+
export declare let listen: <TTypes extends AnyDOMEventType, TTarget extends AnyDOMEventTarget = AnyDOMEventTarget>(types: TTypes, selector: string, callback: EventCallback<TTarget, TTypes>) => void;
|
package/listenLoaded.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
export default listenLoaded;
|
|
1
|
+
export declare let listenLoaded: (handler: (event: Event) => any) => () => void;
|
package/listenOnce.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { type EventCallback } from "./_listen-delegation
|
|
2
|
-
export declare
|
|
3
|
-
export default listenOnce;
|
|
1
|
+
import { type EventCallback } from "./_listen-delegation";
|
|
2
|
+
export declare let listenOnce: (types: string, selector: string, callback: EventCallback) => void;
|
package/listenResize.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type { AnyDOMEventTargetLoose } from "./types
|
|
2
|
-
export declare
|
|
3
|
-
export default listenResize;
|
|
1
|
+
import type { AnyDOMEventTargetLoose } from "./types";
|
|
2
|
+
export declare let listenResize: (handler: () => void, el?: AnyDOMEventTargetLoose) => () => void;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import listenResize from "./listenResize
|
|
2
|
-
export declare
|
|
3
|
-
export default listenResizeDebounced;
|
|
1
|
+
import { listenResize } from "./listenResize";
|
|
2
|
+
export declare let listenResizeDebounced: (el?: Parameters<typeof listenResize>[1], fn: (...args: any[]) => any, wait?: number | undefined, immediate?: boolean | undefined) => () => void;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { listenResize } from "./listenResize
|
|
2
|
-
export declare
|
|
3
|
-
export default listenResizeThrottled;
|
|
1
|
+
import { listenResize } from "./listenResize";
|
|
2
|
+
export declare let listenResizeThrottled: (el?: Parameters<typeof listenResize>[1], fn: Function, limit: number, context?: unknown) => () => void;
|
package/listenScroll.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type { AnyDOMEventTargetLoose } from "./types
|
|
2
|
-
export declare
|
|
3
|
-
export default listenScroll;
|
|
1
|
+
import type { AnyDOMEventTargetLoose } from "./types";
|
|
2
|
+
export declare let listenScroll: (handler: () => void, el?: AnyDOMEventTargetLoose) => () => void;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { listenScroll } from "./listenScroll
|
|
2
|
-
export declare
|
|
3
|
-
export default listenScrollDebounced;
|
|
1
|
+
import { listenScroll } from "./listenScroll";
|
|
2
|
+
export declare let listenScrollDebounced: (el?: Parameters<typeof listenScroll>[1], fn: (...args: any[]) => any, wait?: number | undefined, immediate?: boolean | undefined) => () => void;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { listenScroll } from "./listenScroll
|
|
2
|
-
export declare
|
|
3
|
-
export default listenScrollThrottled;
|
|
1
|
+
import { listenScroll } from "./listenScroll";
|
|
2
|
+
export declare let listenScrollThrottled: (el?: Parameters<typeof listenScroll>[1], fn: Function, limit: number, context?: unknown) => () => void;
|
package/off.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type { AnyDOMEvent, AnyDOMEventTargetLoose, AnyDOMEventType } from "./types
|
|
2
|
-
export declare
|
|
3
|
-
export default off;
|
|
1
|
+
import type { AnyDOMEvent, AnyDOMEventTargetLoose, AnyDOMEventType } from "./types";
|
|
2
|
+
export declare let off: <TType extends AnyDOMEventType>(el: AnyDOMEventTargetLoose, type: TType, handler: (event: AnyDOMEvent<TType>) => void, options?: EventListenerOptions | boolean) => void;
|
package/on.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import type { AnyDOMEvent, AnyDOMEventTargetLoose, AnyDOMEventType } from "./types
|
|
2
|
-
export declare
|
|
3
|
-
export default on;
|
|
1
|
+
import type { AnyDOMEvent, AnyDOMEventTargetLoose, AnyDOMEventType } from "./types";
|
|
2
|
+
export declare let on: <TType extends AnyDOMEventType>(el: AnyDOMEventTargetLoose, type: TType, handler: (event: AnyDOMEvent<TType>) => void, options?: AddEventListenerOptions | boolean) => () => void;
|
package/onClickOutside.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare let onClickOutside: <T extends HTMLElement>(element: T, callback: (event: Event) => any, autoUnbind?: boolean) => () => void;
|
package/once.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { AnyDOMEventTargetLoose } from "./types
|
|
2
|
-
export declare
|
|
3
|
-
export default once;
|
|
1
|
+
import type { AnyDOMEventTargetLoose } from "./types";
|
|
2
|
+
export declare let once: (el: AnyDOMEventTargetLoose, type: string, handler: EventListener, options?: EventListenerOptions | boolean) => () => void;
|