daggerheart/module/data/fields/foreignDocumentUUIDArrayField.mjs
Carlos Fernandez ccb0073cef
Some checks are pending
Project CI / build (24.x) (push) Waiting to run
Prevent class sheet and character errors when features/domains no longer exist (#1833)
2026-04-24 20:49:42 +02:00

24 lines
1.1 KiB
JavaScript

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);
this.options.prune ??= true;
}
/** @inheritdoc */
initialize(value, model, options = {}) {
const v = super.initialize(value ?? [], model, options);
return () => {
const data = v.map(entry => (typeof entry === 'function' ? entry() : entry));
return this.options.prune ? data.filter(d => !!d) : data;
};
}
}