Allow prompt to use number input
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { app } from "../../../scripts/app.js";
|
||||
|
||||
const id = "pysssss.UseNumberInputPrompt";
|
||||
const ext = {
|
||||
name: id,
|
||||
async setup(app) {
|
||||
const prompt = LGraphCanvas.prototype.prompt;
|
||||
|
||||
const setting = app.ui.settings.addSetting({
|
||||
id,
|
||||
name: "🐍 Use number input on value entry",
|
||||
defaultValue: false,
|
||||
type: "boolean",
|
||||
});
|
||||
|
||||
LGraphCanvas.prototype.prompt = function () {
|
||||
const dialog = prompt.apply(this, arguments);
|
||||
if (setting.value && typeof arguments[1] === "number") {
|
||||
// If this should be a number then update the imput
|
||||
const input = dialog.querySelector("input");
|
||||
input.type = "number";
|
||||
|
||||
// Add constraints
|
||||
const widget = app.canvas.node_widget?.[1];
|
||||
if (widget?.options) {
|
||||
for (const prop of ["min", "max", "step"]) {
|
||||
if (widget.options[prop]) input[prop] = widget.options[prop];
|
||||
}
|
||||
}
|
||||
}
|
||||
return dialog;
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
app.registerExtension(ext);
|
||||
Reference in New Issue
Block a user