@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
110 lines (94 loc) • 1.61 kB
text/typescript
import type { FieldState } from "./types"
import type { RichTextField } from "./richText"
/**
* A table field.
*
* @typeParam State - State of the field which determines its shape.
*
* @see More details: {@link https://prismic.io/docs/table}
*/
export type TableField<State extends FieldState = FieldState> =
State extends "empty"
? null
: {
/**
* The head of the table.
*/
head?: TableFieldHead
/**
* The body of the table.
*/
body: TableFieldBody
}
/**
* Represents a table head.
*/
export type TableFieldHead = {
rows: TableFieldHeadRow[]
}
/**
* Represents a table body.
*/
export type TableFieldBody = {
rows: TableFieldBodyRow[]
}
/**
* Represents a row in a table head.
*/
export type TableFieldHeadRow = {
/**
* Unique key of the row.
*/
key: string
/**
* Cells in the row.
*/
cells: TableFieldHeaderCell[]
}
/**
* Represents a table header cell.
*/
export type TableFieldHeaderCell = {
/**
* Unique key of the cell.
*/
key: string
/**
* The type of the cell.
*/
type: "header"
/**
* The content of the cell.
*/
content: RichTextField
}
/**
* Represents a row in a table body.
*/
export type TableFieldBodyRow = {
/**
* Unique key of the row.
*/
key: string
/**
* Cells in the row.
*/
cells: (TableFieldHeaderCell | TableFieldDataCell)[]
}
/**
* Represents a table data cell.
*/
export type TableFieldDataCell = {
/**
* Unique key of the cell.
*/
key: string
/**
* The type of the cell.
*/
type: "data"
/**
* The content of the cell.
*/
content: RichTextField
}