From 03c19d8a0148a4f880cd7c53fc96573229a00417 Mon Sep 17 00:00:00 2001 From: Svornost <11434-svornost@users.noreply.gitgud.io> Date: Sun, 17 Jan 2021 01:20:53 -0800 Subject: [PATCH] When comparing a plain number to a data target in either target editor, strip the condition from the target. --- src/js/rulesAssistantOptions.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index 61fbc7a9ad2..3e03234e13f 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -808,6 +808,16 @@ App.RA.options = (function() { const v = this.parse(this.numEditor.value); return v === null ? null : App.RA.makeTarget(this.opSelector.value, v); } + + dataEqual(left, right) { + // when comparing a plain number to a target, assume equal conditions + const xor = (a, b) => (a) ? !(b) : !!(b); + if (xor(_.isNumber(left), _.isNumber(right))) { + left = _.isNil(left.val) ? left : left.val; + right = _.isNil(right.val) ? right : right.val; + } + return _.isEqual(left, right); + } } class NumericRangeEditor extends EditorWithShortcuts { @@ -966,6 +976,16 @@ App.RA.options = (function() { const v = isNaN(n) ? this.numEditor.value : Math.floor(n); // return numEditor.value as number if !NaN (should result in realValue being of number) return v === null || v === "" ? null : { cond: this.opSelector.value, val: v }; } + + dataEqual(left, right) { + // when comparing a plain number to a target, assume equal conditions + const xor = (a, b) => (a) ? !(b) : !!(b); + if (xor(_.isNumber(left), _.isNumber(right))) { + left = _.isNil(left.val) ? left : left.val; + right = _.isNil(right.val) ? right : right.val; + } + return _.isEqual(left, right); + } } // a way to organize lists with too many elements in subsections -- GitLab