|
|
@@ -1,6 +1,7 @@ |
|
|
|
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors |
|
|
|
// MIT License. See license.txt |
|
|
|
|
|
|
|
import deep_equal from "fast-deep-equal"; |
|
|
|
frappe.provide('frappe.utils'); |
|
|
|
|
|
|
|
Object.assign(frappe.utils, { |
|
|
@@ -685,65 +686,8 @@ Object.assign(frappe.utils, { |
|
|
|
}, |
|
|
|
|
|
|
|
deep_equal(a, b) { |
|
|
|
// https://github.com/epoberezkin/fast-deep-equal/blob/master/index.js |
|
|
|
/* eslint-disable */ |
|
|
|
var isArray = Array.isArray; |
|
|
|
var keyList = Object.keys; |
|
|
|
var hasProp = Object.prototype.hasOwnProperty; |
|
|
|
|
|
|
|
function equal(a, b) { |
|
|
|
if (a === b) return true; |
|
|
|
|
|
|
|
if (a && b && typeof a == 'object' && typeof b == 'object') { |
|
|
|
var arrA = isArray(a) |
|
|
|
, arrB = isArray(b) |
|
|
|
, i |
|
|
|
, length |
|
|
|
, key; |
|
|
|
|
|
|
|
if (arrA && arrB) { |
|
|
|
length = a.length; |
|
|
|
if (length != b.length) return false; |
|
|
|
for (i = length; i-- !== 0;) |
|
|
|
if (!equal(a[i], b[i])) return false; |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
if (arrA != arrB) return false; |
|
|
|
|
|
|
|
var dateA = a instanceof Date |
|
|
|
, dateB = b instanceof Date; |
|
|
|
if (dateA != dateB) return false; |
|
|
|
if (dateA && dateB) return a.getTime() == b.getTime(); |
|
|
|
|
|
|
|
var regexpA = a instanceof RegExp |
|
|
|
, regexpB = b instanceof RegExp; |
|
|
|
if (regexpA != regexpB) return false; |
|
|
|
if (regexpA && regexpB) return a.toString() == b.toString(); |
|
|
|
|
|
|
|
var keys = keyList(a); |
|
|
|
length = keys.length; |
|
|
|
|
|
|
|
if (length !== keyList(b).length) |
|
|
|
return false; |
|
|
|
|
|
|
|
for (i = length; i-- !== 0;) |
|
|
|
if (!hasProp.call(b, keys[i])) return false; |
|
|
|
|
|
|
|
for (i = length; i-- !== 0;) { |
|
|
|
key = keys[i]; |
|
|
|
if (!equal(a[key], b[key])) return false; |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
return a!==a && b!==b; |
|
|
|
}; |
|
|
|
|
|
|
|
return equal(a, b) |
|
|
|
/* eslint-enable */ |
|
|
|
}, |
|
|
|
return deep_equal(a, b); |
|
|
|
}, |
|
|
|
|
|
|
|
get_points(points) { |
|
|
|
return `<span class='bold' style="color: ${points >= 0 ? '#45A163': '#e42121'}"> |
|
|
|