Skip to content

ColumnEntry

ColumnEntry<TFieldSlug> = TFieldSlug | { enableHiding?: boolean; enableSorting?: boolean; field: TFieldSlug; hidden?: boolean; pinned?: "left" | "right"; width?: number; }

Defined in: packages/core/src/collections/types.ts:103

One entry in a view’s columns array (Decision 45/47/48’s unified column-entry model) — either a bare field slug (visible, every other attribute defaulted) or an object carrying this column’s own width/pin/visibility/capability overrides. The array is the view’s FULL display order, visible or not; hidden: true is what marks a listed entry as hidden (there is no other visibility signal). resolveListViewColumnConfig (collections/listView/listViewColumnConfig.ts) is the ONE place an entry, the owning field’s own admin.* default, and the global type default are resolved into a column’s final config — VIEWS ALWAYS WIN over a field’s own declared default.

TFieldSlug extends string = string

The collection’s own field slugs.

TFieldSlug


{ enableHiding?: boolean; enableSorting?: boolean; field: TFieldSlug; hidden?: boolean; pinned?: "left" | "right"; width?: number; }

optional enableHiding?: boolean

Overrides field.admin.enableHiding for THIS view only.

optional enableSorting?: boolean

Overrides field.admin.enableSorting for THIS view only. Still needs a declared index regardless of which tier turned it on — checked by validateSavedListViewConfig.

field: TFieldSlug

optional hidden?: boolean

Hides this column. No field-level default exists for this — unset means visible.

optional pinned?: "left" | "right"

Sticky pin side. No field-level default exists for this — unset means unpinned.

optional width?: number

Pixel width override. Falls back to field.admin.width, then FIELD_TYPE_DEFAULT_WIDTH[field.type].