addition.component.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { Component, Input } from '@angular/core';
  2. import { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive';
  3. import { Addition } from '../../models/evt-models';
  4. import { register } from '../../services/component-register.service';
  5. import { EditorialConventionDefaults } from '../../services/editorial-conventions.service';
  6. import { EditionlevelSusceptible, Highlightable } from '../components-mixins';
  7. export interface AdditionComponent extends EditionlevelSusceptible, Highlightable { }
  8. @register(Addition)
  9. @Component({
  10. selector: 'evt-addition',
  11. templateUrl: './addition.component.html',
  12. styleUrls: ['./addition.component.scss'],
  13. })
  14. export class AdditionComponent {
  15. @Input() data: Addition;
  16. get editorialConventionData(): EditorialConventionLayoutData {
  17. return {
  18. name: 'add',
  19. attributes: this.data.attributes,
  20. editionLevel: this.editionLevel,
  21. defaultsKey: this._getDefaultLayoutsKeys(),
  22. };
  23. }
  24. private _getDefaultLayoutsKeys(): EditorialConventionDefaults {
  25. switch (this.data.place) {
  26. case 'above':
  27. case 'sup':
  28. return 'additionAbove';
  29. case 'below':
  30. case 'under':
  31. case 'sub':
  32. return 'additionBelow';
  33. case 'end':
  34. case 'inline':
  35. case 'inspace':
  36. return 'additionInline';
  37. case 'left':
  38. return 'additionLeft';
  39. case 'right':
  40. return 'additionRight';
  41. default:
  42. return 'addition';
  43. }
  44. }
  45. }