word.component.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Component, Input } from '@angular/core';
  2. import { GenericElement, Lb, Word } from '../../models/evt-models';
  3. import { register } from '../../services/component-register.service';
  4. import { EditionlevelSusceptible, Highlightable } from '../components-mixins';
  5. export interface WordComponent extends EditionlevelSusceptible, Highlightable { }
  6. @Component({
  7. selector: 'evt-word',
  8. templateUrl: './word.component.html',
  9. styleUrls: ['./word.component.scss'],
  10. })
  11. @register(Word)
  12. export class WordComponent {
  13. @Input() data: Word;
  14. get word() {
  15. if (this.editionLevel === 'diplomatic' || this.editionLevel === 'interpretative') {
  16. return this.data.content;
  17. }
  18. const lbIndex = this.data.content.findIndex((el: GenericElement) => el.type === Lb);
  19. if (lbIndex >= 0) {
  20. const wordContent = [...this.data.content];
  21. wordContent.splice(lbIndex, 1);
  22. wordContent.push(this.data.content[lbIndex]);
  23. return wordContent;
  24. }
  25. return this.data.content;
  26. }
  27. public opened = false;
  28. toggleLemData(event: MouseEvent) {
  29. event.stopPropagation();
  30. this.opened = !this.opened;
  31. }
  32. }