UNPKG

golden-layout

Version:

A multi-screen javascript Layout manager

147 lines 4.28 kB
/** @internal */ export function getQueryStringParam(key) { const matches = location.search.match(new RegExp(key + '=([^&]*)')); return matches ? matches[1] : null; } /** @internal */ export function numberToPixels(value) { return value.toString(10) + 'px'; } /** @internal */ export function pixelsToNumber(value) { const numberStr = value.replace("px", ""); return parseFloat(numberStr); } /** @internal */ export function getElementWidth(element) { return element.offsetWidth; } /** @internal */ export function setElementWidth(element, width) { const widthAsPixels = numberToPixels(width); element.style.width = widthAsPixels; } /** @internal */ export function getElementHeight(element) { return element.offsetHeight; } /** @internal */ export function setElementHeight(element, height) { const heightAsPixels = numberToPixels(height); element.style.height = heightAsPixels; } /** @internal */ export function getElementWidthAndHeight(element) { return { width: element.offsetWidth, height: element.offsetHeight, }; } /** @internal */ export function setElementDisplayVisibility(element, visible) { if (visible) { element.style.display = ''; } else { element.style.display = 'none'; } } /** * Replacement for JQuery $.extend(target, obj) * @internal */ export function extend(target, obj) { for (const key in obj) { if (obj.hasOwnProperty(key)) { target[key] = obj[key]; } } return target; } /** * Replacement for JQuery $.extend(true, target, obj) * @internal */ export function deepExtend(target, obj) { if (obj !== undefined) { for (const key in obj) { if (obj.hasOwnProperty(key)) { const value = obj[key]; const existingTarget = target[key]; target[key] = deepExtendValue(existingTarget, value); } } } return target; } /** @internal */ export function deepExtendValue(existingTarget, value) { if (typeof value !== 'object') { return value; } else { if (Array.isArray(value)) { const length = value.length; const targetArray = new Array(length); for (let i = 0; i < length; i++) { const element = value[i]; targetArray[i] = deepExtendValue({}, element); } return targetArray; } else { if (value === null) { return null; } else { const valueObj = value; if (existingTarget === undefined) { return deepExtend({}, valueObj); // overwrite } else { if (typeof existingTarget !== "object") { return deepExtend({}, valueObj); // overwrite } else { if (Array.isArray(existingTarget)) { return deepExtend({}, valueObj); // overwrite } else { if (existingTarget === null) { return deepExtend({}, valueObj); // overwrite } else { const existingTargetObj = existingTarget; return deepExtend(existingTargetObj, valueObj); // merge } } } } } } } } /** @internal */ export function removeFromArray(item, array) { const index = array.indexOf(item); if (index === -1) { throw new Error('Can\'t remove item from array. Item is not in the array'); } array.splice(index, 1); } /** @internal */ export function getUniqueId() { return (Math.random() * 1000000000000000) .toString(36) .replace('.', ''); } /** * Removes html tags from a string * @returns input without tags * @internal */ export function stripTags(input) { const strippedInput = input.replace(/(<([^>]+)>)/ig, ''); return strippedInput.trim(); } //# sourceMappingURL=utils.js.map