* @param {Parameter} parameter * @returns {string | HTMLElement}
(parameter)
| 330 | * @returns {string | HTMLElement} |
| 331 | */ |
| 332 | function getParameterElement(parameter) { |
| 333 | switch (parameter.type) { |
| 334 | case ParameterType.checkbox: |
| 335 | var is_checked = parameter.default ? " checked" : "" |
| 336 | return `<input id="${parameter.id}" name="${parameter.id}"${is_checked} type="checkbox">` |
| 337 | case ParameterType.select: |
| 338 | case ParameterType.select_multiple: |
| 339 | var options = (parameter.options || []) |
| 340 | .map((option) => `<option value="${option.value}">${option.label}</option>`) |
| 341 | .join("") |
| 342 | var multiple = parameter.type == ParameterType.select_multiple ? "multiple" : "" |
| 343 | return `<select id="${parameter.id}" name="${parameter.id}" ${multiple}>${options}</select>` |
| 344 | case ParameterType.slider: |
| 345 | return `<input id="${parameter.id}" name="${parameter.id}" class="editor-slider" type="range" value="${parameter.default}" min="${parameter.slider_min}" max="${parameter.slider_max}" oninput="sliderUpdate(event)"> <input id="${parameter.id}-input" name="${parameter.id}-input" size="4" value="${parameter.default}" pattern="^[0-9\.]+$" onkeypress="preventNonNumericalInput(event)" oninput="sliderUpdate(event)"> ${parameter.slider_unit}` |
| 346 | case ParameterType.custom: |
| 347 | return parameter.render(parameter) |
| 348 | default: |
| 349 | console.error(`Invalid type ${parameter.type} for parameter ${parameter.id}`) |
| 350 | return "ERROR: Invalid Type" |
| 351 | } |
| 352 | } |
| 353 | |
| 354 | /** |
| 355 | * fill in the system settings popup table |