Skip to content

Commit

Permalink
Fixed #14319
Browse files Browse the repository at this point in the history
  • Loading branch information
cetincakiroglu committed Jan 10, 2024
1 parent 94a19bf commit b61fa9c
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/app/components/dropdown/dropdown.ts
Original file line number Diff line number Diff line change
Expand Up @@ -693,7 +693,9 @@ export class Dropdown implements OnInit, AfterViewInit, AfterContentInit, AfterV
return options;
}
set options(val: any[] | undefined) {
this._options.set(val);
if (!ObjectUtils.deepEquals(val, this._options())) {
this._options.set(val);
}
}
/**
* Callback to invoke when value of dropdown changes.
Expand Down
51 changes: 51 additions & 0 deletions src/app/components/utils/objectutils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,4 +226,55 @@ export class ObjectUtils {

return item;
}

public static deepEquals(a, b) {
if (a === b) return true;

if (a && b && typeof a == 'object' && typeof b == 'object') {
var arrA = Array.isArray(a),
arrB = Array.isArray(b),
i,
length,
key;

if (arrA && arrB) {
length = a.length;
if (length != b.length) return false;
for (i = length; i-- !== 0; ) if (!this.deepEquals(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 = Object.keys(a);

length = keys.length;

if (length !== Object.keys(b).length) return false;

for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;

for (i = length; i-- !== 0; ) {
key = keys[i];
if (!this.deepEquals(a[key], b[key])) return false;
}

return true;
}

return a !== a && b !== b;
}
}

0 comments on commit b61fa9c

Please sign in to comment.