Skip to main content
zerotal

Documentation


Documentation / @zerotal/admin / index / Field

Class: Field

Defined in: admin/src/form/Field.ts:115

Constructors

Constructor

new Field(key, type?): Field

Defined in: admin/src/form/Field.ts:169

Parameters

key

string

type?

FieldType = "text"

Returns

Field

Methods

make()

static make(key): Field

Defined in: admin/src/form/Field.ts:174

Parameters

key

string

Returns

Field


label()

label(label): this

Defined in: admin/src/form/Field.ts:180

Parameters

label

string

Returns

this


placeholder()

placeholder(text): this

Defined in: admin/src/form/Field.ts:185

Parameters

text

string

Returns

this


helperText()

helperText(text): this

Defined in: admin/src/form/Field.ts:191

Hint text shown beneath the input.

Parameters

text

string

Returns

this


default()

default(value): this

Defined in: admin/src/form/Field.ts:196

Parameters

value

unknown

Returns

this


disabled()

disabled(value?): this

Defined in: admin/src/form/Field.ts:201

Parameters

value?

boolean = true

Returns

this


columnSpan()

columnSpan(span): this

Defined in: admin/src/form/Field.ts:206

Parameters

span

number

Returns

this


autocomplete()

autocomplete(value): this

Defined in: admin/src/form/Field.ts:211

Parameters

value

string

Returns

this


email()

email(): this

Defined in: admin/src/form/Field.ts:218

Returns

this


password()

password(): this

Defined in: admin/src/form/Field.ts:223

Returns

this


numeric()

numeric(): this

Defined in: admin/src/form/Field.ts:228

Returns

this


url()

url(): this

Defined in: admin/src/form/Field.ts:233

Returns

this


tel()

tel(): this

Defined in: admin/src/form/Field.ts:238

Returns

this


toggle()

toggle(): this

Defined in: admin/src/form/Field.ts:244

Render as an on/off toggle switch (boolean).

Returns

this


radio()

radio(): this

Defined in: admin/src/form/Field.ts:250

Render as a radio group (single choice from options).

Returns

this


checkboxList()

checkboxList(): this

Defined in: admin/src/form/Field.ts:256

Render as a list of checkboxes (multi-select → array of values).

Returns

this


date()

date(): this

Defined in: admin/src/form/Field.ts:263

Native date picker (<input type="date">).

Returns

this


dateTime()

dateTime(): this

Defined in: admin/src/form/Field.ts:269

Native date-time picker (<input type="datetime-local">).

Returns

this


time()

time(): this

Defined in: admin/src/form/Field.ts:275

Native time picker (<input type="time">).

Returns

this


color()

color(): this

Defined in: admin/src/form/Field.ts:281

Native color picker (<input type="color">).

Returns

this


hidden()

hidden(): this

Defined in: admin/src/form/Field.ts:287

Hidden field — kept in form state, not shown.

Returns

this


tags()

tags(): this

Defined in: admin/src/form/Field.ts:293

Token/tags input → array of strings.

Returns

this


keyValue()

keyValue(): this

Defined in: admin/src/form/Field.ts:299

Key/value editor → an object.

Returns

this


file()

file(): this

Defined in: admin/src/form/Field.ts:305

File upload — stores the file on save and persists the path.

Returns

this


disk()

disk(dir): this

Defined in: admin/src/form/Field.ts:311

Storage directory/disk for a file upload (passed to TemporaryUploadedFile.store).

Parameters

dir

string

Returns

this


accept()

accept(mime): this

Defined in: admin/src/form/Field.ts:317

