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:
Michael Cartner
2024-01-26 11:52:55 +01:00
commit b9c60b07dc
2789 changed files with 868795 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
'use strict';
const Switch = {
name: 'Switch',
docs: 'https://docs.noodl.net/nodes/logic/switch',
category: 'Logic',
initialize: function () {
this._internal.state = false;
this._internal.initialized = false;
},
getInspectInfo() {
return this._internal.state;
},
inputs: {
on: {
displayName: 'On',
group: 'Change State',
valueChangedToTrue: function () {
if (this._internal.state === true) {
return;
}
this._internal.state = true;
this.flagOutputDirty('state');
this.emitSignals();
}
},
off: {
displayName: 'Off',
group: 'Change State',
valueChangedToTrue: function () {
if (this._internal.state === false) {
return;
}
this._internal.state = false;
this.flagOutputDirty('state');
this.emitSignals();
}
},
flip: {
displayName: 'Flip',
group: 'Change State',
valueChangedToTrue: function () {
this._internal.state = !this._internal.state;
this.flagOutputDirty('state');
this.emitSignals();
}
},
onFromStart: {
type: 'boolean',
displayName: 'State',
group: 'General',
default: false,
set: function (value) {
this._internal.state = !!value;
this.flagOutputDirty('state');
this.emitSignals();
}
}
},
outputs: {
state: {
type: 'boolean',
displayName: 'Current State',
getter: function () {
return this._internal.state;
}
},
switchedToOn: {
displayName: 'Switched To On',
type: 'signal',
group: 'Signals'
},
switchedToOff: {
displayName: 'Switched To Off',
type: 'signal',
group: 'Signals'
}
},
prototypeExtensions: {
emitSignals: function () {
if (this._internal.state === true) {
this.sendSignalOnOutput('switchedToOn');
} else {
this.sendSignalOnOutput('switchedToOff');
}
}
}
};
module.exports = {
node: Switch
};