Skip to content
Snippets Groups Projects
unit.ts 822 B
Newer Older
  • Learn to ignore specific revisions
  • import packageJSON from '../../../package.json';
    import { Page } from 'common/models/page';
    
    import { AnswerScheme, UIElement } from 'common/models/elements/element';
    
    
    export class Unit {
      type = 'aspect-unit-definition';
      version: string;
      pages: Page[] = [];
    
    
    rhenck's avatar
    rhenck committed
      constructor(unit?: Partial<Unit>) {
    
        this.version = packageJSON.config.unit_definition_version;
    
    rhenck's avatar
    rhenck committed
        this.pages = unit?.pages?.map(page => new Page(page)) || [new Page()];
    
      }
    
      getAllElements(elementType?: string): UIElement[] {
        return this.pages.map(page => page.getAllElements(elementType)).flat();
    
      getAnswerScheme(): AnswerScheme[] {
    
        const dropLists = [
          ...this.getAllElements('drop-list'),
          ...this.getAllElements('drop-list-simple')
        ];
    
        return this.pages.map(page => page.getAnswerScheme(dropLists)).flat();