diff --git a/src/main.mjs b/src/main.mjs index 62f5fe7..2977bd2 100644 --- a/src/main.mjs +++ b/src/main.mjs @@ -97,6 +97,22 @@ Hooks.once("init", async function() { return array.toSorted((a, b) => a.sort - b.sort); } }); + + Handlebars.registerHelper({ + DSA41_input: (field_name, options) => { + let fields = field_name.startsWith("system.") ? options.data.root.document.system.schema.fields : options.data.root.document.schema.fields; + let field = fields[field_name.replace(/^(system\.)/, "")]; + + if (!field) { + console.error("Non-existent data field provided to {{DSA4_input}} handlebars helper."); + return Handlebars.SafeString(""); + } + + const value = foundry.utils.getProperty(options.data.root.document, field_name); + const input = field.toInput({ localize: true, value: value, ...options.hash }); + return new Handlebars.SafeString(input.outerHTML); + } + }); await loadTemplates({ "editable-input": "systems/dsa-4th-edition/src/EditableInput.hbs",