@koine/dom 2.0.0-beta.75 → 2.0.0-beta.76
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/$.js +1 -2
- package/$all.js +1 -2
- package/$each.js +1 -8
- package/_listen-delegation.js +1 -45
- package/addClass.js +1 -11
- package/calculateFixedOffset.js +1 -9
- package/cjs/$.d.ts +2 -0
- package/cjs/$all.d.ts +2 -0
- package/cjs/$each.d.ts +2 -0
- package/cjs/_listen-delegation.d.ts +1 -0
- package/cjs/addClass.d.ts +2 -0
- package/cjs/calculateFixedOffset.d.ts +2 -0
- package/cjs/createElement.d.ts +3 -0
- package/cjs/dom/$.js +1 -0
- package/cjs/dom/$all.js +1 -0
- package/cjs/dom/$each.js +1 -0
- package/cjs/dom/_listen-delegation.js +1 -0
- package/cjs/dom/addClass.js +1 -0
- package/cjs/dom/calculateFixedOffset.js +1 -0
- package/cjs/dom/createElement.js +1 -0
- package/cjs/dom/emitEvent.js +1 -0
- package/cjs/dom/escapeSelector.js +1 -0
- package/cjs/dom/exists.js +1 -0
- package/cjs/dom/forEach.js +1 -0
- package/cjs/dom/getDataAttr.js +1 -0
- package/cjs/dom/getDocumentHeight.js +1 -0
- package/cjs/dom/getHeight.js +1 -0
- package/cjs/dom/getListeners.js +1 -0
- package/cjs/dom/getOffset.js +1 -0
- package/cjs/dom/getOffsetTop.js +1 -0
- package/cjs/dom/getOffsetTopSlim.js +1 -0
- package/cjs/dom/getScrollbarWidth.js +1 -0
- package/cjs/dom/getStyleValue.js +1 -0
- package/cjs/dom/getVisualBackgroundColor.js +1 -0
- package/cjs/dom/index.js +1 -0
- package/cjs/dom/injectCss.js +1 -0
- package/cjs/dom/isHidden.js +1 -0
- package/cjs/dom/isInViewport.js +1 -0
- package/cjs/dom/isNodeList.js +1 -0
- package/cjs/dom/isTotallyScrolled.js +1 -0
- package/cjs/dom/listen.js +1 -0
- package/cjs/dom/listenLoaded.js +1 -0
- package/cjs/dom/listenOnce.js +1 -0
- package/cjs/dom/listenResize.js +1 -0
- package/cjs/dom/listenResizeDebounced.js +1 -0
- package/cjs/dom/listenResizeThrottled.js +1 -0
- package/cjs/dom/listenScroll.js +1 -0
- package/cjs/dom/listenScrollDebounced.js +1 -0
- package/cjs/dom/listenScrollThrottled.js +1 -0
- package/cjs/dom/off.js +1 -0
- package/cjs/dom/on.js +1 -0
- package/cjs/dom/onClickOutside.js +1 -0
- package/cjs/dom/once.js +1 -0
- package/cjs/dom/removeClass.js +1 -0
- package/cjs/dom/scrollTo.js +1 -0
- package/cjs/dom/setDataAttr.js +1 -0
- package/cjs/dom/setVendorCSS.js +1 -0
- package/cjs/dom/siblings.js +1 -0
- package/cjs/dom/toArray.js +1 -0
- package/cjs/dom/types.js +1 -0
- package/cjs/dom/unlisten.js +1 -0
- package/cjs/emitEvent.d.ts +2 -0
- package/cjs/escapeSelector.d.ts +2 -0
- package/cjs/exists.d.ts +2 -0
- package/cjs/forEach.d.ts +2 -0
- package/cjs/getDataAttr.d.ts +2 -0
- package/cjs/getDocumentHeight.d.ts +2 -0
- package/cjs/getHeight.d.ts +2 -0
- package/cjs/getListeners.d.ts +2 -0
- package/cjs/getOffset.d.ts +5 -0
- package/cjs/getOffsetTop.d.ts +2 -0
- package/cjs/getOffsetTopSlim.d.ts +2 -0
- package/cjs/getScrollbarWidth.d.ts +2 -0
- package/cjs/getStyleValue.d.ts +2 -0
- package/cjs/getVisualBackgroundColor.d.ts +2 -0
- package/cjs/index.d.ts +46 -0
- package/cjs/injectCss.d.ts +2 -0
- package/cjs/isHidden.d.ts +2 -0
- package/cjs/isInViewport.d.ts +2 -0
- package/cjs/isNodeList.d.ts +2 -0
- package/cjs/isTotallyScrolled.d.ts +2 -0
- package/cjs/listen.d.ts +4 -0
- package/cjs/listenLoaded.d.ts +2 -0
- package/cjs/listenOnce.d.ts +3 -0
- package/cjs/listenResize.d.ts +3 -0
- package/cjs/listenResizeDebounced.d.ts +3 -0
- package/cjs/listenResizeThrottled.d.ts +3 -0
- package/cjs/listenScroll.d.ts +3 -0
- package/cjs/listenScrollDebounced.d.ts +3 -0
- package/cjs/listenScrollThrottled.d.ts +3 -0
- package/cjs/off.d.ts +3 -0
- package/cjs/on.d.ts +3 -0
- package/cjs/onClickOutside.d.ts +2 -0
- package/cjs/once.d.ts +3 -0
- package/cjs/package.json +10 -0
- package/cjs/removeClass.d.ts +2 -0
- package/cjs/scrollTo.d.ts +2 -0
- package/cjs/setDataAttr.d.ts +2 -0
- package/cjs/setVendorCSS.d.ts +2 -0
- package/cjs/siblings.d.ts +2 -0
- package/cjs/toArray.d.ts +2 -0
- package/cjs/types.d.ts +7 -0
- package/cjs/unlisten.d.ts +4 -0
- package/createElement.js +1 -9
- package/emitEvent.js +1 -9
- package/escapeSelector.js +1 -2
- package/exists.js +1 -2
- package/forEach.js +1 -6
- package/getDataAttr.js +1 -2
- package/getDocumentHeight.js +1 -5
- package/getHeight.js +1 -2
- package/getListeners.js +1 -9
- package/getOffset.js +1 -11
- package/getOffsetTop.js +1 -11
- package/getOffsetTopSlim.js +1 -2
- package/getScrollbarWidth.js +1 -2
- package/getStyleValue.js +1 -2
- package/getVisualBackgroundColor.js +1 -16
- package/index.js +1 -45
- package/injectCss.js +1 -11
- package/isHidden.js +1 -2
- package/isInViewport.js +1 -10
- package/isNodeList.js +1 -9
- package/isTotallyScrolled.js +1 -2
- package/listen.js +1 -18
- package/listenLoaded.js +1 -3
- package/listenOnce.js +1 -9
- package/listenResize.js +1 -3
- package/listenResizeDebounced.js +1 -4
- package/listenResizeThrottled.js +1 -4
- package/listenScroll.js +1 -6
- package/listenScrollDebounced.js +1 -4
- package/listenScrollThrottled.js +1 -4
- package/off.js +1 -10
- package/on.js +1 -15
- package/onClickOutside.js +1 -17
- package/once.js +1 -10
- package/package.json +54 -18
- package/removeClass.js +1 -11
- package/scrollTo.js +1 -30
- package/setDataAttr.js +1 -8
- package/setVendorCSS.js +1 -9
- package/siblings.js +1 -14
- package/toArray.js +1 -2
- package/types.js +1 -1
- package/unlisten.js +1 -20
- package/README.md +0 -1
- package/index.cjs.d.ts +0 -1
- package/index.cjs.default.js +0 -1
- package/index.cjs.js +0 -143
- package/index.cjs.mjs +0 -2
- package/index.esm.js +0 -95
package/setVendorCSS.js
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
export let setVendorCSS
|
|
2
|
-
const propUpper = prop.charAt(0).toUpperCase() + prop.slice(1);
|
|
3
|
-
element.style["webkit" + propUpper] = value;
|
|
4
|
-
element.style["moz" + propUpper] = value;
|
|
5
|
-
element.style["ms" + propUpper] = value;
|
|
6
|
-
element.style["o" + propUpper] = value;
|
|
7
|
-
element.style[prop] = value;
|
|
8
|
-
};
|
|
9
|
-
export default setVendorCSS;
|
|
1
|
+
export 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};export default setVendorCSS;
|
package/siblings.js
CHANGED
|
@@ -1,14 +1 @@
|
|
|
1
|
-
export let siblings =
|
|
2
|
-
if (node && node.parentNode) {
|
|
3
|
-
let n = node.parentNode.firstChild;
|
|
4
|
-
const matched = [];
|
|
5
|
-
for (; n; n = n.nextSibling) {
|
|
6
|
-
if (n.nodeType === 1 && n !== node) {
|
|
7
|
-
matched.push(n);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
return matched;
|
|
11
|
-
}
|
|
12
|
-
return [];
|
|
13
|
-
};
|
|
14
|
-
export default siblings;
|
|
1
|
+
export let siblings=e=>{if(e&&e.parentNode){let t=e.parentNode.firstChild,r=[];for(;t;t=t.nextSibling)1===t.nodeType&&t!==e&&r.push(t);return r}return[]};export default siblings;
|
package/toArray.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export let toArray
|
|
2
|
-
export default toArray;
|
|
1
|
+
export let toArray=r=>Array.prototype.slice.call(r);export default toArray;
|
package/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export{};
|
package/unlisten.js
CHANGED
|
@@ -1,20 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { off } from "./off";
|
|
3
|
-
export let unlisten = (types, selector, callback) => {
|
|
4
|
-
types.split(",").forEach((type) => {
|
|
5
|
-
type = type.trim();
|
|
6
|
-
const events = activeEvents[type];
|
|
7
|
-
if (!events)
|
|
8
|
-
return;
|
|
9
|
-
if (events.length < 2 || !selector) {
|
|
10
|
-
delete activeEvents[type];
|
|
11
|
-
off(window, type, eventHandler, true);
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const index = getIndex(events, selector, callback);
|
|
15
|
-
if (index < 0)
|
|
16
|
-
return;
|
|
17
|
-
activeEvents[type].splice(index, 1);
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
|
-
export default unlisten;
|
|
1
|
+
import{activeEvents as e,eventHandler as t,getIndex as i}from"./_listen-delegation";import{off as l}from"./off";export let unlisten=(r,n,o)=>{r.split(",").forEach(r=>{let f=e[r=r.trim()];if(!f)return;if(f.length<2||!n){delete e[r],l(window,r,t,!0);return}let p=i(f,n,o);p<0||e[r].splice(p,1)})};export default unlisten;
|
package/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# @koine/dom
|
package/index.cjs.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./index";
|
package/index.cjs.default.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports._default = require('./index.cjs.js').default;
|
package/index.cjs.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var utils = require('@koine/utils');
|
|
6
|
-
|
|
7
|
-
let $=(e,t,r)=>(t||document).querySelector(r?e:e.replace(/:/g,"\\:"));
|
|
8
|
-
|
|
9
|
-
let $all=(e,l,t)=>(l||document).querySelectorAll(t?e:e.replace(/:/g,"\\:"));
|
|
10
|
-
|
|
11
|
-
let $each=(l,t,a,o)=>{let r=$all(l,a);for(let e=0;e<r.length;e++)t.call(o,r[e],e);};
|
|
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=(e,l,t)=>{for(let o=0;o<e.length;o++)l.call(t,e[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=e=>{let f=0,t=0;for(;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)f+=e.offsetLeft-e.scrollLeft,t+=e.offsetTop-e.scrollTop,e=e.offsetParent;return {top:t,left:f}};
|
|
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,o,n,t=!1)=>{"development"!==process.env.NODE_ENV||e||console.warn("[@koine/dom:off] unexisting DOM element"),e&&e.removeEventListener(o,n,t);};
|
|
60
|
-
|
|
61
|
-
let on=(n,t,r,i=!1)=>("development"!==process.env.NODE_ENV||n||console.warn("[@koine/dom:on] unexisting DOM element"),n)?(n.addEventListener(t,r,i),()=>off(n,t,r)):utils.noop;
|
|
62
|
-
|
|
63
|
-
let listenLoaded=o=>on(document,"DOMContentLoaded",o);
|
|
64
|
-
|
|
65
|
-
let listen=(i,l,r)=>{l&&r&&i.split(",").forEach(function(i){activeEvents[i=i.trim()]||(activeEvents[i]=[],on(window,i,eventHandler,!0)),activeEvents[i]?.push({selector:l,callback:r});});};
|
|
66
|
-
|
|
67
|
-
let unlisten=(r,n,o)=>{r.split(",").forEach(r=>{let f=activeEvents[r=r.trim()];if(!f)return;if(f.length<2||!n){delete activeEvents[r],off(window,r,eventHandler,!0);return}let p=getIndex(f,n,o);p<0||activeEvents[r].splice(p,1);});};
|
|
68
|
-
|
|
69
|
-
let listenOnce=(i,o,l)=>listen(i,o,function e(r){let m=getRunTarget(r.target,o);l(r,m||window),unlisten(i,o,e);});
|
|
70
|
-
|
|
71
|
-
let listenResize=(i,t)=>on(t||window,"resize",i);
|
|
72
|
-
|
|
73
|
-
let listenResizeDebounced=(t,...o)=>listenResize(utils.debounce(...o),t);
|
|
74
|
-
|
|
75
|
-
let listenResizeThrottled=(i,...o)=>listenResize(utils.throttle(...o),i);
|
|
76
|
-
|
|
77
|
-
let listenScroll=(o,e)=>on(e||window,"scroll",o,{capture:!0,passive:!0});
|
|
78
|
-
|
|
79
|
-
let listenScrollDebounced=(o,...t)=>listenScroll(utils.debounce(...t),o);
|
|
80
|
-
|
|
81
|
-
let listenScrollThrottled=(o,...r)=>listenScroll(utils.throttle(...r),o);
|
|
82
|
-
|
|
83
|
-
let once=(r,t,f,m=!1)=>{let n=e=>{f(e),off(r,t,n);};return on(r,t,n,m)};
|
|
84
|
-
|
|
85
|
-
let onClickOutside=(e,c,i=!1)=>{let r=t=>{!e.contains(t.target)&&(c(t),i&&n());},n=()=>{off(document,"click",r);};return on(document,"click",r),n};
|
|
86
|
-
|
|
87
|
-
let removeClass=(e,s="")=>{("development"!==process.env.NODE_ENV||e)&&e&&e.classList.remove(s);};
|
|
88
|
-
|
|
89
|
-
let scrollTo=(t,e,i,r)=>{let w=t.toFixed();if(e){let t=!1,r=function(){window.pageYOffset.toFixed()===w&&(off(window,"scroll",r),t=!0,e());};on(window,"scroll",r),r(),i&&setTimeout(()=>{t||(off(window,"scroll",r),e());},i);}window.scrollTo({top:t,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 t=e.parentNode.firstChild,r=[];for(;t;t=t.nextSibling)1===t.nodeType&&t!==e&&r.push(t);return r}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
DELETED
package/index.esm.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { isString, noop, debounce, throttle } from '@koine/utils';
|
|
2
|
-
|
|
3
|
-
let $=(e,t,r)=>(t||document).querySelector(r?e:e.replace(/:/g,"\\:"));
|
|
4
|
-
|
|
5
|
-
let $all=(e,l,t)=>(l||document).querySelectorAll(t?e:e.replace(/:/g,"\\:"));
|
|
6
|
-
|
|
7
|
-
let $each=(l,t,a,o)=>{let r=$all(l,a);for(let e=0;e<r.length;e++)t.call(o,r[e],e);};
|
|
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=(e,l,t)=>{for(let o=0;o<e.length;o++)l.call(t,e[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=e=>{let f=0,t=0;for(;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)f+=e.offsetLeft-e.scrollLeft,t+=e.offsetTop-e.scrollTop,e=e.offsetParent;return {top:t,left:f}};
|
|
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,o,n,t=!1)=>{"development"!==process.env.NODE_ENV||e||console.warn("[@koine/dom:off] unexisting DOM element"),e&&e.removeEventListener(o,n,t);};
|
|
56
|
-
|
|
57
|
-
let on=(n,t,r,i=!1)=>("development"!==process.env.NODE_ENV||n||console.warn("[@koine/dom:on] unexisting DOM element"),n)?(n.addEventListener(t,r,i),()=>off(n,t,r)):noop;
|
|
58
|
-
|
|
59
|
-
let listenLoaded=o=>on(document,"DOMContentLoaded",o);
|
|
60
|
-
|
|
61
|
-
let listen=(i,l,r)=>{l&&r&&i.split(",").forEach(function(i){activeEvents[i=i.trim()]||(activeEvents[i]=[],on(window,i,eventHandler,!0)),activeEvents[i]?.push({selector:l,callback:r});});};
|
|
62
|
-
|
|
63
|
-
let unlisten=(r,n,o)=>{r.split(",").forEach(r=>{let f=activeEvents[r=r.trim()];if(!f)return;if(f.length<2||!n){delete activeEvents[r],off(window,r,eventHandler,!0);return}let p=getIndex(f,n,o);p<0||activeEvents[r].splice(p,1);});};
|
|
64
|
-
|
|
65
|
-
let listenOnce=(i,o,l)=>listen(i,o,function e(r){let m=getRunTarget(r.target,o);l(r,m||window),unlisten(i,o,e);});
|
|
66
|
-
|
|
67
|
-
let listenResize=(i,t)=>on(t||window,"resize",i);
|
|
68
|
-
|
|
69
|
-
let listenResizeDebounced=(t,...o)=>listenResize(debounce(...o),t);
|
|
70
|
-
|
|
71
|
-
let listenResizeThrottled=(i,...o)=>listenResize(throttle(...o),i);
|
|
72
|
-
|
|
73
|
-
let listenScroll=(o,e)=>on(e||window,"scroll",o,{capture:!0,passive:!0});
|
|
74
|
-
|
|
75
|
-
let listenScrollDebounced=(o,...t)=>listenScroll(debounce(...t),o);
|
|
76
|
-
|
|
77
|
-
let listenScrollThrottled=(o,...r)=>listenScroll(throttle(...r),o);
|
|
78
|
-
|
|
79
|
-
let once=(r,t,f,m=!1)=>{let n=e=>{f(e),off(r,t,n);};return on(r,t,n,m)};
|
|
80
|
-
|
|
81
|
-
let onClickOutside=(e,c,i=!1)=>{let r=t=>{!e.contains(t.target)&&(c(t),i&&n());},n=()=>{off(document,"click",r);};return on(document,"click",r),n};
|
|
82
|
-
|
|
83
|
-
let removeClass=(e,s="")=>{("development"!==process.env.NODE_ENV||e)&&e&&e.classList.remove(s);};
|
|
84
|
-
|
|
85
|
-
let scrollTo=(t,e,i,r)=>{let w=t.toFixed();if(e){let t=!1,r=function(){window.pageYOffset.toFixed()===w&&(off(window,"scroll",r),t=!0,e());};on(window,"scroll",r),r(),i&&setTimeout(()=>{t||(off(window,"scroll",r),e());},i);}window.scrollTo({top:t,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 t=e.parentNode.firstChild,r=[];for(;t;t=t.nextSibling)1===t.nodeType&&t!==e&&r.push(t);return r}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 };
|