From 124429d004d2aebfc21ffc98c0ce917c3bb5837e Mon Sep 17 00:00:00 2001
From: MouseOfLight <4144-MouseOfLight@users.noreply.gitgud.io>
Date: Sun, 8 Dec 2019 16:10:05 -0800
Subject: [PATCH] A couple StringEditor derived classes that call
 updateSelected manually now suppress it in StringEditor

---
 src/js/rulesAssistantOptions.js | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 3d839b8b7be..1fa0880e688 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -350,6 +350,9 @@ window.rulesAssistantOptions = (function() {
 				this.onchange(this.getData());
 			}
 		}
+		dataEqual(left, right) {
+			return _.isEqual(left, right);
+		}
 		updateSelected() {
 			const dataValue = this.getData();
 			let selected;
@@ -357,9 +360,9 @@ window.rulesAssistantOptions = (function() {
 				selected = this.children.filter(listItem => listItem.data == null);
 			}
 			else {
-				selected = this.children.filter(listItem => _.isEqual(listItem.data, dataValue));
+				selected = this.children.filter(listItem => this.dataEqual(listItem.data, dataValue));
 			}
-			if (selected.length > 1) throw Error(`Multiple shortcuts matched ${JSON.stringify(dataValue)}`);
+			if (selected.length > 1) { debugger; throw Error(`Multiple shortcuts matched ${JSON.stringify(dataValue)}`); }
 			if (selected.length == 1) {
 				const listItem = selected[0];
 				listItem.select(false);
@@ -749,6 +752,16 @@ window.rulesAssistantOptions = (function() {
 			const v = this.parse(this.numEditor.value);
 			return v === null ? null : App.RA.makeTarget(this.opSelector.value, v);
 		}
+
+		dataEqual(left, right) {
+			debugger;
+			if (left == null && right == null) { return true;  }
+			if (left == null || right == null) { return false; }
+			//ignore the operator
+			if(_.isObject(left )) { left  = left .val; }
+			if(_.isObject(right)) { right = right.val; }
+			return left == right;
+		}
 	}
 
 	class NumericRangeEditor extends EditorWithShortcuts {
@@ -1273,6 +1286,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+
 	class RangeEditor extends Element {
 		render(fn, data) {
 			const elem = document.createElement("div");
-- 
GitLab