Restrict accepted file types (the input's accept attribute).

Parameters

mime

string

Returns

this


image()

image(): this

Defined in: admin/src/form/Field.ts:323

Shorthand for an image upload (accept="image/*").

Returns

this


multiple()

multiple(value?): this

Defined in: admin/src/form/Field.ts:330

Allow selecting multiple values (select → array; rendered as a checkbox list).

Parameters

value?

boolean = true

Returns

this


searchable()

searchable(value?): this

Defined in: admin/src/form/Field.ts:336

Make a select searchable (renders a filterable <datalist> combobox).

Parameters

value?

boolean = true

Returns

this


createOption()

createOption(value?): this

Defined in: admin/src/form/Field.ts:342

Allow choosing a value not in options (free entry; skips the one-of rule).

Parameters

value?

boolean = true

Returns

this


live()

live(value?): this

Defined in: admin/src/form/Field.ts:349

Re-evaluate dependent fields on every change to this field.

Parameters

value?

boolean = true

Returns

this


afterStateUpdated()

afterStateUpdated(fn): this

Defined in: admin/src/form/Field.ts:361

Reactive hook, run on the server when this field changes; return an object to merge into the form (e.g. derive a slug):

textInput("title").live() .afterStateUpdated((v) => ({ slug: String(v).toLowerCase().replace(/\s+/g, "-") }))

Parameters

fn

(value, data) => void | Record<string, unknown>

Returns

this


step()

step(n): this

Defined in: admin/src/form/Field.ts:370

Numeric step for number/range inputs.

Parameters

n

number

Returns

this


schema()

schema(fields): this

Defined in: admin/src/form/Field.ts:378

The sub-schema repeated for each row of a repeater.

Parameters

fields

Field[]

Returns

this


blocks()

blocks(blocks): this

Defined in: admin/src/form/Field.ts:384

The block types available in a builder.

Parameters

blocks

BuilderBlock[]

Returns

this


addActionLabel()

addActionLabel(label): this

Defined in: admin/src/form/Field.ts:390

Custom label for the repeater/builder "add" button.

Parameters

label

string

Returns

this


minItems()

minItems(n): this

Defined in: admin/src/form/Field.ts:396

Minimum number of repeater/builder rows.

Parameters

n

number

Returns

this


maxItems()

maxItems(n): this

Defined in: admin/src/form/Field.ts:402

Maximum number of repeater/builder rows.

Parameters

n

number

Returns

this


reorderable()

reorderable(value?): this

Defined in: admin/src/form/Field.ts:408

Allow (or forbid) reordering repeater/builder rows.

Parameters

value?

boolean = true

Returns

this


itemLabel()

itemLabel(fn): this

Defined in: admin/src/form/Field.ts:414

Title each repeater/builder row from its data (shown in the row header).

Parameters

fn

(data, index) => string

Returns

this


rows()

rows(n): this

Defined in: admin/src/form/Field.ts:420

Rows for a textarea.

Parameters

n

number

Returns

this


render()

render(fn): this

Defined in: admin/src/form/Field.ts:432

Render this field's control yourself. See customField.

The renderer receives the current value and the whole form's data, so a control can react to its siblings — a district picker that depends on the country chosen above it.

Parameters

fn

(value, data) => string | HtmlNode

Returns

this


options()

options(options): this

Defined in: admin/src/form/Field.ts:438

Options for a select — { value: label } map or an array of {value,label}.

Parameters

options

Record<string, string> | SelectOption[]

Returns

this


optionsUsing()

optionsUsing(loader): this

Defined in: admin/src/form/Field.ts:452

Load select options dynamically (e.g. a BelongsTo relationship). The loader runs each render; return { value, label }[].

select("userId").label("Author") .optionsUsing(async () => (await User.all()).map((u) => ({ value: String(u.id), label: u.name })))

Parameters

loader

() => SelectOption[] | Promise<SelectOption[]>

Returns

this


required()

required(value?): this

Defined in: admin/src/form/Field.ts:460

Parameters

value?

boolean = true

Returns

this


minLength()

minLength(n): this

Defined in: admin/src/form/Field.ts:466

Min length (string) / min value (number).

Parameters

n

number

Returns

this


maxLength()

maxLength(n): this

Defined in: admin/src/form/Field.ts:471

Parameters

n

number

Returns

this


min()

min(n): this

Defined in: admin/src/form/Field.ts:476

Parameters

n

number

Returns

this


max()

max(n): this

Defined in: admin/src/form/Field.ts:481

Parameters

n

number

Returns

this


confirmed()

confirmed(value?): this

Defined in: admin/src/form/Field.ts:487

Require a matching {key}_confirmation field (e.g. password).

Parameters

value?

boolean = true

Returns

this


rule()

rule(fn): this

Defined in: admin/src/form/Field.ts:493

Append a custom validator rule.

Parameters

fn

(rule) => AnyRule

Returns

this


mutate()

mutate(fn): this

Defined in: admin/src/form/Field.ts:503

Transform the value just before it is saved — the counterpart to Field.hydrate. May be async, e.g. hashing a password: .mutate((v) => Hash.make(v)).

Parameters

fn

(value) => unknown

Returns

this


dehydrate()

dehydrate(value): Promise<unknown>

Defined in: admin/src/form/Field.ts:549

Apply this field's save-time transform: serialize key/value text → object, persist any pending file upload(s) → stored path, then run a custom mutator.

Parameters

value

unknown

Returns

Promise<unknown>


visibleOn()

visibleOn(...modes): this

Defined in: admin/src/form/Field.ts:572

Only show this field when creating / editing.

Parameters

modes

...FieldMode[]

Returns

this


hiddenOn()

hiddenOn(...modes): this

Defined in: admin/src/form/Field.ts:578

Hide this field when creating / editing.

Parameters

modes

...FieldMode[]

Returns

this


visible()

visible(fn): this

Defined in: admin/src/form/Field.ts:585

Reactively show this field only when fn(formData) is true.

Parameters

fn

FieldPredicate

Returns

this


disabledWhen()

disabledWhen(fn): this

Defined in: admin/src/form/Field.ts:591

Reactively disable this field when fn(formData) is true.

Parameters

fn

FieldPredicate

Returns

this


getLabel()

getLabel(): string

Defined in: admin/src/form/Field.ts:598

Returns

string


visibleIn()

visibleIn(mode): boolean

Defined in: admin/src/form/Field.ts:602

Parameters

mode

FieldMode

Returns

boolean


visibleForData()

visibleForData(data): boolean

Defined in: admin/src/form/Field.ts:607

Reactive visibility for the current form data (combines with visibleIn).

Parameters

data

Record<string, unknown>

Returns

boolean


isDisabledFor()

isDisabledFor(data): boolean

Defined in: admin/src/form/Field.ts:612

Whether the field is disabled for the current form data.

Parameters

data

Record<string, unknown>

Returns

boolean


isArrayValued()

isArrayValued(): boolean

Defined in: admin/src/form/Field.ts:618

True for array-valued fields (checkbox list / tags / multiple select / multiple file).

Returns

boolean


defaultValue()

defaultValue(): unknown

Defined in: admin/src/form/Field.ts:629

Initial value for the generated form.

Returns

unknown


hydrate()

hydrate(value): unknown

Defined in: admin/src/form/Field.ts:641

Transform a stored record value into form state when filling the Edit form.

Parameters

value

unknown

Returns

unknown


buildRule()

buildRule(v): FieldRule

Defined in: admin/src/form/Field.ts:666

Build this field's validation rule on the shared RuleBuilder.

Parameters

v

RuleBuilder

Returns

FieldRule