import { CharacterSheetContext, getSetting, ModuleSetting, QuickInsert, setSetting } from './quick-insert.js'; import './vendor.js'; // D&D 5th edition integration const SYSTEM_NAME = "dnd5e"; const defaultSheetFilters = { class: "dnd5e.classes", feat: "dnd5e.classfeatures", "npc.feat": "dnd5e.monsterfeatures", spell: "dnd5e.spells", weapon: "dnd5e.items", equipment: "dnd5e.items", consumable: "dnd5e.items", backpack: "dnd5e.items", tool: "dnd5e.items", loot: "dnd5e.items", }; class Dnd5eSheetContext extends CharacterSheetContext { constructor(documentSheet, anchor, sheetType, insertType) { super(documentSheet, anchor); if (sheetType && insertType) { const sheetFilters = getSetting(ModuleSetting.FILTERS_SHEETS).baseFilters; this.filter = sheetFilters[`${sheetType}.${insertType}`] || sheetFilters[insertType]; } } } function sheet5eRenderHook(app, sheetType) { if (app.element.find(".quick-insert-link").length > 0) { return; } const link = ``; app.element.find("a.item-create").each((i, el) => { const linkEl = $(link); $(el).after(linkEl); const type = el.dataset.type; linkEl.on("click", () => { const context = new Dnd5eSheetContext(app, linkEl, sheetType, type); QuickInsert.open(context); }); }); } function init() { if (game.user?.isGM) { const customFilters = getSetting(ModuleSetting.FILTERS_SHEETS).baseFilters; setSetting(ModuleSetting.FILTERS_SHEETS, { baseFilters: { ...defaultSheetFilters, ...customFilters, }, }); } Hooks.on("renderActorSheet5eCharacter", (app) => { getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) && sheet5eRenderHook(app, "character"); }); Hooks.on("renderActorSheet5eNPC", (app) => { getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) && sheet5eRenderHook(app, "npc"); }); Hooks.on("renderTidy5eSheet", (app) => { getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) && sheet5eRenderHook(app, "character"); }); Hooks.on("renderTidy5eNPC", (app) => { getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) && sheet5eRenderHook(app, "npc"); }); console.log("Quick Insert | dnd5e system extensions initiated"); } export { Dnd5eSheetContext, SYSTEM_NAME, defaultSheetFilters, init, sheet5eRenderHook }; //# sourceMappingURL=dnd5e.js.map