UNPKG

react-autosuggest

Version:

WAI-ARIA compliant React autosuggest component

61 lines (45 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = compareObjects; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function compareObjects(objA, objB) { var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; if (objA === objB) { return false; } var aKeys = Object.keys(objA); var bKeys = Object.keys(objB); if (aKeys.length !== bKeys.length) { return true; } var keysMap = {}; var i, len; for (i = 0, len = keys.length; i < len; i++) { keysMap[keys[i]] = true; } for (i = 0, len = aKeys.length; i < len; i++) { var key = aKeys[i]; var aValue = objA[key]; var bValue = objB[key]; if (aValue === bValue) { continue; } if (!keysMap[key] || aValue === null || bValue === null || _typeof(aValue) !== 'object' || _typeof(bValue) !== 'object') { return true; } var aValueKeys = Object.keys(aValue); var bValueKeys = Object.keys(bValue); if (aValueKeys.length !== bValueKeys.length) { return true; } for (var n = 0, length = aValueKeys.length; n < length; n++) { var aValueKey = aValueKeys[n]; if (aValue[aValueKey] !== bValue[aValueKey]) { return true; } } } return false; }