mirror of
https://github.com/noodlapp/noodl.git
synced 2026-01-13 15:52:54 +01:00
Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com> Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com> Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com> Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com> Co-Authored-By: Johan <4934465+joolsus@users.noreply.github.com> Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com> Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
55 lines
1.1 KiB
JavaScript
55 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const AndNode = {
|
|
name: 'And',
|
|
docs: 'https://docs.noodl.net/nodes/logic/and',
|
|
category: 'Logic',
|
|
initialize: function () {
|
|
this._internal.inputs = [];
|
|
},
|
|
getInspectInfo() {
|
|
return and(this._internal.inputs);
|
|
},
|
|
numberedInputs: {
|
|
input: {
|
|
displayPrefix: 'Input',
|
|
type: 'boolean',
|
|
createSetter(index) {
|
|
return function (value) {
|
|
value = value ? true : false;
|
|
|
|
if (this._internal.inputs[index] === value) {
|
|
return;
|
|
}
|
|
|
|
this._internal.inputs[index] = value;
|
|
const result = and(this._internal.inputs);
|
|
|
|
if (this._internal.result !== result) {
|
|
this._internal.result = result;
|
|
this.flagOutputDirty('result');
|
|
}
|
|
};
|
|
}
|
|
}
|
|
},
|
|
outputs: {
|
|
result: {
|
|
type: 'boolean',
|
|
displayName: 'Result',
|
|
get() {
|
|
return this._internal.result;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
node: AndNode
|
|
};
|
|
|
|
function and(values) {
|
|
//if none are false, then return true
|
|
return values.length > 0 && values.some((v) => !v) === false;
|
|
}
|