mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-01-11 06:42:57 +01:00
99 lines
2.1 KiB
JavaScript
99 lines
2.1 KiB
JavaScript
'use strict';
|
|
|
|
const Switch = {
|
|
name: 'Switch',
|
|
docs: 'https://docs.noodl.net/nodes/logic/switch',
|
|
category: 'Logic',
|
|
initialize() {
|
|
this._internal.state = false;
|
|
this._internal.initialized = false;
|
|
},
|
|
getInspectInfo() {
|
|
return this._internal.state;
|
|
},
|
|
inputs: {
|
|
on: {
|
|
displayName: 'On',
|
|
group: 'Change State',
|
|
valueChangedToTrue() {
|
|
if (this._internal.state === true) {
|
|
return;
|
|
}
|
|
this._internal.state = true;
|
|
this.flagOutputDirty('state');
|
|
this.emitSignals();
|
|
}
|
|
},
|
|
off: {
|
|
displayName: 'Off',
|
|
group: 'Change State',
|
|
valueChangedToTrue() {
|
|
if (this._internal.state === false) {
|
|
return;
|
|
}
|
|
this._internal.state = false;
|
|
this.flagOutputDirty('state');
|
|
this.emitSignals();
|
|
}
|
|
},
|
|
flip: {
|
|
displayName: 'Flip',
|
|
group: 'Change State',
|
|
valueChangedToTrue() {
|
|
this._internal.state = !this._internal.state;
|
|
this.flagOutputDirty('state');
|
|
this.emitSignals();
|
|
}
|
|
},
|
|
onFromStart: {
|
|
type: 'boolean',
|
|
displayName: 'State',
|
|
group: 'General',
|
|
default: false,
|
|
set(value) {
|
|
this._internal.state = !!value;
|
|
this.flagOutputDirty('state');
|
|
this.emitSignals();
|
|
}
|
|
}
|
|
},
|
|
outputs: {
|
|
state: {
|
|
type: 'boolean',
|
|
displayName: 'Current State',
|
|
getter() {
|
|
return this._internal.state;
|
|
}
|
|
},
|
|
switched: {
|
|
displayName: 'Switched',
|
|
type: 'signal',
|
|
group: 'Signals'
|
|
},
|
|
switchedToOn: {
|
|
displayName: 'Switched To On',
|
|
type: 'signal',
|
|
group: 'Signals'
|
|
},
|
|
switchedToOff: {
|
|
displayName: 'Switched To Off',
|
|
type: 'signal',
|
|
group: 'Signals'
|
|
}
|
|
},
|
|
prototypeExtensions: {
|
|
emitSignals() {
|
|
if (this._internal.state === true) {
|
|
this.sendSignalOnOutput('switchedToOn');
|
|
} else {
|
|
this.sendSignalOnOutput('switchedToOff');
|
|
}
|
|
this.sendSignalOnOutput('switched');
|
|
}
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
node: Switch
|
|
};
|