Skip to content
Snippets Groups Projects
UnitFactory.ts 3.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • import {
      AudioElement, ButtonElement,
      CheckboxElement, CompoundElementCorrection, DropdownElement,
    
      ImageElement, TextElement, RadioButtonGroupElement, SurfaceUIElement,
    
    rhenck's avatar
    rhenck committed
      TextFieldElement, TextUIElement, Unit, UnitPage, UnitPageSection, UnitUIElement,
    
      VideoElement, InputUIElement
    
    } from '../../../../common/unit';
    
    
    export function createUnit(): Unit {
      return {
        pages: []
      };
    }
    
    export function createUnitPage(): UnitPage {
      return {
        sections: [],
    
    rhenck's avatar
    rhenck committed
        width: 1100,
    
    rhenck's avatar
    rhenck committed
        margin: 15,
    
        backgroundColor: 'white',
        alwaysVisible: false
    
      };
    }
    
    export function createUnitPageSection(): UnitPageSection {
      return {
        elements: [],
        width: 1200,
        height: 200,
        backgroundColor: '#FFFAF0'
      };
    }
    
    export function createUnitUIElement(type: string): UnitUIElement {
      return {
        type,
    
        id: 'id_placeholder',
    
        xPosition: 0,
        yPosition: 0,
    
        zIndex: 0,
    
        width: 180,
    
    rhenck's avatar
    rhenck committed
        height: 60
      };
    }
    
    export function createTextUIElement(type: string): TextUIElement {
      return {
    
        fontColor: 'blue',
        font: 'Arial',
        fontSize: 18,
        bold: true,
        italic: false,
    
    rhenck's avatar
    rhenck committed
        underline: false,
        ...createUnitUIElement(type)
      };
    }
    
    
    export function createInputUIElement(): InputUIElement {
    
    rhenck's avatar
    rhenck committed
      return {
    
        required: false,
        validationWarnMessage: ''
      };
    }
    
    export function createSurfaceUIElement(): SurfaceUIElement {
      return {
        backgroundColor: 'lightgrey'
    
    export function createTextElement(): TextElement {
    
        text: 'Example Text',
        ...createTextUIElement('text'),
    
      };
    }
    
    export function createButtonElement(): ButtonElement {
      return {
        label: 'Button Text',
    
    rhenck's avatar
    rhenck committed
        ...createTextUIElement('button'),
    
      };
    }
    
    export function createTextfieldElement(): TextFieldElement {
      return {
    
        label: 'Example Label',
    
        value: '',
    
    rhenck's avatar
    rhenck committed
        ...createTextUIElement('text-field'),
    
        ...createSurfaceUIElement(),
        ...createInputUIElement()
    
    export function createTextareaElement(): TextFieldElement {
      return {
        label: 'Example Label',
    
        value: '',
    
        resizeEnabled: false,
    
        ...createTextUIElement('text-area'),
    
        ...createSurfaceUIElement(),
        ...createInputUIElement(),
    
    export function createCheckboxElement(): CheckboxElement {
      return {
        label: 'Label Checkbox',
    
        value: undefined,
    
    rhenck's avatar
    rhenck committed
        ...createTextUIElement('checkbox'),
    
        ...createSurfaceUIElement(),
        ...createInputUIElement()
    
      };
    }
    
    export function createDropdownElement(): DropdownElement {
      return {
        label: 'Label Dropdown',
        options: [],
    
        value: undefined,
    
    rhenck's avatar
    rhenck committed
        ...createTextUIElement('dropdown'),
    
        ...createSurfaceUIElement(),
        ...createInputUIElement()
    
      };
    }
    
    export function createRadioButtonGroupElement(): RadioButtonGroupElement {
      return {
    
    rhenck's avatar
    rhenck committed
        label: 'Label Optionsfeld',
    
        options: [],
        alignment: 'row',
    
        value: undefined,
    
    rhenck's avatar
    rhenck committed
        ...createTextUIElement('radio'),
    
        ...createSurfaceUIElement(),
        ...createInputUIElement(),
    
        height: 75
      };
    }
    
    export function createImageElement(imageSrc: string): ImageElement {
      return {
        src: imageSrc,
        ...createUnitUIElement('image')
      };
    }
    
    export function createAudioElement(audioSrc: string): AudioElement {
      return {
        src: audioSrc,
        ...createUnitUIElement('audio')
      };
    }
    
    export function createVideoElement(videoSrc: string): VideoElement {
      return {
        src: videoSrc,
        ...createUnitUIElement('video')
      };
    }
    
    export function createCorrectionElement(): CompoundElementCorrection {
      return {
        text: 'dummy',
        sentences: [],
        ...createUnitUIElement('correction')
      };
    }