Skip to content

Commit 3a11062

Browse files
committed
more complete diffing of config
thank you airfoil.json for including a config arg
1 parent 57c7d6c commit 3a11062

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

src/plot_api/plot_api.js

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2557,14 +2557,36 @@ function diffConfig(oldConfig, newConfig) {
25572557
var key;
25582558

25592559
for(key in oldConfig) {
2560-
if(key !== 'edits') {
2561-
if(oldConfig[key] !== newConfig[key]) return true;
2560+
var oldVal = oldConfig[key];
2561+
var newVal = newConfig[key];
2562+
if(oldVal !== newVal) {
2563+
if(Lib.isPlainObject(oldVal) && Lib.isPlainObject(newVal)) {
2564+
if(diffConfig(oldVal, newVal)) {
2565+
return true;
2566+
}
2567+
}
2568+
else if(Array.isArray(oldVal) && Array.isArray(newVal)) {
2569+
if(oldVal.length !== newVal.length) {
2570+
return true;
2571+
}
2572+
for(var i = 0; i < oldVal.length; i++) {
2573+
if(oldVal[i] !== newVal[i]) {
2574+
if(Lib.isPlainObject(oldVal[i]) && Lib.isPlainObject(newVal[i])) {
2575+
if(diffConfig(oldVal[i], newVal[i])) {
2576+
return true;
2577+
}
2578+
}
2579+
else {
2580+
return true;
2581+
}
2582+
}
2583+
}
2584+
}
2585+
else {
2586+
return true;
2587+
}
25622588
}
25632589
}
2564-
2565-
for(key in oldConfig.edits) {
2566-
if(oldConfig.edits[key] !== newConfig.edits[key]) return true;
2567-
}
25682590
}
25692591

25702592
/**

0 commit comments

Comments
 (0)