import type { AgFieldRole } from './agFieldDefinition'; import type { AgStudioLocaleKey } from './studioLocaleKey'; import type { AgForm, AgFormCheckbox, AgFormColor, AgFormControlItem, AgFormGroup, AgFormItem, AgFormMetaValue, AgFormNumber, AgFormOptionalNumber, AgFormSection, AgFormSelect, AgFormTab, AgFormTabGroup, AgFormTextArea, AgFormTextField, AgFormToggle, IFormItem } from './util/form'; export interface AgWidgetTypography { fontFamily: string; fontSize: number; fontWeight: 'normal' | 'bold'; fontStyle: 'normal' | 'italic'; } type Spreadable = '...' | ''; export type AgWidgetFormDataMappingID = `dataMapping.${string}`; export type AgWidgetFormFormatID = `${Spreadable}format.style.${string}` | `format.title.${string}` | `format.subtitle.${string}` | `format.crossFilter.${string}`; export type AgWidgetFormSortID = `sort`; export type AgWidgetFormWidgetTypeID = 'widgetType'; export type AgWidgetFormID = AgWidgetFormDataMappingID | AgWidgetFormFormatID | AgWidgetFormSortID | AgWidgetFormWidgetTypeID; export type AgWidgetDataFieldRelation = { cardinality: 'one'; per?: TId; aggregateByDefault?: never; } | { cardinality: 'many'; per?: TId; aggregateByDefault?: never; } | { cardinality: 'either'; per: TId; aggregateByDefault?: AgFieldRole[]; }; export interface AgFormWidgetType extends IFormItem<'widget-type', TId, never, TLabel> { } export interface AgWidgetFormWidgetType extends AgFormWidgetType { } export interface AgWidgetFormFieldSort { id: TId; } export interface AgFormField extends IFormItem<'field', TId, never, TLabel> { sort?: AgWidgetFormFieldSort; supportedRoles: AgFieldRole[]; requires?: AgWidgetDataFieldRelation; required?: boolean; } export interface AgWidgetFormField extends AgFormField { } export interface AgFormFieldSet extends IFormItem<'fieldset', TId, never, TLabel> { sort?: AgWidgetFormFieldSort; supportedRoles: AgFieldRole[]; requires?: AgWidgetDataFieldRelation; required?: boolean; } export interface AgWidgetFormFieldSet extends AgFormFieldSet { } export type AgWidgetTypographyMetaValue = { [key in keyof AgWidgetTypography]: AgWidgetTypography[key] | AgFormMetaValue; }; export interface AgFormTypography extends IFormItem<'typography', TId, AgWidgetTypographyMetaValue, TLabel> { } export interface AgWidgetFormTypography extends AgFormTypography { } export type AgWidgetFormSelect = AgFormSelect; export type AgWidgetFormCheckbox = AgFormCheckbox; export type AgWidgetFormToggle = AgFormToggle; export type AgWidgetFormTextField = AgFormTextField; export type AgWidgetFormTextArea = AgFormTextArea; export type AgWidgetFormColor = AgFormColor; export type AgWidgetFormNumber = AgFormNumber; export type AgWidgetFormOptionalNumber = AgFormOptionalNumber; export type AgInternalFormItemControl = AgFormControlItem | AgFormWidgetType | AgFormOptionalNumber | AgFormField | AgFormFieldSet | AgFormTypography; export type AgWidgetFormItemControl = AgWidgetFormSelect | AgWidgetFormCheckbox | AgWidgetFormToggle | AgWidgetFormTextField | AgWidgetFormTextArea | AgWidgetFormNumber | AgWidgetFormOptionalNumber | AgWidgetFormColor | AgWidgetFormWidgetType | AgWidgetFormField | AgWidgetFormFieldSet | AgWidgetFormTypography; export type AgWidgetFormGroup = AgFormGroup, string>; export type AgWidgetFormSection = AgFormSection, string>; export type AgWidgetFormItem = AgFormItem, string>; export type AgWidgetFormTab = AgFormTab, string>; export type AgWidgetFormTabGroup = AgFormTabGroup, string>; export type AgWidgetForm = AgForm, string>; export {};