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