import { BasicBuilder } from './basic'; import { FieldArrayModel } from '../models'; import { Maybe, or } from '../maybe'; export class FieldArrayBuilder> extends BasicBuilder< readonly (ChildBuilder['phantomValue'] | null)[], FieldArrayModel > { private _defaultValue: ReadonlyArray = []; constructor(private readonly childBuilder: ChildBuilder) { super(); } defaultValue(defaultValue: ReadonlyArray) { this._defaultValue = defaultValue; return this; } build( defaultValue?: Maybe>, ): FieldArrayModel { const model = new FieldArrayModel( this.childBuilder, or(defaultValue, () => this._defaultValue), ); model.validators = this._validators; return model; } }