const fields = foundry.data.fields; export default class MacroField extends fields.DocumentUUIDField { /** * Action Workflow order */ static order = 70; /** @inheritDoc */ constructor(context = {}) { super({ type: 'Macro' }, context); } /** * Macro Action Workflow part. * Must be called within Action context or similar or similar. * @param {object} config Object that contains workflow datas. Usually made from Action Fields prepareConfig methods. Currently not used. */ static async execute(config) { const fixUUID = !this.macro.includes('Macro.') ? `Macro.${this.macro}` : this.macro, macro = await fromUuid(fixUUID); try { if (!macro) throw new Error(`No macro found for the UUID: ${this.macro}.`); macro.execute(); } catch (error) { ui.notifications.error(error); } } }