mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-01-12 23:32:55 +01:00
Initial commit
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>
This commit is contained in:
86
packages/noodl-runtime/src/nodes/std-library/condition.js
Normal file
86
packages/noodl-runtime/src/nodes/std-library/condition.js
Normal file
@@ -0,0 +1,86 @@
|
||||
'use strict';
|
||||
|
||||
const ConditionNode = {
|
||||
name: 'Condition',
|
||||
docs: 'https://docs.noodl.net/nodes/utilities/logic/condition',
|
||||
category: 'Logic',
|
||||
initialize: function () {},
|
||||
getInspectInfo() {
|
||||
const condition = this.getInputValue('condition');
|
||||
let value;
|
||||
if (condition === undefined) {
|
||||
value = '[No input]';
|
||||
}
|
||||
value = condition;
|
||||
return [
|
||||
{
|
||||
type: 'value',
|
||||
value
|
||||
}
|
||||
];
|
||||
},
|
||||
inputs: {
|
||||
condition: {
|
||||
type: 'boolean',
|
||||
displayName: 'Condition',
|
||||
group: 'General',
|
||||
set(value) {
|
||||
if (!this.isInputConnected('eval')) {
|
||||
// Evaluate right away
|
||||
this.scheduleEvaluate();
|
||||
}
|
||||
}
|
||||
},
|
||||
eval: {
|
||||
type: 'signal',
|
||||
displayName: 'Evaluate',
|
||||
group: 'Actions',
|
||||
valueChangedToTrue() {
|
||||
this.scheduleEvaluate();
|
||||
}
|
||||
}
|
||||
},
|
||||
outputs: {
|
||||
ontrue: {
|
||||
type: 'signal',
|
||||
displayName: 'On True',
|
||||
group: 'Events'
|
||||
},
|
||||
onfalse: {
|
||||
type: 'signal',
|
||||
displayName: 'On False',
|
||||
group: 'Events'
|
||||
},
|
||||
result: {
|
||||
type: 'boolean',
|
||||
displayName: 'Is True',
|
||||
group: 'Booleans',
|
||||
get() {
|
||||
return !!this.getInputValue('condition');
|
||||
}
|
||||
},
|
||||
isfalse: {
|
||||
type: 'boolean',
|
||||
displayName: 'Is False',
|
||||
group: 'Booleans',
|
||||
get() {
|
||||
return !this.getInputValue('condition');
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
scheduleEvaluate() {
|
||||
this.scheduleAfterInputsHaveUpdated(() => {
|
||||
this.flagOutputDirty('result');
|
||||
this.flagOutputDirty('isfalse');
|
||||
|
||||
const condition = this.getInputValue('condition');
|
||||
this.sendSignalOnOutput(condition ? 'ontrue' : 'onfalse');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
node: ConditionNode
|
||||
};
|
||||
Reference in New Issue
Block a user