12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import isHTMLElement from './isElement';
- /**
- *
- * @param {HTMLElement} parentNode
- * @param {...HTMLElement} nodes
- *
- * @param {HTMLElement}
- */
- export function append(parentNode: HTMLElement, ...nodes: HTMLElement[]) {
- for (const node of nodes) {
- parentNode.appendChild(node);
- }
- return parentNode;
- }
- /**
- *
- * @param {HTMLElement} parentNode
- * @param {...HTMLElement} nodes
- *
- * @param {HTMLElement}
- */
- export function prepend(parentNode: HTMLElement, ...nodes: HTMLElement[]) {
- if (parentNode.children && parentNode.children.length) {
- const firstNode = parentNode.children[0];
- for (const node of nodes) {
- parentNode.insertBefore(node, firstNode);
- }
- } else {
- append(parentNode, ...nodes);
- }
- return parentNode;
- }
- /**
- *
- * @param {DOMRect} domRect
- * @returns {object|undefined}
- */
- export function convertDOMRectToObject(domRect: DOMRect): DOMRectLikeType {
- if (domRect && typeof domRect === 'object') {
- if (typeof domRect.toJSON === 'function') {
- return domRect.toJSON();
- } else {
- const keys = ['left', 'top', 'right', 'bottom', 'width', 'height'] as const;
- return keys.reduce((obj, key) => {
- obj[key] = domRect[key];
- return obj;
- }, {} as DOMRectLikeType);
- }
- }
- return undefined;
- }
- export type DOMRectLikeType = {
- [key in 'left' | 'top' | 'right' | 'bottom' | 'width' | 'height']?: number;
- };
- export { isHTMLElement };
|