From dc3697508304a7320d29b7ca308c24f4ac31693b Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Fri, 12 Apr 2024 11:02:15 +0100 Subject: [PATCH] Update range node to support Property In/Out --- .../nodes/core/function/16-range.html | 20 +++++++++++++++---- .../@node-red/nodes/core/function/16-range.js | 3 ++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/function/16-range.html b/packages/node_modules/@node-red/nodes/core/function/16-range.html index ebf8340f8..d3a39f134 100644 --- a/packages/node_modules/@node-red/nodes/core/function/16-range.html +++ b/packages/node_modules/@node-red/nodes/core/function/16-range.html @@ -1,7 +1,11 @@ @@ -57,9 +61,13 @@ action: {value:"scale"}, round: {value:false}, property: {value:"payload",required:true, - label:RED._("node-red:common.label.property"), + label:RED._("node-red:common.label.propertyIn"), validate: RED.validators.typedInput({ type: 'msg', allowBlank: true }) }, + propertyOut: {value:"payload",required:true, + validate: RED.validators.typedInput({ type: 'msg', allowUndefined: true}), + label:RED._("node-red:common.label.propertyOut")}, + name: {value:""} }, inputs: 1, @@ -77,6 +85,10 @@ $("#node-input-property").val("payload"); } $("#node-input-property").typedInput({default:'msg',types:['msg']}); + if (this.propertyOut === undefined) { + $("#node-input-propertyOut").val("payload"); + } + $("#node-input-propertyOut").typedInput({default:'msg',types:['msg']}); } }); diff --git a/packages/node_modules/@node-red/nodes/core/function/16-range.js b/packages/node_modules/@node-red/nodes/core/function/16-range.js index 61ffd53fb..efd72db9d 100644 --- a/packages/node_modules/@node-red/nodes/core/function/16-range.js +++ b/packages/node_modules/@node-red/nodes/core/function/16-range.js @@ -25,6 +25,7 @@ module.exports = function(RED) { this.minout = Number(n.minout); this.maxout = Number(n.maxout); this.property = n.property||"payload"; + this.propertyOut = n.propertyOut||this.property; var node = this; this.on('input', function (msg, send, done) { @@ -46,7 +47,7 @@ module.exports = function(RED) { } value = ((n - node.minin) / (node.maxin - node.minin) * (node.maxout - node.minout)) + node.minout; if (node.round) { value = Math.round(value); } - RED.util.setMessageProperty(msg,node.property,value); + RED.util.setMessageProperty(msg,node.propertyOut,value); send(msg); } else { node.log(RED._("range.errors.notnumber")+": "+value); }