Skip to content
Snippets Groups Projects
unit.ts 3.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • export interface Unit {
    
      veronaModuleVersion: string;
    
      pages: UnitPage[];
    }
    
    export interface UnitPage {
    
      [index: string]: string | number | boolean | undefined | UnitPageSection[];
    
      id: string;
    
      sections: UnitPageSection[];
      width: number;
    
    rhenck's avatar
    rhenck committed
      margin: number;
    
      backgroundColor: string;
    
    rhenck's avatar
    rhenck committed
      alwaysVisible: boolean;
    
      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;
    
      gridRowSizes: string;
    
    }
    
    export interface UnitUIElement {
    
    rhenck's avatar
    rhenck committed
      [index: string]: string | number | boolean | string[] | undefined;
    
      type: string; // TODO maybe use enum or manual enumeration, because possible values are known
      id: string;
    
      zIndex: number
    
      width: number;
      height: number;
    
      dynamicPositioning: boolean;
      xPosition: number;
      yPosition: number;
      gridColumnStart: number;
      gridColumnEnd: number;
      gridRowStart: number;
      gridRowEnd: number;
    
      marginLeft: number;
      marginRight: number;
      marginTop: number;
      marginBottom: number;
    
    rhenck's avatar
    rhenck committed
    }
    
    export interface TextUIElement extends UnitUIElement {
    
      fontColor: string;
      font: string;
      fontSize: number;
      bold: boolean;
      italic: boolean;
      underline: boolean;
    }
    
    
    rhenck's avatar
    rhenck committed
    export interface InputUIElement extends UnitUIElement {
    
      label: string;
      value: string | number | boolean | undefined;
    
      requiredWarnMessage: string;
    
    rhenck's avatar
    rhenck committed
    export interface SurfaceUIElement extends UnitUIElement {
    
    rhenck's avatar
    rhenck committed
      backgroundColor: string;
    }
    
    
    export interface CompoundElementCorrection extends UnitUIElement {
      text: string;
      sentences : string[];
    }
    
    
    export interface TextElement extends TextUIElement, SurfaceUIElement {
      text: string;
    
    rhenck's avatar
    rhenck committed
    export interface ButtonElement extends TextUIElement, SurfaceUIElement {
    
    export interface TextFieldElement extends InputUIElement, TextUIElement, SurfaceUIElement {
    
      value: string;
    
      min: number | undefined;
    
      minWarnMessage: string;
    
      max: number | undefined;
    
      maxWarnMessage: string;
    
    rhenck's avatar
    rhenck committed
    export interface NumberFieldElement extends InputUIElement, TextUIElement, SurfaceUIElement {
      value: number;
    
      min: number | undefined;
    
      minWarnMessage: string;
    
      max: number | undefined;
    
      maxWarnMessage: string;
    
    export interface TextAreaElement extends InputUIElement, TextUIElement, SurfaceUIElement {
    
      value: string;
    
      resizeEnabled: boolean;
    
    export interface CheckboxElement extends InputUIElement, TextUIElement, SurfaceUIElement {
    
      value: boolean | undefined;
    
    rhenck's avatar
    rhenck committed
    export interface DropdownElement extends InputUIElement, TextUIElement, SurfaceUIElement {
    
      label: string;
      options: string[];
    
      value: number | undefined;
    
    rhenck's avatar
    rhenck committed
    export interface RadioButtonGroupElement extends InputUIElement, TextUIElement, SurfaceUIElement {
    
    rhenck's avatar
    rhenck committed
      label: string;
    
      options: string[];
      alignment: 'row' | 'column';
    
      value: number | undefined;
    
    }
    
    export interface ImageElement extends UnitUIElement {
      src: string;
    }
    
    export interface AudioElement extends UnitUIElement {
      src: string;
    }
    
    export interface VideoElement extends UnitUIElement {
      src: string;
    }