Columns And Grid Projection
This page documents 20 public symbols exported by @revolist/revogrid-enterprise.
createDefaultTaskTableColumn
Section titled “createDefaultTaskTableColumn”function
Look up a default task-table column definition by property name.
export function createDefaultTaskTableColumn(prop: TaskTableColumnProp, labels?: GanttLabelsConfig, allowedTaskTypes?: readonly TaskType[]): ColumnRegular;| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prop | TaskTableColumnProp | Yes | — | - The column property key (e.g. "wbs", "name"). |
labels | GanttLabelsConfig | undefined | No | — | |
allowedTaskTypes | readonly TaskType[] | undefined | No | — |
Returns: A cloned ColumnRegular if a default exists, or null.
Related types: GanttLabelsConfig, TaskTableColumnProp, TaskType
createGanttColumn
Section titled “createGanttColumn”function
Create the pinned-end gantt column definition.
This produces a single read-only column that uses the gantt column type
for rendering. Runtime timeline width is managed by the dimension store.
export function createGanttColumn(_totalWidth?: number): ColumnRegular;| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
_totalWidth | number | undefined | No | — |
Returns: A ColumnRegular pinned to colPinEnd.
createGanttColumnPreset
Section titled “createGanttColumnPreset”function
export function createGanttColumnPreset(preset: GanttColumnPresetName, options: GanttColumnPresetOptions = {}): ColumnRegular[];| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
preset | GanttColumnPresetName | Yes | — | |
options | GanttColumnPresetOptions | No | {} |
Related types: GanttColumnPresetName, GanttColumnPresetOptions
createGanttColumnPresets
Section titled “createGanttColumnPresets”function
export function createGanttColumnPresets(options: GanttColumnPresetOptions = {}): Record<GanttColumnPresetName, ColumnRegular[]>;| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
options | GanttColumnPresetOptions | No | {} |
Related types: GanttColumnPresetName, GanttColumnPresetOptions
createGanttGridRows
Section titled “createGanttGridRows”function
Projects the full project state into an ordered array of flat grid rows ready for rendering. Combines scheduling results, WBS numbering, dependency labels, baseline overlays, resource assignments, and Gantt bar layouts into a single row model per task.
export function createGanttGridRows(project: ProjectSnapshot, scale: TimelineScale, scheduledTasksById: ReadonlyMap<TaskId, ScheduledTask>, taskStore: TaskStore = new InMemoryTaskStore(project.tasks), resourceStore: ResourceStore = new InMemoryResourceStore(project.resources), assignmentStore: AssignmentStore = new InMemoryAssignmentStore(project.assignments), options: TaskRowProjectionOptions = {}, diagnostics?: TaskRowDiagnostics): readonly GanttGridRow[];| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
project | ProjectSnapshot | Yes | — | - The current project snapshot (tasks, resources, assignments, baselines, dependencies). |
scale | TimelineScale | Yes | — | - The active timeline scale for date-to-pixel conversion. |
scheduledTasksById | ReadonlyMap<string, ScheduledTask> | Yes | — | - Map of task IDs to their engine-computed schedule results. |
taskStore | TaskStore | No | new InMemoryTaskStore(project.tasks) | - Task store instance (defaults to an in-memory store built from the project). |
resourceStore | ResourceStore | No | new InMemoryResourceStore(project.resources) | - Resource store instance (defaults to an in-memory store built from the project). |
assignmentStore | AssignmentStore | No | new InMemoryAssignmentStore(project.assignments) | - Assignment store instance (defaults to an in-memory store built from the project). |
options | TaskRowProjectionOptions | No | {} | - Optional projection options (baseline, critical path, labels, resource planning). |
diagnostics | TaskRowDiagnostics | undefined | No | — |
Returns: An ordered array of {@link GanttGridRow} objects.
Related types: AssignmentStore, GanttGridRow, InMemoryAssignmentStore, InMemoryResourceStore, InMemoryTaskStore, ProjectSnapshot, ResourceStore, ScheduledTask, TaskId, TaskRowDiagnostics, TaskRowProjectionOptions, TaskStore, TimelineScale
createInitialTaskTableColumns
Section titled “createInitialTaskTableColumns”function
Create the initial set of task-table columns shown before the user supplies custom columns.
export function createInitialTaskTableColumns(labels?: GanttLabelsConfig, allowedTaskTypes?: readonly TaskType[]): ColumnRegular[];| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
labels | GanttLabelsConfig | undefined | No | — | |
allowedTaskTypes | readonly TaskType[] | undefined | No | — |
Returns: An array containing the WBS and Name columns.
Related types: GanttLabelsConfig, TaskType
defaultTaskTableColumns
Section titled “defaultTaskTableColumns”constant
export const defaultTaskTableColumns: Record<TaskTableColumnProp, ColumnRegular<ColumnProp, DataType<any, ColumnProp>>>;Related types: TaskTableColumnProp
GanttColumnPresetName
Section titled “GanttColumnPresetName”type
export type GanttColumnPresetName = | 'core' | 'schedule' | 'dependencies' | 'resources' | 'baseline' | 'cost' | 'progress' | 'all';GanttColumnPresetOptions
Section titled “GanttColumnPresetOptions”interface
export interface GanttColumnPresetOptions { /** Built-in Gantt option label overrides applied to generated default columns. */ readonly labels?: GanttLabelsConfig; /** Task kinds offered by the generated Task Type column. */ readonly allowedTaskTypes?: readonly TaskType[];}| Member | Type / return | Required | Default | Description |
|---|---|---|---|---|
labels | GanttLabelsConfig | undefined | No | — | Built-in Gantt option label overrides applied to generated default columns. |
allowedTaskTypes | readonly TaskType[] | undefined | No | — | Task kinds offered by the generated Task Type column. |
Related types: GanttLabelsConfig, TaskType
GanttColumnPresetProp
Section titled “GanttColumnPresetProp”type
export type GanttColumnPresetProp = Extract<TaskTableColumnProp, TaskGridColumnProp>;Related types: TaskTableColumnProp
ganttColumnPresetProps
Section titled “ganttColumnPresetProps”constant
export const ganttColumnPresetProps: { readonly core: readonly ["wbs", "name", "type", "startDate", "endDate", "duration", "percentDone"]; readonly schedule: readonly ["wbs", "name", "taskMode", "scheduleOrigin", "startDate", "endDate", "duration", "constraintType", "constraintDate", "deadlineDate", "schedulingWarning", "totalSlackDays"]; readonly dependencies: readonly ["wbs", "name", "predecessors", "successors", "totalSlackDays"]; readonly resources: readonly ["wbs", "name", "assignees", "workHours", "effortMode", "effortDriven", "resourceRole", "resourceCapacity", "resourceLoadSummary", "canLevel", "levelingDelayDays"]; readonly baseline: readonly ["wbs", "name", "startDate", "endDate", "actualStartDate", "actualFinishDate", "startVarianceDays", "finishVarianceDays", "durationVariance", "progressVariancePercent"]; readonly cost: readonly ["wbs", "name", "type", "cost", "workHours", "assignees"]; readonly progress: readonly ["wbs", "name", "status", "statusIndicator", "percentDone", "remainingDuration", "actualStartDate", "actualFinishDate", "progressVariancePercent"]; readonly all: readonly ["wbs", "name", "type", "cost", "startDate", "endDate", "duration", "workHours", "remainingDuration", "actualStartDate", "actualFinishDate", "effortMode", "effortDriven", "inactive", "priority", "canLevel", "levelingDelayDays", "earlyStartDate", "earlyFinishDate", "lateStartDate", "lateFinishDate", "totalSlackDays", "startVarianceDays", "finishVarianceDays", "durationVariance", "progressVariancePercent", "taskMode", "scheduleOrigin", "constraintType", "constraintDate", "deadlineDate", "schedulingWarning", "percentDone", "predecessors", "successors", "status", "statusIndicator", "workflowStatus", "assignees", "resourceRole", "resourceCapacity", "resourceLoadSummary"]; };GanttDependencyDropdownColumn
Section titled “GanttDependencyDropdownColumn”constant
export const GanttDependencyDropdownColumn: ColumnType<DataType<any, ColumnProp>>;GanttGridRow
Section titled “GanttGridRow”interface
Flat render row produced by projecting a scheduled task onto the Gantt grid. Contains display-ready fields and computed layout, not domain/UI state.
export interface GanttGridRow { /** Row projection kind. Omitted task rows are treated as task rows. */ readonly rowKind?: 'task' | 'resource'; /** Unique task identifier. */ readonly id: TaskId; /** Parent task identifier, or `null` for top-level tasks. */ readonly parentId: TaskId | null; /** Work Breakdown Structure code (e.g. "1.2.3"). */ readonly wbs: string; /** Display name of the task. */ readonly name: string; /** Scheduler-determined kind (task, summary, milestone). */ readonly taskKind: ScheduledTaskKind; /** Raw authored task type used by task-table editors. */ readonly type?: ScheduledTaskKind; /** Human-readable task type label. */ readonly taskType: string; /** Human-readable status label. */ readonly status: string; /** Raw calculated task status key. Omitted for non-task resource rows. */ readonly statusKey?: TaskStatus; /** Calculated status used by the Status Indicator column. */ readonly statusIndicator?: TaskStatus; /** Human-readable editable workflow status label. */ readonly workflowStatus?: string; /** Raw editable workflow status key. */ readonly workflowStatusKey?: TaskWorkflowStatus; /** Task tags. */ readonly tags: readonly string[]; /** Optional scheduling constraint type. */ readonly constraintType?: string; /** Optional scheduling constraint date. */ readonly constraintDate?: string; /** Optional task deadline date. */ readonly deadlineDate?: string; /** Scheduled start date (ISO string). */ readonly startDate: string; /** Scheduled end date (ISO string). */ readonly endDate: string; /** Scheduled task duration. */ readonly duration: number; /** Unit used by duration cells and editors. */ readonly durationUnit?: DurationUnit; /** Whether duration ignores working calendars. */ readonly durationIsElapsed?: boolean; /** Display-ready scheduled duration. */ readonly formattedDuration?: string; /** Planned work for the task, in hours. */ readonly workHours?: number; /** Unit used by Work cells and editors. */ readonly workUnit?: DurationUnit; /** Display-ready planned Work value. */ readonly formattedWork?: string; /** Remaining duration for progress-aware scheduling. */ readonly remainingDuration?: number; /** Display-ready remaining duration. */ readonly formattedRemainingDuration?: string; /** Date work actually started. */ readonly actualStartDate?: string; /** Date work actually finished. */ readonly actualFinishDate?: string; /** Task effort mode controlling work/duration/unit calculation. */ readonly effortMode?: TaskEffortMode; /** Whether assignment changes should preserve total work where supported. */ readonly effortDriven?: boolean; /** Whether this task is excluded from scheduling. */ readonly inactive: boolean; /** Leveling priority from 0 to 1000. */ readonly priority?: number; /** Whether automatic resource leveling may delay this task. */ readonly canLevel?: boolean; /** Resource leveling delay in calendar days. */ readonly levelingDelayDays?: number; /** Completion percentage (0-100). */ readonly percentDone: number; /** Total slack (float) in days before the task delays the project. Present when critical-path projection is available. */ readonly totalSlackDays?: number; /** Earliest scheduled start date. Present when critical-path projection is available. */ readonly earlyStartDate?: string; /** Earliest scheduled finish date. Present when critical-path projection is available. */ readonly earlyFinishDate?: string; /** Latest start date that preserves the project finish. Present when critical-path projection is available. */ readonly lateStartDate?: string; /** Latest finish date that preserves the project finish. Present when critical-path projection is available. */ readonly lateFinishDate?: string; /** Whether the task is auto- or manually scheduled. */ readonly taskMode: 'auto' | 'manual'; /** How the scheduler determined the rendered dates. */ readonly scheduleOrigin: ScheduledTask['scheduleOrigin']; /** Scheduling warning messages associated with this task. */ readonly schedulingWarnings: readonly string[]; /** First scheduling warning, suitable for compact columns and tooltips. */ readonly schedulingWarning: string; /** Optional inline label rendered on the Gantt bar. */ readonly taskLabel?: string; /** Optional baseline bar layout for plan-vs-actual comparison. */ readonly baselineLayout?: GanttBaselineLayout; /** Start variance against the selected baseline, in calendar days. */ readonly startVarianceDays?: number; /** Finish variance against the selected baseline, in calendar days. */ readonly finishVarianceDays?: number; /** Duration variance against the selected baseline, in canonical hours. */ readonly durationVariance?: number; /** Display-ready duration variance in the task duration unit. */ readonly formattedDurationVariance?: string; /** Progress variance against the selected baseline, in percentage points. */ readonly progressVariancePercent?: number; /** Point indicators (deadlines, constraints, custom markers) on this row. */ readonly indicators: readonly GanttIndicatorLayout[]; /** Assigned resource names used by the multi-select editor. */ readonly assignees: readonly string[]; /** Comma-separated list of assigned resource names for search and tooltips. */ readonly assigneeLabels: string; /** Display-ready resource assignment metadata. */ readonly assigneeDetails: readonly TaskGridAssignee[]; /** Estimated task cost in the project currency. */ readonly cost: number; /** Formatted estimated task cost. */ readonly formattedCost: string; /** Comma-separated predecessor reference tokens. */ readonly predecessors: string; /** Comma-separated successor reference tokens. */ readonly successors: string; /** Computed pixel layout for the Gantt bar. */ readonly ganttLayout: GanttBarLayout; /** Reserved field for the Gantt bar cell renderer. */ readonly gantt: string; /** Resource identifier for resource-planning rows. */ readonly resourceId?: ResourceId; /** Optional resource profile image URL for resource-planning rows. */ readonly resourceAvatarUrl?: string; /** Resource role for resource-planning rows. */ readonly resourceRole?: string; /** Display-ready capacity label for resource-planning rows. */ readonly resourceCapacity?: string; /** Display-ready load summary for resource-planning rows. */ readonly resourceLoadSummary?: string; /** Resource planning load data rendered on the timeline. */ readonly resourcePlanning?: ResourcePlanningRowData;}| Member | Type / return | Required | Default | Description |
|---|---|---|---|---|
rowKind | "task" | "resource" | undefined | No | — | Row projection kind. Omitted task rows are treated as task rows. |
id | string | Yes | — | Unique task identifier. |
parentId | string | null | Yes | — | Parent task identifier, or null for top-level tasks. |
wbs | string | Yes | — | Work Breakdown Structure code (e.g. “1.2.3”). |
name | string | Yes | — | Display name of the task. |
taskKind | ScheduledTaskKind | Yes | — | Scheduler-determined kind (task, summary, milestone). |
type | ScheduledTaskKind | undefined | No | — | Raw authored task type used by task-table editors. |
taskType | string | Yes | — | Human-readable task type label. |
status | string | Yes | — | Human-readable status label. |
statusKey | TaskStatus | undefined | No | — | Raw calculated task status key. Omitted for non-task resource rows. |
statusIndicator | TaskStatus | undefined | No | — | Calculated status used by the Status Indicator column. |
workflowStatus | string | undefined | No | — | Human-readable editable workflow status label. |
workflowStatusKey | TaskWorkflowStatus | undefined | No | — | Raw editable workflow status key. |
tags | readonly string[] | Yes | — | Task tags. |
constraintType | string | undefined | No | — | Optional scheduling constraint type. |
constraintDate | string | undefined | No | — | Optional scheduling constraint date. |
deadlineDate | string | undefined | No | — | Optional task deadline date. |
startDate | string | Yes | — | Scheduled start date (ISO string). |
endDate | string | Yes | — | Scheduled end date (ISO string). |
duration | number | Yes | — | Scheduled task duration. |
durationUnit | DurationUnit | undefined | No | — | Unit used by duration cells and editors. |
durationIsElapsed | boolean | undefined | No | — | Whether duration ignores working calendars. |
formattedDuration | string | undefined | No | — | Display-ready scheduled duration. |
workHours | number | undefined | No | — | Planned work for the task, in hours. |
workUnit | DurationUnit | undefined | No | — | Unit used by Work cells and editors. |
formattedWork | string | undefined | No | — | Display-ready planned Work value. |
remainingDuration | number | undefined | No | — | Remaining duration for progress-aware scheduling. |
formattedRemainingDuration | string | undefined | No | — | Display-ready remaining duration. |
actualStartDate | string | undefined | No | — | Date work actually started. |
actualFinishDate | string | undefined | No | — | Date work actually finished. |
effortMode | TaskEffortMode | undefined | No | — | Task effort mode controlling work/duration/unit calculation. |
effortDriven | boolean | undefined | No | — | Whether assignment changes should preserve total work where supported. |
inactive | boolean | Yes | — | Whether this task is excluded from scheduling. |
priority | number | undefined | No | — | Leveling priority from 0 to 1000. |
canLevel | boolean | undefined | No | — | Whether automatic resource leveling may delay this task. |
levelingDelayDays | number | undefined | No | — | Resource leveling delay in calendar days. |
percentDone | number | Yes | — | Completion percentage (0-100). |
totalSlackDays | number | undefined | No | — | Total slack (float) in days before the task delays the project. Present when critical-path projection is available. |
earlyStartDate | string | undefined | No | — | Earliest scheduled start date. Present when critical-path projection is available. |
earlyFinishDate | string | undefined | No | — | Earliest scheduled finish date. Present when critical-path projection is available. |
lateStartDate | string | undefined | No | — | Latest start date that preserves the project finish. Present when critical-path projection is available. |
lateFinishDate | string | undefined | No | — | Latest finish date that preserves the project finish. Present when critical-path projection is available. |
taskMode | "manual" | "auto" | Yes | — | Whether the task is auto- or manually scheduled. |
scheduleOrigin | ScheduleOrigin | Yes | — | How the scheduler determined the rendered dates. |
schedulingWarnings | readonly string[] | Yes | — | Scheduling warning messages associated with this task. |
schedulingWarning | string | Yes | — | First scheduling warning, suitable for compact columns and tooltips. |
taskLabel | string | undefined | No | — | Optional inline label rendered on the Gantt bar. |
baselineLayout | GanttBaselineLayout | undefined | No | — | Optional baseline bar layout for plan-vs-actual comparison. |
startVarianceDays | number | undefined | No | — | Start variance against the selected baseline, in calendar days. |
finishVarianceDays | number | undefined | No | — | Finish variance against the selected baseline, in calendar days. |
durationVariance | number | undefined | No | — | Duration variance against the selected baseline, in canonical hours. |
formattedDurationVariance | string | undefined | No | — | Display-ready duration variance in the task duration unit. |
progressVariancePercent | number | undefined | No | — | Progress variance against the selected baseline, in percentage points. |
indicators | readonly GanttIndicatorLayout[] | Yes | — | Point indicators (deadlines, constraints, custom markers) on this row. |
assignees | readonly string[] | Yes | — | Assigned resource names used by the multi-select editor. |
assigneeLabels | string | Yes | — | Comma-separated list of assigned resource names for search and tooltips. |
assigneeDetails | readonly TaskGridAssignee[] | Yes | — | Display-ready resource assignment metadata. |
cost | number | Yes | — | Estimated task cost in the project currency. |
formattedCost | string | Yes | — | Formatted estimated task cost. |
predecessors | string | Yes | — | Comma-separated predecessor reference tokens. |
successors | string | Yes | — | Comma-separated successor reference tokens. |
ganttLayout | GanttBarLayout | Yes | — | Computed pixel layout for the Gantt bar. |
gantt | string | Yes | — | Reserved field for the Gantt bar cell renderer. |
resourceId | string | undefined | No | — | Resource identifier for resource-planning rows. |
resourceAvatarUrl | string | undefined | No | — | Optional resource profile image URL for resource-planning rows. |
resourceRole | string | undefined | No | — | Resource role for resource-planning rows. |
resourceCapacity | string | undefined | No | — | Display-ready capacity label for resource-planning rows. |
resourceLoadSummary | string | undefined | No | — | Display-ready load summary for resource-planning rows. |
resourcePlanning | ResourcePlanningRowData | undefined | No | — | Resource planning load data rendered on the timeline. |
Related types: GanttBarLayout, GanttBaselineLayout, GanttIndicatorLayout, ResourceId, ResourcePlanningRowData, ScheduledTask, ScheduledTaskKind, TaskEffortMode, TaskGridAssignee, TaskId, TaskStatus, TaskWorkflowStatus
GanttPercentDoneColumn
Section titled “GanttPercentDoneColumn”interface
Percent Done task-table column with an optional per-column visual override.
export interface GanttPercentDoneColumn extends ColumnRegular { readonly prop: 'percentDone'; /** Overrides `visuals.percentDoneMode` for this column. */ readonly mode?: GanttPercentDoneColumnMode;}| Member | Type / return | Required | Default | Description |
|---|---|---|---|---|
prop | "percentDone" | Yes | — | |
mode | GanttPercentDoneColumnMode | undefined | No | — | Overrides visuals.percentDoneMode for this column. |
Related types: GanttPercentDoneColumnMode
GanttPercentDoneColumnMode
Section titled “GanttPercentDoneColumnMode”type
Built-in visual modes for the managed Percent Done task-table column.
export type GanttPercentDoneColumnMode = 'number' | 'bar' | 'circle';getGanttColumnPresetProps
Section titled “getGanttColumnPresetProps”function
export function getGanttColumnPresetProps(preset: GanttColumnPresetName): GanttColumnPresetProp[];| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
preset | GanttColumnPresetName | Yes | — |
Related types: GanttColumnPresetName, GanttColumnPresetProp
getZoomPresetConfig
Section titled “getZoomPresetConfig”function
Returns the scale configuration fields for a named zoom preset.
export function getZoomPresetConfig(preset: TimelineZoomPreset): Pick<TimelineScaleConfig, 'levelId' | 'tickUnit' | 'tickCount' | 'tickWidth' | 'headerRows'>;| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
preset | TimelineZoomPreset | Yes | — | - One of the predefined zoom preset identifiers. |
Returns: A partial {@link TimelineScaleConfig} with tick and header settings.
Related types: TimelineScaleConfig, TimelineZoomPreset
normalizePinnedTaskColumns
Section titled “normalizePinnedTaskColumns”function
Normalize user-supplied columns for the task-table side of the gantt grid.
Strips any existing gantt column (it is managed internally), fills in
missing properties from default column definitions, and falls back to the
initial columns if the array is empty.
export function normalizePinnedTaskColumns(columns: Array<ColumnGrouping | ColumnRegular> | undefined, getProject: () => GanttPluginConfig | null | undefined = () => undefined, getRowOrder: () => RowOrderPluginConfig | false | undefined = () => undefined): Array<ColumnGrouping | ColumnRegular>;| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
columns | (ColumnRegular<ColumnProp, DataType<any, ColumnProp>> | ColumnGrouping<any>)[] | undefined | Yes | — | - The raw column array from the grid or user config. |
getProject | () => GanttPluginConfig | null | undefined | No | () => undefined | |
getRowOrder | () => RowOrderPluginConfig | false | undefined | No | () => undefined |
Returns: A cleaned array of columns ready to be combined with the gantt column.
Related types: GanttPluginConfig
TaskTableColumnProp
Section titled “TaskTableColumnProp”type
export type TaskTableColumnProp = | 'wbs' | 'name' | 'type' | 'cost' | 'startDate' | 'endDate' | 'duration' | 'workHours' | 'remainingDuration' | 'actualStartDate' | 'actualFinishDate' | 'effortMode' | 'effortDriven' | 'inactive' | 'priority' | 'canLevel' | 'levelingDelayDays' | 'earlyStartDate' | 'earlyFinishDate' | 'lateStartDate' | 'lateFinishDate' | 'totalSlackDays' | 'startVarianceDays' | 'finishVarianceDays' | 'durationVariance' | 'progressVariancePercent' | 'taskMode' | 'scheduleOrigin' | 'constraintType' | 'constraintDate' | 'deadlineDate' | 'schedulingWarning' | 'percentDone' | 'predecessors' | 'successors' | 'status' | 'statusIndicator' | 'workflowStatus' | 'assignees' | 'resourceRole' | 'resourceCapacity' | 'resourceLoadSummary';TimelineZoomPreset
Section titled “TimelineZoomPreset”type
Named presets mapping to entries in the built-in timeline preset list.
export type TimelineZoomPreset = | 'minute-hour' | 'hour-day' | 'day-week' | 'week-month' | 'month-quarter' | 'quarter-year' | 'year-quarter' | 'multi-year-quarter';