Skip to content
Snippets Groups Projects
unit.ts 1.96 KiB
Newer Older
  • Learn to ignore specific revisions
  • export interface Unit {
      pages: UnitPage[];
    }
    
    export interface UnitPage {
      sections: UnitPageSection[];
      width: number;
    
    rhenck's avatar
    rhenck committed
      margin: number;
    
      backgroundColor: string;
    
      alwaysVisible: boolean
    
    }
    
    export interface UnitPageSection {
      elements: UnitUIElement[];
      width: number;
      height: number;
      backgroundColor: string;
    }
    
    export interface UnitUIElement {
      [index: string]: string | number | boolean | string[],
      type: string; // TODO maybe use enum or manual enumeration, because possible values are known
      id: string;
      xPosition: number;
      yPosition: number;
    
      zIndex: number
    
      width: number;
      height: 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 SurfaceUIElement extends UnitUIElement {
      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 {
    
    rhenck's avatar
    rhenck committed
    export interface TextFieldElement extends TextUIElement, SurfaceUIElement {
    
      label: string;
      text: string;
    }
    
    export interface TextAreaElement extends TextUIElement, SurfaceUIElement {
      label: string;
      text: string;
      resizeEnabled: boolean;
    
    rhenck's avatar
    rhenck committed
    export interface CheckboxElement extends TextUIElement, SurfaceUIElement {
    
    rhenck's avatar
    rhenck committed
    export interface DropdownElement extends TextUIElement, SurfaceUIElement {
    
      label: string;
      options: string[];
    }
    
    
    rhenck's avatar
    rhenck committed
    export interface RadioButtonGroupElement extends UnitUIElement, SurfaceUIElement {
    
    rhenck's avatar
    rhenck committed
      label: string;
    
      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;
    }