Newer
Older
export interface Unit {
pages: UnitPage[];
}
export interface UnitPage {
[index: string]: string | number | boolean | undefined | UnitPageSection[];
sections: UnitPageSection[];
width: number;
alwaysVisiblePagePosition: 'left' | 'right' | 'top' | 'bottom';
}
export interface UnitPageSection {
[index: string]: string | number | boolean | undefined | UnitUIElement[];
elements: UnitUIElement[];
width: number;
height: number;
backgroundColor: string;
dynamicPositioning: boolean;
gridColumnSizes: string;
}
export interface UnitUIElement {
type: string; // TODO maybe use enum or manual enumeration, because possible values are known
id: string;
dynamicPositioning: boolean;
xPosition: number;
yPosition: number;
gridColumnStart: number;
gridColumnEnd: number;
gridRowStart: number;
gridRowEnd: number;
}
export interface TextUIElement extends UnitUIElement {
fontColor: string;
font: string;
fontSize: number;
bold: boolean;
italic: boolean;
underline: boolean;
}
export interface InputUIElement extends UnitUIElement {
label: string;
value: string | number | boolean | undefined;
required: boolean;
requiredWarnMessage: string;
export interface SurfaceUIElement extends UnitUIElement {
export interface CompoundElementCorrection extends UnitUIElement {
text: string;
sentences : string[];
}
export interface TextElement extends TextUIElement, SurfaceUIElement {
text: string;
export interface ButtonElement extends TextUIElement, SurfaceUIElement {
export interface TextFieldElement extends InputUIElement, TextUIElement, SurfaceUIElement {
min: number | undefined;
max: number | undefined;
export interface NumberFieldElement extends InputUIElement, TextUIElement, SurfaceUIElement {
value: number;
min: number | undefined;
max: number | undefined;
export interface TextAreaElement extends InputUIElement, TextUIElement, SurfaceUIElement {
export interface CheckboxElement extends InputUIElement, TextUIElement, SurfaceUIElement {
export interface DropdownElement extends InputUIElement, TextUIElement, SurfaceUIElement {
label: string;
options: string[];
export interface RadioButtonGroupElement extends InputUIElement, TextUIElement, SurfaceUIElement {
options: string[];
alignment: 'row' | 'column';
}
export interface ImageElement extends UnitUIElement {
src: string;
}
export interface AudioElement extends UnitUIElement {
src: string;
}
export interface VideoElement extends UnitUIElement {
src: string;
}