UNPKG

@zohodesk/components

Version:

Dot UI is a customizable React component library built to deliver a clean, accessible, and developer-friendly UI experience. It offers a growing set of reusable components designed to align with modern design systems and streamline application development

55 lines (41 loc) 1.85 kB
/*eslint-disable */ export const clone = (a, b, c, d, e, f) => { return Object.assign(a, b, c, d, e, f); }; export const extract = (obj, keys, target) => { target = target || {}; for (var i in obj) { if (keys.indexOf(i) < 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }; export const omit = (obj, keys, target) => { target = target || {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }; export const equals = (x, y) => { if (x === y) return true; // if both x and y are null or undefined and exactly the same if (x == null && y != null || x != null && y == null) return false; //break if not same null or undefined if (!(x instanceof Object) || !(y instanceof Object)) return false; // if they are not strictly equal, they both need to be Objects if (x.constructor !== y.constructor) return false; // they must have the exact same prototype chain, the closest we can do is // test there constructor. for (var p in x) { if (!x.hasOwnProperty(p)) continue; // other properties were tested using x.constructor === y.constructor if (!y.hasOwnProperty(p)) return false; // allows to compare x[ p ] and y[ p ] when set to undefined if (x[p] === y[p]) continue; // if they have the same strict value or identity then they are equal if (typeof x[p] !== 'object') return false; // Numbers, Strings, Functions, Booleans must be strictly equal if (!equals(x[p], y[p])) return false; // Objects and Arrays must be tested recursively } for (p in y) { if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) return false; // allows x[ p ] to be set to undefined } return true; }; /*eslint-enable */