Skip to content
Snippets Groups Projects
button-element.ts 976 B
Newer Older
import {
  FontElement,
  FontProperties, PositionedElement,
  PositionProperties,
  SurfaceElement,
  SurfaceProperties,
  UIElement
} from '../../models/uI-element';
import { initFontElement, initPositionedElement, initSurfaceElement } from '../../util/unit-interface-initializer';

export class ButtonElement extends UIElement implements PositionedElement, FontElement, SurfaceElement {
  label: string = 'Knopf';
  imageSrc: string | null = null;
  borderRadius: number = 0;
  action: null | 'previous' | 'next' | 'first' | 'last' | 'end' = null;

  positionProps: PositionProperties;
  fontProps: FontProperties;
  surfaceProps: SurfaceProperties;

  constructor(serializedElement: Partial<UIElement>) {
    super(serializedElement);
    Object.assign(this, serializedElement);
    this.positionProps = initPositionedElement(serializedElement);
    this.fontProps = initFontElement(serializedElement);
    this.surfaceProps = initSurfaceElement(serializedElement);
  }
}