import type { NodeDef } from '../../NodeRegistry'; import { asNumber } from '../../values'; import { exec, keyParam } from '../shared'; export const OnKeyDown: NodeDef = { type: 'OnKeyDown', label: 'On key down', category: 'event', description: 'Runs when the key is pressed, and again while it stays held if a repeat is set.', inputs: [], outputs: [exec()], params: [ keyParam, { key: 'repeatAfter', label: 'Repeat after (ms)', kind: 'number', default: 0, min: 0, step: 50 }, { key: 'repeatInterval', label: 'Repeat interval (ms)', kind: 'number', default: 0, min: 0, step: 10 }, ], // Both rows go together: with no delay there is no repeat, so the interval is not in play either. hiddenParams: (params) => (asNumber(params.repeatAfter ?? 0) > 0 ? [] : ['repeatAfter', 'repeatInterval']), };