FIX: ForeignDocumentUUIDField initialize like a getter

FEAT: ForeignDocumentUUIDArrayField created and used
This commit is contained in:
Joaquin Pereyra 2025-06-17 19:09:09 -03:00
parent 5463f71526
commit d18141bb65
7 changed files with 32 additions and 20 deletions

View file

@ -1,2 +1,3 @@
export { default as FormulaField } from './formulaField.mjs';
export { default as ForeignDocumentUUIDField } from './foreignDocumentUUIDField.mjs';
export { default as ForeignDocumentUUIDArrayField } from "./foreignDocumentUUIDArrayField.mjs";

View file

@ -0,0 +1,21 @@
import ForeignDocumentUUIDField from "./foreignDocumentUUIDField.mjs";
/**
* A subclass of {@link foundry.data.fields.ArrayField} that defines an array of foreign document UUID references.
*/
export default class ForeignDocumentUUIDArrayField extends foundry.data.fields.ArrayField {
/**
* @param {foundry.data.types.DocumentUUIDFieldOptions} [fieldOption] - Options to configure each individual ForeignDocumentUUIDField.
* @param {foundry.data.types.ArrayFieldOptions} [options] - Options to configure the array behavior
* @param {foundry.data.types.DataFieldContext} [context] - Optional context for schema processing
*/
constructor(fieldOption = {}, options = {}, context = {}) {
super(new ForeignDocumentUUIDField(fieldOption), options, context);
}
/** @inheritdoc */
initialize(value, model, options = {}) {
const v = super.initialize(value, model, options);
return () => v.map(entry => typeof entry === 'function' ? entry() : entry);
}
}

View file

@ -31,7 +31,7 @@ export default class ForeignDocumentUUIDField extends foundry.data.fields.Docume
console.error(error);
return value ?? null;
}
})();
});
}
/**@override */