UNPKG

@evermade/overflow-slider

Version:

Accessible slider that is powered by overflow: auto.

47 lines (36 loc) 1.31 kB
function generateId( prefix : string, i = 1 ): string { const id = `${prefix}-${i}`; if ( document.getElementById( id ) ) { return generateId( prefix, i + 1 ); } return id; } function objectsAreEqual(obj1: Record<string, unknown>, obj2: Record<string, unknown>): boolean { const keys1 = Object.keys(obj1); const keys2 = Object.keys(obj2); if (keys1.length !== keys2.length) { return false; } for (let key of keys1) { // Use `Object.prototype.hasOwnProperty.call` for better safety if (!Object.prototype.hasOwnProperty.call(obj2, key) || obj1[key] !== obj2[key]) { return false; } } return true; } function getOutermostChildrenEdgeMarginSum( el: HTMLElement ): number { if (el.children.length === 0) { return 0; } // get the first child and its left margin const firstChild = el.children[0]; const firstChildStyle = getComputedStyle(firstChild); const firstChildMarginLeft = parseFloat(firstChildStyle.marginLeft); // Get the last child and its right margin const lastChild = el.children[el.children.length - 1]; const lastChildStyle = getComputedStyle(lastChild); const lastChildMarginRight = parseFloat(lastChildStyle.marginRight); return firstChildMarginLeft + lastChildMarginRight; } export { generateId, objectsAreEqual, getOutermostChildrenEdgeMarginSum };