| Current Path : /home/emeraadmin/public_html/4d695/ |
| Current File : /home/emeraadmin/public_html/4d695/dom-helpers.tar |
isWindow/package.json 0000644 00000000235 15170147672 0010647 0 ustar 00 {
"name": "dom-helpers/isWindow",
"private": true,
"main": "../cjs/isWindow.js",
"module": "../esm/isWindow.js",
"types": "../esm/isWindow.d.ts"
}
isDocument/package.json 0000644 00000000245 15170147672 0011157 0 ustar 00 {
"name": "dom-helpers/isDocument",
"private": true,
"main": "../cjs/isDocument.js",
"module": "../esm/isDocument.js",
"types": "../esm/isDocument.d.ts"
}
triggerEvent/package.json 0000644 00000000255 15170147672 0011513 0 ustar 00 {
"name": "dom-helpers/triggerEvent",
"private": true,
"main": "../cjs/triggerEvent.js",
"module": "../esm/triggerEvent.js",
"types": "../esm/triggerEvent.d.ts"
}
contains/package.json 0000644 00000000235 15170147672 0010662 0 ustar 00 {
"name": "dom-helpers/contains",
"private": true,
"main": "../cjs/contains.js",
"module": "../esm/contains.js",
"types": "../esm/contains.d.ts"
}
insertAfter/package.json 0000644 00000000251 15170147672 0011330 0 ustar 00 {
"name": "dom-helpers/insertAfter",
"private": true,
"main": "../cjs/insertAfter.js",
"module": "../esm/insertAfter.js",
"types": "../esm/insertAfter.d.ts"
}
package.json 0000644 00000003403 15170147672 0007044 0 ustar 00 {
"_from": "dom-helpers@^5.1.3",
"_id": "dom-helpers@5.2.1",
"_inBundle": false,
"_integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
"_location": "/dom-helpers",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "dom-helpers@^5.1.3",
"name": "dom-helpers",
"escapedName": "dom-helpers",
"rawSpec": "^5.1.3",
"saveSpec": null,
"fetchSpec": "^5.1.3"
},
"_requiredBy": [
"/react-virtualized"
],
"_resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
"_shasum": "d9400536b2bf8225ad98fe052e029451ac40e902",
"_spec": "dom-helpers@^5.1.3",
"_where": "C:\\xampp\\htdocs\\emeraltd\\node_modules\\react-virtualized",
"author": {
"name": "Jason Quense",
"email": "monastic.panic@gmail.com"
},
"bugs": {
"url": "https://github.com/react-bootstrap/dom-helpers/issues"
},
"bundleDependencies": false,
"dependencies": {
"@babel/runtime": "^7.8.7",
"csstype": "^3.0.2"
},
"deprecated": false,
"description": "tiny modular DOM lib for ie9+",
"homepage": "https://github.com/react-bootstrap/dom-helpers#readme",
"keywords": [
"dom-helpers",
"react-component",
"dom",
"api",
"cross-browser",
"style",
"event",
"height",
"width",
"dom-helpers",
"class",
"classlist",
"css"
],
"license": "MIT",
"main": "cjs/index.js",
"module": "esm/index.js",
"name": "dom-helpers",
"publishConfig": {
"directory": "lib"
},
"release": {
"conventionalCommits": true
},
"repository": {
"type": "git",
"url": "git+https://github.com/react-bootstrap/dom-helpers.git"
},
"types": "cjs/index.d.ts",
"version": "5.2.1"
}
text/package.json 0000644 00000000215 15170147672 0010026 0 ustar 00 {
"name": "dom-helpers/text",
"private": true,
"main": "../cjs/text.js",
"module": "../esm/text.js",
"types": "../esm/text.d.ts"
}
prepend/package.json 0000644 00000000231 15170147672 0010475 0 ustar 00 {
"name": "dom-helpers/prepend",
"private": true,
"main": "../cjs/prepend.js",
"module": "../esm/prepend.js",
"types": "../esm/prepend.d.ts"
}
position/package.json 0000644 00000000235 15170147672 0010710 0 ustar 00 {
"name": "dom-helpers/position",
"private": true,
"main": "../cjs/position.js",
"module": "../esm/position.js",
"types": "../esm/position.d.ts"
}
scrollTop/package.json 0000644 00000000241 15170147672 0011022 0 ustar 00 {
"name": "dom-helpers/scrollTop",
"private": true,
"main": "../cjs/scrollTop.js",
"module": "../esm/scrollTop.js",
"types": "../esm/scrollTop.d.ts"
}
toggleClass/package.json 0000644 00000000251 15170147672 0011311 0 ustar 00 {
"name": "dom-helpers/toggleClass",
"private": true,
"main": "../cjs/toggleClass.js",
"module": "../esm/toggleClass.js",
"types": "../esm/toggleClass.d.ts"
}
querySelectorAll/package.json 0000644 00000000275 15170147672 0012347 0 ustar 00 {
"name": "dom-helpers/querySelectorAll",
"private": true,
"main": "../cjs/querySelectorAll.js",
"module": "../esm/querySelectorAll.js",
"types": "../esm/querySelectorAll.d.ts"
}
scrollTo/package.json 0000644 00000000235 15170147672 0010645 0 ustar 00 {
"name": "dom-helpers/scrollTo",
"private": true,
"main": "../cjs/scrollTo.js",
"module": "../esm/scrollTo.js",
"types": "../esm/scrollTo.d.ts"
}
hyphenateStyle/package.json 0000644 00000000265 15170147672 0012055 0 ustar 00 {
"name": "dom-helpers/hyphenateStyle",
"private": true,
"main": "../cjs/hyphenateStyle.js",
"module": "../esm/hyphenateStyle.js",
"types": "../esm/hyphenateStyle.d.ts"
}
activeElement/package.json 0000644 00000000261 15170147672 0011630 0 ustar 00 {
"name": "dom-helpers/activeElement",
"private": true,
"main": "../cjs/activeElement.js",
"module": "../esm/activeElement.js",
"types": "../esm/activeElement.d.ts"
}
listen/package.json 0000644 00000000225 15170147672 0010341 0 ustar 00 {
"name": "dom-helpers/listen",
"private": true,
"main": "../cjs/listen.js",
"module": "../esm/listen.js",
"types": "../esm/listen.d.ts"
}
removeEventListener/package.json 0000644 00000000311 15170147672 0013044 0 ustar 00 {
"name": "dom-helpers/removeEventListener",
"private": true,
"main": "../cjs/removeEventListener.js",
"module": "../esm/removeEventListener.js",
"types": "../esm/removeEventListener.d.ts"
}
collectSiblings/package.json 0000644 00000000271 15170147672 0012164 0 ustar 00 {
"name": "dom-helpers/collectSiblings",
"private": true,
"main": "../cjs/collectSiblings.js",
"module": "../esm/collectSiblings.js",
"types": "../esm/collectSiblings.d.ts"
}
isVisible/package.json 0000644 00000000241 15170147672 0010772 0 ustar 00 {
"name": "dom-helpers/isVisible",
"private": true,
"main": "../cjs/isVisible.js",
"module": "../esm/isVisible.js",
"types": "../esm/isVisible.d.ts"
}
attribute/package.json 0000644 00000000241 15170147672 0011044 0 ustar 00 {
"name": "dom-helpers/attribute",
"private": true,
"main": "../cjs/attribute.js",
"module": "../esm/attribute.js",
"types": "../esm/attribute.d.ts"
}
hyphenate/package.json 0000644 00000000241 15170147672 0011026 0 ustar 00 {
"name": "dom-helpers/hyphenate",
"private": true,
"main": "../cjs/hyphenate.js",
"module": "../esm/hyphenate.js",
"types": "../esm/hyphenate.d.ts"
}
matches/package.json 0000644 00000000231 15170147672 0010464 0 ustar 00 {
"name": "dom-helpers/matches",
"private": true,
"main": "../cjs/matches.js",
"module": "../esm/matches.js",
"types": "../esm/matches.d.ts"
}
getScrollAccessor/package.json 0000644 00000000301 15170147672 0012457 0 ustar 00 {
"name": "dom-helpers/getScrollAccessor",
"private": true,
"main": "../cjs/getScrollAccessor.js",
"module": "../esm/getScrollAccessor.js",
"types": "../esm/getScrollAccessor.d.ts"
}
LICENSE 0000644 00000002066 15170147672 0005567 0 ustar 00 The MIT License (MIT)
Copyright (c) 2015 Jason Quense
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. height/package.json 0000644 00000000225 15170147672 0010313 0 ustar 00 {
"name": "dom-helpers/height",
"private": true,
"main": "../cjs/height.js",
"module": "../esm/height.js",
"types": "../esm/height.d.ts"
}
addClass/package.json 0000644 00000000235 15170147672 0010562 0 ustar 00 {
"name": "dom-helpers/addClass",
"private": true,
"main": "../cjs/addClass.js",
"module": "../esm/addClass.js",
"types": "../esm/addClass.d.ts"
}
childElements/package.json 0000644 00000000261 15170147672 0011623 0 ustar 00 {
"name": "dom-helpers/childElements",
"private": true,
"main": "../cjs/childElements.js",
"module": "../esm/childElements.js",
"types": "../esm/childElements.d.ts"
}
canUseDOM/package.json 0000644 00000000241 15170147672 0010617 0 ustar 00 {
"name": "dom-helpers/canUseDOM",
"private": true,
"main": "../cjs/canUseDOM.js",
"module": "../esm/canUseDOM.js",
"types": "../esm/canUseDOM.d.ts"
}
ownerDocument/package.json 0000644 00000000261 15170147672 0011674 0 ustar 00 {
"name": "dom-helpers/ownerDocument",
"private": true,
"main": "../cjs/ownerDocument.js",
"module": "../esm/ownerDocument.js",
"types": "../esm/ownerDocument.d.ts"
}
childNodes/package.json 0000644 00000000245 15170147672 0011121 0 ustar 00 {
"name": "dom-helpers/childNodes",
"private": true,
"main": "../cjs/childNodes.js",
"module": "../esm/childNodes.js",
"types": "../esm/childNodes.d.ts"
}
collectElements/package.json 0000644 00000000271 15170147672 0012166 0 ustar 00 {
"name": "dom-helpers/collectElements",
"private": true,
"main": "../cjs/collectElements.js",
"module": "../esm/collectElements.js",
"types": "../esm/collectElements.d.ts"
}
addEventListener/package.json 0000644 00000000275 15170147672 0012310 0 ustar 00 {
"name": "dom-helpers/addEventListener",
"private": true,
"main": "../cjs/addEventListener.js",
"module": "../esm/addEventListener.js",
"types": "../esm/addEventListener.d.ts"
}
getComputedStyle/package.json 0000644 00000000275 15170147672 0012351 0 ustar 00 {
"name": "dom-helpers/getComputedStyle",
"private": true,
"main": "../cjs/getComputedStyle.js",
"module": "../esm/getComputedStyle.js",
"types": "../esm/getComputedStyle.d.ts"
}
scrollParent/package.json 0000644 00000000255 15170147672 0011516 0 ustar 00 {
"name": "dom-helpers/scrollParent",
"private": true,
"main": "../cjs/scrollParent.js",
"module": "../esm/scrollParent.js",
"types": "../esm/scrollParent.d.ts"
}
siblings/package.json 0000644 00000000235 15170147672 0010656 0 ustar 00 {
"name": "dom-helpers/siblings",
"private": true,
"main": "../cjs/siblings.js",
"module": "../esm/siblings.js",
"types": "../esm/siblings.d.ts"
}
scrollbarSize/package.json 0000644 00000000261 15170147672 0011661 0 ustar 00 {
"name": "dom-helpers/scrollbarSize",
"private": true,
"main": "../cjs/scrollbarSize.js",
"module": "../esm/scrollbarSize.js",
"types": "../esm/scrollbarSize.d.ts"
}
nextUntil/package.json 0000644 00000000241 15170147672 0011033 0 ustar 00 {
"name": "dom-helpers/nextUntil",
"private": true,
"main": "../cjs/nextUntil.js",
"module": "../esm/nextUntil.js",
"types": "../esm/nextUntil.d.ts"
}
camelizeStyle/package.json 0000644 00000000261 15170147672 0011655 0 ustar 00 {
"name": "dom-helpers/camelizeStyle",
"private": true,
"main": "../cjs/camelizeStyle.js",
"module": "../esm/camelizeStyle.js",
"types": "../esm/camelizeStyle.d.ts"
}
animate/package.json 0000644 00000000231 15170147672 0010456 0 ustar 00 {
"name": "dom-helpers/animate",
"private": true,
"main": "../cjs/animate.js",
"module": "../esm/animate.js",
"types": "../esm/animate.d.ts"
}
scrollLeft/package.json 0000644 00000000245 15170147672 0011156 0 ustar 00 {
"name": "dom-helpers/scrollLeft",
"private": true,
"main": "../cjs/scrollLeft.js",
"module": "../esm/scrollLeft.js",
"types": "../esm/scrollLeft.d.ts"
}
filterEventHandler/package.json 0000644 00000000305 15170147672 0012627 0 ustar 00 {
"name": "dom-helpers/filterEventHandler",
"private": true,
"main": "../cjs/filterEventHandler.js",
"module": "../esm/filterEventHandler.js",
"types": "../esm/filterEventHandler.d.ts"
}
hasClass/package.json 0000644 00000000235 15170147672 0010605 0 ustar 00 {
"name": "dom-helpers/hasClass",
"private": true,
"main": "../cjs/hasClass.js",
"module": "../esm/hasClass.js",
"types": "../esm/hasClass.d.ts"
}
transitionEnd/package.json 0000644 00000000261 15170147672 0011664 0 ustar 00 {
"name": "dom-helpers/transitionEnd",
"private": true,
"main": "../cjs/transitionEnd.js",
"module": "../esm/transitionEnd.js",
"types": "../esm/transitionEnd.d.ts"
}
css/package.json 0000644 00000000211 15170147672 0007626 0 ustar 00 {
"name": "dom-helpers/css",
"private": true,
"main": "../cjs/css.js",
"module": "../esm/css.js",
"types": "../esm/css.d.ts"
}
cjs/removeEventListener.js 0000644 00000001206 15170147672 0011677 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = void 0;
/**
* A `removeEventListener` ponyfill
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
function removeEventListener(node, eventName, handler, options) {
var capture = options && typeof options !== 'boolean' ? options.capture : options;
node.removeEventListener(eventName, handler, capture);
if (handler.__once) {
node.removeEventListener(eventName, handler.__once, capture);
}
}
var _default = removeEventListener;
exports.default = _default;
module.exports = exports["default"]; cjs/querySelectorAll.js 0000644 00000000611 15170147672 0011170 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = qsa;
var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);
/**
* Runs `querySelectorAll` on a given element.
*
* @param element the element
* @param selector the selector
*/
function qsa(element, selector) {
return toArray(element.querySelectorAll(selector));
}
module.exports = exports["default"]; cjs/attribute.js 0000644 00000001036 15170147672 0007676 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = attribute;
/**
* Gets or sets an attribute of a given element.
*
* @param node the element
* @param attr the attribute to get or set
* @param val the attribute value
*/
function attribute(node, attr, val) {
if (node) {
if (typeof val === 'undefined') {
return node.getAttribute(attr);
}
if (!val && val !== '') {
node.removeAttribute(attr);
} else {
node.setAttribute(attr, String(val));
}
}
}
module.exports = exports["default"]; cjs/addEventListener.js 0000644 00000003441 15170147672 0011135 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = exports.onceSupported = exports.optionsSupported = void 0;
var _canUseDOM = _interopRequireDefault(require("./canUseDOM"));
/* eslint-disable no-return-assign */
var optionsSupported = false;
exports.optionsSupported = optionsSupported;
var onceSupported = false;
exports.onceSupported = onceSupported;
try {
var options = {
get passive() {
return exports.optionsSupported = optionsSupported = true;
},
get once() {
// eslint-disable-next-line no-multi-assign
return exports.onceSupported = onceSupported = exports.optionsSupported = optionsSupported = true;
}
};
if (_canUseDOM.default) {
window.addEventListener('test', options, options);
window.removeEventListener('test', options, true);
}
} catch (e) {
/* */
}
/**
* An `addEventListener` ponyfill, supports the `once` option
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
function addEventListener(node, eventName, handler, options) {
if (options && typeof options !== 'boolean' && !onceSupported) {
var once = options.once,
capture = options.capture;
var wrappedHandler = handler;
if (!onceSupported && once) {
wrappedHandler = handler.__once || function onceHandler(event) {
this.removeEventListener(eventName, onceHandler, capture);
handler.call(this, event);
};
handler.__once = wrappedHandler;
}
node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);
}
node.addEventListener(eventName, handler, options);
}
var _default = addEventListener;
exports.default = _default; cjs/text.js 0000644 00000001637 15170147672 0006666 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = text;
var regExpNbspEntity = / /gi;
var regExpNbspHex = /\xA0/g;
var regExpSpaces = /\s+([^\s])/gm;
/**
* Collects the text content of a given element.
*
* @param node the element
* @param trim whether to remove trailing whitespace chars
* @param singleSpaces whether to convert multiple whitespace chars into a single space character
*/
function text(node, trim, singleSpaces) {
if (trim === void 0) {
trim = true;
}
if (singleSpaces === void 0) {
singleSpaces = true;
}
var elementText = '';
if (node) {
elementText = (node.textContent || '').replace(regExpNbspEntity, ' ').replace(regExpNbspHex, ' ');
if (trim) {
elementText = elementText.trim();
}
if (singleSpaces) {
elementText = elementText.replace(regExpSpaces, ' $1');
}
}
return elementText;
}
module.exports = exports["default"]; cjs/isWindow.js 0000644 00000000670 15170147672 0007501 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = isWindow;
var _isDocument = _interopRequireDefault(require("./isDocument"));
function isWindow(node) {
if ('window' in node && node.window === node) return node;
if ((0, _isDocument.default)(node)) return node.defaultView || false;
return false;
}
module.exports = exports["default"]; cjs/ownerWindow.js 0000644 00000000740 15170147672 0010216 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = ownerWindow;
var _ownerDocument = _interopRequireDefault(require("./ownerDocument"));
/**
* Returns the owner window of a given element.
*
* @param node the element
*/
function ownerWindow(node) {
var doc = (0, _ownerDocument.default)(node);
return doc && doc.defaultView || window;
}
module.exports = exports["default"]; cjs/hyphenate.js 0000644 00000000333 15170147672 0007657 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = hyphenate;
var rUpper = /([A-Z])/g;
function hyphenate(string) {
return string.replace(rUpper, '-$1').toLowerCase();
}
module.exports = exports["default"]; cjs/scrollTop.js 0000644 00000000763 15170147672 0007662 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _getScrollAccessor = _interopRequireDefault(require("./getScrollAccessor"));
/**
* Gets or sets the scroll top position of a given element.
*
* @param node the element
* @param val the position to set
*/
var _default = (0, _getScrollAccessor.default)('pageYOffset');
exports.default = _default;
module.exports = exports["default"]; cjs/collectElements.d.ts 0000644 00000000327 15170147672 0011253 0 ustar 00 declare type TraverseDirection = 'parentElement' | 'previousElementSibling' | 'nextElementSibling';
export default function collectElements(node: Element | null, direction: TraverseDirection): Element[];
export {};
cjs/offset.js 0000644 00000002312 15170147672 0007157 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = offset;
var _contains = _interopRequireDefault(require("./contains"));
var _ownerDocument = _interopRequireDefault(require("./ownerDocument"));
var _scrollLeft = _interopRequireDefault(require("./scrollLeft"));
var _scrollTop = _interopRequireDefault(require("./scrollTop"));
/**
* Returns the offset of a given element, including top and left positions, width and height.
*
* @param node the element
*/
function offset(node) {
var doc = (0, _ownerDocument.default)(node);
var box = {
top: 0,
left: 0,
height: 0,
width: 0
};
var docElem = doc && doc.documentElement; // Make sure it's not a disconnected DOM node
if (!docElem || !(0, _contains.default)(docElem, node)) return box;
if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();
box = {
top: box.top + (0, _scrollTop.default)(docElem) - (docElem.clientTop || 0),
left: box.left + (0, _scrollLeft.default)(docElem) - (docElem.clientLeft || 0),
width: box.width,
height: box.height
};
return box;
}
module.exports = exports["default"]; cjs/scrollTo.d.ts 0000644 00000000157 15170147672 0007733 0 ustar 00 export default function scrollTo(selected: HTMLElement, scrollParent?: HTMLElement): (() => void) | undefined;
cjs/contains.d.ts 0000644 00000000345 15170147672 0007747 0 ustar 00 /**
* Checks if an element contains another given element.
*
* @param context the context element
* @param node the element to check
*/
export default function contains(context: Element, node: Element): boolean | undefined;
cjs/isWindow.d.ts 0000644 00000000125 15170147672 0007730 0 ustar 00 export default function isWindow(node: Element | Document | Window): Window | false;
cjs/filterEventHandler.js 0000644 00000001244 15170147672 0011461 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = filterEvents;
var _contains = _interopRequireDefault(require("./contains"));
var _querySelectorAll = _interopRequireDefault(require("./querySelectorAll"));
function filterEvents(selector, handler) {
return function filterHandler(e) {
var top = e.currentTarget;
var target = e.target;
var matches = (0, _querySelectorAll.default)(top, selector);
if (matches.some(function (match) {
return (0, _contains.default)(match, target);
})) handler.call(this, e);
};
}
module.exports = exports["default"]; cjs/height.js 0000644 00000001166 15170147672 0007147 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = height;
var _isWindow = _interopRequireDefault(require("./isWindow"));
var _offset = _interopRequireDefault(require("./offset"));
/**
* Returns the height of a given element.
*
* @param node the element
* @param client whether to use `clientHeight` if possible
*/
function height(node, client) {
var win = (0, _isWindow.default)(node);
return win ? win.innerHeight : client ? node.clientHeight : (0, _offset.default)(node).height;
}
module.exports = exports["default"]; cjs/ownerWindow.d.ts 0000644 00000000223 15170147672 0010446 0 ustar 00 /**
* Returns the owner window of a given element.
*
* @param node the element
*/
export default function ownerWindow(node?: Element): Window;
cjs/transitionEnd.js 0000644 00000002534 15170147672 0010520 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = transitionEnd;
var _css = _interopRequireDefault(require("./css"));
var _listen = _interopRequireDefault(require("./listen"));
var _triggerEvent = _interopRequireDefault(require("./triggerEvent"));
function parseDuration(node) {
var str = (0, _css.default)(node, 'transitionDuration') || '';
var mult = str.indexOf('ms') === -1 ? 1000 : 1;
return parseFloat(str) * mult;
}
function emulateTransitionEnd(element, duration, padding) {
if (padding === void 0) {
padding = 5;
}
var called = false;
var handle = setTimeout(function () {
if (!called) (0, _triggerEvent.default)(element, 'transitionend', true);
}, duration + padding);
var remove = (0, _listen.default)(element, 'transitionend', function () {
called = true;
}, {
once: true
});
return function () {
clearTimeout(handle);
remove();
};
}
function transitionEnd(element, handler, duration, padding) {
if (duration == null) duration = parseDuration(element) || 0;
var removeEmulate = emulateTransitionEnd(element, duration, padding);
var remove = (0, _listen.default)(element, 'transitionend', handler);
return function () {
removeEmulate();
remove();
};
}
module.exports = exports["default"]; cjs/collectElements.js 0000644 00000000602 15170147672 0011013 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = collectElements;
function collectElements(node, direction) {
var nextNode = null;
var nodes = [];
nextNode = node ? node[direction] : null;
while (nextNode && nextNode.nodeType !== 9) {
nodes.push(nextNode);
nextNode = nextNode[direction] || null;
}
return nodes;
}
module.exports = exports["default"]; cjs/parents.d.ts 0000644 00000000234 15170147672 0007602 0 ustar 00 /**
* Collects all parent elements of a given element.
*
* @param node the element
*/
export default function parents(node: Element | null): Element[];
cjs/addEventListener.d.ts 0000644 00000001400 15170147672 0011362 0 ustar 00 export declare let optionsSupported: boolean;
export declare let onceSupported: boolean;
export declare type EventHandler<K extends keyof HTMLElementEventMap> = (this: HTMLElement, event: HTMLElementEventMap[K]) => any;
export declare type TaggedEventHandler<K extends keyof HTMLElementEventMap> = EventHandler<K> & {
__once?: EventHandler<K>;
};
/**
* An `addEventListener` ponyfill, supports the `once` option
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
declare function addEventListener<K extends keyof HTMLElementEventMap>(node: HTMLElement, eventName: K, handler: TaggedEventHandler<K>, options?: boolean | AddEventListenerOptions): void;
export default addEventListener;
cjs/prepend.js 0000644 00000000766 15170147672 0007341 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = prepend;
/**
* Insert a given element as the first child of a parent element.
*
* @param node the element to prepend
* @param parent the parent element
*/
function prepend(node, parent) {
if (node && parent) {
if (parent.firstElementChild) {
parent.insertBefore(node, parent.firstElementChild);
} else {
parent.appendChild(node);
}
return node;
}
return null;
}
module.exports = exports["default"]; cjs/scrollbarSize.d.ts 0000644 00000000101 15170147672 0010735 0 ustar 00 export default function scrollbarSize(recalc?: boolean): number;
cjs/hasClass.d.ts 0000644 00000000333 15170147672 0007667 0 ustar 00 /**
* Checks if a given element has a CSS class.
*
* @param element the element
* @param className the CSS class name
*/
export default function hasClass(element: Element | SVGElement, className: string): boolean;
cjs/isInput.d.ts 0000644 00000000275 15170147672 0007566 0 ustar 00 /**
* Checks if a given element is an input (input, select, textarea or button).
*
* @param node the element to check
*/
export default function isInput(node: Element | null): boolean;
cjs/attribute.d.ts 0000644 00000000445 15170147672 0010135 0 ustar 00 /**
* Gets or sets an attribute of a given element.
*
* @param node the element
* @param attr the attribute to get or set
* @param val the attribute value
*/
export default function attribute(node: Element | null, attr: string, val?: string | boolean | null): string | null | undefined;
cjs/nextUntil.js 0000644 00000001044 15170147672 0007664 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = nextUntil;
var _collectSiblings = _interopRequireDefault(require("./collectSiblings"));
/**
* Collects all next sibling elements of an element until a given selector is matched.
*
* @param node the referene node
* @param selector the selector to match
*/
function nextUntil(node, selector) {
return (0, _collectSiblings.default)(node, node, selector);
}
module.exports = exports["default"]; cjs/filterEventHandler.d.ts 0000644 00000000273 15170147672 0011716 0 ustar 00 import { EventHandler } from './addEventListener';
export default function filterEvents<K extends keyof HTMLElementEventMap>(selector: string, handler: EventHandler<K>): EventHandler<K>;
cjs/triggerEvent.d.ts 0000644 00000000620 15170147672 0010572 0 ustar 00 /**
* Triggers an event on a given element.
*
* @param node the element
* @param eventName the event name to trigger
* @param bubbles whether the event should bubble up
* @param cancelable whether the event should be cancelable
*/
export default function triggerEvent<K extends keyof HTMLElementEventMap>(node: HTMLElement | null, eventName: K, bubbles?: boolean, cancelable?: boolean): void;
cjs/scrollbarSize.js 0000644 00000001454 15170147672 0010515 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = scrollbarSize;
var _canUseDOM = _interopRequireDefault(require("./canUseDOM"));
var size;
function scrollbarSize(recalc) {
if (!size && size !== 0 || recalc) {
if (_canUseDOM.default) {
var scrollDiv = document.createElement('div');
scrollDiv.style.position = 'absolute';
scrollDiv.style.top = '-9999px';
scrollDiv.style.width = '50px';
scrollDiv.style.height = '50px';
scrollDiv.style.overflow = 'scroll';
document.body.appendChild(scrollDiv);
size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
}
}
return size;
}
module.exports = exports["default"]; cjs/remove.d.ts 0000644 00000000223 15170147672 0007421 0 ustar 00 /**
* Removes a given node from the DOM.
*
* @param node the node to remove
*/
export default function remove(node: Node | null): Node | null;
cjs/parents.js 0000644 00000000705 15170147672 0007351 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = parents;
var _collectElements = _interopRequireDefault(require("./collectElements"));
/**
* Collects all parent elements of a given element.
*
* @param node the element
*/
function parents(node) {
return (0, _collectElements.default)(node, 'parentElement');
}
module.exports = exports["default"]; cjs/isInput.js 0000644 00000000570 15170147672 0007330 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = isInput;
var regExpInputs = /^(?:input|select|textarea|button)$/i;
/**
* Checks if a given element is an input (input, select, textarea or button).
*
* @param node the element to check
*/
function isInput(node) {
return node ? regExpInputs.test(node.nodeName) : false;
}
module.exports = exports["default"]; cjs/insertAfter.js 0000644 00000001017 15170147672 0010160 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = insertAfter;
/**
* Inserts a node after a given reference node.
*
* @param node the node to insert
* @param refNode the reference node
*/
function insertAfter(node, refNode) {
if (node && refNode && refNode.parentNode) {
if (refNode.nextSibling) {
refNode.parentNode.insertBefore(node, refNode.nextSibling);
} else {
refNode.parentNode.appendChild(node);
}
return node;
}
return null;
}
module.exports = exports["default"]; cjs/isVisible.d.ts 0000644 00000000250 15170147672 0010055 0 ustar 00 /**
* Checks if a given element is currently visible.
*
* @param node the element to check
*/
export default function isVisible(node: HTMLElement | null): boolean;
cjs/hyphenateStyle.d.ts 0000644 00000000454 15170147672 0011140 0 ustar 00 /**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
*/
import { Property } from './types';
export default function hyphenateStyleName(string: Property): Property;
cjs/canUseDOM.js 0000644 00000000354 15170147672 0007453 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = void 0;
var _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
exports.default = _default;
module.exports = exports["default"]; cjs/siblings.d.ts 0000644 00000000260 15170147672 0007737 0 ustar 00 /**
* Collects all previous and next sibling elements of a given element.
*
* @param node the element
*/
export default function siblings(node: Element | null): Element[];
cjs/offset.d.ts 0000644 00000000406 15170147672 0007415 0 ustar 00 /**
* Returns the offset of a given element, including top and left positions, width and height.
*
* @param node the element
*/
export default function offset(node: HTMLElement): {
top: number;
left: number;
height: number;
width: number;
};
cjs/querySelectorAll.d.ts 0000644 00000000327 15170147672 0011430 0 ustar 00 /**
* Runs `querySelectorAll` on a given element.
*
* @param element the element
* @param selector the selector
*/
export default function qsa(element: HTMLElement | Document, selector: string): HTMLElement[];
cjs/position.js 0000644 00000004050 15170147672 0007536 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = position;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _css = _interopRequireDefault(require("./css"));
var _offset = _interopRequireDefault(require("./offset"));
var _offsetParent = _interopRequireDefault(require("./offsetParent"));
var _scrollLeft = _interopRequireDefault(require("./scrollLeft"));
var _scrollTop = _interopRequireDefault(require("./scrollTop"));
var nodeName = function nodeName(node) {
return node.nodeName && node.nodeName.toLowerCase();
};
/**
* Returns the relative position of a given element.
*
* @param node the element
* @param offsetParent the offset parent
*/
function position(node, offsetParent) {
var parentOffset = {
top: 0,
left: 0
};
var offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
// because it is its only offset parent
if ((0, _css.default)(node, 'position') === 'fixed') {
offset = node.getBoundingClientRect();
} else {
var parent = offsetParent || (0, _offsetParent.default)(node);
offset = (0, _offset.default)(node);
if (nodeName(parent) !== 'html') parentOffset = (0, _offset.default)(parent);
var borderTop = String((0, _css.default)(parent, 'borderTopWidth') || 0);
parentOffset.top += parseInt(borderTop, 10) - (0, _scrollTop.default)(parent) || 0;
var borderLeft = String((0, _css.default)(parent, 'borderLeftWidth') || 0);
parentOffset.left += parseInt(borderLeft, 10) - (0, _scrollLeft.default)(parent) || 0;
}
var marginTop = String((0, _css.default)(node, 'marginTop') || 0);
var marginLeft = String((0, _css.default)(node, 'marginLeft') || 0); // Subtract parent offsets and node margins
return (0, _extends2.default)({}, offset, {
top: offset.top - parentOffset.top - (parseInt(marginTop, 10) || 0),
left: offset.left - parentOffset.left - (parseInt(marginLeft, 10) || 0)
});
}
module.exports = exports["default"]; cjs/animationFrame.d.ts 0000644 00000000157 15170147672 0011064 0 ustar 00 export declare const cancel: (id: number) => void;
export declare const request: typeof requestAnimationFrame;
cjs/childElements.d.ts 0000644 00000000234 15170147672 0010706 0 ustar 00 /**
* Collects all child elements of an element.
*
* @param node the element
*/
export default function childElements(node: Element | null): Element[];
cjs/removeClass.d.ts 0000644 00000000332 15170147673 0010411 0 ustar 00 /**
* Removes a CSS class from a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function removeClass(element: Element | SVGElement, className: string): void;
cjs/ownerDocument.d.ts 0000644 00000000231 15170147673 0010755 0 ustar 00 /**
* Returns the owner document of a given element.
*
* @param node the element
*/
export default function ownerDocument(node?: Element): Document;
cjs/transitionEnd.d.ts 0000644 00000000330 15170147673 0010745 0 ustar 00 export declare type Listener = (this: HTMLElement, ev: TransitionEvent) => any;
export default function transitionEnd(element: HTMLElement, handler: Listener, duration?: number | null, padding?: number): () => void;
cjs/clear.d.ts 0000644 00000000231 15170147673 0007212 0 ustar 00 /**
* Removes all child nodes from a given node.
*
* @param node the node to clear
*/
export default function clear(node: Node | null): Node | null;
cjs/text.d.ts 0000644 00000000534 15170147673 0007116 0 ustar 00 /**
* Collects the text content of a given element.
*
* @param node the element
* @param trim whether to remove trailing whitespace chars
* @param singleSpaces whether to convert multiple whitespace chars into a single space character
*/
export default function text(node: HTMLElement | null, trim?: boolean, singleSpaces?: boolean): string;
cjs/width.js 0000644 00000001165 15170147673 0007016 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = getWidth;
var _isWindow = _interopRequireDefault(require("./isWindow"));
var _offset = _interopRequireDefault(require("./offset"));
/**
* Returns the width of a given element.
*
* @param node the element
* @param client whether to use `clientWidth` if possible
*/
function getWidth(node, client) {
var win = (0, _isWindow.default)(node);
return win ? win.innerWidth : client ? node.clientWidth : (0, _offset.default)(node).width;
}
module.exports = exports["default"]; cjs/isDocument.js 0000644 00000000336 15170147673 0010010 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = isDocument;
function isDocument(element) {
return 'nodeType' in element && element.nodeType === document.DOCUMENT_NODE;
}
module.exports = exports["default"]; cjs/remove.js 0000644 00000000505 15170147673 0007171 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = remove;
/**
* Removes a given node from the DOM.
*
* @param node the node to remove
*/
function remove(node) {
if (node && node.parentNode) {
node.parentNode.removeChild(node);
return node;
}
return null;
}
module.exports = exports["default"]; cjs/closest.js 0000644 00000001465 15170147673 0007356 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = closest;
var _matches = _interopRequireDefault(require("./matches"));
/**
* Returns the closest parent element that matches a given selector.
*
* @param node the reference element
* @param selector the selector to match
* @param stopAt stop traversing when this element is found
*/
function closest(node, selector, stopAt) {
if (node.closest && !stopAt) node.closest(selector);
var nextNode = node;
do {
if ((0, _matches.default)(nextNode, selector)) return nextNode;
nextNode = nextNode.parentElement;
} while (nextNode && nextNode !== stopAt && nextNode.nodeType === document.ELEMENT_NODE);
return null;
}
module.exports = exports["default"]; cjs/triggerEvent.js 0000644 00000001252 15170147673 0010341 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = triggerEvent;
/**
* Triggers an event on a given element.
*
* @param node the element
* @param eventName the event name to trigger
* @param bubbles whether the event should bubble up
* @param cancelable whether the event should be cancelable
*/
function triggerEvent(node, eventName, bubbles, cancelable) {
if (bubbles === void 0) {
bubbles = false;
}
if (cancelable === void 0) {
cancelable = true;
}
if (node) {
var event = document.createEvent('HTMLEvents');
event.initEvent(eventName, bubbles, cancelable);
node.dispatchEvent(event);
}
}
module.exports = exports["default"]; cjs/addClass.d.ts 0000644 00000000322 15170147673 0007643 0 ustar 00 /**
* Adds a CSS class to a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function addClass(element: Element | SVGElement, className: string): void;
cjs/camelizeStyle.js 0000644 00000001117 15170147673 0010506 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = camelizeStyleName;
var _camelize = _interopRequireDefault(require("./camelize"));
/**
* Copyright 2014-2015, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
*/
var msPattern = /^-ms-/;
function camelizeStyleName(string) {
return (0, _camelize.default)(string.replace(msPattern, 'ms-'));
}
module.exports = exports["default"]; cjs/offsetParent.js 0000644 00000001337 15170147673 0010340 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = offsetParent;
var _css = _interopRequireDefault(require("./css"));
var _ownerDocument = _interopRequireDefault(require("./ownerDocument"));
var isHTMLElement = function isHTMLElement(e) {
return !!e && 'offsetParent' in e;
};
function offsetParent(node) {
var doc = (0, _ownerDocument.default)(node);
var parent = node && node.offsetParent;
while (isHTMLElement(parent) && parent.nodeName !== 'HTML' && (0, _css.default)(parent, 'position') === 'static') {
parent = parent.offsetParent;
}
return parent || doc.documentElement;
}
module.exports = exports["default"]; cjs/index.js 0000644 00000014764 15170147673 0007017 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _activeElement = _interopRequireDefault(require("./activeElement"));
exports.activeElement = _activeElement.default;
var _addClass = _interopRequireDefault(require("./addClass"));
exports.addClass = _addClass.default;
var _addEventListener = _interopRequireDefault(require("./addEventListener"));
exports.addEventListener = _addEventListener.default;
var _animate = _interopRequireDefault(require("./animate"));
exports.animate = _animate.default;
var _animationFrame = require("./animationFrame");
exports.cancelAnimationFrame = _animationFrame.cancel;
exports.requestAnimationFrame = _animationFrame.request;
var _attribute = _interopRequireDefault(require("./attribute"));
exports.attribute = _attribute.default;
var _childElements = _interopRequireDefault(require("./childElements"));
exports.childElements = _childElements.default;
var _clear = _interopRequireDefault(require("./clear"));
exports.clear = _clear.default;
var _closest = _interopRequireDefault(require("./closest"));
exports.closest = _closest.default;
var _contains = _interopRequireDefault(require("./contains"));
exports.contains = _contains.default;
var _childNodes = _interopRequireDefault(require("./childNodes"));
exports.childNodes = _childNodes.default;
var _css = _interopRequireDefault(require("./css"));
exports.style = _css.default;
var _filterEventHandler = _interopRequireDefault(require("./filterEventHandler"));
exports.filter = _filterEventHandler.default;
var _getComputedStyle = _interopRequireDefault(require("./getComputedStyle"));
exports.getComputedStyle = _getComputedStyle.default;
var _hasClass = _interopRequireDefault(require("./hasClass"));
exports.hasClass = _hasClass.default;
var _height = _interopRequireDefault(require("./height"));
exports.height = _height.default;
var _insertAfter = _interopRequireDefault(require("./insertAfter"));
exports.insertAfter = _insertAfter.default;
var _isInput = _interopRequireDefault(require("./isInput"));
exports.isInput = _isInput.default;
var _isVisible = _interopRequireDefault(require("./isVisible"));
exports.isVisible = _isVisible.default;
var _listen = _interopRequireDefault(require("./listen"));
exports.listen = _listen.default;
var _matches = _interopRequireDefault(require("./matches"));
exports.matches = _matches.default;
var _nextUntil = _interopRequireDefault(require("./nextUntil"));
exports.nextUntil = _nextUntil.default;
var _offset = _interopRequireDefault(require("./offset"));
exports.offset = _offset.default;
var _offsetParent = _interopRequireDefault(require("./offsetParent"));
exports.offsetParent = _offsetParent.default;
var _ownerDocument = _interopRequireDefault(require("./ownerDocument"));
exports.ownerDocument = _ownerDocument.default;
var _ownerWindow = _interopRequireDefault(require("./ownerWindow"));
exports.ownerWindow = _ownerWindow.default;
var _parents = _interopRequireDefault(require("./parents"));
exports.parents = _parents.default;
var _position = _interopRequireDefault(require("./position"));
exports.position = _position.default;
var _prepend = _interopRequireDefault(require("./prepend"));
exports.prepend = _prepend.default;
var _querySelectorAll = _interopRequireDefault(require("./querySelectorAll"));
exports.querySelectorAll = _querySelectorAll.default;
var _remove = _interopRequireDefault(require("./remove"));
exports.remove = _remove.default;
var _removeClass = _interopRequireDefault(require("./removeClass"));
exports.removeClass = _removeClass.default;
var _removeEventListener = _interopRequireDefault(require("./removeEventListener"));
exports.removeEventListener = _removeEventListener.default;
var _scrollbarSize = _interopRequireDefault(require("./scrollbarSize"));
exports.scrollbarSize = _scrollbarSize.default;
var _scrollLeft = _interopRequireDefault(require("./scrollLeft"));
exports.scrollLeft = _scrollLeft.default;
var _scrollParent = _interopRequireDefault(require("./scrollParent"));
exports.scrollParent = _scrollParent.default;
var _scrollTo = _interopRequireDefault(require("./scrollTo"));
exports.scrollTo = _scrollTo.default;
var _scrollTop = _interopRequireDefault(require("./scrollTop"));
exports.scrollTop = _scrollTop.default;
var _siblings = _interopRequireDefault(require("./siblings"));
exports.siblings = _siblings.default;
var _text = _interopRequireDefault(require("./text"));
exports.text = _text.default;
var _toggleClass = _interopRequireDefault(require("./toggleClass"));
exports.toggleClass = _toggleClass.default;
var _transitionEnd = _interopRequireDefault(require("./transitionEnd"));
exports.transitionEnd = _transitionEnd.default;
var _triggerEvent = _interopRequireDefault(require("./triggerEvent"));
exports.triggerEvent = _triggerEvent.default;
var _width = _interopRequireDefault(require("./width"));
exports.width = _width.default;
var _default = {
addEventListener: _addEventListener.default,
removeEventListener: _removeEventListener.default,
triggerEvent: _triggerEvent.default,
animate: _animate.default,
filter: _filterEventHandler.default,
listen: _listen.default,
style: _css.default,
getComputedStyle: _getComputedStyle.default,
attribute: _attribute.default,
activeElement: _activeElement.default,
ownerDocument: _ownerDocument.default,
ownerWindow: _ownerWindow.default,
requestAnimationFrame: _animationFrame.request,
cancelAnimationFrame: _animationFrame.cancel,
matches: _matches.default,
height: _height.default,
width: _width.default,
offset: _offset.default,
offsetParent: _offsetParent.default,
position: _position.default,
contains: _contains.default,
scrollbarSize: _scrollbarSize.default,
scrollLeft: _scrollLeft.default,
scrollParent: _scrollParent.default,
scrollTo: _scrollTo.default,
scrollTop: _scrollTop.default,
querySelectorAll: _querySelectorAll.default,
closest: _closest.default,
addClass: _addClass.default,
removeClass: _removeClass.default,
hasClass: _hasClass.default,
toggleClass: _toggleClass.default,
transitionEnd: _transitionEnd.default,
childNodes: _childNodes.default,
childElements: _childElements.default,
nextUntil: _nextUntil.default,
parents: _parents.default,
siblings: _siblings.default,
clear: _clear.default,
insertAfter: _insertAfter.default,
isInput: _isInput.default,
isVisible: _isVisible.default,
prepend: _prepend.default,
remove: _remove.default,
text: _text.default
};
exports.default = _default; cjs/toggleClass.js 0000644 00000001406 15170147673 0010144 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = toggleClass;
var _addClass = _interopRequireDefault(require("./addClass"));
var _hasClass = _interopRequireDefault(require("./hasClass"));
var _removeClass = _interopRequireDefault(require("./removeClass"));
/**
* Toggles a CSS class on a given element.
*
* @param element the element
* @param className the CSS class name
*/
function toggleClass(element, className) {
if (element.classList) element.classList.toggle(className);else if ((0, _hasClass.default)(element, className)) (0, _removeClass.default)(element, className);else (0, _addClass.default)(element, className);
}
module.exports = exports["default"]; cjs/childNodes.js 0000644 00000000531 15170147673 0007747 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = childNodes;
var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);
/**
* Collects all child nodes of an element.
*
* @param node the node
*/
function childNodes(node) {
return node ? toArray(node.childNodes) : [];
}
module.exports = exports["default"]; cjs/siblings.js 0000644 00000001023 15170147673 0007502 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = siblings;
var _collectSiblings = _interopRequireDefault(require("./collectSiblings"));
/**
* Collects all previous and next sibling elements of a given element.
*
* @param node the element
*/
function siblings(node) {
return (0, _collectSiblings.default)(node && node.parentElement ? node.parentElement.firstElementChild : null, node);
}
module.exports = exports["default"]; cjs/canUseDOM.d.ts 0000644 00000000072 15170147673 0007705 0 ustar 00 declare const _default: boolean;
export default _default;
cjs/css.js 0000644 00000002331 15170147673 0006463 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _getComputedStyle = _interopRequireDefault(require("./getComputedStyle"));
var _hyphenateStyle = _interopRequireDefault(require("./hyphenateStyle"));
var _isTransform = _interopRequireDefault(require("./isTransform"));
function style(node, property) {
var css = '';
var transforms = '';
if (typeof property === 'string') {
return node.style.getPropertyValue((0, _hyphenateStyle.default)(property)) || (0, _getComputedStyle.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property));
}
Object.keys(property).forEach(function (key) {
var value = property[key];
if (!value && value !== 0) {
node.style.removeProperty((0, _hyphenateStyle.default)(key));
} else if ((0, _isTransform.default)(key)) {
transforms += key + "(" + value + ") ";
} else {
css += (0, _hyphenateStyle.default)(key) + ": " + value + ";";
}
});
if (transforms) {
css += "transform: " + transforms + ";";
}
node.style.cssText += ";" + css;
}
var _default = style;
exports.default = _default;
module.exports = exports["default"]; cjs/collectSiblings.d.ts 0000644 00000000176 15170147673 0011254 0 ustar 00 export default function collectSiblings(node: Element | null, refNode?: Element | null, selector?: string | null): Element[];
cjs/hasClass.js 0000644 00000000732 15170147673 0007437 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = hasClass;
/**
* Checks if a given element has a CSS class.
*
* @param element the element
* @param className the CSS class name
*/
function hasClass(element, className) {
if (element.classList) return !!className && element.classList.contains(className);
return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
}
module.exports = exports["default"]; cjs/listen.js 0000644 00000001174 15170147673 0007175 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _addEventListener = _interopRequireDefault(require("./addEventListener"));
var _removeEventListener = _interopRequireDefault(require("./removeEventListener"));
function listen(node, eventName, handler, options) {
(0, _addEventListener.default)(node, eventName, handler, options);
return function () {
(0, _removeEventListener.default)(node, eventName, handler, options);
};
}
var _default = listen;
exports.default = _default;
module.exports = exports["default"]; cjs/camelize.d.ts 0000644 00000000072 15170147673 0007720 0 ustar 00 export default function camelize(string: string): string;
cjs/getScrollAccessor.d.ts 0000644 00000000241 15170147673 0011546 0 ustar 00 export default function getscrollAccessor(offset: 'pageXOffset' | 'pageYOffset'): {
(node: Element): number;
(node: Element, val: number): undefined;
};
cjs/scrollTop.d.ts 0000644 00000000404 15170147673 0010107 0 ustar 00 declare const _default: {
(node: Element): number;
(node: Element, val: number): undefined;
};
/**
* Gets or sets the scroll top position of a given element.
*
* @param node the element
* @param val the position to set
*/
export default _default;
cjs/activeElement.d.ts 0000644 00000000246 15170147673 0010717 0 ustar 00 /**
* Returns the actively focused element safely.
*
* @param doc the document to check
*/
export default function activeElement(doc?: Document): Element | null;
cjs/clear.js 0000644 00000000536 15170147673 0006766 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = clear;
/**
* Removes all child nodes from a given node.
*
* @param node the node to clear
*/
function clear(node) {
if (node) {
while (node.firstChild) {
node.removeChild(node.firstChild);
}
return node;
}
return null;
}
module.exports = exports["default"]; cjs/childElements.js 0000644 00000000427 15170147673 0010457 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = childElements;
/**
* Collects all child elements of an element.
*
* @param node the element
*/
function childElements(node) {
return node ? Array.from(node.children) : [];
}
module.exports = exports["default"]; cjs/isTransform.d.ts 0000644 00000000564 15170147673 0010444 0 ustar 00 export declare type TransformValue = 'translate' | 'translateY' | 'translateX' | 'translateZ' | 'translate3d' | 'rotate' | 'rotateY' | 'rotateX' | 'rotateZ' | 'rotate3d' | 'scale' | 'scaleY' | 'scaleX' | 'scaleZ' | 'scale3d' | 'matrix' | 'matrix3d' | 'perspective' | 'skew' | 'skewY' | 'skewX';
export default function isTransform(value: string): value is TransformValue;
cjs/nextUntil.d.ts 0000644 00000000402 15170147673 0010116 0 ustar 00 /**
* Collects all next sibling elements of an element until a given selector is matched.
*
* @param node the referene node
* @param selector the selector to match
*/
export default function nextUntil(node: Element | null, selector: string): Element[];
cjs/scrollParent.d.ts 0000644 00000000461 15170147673 0010601 0 ustar 00 /**
* Find the first scrollable parent of an element.
*
* @param element Starting element
* @param firstPossible Stop at the first scrollable parent, even if it's not currently scrollable
*/
export default function scrollParent(element: HTMLElement, firstPossible?: boolean): Document | HTMLElement;
cjs/childNodes.d.ts 0000644 00000000220 15170147673 0010176 0 ustar 00 /**
* Collects all child nodes of an element.
*
* @param node the node
*/
export default function childNodes(node: Element | null): Node[];
cjs/getScrollAccessor.js 0000644 00000001233 15170147673 0011314 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = getscrollAccessor;
var _isWindow = _interopRequireDefault(require("./isWindow"));
function getscrollAccessor(offset) {
var prop = offset === 'pageXOffset' ? 'scrollLeft' : 'scrollTop';
function scrollAccessor(node, val) {
var win = (0, _isWindow.default)(node);
if (val === undefined) {
return win ? win[offset] : node[prop];
}
if (win) {
win.scrollTo(win[offset], val);
} else {
node[prop] = val;
}
}
return scrollAccessor;
}
module.exports = exports["default"]; cjs/hyphenate.d.ts 0000644 00000000073 15170147673 0010115 0 ustar 00 export default function hyphenate(string: string): string;
cjs/animate.d.ts 0000644 00000001606 15170147673 0007551 0 ustar 00 import { EventHandler } from './addEventListener';
import { TransformValue } from './isTransform';
import { Property } from './types';
declare type AnimateProperties = Record<Property | TransformValue, string>;
interface Options {
node: HTMLElement;
properties: AnimateProperties;
duration?: number;
easing?: string;
callback?: EventHandler<'transitionend'>;
}
interface Cancel {
cancel(): void;
}
declare function animate(options: Options): Cancel;
declare function animate(node: HTMLElement, properties: AnimateProperties, duration: number): Cancel;
declare function animate(node: HTMLElement, properties: AnimateProperties, duration: number, callback: EventHandler<'transitionend'>): Cancel;
declare function animate(node: HTMLElement, properties: AnimateProperties, duration: number, easing: string, callback: EventHandler<'transitionend'>): Cancel;
export default animate;
cjs/getComputedStyle.d.ts 0000644 00000000372 15170147673 0011433 0 ustar 00 /**
* Returns one or all computed style properties of an element.
*
* @param node the element
* @param psuedoElement the style property
*/
export default function getComputedStyle(node: HTMLElement, psuedoElement?: string): CSSStyleDeclaration;
cjs/isVisible.js 0000644 00000000520 15170147673 0007622 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = isVisible;
/**
* Checks if a given element is currently visible.
*
* @param node the element to check
*/
function isVisible(node) {
return node ? !!(node.offsetWidth || node.offsetHeight || node.getClientRects().length) : false;
}
module.exports = exports["default"]; cjs/contains.js 0000644 00000001176 15170147673 0007517 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = contains;
/* eslint-disable no-bitwise, no-cond-assign */
/**
* Checks if an element contains another given element.
*
* @param context the context element
* @param node the element to check
*/
function contains(context, node) {
// HTML DOM and SVG DOM may have different support levels,
// so we need to check on context instead of a document root element.
if (context.contains) return context.contains(node);
if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);
}
module.exports = exports["default"]; cjs/isTransform.js 0000644 00000000457 15170147673 0010211 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = isTransform;
var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
function isTransform(value) {
return !!(value && supportedTransforms.test(value));
}
module.exports = exports["default"]; cjs/addClass.js 0000644 00000001347 15170147673 0007417 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = addClass;
var _hasClass = _interopRequireDefault(require("./hasClass"));
/**
* Adds a CSS class to a given element.
*
* @param element the element
* @param className the CSS class name
*/
function addClass(element, className) {
if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + " " + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + " " + className);
}
module.exports = exports["default"]; cjs/index.d.ts 0000644 00000007742 15170147673 0007251 0 ustar 00 import activeElement from './activeElement';
import addClass from './addClass';
import addEventListener from './addEventListener';
import animate from './animate';
import { cancel as cancelAnimationFrame, request as requestAnimationFrame } from './animationFrame';
import attribute from './attribute';
import childElements from './childElements';
import clear from './clear';
import closest from './closest';
import contains from './contains';
import childNodes from './childNodes';
import style from './css';
import filter from './filterEventHandler';
import getComputedStyle from './getComputedStyle';
import hasClass from './hasClass';
import height from './height';
import insertAfter from './insertAfter';
import isInput from './isInput';
import isVisible from './isVisible';
import listen from './listen';
import matches from './matches';
import nextUntil from './nextUntil';
import offset from './offset';
import offsetParent from './offsetParent';
import ownerDocument from './ownerDocument';
import ownerWindow from './ownerWindow';
import parents from './parents';
import position from './position';
import prepend from './prepend';
import querySelectorAll from './querySelectorAll';
import remove from './remove';
import removeClass from './removeClass';
import removeEventListener from './removeEventListener';
import scrollbarSize from './scrollbarSize';
import scrollLeft from './scrollLeft';
import scrollParent from './scrollParent';
import scrollTo from './scrollTo';
import scrollTop from './scrollTop';
import siblings from './siblings';
import text from './text';
import toggleClass from './toggleClass';
import transitionEnd from './transitionEnd';
import triggerEvent from './triggerEvent';
import width from './width';
export { addEventListener, removeEventListener, triggerEvent, animate, filter, listen, style, getComputedStyle, attribute, activeElement, ownerDocument, ownerWindow, requestAnimationFrame, cancelAnimationFrame, matches, height, width, offset, offsetParent, position, contains, scrollbarSize, scrollLeft, scrollParent, scrollTo, scrollTop, querySelectorAll, closest, addClass, removeClass, hasClass, toggleClass, transitionEnd, childNodes, childElements, nextUntil, parents, siblings, clear, insertAfter, isInput, isVisible, prepend, remove, text, };
declare const _default: {
addEventListener: typeof addEventListener;
removeEventListener: typeof removeEventListener;
triggerEvent: typeof triggerEvent;
animate: typeof animate;
filter: typeof filter;
listen: typeof listen;
style: typeof style;
getComputedStyle: typeof getComputedStyle;
attribute: typeof attribute;
activeElement: typeof activeElement;
ownerDocument: typeof ownerDocument;
ownerWindow: typeof ownerWindow;
requestAnimationFrame: typeof globalThis.requestAnimationFrame;
cancelAnimationFrame: (id: number) => void;
matches: typeof matches;
height: typeof height;
width: typeof width;
offset: typeof offset;
offsetParent: typeof offsetParent;
position: typeof position;
contains: typeof contains;
scrollbarSize: typeof scrollbarSize;
scrollLeft: {
(node: Element): number;
(node: Element, val: number): undefined;
};
scrollParent: typeof scrollParent;
scrollTo: typeof scrollTo;
scrollTop: {
(node: Element): number;
(node: Element, val: number): undefined;
};
querySelectorAll: typeof querySelectorAll;
closest: typeof closest;
addClass: typeof addClass;
removeClass: typeof removeClass;
hasClass: typeof hasClass;
toggleClass: typeof toggleClass;
transitionEnd: typeof transitionEnd;
childNodes: typeof childNodes;
childElements: typeof childElements;
nextUntil: typeof nextUntil;
parents: typeof parents;
siblings: typeof siblings;
clear: typeof clear;
insertAfter: typeof insertAfter;
isInput: typeof isInput;
isVisible: typeof isVisible;
prepend: typeof prepend;
remove: typeof remove;
text: typeof text;
};
export default _default;
cjs/width.d.ts 0000644 00000000330 15170147673 0007243 0 ustar 00 /**
* Returns the width of a given element.
*
* @param node the element
* @param client whether to use `clientWidth` if possible
*/
export default function getWidth(node: HTMLElement, client?: boolean): number;
cjs/matches.js 0000644 00000001143 15170147673 0007317 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = matches;
var matchesImpl;
/**
* Checks if a given element matches a selector.
*
* @param node the element
* @param selector the selector
*/
function matches(node, selector) {
if (!matchesImpl) {
var body = document.body;
var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;
matchesImpl = function matchesImpl(n, s) {
return nativeMatch.call(n, s);
};
}
return matchesImpl(node, selector);
}
module.exports = exports["default"]; cjs/height.d.ts 0000644 00000000330 15170147673 0007374 0 ustar 00 /**
* Returns the height of a given element.
*
* @param node the element
* @param client whether to use `clientHeight` if possible
*/
export default function height(node: HTMLElement, client?: boolean): number;
cjs/prepend.d.ts 0000644 00000000366 15170147673 0007572 0 ustar 00 /**
* Insert a given element as the first child of a parent element.
*
* @param node the element to prepend
* @param parent the parent element
*/
export default function prepend(node: Element | null, parent: Element | null): Element | null;
cjs/scrollTo.js 0000644 00000003165 15170147673 0007502 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = scrollTo;
var _animationFrame = require("./animationFrame");
var _height = _interopRequireDefault(require("./height"));
var _isWindow = _interopRequireDefault(require("./isWindow"));
var _offset = _interopRequireDefault(require("./offset"));
var _scrollParent = _interopRequireDefault(require("./scrollParent"));
var _scrollTop = _interopRequireDefault(require("./scrollTop"));
/* eslint-disable no-nested-ternary */
function scrollTo(selected, scrollParent) {
var offset = (0, _offset.default)(selected);
var poff = {
top: 0,
left: 0
};
if (!selected) return undefined;
var list = scrollParent || (0, _scrollParent.default)(selected);
var isWin = (0, _isWindow.default)(list);
var listScrollTop = (0, _scrollTop.default)(list);
var listHeight = (0, _height.default)(list, true);
if (!isWin) poff = (0, _offset.default)(list);
offset = {
top: offset.top - poff.top,
left: offset.left - poff.left,
height: offset.height,
width: offset.width
};
var selectedHeight = offset.height;
var selectedTop = offset.top + (isWin ? 0 : listScrollTop);
var bottom = selectedTop + selectedHeight;
listScrollTop = listScrollTop > selectedTop ? selectedTop : bottom > listScrollTop + listHeight ? bottom - listHeight : listScrollTop;
var id = (0, _animationFrame.request)(function () {
return (0, _scrollTop.default)(list, listScrollTop);
});
return function () {
return (0, _animationFrame.cancel)(id);
};
}
module.exports = exports["default"]; cjs/types.d.ts 0000644 00000000351 15170147673 0007273 0 ustar 00 import * as CSS from 'csstype'
type Styles = keyof CSSStyleDeclaration
export type HyphenProperty = keyof CSS.PropertiesHyphen
export type CamelProperty = keyof CSS.Properties
export type Property = HyphenProperty | CamelProperty
cjs/animationFrame.js 0000644 00000002437 15170147673 0010634 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.request = exports.cancel = void 0;
var _canUseDOM = _interopRequireDefault(require("./canUseDOM"));
/* https://github.com/component/raf */
var prev = new Date().getTime();
function fallback(fn) {
var curr = new Date().getTime();
var ms = Math.max(0, 16 - (curr - prev));
var handle = setTimeout(fn, ms);
prev = curr;
return handle;
}
var vendors = ['', 'webkit', 'moz', 'o', 'ms'];
var cancelMethod = 'clearTimeout';
var rafImpl = fallback; // eslint-disable-next-line import/no-mutable-exports
var getKey = function getKey(vendor, k) {
return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + "AnimationFrame";
};
if (_canUseDOM.default) {
vendors.some(function (vendor) {
var rafMethod = getKey(vendor, 'request');
if (rafMethod in window) {
cancelMethod = getKey(vendor, 'cancel'); // @ts-ignore
rafImpl = function rafImpl(cb) {
return window[rafMethod](cb);
};
}
return !!rafImpl;
});
}
var cancel = function cancel(id) {
// @ts-ignore
if (typeof window[cancelMethod] === 'function') window[cancelMethod](id);
};
exports.cancel = cancel;
var request = rafImpl;
exports.request = request; cjs/removeEventListener.d.ts 0000644 00000000703 15170147673 0012135 0 ustar 00 import { TaggedEventHandler } from './addEventListener';
/**
* A `removeEventListener` ponyfill
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
declare function removeEventListener<K extends keyof HTMLElementEventMap>(node: HTMLElement, eventName: K, handler: TaggedEventHandler<K>, options?: boolean | EventListenerOptions): void;
export default removeEventListener;
cjs/activeElement.js 0000644 00000001601 15170147673 0010457 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = activeElement;
var _ownerDocument = _interopRequireDefault(require("./ownerDocument"));
/**
* Returns the actively focused element safely.
*
* @param doc the document to check
*/
function activeElement(doc) {
if (doc === void 0) {
doc = (0, _ownerDocument.default)();
}
// Support: IE 9 only
// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
try {
var active = doc.activeElement; // IE11 returns a seemingly empty object in some cases when accessing
// document.activeElement from an <iframe>
if (!active || !active.nodeName) return null;
return active;
} catch (e) {
/* ie throws if no active element */
return doc.body;
}
}
module.exports = exports["default"]; cjs/scrollParent.js 0000644 00000002624 15170147673 0010350 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = scrollParent;
var _css = _interopRequireDefault(require("./css"));
var _height = _interopRequireDefault(require("./height"));
var _isDocument = _interopRequireDefault(require("./isDocument"));
/* eslint-disable no-cond-assign, no-continue */
/**
* Find the first scrollable parent of an element.
*
* @param element Starting element
* @param firstPossible Stop at the first scrollable parent, even if it's not currently scrollable
*/
function scrollParent(element, firstPossible) {
var position = (0, _css.default)(element, 'position');
var excludeStatic = position === 'absolute';
var ownerDoc = element.ownerDocument;
if (position === 'fixed') return ownerDoc || document; // @ts-ignore
while ((element = element.parentNode) && !(0, _isDocument.default)(element)) {
var isStatic = excludeStatic && (0, _css.default)(element, 'position') === 'static';
var style = ((0, _css.default)(element, 'overflow') || '') + ((0, _css.default)(element, 'overflow-y') || '') + (0, _css.default)(element, 'overflow-x');
if (isStatic) continue;
if (/(auto|scroll)/.test(style) && (firstPossible || (0, _height.default)(element) < element.scrollHeight)) {
return element;
}
}
return ownerDoc || document;
}
module.exports = exports["default"]; cjs/closest.d.ts 0000644 00000000476 15170147673 0007613 0 ustar 00 /**
* Returns the closest parent element that matches a given selector.
*
* @param node the reference element
* @param selector the selector to match
* @param stopAt stop traversing when this element is found
*/
export default function closest(node: Element, selector: string, stopAt?: Element): Element | null;
cjs/isDocument.d.ts 0000644 00000000137 15170147673 0010243 0 ustar 00 export default function isDocument(element: Element | Document | Window): element is Document;
cjs/animate.js 0000644 00000005236 15170147673 0007320 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _css = _interopRequireDefault(require("./css"));
var _hyphenate = _interopRequireDefault(require("./hyphenate"));
var _isTransform = _interopRequireDefault(require("./isTransform"));
var _transitionEnd = _interopRequireDefault(require("./transitionEnd"));
var reset = {
transition: '',
'transition-duration': '',
'transition-delay': '',
'transition-timing-function': ''
};
// super lean animate function for transitions
// doesn't support all translations to keep it matching the jquery API
/**
* code in part from: Zepto 1.1.4 | zeptojs.com/license
*/
function _animate(_ref) {
var node = _ref.node,
properties = _ref.properties,
_ref$duration = _ref.duration,
duration = _ref$duration === void 0 ? 200 : _ref$duration,
easing = _ref.easing,
callback = _ref.callback;
var cssProperties = [];
var cssValues = {};
var transforms = '';
Object.keys(properties).forEach(function (key) {
var value = properties[key];
if ((0, _isTransform.default)(key)) transforms += key + "(" + value + ") ";else {
cssValues[key] = value;
cssProperties.push((0, _hyphenate.default)(key));
}
});
if (transforms) {
cssValues.transform = transforms;
cssProperties.push('transform');
}
function done(event) {
if (event.target !== event.currentTarget) return;
(0, _css.default)(node, reset);
if (callback) callback.call(this, event);
}
if (duration > 0) {
cssValues.transition = cssProperties.join(', ');
cssValues['transition-duration'] = duration / 1000 + "s";
cssValues['transition-delay'] = '0s';
cssValues['transition-timing-function'] = easing || 'linear';
}
var removeListener = (0, _transitionEnd.default)(node, done, duration); // eslint-disable-next-line no-unused-expressions
node.clientLeft; // trigger page reflow
(0, _css.default)(node, cssValues);
return {
cancel: function cancel() {
removeListener();
(0, _css.default)(node, reset);
}
};
}
function animate(nodeOrOptions, properties, duration, easing, callback) {
if (!('nodeType' in nodeOrOptions)) {
return _animate(nodeOrOptions);
}
if (!properties) {
throw new Error('must include properties to animate');
}
if (typeof easing === 'function') {
callback = easing;
easing = '';
}
return _animate({
node: nodeOrOptions,
properties: properties,
duration: duration,
easing: easing,
callback: callback
});
}
var _default = animate;
exports.default = _default;
module.exports = exports["default"]; cjs/insertAfter.d.ts 0000644 00000000335 15170147673 0010417 0 ustar 00 /**
* Inserts a node after a given reference node.
*
* @param node the node to insert
* @param refNode the reference node
*/
export default function insertAfter(node: Node | null, refNode: Node | null): Node | null;
cjs/matches.d.ts 0000644 00000000302 15170147673 0007547 0 ustar 00 /**
* Checks if a given element matches a selector.
*
* @param node the element
* @param selector the selector
*/
export default function matches(node: Element, selector: string): boolean;
cjs/removeClass.js 0000644 00000001446 15170147673 0010164 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = removeClass;
function replaceClassName(origClass, classToRemove) {
return origClass.replace(new RegExp("(^|\\s)" + classToRemove + "(?:\\s|$)", 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
}
/**
* Removes a CSS class from a given element.
*
* @param element the element
* @param className the CSS class name
*/
function removeClass(element, className) {
if (element.classList) {
element.classList.remove(className);
} else if (typeof element.className === 'string') {
element.className = replaceClassName(element.className, className);
} else {
element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));
}
}
module.exports = exports["default"]; cjs/camelizeStyle.d.ts 0000644 00000000225 15170147673 0010741 0 ustar 00 import { CamelProperty, Property } from './types';
export default function camelizeStyleName<T extends string = Property>(string: T): CamelProperty;
cjs/scrollLeft.js 0000644 00000000764 15170147673 0010014 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _getScrollAccessor = _interopRequireDefault(require("./getScrollAccessor"));
/**
* Gets or sets the scroll left position of a given element.
*
* @param node the element
* @param val the position to set
*/
var _default = (0, _getScrollAccessor.default)('pageXOffset');
exports.default = _default;
module.exports = exports["default"]; cjs/position.d.ts 0000644 00000000444 15170147673 0007776 0 ustar 00 /**
* Returns the relative position of a given element.
*
* @param node the element
* @param offsetParent the offset parent
*/
export default function position(node: HTMLElement, offsetParent?: HTMLElement): {
top: number;
left: number;
height: number;
width: number;
};
cjs/scrollLeft.d.ts 0000644 00000000405 15170147673 0010240 0 ustar 00 declare const _default: {
(node: Element): number;
(node: Element, val: number): undefined;
};
/**
* Gets or sets the scroll left position of a given element.
*
* @param node the element
* @param val the position to set
*/
export default _default;
cjs/ownerDocument.js 0000644 00000000434 15170147673 0010526 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = ownerDocument;
/**
* Returns the owner document of a given element.
*
* @param node the element
*/
function ownerDocument(node) {
return node && node.ownerDocument || document;
}
module.exports = exports["default"]; cjs/toggleClass.d.ts 0000644 00000000330 15170147673 0010373 0 ustar 00 /**
* Toggles a CSS class on a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function toggleClass(element: Element | SVGElement, className: string): void;
cjs/getComputedStyle.js 0000644 00000001045 15170147673 0011175 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = getComputedStyle;
var _ownerWindow = _interopRequireDefault(require("./ownerWindow"));
/**
* Returns one or all computed style properties of an element.
*
* @param node the element
* @param psuedoElement the style property
*/
function getComputedStyle(node, psuedoElement) {
return (0, _ownerWindow.default)(node).getComputedStyle(node, psuedoElement);
}
module.exports = exports["default"]; cjs/hyphenateStyle.js 0000644 00000001125 15170147673 0010701 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = hyphenateStyleName;
var _hyphenate = _interopRequireDefault(require("./hyphenate"));
/**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
*/
var msPattern = /^ms-/;
function hyphenateStyleName(string) {
return (0, _hyphenate.default)(string).replace(msPattern, '-ms-');
}
module.exports = exports["default"]; cjs/offsetParent.d.ts 0000644 00000000106 15170147673 0010565 0 ustar 00 export default function offsetParent(node: HTMLElement): HTMLElement;
cjs/css.d.ts 0000644 00000000646 15170147673 0006726 0 ustar 00 import * as CSS from 'csstype';
import { CamelProperty, HyphenProperty, Property } from './types';
declare function style(node: HTMLElement, property: Partial<Record<Property, string>>): void;
declare function style<T extends HyphenProperty>(node: HTMLElement, property: T): CSS.PropertiesHyphen[T];
declare function style<T extends CamelProperty>(node: HTMLElement, property: T): CSS.Properties[T];
export default style;
cjs/camelize.js 0000644 00000000372 15170147673 0007467 0 ustar 00 "use strict";
exports.__esModule = true;
exports.default = camelize;
var rHyphen = /-(.)/g;
function camelize(string) {
return string.replace(rHyphen, function (_, chr) {
return chr.toUpperCase();
});
}
module.exports = exports["default"]; cjs/collectSiblings.js 0000644 00000001235 15170147673 0011015 0 ustar 00 "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = collectSiblings;
var _matches = _interopRequireDefault(require("./matches"));
function collectSiblings(node, refNode, selector) {
if (refNode === void 0) {
refNode = null;
}
if (selector === void 0) {
selector = null;
}
var siblings = [];
for (; node; node = node.nextElementSibling) {
if (node !== refNode) {
if (selector && (0, _matches.default)(node, selector)) {
break;
}
siblings.push(node);
}
}
return siblings;
}
module.exports = exports["default"]; cjs/listen.d.ts 0000644 00000000374 15170147673 0007432 0 ustar 00 import { EventHandler } from './addEventListener';
declare function listen<K extends keyof HTMLElementEventMap>(node: HTMLElement, eventName: K, handler: EventHandler<K>, options?: boolean | AddEventListenerOptions): () => void;
export default listen;
closest/package.json 0000644 00000000231 15170147673 0010515 0 ustar 00 {
"name": "dom-helpers/closest",
"private": true,
"main": "../cjs/closest.js",
"module": "../esm/closest.js",
"types": "../esm/closest.d.ts"
}
camelize/package.json 0000644 00000000235 15170147673 0010636 0 ustar 00 {
"name": "dom-helpers/camelize",
"private": true,
"main": "../cjs/camelize.js",
"module": "../esm/camelize.js",
"types": "../esm/camelize.d.ts"
}
animationFrame/package.json 0000644 00000000265 15170147673 0012002 0 ustar 00 {
"name": "dom-helpers/animationFrame",
"private": true,
"main": "../cjs/animationFrame.js",
"module": "../esm/animationFrame.js",
"types": "../esm/animationFrame.d.ts"
}
README.md 0000644 00000007404 15170147673 0006043 0 ustar 00 # dom-helpers
tiny modular DOM lib for ie9+
## Install
```sh
npm i -S dom-helpers
```
Mostly just naive wrappers around common DOM API inconsistencies, Cross browser work is minimal and mostly taken from jQuery. This library doesn't do a lot to normalize behavior across browsers, it mostly seeks to provide a common interface, and eliminate the need to write the same damn `if (ie9)` statements in every project.
For example `on()` works in all browsers ie9+ but it uses the native event system so actual event oddities will continue to exist. If you need **robust** cross-browser support, use jQuery. If you are just tired of rewriting:
```js
if (document.addEventListener)
return (node, eventName, handler, capture) =>
node.addEventListener(eventName, handler, capture || false)
else if (document.attachEvent)
return (node, eventName, handler) =>
node.attachEvent('on' + eventName, handler)
```
over and over again, or you need a ok `getComputedStyle` polyfill but don't want to include all of jQuery, use this.
dom-helpers does expect certain, polyfillable, es5 features to be present for which you can use `es5-shim` where needed
The real advantage to this collection is that any method can be required individually, meaning bundlers like webpack will only include the exact methods you use. This is great for environments where jQuery doesn't make sense, such as `React` where you only occasionally need to do direct DOM manipulation.
All methods are exported as a flat namesapce
```js
var helpers = require('dom-helpers')
var offset = require('dom-helpers/offset')
// style is a function
require('dom-helpers/css')(node, { width: '40px' })
```
- dom-helpers
- `ownerDocument(element)`: returns the element's document owner
- `ownerWindow(element)`: returns the element's document window
- `activeElement`: return focused element safely
- `querySelectorAll(element, selector)`: optimized qsa, uses `getElementBy{Id|TagName|ClassName}` if it can.
- `contains(container, element)`
- `height(element, useClientHeight)`
- `width(element, useClientWidth)`
- `matches(element, selector)`
- `offset(element)` -> `{ top: Number, left: Number, height: Number, width: Number}`
- `offsetParent(element)`: return the parent node that the element is offset from
- `position(element, [offsetParent]`: return "offset" of the node to its offsetParent, optionally you can specify the offset parent if different than the "real" one
- `scrollTop(element, [value])`
- `scrollLeft(element, [value])`
- `scrollParent(element)`
- `addClass(element, className)`
- `removeClass(element, className)`
- `hasClass(element, className)`
- `toggleClass(element, className)`
- `style(element, propName)` or `style(element, objectOfPropValues)`
- `getComputedStyle(element)` -> `getPropertyValue(name)`
- `animate(node, properties, duration, easing, callback)` programmatically start css transitions
- `transitionEnd(node, handler, [duration], [padding])` listens for transition end, and ensures that the handler if called even if the transition fails to fire its end event. Will attempt to read duration from the element, otherwise one can be provided
- `addEventListener(node, eventName, handler, [options])`:
- `removeEventListener(node, eventName, handler, [options])`:
- `listen(node, eventName, handler, [options])`: wraps `addEventlistener` and returns a function that calls `removeEventListener` for you
- `filter(selector, fn)`: returns a function handler that only fires when the target matches or is contained in the selector ex: `on(list, 'click', filter('li > a', handler))`
- `requestAnimationFrame(cb)` returns an ID for canceling
- `cancelAnimationFrame(id)`
- `scrollbarSize([recalc])` returns the scrollbar's width size in pixels
- `scrollTo(element, [scrollParent])`
isInput/package.json 0000644 00000000231 15170147673 0010474 0 ustar 00 {
"name": "dom-helpers/isInput",
"private": true,
"main": "../cjs/isInput.js",
"module": "../esm/isInput.js",
"types": "../esm/isInput.d.ts"
}
clear/package.json 0000644 00000000221 15170147673 0010126 0 ustar 00 {
"name": "dom-helpers/clear",
"private": true,
"main": "../cjs/clear.js",
"module": "../esm/clear.js",
"types": "../esm/clear.d.ts"
}
offset/package.json 0000644 00000000225 15170147673 0010332 0 ustar 00 {
"name": "dom-helpers/offset",
"private": true,
"main": "../cjs/offset.js",
"module": "../esm/offset.js",
"types": "../esm/offset.d.ts"
}
esm/removeEventListener.js 0000644 00000001000 15170147673 0011675 0 ustar 00 /**
* A `removeEventListener` ponyfill
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
function removeEventListener(node, eventName, handler, options) {
var capture = options && typeof options !== 'boolean' ? options.capture : options;
node.removeEventListener(eventName, handler, capture);
if (handler.__once) {
node.removeEventListener(eventName, handler.__once, capture);
}
}
export default removeEventListener;esm/querySelectorAll.js 0000644 00000000461 15170147673 0011201 0 ustar 00 var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);
/**
* Runs `querySelectorAll` on a given element.
*
* @param element the element
* @param selector the selector
*/
export default function qsa(element, selector) {
return toArray(element.querySelectorAll(selector));
} esm/attribute.js 0000644 00000000677 15170147673 0007716 0 ustar 00 /**
* Gets or sets an attribute of a given element.
*
* @param node the element
* @param attr the attribute to get or set
* @param val the attribute value
*/
export default function attribute(node, attr, val) {
if (node) {
if (typeof val === 'undefined') {
return node.getAttribute(attr);
}
if (!val && val !== '') {
node.removeAttribute(attr);
} else {
node.setAttribute(attr, String(val));
}
}
} esm/addEventListener.js 0000644 00000002574 15170147673 0011151 0 ustar 00 /* eslint-disable no-return-assign */
import canUseDOM from './canUseDOM';
export var optionsSupported = false;
export var onceSupported = false;
try {
var options = {
get passive() {
return optionsSupported = true;
},
get once() {
// eslint-disable-next-line no-multi-assign
return onceSupported = optionsSupported = true;
}
};
if (canUseDOM) {
window.addEventListener('test', options, options);
window.removeEventListener('test', options, true);
}
} catch (e) {
/* */
}
/**
* An `addEventListener` ponyfill, supports the `once` option
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
function addEventListener(node, eventName, handler, options) {
if (options && typeof options !== 'boolean' && !onceSupported) {
var once = options.once,
capture = options.capture;
var wrappedHandler = handler;
if (!onceSupported && once) {
wrappedHandler = handler.__once || function onceHandler(event) {
this.removeEventListener(eventName, onceHandler, capture);
handler.call(this, event);
};
handler.__once = wrappedHandler;
}
node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);
}
node.addEventListener(eventName, handler, options);
}
export default addEventListener; esm/text.js 0000644 00000001506 15170147673 0006667 0 ustar 00 var regExpNbspEntity = / /gi;
var regExpNbspHex = /\xA0/g;
var regExpSpaces = /\s+([^\s])/gm;
/**
* Collects the text content of a given element.
*
* @param node the element
* @param trim whether to remove trailing whitespace chars
* @param singleSpaces whether to convert multiple whitespace chars into a single space character
*/
export default function text(node, trim, singleSpaces) {
if (trim === void 0) {
trim = true;
}
if (singleSpaces === void 0) {
singleSpaces = true;
}
var elementText = '';
if (node) {
elementText = (node.textContent || '').replace(regExpNbspEntity, ' ').replace(regExpNbspHex, ' ');
if (trim) {
elementText = elementText.trim();
}
if (singleSpaces) {
elementText = elementText.replace(regExpSpaces, ' $1');
}
}
return elementText;
} esm/isWindow.js 0000644 00000000330 15170147673 0007500 0 ustar 00 import isDocument from './isDocument';
export default function isWindow(node) {
if ('window' in node && node.window === node) return node;
if (isDocument(node)) return node.defaultView || false;
return false;
} esm/ownerWindow.js 0000644 00000000376 15170147673 0010231 0 ustar 00 import ownerDocument from './ownerDocument';
/**
* Returns the owner window of a given element.
*
* @param node the element
*/
export default function ownerWindow(node) {
var doc = ownerDocument(node);
return doc && doc.defaultView || window;
} esm/hyphenate.js 0000644 00000000174 15170147673 0007670 0 ustar 00 var rUpper = /([A-Z])/g;
export default function hyphenate(string) {
return string.replace(rUpper, '-$1').toLowerCase();
} esm/scrollTop.js 0000644 00000000353 15170147673 0007663 0 ustar 00 import getScrollAccessor from './getScrollAccessor';
/**
* Gets or sets the scroll top position of a given element.
*
* @param node the element
* @param val the position to set
*/
export default getScrollAccessor('pageYOffset'); esm/collectElements.d.ts 0000644 00000000327 15170147673 0011261 0 ustar 00 declare type TraverseDirection = 'parentElement' | 'previousElementSibling' | 'nextElementSibling';
export default function collectElements(node: Element | null, direction: TraverseDirection): Element[];
export {};
esm/offset.js 0000644 00000001554 15170147673 0007174 0 ustar 00 import contains from './contains';
import ownerDocument from './ownerDocument';
import scrollLeft from './scrollLeft';
import scrollTop from './scrollTop';
/**
* Returns the offset of a given element, including top and left positions, width and height.
*
* @param node the element
*/
export default function offset(node) {
var doc = ownerDocument(node);
var box = {
top: 0,
left: 0,
height: 0,
width: 0
};
var docElem = doc && doc.documentElement; // Make sure it's not a disconnected DOM node
if (!docElem || !contains(docElem, node)) return box;
if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();
box = {
top: box.top + scrollTop(docElem) - (docElem.clientTop || 0),
left: box.left + scrollLeft(docElem) - (docElem.clientLeft || 0),
width: box.width,
height: box.height
};
return box;
} esm/scrollTo.d.ts 0000644 00000000157 15170147673 0007741 0 ustar 00 export default function scrollTo(selected: HTMLElement, scrollParent?: HTMLElement): (() => void) | undefined;
esm/contains.d.ts 0000644 00000000345 15170147673 0007755 0 ustar 00 /**
* Checks if an element contains another given element.
*
* @param context the context element
* @param node the element to check
*/
export default function contains(context: Element, node: Element): boolean | undefined;
esm/isWindow.d.ts 0000644 00000000125 15170147673 0007736 0 ustar 00 export default function isWindow(node: Element | Document | Window): Window | false;
esm/filterEventHandler.js 0000644 00000000573 15170147673 0011473 0 ustar 00 import contains from './contains';
import qsa from './querySelectorAll';
export default function filterEvents(selector, handler) {
return function filterHandler(e) {
var top = e.currentTarget;
var target = e.target;
var matches = qsa(top, selector);
if (matches.some(function (match) {
return contains(match, target);
})) handler.call(this, e);
};
} esm/height.js 0000644 00000000560 15170147673 0007152 0 ustar 00 import getWindow from './isWindow';
import offset from './offset';
/**
* Returns the height of a given element.
*
* @param node the element
* @param client whether to use `clientHeight` if possible
*/
export default function height(node, client) {
var win = getWindow(node);
return win ? win.innerHeight : client ? node.clientHeight : offset(node).height;
} esm/ownerWindow.d.ts 0000644 00000000223 15170147673 0010454 0 ustar 00 /**
* Returns the owner window of a given element.
*
* @param node the element
*/
export default function ownerWindow(node?: Element): Window;
esm/transitionEnd.js 0000644 00000002024 15170147673 0010520 0 ustar 00 import css from './css';
import listen from './listen';
import triggerEvent from './triggerEvent';
function parseDuration(node) {
var str = css(node, 'transitionDuration') || '';
var mult = str.indexOf('ms') === -1 ? 1000 : 1;
return parseFloat(str) * mult;
}
function emulateTransitionEnd(element, duration, padding) {
if (padding === void 0) {
padding = 5;
}
var called = false;
var handle = setTimeout(function () {
if (!called) triggerEvent(element, 'transitionend', true);
}, duration + padding);
var remove = listen(element, 'transitionend', function () {
called = true;
}, {
once: true
});
return function () {
clearTimeout(handle);
remove();
};
}
export default function transitionEnd(element, handler, duration, padding) {
if (duration == null) duration = parseDuration(element) || 0;
var removeEmulate = emulateTransitionEnd(element, duration, padding);
var remove = listen(element, 'transitionend', handler);
return function () {
removeEmulate();
remove();
};
} esm/collectElements.js 0000644 00000000435 15170147673 0011025 0 ustar 00 export default function collectElements(node, direction) {
var nextNode = null;
var nodes = [];
nextNode = node ? node[direction] : null;
while (nextNode && nextNode.nodeType !== 9) {
nodes.push(nextNode);
nextNode = nextNode[direction] || null;
}
return nodes;
} esm/parents.d.ts 0000644 00000000234 15170147673 0007610 0 ustar 00 /**
* Collects all parent elements of a given element.
*
* @param node the element
*/
export default function parents(node: Element | null): Element[];
esm/addEventListener.d.ts 0000644 00000001400 15170147673 0011370 0 ustar 00 export declare let optionsSupported: boolean;
export declare let onceSupported: boolean;
export declare type EventHandler<K extends keyof HTMLElementEventMap> = (this: HTMLElement, event: HTMLElementEventMap[K]) => any;
export declare type TaggedEventHandler<K extends keyof HTMLElementEventMap> = EventHandler<K> & {
__once?: EventHandler<K>;
};
/**
* An `addEventListener` ponyfill, supports the `once` option
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
declare function addEventListener<K extends keyof HTMLElementEventMap>(node: HTMLElement, eventName: K, handler: TaggedEventHandler<K>, options?: boolean | AddEventListenerOptions): void;
export default addEventListener;
esm/prepend.js 0000644 00000000631 15170147673 0007336 0 ustar 00 /**
* Insert a given element as the first child of a parent element.
*
* @param node the element to prepend
* @param parent the parent element
*/
export default function prepend(node, parent) {
if (node && parent) {
if (parent.firstElementChild) {
parent.insertBefore(node, parent.firstElementChild);
} else {
parent.appendChild(node);
}
return node;
}
return null;
} esm/scrollbarSize.d.ts 0000644 00000000101 15170147673 0010743 0 ustar 00 export default function scrollbarSize(recalc?: boolean): number;
esm/hasClass.d.ts 0000644 00000000333 15170147673 0007675 0 ustar 00 /**
* Checks if a given element has a CSS class.
*
* @param element the element
* @param className the CSS class name
*/
export default function hasClass(element: Element | SVGElement, className: string): boolean;
esm/isInput.d.ts 0000644 00000000275 15170147673 0007574 0 ustar 00 /**
* Checks if a given element is an input (input, select, textarea or button).
*
* @param node the element to check
*/
export default function isInput(node: Element | null): boolean;
esm/attribute.d.ts 0000644 00000000445 15170147673 0010143 0 ustar 00 /**
* Gets or sets an attribute of a given element.
*
* @param node the element
* @param attr the attribute to get or set
* @param val the attribute value
*/
export default function attribute(node: Element | null, attr: string, val?: string | boolean | null): string | null | undefined;
esm/nextUntil.js 0000644 00000000504 15170147673 0007672 0 ustar 00 import collectSiblings from './collectSiblings';
/**
* Collects all next sibling elements of an element until a given selector is matched.
*
* @param node the referene node
* @param selector the selector to match
*/
export default function nextUntil(node, selector) {
return collectSiblings(node, node, selector);
} esm/filterEventHandler.d.ts 0000644 00000000273 15170147673 0011724 0 ustar 00 import { EventHandler } from './addEventListener';
export default function filterEvents<K extends keyof HTMLElementEventMap>(selector: string, handler: EventHandler<K>): EventHandler<K>;
esm/triggerEvent.d.ts 0000644 00000000620 15170147673 0010600 0 ustar 00 /**
* Triggers an event on a given element.
*
* @param node the element
* @param eventName the event name to trigger
* @param bubbles whether the event should bubble up
* @param cancelable whether the event should be cancelable
*/
export default function triggerEvent<K extends keyof HTMLElementEventMap>(node: HTMLElement | null, eventName: K, bubbles?: boolean, cancelable?: boolean): void;
esm/scrollbarSize.js 0000644 00000001113 15170147673 0010513 0 ustar 00 import canUseDOM from './canUseDOM';
var size;
export default function scrollbarSize(recalc) {
if (!size && size !== 0 || recalc) {
if (canUseDOM) {
var scrollDiv = document.createElement('div');
scrollDiv.style.position = 'absolute';
scrollDiv.style.top = '-9999px';
scrollDiv.style.width = '50px';
scrollDiv.style.height = '50px';
scrollDiv.style.overflow = 'scroll';
document.body.appendChild(scrollDiv);
size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
}
}
return size;
} esm/remove.d.ts 0000644 00000000223 15170147673 0007427 0 ustar 00 /**
* Removes a given node from the DOM.
*
* @param node the node to remove
*/
export default function remove(node: Node | null): Node | null;
esm/parents.js 0000644 00000000347 15170147673 0007361 0 ustar 00 import collectElements from './collectElements';
/**
* Collects all parent elements of a given element.
*
* @param node the element
*/
export default function parents(node) {
return collectElements(node, 'parentElement');
} esm/isInput.js 0000644 00000000434 15170147673 0007335 0 ustar 00 var regExpInputs = /^(?:input|select|textarea|button)$/i;
/**
* Checks if a given element is an input (input, select, textarea or button).
*
* @param node the element to check
*/
export default function isInput(node) {
return node ? regExpInputs.test(node.nodeName) : false;
} esm/insertAfter.js 0000644 00000000656 15170147673 0010176 0 ustar 00 /**
* Inserts a node after a given reference node.
*
* @param node the node to insert
* @param refNode the reference node
*/
export default function insertAfter(node, refNode) {
if (node && refNode && refNode.parentNode) {
if (refNode.nextSibling) {
refNode.parentNode.insertBefore(node, refNode.nextSibling);
} else {
refNode.parentNode.appendChild(node);
}
return node;
}
return null;
} esm/isVisible.d.ts 0000644 00000000250 15170147673 0010063 0 ustar 00 /**
* Checks if a given element is currently visible.
*
* @param node the element to check
*/
export default function isVisible(node: HTMLElement | null): boolean;
esm/hyphenateStyle.d.ts 0000644 00000000454 15170147673 0011146 0 ustar 00 /**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
*/
import { Property } from './types';
export default function hyphenateStyleName(string: Property): Property;
esm/canUseDOM.js 0000644 00000000145 15170147673 0007457 0 ustar 00 export default !!(typeof window !== 'undefined' && window.document && window.document.createElement); esm/siblings.d.ts 0000644 00000000260 15170147673 0007745 0 ustar 00 /**
* Collects all previous and next sibling elements of a given element.
*
* @param node the element
*/
export default function siblings(node: Element | null): Element[];
esm/offset.d.ts 0000644 00000000406 15170147673 0007423 0 ustar 00 /**
* Returns the offset of a given element, including top and left positions, width and height.
*
* @param node the element
*/
export default function offset(node: HTMLElement): {
top: number;
left: number;
height: number;
width: number;
};
esm/querySelectorAll.d.ts 0000644 00000000327 15170147673 0011436 0 ustar 00 /**
* Runs `querySelectorAll` on a given element.
*
* @param element the element
* @param selector the selector
*/
export default function qsa(element: HTMLElement | Document, selector: string): HTMLElement[];
esm/position.js 0000644 00000003077 15170147673 0007554 0 ustar 00 import _extends from "@babel/runtime/helpers/esm/extends";
import css from './css';
import getOffset from './offset';
import getOffsetParent from './offsetParent';
import scrollLeft from './scrollLeft';
import scrollTop from './scrollTop';
var nodeName = function nodeName(node) {
return node.nodeName && node.nodeName.toLowerCase();
};
/**
* Returns the relative position of a given element.
*
* @param node the element
* @param offsetParent the offset parent
*/
export default function position(node, offsetParent) {
var parentOffset = {
top: 0,
left: 0
};
var offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
// because it is its only offset parent
if (css(node, 'position') === 'fixed') {
offset = node.getBoundingClientRect();
} else {
var parent = offsetParent || getOffsetParent(node);
offset = getOffset(node);
if (nodeName(parent) !== 'html') parentOffset = getOffset(parent);
var borderTop = String(css(parent, 'borderTopWidth') || 0);
parentOffset.top += parseInt(borderTop, 10) - scrollTop(parent) || 0;
var borderLeft = String(css(parent, 'borderLeftWidth') || 0);
parentOffset.left += parseInt(borderLeft, 10) - scrollLeft(parent) || 0;
}
var marginTop = String(css(node, 'marginTop') || 0);
var marginLeft = String(css(node, 'marginLeft') || 0); // Subtract parent offsets and node margins
return _extends({}, offset, {
top: offset.top - parentOffset.top - (parseInt(marginTop, 10) || 0),
left: offset.left - parentOffset.left - (parseInt(marginLeft, 10) || 0)
});
} esm/animationFrame.d.ts 0000644 00000000157 15170147673 0011072 0 ustar 00 export declare const cancel: (id: number) => void;
export declare const request: typeof requestAnimationFrame;
esm/childElements.d.ts 0000644 00000000234 15170147673 0010714 0 ustar 00 /**
* Collects all child elements of an element.
*
* @param node the element
*/
export default function childElements(node: Element | null): Element[];
esm/removeClass.d.ts 0000644 00000000332 15170147673 0010416 0 ustar 00 /**
* Removes a CSS class from a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function removeClass(element: Element | SVGElement, className: string): void;
esm/ownerDocument.d.ts 0000644 00000000231 15170147673 0010762 0 ustar 00 /**
* Returns the owner document of a given element.
*
* @param node the element
*/
export default function ownerDocument(node?: Element): Document;
esm/transitionEnd.d.ts 0000644 00000000330 15170147673 0010752 0 ustar 00 export declare type Listener = (this: HTMLElement, ev: TransitionEvent) => any;
export default function transitionEnd(element: HTMLElement, handler: Listener, duration?: number | null, padding?: number): () => void;
esm/clear.d.ts 0000644 00000000231 15170147673 0007217 0 ustar 00 /**
* Removes all child nodes from a given node.
*
* @param node the node to clear
*/
export default function clear(node: Node | null): Node | null;
esm/text.d.ts 0000644 00000000534 15170147673 0007123 0 ustar 00 /**
* Collects the text content of a given element.
*
* @param node the element
* @param trim whether to remove trailing whitespace chars
* @param singleSpaces whether to convert multiple whitespace chars into a single space character
*/
export default function text(node: HTMLElement | null, trim?: boolean, singleSpaces?: boolean): string;
esm/width.js 0000644 00000000555 15170147673 0007025 0 ustar 00 import getWindow from './isWindow';
import offset from './offset';
/**
* Returns the width of a given element.
*
* @param node the element
* @param client whether to use `clientWidth` if possible
*/
export default function getWidth(node, client) {
var win = getWindow(node);
return win ? win.innerWidth : client ? node.clientWidth : offset(node).width;
} esm/isDocument.js 0000644 00000000176 15170147673 0010017 0 ustar 00 export default function isDocument(element) {
return 'nodeType' in element && element.nodeType === document.DOCUMENT_NODE;
} esm/remove.js 0000644 00000000351 15170147673 0007175 0 ustar 00 /**
* Removes a given node from the DOM.
*
* @param node the node to remove
*/
export default function remove(node) {
if (node && node.parentNode) {
node.parentNode.removeChild(node);
return node;
}
return null;
} esm/closest.js 0000644 00000001127 15170147673 0007356 0 ustar 00 import matches from './matches';
/**
* Returns the closest parent element that matches a given selector.
*
* @param node the reference element
* @param selector the selector to match
* @param stopAt stop traversing when this element is found
*/
export default function closest(node, selector, stopAt) {
if (node.closest && !stopAt) node.closest(selector);
var nextNode = node;
do {
if (matches(nextNode, selector)) return nextNode;
nextNode = nextNode.parentElement;
} while (nextNode && nextNode !== stopAt && nextNode.nodeType === document.ELEMENT_NODE);
return null;
} esm/triggerEvent.js 0000644 00000001110 15170147673 0010337 0 ustar 00 /**
* Triggers an event on a given element.
*
* @param node the element
* @param eventName the event name to trigger
* @param bubbles whether the event should bubble up
* @param cancelable whether the event should be cancelable
*/
export default function triggerEvent(node, eventName, bubbles, cancelable) {
if (bubbles === void 0) {
bubbles = false;
}
if (cancelable === void 0) {
cancelable = true;
}
if (node) {
var event = document.createEvent('HTMLEvents');
event.initEvent(eventName, bubbles, cancelable);
node.dispatchEvent(event);
}
} esm/addClass.d.ts 0000644 00000000322 15170147673 0007650 0 ustar 00 /**
* Adds a CSS class to a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function addClass(element: Element | SVGElement, className: string): void;
esm/camelizeStyle.js 0000644 00000000545 15170147673 0010517 0 ustar 00 /**
* Copyright 2014-2015, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
*/
import camelize from './camelize';
var msPattern = /^-ms-/;
export default function camelizeStyleName(string) {
return camelize(string.replace(msPattern, 'ms-'));
} esm/offsetParent.js 0000644 00000000721 15170147673 0010341 0 ustar 00 import css from './css';
import ownerDocument from './ownerDocument';
var isHTMLElement = function isHTMLElement(e) {
return !!e && 'offsetParent' in e;
};
export default function offsetParent(node) {
var doc = ownerDocument(node);
var parent = node && node.offsetParent;
while (isHTMLElement(parent) && parent.nodeName !== 'HTML' && css(parent, 'position') === 'static') {
parent = parent.offsetParent;
}
return parent || doc.documentElement;
} esm/index.js 0000644 00000006623 15170147673 0007017 0 ustar 00 import activeElement from './activeElement';
import addClass from './addClass';
import addEventListener from './addEventListener';
import animate from './animate';
import { cancel as cancelAnimationFrame, request as requestAnimationFrame } from './animationFrame';
import attribute from './attribute';
import childElements from './childElements';
import clear from './clear';
import closest from './closest';
import contains from './contains';
import childNodes from './childNodes';
import style from './css';
import filter from './filterEventHandler';
import getComputedStyle from './getComputedStyle';
import hasClass from './hasClass';
import height from './height';
import insertAfter from './insertAfter';
import isInput from './isInput';
import isVisible from './isVisible';
import listen from './listen';
import matches from './matches';
import nextUntil from './nextUntil';
import offset from './offset';
import offsetParent from './offsetParent';
import ownerDocument from './ownerDocument';
import ownerWindow from './ownerWindow';
import parents from './parents';
import position from './position';
import prepend from './prepend';
import querySelectorAll from './querySelectorAll';
import remove from './remove';
import removeClass from './removeClass';
import removeEventListener from './removeEventListener';
import scrollbarSize from './scrollbarSize';
import scrollLeft from './scrollLeft';
import scrollParent from './scrollParent';
import scrollTo from './scrollTo';
import scrollTop from './scrollTop';
import siblings from './siblings';
import text from './text';
import toggleClass from './toggleClass';
import transitionEnd from './transitionEnd';
import triggerEvent from './triggerEvent';
import width from './width';
export { addEventListener, removeEventListener, triggerEvent, animate, filter, listen, style, getComputedStyle, attribute, activeElement, ownerDocument, ownerWindow, requestAnimationFrame, cancelAnimationFrame, matches, height, width, offset, offsetParent, position, contains, scrollbarSize, scrollLeft, scrollParent, scrollTo, scrollTop, querySelectorAll, closest, addClass, removeClass, hasClass, toggleClass, transitionEnd, childNodes, childElements, nextUntil, parents, siblings, clear, insertAfter, isInput, isVisible, prepend, remove, text };
export default {
addEventListener: addEventListener,
removeEventListener: removeEventListener,
triggerEvent: triggerEvent,
animate: animate,
filter: filter,
listen: listen,
style: style,
getComputedStyle: getComputedStyle,
attribute: attribute,
activeElement: activeElement,
ownerDocument: ownerDocument,
ownerWindow: ownerWindow,
requestAnimationFrame: requestAnimationFrame,
cancelAnimationFrame: cancelAnimationFrame,
matches: matches,
height: height,
width: width,
offset: offset,
offsetParent: offsetParent,
position: position,
contains: contains,
scrollbarSize: scrollbarSize,
scrollLeft: scrollLeft,
scrollParent: scrollParent,
scrollTo: scrollTo,
scrollTop: scrollTop,
querySelectorAll: querySelectorAll,
closest: closest,
addClass: addClass,
removeClass: removeClass,
hasClass: hasClass,
toggleClass: toggleClass,
transitionEnd: transitionEnd,
childNodes: childNodes,
childElements: childElements,
nextUntil: nextUntil,
parents: parents,
siblings: siblings,
clear: clear,
insertAfter: insertAfter,
isInput: isInput,
isVisible: isVisible,
prepend: prepend,
remove: remove,
text: text
}; esm/toggleClass.js 0000644 00000000716 15170147673 0010154 0 ustar 00 import addClass from './addClass';
import hasClass from './hasClass';
import removeClass from './removeClass';
/**
* Toggles a CSS class on a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function toggleClass(element, className) {
if (element.classList) element.classList.toggle(className);else if (hasClass(element, className)) removeClass(element, className);else addClass(element, className);
} esm/childNodes.js 0000644 00000000372 15170147673 0007757 0 ustar 00 var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);
/**
* Collects all child nodes of an element.
*
* @param node the node
*/
export default function childNodes(node) {
return node ? toArray(node.childNodes) : [];
} esm/siblings.js 0000644 00000000464 15170147673 0007517 0 ustar 00 import collectSiblings from './collectSiblings';
/**
* Collects all previous and next sibling elements of a given element.
*
* @param node the element
*/
export default function siblings(node) {
return collectSiblings(node && node.parentElement ? node.parentElement.firstElementChild : null, node);
} esm/canUseDOM.d.ts 0000644 00000000072 15170147673 0007712 0 ustar 00 declare const _default: boolean;
export default _default;
esm/css.js 0000644 00000001471 15170147673 0006474 0 ustar 00 import getComputedStyle from './getComputedStyle';
import hyphenate from './hyphenateStyle';
import isTransform from './isTransform';
function style(node, property) {
var css = '';
var transforms = '';
if (typeof property === 'string') {
return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));
}
Object.keys(property).forEach(function (key) {
var value = property[key];
if (!value && value !== 0) {
node.style.removeProperty(hyphenate(key));
} else if (isTransform(key)) {
transforms += key + "(" + value + ") ";
} else {
css += hyphenate(key) + ": " + value + ";";
}
});
if (transforms) {
css += "transform: " + transforms + ";";
}
node.style.cssText += ";" + css;
}
export default style; esm/collectSiblings.d.ts 0000644 00000000176 15170147673 0011261 0 ustar 00 export default function collectSiblings(node: Element | null, refNode?: Element | null, selector?: string | null): Element[];
esm/hasClass.js 0000644 00000000574 15170147673 0007450 0 ustar 00 /**
* Checks if a given element has a CSS class.
*
* @param element the element
* @param className the CSS class name
*/
export default function hasClass(element, className) {
if (element.classList) return !!className && element.classList.contains(className);
return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
} esm/listen.js 0000644 00000000512 15170147673 0007175 0 ustar 00 import addEventListener from './addEventListener';
import removeEventListener from './removeEventListener';
function listen(node, eventName, handler, options) {
addEventListener(node, eventName, handler, options);
return function () {
removeEventListener(node, eventName, handler, options);
};
}
export default listen; esm/camelize.d.ts 0000644 00000000072 15170147673 0007725 0 ustar 00 export default function camelize(string: string): string;
esm/getScrollAccessor.d.ts 0000644 00000000241 15170147673 0011553 0 ustar 00 export default function getscrollAccessor(offset: 'pageXOffset' | 'pageYOffset'): {
(node: Element): number;
(node: Element, val: number): undefined;
};
esm/scrollTop.d.ts 0000644 00000000404 15170147673 0010114 0 ustar 00 declare const _default: {
(node: Element): number;
(node: Element, val: number): undefined;
};
/**
* Gets or sets the scroll top position of a given element.
*
* @param node the element
* @param val the position to set
*/
export default _default;
esm/activeElement.d.ts 0000644 00000000246 15170147673 0010724 0 ustar 00 /**
* Returns the actively focused element safely.
*
* @param doc the document to check
*/
export default function activeElement(doc?: Document): Element | null;
esm/clear.js 0000644 00000000403 15170147673 0006764 0 ustar 00 /**
* Removes all child nodes from a given node.
*
* @param node the node to clear
*/
export default function clear(node) {
if (node) {
while (node.firstChild) {
node.removeChild(node.firstChild);
}
return node;
}
return null;
} esm/childElements.js 0000644 00000000264 15170147673 0010463 0 ustar 00 /**
* Collects all child elements of an element.
*
* @param node the element
*/
export default function childElements(node) {
return node ? Array.from(node.children) : [];
} esm/isTransform.d.ts 0000644 00000000564 15170147673 0010451 0 ustar 00 export declare type TransformValue = 'translate' | 'translateY' | 'translateX' | 'translateZ' | 'translate3d' | 'rotate' | 'rotateY' | 'rotateX' | 'rotateZ' | 'rotate3d' | 'scale' | 'scaleY' | 'scaleX' | 'scaleZ' | 'scale3d' | 'matrix' | 'matrix3d' | 'perspective' | 'skew' | 'skewY' | 'skewX';
export default function isTransform(value: string): value is TransformValue;
esm/nextUntil.d.ts 0000644 00000000402 15170147673 0010123 0 ustar 00 /**
* Collects all next sibling elements of an element until a given selector is matched.
*
* @param node the referene node
* @param selector the selector to match
*/
export default function nextUntil(node: Element | null, selector: string): Element[];
esm/scrollParent.d.ts 0000644 00000000461 15170147673 0010606 0 ustar 00 /**
* Find the first scrollable parent of an element.
*
* @param element Starting element
* @param firstPossible Stop at the first scrollable parent, even if it's not currently scrollable
*/
export default function scrollParent(element: HTMLElement, firstPossible?: boolean): Document | HTMLElement;
esm/childNodes.d.ts 0000644 00000000220 15170147673 0010203 0 ustar 00 /**
* Collects all child nodes of an element.
*
* @param node the node
*/
export default function childNodes(node: Element | null): Node[];
esm/getScrollAccessor.js 0000644 00000000662 15170147673 0011326 0 ustar 00 import isWindow from './isWindow';
export default function getscrollAccessor(offset) {
var prop = offset === 'pageXOffset' ? 'scrollLeft' : 'scrollTop';
function scrollAccessor(node, val) {
var win = isWindow(node);
if (val === undefined) {
return win ? win[offset] : node[prop];
}
if (win) {
win.scrollTo(win[offset], val);
} else {
node[prop] = val;
}
}
return scrollAccessor;
} esm/hyphenate.d.ts 0000644 00000000073 15170147673 0010122 0 ustar 00 export default function hyphenate(string: string): string;
esm/animate.d.ts 0000644 00000001606 15170147673 0007556 0 ustar 00 import { EventHandler } from './addEventListener';
import { TransformValue } from './isTransform';
import { Property } from './types';
declare type AnimateProperties = Record<Property | TransformValue, string>;
interface Options {
node: HTMLElement;
properties: AnimateProperties;
duration?: number;
easing?: string;
callback?: EventHandler<'transitionend'>;
}
interface Cancel {
cancel(): void;
}
declare function animate(options: Options): Cancel;
declare function animate(node: HTMLElement, properties: AnimateProperties, duration: number): Cancel;
declare function animate(node: HTMLElement, properties: AnimateProperties, duration: number, callback: EventHandler<'transitionend'>): Cancel;
declare function animate(node: HTMLElement, properties: AnimateProperties, duration: number, easing: string, callback: EventHandler<'transitionend'>): Cancel;
export default animate;
esm/getComputedStyle.d.ts 0000644 00000000372 15170147673 0011440 0 ustar 00 /**
* Returns one or all computed style properties of an element.
*
* @param node the element
* @param psuedoElement the style property
*/
export default function getComputedStyle(node: HTMLElement, psuedoElement?: string): CSSStyleDeclaration;
esm/isVisible.js 0000644 00000000361 15170147673 0007632 0 ustar 00 /**
* Checks if a given element is currently visible.
*
* @param node the element to check
*/
export default function isVisible(node) {
return node ? !!(node.offsetWidth || node.offsetHeight || node.getClientRects().length) : false;
} esm/contains.js 0000644 00000001040 15170147673 0007512 0 ustar 00 /* eslint-disable no-bitwise, no-cond-assign */
/**
* Checks if an element contains another given element.
*
* @param context the context element
* @param node the element to check
*/
export default function contains(context, node) {
// HTML DOM and SVG DOM may have different support levels,
// so we need to check on context instead of a document root element.
if (context.contains) return context.contains(node);
if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);
} esm/isTransform.js 0000644 00000000316 15170147673 0010210 0 ustar 00 var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
export default function isTransform(value) {
return !!(value && supportedTransforms.test(value));
} esm/addClass.js 0000644 00000001010 15170147673 0007407 0 ustar 00 import hasClass from './hasClass';
/**
* Adds a CSS class to a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function addClass(element, className) {
if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + " " + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + " " + className);
} esm/index.d.ts 0000644 00000007742 15170147673 0007256 0 ustar 00 import activeElement from './activeElement';
import addClass from './addClass';
import addEventListener from './addEventListener';
import animate from './animate';
import { cancel as cancelAnimationFrame, request as requestAnimationFrame } from './animationFrame';
import attribute from './attribute';
import childElements from './childElements';
import clear from './clear';
import closest from './closest';
import contains from './contains';
import childNodes from './childNodes';
import style from './css';
import filter from './filterEventHandler';
import getComputedStyle from './getComputedStyle';
import hasClass from './hasClass';
import height from './height';
import insertAfter from './insertAfter';
import isInput from './isInput';
import isVisible from './isVisible';
import listen from './listen';
import matches from './matches';
import nextUntil from './nextUntil';
import offset from './offset';
import offsetParent from './offsetParent';
import ownerDocument from './ownerDocument';
import ownerWindow from './ownerWindow';
import parents from './parents';
import position from './position';
import prepend from './prepend';
import querySelectorAll from './querySelectorAll';
import remove from './remove';
import removeClass from './removeClass';
import removeEventListener from './removeEventListener';
import scrollbarSize from './scrollbarSize';
import scrollLeft from './scrollLeft';
import scrollParent from './scrollParent';
import scrollTo from './scrollTo';
import scrollTop from './scrollTop';
import siblings from './siblings';
import text from './text';
import toggleClass from './toggleClass';
import transitionEnd from './transitionEnd';
import triggerEvent from './triggerEvent';
import width from './width';
export { addEventListener, removeEventListener, triggerEvent, animate, filter, listen, style, getComputedStyle, attribute, activeElement, ownerDocument, ownerWindow, requestAnimationFrame, cancelAnimationFrame, matches, height, width, offset, offsetParent, position, contains, scrollbarSize, scrollLeft, scrollParent, scrollTo, scrollTop, querySelectorAll, closest, addClass, removeClass, hasClass, toggleClass, transitionEnd, childNodes, childElements, nextUntil, parents, siblings, clear, insertAfter, isInput, isVisible, prepend, remove, text, };
declare const _default: {
addEventListener: typeof addEventListener;
removeEventListener: typeof removeEventListener;
triggerEvent: typeof triggerEvent;
animate: typeof animate;
filter: typeof filter;
listen: typeof listen;
style: typeof style;
getComputedStyle: typeof getComputedStyle;
attribute: typeof attribute;
activeElement: typeof activeElement;
ownerDocument: typeof ownerDocument;
ownerWindow: typeof ownerWindow;
requestAnimationFrame: typeof globalThis.requestAnimationFrame;
cancelAnimationFrame: (id: number) => void;
matches: typeof matches;
height: typeof height;
width: typeof width;
offset: typeof offset;
offsetParent: typeof offsetParent;
position: typeof position;
contains: typeof contains;
scrollbarSize: typeof scrollbarSize;
scrollLeft: {
(node: Element): number;
(node: Element, val: number): undefined;
};
scrollParent: typeof scrollParent;
scrollTo: typeof scrollTo;
scrollTop: {
(node: Element): number;
(node: Element, val: number): undefined;
};
querySelectorAll: typeof querySelectorAll;
closest: typeof closest;
addClass: typeof addClass;
removeClass: typeof removeClass;
hasClass: typeof hasClass;
toggleClass: typeof toggleClass;
transitionEnd: typeof transitionEnd;
childNodes: typeof childNodes;
childElements: typeof childElements;
nextUntil: typeof nextUntil;
parents: typeof parents;
siblings: typeof siblings;
clear: typeof clear;
insertAfter: typeof insertAfter;
isInput: typeof isInput;
isVisible: typeof isVisible;
prepend: typeof prepend;
remove: typeof remove;
text: typeof text;
};
export default _default;
esm/width.d.ts 0000644 00000000330 15170147673 0007250 0 ustar 00 /**
* Returns the width of a given element.
*
* @param node the element
* @param client whether to use `clientWidth` if possible
*/
export default function getWidth(node: HTMLElement, client?: boolean): number;
esm/matches.js 0000644 00000001007 15170147673 0007323 0 ustar 00 var matchesImpl;
/**
* Checks if a given element matches a selector.
*
* @param node the element
* @param selector the selector
*/
export default function matches(node, selector) {
if (!matchesImpl) {
var body = document.body;
var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;
matchesImpl = function matchesImpl(n, s) {
return nativeMatch.call(n, s);
};
}
return matchesImpl(node, selector);
} esm/height.d.ts 0000644 00000000330 15170147673 0007401 0 ustar 00 /**
* Returns the height of a given element.
*
* @param node the element
* @param client whether to use `clientHeight` if possible
*/
export default function height(node: HTMLElement, client?: boolean): number;
esm/prepend.d.ts 0000644 00000000366 15170147673 0007577 0 ustar 00 /**
* Insert a given element as the first child of a parent element.
*
* @param node the element to prepend
* @param parent the parent element
*/
export default function prepend(node: Element | null, parent: Element | null): Element | null;
esm/scrollTo.js 0000644 00000002264 15170147673 0007506 0 ustar 00 /* eslint-disable no-nested-ternary */
import { cancel, request } from './animationFrame';
import height from './height';
import getWindow from './isWindow';
import getOffset from './offset';
import getScrollParent from './scrollParent';
import scrollTop from './scrollTop';
export default function scrollTo(selected, scrollParent) {
var offset = getOffset(selected);
var poff = {
top: 0,
left: 0
};
if (!selected) return undefined;
var list = scrollParent || getScrollParent(selected);
var isWin = getWindow(list);
var listScrollTop = scrollTop(list);
var listHeight = height(list, true);
if (!isWin) poff = getOffset(list);
offset = {
top: offset.top - poff.top,
left: offset.left - poff.left,
height: offset.height,
width: offset.width
};
var selectedHeight = offset.height;
var selectedTop = offset.top + (isWin ? 0 : listScrollTop);
var bottom = selectedTop + selectedHeight;
listScrollTop = listScrollTop > selectedTop ? selectedTop : bottom > listScrollTop + listHeight ? bottom - listHeight : listScrollTop;
var id = request(function () {
return scrollTop(list, listScrollTop);
});
return function () {
return cancel(id);
};
} esm/types.d.ts 0000644 00000000351 15170147673 0007300 0 ustar 00 import * as CSS from 'csstype'
type Styles = keyof CSSStyleDeclaration
export type HyphenProperty = keyof CSS.PropertiesHyphen
export type CamelProperty = keyof CSS.Properties
export type Property = HyphenProperty | CamelProperty
esm/animationFrame.js 0000644 00000002046 15170147673 0010635 0 ustar 00 import canUseDOM from './canUseDOM';
/* https://github.com/component/raf */
var prev = new Date().getTime();
function fallback(fn) {
var curr = new Date().getTime();
var ms = Math.max(0, 16 - (curr - prev));
var handle = setTimeout(fn, ms);
prev = curr;
return handle;
}
var vendors = ['', 'webkit', 'moz', 'o', 'ms'];
var cancelMethod = 'clearTimeout';
var rafImpl = fallback; // eslint-disable-next-line import/no-mutable-exports
var getKey = function getKey(vendor, k) {
return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + "AnimationFrame";
};
if (canUseDOM) {
vendors.some(function (vendor) {
var rafMethod = getKey(vendor, 'request');
if (rafMethod in window) {
cancelMethod = getKey(vendor, 'cancel'); // @ts-ignore
rafImpl = function rafImpl(cb) {
return window[rafMethod](cb);
};
}
return !!rafImpl;
});
}
export var cancel = function cancel(id) {
// @ts-ignore
if (typeof window[cancelMethod] === 'function') window[cancelMethod](id);
};
export var request = rafImpl; esm/removeEventListener.d.ts 0000644 00000000703 15170147673 0012142 0 ustar 00 import { TaggedEventHandler } from './addEventListener';
/**
* A `removeEventListener` ponyfill
*
* @param node the element
* @param eventName the event name
* @param handle the handler
* @param options event options
*/
declare function removeEventListener<K extends keyof HTMLElementEventMap>(node: HTMLElement, eventName: K, handler: TaggedEventHandler<K>, options?: boolean | EventListenerOptions): void;
export default removeEventListener;
esm/activeElement.js 0000644 00000001235 15170147673 0010467 0 ustar 00 import ownerDocument from './ownerDocument';
/**
* Returns the actively focused element safely.
*
* @param doc the document to check
*/
export default function activeElement(doc) {
if (doc === void 0) {
doc = ownerDocument();
}
// Support: IE 9 only
// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
try {
var active = doc.activeElement; // IE11 returns a seemingly empty object in some cases when accessing
// document.activeElement from an <iframe>
if (!active || !active.nodeName) return null;
return active;
} catch (e) {
/* ie throws if no active element */
return doc.body;
}
} esm/scrollParent.js 0000644 00000002042 15170147673 0010347 0 ustar 00 /* eslint-disable no-cond-assign, no-continue */
import css from './css';
import height from './height';
import isDocument from './isDocument';
/**
* Find the first scrollable parent of an element.
*
* @param element Starting element
* @param firstPossible Stop at the first scrollable parent, even if it's not currently scrollable
*/
export default function scrollParent(element, firstPossible) {
var position = css(element, 'position');
var excludeStatic = position === 'absolute';
var ownerDoc = element.ownerDocument;
if (position === 'fixed') return ownerDoc || document; // @ts-ignore
while ((element = element.parentNode) && !isDocument(element)) {
var isStatic = excludeStatic && css(element, 'position') === 'static';
var style = (css(element, 'overflow') || '') + (css(element, 'overflow-y') || '') + css(element, 'overflow-x');
if (isStatic) continue;
if (/(auto|scroll)/.test(style) && (firstPossible || height(element) < element.scrollHeight)) {
return element;
}
}
return ownerDoc || document;
} esm/closest.d.ts 0000644 00000000476 15170147673 0007620 0 ustar 00 /**
* Returns the closest parent element that matches a given selector.
*
* @param node the reference element
* @param selector the selector to match
* @param stopAt stop traversing when this element is found
*/
export default function closest(node: Element, selector: string, stopAt?: Element): Element | null;
esm/isDocument.d.ts 0000644 00000000137 15170147673 0010250 0 ustar 00 export default function isDocument(element: Element | Document | Window): element is Document;
esm/animate.js 0000644 00000004371 15170147673 0007324 0 ustar 00 import css from './css';
import hyphenate from './hyphenate';
import isTransform from './isTransform';
import transitionEnd from './transitionEnd';
var reset = {
transition: '',
'transition-duration': '',
'transition-delay': '',
'transition-timing-function': ''
};
// super lean animate function for transitions
// doesn't support all translations to keep it matching the jquery API
/**
* code in part from: Zepto 1.1.4 | zeptojs.com/license
*/
function _animate(_ref) {
var node = _ref.node,
properties = _ref.properties,
_ref$duration = _ref.duration,
duration = _ref$duration === void 0 ? 200 : _ref$duration,
easing = _ref.easing,
callback = _ref.callback;
var cssProperties = [];
var cssValues = {};
var transforms = '';
Object.keys(properties).forEach(function (key) {
var value = properties[key];
if (isTransform(key)) transforms += key + "(" + value + ") ";else {
cssValues[key] = value;
cssProperties.push(hyphenate(key));
}
});
if (transforms) {
cssValues.transform = transforms;
cssProperties.push('transform');
}
function done(event) {
if (event.target !== event.currentTarget) return;
css(node, reset);
if (callback) callback.call(this, event);
}
if (duration > 0) {
cssValues.transition = cssProperties.join(', ');
cssValues['transition-duration'] = duration / 1000 + "s";
cssValues['transition-delay'] = '0s';
cssValues['transition-timing-function'] = easing || 'linear';
}
var removeListener = transitionEnd(node, done, duration); // eslint-disable-next-line no-unused-expressions
node.clientLeft; // trigger page reflow
css(node, cssValues);
return {
cancel: function cancel() {
removeListener();
css(node, reset);
}
};
}
function animate(nodeOrOptions, properties, duration, easing, callback) {
if (!('nodeType' in nodeOrOptions)) {
return _animate(nodeOrOptions);
}
if (!properties) {
throw new Error('must include properties to animate');
}
if (typeof easing === 'function') {
callback = easing;
easing = '';
}
return _animate({
node: nodeOrOptions,
properties: properties,
duration: duration,
easing: easing,
callback: callback
});
}
export default animate; esm/insertAfter.d.ts 0000644 00000000335 15170147673 0010424 0 ustar 00 /**
* Inserts a node after a given reference node.
*
* @param node the node to insert
* @param refNode the reference node
*/
export default function insertAfter(node: Node | null, refNode: Node | null): Node | null;
esm/matches.d.ts 0000644 00000000302 15170147673 0007554 0 ustar 00 /**
* Checks if a given element matches a selector.
*
* @param node the element
* @param selector the selector
*/
export default function matches(node: Element, selector: string): boolean;
esm/removeClass.js 0000644 00000001305 15170147673 0010163 0 ustar 00 function replaceClassName(origClass, classToRemove) {
return origClass.replace(new RegExp("(^|\\s)" + classToRemove + "(?:\\s|$)", 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
}
/**
* Removes a CSS class from a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function removeClass(element, className) {
if (element.classList) {
element.classList.remove(className);
} else if (typeof element.className === 'string') {
element.className = replaceClassName(element.className, className);
} else {
element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));
}
} esm/camelizeStyle.d.ts 0000644 00000000225 15170147673 0010746 0 ustar 00 import { CamelProperty, Property } from './types';
export default function camelizeStyleName<T extends string = Property>(string: T): CamelProperty;
esm/scrollLeft.js 0000644 00000000354 15170147673 0010014 0 ustar 00 import getScrollAccessor from './getScrollAccessor';
/**
* Gets or sets the scroll left position of a given element.
*
* @param node the element
* @param val the position to set
*/
export default getScrollAccessor('pageXOffset'); esm/position.d.ts 0000644 00000000444 15170147673 0010003 0 ustar 00 /**
* Returns the relative position of a given element.
*
* @param node the element
* @param offsetParent the offset parent
*/
export default function position(node: HTMLElement, offsetParent?: HTMLElement): {
top: number;
left: number;
height: number;
width: number;
};
esm/scrollLeft.d.ts 0000644 00000000405 15170147673 0010245 0 ustar 00 declare const _default: {
(node: Element): number;
(node: Element, val: number): undefined;
};
/**
* Gets or sets the scroll left position of a given element.
*
* @param node the element
* @param val the position to set
*/
export default _default;
esm/ownerDocument.js 0000644 00000000271 15170147673 0010532 0 ustar 00 /**
* Returns the owner document of a given element.
*
* @param node the element
*/
export default function ownerDocument(node) {
return node && node.ownerDocument || document;
} esm/toggleClass.d.ts 0000644 00000000330 15170147673 0010400 0 ustar 00 /**
* Toggles a CSS class on a given element.
*
* @param element the element
* @param className the CSS class name
*/
export default function toggleClass(element: Element | SVGElement, className: string): void;
esm/getComputedStyle.js 0000644 00000000476 15170147673 0011211 0 ustar 00 import ownerWindow from './ownerWindow';
/**
* Returns one or all computed style properties of an element.
*
* @param node the element
* @param psuedoElement the style property
*/
export default function getComputedStyle(node, psuedoElement) {
return ownerWindow(node).getComputedStyle(node, psuedoElement);
} esm/hyphenateStyle.js 0000644 00000000552 15170147673 0010711 0 ustar 00 /**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
*/
import hyphenate from './hyphenate';
var msPattern = /^ms-/;
export default function hyphenateStyleName(string) {
return hyphenate(string).replace(msPattern, '-ms-');
} esm/offsetParent.d.ts 0000644 00000000106 15170147673 0010572 0 ustar 00 export default function offsetParent(node: HTMLElement): HTMLElement;
esm/css.d.ts 0000644 00000000646 15170147673 0006733 0 ustar 00 import * as CSS from 'csstype';
import { CamelProperty, HyphenProperty, Property } from './types';
declare function style(node: HTMLElement, property: Partial<Record<Property, string>>): void;
declare function style<T extends HyphenProperty>(node: HTMLElement, property: T): CSS.PropertiesHyphen[T];
declare function style<T extends CamelProperty>(node: HTMLElement, property: T): CSS.Properties[T];
export default style;
esm/camelize.js 0000644 00000000234 15170147673 0007471 0 ustar 00 var rHyphen = /-(.)/g;
export default function camelize(string) {
return string.replace(rHyphen, function (_, chr) {
return chr.toUpperCase();
});
} esm/collectSiblings.js 0000644 00000000666 15170147673 0011031 0 ustar 00 import matches from './matches';
export default function collectSiblings(node, refNode, selector) {
if (refNode === void 0) {
refNode = null;
}
if (selector === void 0) {
selector = null;
}
var siblings = [];
for (; node; node = node.nextElementSibling) {
if (node !== refNode) {
if (selector && matches(node, selector)) {
break;
}
siblings.push(node);
}
}
return siblings;
} esm/listen.d.ts 0000644 00000000374 15170147673 0007437 0 ustar 00 import { EventHandler } from './addEventListener';
declare function listen<K extends keyof HTMLElementEventMap>(node: HTMLElement, eventName: K, handler: EventHandler<K>, options?: boolean | AddEventListenerOptions): () => void;
export default listen;
offsetParent/package.json 0000644 00000000255 15170147673 0011507 0 ustar 00 {
"name": "dom-helpers/offsetParent",
"private": true,
"main": "../cjs/offsetParent.js",
"module": "../esm/offsetParent.js",
"types": "../esm/offsetParent.d.ts"
}
remove/package.json 0000644 00000000225 15170147673 0010341 0 ustar 00 {
"name": "dom-helpers/remove",
"private": true,
"main": "../cjs/remove.js",
"module": "../esm/remove.js",
"types": "../esm/remove.d.ts"
}
removeClass/package.json 0000644 00000000251 15170147673 0011326 0 ustar 00 {
"name": "dom-helpers/removeClass",
"private": true,
"main": "../cjs/removeClass.js",
"module": "../esm/removeClass.js",
"types": "../esm/removeClass.d.ts"
}
parents/package.json 0000644 00000000231 15170147673 0010515 0 ustar 00 {
"name": "dom-helpers/parents",
"private": true,
"main": "../cjs/parents.js",
"module": "../esm/parents.js",
"types": "../esm/parents.d.ts"
}
ownerWindow/package.json 0000644 00000000251 15170147673 0011365 0 ustar 00 {
"name": "dom-helpers/ownerWindow",
"private": true,
"main": "../cjs/ownerWindow.js",
"module": "../esm/ownerWindow.js",
"types": "../esm/ownerWindow.d.ts"
}
width/package.json 0000644 00000000221 15170147673 0010157 0 ustar 00 {
"name": "dom-helpers/width",
"private": true,
"main": "../cjs/width.js",
"module": "../esm/width.js",
"types": "../esm/width.d.ts"
}
isTransform/package.json 0000644 00000000251 15170147673 0011352 0 ustar 00 {
"name": "dom-helpers/isTransform",
"private": true,
"main": "../cjs/isTransform.js",
"module": "../esm/isTransform.js",
"types": "../esm/isTransform.d.ts"
}