main-es2015.js.map 965 KB

1
  1. {"version":3,"sources":["./src/app/components/sampling-decl/sampling-decl.component.ts","./src/app/components/sampling-decl/sampling-decl.component.html","./src/app/components/lemmatized-entity/lemmatized-entity-occurrence/lemmatized-entity-occurrence.component.ts","./src/app/components/lemmatized-entity/lemmatized-entity-occurrence/lemmatized-entity-occurrence.component.html","./src/app/components/project-desc/project-desc.component.ts","./src/app/components/project-desc/project-desc.component.html","./src/app/directives/html-attributes.directive.ts","./src/app/components/named-entity-ref/named-entity-ref.component.ts","./src/app/components/named-entity-ref/named-entity-ref.component.html","./src/app/components/text/text.component.ts","./src/app/components/text/text.component.html","./src/app/components/editorial-decl/editorial-decl.component.ts","./src/app/components/editorial-decl/editorial-decl.component.html","./src/app/services/xml-parsers/named-entity-parsers.ts","./src/app/services/xml-parsers/witnesses-parser.service.ts","./src/app/evt-info/evt-info.component.ts","./src/app/evt-info/evt-info.component.html","./src/app/models/evt-models.ts","./src/app/nav-bar/nav-bar.component.ts","./src/app/nav-bar/nav-bar.component.html","./src/app/ui-components/modal/modal.service.ts","./src/app/components/ms-frag/ms-frag.component.ts","./src/app/components/ms-frag/ms-frag.component.html","./src/app/components/history/history.component.ts","./src/app/components/history/history.component.html","./src/app/main-header/main-header.component.ts","./src/app/main-header/main-header.component.html","./src/app/view-modes/text-sources/text-sources.component.ts","./src/app/view-modes/text-sources/text-sources.component.html","./src/app/pipes/starts-with.pipe.ts","./src/app/services/xml-parsers/character-declarations-parser.ts","./src/app/services/evt-status.service.ts","./src/app/components/original-encoding-viewer/original-encoding-viewer.component.ts","./src/app/components/original-encoding-viewer/original-encoding-viewer.component.html","./src/app/components/lb/lb.component.ts","./src/app/components/lb/lb.component.html","./src/app/components/word/word.component.ts","./src/app/components/word/word.component.html","./src/app/services/xml-parsers/xml-parsers.ts","./src/app/services/xml-parsers/ms-desc-parser.service.ts","./src/app/services/xml-parsers/structure-xml-parser.service.ts","./src/app/components/addition/addition.component.ts","./src/app/components/addition/addition.component.html","./src/app/panels/witness-panel/witness-panel.component.ts","./src/app/panels/witness-panel/witness-panel.component.html","./src/app/main-menu/main-menu.component.ts","./src/app/main-menu/main-menu.component.html","./src/app/components/specific-lists/specific-lists.component.ts","./src/app/components/specific-lists/specific-lists.component.html","./src/app/components/series-stmt/series-stmt.component.ts","./src/app/components/series-stmt/series-stmt.component.html","./src/environments/environment.ts","./src/app/pipes/filter.pipe.ts","./src/app/components/namespace/namespace.component.ts","./src/app/components/namespace/namespace.component.html","./src/app/view-modes/reading-text/reading-text.component.ts","./src/app/view-modes/reading-text/reading-text.component.html","./src/app/panels/text-panel/text-panel.component.ts","./src/app/panels/text-panel/text-panel.component.html","./src/app/ui-components/directives/escape.directive.ts","./src/app/directives/highlight.directive.ts","./src/app/services/xml-parsers/msdesc-parser.ts","./src/app/panels/version-panel/version-panel.component.ts","./src/app/panels/version-panel/version-panel.component.html","./src/app/view-modes/text-text/text-text.component.ts","./src/app/view-modes/text-text/text-text.component.html","./src/app/components/lem-entry/lem-entry-detail/lem-entry-detail.component.ts","./src/app/components/lem-entry/lem-entry-detail/lem-entry-detail.component.html","./src/app/components/surplus/surplus.component.ts","./src/app/components/surplus/surplus.component.html","./src/app/services/xml-parsers/prefatory-matter-parser.service.ts","./src/app/components/g/g.component.ts","./src/app/components/g/g.component.html","./src/app/components/note/note.component.ts","./src/app/components/note/note.component.html","./src/app/directives/editorial-convention-layout.directive.ts","./src/app/components/identifier/identifier.component.ts","./src/app/components/identifier/identifier.component.html","./src/app/components/choice/choice.component.ts","./src/app/components/choice/choice.component.html","./src/app/utils/dom-utils.ts","./src/app/components/title-stmt/title-stmt.component.ts","./src/app/components/title-stmt/title-stmt.component.html","./src/app/components/page-selector/page-selector.component.ts","./src/app/components/page-selector/page-selector.component.html","./src/app/services/xml-parsers/header-parser.ts","./src/app/components/ms-part/ms-part.component.ts","./src/app/components/ms-part/ms-part.component.html","./src/app/components/paragraph/paragraph.component.ts","./src/app/components/paragraph/paragraph.component.html","./src/app/components/gap/gap.component.ts","./src/app/components/gap/gap.component.html","./src/app/ui-components/panel/panel.component.ts","./src/app/ui-components/panel/panel.component.html","./src/app/services/annotator/annotator.service.ts","./src/app/services/editorial-conventions.service.ts","./src/app/components/ms-identifier/ms-identifier.component.ts","./src/app/components/ms-identifier/ms-identifier.component.html","./src/app/components/extent/extent.component.ts","./src/app/components/extent/extent.component.html","./src/app/view-modes/text-versions/text-versions.component.ts","./src/app/view-modes/text-versions/text-versions.component.html","./src/app/components/named-entity/named-entity-detail/named-entity-detail.component.ts","./src/app/components/named-entity/named-entity-detail/named-entity-detail.component.html","./src/app/utils/xml-utils.ts","./src/app/services/entities-select.service.ts","./src/app/services/iperlems-select.service.ts","./src/app/components/lemmatized-entity/lemmatized-entity-detail/lemmatized-entity-detail.component.ts","./src/app/components/lemmatized-entity/lemmatized-entity-detail/lemmatized-entity-detail.component.html","./src/app/ui-components/icon/icon.component.ts","./src/app/ui-components/icon/icon.component.html","./src/app/services/xml-parsers/named-entities-parser.service.ts","./src/app/components/encoding-desc/encoding-desc.component.ts","./src/app/components/encoding-desc/encoding-desc.component.html","./src/app/services/xml-parsers/choice-parser.ts","./src/app/services/xml-parsers/lines-verses-parser.service.ts","./src/app/view-modes/image-text/image-text.component.ts","./src/app/view-modes/image-text/image-text.component.html","./src/app/components/edition-level-selector/edition-level-selector.component.ts","./src/app/components/edition-level-selector/edition-level-selector.component.html","./src/app/components/lems-select/lems-select.component.ts","./src/app/components/lems-select/lems-select.component.html","./src/app/ui-components/modal/modal.component.ts","./src/app/ui-components/modal/modal.component.html","./src/app/components/reading/reading.component.ts","./src/app/components/reading/reading.component.html","./src/app/components/generic-element/generic-element.component.ts","./src/app/components/generic-element/generic-element.component.html","./src/app/directives/annotator.directive.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/services/xml-parsers/index.ts","./src/app/pipes/xml-beautify.pipe.ts","./src/app/ui-components/button/button.component.ts","./src/app/ui-components/button/button.component.html","./src/app/panels/image-panel/image-panel.component.ts","./src/app/panels/image-panel/image-panel.component.html","./src/app/panels/pinboard-panel/pinboard-panel.component.ts","./src/app/panels/pinboard-panel/pinboard-panel.component.html","./src/app/pinboard/pinboard.component.ts","./src/app/pinboard/pinboard.component.html","./src/app/pipes/humanize.pipe.ts","./src/app/ui-components/ms-desc-section/ms-desc-section.component.ts","./src/app/ui-components/ms-desc-section/ms-desc-section.component.html","./src/app/services/xml-parsers/facsimile-parser.service.ts","./src/app/app-translation.module.ts","./src/app/components/lem-entry/lem-entry-readings/lem-entry-readings.component.ts","./src/app/components/lem-entry/lem-entry-readings/lem-entry-readings.component.html","./src/app/components/iperlems-select/iperlems-select.component.ts","./src/app/components/iperlems-select/iperlems-select.component.html","./src/app/components/lemmatized-entity-relation/lemmatized-entity-relation.component.ts","./src/app/components/lemmatized-entity-relation/lemmatized-entity-relation.component.html","./src/app/services/xml-parsers/parser-models.ts","./src/app/services/lems-select.service.ts","./src/app/app.module.ts","./src/app/panels/sources-panel/sources-panel.component.ts","./src/app/panels/sources-panel/sources-panel.component.html","./src/app/services/xml-parsers/lemmatized-entity-parsers.ts","./src/app/components/edition-stmt/edition-stmt.component.ts","./src/app/components/edition-stmt/edition-stmt.component.html","./src/app/components/ms-desc/ms-desc.component.ts","./src/app/components/ms-desc/ms-desc.component.html","./src/app/components/lemmatized-entity-ref/lemmatized-entity-ref.component.ts","./src/app/components/lemmatized-entity-ref/lemmatized-entity-ref.component.html","./src/app/app.config.ts","./src/app/components/lemmatized-entities-list/lemmatized-entities-list.component.ts","./src/app/components/lemmatized-entities-list/lemmatized-entities-list.component.html","./src/app/services/xml-parsers/lemmatized-entities-parser.service.ts","./src/app/services/xml-parsers/basic-parsers.ts","./src/app/services/component-register.service.ts","./src/app/components/apparatus-entry/apparatus-entry.component.ts","./src/app/components/apparatus-entry/apparatus-entry.component.html","./src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.ts","./src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.html","./src/app/components/supplied/supplied.component.ts","./src/app/components/supplied/supplied.component.html","./src/app/components/sic/sic.component.ts","./src/app/components/sic/sic.component.html","./src/app/pinboard/pinboard.service.ts","./src/app/services/edition-data.service.ts","./src/app/components/file-desc/file-desc.component.ts","./src/app/components/file-desc/file-desc.component.html","./src/app/components/entities-select/entities-select.component.ts","./src/app/components/entities-select/entities-select.component.html","./src/app/ui-components/directives/click-outside.directive.ts","./src/app/services/evt-model.service.ts","./src/app/components/lem-entry/lem-entry.component.ts","./src/app/components/lem-entry/lem-entry.component.html","./src/app/ui-components/header-section/header-section.component.ts","./src/app/ui-components/header-section/header-section.component.html","./src/app/pinboard/pinner/pinner.component.ts","./src/app/pinboard/pinner/pinner.component.html","./src/app/shortcuts/shortcuts.service.ts","./src/app/services/xml-parsers/app-parser.ts","./src/app/components/named-entity/named-entity.component.ts","./src/app/components/named-entity/named-entity.component.html","./src/app/components/rendition/rendition.component.ts","./src/app/components/rendition/rendition.component.html","./src/app/shortcuts/shortcuts.component.ts","./src/app/shortcuts/shortcuts.component.html","./src/app/components/deletion/deletion.component.ts","./src/app/components/deletion/deletion.component.html","./src/app/components/damage/damage.component.ts","./src/app/components/damage/damage.component.html","./src/app/components/lemmatized-entity/lemmatized-entity.component.ts","./src/app/components/lemmatized-entity/lemmatized-entity.component.html","./src/app/services/xml-parsers/editorial-parsers.ts","./src/app/components/verse/verse.component.ts","./src/app/components/verse/verse.component.html","./src/app/services/themes.service.ts","./src/app/components/ms-item/ms-item.component.ts","./src/app/components/ms-item/ms-item.component.html","./src/app/components/ms-desc-selector/ms-desc-selector.component.ts","./src/app/components/components-mixins.ts","./src/app/services/xml-parsers/facsimile-parser.ts","./src/app/components/global-lists/global-lists.component.ts","./src/app/components/global-lists/global-lists.component.html","./src/app/components/tags-decl/tags-decl.component.ts","./src/app/components/tags-decl/tags-decl.component.html","./src/app/components/osd/osd.component.ts","./src/app/components/osd/osd.component.html","./src/app/components/project-info/project-info.component.ts","./src/app/components/project-info/project-info.component.html","./src/app/ui-components/ui-components.module.ts","./src/app/services/xml-parsers/character-declarations-parser.service.ts","./src/app/components/content-viewer/content-viewer.component.ts","./src/app/components/content-viewer/content-viewer.component.html","./src/app/view-modes/collation/collation.component.ts","./src/app/view-modes/collation/collation.component.html","./src/app/models/evt-polymorphic-models.ts","./src/app/components/additional/additional.component.ts","./src/app/components/additional/additional.component.html","./src/app/components/resp-stmt/resp-stmt.component.ts","./src/app/components/resp-stmt/resp-stmt.component.html","./src/app/components/named-entity-relation/named-entity-relation.component.ts","./src/app/components/named-entity-relation/named-entity-relation.component.html","./src/app/app-routing.module.ts","./src/app/components/char/char.component.ts","./src/app/components/char/char.component.html","./src/app/components/named-entities-list/named-entities-list.component.ts","./src/app/components/named-entities-list/named-entities-list.component.html","./src/app/components/named-entity/named-entity-occurrence/named-entity-occurrence.component.ts","./src/app/components/named-entity/named-entity-occurrence/named-entity-occurrence.component.html","./src/app/components/publication-stmt/publication-stmt.component.ts","./src/app/components/publication-stmt/publication-stmt.component.html","./src/app/components/ms-contents/ms-contents.component.ts","./src/app/components/ms-contents/ms-contents.component.html","./src/app/components/manuscript-thumbnails-viewer/manuscript-thumbnails-viewer.component.ts","./src/app/components/manuscript-thumbnails-viewer/manuscript-thumbnails-viewer.component.html","./src/app/components/phys-desc/phys-desc.component.ts","./src/app/components/phys-desc/phys-desc.component.html","./src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.ts","./src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.html","./src/app/services/xml-parsers/generic-parser.service.ts","./src/app/services/idb.service.ts","./src/app/components/verses-group/verses-group.component.ts","./src/app/components/verses-group/verses-group.component.html","./src/app/components/notes-stmt/notes-stmt.component.ts","./src/app/components/notes-stmt/notes-stmt.component.html","./src/app/components/page/page.component.ts","./src/app/components/page/page.component.html","./src/app/services/xml-parsers/apparatus-entries-parser.service.ts","./src/app/utils/js-utils.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { SamplingDecl } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-sampling-decl',\n templateUrl: './sampling-decl.component.html',\n styleUrls: ['./sampling-decl.component.scss'],\n})\n@register(SamplingDecl)\nexport class SamplingDeclComponent {\n @Input() data: SamplingDecl;\n}\n","<div class=\"samplingDecl\">\n <evt-content-viewer *ngFor=\"let content of data?.content\" [content]=\"content\"></evt-content-viewer>\n</div>","import { Component, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\nimport { LemmatizedEntityOccurrence, LemmatizedEntityOccurrenceRef } from '../../../models/evt-models';\nimport { EVTModelService } from '../../../services/evt-model.service';\nimport { EVTStatusService } from '../../../services/evt-status.service';\n\n@Component({\n selector: 'evt-lemmatized-entity-occurrence',\n templateUrl: './lemmatized-entity-occurrence.component.html',\n styleUrls: ['./lemmatized-entity-occurrence.component.scss'],\n})\nexport class LemmatizedEntityOccurrenceComponent {\n @Input() occurrence: LemmatizedEntityOccurrence;\n @Input() entityLemId: string;\n\n constructor(\n private evtModelService: EVTModelService,\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n goToOccurrenceRef(ref: LemmatizedEntityOccurrenceRef) {\n this.evtModelService.pages$.pipe(take(1)).subscribe(pages => {\n const page = pages.find(p => p.id === this.occurrence.pageId);\n this.evtStatusService.updateDocument$.next(ref.docId);\n this.evtStatusService.updatePage$.next(page);\n this.evtStatusService.currentLemmatizedEntityId$.next(this.entityLemId);\n });\n }\n}\n","<span class=\"ne-occurrence\" *ngFor=\"let refByDoc of occurrence.refsByDoc\" (click)=\"goToOccurrenceRef(refByDoc)\">\n {{ occurrence.pageLabel }} {{ refByDoc.docLabel ? '(' + refByDoc.docLabel + ')' : '' }}\n <span class=\"badge badge-info badge-light ne-occurrence-count\"\n #popover=\"ngbPopover\" \n [ngbPopover]=\"popContent\" \n [autoClose]=\"'outside'\" \n popoverClass=\"evt-note\"\n container=\"body\" \n [placement]=\"['auto']\">\n {{refByDoc.refs?.length}}\n </span>\n <ng-template #popContent>\n <div *ngFor=\"let ref of refByDoc.refs\">\n <evt-content-viewer *ngIf=\"refByDoc.docLabel!==ref\" [content]=\"ref\"></evt-content-viewer>\n </div>\n </ng-template>\n</span>","import { Component, Input } from '@angular/core';\nimport { ProjectDesc } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-project-desc',\n templateUrl: './project-desc.component.html',\n styleUrls: ['./project-desc.component.scss'],\n})\n@register(ProjectDesc)\nexport class ProjectDescComponent {\n @Input() data: ProjectDesc;\n}\n","<div class=\"projectDesc\">\n <evt-content-viewer *ngFor=\"let content of data?.content\" [content]=\"content\"></evt-content-viewer>\n</div>","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { Attributes } from '../models/evt-models';\n\n@Directive({\n selector: '[evtHtmlAttributes]',\n})\nexport class HtmlAttributesDirective implements OnInit {\n @Input('evtHtmlAttributes') attributes: Attributes;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {\n }\n\n ngOnInit() {\n Object.keys(this.attributes).forEach(key => {\n this.renderer.setAttribute(this.el.nativeElement, `data-${key}`, this.attributes[key]);\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { map, tap } from 'rxjs/operators';\n\nimport { NamedEntityRef } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EntitiesSelectService } from '../../services/entities-select.service';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { EVTStatusService } from '../../services/evt-status.service';\nimport { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins';\n\nexport interface NamedEntityRefComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { }\n\n@Component({\n selector: 'evt-named-entity-ref',\n templateUrl: './named-entity-ref.component.html',\n styleUrls: ['./named-entity-ref.component.scss'],\n})\n@register(NamedEntityRef)\nexport class NamedEntityRefComponent {\n @Input() data: NamedEntityRef;\n availableEntities$ = this.evtModelService.namedEntities$.pipe(\n map(ne => ne.all.entities.length > 0),\n );\n\n entity$ = this.evtModelService.namedEntities$.pipe(\n map(ne => ne.all.entities.find(e => e.id === this.data.entityId) || 'notFound'),\n );\n\n public highlighted$ = this.entitiesSelectService.selectedItems$.pipe(\n tap(items => {\n if (this.data) {\n this.data.class = this.data.class || '';\n this.data.attributes = this.data.attributes || {};\n }\n\n return items;\n }),\n map(items => items.some(i => i && this.data &&\n this.entitiesSelectService.matchClassAndAttributes(i.value, this.data.attributes, this.data.class))),\n );\n\n public opened = false;\n\n constructor(\n public evtStatusService: EVTStatusService,\n private evtModelService: EVTModelService,\n private entitiesSelectService: EntitiesSelectService,\n ) {\n }\n\n toggleEntityData(event: MouseEvent) {\n event.stopPropagation();\n this.opened = !this.opened;\n }\n}\n","<span class=\"namedEntityRef {{ data.entityType }} \" (click)=\"toggleEntityData($event)\" [ngClass]=\"{\n opened: opened,\n entityHighlight: (evtStatusService.currentNamedEntityId$ | async) === data.entityId && !opened,\n noDetails: (availableEntities$ | async) === false\n }\" [evtHighlight]=\"highlightData\" [evtHtmlAttributes]=\"data?.attributes\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\" [editionLevel]=\"editionLevel\" [itemsToHighlight]=\"itemsToHighlight\" [textFlow]=\"textFlow\"></evt-content-viewer>\n</span>\n<ng-container *ngIf=\"availableEntities$ | async\">\n <div *ngIf=\"opened\" class=\"namedEntityRefDetail {{ data.entityType }}\">\n <ng-container *ngIf=\"entity$ | async as entity; else loading\">\n <span *ngIf=\"entity === 'notFound'\" class=\"d-block p-2 pl-3 font-italic font-weight-light not-found-msg\">{{ 'entityNotFound' | translate }}</span>\n <evt-named-entity *ngIf=\"entity !== 'notFound'\" [inList]=\"true\" [data]=\"entity\"> </evt-named-entity>\n </ng-container>\n <ng-template #loading>Loading...</ng-template>\n </div>\n</ng-container>","import { Component, Input } from '@angular/core';\nimport { Text } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n})\n@register(Text)\nexport class TextComponent {\n @Input() data: Text;\n}\n","<ng-container *ngIf=\"data\">{{ data.text }}</ng-container>","import { Component, Input } from '@angular/core';\nimport { EditorialDecl } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-editorial-decl',\n templateUrl: './editorial-decl.component.html',\n styleUrls: ['./editorial-decl.component.scss'],\n})\n@register(EditorialDecl)\nexport class EditorialDeclComponent {\n @Input() data: EditorialDecl;\n}\n","<ng-container [ngSwitch]=\"data?.structuredData\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'correction', items: data?.correction, class: 'correction' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'normalization', items: data?.normalization, class: 'normalization' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'punctuation', items: data?.punctuation, class: 'punctuation' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'quotation', items: data?.quotation, class: 'quotation' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'hyphenation', items: data?.hyphenation, class: 'hyphenation' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'segmentation', items: data?.segmentation, class: 'segmentation' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'stdVals', items: data?.stdVals, class: 'stdVals' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'interpretation', items: data?.interpretation, class: 'interpretation' }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngFor=\"let element of data?.content\" [content]=\"element\"></evt-content-viewer>\n </ng-container>\n</ng-container>\n\n\n<ng-template #section let-label=\"label\" let-items=\"items\" let-class=\"class\">\n <evt-header-section *ngIf=\"items?.length > 0\" [label]=\"label\" [additionalClass]=\"class\" [inlineLabel]=\"true\">\n <div content>\n <evt-content-viewer *ngFor=\"let item of items\" [content]=\"item\" ></evt-content-viewer>\n </div>\n </evt-header-section>\n</ng-template>","import { AppConfig } from 'src/app/app.config';\nimport { ParserRegister, xmlParser } from '.';\nimport {\n GenericElement, NamedEntitiesList, NamedEntity, NamedEntityInfo, NamedEntityLabel,\n NamedEntityRef, NamedEntityType, Relation, XMLElement,\n} from '../../models/evt-models';\nimport { xpath } from '../../utils/dom-utils';\nimport { replaceNewLines } from '../../utils/xml-utils';\nimport { AttributeMapParser, AttributeParser, EmptyParser, GenericElemParser, TextParser } from './basic-parsers';\nimport { createParser, parseChildren, Parser } from './parser-models';\n\nexport const namedEntitiesListsTagNamesMap: { [key: string]: string } = {\n persons: 'listPerson',\n places: 'listPlace',\n organizations: 'listOrg',\n events: 'listEvent',\n occurrences: 'persName[ref], placeName[ref], orgName[ref], geogName[ref], event[ref]',\n};\n\nexport function getListType(tagName): NamedEntityType {\n return tagName.replace('list', '').toLowerCase();\n}\n\nexport function getListsToParseTagNames() {\n const neListsConfig = AppConfig.evtSettings.edition.namedEntitiesLists || {};\n\n return Object.keys(neListsConfig)\n .map((i) => neListsConfig[i].enabled ? namedEntitiesListsTagNamesMap[i] : undefined)\n .filter(ne => !!ne);\n}\n\n@xmlParser('evt-named-entities-list-parser', NamedEntitiesListParser)\nexport class NamedEntitiesListParser extends EmptyParser implements Parser<XMLElement> {\n private neListsConfig = AppConfig.evtSettings.edition.namedEntitiesLists || {};\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): NamedEntitiesList {\n const parsedList: NamedEntitiesList = {\n type: NamedEntitiesList,\n id: xml.getAttribute('xml:id') || xpath(xml),\n label: '',\n namedEntityType: getListType(xml.tagName),\n content: [],\n sublists: [],\n originalEncoding: xml,\n relations: [],\n description: [],\n attributes: this.attributeParser.parse(xml),\n };\n\n const relationParse = createParser(RelationParser, this.genericParse);\n xml.childNodes.forEach((child: XMLElement) => {\n if (child.nodeType === 1) {\n switch (child.tagName.toLowerCase()) {\n case 'head':\n parsedList.label = replaceNewLines(child.textContent);\n break;\n case 'desc':\n parsedList.description.push(this.genericParse(child));\n break;\n case 'relation':\n if (this.neListsConfig.relations.enabled) {\n parsedList.relations.push(relationParse.parse(child));\n }\n break;\n case 'listrelation':\n if (this.neListsConfig.relations.enabled) {\n child.querySelectorAll<XMLElement>('relation').forEach(r => parsedList.relations.push(relationParse.parse(r)));\n }\n break;\n default:\n if (getListsToParseTagNames().indexOf(child.tagName) >= 0) {\n const subListParser = ParserRegister.get('evt-named-entities-list-parser');\n const parsedSubList = subListParser.parse(child) as NamedEntitiesList;\n parsedList.sublists.push(parsedSubList);\n parsedList.content = parsedList.content.concat(parsedSubList.content);\n parsedList.relations = parsedList.relations.concat(parsedSubList.relations);\n } else {\n parsedList.content.push(this.genericParse(child) as NamedEntity);\n }\n }\n }\n });\n parsedList.label = parsedList.label || xml.getAttribute('type') || `List of ${parsedList.namedEntityType}`;\n\n return parsedList;\n }\n}\n\n@xmlParser('evt-named-entity-parser', NamedEntityRefParser)\nexport class NamedEntityRefParser extends EmptyParser implements Parser<XMLElement> {\n elementParser = createParser(GenericElemParser, this.genericParse);\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): NamedEntityRef | GenericElement {\n const ref = xml.getAttribute('ref');\n if (!ref) { return this.elementParser.parse(xml); }\n\n const neTypeMap: { [key: string]: NamedEntityType } = {\n placename: 'place',\n geogname: 'place',\n persname: 'person',\n orgname: 'org',\n event: 'event',\n };\n\n return {\n type: NamedEntityRef,\n entityId: getEntityID(ref),\n entityType: neTypeMap[xml.tagName.toLowerCase()],\n path: xpath(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n class: xml.tagName.toLowerCase(),\n };\n }\n\n}\n\n// Generic entity parser\nexport class EntityParser extends EmptyParser implements Parser<XMLElement> {\n // TODO: try to refactor subclasses to use a function parameter to get labels\n attributeParsers = createParser(AttributeMapParser, this.genericParse);\n parse(xml: XMLElement): NamedEntity {\n const elId = xml.getAttribute('xml:id') || xpath(xml);\n const label = replaceNewLines(xml.textContent) || 'No info';\n const entity: NamedEntity = {\n type: NamedEntity,\n id: elId,\n sortKey: xml.getAttribute('sortKey') || (label ? label[0] : '') || xml.getAttribute('xml:id') || xpath(xml),\n originalEncoding: xml,\n label,\n namedEntityType: this.getEntityType(xml.tagName),\n content: Array.from(xml.children).map((subchild: XMLElement) => this.parseEntityInfo(subchild)),\n attributes: this.attributeParsers.parse(xml),\n };\n\n return entity;\n }\n\n private parseEntityInfo(xml: XMLElement): NamedEntityInfo {\n return {\n type: NamedEntityInfo,\n label: xml.nodeType === 1 ? xml.tagName.toLowerCase() : 'info',\n content: [this.genericParse(xml)],\n attributes: xml.nodeType === 1 ? this.attributeParsers.parse(xml) : {},\n };\n }\n\n private getEntityType(tagName): NamedEntityType { return tagName.toLowerCase(); }\n}\n\n@xmlParser('person', PersonParser)\nexport class PersonParser extends EntityParser {\n parse(xml: XMLElement): NamedEntity {\n return {\n ...super.parse(xml),\n label: this.getLabel(xml),\n };\n }\n\n private getLabel(xml: XMLElement) { // TODO: refactor me, also try to use a function parameter for the label for each entity\n const nameElement = xml.querySelector<XMLElement>('name');\n const forenameElement = xml.querySelector<XMLElement>('forename');\n const surnameElement = xml.querySelector<XMLElement>('surname');\n const persNameElement = xml.querySelector<XMLElement>('persName');\n const occupationElement = xml.querySelector<XMLElement>('occupation');\n let label: NamedEntityLabel = 'No info';\n if (persNameElement) {\n label = replaceNewLines(persNameElement.textContent) || 'No info';\n } else if (forenameElement || surnameElement) {\n label += forenameElement ? `${replaceNewLines(forenameElement.textContent)} ` : '';\n label += surnameElement ? `${replaceNewLines(surnameElement.textContent)} ` : '';\n } else if (nameElement) {\n label = replaceNewLines(nameElement.textContent) || 'No info';\n } else {\n label = replaceNewLines(xml.textContent) || 'No info';\n }\n label += occupationElement ? ` (${replaceNewLines(occupationElement.textContent)})` : '';\n\n return label;\n }\n}\n\n@xmlParser('personGrp', PersonGroupParser)\nexport class PersonGroupParser extends EntityParser {\n parse(xml: XMLElement): NamedEntity { return { ...super.parse(xml), label: this.getLabel(xml) }; }\n\n private getLabel(xml: XMLElement) { // TODO: refactor me\n const role = xml.getAttribute('role');\n let label: NamedEntityLabel = 'No info';\n if (role) {\n label = role.trim();\n } else {\n label = replaceNewLines(xml.textContent) || 'No info';\n }\n\n return label;\n }\n}\n\n@xmlParser('place', PlaceParser)\nexport class PlaceParser extends EntityParser {\n parse(xml: XMLElement): NamedEntity { return { ...super.parse(xml), label: this.getLabel(xml) }; }\n\n private getLabel(xml: XMLElement) {\n const placeNameElement = xml.querySelector<XMLElement>('placeName');\n const settlementElement = xml.querySelector<XMLElement>('settlement');\n let label: NamedEntityLabel = 'No info';\n if (placeNameElement) {\n label = replaceNewLines(placeNameElement.textContent) || 'No info';\n } else if (settlementElement) {\n label = replaceNewLines(settlementElement.textContent) || 'No info';\n }\n\n return label;\n }\n}\n\nexport class EventParser extends EntityParser {\n parse(xml: XMLElement): NamedEntity {\n return {\n ...super.parse(xml),\n label: textLabel('label', xml),\n };\n }\n\n getLabel(xml: XMLElement) {\n const eventLabelElement = xml.querySelector<XMLElement>('label');\n\n return (eventLabelElement ? replaceNewLines(eventLabelElement.textContent) : '') || 'No info';\n }\n}\n\n@xmlParser('org', OrganizationParser)\nexport class OrganizationParser extends EntityParser {\n parse(xml: XMLElement): NamedEntity {\n return {\n ...super.parse(xml),\n label: textLabel('orgName', xml),\n };\n }\n}\n\nexport class EntityInfoParser extends EmptyParser implements Parser<XMLElement> {\n attributeParsers = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): NamedEntityInfo {\n return {\n type: NamedEntityInfo,\n label: xml.nodeType === 1 ? xml.tagName.toLowerCase() : 'info',\n content: [this.genericParse(xml)],\n attributes: xml.nodeType === 1 ? this.attributeParsers.parse(xml) : {},\n };\n }\n}\n\nexport class RelationParser extends EmptyParser implements Parser<XMLElement> {\n attributeParsers = createParser(AttributeParser, this.genericParse);\n entityInfoParser = createParser(EntityInfoParser, this.genericParse);\n textParser = createParser(TextParser, this.genericParse);\n\n parse(xml: XMLElement): Relation {\n const descriptionEls = xml.querySelectorAll<XMLElement>('desc');\n const attributes = this.attributeParsers.parse(xml);\n const { name, type } = attributes;\n const active = xml.getAttribute('active') || ''; // TODO: make get attributes return '' as default?\n const mutual = xml.getAttribute('mutual') || '';\n const passive = xml.getAttribute('passive') || '';\n\n const relation: Relation = {\n type: Relation,\n name,\n activeParts: active.replace(/#/g, '').split(' '), // TODO refactor to a single function\n mutualParts: mutual.replace(/#/g, '').split(' '),\n passiveParts: passive.replace(/#/g, '').split(' '),\n relationType: type,\n attributes,\n content: Array.from(xml.children).map((subchild: XMLElement) => this.entityInfoParser.parse(subchild)),\n description: [],\n };\n if (descriptionEls && descriptionEls.length > 0) {\n descriptionEls.forEach((el) => relation.description.push(this.genericParse(el)));\n } else {\n relation.description = [this.textParser.parse(xml)];\n }\n const parentListEl = xml.parentElement.tagName === 'listRelation' ? xml.parentElement : undefined;\n if (parentListEl) {\n relation.relationType = `${(parentListEl.getAttribute('type') || '')} ${(relation.relationType || '')}`.trim();\n }\n\n return relation;\n }\n}\n\nfunction getEntityID(ref: string) { return ref ? ref.replace(/#/g, '') : ''; }\nfunction textLabel(elemName: string, xml: XMLElement) {\n const el = xml.querySelector<XMLElement>(elemName);\n\n return (el ? replaceNewLines(el.textContent) : '') || 'No info';\n}\n","import { Injectable } from '@angular/core';\nimport { parse } from '.';\nimport { Description, Witness, Witnesses, WitnessGroup, XMLElement } from '../../models/evt-models';\nimport { isNestedInElem, xpath } from '../../utils/dom-utils';\nimport { replaceNotWordChar } from '../../utils/xml-utils';\nimport { AttributeParser } from './basic-parsers';\nimport { GenericParserService } from './generic-parser.service';\nimport { createParser, getID } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WitnessesParserService {\n private witListTagName = 'listWit';\n private witTagName = 'witness';\n private witNameAttr = 'type=\"siglum\"';\n private groupTagName = 'head';\n private attributeParser = createParser(AttributeParser, parse);\n\n constructor(\n private genericParserService: GenericParserService,\n ) {\n }\n\n public parseWitnessesData(document: XMLElement): Witnesses {\n const lists = Array.from(document.querySelectorAll<XMLElement>(this.witListTagName));\n\n return {\n witnesses: this.parseWitnessesList(lists),\n groups: this.parseWitnessesGroups(lists),\n };\n }\n\n private parseWitnessesList(lists: XMLElement[]) {\n const parsedList = lists.filter((list) => !isNestedInElem(list, list.tagName))\n .map((list) => this.parseWitnesses(list))\n .reduce((x, y) => x.concat(y), []);\n\n return parsedList;\n }\n\n private parseWitnesses(list: XMLElement) {\n return Array.from(list.querySelectorAll<XMLElement>(this.witTagName))\n .map((wit) => this.parseWitness(wit));\n }\n\n private parseWitness(wit: XMLElement): Witness {\n const id = getID(wit);\n\n return {\n id,\n name: this.parseWitnessName(wit) || id,\n attributes: this.attributeParser.parse(wit),\n content: this.parseWitnessContent(wit),\n groupId: this.parseParentGroupId(wit),\n };\n }\n\n private parseWitnessName(wit: XMLElement) {\n // TODO use ‘?’ operator after update tu angular 9\n const witNameEl = wit.querySelector<XMLElement>(`*[${this.witNameAttr}]`);\n\n if (witNameEl) {\n return Array.from(witNameEl.childNodes)\n .map((child: XMLElement) => this.genericParserService.parse(child));\n }\n\n return witNameEl;\n }\n\n private parseWitnessContent(wit: XMLElement): Description {\n return Array.from(wit.childNodes)\n .filter((child) => child.nodeName !== this.witListTagName && child.textContent.trim().length !== 0)\n .map((child: XMLElement) => this.genericParserService.parse(child));\n }\n\n private parseWitnessesGroups(lists: XMLElement[]) {\n const parsedGroups = lists.filter((list) => isNestedInElem(list, list.tagName))\n .map((list) => this.parseWitnessGroup(list));\n\n return parsedGroups;\n }\n\n private parseWitnessGroup(list: XMLElement): WitnessGroup {\n return {\n id: list.getAttribute('xml:id') || xpath(list),\n name: this.parseGroupName(list) || replaceNotWordChar(list.getAttribute('xml:id')) || xpath(list),\n attributes: this.attributeParser.parse(list),\n witnesses: this.parseGroupWitnesses(list),\n groupId: this.parseParentGroupId(list),\n };\n }\n\n private parseGroupName(list: XMLElement) {\n const groupEl = Array.from(list.children)\n .find((child) => child.nodeName === this.groupTagName);\n\n return groupEl && groupEl.textContent;\n }\n\n private parseGroupWitnesses(list: XMLElement) {\n return Array.from(list.children)\n .filter(({nodeName}) => nodeName === this.witListTagName || nodeName === this.witTagName)\n .map((child) => child.getAttribute('xml:id'));\n }\n\n private parseParentGroupId(element: XMLElement) {\n let parentEl = element.parentElement;\n\n do {\n if (isNestedInElem(parentEl, this.witListTagName) && parentEl.tagName === this.witListTagName) {\n return parentEl.getAttribute('xml:id') || xpath(parentEl);\n }\n parentEl = parentEl.parentElement;\n } while (parentEl.matches(this.witListTagName));\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'evt-evt-info',\n templateUrl: './evt-info.component.html',\n styleUrls: ['./evt-info.component.scss'],\n})\nexport class EvtInfoComponent {\n}\n","<!-- TODO: handle different languages -->\n<div id=\"EVTinfo_content\" class=\"dialog_cont_inner\">\n <p>EVT (Edition Visualization Technology) is a software for creating and browsing digital\n editions of manuscripts based on text encoded according to the TEI XML schemas and Guidelines.\n This tool was born as part of the DVB (Digital Vercelli Book) project in order to allow the creation of a\n digital edition\n of the Vercelli Book, a parchment codex of the late tenth century, now preserved in the Archivio e Biblioteca\n Capitolare of Vercelli and regarded as one of the four most important manuscripts of the Anglo-Saxon period\n as regards the transmission of poetic texts in the Old English language.\n </p>\n <p>To ensure that it will be working on all the most recent web browsers, and for as\n long as possible on the World Wide Web itself, EVT is built on open and standard web technologies such as HTML,\n CSS and JavaScript. Specific features, such as the magnifying lens, are entrusted to jQuery plugins, again\n chosen\n among the open source and best supported ones to reduce the risk of future incompatibilities. The general\n architecture of the software, in any case, is modular, so that any component which may cause trouble or turn\n out to be not completely up to the task can be replaced easily.\n </p>\n <p>For more information about how to use and/or customize EVT please refer to the EVT\n Manual included in the archive you downloaded, in the \"doc\" folder.\n </p>\n <p>EVT is used in the following projects:</p>\n <ul>\n <li><a href=\"http://pelavicino.labcd.unipi.it/\" target=\"blank\">Codice Pelavicino Digitale</a></li>\n <li><a href=\"http://vbd.humnet.unipi.it/\" target=\"blank\">Vercelli Book Digitale</a></li>\n </ul>\n <p>EVT has a home page in the <a href=\"https://sourceforge.net/p/evt-project/\" target=\"blank\">SourceForge</a>\n repository,\n but development is done on Gitlab and Github: if you are interested in learning more about EVT and/or\n in adapting it to your specific needs please contact the project Director, Roberto Rosselli Del Turco\n <a href=\"mailto:roberto.rossellidelturco@gmail.com\" target=\"_top\">roberto.rossellidelturco@gmail.com</a>.\n </p>\n <p>For more information please visit our web page at\n <a href=\"http://evt.labcd.unipi.it/\">http://evt.labcd.unipi.it/</a>\n </p>\n <p>If you have any suggestions or spot an error/bug please contact us at\n <a href=\"mailto:evt.developers@gmail.com\">evt.developers@gmail.com</a>\n </p>\n</div>","import { Type } from '@angular/core';\nimport { EditionLevelType } from '../app.config';\nimport { ParseResult } from '../services/xml-parsers/parser-models';\n\nexport interface EditorialConvention {\n element: string;\n attributes: Attributes;\n layouts: EditorialConventionLayouts;\n}\nexport type EditorialConventionLayouts = Partial<{ [key in EditionLevelType]: Partial<EditorialConventionLayout> }>;\nexport interface EditorialConventionLayout {\n // tslint:disable-next-line: no-any\n style: { [cssProperty: string]: any; }; // List of CSS properties to be assigned to the output element\n pre: string; // Text to be shown before the element\n post: string; // Text to be shown after the element\n}\n\nexport interface HighlightData {\n highlight: boolean;\n highlightColor: string;\n}\n\nexport interface HighlightDataLem {\n highlightLem: boolean;\n highlightColorLem: string;\n}\n\nexport interface HighlightDataIperlem {\n highlightIperlem: boolean;\n highlightColorIperlem: string;\n}\n\nexport class GenericElement {\n // tslint:disable-next-line: no-any\n type: Type<any>;\n path?: string;\n class?: string;\n attributes: Attributes;\n content: Array<ParseResult<GenericElement>>;\n}\n\nexport type XMLElement = HTMLElement;\nexport type OriginalEncodingNodeType = XMLElement;\n\nexport interface EditionStructure {\n pages: Page[];\n}\n\nexport type ViewModeId = 'readingText' | 'imageText' | 'textText' | 'collation' | 'textSources' | 'textVersions';\n\nexport interface ViewMode {\n id: ViewModeId;\n icon: string;\n iconSet?: 'evt' | 'far' | 'fas';\n label: string;\n disabled?: boolean;\n}\n\nexport interface Page {\n id: string;\n label: string;\n facs: string;\n originalContent: OriginalEncodingNodeType[];\n parsedContent: Array<ParseResult<GenericElement>>;\n url: string;\n facsUrl: string;\n}\n\nexport interface NamedEntities {\n all: {\n lists: NamedEntitiesList[];\n entities: NamedEntity[];\n };\n persons: {\n lists: NamedEntitiesList[];\n entities: NamedEntity[];\n };\n places: {\n lists: NamedEntitiesList[];\n entities: NamedEntity[];\n };\n organizations: {\n lists: NamedEntitiesList[];\n entities: NamedEntity[];\n };\n relations: Relation[];\n events: {\n lists: NamedEntitiesList[];\n entities: NamedEntity[];\n };\n}\n\n// add by FS \nexport interface LemmatizedEntities {\n all: {\n lemlists: LemmatizedEntitiesList[];\n lementities: LemmatizedEntity[];\n };\n lemmas: {\n lemlists: LemmatizedEntitiesList[];\n lementities: LemmatizedEntity[];\n };\n relations: Relation[];\n}\n\nexport interface Attributes { [key: string]: string; }\n\nexport interface OriginalEncoding {\n originalEncoding: OriginalEncodingNodeType;\n}\n\nexport type NamedEntityType = 'person' | 'place' | 'org' | 'relation' | 'event' | 'generic';\nexport class NamedEntitiesList extends GenericElement {\n id: string;\n label: string;\n namedEntityType: NamedEntityType;\n description?: Description;\n sublists: NamedEntitiesList[];\n content: NamedEntity[];\n relations: Relation[];\n originalEncoding: OriginalEncodingNodeType;\n}\n\nexport class NamedEntity extends GenericElement {\n id: string;\n sortKey: string;\n label: NamedEntityLabel;\n namedEntityType: NamedEntityType | 'personGrp';\n content: NamedEntityInfo[];\n originalEncoding: OriginalEncodingNodeType;\n}\n\n// add by FS\n\nexport type LemmatizedEntityType = 'lem' | 'w' | 'list' | 'item' ;\nexport class LemmatizedEntitiesList extends GenericElement {\n id: string;\n label: string;\n lemmatizedEntityType: LemmatizedEntityType;\n description?: Description;\n sublists: LemmatizedEntitiesList[];\n content: LemmatizedEntity[];\n relations: Relation[];\n originalEncoding: OriginalEncodingNodeType;\n}\n\nexport class LemmatizedEntity extends GenericElement {\n id: string;\n sortKey: string;\n label: LemmatizedEntityLabel;\n lemmatizedEntityType: LemmatizedEntityType | 'interpGrp';\n content: LemmatizedEntityInfo[];\n originalEncoding: OriginalEncodingNodeType;\n}\n\nexport type LemmatizedEntityLabel = string;\n\nexport class LemmatizedEntityInfo extends GenericElement {\n label: string;\n}\n\nexport interface LemmatizedEntityOccurrence {\n pageId: string;\n pageLabel: string;\n refsByDoc: LemmatizedEntityOccurrenceRef[];\n}\nexport interface LemmatizedEntityOccurrenceRef {\n docId: string;\n docLabel: string;\n refs: GenericElement[];\n}\n\nexport class LemmatizedEntityRef extends GenericElement {\n entityLemId: string;\n entityLemType: LemmatizedEntityType;\n}\n\nexport type NamedEntityLabel = string;\n\nexport class NamedEntityInfo extends GenericElement {\n label: string;\n}\n\nexport interface NamedEntityOccurrence {\n pageId: string;\n pageLabel: string;\n refsByDoc: NamedEntityOccurrenceRef[];\n}\nexport interface NamedEntityOccurrenceRef {\n docId: string;\n docLabel: string;\n refs: GenericElement[];\n}\n\nexport class Relation extends GenericElement {\n name?: string;\n activeParts: string[]; // Pointers to entities involved in relation\n mutualParts: string[]; // Pointers to entities involved in relation\n passiveParts: string[]; // Pointers to entities involved in relation\n description: Description;\n relationType?: string;\n}\n\nexport type Description = Array<ParseResult<GenericElement>>;\n\nexport class NamedEntityRef extends GenericElement {\n entityId: string;\n entityType: NamedEntityType;\n}\n\nexport interface Witnesses {\n witnesses: Witness[];\n groups: WitnessGroup[];\n}\n\nexport interface Witness {\n id: string;\n name: string | Array<ParseResult<GenericElement>> | XMLElement;\n attributes: Attributes;\n content: Array<ParseResult<GenericElement>>;\n groupId: string;\n}\n\nexport interface WitnessGroup {\n id: string;\n name: string;\n attributes: Attributes;\n witnesses: string[];\n groupId: string;\n}\n\nexport class ApparatusEntry extends GenericElement {\n id: string;\n lemma: Reading;\n readings: Reading[];\n notes: Note[];\n originalEncoding: string;\n nestedAppsIDs: string[];\n}\n\n/* add LemEntry FS */\nexport class LemEntry extends GenericElement {\n id: string;\n lemma: Reading;\n readings: Reading[];\n notes: Note[];\n originalEncoding: string;\n nestedLemsIDs: string[];\n}\n\nexport class Reading extends GenericElement {\n id: string;\n witIDs: string[];\n significant: boolean;\n}\n\nexport interface GridItem {\n id: string;\n url: string;\n name: string;\n}\n\nexport type HTML = GenericElement & {\n content: OriginalEncodingNodeType[];\n};\n\nexport class Text extends GenericElement {\n text: string;\n}\nexport type NoteLayout = 'popover' | 'plain-text';\nexport class Note extends GenericElement {\n noteLayout: NoteLayout;\n noteType: string;\n exponent: string;\n}\n\nexport class Paragraph extends GenericElement {\n n: string;\n}\n\nexport class Lb extends GenericElement {\n id: string;\n n?: string;\n facs?: string; // Needed to handle ITL\n rend?: string;\n}\n\nexport type Comment = GenericElement;\n\nexport class Surface extends GenericElement {\n id: string;\n corresp: string;\n graphics: Graphic[];\n zones: {\n lines: ZoneLine[];\n hotspots: ZoneHotSpot[];\n };\n}\nexport type ZoneRendition = 'Line' | 'HotSpot'; // EVT rule to distinguish lines for ITL from HotSpots\nexport interface Point {\n x: number;\n y: number;\n}\nexport class Zone extends GenericElement {\n id: string;\n coords: Point[];\n rendition?: ZoneRendition;\n // In lines @corresp points to <lb> @xml:id in the main text; in HotSpots it points to @xml:id of element which contains HS description\n // In Embedded Transcription it is the same as @xml:id of zone itself\n corresp?: string;\n rend?: string;\n rotate?: number;\n surface?: string;\n}\nexport class ZoneLine extends Zone {\n rendition: 'Line';\n}\nexport class ZoneHotSpot extends Zone {\n rendition: 'HotSpot';\n}\nexport class Graphic extends GenericElement {\n url: string;\n height: string;\n width: string;\n}\n\nexport interface CharMapping {\n type: string;\n subtype: string;\n attributes: Attributes;\n content: Array<ParseResult<GenericElement>>;\n}\nexport interface CharProp {\n name: string;\n value: string;\n}\nexport interface EncodingProp extends CharProp {\n version: string;\n}\nexport class Char extends GenericElement {\n id: string;\n name: string;\n entityName: string;\n localProps: CharProp[];\n mappings: CharMapping[];\n unicodeProp?: EncodingProp;\n unihanProp?: EncodingProp;\n graphics: Graphic[];\n}\n\nexport class G extends GenericElement {\n id: string;\n charId: string;\n}\n\nexport type ChoiceType = 'normalization' | 'emendation';\nexport class Choice extends GenericElement {\n editorialInterventionType: ChoiceType | '';\n originalContent: Array<ParseResult<GenericElement>>;\n normalizedContent: Array<ParseResult<GenericElement>>;\n}\n\nexport class Verse extends GenericElement {\n n: string;\n}\n\nexport class VersesGroup extends GenericElement {\n n: string;\n groupType: string;\n}\n\nexport class Supplied extends GenericElement {\n reason?: string;\n source?: string;\n resp?: string;\n}\n\nexport type DamageDegree = 'high' | 'medium' | 'low' | 'unknown';\nexport class Damage extends GenericElement {\n agent: string;\n group?: number;\n degree?: DamageDegree | string; // string representing a number between 0 (undamaged) and 1 (very extensively damaged)\n}\n\nexport class Surplus extends GenericElement {\n reason?: string;\n}\n\nexport class Gap extends GenericElement {\n reason?: string;\n agent?: string;\n quantity?: number;\n unit?: string;\n extent?: string;\n}\n\nexport type PlacementType = 'above' | 'below' | 'inline' | 'left' | 'right' | 'inspace' | 'end' | 'sup' | 'sub' | 'under';\n\nexport class Addition extends GenericElement {\n place: PlacementType;\n}\n\nexport type SicType = 'crux'; // sic types supported in specific ways\nexport class Sic extends GenericElement {\n sicType?: SicType | string;\n}\n\nexport class Word extends GenericElement {\n lemma?: string;\n}\n\nexport class Deletion extends GenericElement {\n rend: string;\n}\n\nexport class MsFrag extends GenericElement {\n additional: Additional;\n altIdentifier: AltIdentifier;\n history: History;\n msContents: MsContents;\n msIdentifier: MsIdentifier;\n physDesc: PhysDesc;\n pEl: Paragraph[];\n}\n\nexport class MsPart extends MsFrag {\n head: Head;\n msParts: MsPart[];\n}\n\nexport class MsDesc extends MsPart {\n id: string;\n n: string;\n label: string;\n msFrags: MsFrag[];\n}\n\n// TODO: fix classes MsDesc, MsPart and MsFrag\n\nexport class Identifier extends GenericElement {\n collection: CollectionEl[];\n idnos: Array<ParseResult<GenericElement>>; // TODO: Add specific type when idno is handled\n regions: Array<ParseResult<GenericElement>>; // TODO: Add specific type when region is handled\n repository: Repository;\n settlements: Array<ParseResult<GenericElement>>; // TODO: Add specific type when settlement is handled\n countries: Array<ParseResult<GenericElement>>; // TODO: Add specific type when country is handled\n}\n\nexport class AltIdentifier extends Identifier {\n noteEl: Note[];\n}\n\nexport class MsIdentifier extends Identifier {\n id: string;\n institution: Institution;\n altIdentifier: AltIdentifier[];\n msName: MsName[];\n}\n\nexport class MsContents extends GenericElement {\n summary: Summary;\n msItem: MsItem[];\n msItemStruct: MsItemStruct;\n pEl: Paragraph[];\n textLangs: Array<ParseResult<GenericElement>>; // TODO: Add specific type when textLang is handled\n}\n\nexport class PhysDesc extends GenericElement {\n objectDesc: ObjectDesc;\n bindingDesc: BindingDesc;\n decoDesc: DecoDesc;\n handDesc: HandDesc;\n accMat: AccMat;\n additions: Additions;\n musicNotation: MusicNotation;\n scriptDesc: ScriptDesc;\n sealDesc: SealDesc;\n typeDesc: TypeDesc;\n pEl: Paragraph[];\n}\n\nexport class History extends GenericElement {\n acquisition: Acquisition;\n origin: Origin;\n provenance: Provenance[];\n summary: Summary;\n pEl: Paragraph[];\n}\n\nexport class Head extends GenericElement {\n place: string;\n rend: string;\n style: string;\n rendition: string;\n n: string;\n facs: string;\n lbEl: Lb[];\n hi: Array<ParseResult<GenericElement>>; // TODO: Add specific type when hi is handled\n title: Array<ParseResult<GenericElement>>; // TODO: Add specific type when title is handled\n origPlace: OrigPlace;\n origDate: OrigDate;\n}\n\nexport class Institution extends GenericElement {\n country: Array<ParseResult<GenericElement>>; // TODO: Add specific type when country is handled\n region: Array<ParseResult<GenericElement>>; // TODO: Add specific type when region is handled\n}\n\nexport class Repository extends GenericElement {\n lang: string;\n}\n\nexport class MsName extends GenericElement {\n name: Array<ParseResult<GenericElement>>; // TODO: Add specific type when idno is handled\n rs: Array<ParseResult<GenericElement>>; // TODO: Add specific type when rs is handled\n gEl: G[];\n}\n\nexport class CollectionEl extends GenericElement {\n collectionType: string;\n}\n\nexport class MsItemStruct extends GenericElement {\n n: string;\n defective: boolean;\n authors: Array<ParseResult<GenericElement>>; // TODO: Add specific type when author is handled\n respStmt: Array<ParseResult<GenericElement>>; // TODO: Add specific type when restStmt is handled\n titles: Array<ParseResult<GenericElement>>; // TODO: Add specific type when title is handled\n rubric: Rubric;\n incipit: Incipit;\n quote: Array<ParseResult<GenericElement>>; // TODO: Add specific type when quote is handled\n explicit: Explicit;\n finalRubric: FinalRubric;\n colophons: Array<ParseResult<GenericElement>>; // TODO: Add specific type when colophon is handled\n decoNote: DecoNote;\n listBibl: Array<ParseResult<GenericElement>>; // TODO: Add specific type when listBibl is handled\n bibl: Array<ParseResult<GenericElement>>; // TODO: Add specific type when bibl is handled\n filiation: Filiation[];\n noteEl: Note[];\n textLangs: Array<ParseResult<GenericElement>>; // TODO: Add specific type when textLang is handled\n locus: Locus;\n}\n\nexport class MsItem extends MsItemStruct {\n docAuthors: Array<ParseResult<GenericElement>>; // TODO: Add specific type when docAuthor is handled\n docTitles: Array<ParseResult<GenericElement>>; // TODO: Add specific type when docTitle is handled\n docImprints: Array<ParseResult<GenericElement>>; // TODO: Add specific type when docImprint is handled\n docDate: Array<ParseResult<GenericElement>>; // TODO: Add specific type when docDate is handled\n locusGrp: LocusGrp;\n gapEl: Gap[];\n msItem: MsItem[];\n}\n\nexport class Summary extends GenericElement {\n pEl: Paragraph[];\n}\n\nexport class Acquisition extends GenericElement {\n notBefore: string;\n notAfter: string;\n name: Array<ParseResult<GenericElement>>; // TODO: Add specific type when name is handled\n}\n\nexport class Origin extends GenericElement {\n notBefore: string;\n notAfter: string;\n evidence: string;\n resp: string;\n origDate: OrigDate;\n origPlace: OrigPlace;\n}\n\nexport class OrigDate extends GenericElement {\n notBefore: string;\n notAfter: string;\n when: string;\n origDateType: string;\n}\n\nexport class OrigPlace extends GenericElement {\n key: string;\n origPlaceType: string;\n}\n\nexport class Provenance extends GenericElement {\n when: string;\n}\n\nexport class ObjectDesc extends GenericElement {\n form: string;\n layoutDesc: LayoutDesc;\n supportDesc: SupportDesc;\n pEl: Paragraph[];\n}\n\nexport class LayoutDesc extends GenericElement {\n pEl: Paragraph[];\n ab: Array<ParseResult<GenericElement>>; // TODO: Add specific type when ab is handled\n layout: Layout;\n summary: Summary;\n}\n\nexport class Layout extends GenericElement {\n columns: number;\n streams: number;\n ruledLines: number;\n writtenLines: number;\n pEl: Paragraph[];\n}\n\nexport type MaterialValues = 'paper' | 'parch' | 'perg' | 'mixes';\n\nexport class SupportDesc extends GenericElement {\n material: MaterialValues;\n pEl: Paragraph[];\n ab: Array<ParseResult<GenericElement>>; // TODO: Add specific type when ab is handled\n extents: Array<ParseResult<GenericElement>>; // TODO: Add specific type when extent is handled\n collation: Collation;\n condition: Condition;\n foliation: Foliation;\n support: Support;\n}\n\nexport class Condition extends GenericElement {\n pEl: Paragraph[];\n}\n\nexport class Collation extends GenericElement {\n pEl: Paragraph[];\n}\n\nexport class Foliation extends GenericElement {\n id: string;\n pEl: Paragraph[];\n}\n\nexport class Support extends GenericElement {\n material: Array<ParseResult<GenericElement>>; // TODO: Add specific type when material is handled\n watermark: Array<ParseResult<GenericElement>>; // TODO: Add specific type when watermark is handled\n}\n\nexport class BindingDesc extends GenericElement {\n binding: Binding[];\n condition: Array<ParseResult<GenericElement>>; // TODO: Add specific type when condition is handled\n decoNote: DecoNote[];\n pEl: Paragraph[];\n}\n\nexport class Binding extends GenericElement {\n contemporary: boolean;\n condition: Array<ParseResult<GenericElement>>; // TODO: Add specific type when condition is handled\n decoNote: DecoNote[];\n pEl: Paragraph[];\n ab: Array<ParseResult<GenericElement>>; // TODO: Add specific type when ab is handled\n}\n\nexport class DecoDesc extends GenericElement {\n decoNote: DecoNote;\n pEl: Paragraph[];\n ab: Array<ParseResult<GenericElement>>; // TODO: Add specific type when ab is handled\n summary: Summary;\n}\n\nexport class Additions extends GenericElement {\n pEl: Paragraph[];\n}\n\nexport class HandDesc extends GenericElement {\n hands: string;\n handNote: HandNote[];\n}\n\nexport class ScriptDesc extends GenericElement {\n scriptNote: Array<ParseResult<GenericElement>>; // TODO: Add specific type when scriptNote is handled\n summary: Summary;\n}\n\nexport class Seal extends GenericElement {\n contemporary: boolean;\n sealType: string;\n n: string;\n decoNote: DecoNote;\n pEl: Paragraph[];\n ab: Array<ParseResult<GenericElement>>; // TODO: Add specific type when ab is handled\n}\n\nexport class SealDesc extends GenericElement {\n seal: Seal;\n}\n\nexport class TypeDesc extends GenericElement {\n summary: Summary;\n typeNote: TypeNote;\n}\n\nexport class TypeNote extends GenericElement {\n id: string;\n scope: string;\n}\n\nexport class MusicNotation extends GenericElement {\n term: Array<ParseResult<GenericElement>>; // TODO: Add specific type when term is handled\n}\n\nexport class AccMat extends GenericElement {\n pEl: Paragraph[];\n}\n\nexport class Additional extends GenericElement {\n listBibls: Array<ParseResult<GenericElement>>; // TODO: Add specific type when listBibl is handled\n adminInfo: AdminInfo;\n surrogates: Surrogates;\n}\n\nexport class AdminInfo extends GenericElement {\n noteEl: Note[];\n availabilities: Array<ParseResult<GenericElement>>; // TODO: Add specific type when listBibl is handled\n custodialHist: CustodialHist;\n recordHist: RecordHist;\n}\n\nexport class CustodialHist extends GenericElement {\n pEl: Paragraph[];\n ab: Array<ParseResult<GenericElement>>; // TODO: Add specific type when ab is handled\n custEvent?: CustEvent[];\n}\n\nexport class CustEvent extends GenericElement {\n custEventType: string;\n notBefore: string;\n notAfter: string;\n when: string;\n from: string;\n to: string;\n}\n\nexport class RecordHist extends GenericElement {\n pEl: Paragraph[];\n changes: Array<ParseResult<GenericElement>>; // TODO: Add specific type when change is handled\n source: Source[];\n ab: Array<ParseResult<GenericElement>>; // TODO: Add specific type when ab is handled\n}\n\nexport class Source extends GenericElement {\n pEl: Paragraph[];\n}\n\nexport class Surrogates extends GenericElement {\n bibls: Array<ParseResult<GenericElement>>; // TODO: Add specific type when bibl is handled\n pEl: Paragraph[];\n}\n\nexport class Rubric extends GenericElement {\n lang: string;\n rend: string;\n lbEl: Lb[];\n locus: Locus;\n stamp: Array<ParseResult<GenericElement>>; // TODO: Add specific type when stamp is handled\n}\n\nexport class FinalRubric extends GenericElement {\n lbEl: Lb[];\n}\n\nexport class Incipit extends GenericElement {\n lang: string;\n defective: boolean;\n lbEl: Lb[];\n locus: Locus;\n}\n\nexport class Explicit extends GenericElement {\n lang: string;\n defective: boolean;\n locus: Locus;\n}\n\nexport class Locus extends GenericElement {\n scheme: string;\n from: string;\n to: string;\n facs: string;\n target: string;\n hi: Array<ParseResult<GenericElement>>; // TODO: Add specific type when hi is handled\n gEl: G[];\n locus: Locus;\n}\n\nexport class LocusGrp extends GenericElement {\n scheme: string;\n locus: Locus;\n}\n\nexport class DecoNote extends GenericElement {\n decoNoteType: string;\n watermark: Array<ParseResult<GenericElement>>; // TODO: Add specific type when watermark is handled\n}\n\nexport class Filiation extends GenericElement {\n filiationType: string;\n}\n\nexport class Dimensions extends GenericElement {\n dimensionsType: string;\n scope: string;\n extent: string;\n unit: string;\n quantity: number;\n atLeast: number;\n atMost: number;\n min: number;\n max: number;\n height: Height;\n width: Width;\n depth: Depth;\n dim: Dim;\n}\n\nexport class Height extends GenericElement {\n scope: string;\n extent: string;\n unit: string;\n quantity: number;\n atLeast: number;\n atMost: number;\n min: number;\n max: number;\n gEl: G[];\n}\n\nexport class Width extends GenericElement {\n scope: string;\n extent: string;\n unit: string;\n quantity: number;\n atLeast: number;\n atMost: number;\n min: number;\n max: number;\n gEl: G[];\n}\n\nexport class Depth extends GenericElement {\n scope: string;\n extent: string;\n unit: string;\n quantity: number;\n atLeast: number;\n atMost: number;\n min: number;\n max: number;\n gEl: G[];\n}\n\nexport class Dim extends GenericElement {\n dimType: string;\n scope: string;\n extent: string;\n unit: string;\n quantity: number;\n atLeast: number;\n atMost: number;\n min: number;\n max: number;\n gEl: G[];\n}\n\nexport class FileDesc extends GenericElement {\n titleStmt: TitleStmt;\n publicationStmt: PublicationStmt;\n sourceDesc: SourceDesc;\n editionStmt?: EditionStmt;\n extent?: Extent;\n seriesStmt?: SeriesStmt;\n notesStmt?: NotesStmt;\n}\n\nexport class TitleStmt extends GenericElement {\n titles: Array<ParseResult<GenericElement>>; // TODO: Add specific type when title is handled\n subtitles: Array<ParseResult<GenericElement>>; // TODO: Add specific type when subtitle is handled\n authors: Array<ParseResult<GenericElement>>; // TODO: Add specific type when author is handled\n principals: Array<ParseResult<GenericElement>>; // TODO: Add specific type when principal is handled\n respStmts: RespStmt[];\n editors: Array<ParseResult<GenericElement>>; // TODO: Add specific type when editor is handled\n sponsors: Array<ParseResult<GenericElement>>; // TODO: Add specific type when sponsor is handled\n funders: Array<ParseResult<GenericElement>>; // TODO: Add specific type when funder is handled\n}\n\nexport class RespStmt extends GenericElement {\n responsibility: Resp;\n people: Array<ParseResult<NamedEntityRef>>;\n notes: Note[];\n}\n\nexport class Resp extends GenericElement {\n normalizedResp: string;\n date: string;\n}\n\nexport class EditionStmt extends GenericElement {\n structuredData: boolean;\n edition: Array<ParseResult<GenericElement>>; // TODO: Add specific type when edition is handled\n respStmt: RespStmt[];\n}\n\nexport class PublicationStmt extends GenericElement {\n structuredData: boolean;\n publisher: Array<ParseResult<GenericElement>>; // TODO: Add specific type when publisher is handled\n distributor: Array<ParseResult<GenericElement>>; // TODO: Add specific type when distributor is handled\n authority: Array<ParseResult<GenericElement>>; // TODO: Add specific type when authority is handled\n pubPlace: Array<ParseResult<GenericElement>>; // TODO: Add specific type when pubPlace is handled\n address: Array<ParseResult<GenericElement>>; // TODO: Add specific type when address is handled\n idno: Array<ParseResult<GenericElement>>; // TODO: Add specific type when idno is handled\n availability: Array<ParseResult<GenericElement>>; // TODO: Add specific type when availability is handled\n date: Array<ParseResult<GenericElement>>; // TODO: Add specific type when date is handled\n licence: Array<ParseResult<GenericElement>>; // TODO: Add specific type when licence is handled\n}\n\nexport class SeriesStmt extends GenericElement {\n structuredData: boolean;\n title: Array<ParseResult<GenericElement>>; // TODO: Add specific type when title is handled\n idno: Array<ParseResult<GenericElement>>; // TODO: Add specific type when idno is handled\n respStmt: RespStmt[];\n biblScope: Array<ParseResult<GenericElement>>; // TODO: Add specific type when biblScope is handled\n editor: Array<ParseResult<GenericElement>>; // TODO: Add specific type when editor is handled\n}\n\nexport class NotesStmt extends GenericElement {\n notes: Note[];\n relatedItems: Array<ParseResult<GenericElement>>; // TODO: Add specific type when relatedItem is handled\n}\n\nexport class SourceDesc extends GenericElement {\n structuredData: boolean;\n msDescs: MsDesc[];\n bibl: Array<ParseResult<GenericElement>>; // TODO: Add specific type when bibl is handled\n biblFull: Array<ParseResult<GenericElement>>; // TODO: Add specific type when biblFull is handled\n biblStruct: Array<ParseResult<GenericElement>>; // TODO: Add specific type when biblStruct is handled\n recordingStmt: Array<ParseResult<GenericElement>>; // TODO: Add specific type when recordingStmt is handled\n scriptStmt: Array<ParseResult<GenericElement>>; // TODO: Add specific type when scriptStmt is handled\n}\n\nexport class Extent extends GenericElement { }\n\nexport class EncodingDesc extends GenericElement {\n structuredData: boolean;\n projectDesc: ProjectDesc[];\n samplingDecl: SamplingDecl[];\n editorialDecl: EditorialDecl[];\n tagsDecl: TagsDecl[];\n styleDefDecl: ParseResult<GenericElement>; // TODO: Add specific type when styleDefDecl is handled\n refsDecl: RefsDecl[];\n classDecl: Array<ParseResult<GenericElement>>; // TODO: Add specific type when classDecl is handled\n geoDecl: Array<ParseResult<GenericElement>>; // TODO: Add specific type when geoDecl is handled\n unitDecl: Array<ParseResult<GenericElement>>; // TODO: Add specific type when unitDecl is handled\n schemaSpec: Array<ParseResult<GenericElement>>; // TODO: Add specific type when schemaSpec is handled\n schemaRef: Array<ParseResult<GenericElement>>; // TODO: Add specific type when schemaRef is handled\n}\n\nexport class ProjectDesc extends GenericElement {\n content: Paragraph[];\n}\n\nexport class SamplingDecl extends GenericElement {\n content: Paragraph[];\n}\n\nexport type CorrectionStatus = 'high' | 'medium' | 'low' | 'unknown';\nexport type CorrectionMethod = 'silent' | 'markup';\nexport class Correction extends ProjectDesc {\n status?: CorrectionStatus;\n method?: CorrectionMethod;\n}\n\nexport type NormalizationMethod = 'silent' | 'markup';\nexport class Normalization extends ProjectDesc {\n method: NormalizationMethod;\n sources: string[];\n}\n\nexport type PunctuationMarks = 'none' | 'some' | 'all';\nexport type PunctuationPlacement = 'internal' | 'external';\nexport class Punctuation extends ProjectDesc {\n marks?: PunctuationMarks;\n placement?: PunctuationPlacement;\n}\n\nexport type QuotationMarks = 'none' | 'some' | 'all';\nexport class Quotation extends ProjectDesc {\n marks?: QuotationMarks;\n}\n\nexport type HyphenationEol = 'all' | 'some' | 'hard' | 'none';\nexport class Hyphenation extends ProjectDesc {\n eol?: HyphenationEol;\n}\n\nexport class Segmentation extends GenericElement {\n content: Paragraph[];\n}\n\nexport class StdVals extends GenericElement {\n content: Paragraph[];\n}\n\nexport class Interpretation extends GenericElement {\n content: Paragraph[];\n}\n\nexport class EditorialDecl extends GenericElement {\n structuredData: boolean;\n correction: Correction[];\n hyphenation: Hyphenation[];\n interpretation: Interpretation[];\n normalization: Normalization[];\n punctuation: Punctuation[];\n quotation: Quotation[];\n segmentation: Segmentation[];\n stdVals: StdVals[];\n}\n\nexport type RenditionScope = 'first-line' | 'first-letter' | 'before' | 'after';\nexport type Scheme = 'css' | 'xslfo' | 'free' | 'other';\nexport class Rendition extends GenericElement {\n id: string;\n scope?: RenditionScope | string;\n selector?: string;\n scheme?: Scheme;\n schemeVersion?: string;\n}\n\nexport class TagUsage extends GenericElement {\n gi: string;\n occurs: number;\n withId?: number;\n}\n\nexport class Namespace extends GenericElement {\n name: string;\n tagUsage: TagUsage[];\n}\n\nexport class TagsDecl extends GenericElement {\n rendition: Rendition[];\n namespace: Namespace[];\n}\n\nexport class RefsDecl extends GenericElement {\n structuredData: boolean;\n cRefPattern: CRefPattern[];\n refState: RefState[];\n}\n\nexport class RefState extends GenericElement {\n ed: string;\n unit: string;\n length: number;\n delim?: string;\n}\n\nexport class CRefPattern extends GenericElement {\n matchPattern: string;\n replacementPattern: string;\n}\n\nexport class Abstract extends GenericElement {\n resp: string;\n lang: string;\n}\n\nexport class Calendar extends GenericElement {\n id: string;\n target: string;\n}\n\nexport class CalendarDesc extends GenericElement {\n calendars: Calendar[];\n}\n\nexport type CorrespActionType = 'sent' | 'received' | 'transmitted' | 'redirected' | 'forwarded';\nexport class CorrespAction extends GenericElement {\n actionType: CorrespActionType | string;\n}\n\nexport class CorrespContext extends GenericElement { }\n\nexport class CorrespDesc extends GenericElement {\n content: Array<CorrespAction | CorrespContext | Note | Paragraph>;\n}\n\nexport class Creation extends GenericElement { }\n\nexport class Language extends GenericElement {\n ident: string;\n usage?: number;\n}\n\nexport class LangUsage extends GenericElement {\n structuredData: boolean;\n languages: Language[];\n}\n\nexport class CatRef extends GenericElement {\n scheme?: string;\n target?: string;\n}\n\nexport class ClassCode extends GenericElement {\n scheme?: string;\n}\n\nexport class Term extends GenericElement {\n id?: string;\n ref?: string;\n rend?: string;\n}\n\nexport class Keywords extends GenericElement {\n scheme?: string;\n terms: Term[];\n}\n\nexport class TextClass extends GenericElement {\n catRef: CatRef[];\n classCode: ClassCode[];\n keywords: Keywords[];\n}\n\nexport type HandNoteScope = 'sole' | 'major' | 'minor';\nexport class HandNote extends GenericElement {\n id: string;\n scribe?: string;\n scribeRef?: string;\n script?: string;\n scriptRef?: string;\n medium?: string;\n scope?: HandNoteScope;\n}\n\nexport class HandNotes extends GenericElement {\n content: HandNote[];\n}\n\nexport class Ptr extends GenericElement {\n id?: string;\n target?: string;\n cRef?: string;\n ptrType?: string;\n rend?: string;\n}\n\nexport class Transpose extends GenericElement {\n content: Ptr[];\n}\n\nexport class ListTranspose extends GenericElement {\n description: Description[];\n transposes: Transpose[];\n}\n\nexport type ChannelMode = 's' | 'w' | 'sw' | 'ws' | 'm' | 'x';\nexport class Channel extends GenericElement {\n mode?: ChannelMode;\n}\n\nexport class Constitution extends GenericElement {\n constitutionType?: string;\n}\n\nexport class Derivation extends GenericElement {\n derivationType?: string;\n}\n\nexport class Domain extends GenericElement {\n domainType?: string;\n}\n\nexport class Factuality extends GenericElement {\n factualityType?: string;\n}\n\nexport type ActiveParticipants = 'singular' | 'plural' | 'corporate' | 'unknown';\nexport type PassiveParticipants = 'self' | 'single' | 'many' | 'group' | 'world';\nexport class Interaction extends GenericElement {\n interactionType?: string;\n active?: ActiveParticipants | string;\n passive?: PassiveParticipants | string;\n}\n\nexport class Preparedness extends GenericElement {\n preparednessType?: string;\n}\n\nexport type Degree = 'high' | 'medium' | 'low' | 'unknown';\nexport class Purpose extends GenericElement {\n purposeType?: string;\n degree?: Degree;\n}\n\nexport class TextDesc extends GenericElement {\n channel: Channel[];\n constitution: Constitution[];\n derivation: Derivation[];\n domain: Domain[];\n factuality: Factuality[];\n interaction: Interaction[];\n preparedness: Preparedness[];\n purpose: Purpose[];\n}\n\nexport class ParticDesc extends GenericElement {\n structuredData: boolean;\n participants: NamedEntitiesList[];\n}\n\nexport class Setting extends GenericElement {\n who?: string;\n name: GenericElement[]; // TODO: Add specific type when name is handled\n date: GenericElement[]; // TODO: Add specific type when date is handled\n time: GenericElement[]; // TODO: Add specific type when time is handled\n locale: GenericElement[]; // TODO: Add specific type when locale is handled\n activity: GenericElement[]; // TODO: Add specific type when activity is handled\n}\n\nexport class SettingDesc extends GenericElement {\n structuredData: boolean;\n settings: Setting[];\n places: NamedEntitiesList[];\n}\n\nexport class ProfileDesc extends GenericElement {\n abstract: Abstract[];\n calendarDesc: CalendarDesc[];\n correspDesc: CorrespDesc[];\n creation: Creation[];\n handNotes: HandNotes[];\n langUsage: LangUsage[];\n listTranspose: ListTranspose[];\n particDesc: ParticDesc[];\n settingDesc: SettingDesc[];\n textClass: TextClass[];\n textDesc: TextDesc[];\n}\n\nexport type Status = 'approved' | 'candidate' | 'cleared' | 'deprecated' | 'draft' | 'embargoed' | 'expired' | 'frozen' | 'galley' | 'proposed' | 'published' | 'recommendation' | 'submitted' | 'unfinished' | 'withdrawn';\n\nexport class Change extends GenericElement {\n id?: string;\n who?: string;\n status?: Status | string;\n when?: string;\n notBefore?: string;\n notAfter?: string;\n targets?: string[];\n}\n\nexport class ListChange extends GenericElement {\n content: Array<ListChange | Change>;\n id?: string;\n description?: Description;\n ordered?: boolean;\n}\n\nexport class RevisionDesc extends GenericElement {\n content: Array<ListChange | Change>;\n status?: Status | string;\n}\n\nexport class ProjectInfo {\n fileDesc: FileDesc;\n encodingDesc: EncodingDesc;\n profileDesc: ProfileDesc;\n revisionDesc: RevisionDesc;\n}\n\nexport interface ViewerDataValue {\n manifestURL?: string;\n xmlImages?: XMLImagesValues[];\n}\n\nexport interface XMLImagesValues {\n url: string;\n width?: number;\n height?: number;\n}\n\nexport interface ViewerDataType {\n type: string;\n value: ViewerDataValue;\n}\n","import { ChangeContext } from '@angular-slider/ngx-slider';\nimport { AfterViewChecked, ChangeDetectorRef, Component, ElementRef, ViewChild } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport { AppConfig } from '../app.config';\nimport { EVTModelService } from '../services/evt-model.service';\nimport { EVTStatusService } from '../services/evt-status.service';\n\n@Component({\n selector: 'evt-nav-bar',\n templateUrl: './nav-bar.component.html',\n styleUrls: ['./nav-bar.component.scss'],\n})\nexport class NavBarComponent implements AfterViewChecked {\n @ViewChild('thumbnailsContainer') thumbnailsContainer: ElementRef;\n\n private currentPageInfo$ = combineLatest([\n this.evtModelService.pages$,\n this.evtStatusService.currentPage$,\n ]);\n\n prevNavigationDisabled$ = this.currentPageInfo$.pipe(\n map(([pages, page]) => pages.findIndex((p) => p.id === page.id) === 0),\n );\n nextNavigationDisabled$ = this.currentPageInfo$.pipe(\n map(([pages, page]) => pages.findIndex((p) => p.id === page.id) === pages.length - 1),\n );\n\n currentPage$ = this.currentPageInfo$.pipe(\n map(([pages, page]) => pages.findIndex((p) => p.id === page.id)),\n );\n\n thViewerSettings$ = new BehaviorSubject({ col: 1, row: 1 });\n\n thumbnailsButton = AppConfig.evtSettings.ui.thumbnailsButton;\n thumbnailsPanelOpened$ = new BehaviorSubject(false);\n\n viscollButton = AppConfig.evtSettings.ui.viscollButton;\n viscollPanelOpened$ = new BehaviorSubject(false);\n\n navigationDisabled$ = combineLatest([this.thumbnailsPanelOpened$, this.viscollPanelOpened$]).pipe(\n map(([thumbnailsPanelOpened, viscollPanelOpened]) => thumbnailsPanelOpened || viscollPanelOpened),\n );\n\n pageSliderOptions$ = combineLatest([this.navigationDisabled$, this.evtModelService.pages$])\n .pipe(\n map(([navigationDisabled, pages]) => ({\n floor: 0,\n ceil: pages.length - 1,\n showSelectionBar: true,\n translate: (value: number): string => pages[value]?.label ?? '',\n disabled: navigationDisabled,\n })),\n );\n\n constructor(\n private evtStatusService: EVTStatusService,\n private cdref: ChangeDetectorRef,\n public evtModelService: EVTModelService,\n ) {\n }\n\n ngAfterViewChecked() {\n this.calculateThumbsPerPage();\n }\n\n changePage(event: ChangeContext) {\n this.evtModelService.pages$.pipe(take(1)).subscribe(\n (pages) => this.evtStatusService.updatePage$.next(pages[event.value]),\n );\n }\n\n goToFirstPage() {\n this.evtModelService.pages$.pipe(take(1)).subscribe(\n (pages) => this.evtStatusService.updatePage$.next(pages[0]),\n );\n }\n\n goToPrevPage() {\n combineLatest([\n this.evtModelService.pages$,\n this.evtStatusService.currentPage$,\n ]).pipe(take(1)).subscribe(([pages, page]) => {\n const pageIndex = pages.findIndex((p) => p.id === page.id);\n if (pageIndex > 0) {\n this.evtStatusService.updatePage$.next(pages[pageIndex - 1]);\n }\n });\n }\n\n goToNextPage() {\n combineLatest([\n this.evtModelService.pages$,\n this.evtStatusService.currentPage$,\n ]).pipe(take(1)).subscribe(([pages, page]) => {\n const pageIndex = pages.findIndex((p) => p.id === page.id);\n if (pageIndex < pages.length - 1) {\n this.evtStatusService.updatePage$.next(pages[pageIndex + 1]);\n }\n });\n }\n\n goToLastPage() {\n this.evtModelService.pages$.pipe(take(1)).subscribe(\n (pages) => this.evtStatusService.updatePage$.next(pages[pages.length - 1]),\n );\n }\n\n toggleThumbnailsPanel() {\n this.thumbnailsPanelOpened$.pipe(take(1)).subscribe(opened => {\n this.thumbnailsPanelOpened$.next(!opened);\n });\n this.viscollPanelOpened$.pipe(take(1)).subscribe(opened => {\n if (opened) {\n this.viscollPanelOpened$.next(!opened);\n }\n });\n }\n\n toggleViscollPanel() {\n this.viscollPanelOpened$.pipe(take(1)).subscribe(opened => {\n this.viscollPanelOpened$.next(!opened);\n });\n this.thumbnailsPanelOpened$.pipe(take(1)).subscribe(opened => {\n if (opened) {\n this.thumbnailsPanelOpened$.next(!opened);\n }\n });\n }\n\n private calculateThumbsPerPage() {\n const thContainer = this.thumbnailsContainer?.nativeElement;\n if (thContainer) {\n const thMaxHeight = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--thumbnail-height'), 10);\n const thMaxWidth = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--thumbnail-width'), 10);\n this.thViewerSettings$.next({\n col: Math.floor(thContainer.clientWidth / thMaxWidth),\n row: Math.floor(thContainer.clientHeight / thMaxHeight),\n });\n this.cdref.detectChanges();\n }\n }\n}\n","<div class=\"nav-bar w-100\">\n <evt-button *ngIf=\"thumbnailsButton\" [iconRight]=\"{icon: 'th'}\" additionalClasses=\"mr-1\" [active]=\"thumbnailsPanelOpened$ | async\"\n (btnClick)=\"toggleThumbnailsPanel()\" [title]=\"'thumbnails' | translate\"></evt-button>\n <evt-button *ngIf=\"viscollButton\" [iconRight]=\"{icon: 'rainbow', rotate:270}\" additionalClasses=\"mr-1\" [active]=\"viscollPanelOpened$ | async\"\n (btnClick)=\"toggleViscollPanel()\" [title]=\"'viscoll' | translate\"></evt-button>\n <ngx-slider *ngIf=\"pageSliderOptions$ | async as pageSliderOptions\" class=\"ml-2 mr-2\"\n [value]=\"currentPage$ | async\" [options]=\"pageSliderOptions\" (userChangeEnd)=\"changePage($event)\"></ngx-slider>\n <div class=\"navigation-btns-container\">\n <evt-button [iconRight]=\"{icon: 'step-backward'}\" additionalClasses=\"mr-1\" [title]=\"'firstPage' | translate\"\n [disabled]=\"(navigationDisabled$ | async) || (prevNavigationDisabled$ | async)\" (btnClick)=\"goToFirstPage()\"></evt-button>\n <evt-button [iconRight]=\"{icon: 'caret-left'}\" additionalClasses=\"mr-1\" [title]=\"'previousPage' | translate\"\n [disabled]=\"(navigationDisabled$ | async) || (prevNavigationDisabled$ | async)\" (btnClick)=\"goToPrevPage()\"></evt-button>\n <evt-button [iconLeft]=\"{icon: 'caret-right'}\" additionalClasses=\"mr-1\" [title]=\"'nextPage' | translate\"\n [disabled]=\"(navigationDisabled$ | async) || (nextNavigationDisabled$ | async)\" (btnClick)=\"goToNextPage()\"></evt-button>\n <evt-button [iconLeft]=\"{icon: 'step-forward'}\" [title]=\"'lastPage' | translate\"\n [disabled]=\"(navigationDisabled$ | async) || (nextNavigationDisabled$ | async)\" (btnClick)=\"goToLastPage()\"></evt-button>\n </div>\n</div>\n\n<div *ngIf=\"thumbnailsPanelOpened$ | async\" class=\"thumbnails-panel\" #thumbnailsContainer>\n <evt-manuscript-thumbnails [pages]=\"evtModelService.pages$ | async\" [col]=\"(thViewerSettings$ | async)?.col\" [row]=\"(thViewerSettings$ | async)?.row\"\n (clickedItem)=\"toggleThumbnailsPanel()\"></evt-manuscript-thumbnails> \n</div>\n\n<div *ngIf=\"viscollPanelOpened$ | async\" class=\"viscoll-panel\">\n <!-- TODO: Add Viscoll -->\n Viscoll coming soon...\n</div>","import { Injectable } from '@angular/core';\nimport { NgbModal, NgbModalOptions, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private openedModals: { [modalId: string]: NgbModalRef } = {};\n constructor(private ngbModal: NgbModal) { }\n\n open(componentToOpen, options?: ModalOptions): NgbModalRef {\n options = {\n ...options || {},\n keyboard: false,\n };\n const modalRef = this.ngbModal.open(componentToOpen, options);\n if (options && options.id) {\n this.openedModals[options.id] = modalRef;\n }\n\n return modalRef;\n }\n\n close(modalRef: NgbModalRef | string) {\n if (typeof modalRef === 'string') {\n this.openedModals[modalRef].close();\n } else {\n modalRef.close();\n }\n }\n}\n\nexport interface ModalOptions extends NgbModalOptions {\n id?: string;\n}\n","import { Component, Input } from '@angular/core';\nimport { MsFrag } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-ms-frag',\n templateUrl: './ms-frag.component.html',\n styleUrls: ['./ms-frag.component.scss'],\n})\n\n@register(MsFrag)\nexport class MsFragComponent {\n @Input() data: MsFrag;\n}\n","<div class=\"msFrag\"> \n <evt-ms-desc-section [label]=\"'msFrag'\" [underline]=false></evt-ms-desc-section> \n <div class=\"flex-container\" *ngIf=\"data?.pEl.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'summary'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.pEl\"></evt-content-viewer> \n </div>\n </div>\n <evt-ms-identifier *ngIf=\"data?.msIdentifier\" [data]=\"data.msIdentifier\"></evt-ms-identifier>\n <div *ngIf=\"data?.altIdentifier as altIdentifier\">\n <evt-ms-desc-section [label]=\"'altIdentifierLabel'\" [underline]=true></evt-ms-desc-section> \n <evt-identifier [data]=\"data.altIdentifier\" [listClass]=\"false\"></evt-identifier>\n <div class=\"flex-container\" *ngIf=\"altIdentifier.noteEl.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'note'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer *ngFor=\"let no of altIdentifier.noteEl\" [content]=\"no\"></evt-content-viewer>\n </div>\n </div>\n </div>\n <evt-ms-contents *ngIf=\"data?.msContents\" [data]=\"data.msContents\"></evt-ms-contents>\n <evt-phys-desc *ngIf=\"data?.physDesc\" [data]=\"data.physDesc\"></evt-phys-desc>\n <evt-history *ngIf=\"data?.history\" [data]=\"data.history\"></evt-history>\n <evt-additional *ngIf=\"data?.additional\" [data]=\"data.additional\"></evt-additional>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { History } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-history',\n templateUrl: './history.component.html',\n styleUrls: ['./history.component.scss'],\n})\n\n@register(History)\nexport class HistoryComponent {\n @Input() data: History;\n\n}\n","<div class=\"history\"> \n <evt-ms-desc-section [label]=\"'history'\" [underline]=true></evt-ms-desc-section>\n <div class=\"flex-container\" *ngIf=\"data?.summary || data?.pEl.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'summary'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"data?.summary\"></evt-content-viewer>\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.pEl\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.origin\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'origin'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"data?.origin\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.provenance.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'provenance'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer *ngFor=\"let p of data.provenance\" [content]=\"p\" class=\"projectInfo-block\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.acquisition\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'acquisition'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"data?.acquisition\"></evt-content-viewer>\n </div>\n </div>\n</div>\n","import { Component, OnDestroy } from '@angular/core';\nimport { combineLatest, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AppConfig, EditionConfig } from '../app.config';\nimport { ViewMode } from '../models/evt-models';\nimport { EVTModelService } from '../services/evt-model.service';\nimport { EVTStatusService } from '../services/evt-status.service';\nimport { ThemesService } from '../services/themes.service';\nimport { EVTBtnClickEvent } from '../ui-components/button/button.component';\nimport { normalizeUrl } from '../utils/js-utils';\n\n@Component({\n selector: 'evt-main-header',\n templateUrl: './main-header.component.html',\n styleUrls: ['./main-header.component.scss'],\n})\nexport class MainHeaderComponent implements OnDestroy {\n public title$ = combineLatest([\n of(AppConfig?.evtSettings?.edition?.editionTitle),\n this.evtModelService.title$,\n ]).pipe(\n map(([configTitle, editionTitle]) => configTitle ?? editionTitle ?? 'defaultTitle'),\n );\n\n public viewModes: ViewMode[] = AppConfig.evtSettings.edition.availableViewModes?.filter((e => !e.disabled)) ?? [];\n public currentViewMode$ = this.evtStatusService.currentViewMode$;\n public mainMenuOpened = false;\n public editionConfig: EditionConfig = AppConfig.evtSettings.edition;\n get editionHome() { return normalizeUrl(this.editionConfig.editionHome); }\n\n get logoUrl() {\n const customLogo = AppConfig?.evtSettings?.files?.logoUrl ?? undefined;\n\n return customLogo ?? '/evt/assets/images/logo.png';\n }\n\n private subscriptions = [];\n\n constructor(\n public themes: ThemesService,\n private evtModelService: EVTModelService,\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n selectViewMode(viewMode: ViewMode) {\n this.evtStatusService.updateViewMode$.next(viewMode);\n }\n\n toggleMainMenu(clickEvent: EVTBtnClickEvent) {\n clickEvent.event.stopPropagation();\n this.mainMenuOpened = !this.mainMenuOpened;\n }\n\n handleItemClicked(itemClicked: string) {\n if (itemClicked) {\n this.mainMenuOpened = (itemClicked === 'theme' || itemClicked === 'language');\n }\n }\n\n // tslint:disable-next-line: variable-name\n trackViewModes(_index: number, item: ViewMode) {\n return item.id;\n }\n\n openEditionHome() {\n if (this.editionHome) {\n window.open(this.editionHome, '_blank');\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n\n}\n","<nav class=\"navbar justify-content-between temp-header\">\n <a class=\"navbar-brand\">\n <img [src]=\"logoUrl\" height=\"30\" class=\"d-inline-block align-top mr-2\" alt=\"\">\n <span (click)=\"openEditionHome()\" class=\"edition-font\" [class.pointer]=\"editionHome\">{{ (title$ | async) | translate }}</span>\n <a *ngIf=\"editionHome\" [href]=\"editionHome\" target=\"_blank\"\n class=\"ml-2 edition-home-link\">\n <evt-icon [iconInfo]=\"{icon: 'external-link-alt', iconSet: 'fas' }\"></evt-icon>\n </a>\n <span class=\"ml-2 badge badge-pill badge-info inverted font-weight-normal edition-badge\" *ngIf=\"editionConfig?.badge\">{{editionConfig?.badge}}</span>\n </a>\n <div>\n <evt-button additionalClasses=\"btn-no-border viewMode-btn\" \n *ngFor=\"let viewMode of viewModes; trackBy: trackViewModes;\" \n [title]=\"viewMode.label\" [active]=\"viewMode.id === (currentViewMode$ | async)?.id\" [inverted]=\"true\"\n (btnClick)=\"selectViewMode(viewMode)\"\n [iconLeft]=\"{icon: viewMode.icon, iconSet: 'evt', additionalClasses: 'viewMode-selector'}\">\n </evt-button>\n <evt-button (btnClick)=\"toggleMainMenu($event)\" [inverted]=\"true\" [toggler]=\"true\"\n additionalClasses=\"btn-no-border\" [active]=\"mainMenuOpened\"\n [iconLeft]=\"{icon: 'ellipsis-v'}\">\n </evt-button>\n </div>\n</nav>\n\n<evt-main-menu *ngIf=\"mainMenuOpened\" (itemClicked)=handleItemClicked($event)></evt-main-menu>","import { Component, OnInit } from '@angular/core';\nimport { DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { Page } from 'src/app/models/evt-models';\nimport { EVTStatusService } from 'src/app/services/evt-status.service';\nimport { EditionLevel } from '../../app.config';\n\n@Component({\n selector: 'evt-text-sources',\n templateUrl: './text-sources.component.html',\n styleUrls: ['./text-sources.component.scss'],\n})\nexport class TextSourcesComponent implements OnInit {\n public options: GridsterConfig = {};\n public textPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 };\n public sourcesPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 };\n\n public currentPageID$ = this.evtStatusService.currentStatus$.pipe(\n map(({ page }) => page.id),\n );\n\n public currentEditionLevel$ = this.evtStatusService.currentStatus$.pipe(\n map(({ editionLevels }) => editionLevels[0]),\n shareReplay(1),\n );\n\n constructor(\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n ngOnInit() {\n this.initGridster();\n }\n\n changePage(selectedPage: Page) {\n this.evtStatusService.updatePage$.next(selectedPage);\n }\n\n changeEditionLevel(editionLevel: EditionLevel) {\n this.evtStatusService.updateEditionLevels$.next([editionLevel?.id]);\n }\n\n private initGridster() {\n this.options = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n margin: 0,\n maxCols: 2,\n maxRows: 1,\n draggable: {\n enabled: true,\n ignoreContent: true,\n dragHandleClass: 'panel-header',\n },\n resizable: {\n enabled: false,\n },\n };\n }\n}\n","<gridster [options]=\"options\">\n <gridster-item [item]=\"textPanelItem\">\n <evt-text-panel\n [pageID]=\"currentPageID$ | async\" \n [editionLevelID]=\"currentEditionLevel$ | async\"\n (pageChange)=\"changePage($event)\" \n (editionLevelChange)=\"changeEditionLevel($event)\"\n ></evt-text-panel>\n </gridster-item>\n <gridster-item [item]=\"sourcesPanelItem\">\n <evt-sources-panel></evt-sources-panel>\n </gridster-item>\n</gridster>","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'startsWith',\n})\n@Injectable()\nexport class StartsWithPipe implements PipeTransform {\n transform<T>(items: T[], field: string, value: string): T[] {\n if (!items) { return []; }\n if (!value || value.length === 0) { return items; }\n\n return items.filter(it => it[field] && it[field].toLowerCase()[0] === value);\n }\n}\n","import { xmlParser } from '.';\nimport { Char, CharMapping, CharProp, G, Graphic, XMLElement } from '../../models/evt-models';\nimport { AttributeParser, EmptyParser } from './basic-parsers';\nimport { GraphicParser } from './facsimile-parser';\nimport { createParser, getDefaultAttr, getID, parseChildren, Parser } from './parser-models';\n\n@xmlParser('char', CharParser)\nexport class CharParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n public parse(xml: XMLElement): Char {\n return {\n type: Char,\n id: getID(xml),\n attributes: this.attributeParser.parse(xml),\n content: parseChildren(xml, this.genericParse),\n name: this.getName(xml),\n entityName: this.getEntityName(xml),\n mappings: this.getMappings(xml),\n localProps: this.getLocalProps(xml),\n graphics: this.graphicsParser(xml),\n };\n }\n\n getName(xml: XMLElement) {\n const charNameEl = xml.querySelector<XMLElement>('charName');\n if (charNameEl) {\n return charNameEl.textContent;\n }\n const localPropName = Array.from(xml.querySelectorAll<XMLElement>('localProp'))\n .find(el => getDefaultAttr(el.getAttribute('name')).toLowerCase() === 'name');\n\n return localPropName ? getDefaultAttr(localPropName.getAttribute('value')) : '';\n }\n\n getEntityName(xml: XMLElement) {\n const localPropName = Array.from(xml.querySelectorAll<XMLElement>('localProp'))\n .find(el => getDefaultAttr(el.getAttribute('name')).toLowerCase() === 'entity');\n\n return localPropName ? getDefaultAttr(localPropName.getAttribute('value')) : '';\n }\n\n getMappings(xml: XMLElement): CharMapping[] {\n return Array.from(xml.querySelectorAll<XMLElement>('mapping'))\n .map(el => ({\n type: getDefaultAttr(el.getAttribute('type')),\n subtype: getDefaultAttr(el.getAttribute('subtype')),\n attributes: this.attributeParser.parse(el),\n content: parseChildren(el, this.genericParse),\n }));\n }\n\n getLocalProps(xml: XMLElement): CharProp[] {\n return Array.from(xml.querySelectorAll<XMLElement>('localProp'))\n .map(el => ({\n name: getDefaultAttr(el.getAttribute('name')),\n value: getDefaultAttr(el.getAttribute('value')),\n }));\n }\n\n graphicsParser(xml: XMLElement): Graphic[] {\n const graphicParser = createParser(GraphicParser, this.genericParse);\n\n return Array.from(xml.querySelectorAll<XMLElement>('graphic'))\n .map(el => graphicParser.parse(el));\n }\n}\n\n@xmlParser('glyph', GlyphParser)\nexport class GlyphParser extends CharParser implements Parser<XMLElement> {\n\n public parse(xml: XMLElement): Char {\n return {\n type: Char,\n id: getID(xml),\n attributes: this.attributeParser.parse(xml),\n content: parseChildren(xml, this.genericParse),\n name: this.getName(xml),\n entityName: this.getEntityName(xml),\n mappings: this.getMappings(xml),\n localProps: this.getLocalProps(xml),\n graphics: this.graphicsParser(xml),\n };\n }\n\n getName(xml: XMLElement) {\n const charNameEl = xml.querySelector<XMLElement>('glyphName');\n if (charNameEl) {\n return charNameEl.textContent;\n }\n const localPropName = Array.from(xml.querySelectorAll<XMLElement>('localProp'))\n .find(el => getDefaultAttr(el.getAttribute('name')).toLowerCase() === 'name');\n\n return localPropName ? getDefaultAttr(localPropName.getAttribute('value')) : '';\n }\n}\n\n@xmlParser('g', GParser)\nexport class GParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n public parse(xml: XMLElement): G {\n return {\n type: G,\n id: getID(xml),\n attributes: this.attributeParser.parse(xml),\n content: parseChildren(xml, this.genericParse),\n charId: getDefaultAttr(xml.getAttribute('ref')).replace('#', ''),\n };\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationStart, Router } from '@angular/router';\nimport { BehaviorSubject, combineLatest, merge, Observable, Subject, timer } from 'rxjs';\nimport { distinctUntilChanged, filter, first, map, shareReplay, switchMap } from 'rxjs/operators';\n\nimport { AppConfig, EditionLevelType } from '../app.config';\nimport { Page, ViewMode } from '../models/evt-models';\nimport { EVTModelService } from './evt-model.service';\n\nexport type URLParamsKeys = 'd' | 'p' | 'el' | 'ws' | 'vs';\nexport type URLParams = { [T in URLParamsKeys]: string };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EVTStatusService {\n public availableEditionLevels = AppConfig.evtSettings.edition.availableEditionLevels?.filter((e => !e.disabled)) || [];\n get defaultEditionLevelId(): EditionLevelType {\n const defaultConfig = AppConfig.evtSettings.edition.defaultEdition;\n const availableEditionLevels = AppConfig.evtSettings.edition.availableEditionLevels?.filter((e => !e.disabled)) ?? [];\n let defaultEdition = availableEditionLevels[0];\n if (defaultConfig) {\n defaultEdition = availableEditionLevels.find(e => e.id === defaultConfig) ?? defaultEdition;\n }\n\n return defaultEdition?.id;\n }\n\n get availableViewModes() {\n return AppConfig.evtSettings.edition.availableViewModes?.filter((e => !e.disabled)) ?? [];\n }\n get defaultViewMode(): ViewMode {\n const defaultConfig = AppConfig.evtSettings.edition.defaultViewMode;\n let defaultViewMode = this.availableViewModes[0];\n if (defaultConfig) {\n defaultViewMode = this.availableViewModes.find(e => e.id === defaultConfig) ?? defaultViewMode;\n }\n\n return defaultViewMode;\n }\n public updateViewMode$: BehaviorSubject<ViewMode> = new BehaviorSubject(undefined);\n public updateDocument$: BehaviorSubject<string> = new BehaviorSubject('');\n public updatePage$: Subject<Page> = new Subject();\n public updateEditionLevels$: Subject<EditionLevelType[]> = new Subject();\n public updateWitnesses$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n public updateVersions$: BehaviorSubject<string[]> = new BehaviorSubject([]);\n\n public currentViewMode$ = this.updateViewMode$.asObservable();\n public currentDocument$ = merge(\n this.route.queryParams.pipe(map((params: URLParams) => params.d)),\n this.updateDocument$,\n );\n public currentPage$ = combineLatest([\n merge(\n this.route.queryParams.pipe(map((params: URLParams) => params.p)),\n this.updatePage$.pipe(map(p => p.id)),\n ),\n this.evtModelService.pages$.pipe(\n filter((pages) => !!pages && pages.length > 0),\n ),\n ]).pipe(\n map(([id, pages]) => !id ? pages[0] : pages.find((p) => p.id === id) || pages[0]),\n );\n public currentEditionLevels$ = merge(\n this.route.queryParams.pipe(\n map((params: URLParams) => (params.el?.split(',') ?? [])),\n map((editionLevels) => editionLevels?.length > 0 ? editionLevels : [this.defaultEditionLevelId]),\n map((editionLevels: EditionLevelType[]) => editionLevels.filter(el => !!el)),\n ),\n this.updateEditionLevels$,\n );\n public currentWitnesses$ = merge(\n this.route.queryParams.pipe(map((params: URLParams) => params.ws?.split(',') ?? [])),\n this.updateWitnesses$,\n );\n public currentVersions$ = merge(\n this.route.queryParams.pipe(map((params: URLParams) => params.vs?.split(',') ?? [])),\n this.updateVersions$,\n );\n\n public currentStatus$: Observable<AppStatus> = combineLatest([\n this.updateViewMode$,\n this.currentDocument$,\n this.currentPage$,\n this.currentEditionLevels$,\n this.currentWitnesses$,\n this.currentVersions$,\n ]).pipe(\n distinctUntilChanged((x, y) => JSON.stringify(x) === JSON.stringify(y)),\n shareReplay(1),\n map(([\n viewMode,\n document,\n page,\n editionLevels,\n witnesses,\n versions,\n ]) => {\n if (viewMode.id === 'textText') {\n if (editionLevels.length === 1) {\n editionLevels.push(this.availableEditionLevels.filter(e => e.id !== editionLevels[0])[0].id);\n }\n } else if (viewMode.id === 'collation') {\n editionLevels = [];\n } else if (editionLevels.length > 1) {\n editionLevels = editionLevels.slice(0, 1);\n }\n\n return {\n viewMode,\n document,\n page,\n editionLevels,\n witnesses,\n versions,\n };\n }),\n );\n\n public currentUrl$: Observable<{ view: string; params: URLParams }> = this.currentStatus$.pipe(\n map(currentStatus => this.getUrlFromStatus(currentStatus)),\n );\n\n public currentNamedEntityId$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n \n public currentLemmatizedEntityId$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n constructor(\n private evtModelService: EVTModelService,\n private router: Router,\n private route: ActivatedRoute,\n ) {\n this.currentStatus$.subscribe(currentStatus => {\n const { view, params } = this.getUrlFromStatus(currentStatus);\n if (Object.keys(params).length > 0) {\n this.router.navigate([`/${view}`], { queryParams: params });\n } else {\n this.router.navigate([`/${view}`]);\n }\n });\n this.router.events.pipe(\n filter(event => event instanceof NavigationStart),\n first(),\n ).subscribe((event: NavigationStart) => {\n const currentViewMode = this.updateViewMode$.getValue();\n if (!currentViewMode) {\n const pathMatch = event.url.match(/(?<!\\?.+)(?<=\\/)[\\w-]+(?=[/\\r\\n?]|$)/gm);\n if (pathMatch) {\n this.updateViewMode$.next(this.availableViewModes.find(vm => vm.id === pathMatch[0]));\n } else {\n this.updateViewMode$.next(this.defaultViewMode);\n }\n }\n });\n this.currentNamedEntityId$.pipe(\n filter(id => !!id),\n switchMap(id => timer(5000).pipe(map(() => id))),\n ).subscribe(() => this.currentNamedEntityId$.next(undefined));\n\n this.currentLemmatizedEntityId$.pipe(\n filter(id => !!id),\n switchMap(id => timer(5000).pipe(map(() => id))),\n ).subscribe(() => this.currentLemmatizedEntityId$.next(undefined));\n }\n\n // add by FS \n \n getUrlFromStatus(status: AppStatus) {\n const params = {\n d: status.document || '',\n p: status.page?.id ?? '',\n el: status.editionLevels.join(','),\n ws: status.witnesses.join(','),\n vs: status.versions.join(','),\n };\n Object.keys(params).forEach((key) => (params[key] === '') && delete params[key]);\n\n return {\n view: status.viewMode.id,\n params,\n };\n }\n}\n\nexport interface AppStatus {\n viewMode: ViewMode;\n document: string;\n page: Page;\n editionLevels: EditionLevelType[];\n witnesses: string[];\n versions: string[];\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { OriginalEncodingNodeType } from '../../models/evt-models';\n\n@Component({\n selector: 'evt-original-encoding-viewer',\n templateUrl: './original-encoding-viewer.component.html',\n styleUrls: ['./original-encoding-viewer.component.scss'],\n})\nexport class OriginalEncodingViewerComponent implements OnInit {\n @Input() originalEncoding: OriginalEncodingNodeType;\n\n encodingType: 'xml'; // TODO: expand when other encoding will be handled\n\n ngOnInit() {\n if (this.originalEncoding && this.originalEncoding.outerHTML) {\n this.encodingType = 'xml';\n }\n }\n\n}\n","<ng-container [ngSwitch]=\"encodingType\">\n <ng-container *ngSwitchCase=\"'xml'\">\n <handy-syntax-highlighter language=\"markup\" *ngIf=\"originalEncoding\"\n [content]=\"originalEncoding?.outerHTML | xmlBeautify\">\n </handy-syntax-highlighter>\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ 'notSupportedEncoding' | translate }}\n </ng-container>\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { map } from 'rxjs/operators';\n\nimport { Lb } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { EditionlevelSusceptible, TextFlowSusceptible } from '../components-mixins';\n\nexport interface LbComponent extends EditionlevelSusceptible, TextFlowSusceptible { }\n\n@register(Lb)\n@Component({\n selector: 'evt-lb',\n templateUrl: './lb.component.html',\n styleUrls: ['./lb.component.scss'],\n})\nexport class LbComponent {\n @Input() data: Lb;\n\n get displayBlock$() {\n return this.evtModelService.lines$.pipe(\n map(lines => lines.length > 0),\n map(hasLines => {\n // If line has no information about number or the ID line is shown as a block item, no matters what\n if (!this.data.attributes.id && !this.data.attributes.n) {\n return true;\n }\n // Otherwise:\n // - in diplomatic and interpretative edition, if the text has at least one line,\n // those are show as block items, unless current text flow is verses\n // - in critical editionm lines are always shown as inline items, unless current text flow is prose\n switch (this.editionLevel) {\n case 'diplomatic':\n case 'interpretative':\n return this.textFlow === 'verses' ? false : hasLines;\n case 'critical':\n return this.textFlow === 'prose';\n }\n }),\n );\n }\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n}\n","<span class=\"lb\" \n [evtHtmlAttributes]=\"data?.attributes\"\n [attr.id]=\"data.id\" [attr.data-rend]=\"data.rend || ''\" [attr.data-facs]=\"data.facs || ''\">\n <br *ngIf=\"displayBlock$ | async\"/>\n <span class=\"lineN\" *ngIf=\"data.n && (displayBlock$ | async)\">{{data.n}}</span>\n</span>\n","import { Component, Input } from '@angular/core';\n\nimport { GenericElement, Lb, Word } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface WordComponent extends EditionlevelSusceptible, Highlightable { }\n\n@Component({\n selector: 'evt-word',\n templateUrl: './word.component.html',\n styleUrls: ['./word.component.scss'],\n})\n@register(Word)\nexport class WordComponent {\n @Input() data: Word;\n\n \n get word() {\n if (this.editionLevel === 'diplomatic' || this.editionLevel === 'interpretative') {\n return this.data.content;\n }\n\n const lbIndex = this.data.content.findIndex((el: GenericElement) => el.type === Lb);\n if (lbIndex >= 0) {\n const wordContent = [...this.data.content];\n wordContent.splice(lbIndex, 1);\n wordContent.push(this.data.content[lbIndex]);\n\n return wordContent;\n }\n\n return this.data.content;\n }\n\n public opened = false;\n\n toggleLemData(event: MouseEvent) {\n event.stopPropagation();\n this.opened = !this.opened;\n }\n}\n","<span class=\"word {{data.class}}\" (click)=\"toggleLemData($event)\" [evtHtmlAttributes]=\"data.attributes\">\n\t<evt-content-viewer *ngFor=\"let el of word\" [content]=\"el\" [editionLevel]=\"editionLevel\" \n\t\t[itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [evtHighlight]=\"highlightData\">\n\t</evt-content-viewer>\n</span>","import { Injectable, Type } from '@angular/core';\nimport { AppParser, RdgParser } from './app-parser';\nimport {\n AdditionParser, DamageParser, DeletionParser, GapParser, LBParser, NoteParser, ParagraphParser, PtrParser, SuppliedParser,\n TermParser, VerseParser, VersesGroupParser, WordParser,\n} from './basic-parsers';\nimport { CharParser, GlyphParser, GParser } from './character-declarations-parser';\nimport { ChoiceParser } from './choice-parser';\nimport { SicParser, SurplusParser } from './editorial-parsers';\nimport { GraphicParser, SurfaceParser, ZoneParser } from './facsimile-parser';\nimport {\n AbstractParser, CalendarDescParser, CalendarParser, CatRefParser, ChangeParser, ChannelParser, ClassCodeParser, ConstitutionParser,\n CorrectionParser, CorrespActionParser, CorrespContextParser, CorrespDescParser, CreationParser, CRefPatternParser,\n DerivationParser, DomainParser, EditorialDeclParser, EncodingDescParser, FactualityParser,\n HandNoteParser, HandNotesParser, HyphenationParser, InteractionParser, InterpretationParser, KeywordsParser,\n LanguageParser, LangUsageParser, ListChangeParser, ListTransposeParser, NamespaceParser, NormalizationParser,\n ParticDescParser, PreparednessParser, ProfileDescParser, ProjectDescParser, PunctuationParser, PurposeParser,\n QuotationParser, RefsDeclParser, RefStateParser, RenditionParser, RevisionDescParser,\n SamplingDeclParser, SegmentationParser, SettingDescParser, SettingParser, StdValsParser,\n TagsDeclParser, TagUsageParser, TextClassParser, TextDescParser, TransposeParser,\n} from './header-parser';\nimport {\n AccMatParser, AcquisitionParser, AdditionalParser, AdditionsParser, AdminInfoParser,\n AltIdentifierParser, BindingDescParser, BindingParser, CollationParser, CollectionParser, ConditionParser,\n CustEventParser, CustodialHistParser, DecoDescParser, DecoNoteParser, DepthParser, DimensionsParser,\n DimParser, ExplicitParser, FiliationParser, FinalRubricParser, FoliationParser, HandDescParser,\n HeadParser, HeightParser, HistoryParser, IncipitParser, InstitutionParser, LayoutDescParser, LayoutParser,\n LocusGrpParser, LocusParser, MsContentsParser, MsDescParser, MsFragParser, MsIdentifierParser, MsItemParser,\n MsItemStructParser, MsNameParser, MsPartParser, MusicNotationParser, ObjectDescParser, OrigDateParser, OriginParser,\n OrigPlaceParser, PhysDescParser, ProvenanceParser, RecordHistParser, RepositoryParser, RubricParser, ScriptDescParser,\n SealDescParser, SealParser, SourceParser, SummaryParser, SupportDescParser, SupportParser, SurrogatesParser,\n TypeDescParser, TypeNoteParser, WidthParser,\n} from './msdesc-parser';\nimport { NamedEntityRefParser, OrganizationParser, PersonGroupParser, PersonParser, PlaceParser } from './named-entity-parsers';\n\n// tslint:disable-next-line: no-any\nexport function ParsersDecl(declarations: Array<Type<any>>) {\n // tslint:disable-next-line: no-any\n return (_: any) => {\n return class extends _ {\n declarations = declarations;\n };\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\n@ParsersDecl([\n AbstractParser,\n AccMatParser,\n AcquisitionParser,\n AdditionalParser,\n AdditionParser,\n AdditionsParser,\n AdminInfoParser,\n AltIdentifierParser,\n AppParser,\n BindingDescParser,\n BindingParser,\n CalendarDescParser,\n CalendarParser,\n CatRefParser,\n ChannelParser,\n ChangeParser,\n CharParser,\n ChoiceParser,\n ClassCodeParser,\n CollationParser,\n CollectionParser,\n ConditionParser,\n ConstitutionParser,\n CorrectionParser,\n CorrespActionParser,\n CorrespContextParser,\n CorrespDescParser,\n CreationParser,\n CRefPatternParser,\n CustEventParser,\n CustodialHistParser,\n DamageParser,\n DecoDescParser,\n DecoNoteParser,\n DeletionParser,\n DepthParser,\n DerivationParser,\n DimensionsParser,\n DimParser,\n DomainParser,\n EditorialDeclParser,\n EncodingDescParser,\n ExplicitParser,\n FactualityParser,\n FiliationParser,\n FinalRubricParser,\n FoliationParser,\n GapParser,\n GlyphParser,\n GParser,\n GraphicParser,\n HandDescParser,\n HandNoteParser,\n HandNotesParser,\n HeadParser,\n HeightParser,\n HistoryParser,\n HyphenationParser,\n IncipitParser,\n InstitutionParser,\n InteractionParser,\n InterpretationParser,\n KeywordsParser,\n LanguageParser,\n LangUsageParser,\n LayoutDescParser,\n LayoutParser,\n LBParser,\n ListTransposeParser,\n ListChangeParser,\n LocusGrpParser,\n LocusParser,\n MsContentsParser,\n MsDescParser,\n MsFragParser,\n MsIdentifierParser,\n MsItemParser,\n MsItemStructParser,\n MsNameParser,\n MsPartParser,\n MusicNotationParser,\n NamedEntityRefParser,\n NamespaceParser,\n NormalizationParser,\n NoteParser,\n ObjectDescParser,\n OrganizationParser,\n OrigDateParser,\n OriginParser,\n OrigPlaceParser,\n ParagraphParser,\n ParticDescParser,\n PersonGroupParser,\n PersonParser,\n PhysDescParser,\n PlaceParser,\n PreparednessParser,\n ProfileDescParser,\n ProjectDescParser,\n ProvenanceParser,\n PtrParser,\n PunctuationParser,\n PurposeParser,\n QuotationParser,\n RdgParser,\n RecordHistParser,\n RefsDeclParser,\n RefStateParser,\n RenditionParser,\n RepositoryParser,\n RevisionDescParser,\n RubricParser,\n SamplingDeclParser,\n ScriptDescParser,\n SealDescParser,\n SealParser,\n SegmentationParser,\n SettingDescParser,\n SettingParser,\n SicParser,\n SourceParser,\n StdValsParser,\n SummaryParser,\n SuppliedParser,\n SupportDescParser,\n SupportParser,\n SurfaceParser,\n SurplusParser,\n SurrogatesParser,\n TagsDeclParser,\n TagUsageParser,\n TermParser,\n TextClassParser,\n TextDescParser,\n TransposeParser,\n TypeDescParser,\n TypeNoteParser,\n VerseParser,\n VersesGroupParser,\n WidthParser,\n WordParser,\n ZoneParser,\n])\nexport class XMLParsers {\n}\n","import { Injectable } from '@angular/core';\nimport { parse } from '.';\nimport { MsDesc, XMLElement } from '../../models/evt-models';\nimport { MsDescParser } from './msdesc-parser';\nimport { createParser } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MsDescParserService {\n private msDescParser = createParser(MsDescParser, parse);\n\n parseMsDesc(xml: XMLElement): MsDesc[] {\n\n return Array.from(xml.querySelectorAll<XMLElement>('msDesc')).map(s => this.msDescParser.parse(s));\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AppConfig } from '../../app.config';\nimport { EditionStructure, GenericElement, OriginalEncodingNodeType, Page, XMLElement } from '../../models/evt-models';\nimport { createNsResolver, getElementsBetweenTreeNode, isNestedInElem } from '../../utils/dom-utils';\nimport { GenericParserService } from './generic-parser.service';\nimport { getID, ParseResult } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StructureXmlParserService {\n constructor(\n private genericParserService: GenericParserService,\n ) {\n }\n\n private frontOrigContentAttr = 'document_front';\n readonly frontTagName = 'front';\n readonly pageTagName = 'pb';\n readonly bodyTagName = 'body';\n\n parsePages(el: XMLElement): EditionStructure {\n if (!el) { return { pages: [] }; }\n\n const front: XMLElement = el.querySelector(this.frontTagName);\n const body: XMLElement = el.querySelector(this.bodyTagName);\n\n const pbs = Array.from(el.querySelectorAll(this.pageTagName)).filter((p) => !p.getAttribute('ed'));\n const frontPbs = pbs.filter((p) => isNestedInElem(p, this.frontTagName));\n const bodyPbs = pbs.filter((p) => isNestedInElem(p, this.bodyTagName));\n const doc = el.firstElementChild.ownerDocument;\n\n if (frontPbs.length > 0 && bodyPbs.length > 0) {\n return {\n pages: pbs.map((pb: XMLElement, idx, arr: XMLElement[]) => this.parseDocumentPage(doc, pb, arr[idx + 1], 'text')),\n };\n }\n\n const frontPages = frontPbs.length === 0 && front && this.isMarkedAsOrigContent(front)\n ? [this.parseSinglePage(doc, front, 'page_front', this.frontTagName, 'facs_front')]\n : frontPbs.map((pb, idx, arr) => this.parseDocumentPage(doc, pb as HTMLElement, arr[idx + 1] as HTMLElement, this.frontTagName));\n\n const bodyPages = bodyPbs.length === 0\n ? [this.parseSinglePage(doc, body, 'page1', 'mainText', 'facs1')] // TODO: tranlsate mainText\n : bodyPbs.map((pb, idx, arr) => this.parseDocumentPage(doc, pb as HTMLElement, arr[idx + 1] as HTMLElement, this.bodyTagName));\n\n return {\n pages: [...frontPages, ...bodyPages],\n };\n }\n\n parseDocumentPage(doc: Document, pb: XMLElement, nextPb: XMLElement, ancestorTagName: string): Page {\n /* If there is a next page we retrieve the elements between two page nodes\n otherweise we retrieve the nodes between the page node and the last node of the body node */\n // TODO: check if querySelectorAll can return an empty array in this case\n const nextNode = nextPb || Array.from(doc.querySelectorAll(ancestorTagName)).reverse()[0].lastChild;\n const originalContent = getElementsBetweenTreeNode(pb, nextNode)\n .filter((n) => n.tagName !== this.pageTagName)\n .filter((c) => ![4, 7, 8].includes(c.nodeType)); // Filter comments, CDATAs, and processing instructions\n\n return {\n id: getID(pb, 'page'),\n label: pb.getAttribute('n') || 'page',\n facs: (pb.getAttribute('facs') || 'page').split('#').slice(-1)[0],\n originalContent,\n parsedContent: this.parsePageContent(doc, originalContent),\n url: this.getPageUrl(getID(pb, 'page')),\n facsUrl: this.getPageUrl((pb.getAttribute('facs') || 'page').split('#').slice(-1)[0]),\n };\n }\n\n private parseSinglePage(doc: Document, el: XMLElement, id: string, label: string, facs: string): Page {\n const originalContent: XMLElement[] = getElementsBetweenTreeNode(el.firstChild, el.lastChild);\n\n return {\n id,\n label,\n facs,\n originalContent,\n parsedContent: this.parsePageContent(doc, originalContent),\n url: this.getPageUrl(id),\n facsUrl: this.getPageUrl(facs),\n };\n }\n\n private getPageUrl(id) {\n // TODO: check if exists <graphic> element connected to page and return its url\n // TODO: handle multiple version of page\n const image = id.split('.')[0];\n\n return `${AppConfig.evtSettings.files.imagesFolderUrl}/${image}.jpg`;\n }\n\n parsePageContent(doc: Document, pageContent: OriginalEncodingNodeType[]): Array<ParseResult<GenericElement>> {\n return pageContent\n .map((node) => {\n const origEl = getEditionOrigNode(node, doc);\n if (origEl.nodeName === this.frontTagName || isNestedInElem(origEl, this.frontTagName)) {\n if (this.hasOriginalContent(origEl)) {\n return Array.from(origEl.querySelectorAll(`[type=${this.frontOrigContentAttr}]`))\n .map((c) => this.genericParserService.parse(c as XMLElement));\n }\n if (this.isMarkedAsOrigContent(origEl)) {\n return [this.genericParserService.parse(origEl)];\n }\n\n return [] as Array<ParseResult<GenericElement>>;\n }\n\n if (origEl.tagName === 'text' && origEl.querySelectorAll && origEl.querySelectorAll(this.frontTagName).length > 0) {\n return this.parsePageContent(doc, Array.from(origEl.children) as HTMLElement[]);\n }\n\n return [this.genericParserService.parse(origEl)];\n })\n .reduce((x, y) => x.concat(y), []);\n }\n\n hasOriginalContent(el: XMLElement): boolean {\n return el.querySelectorAll(`[type=${this.frontOrigContentAttr}]`).length > 0;\n }\n\n isMarkedAsOrigContent(el: XMLElement): boolean {\n return el.nodeType !== 3 &&\n (el.getAttribute('type') === this.frontOrigContentAttr ||\n this.hasOriginalContent(el) ||\n isNestedInElem(el, '', [{ key: 'type', value: this.frontOrigContentAttr }])\n );\n }\n}\n\nfunction getEditionOrigNode(el: XMLElement, doc: Document) {\n if (el.getAttribute && el.getAttribute('xpath')) {\n const path = doc.documentElement.namespaceURI ? el.getAttribute('xpath').replace(/\\//g, '/ns:') : el.getAttribute('xpath');\n const xpathRes = doc.evaluate(path, doc, createNsResolver(doc), XPathResult.ANY_TYPE, undefined);\n\n return xpathRes.iterateNext() as XMLElement;\n }\n\n return el;\n}\n","import { Component, Input } from '@angular/core';\n\nimport { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive';\nimport { Addition } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditorialConventionDefaults } from '../../services/editorial-conventions.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface AdditionComponent extends EditionlevelSusceptible, Highlightable { }\n\n@register(Addition)\n@Component({\n selector: 'evt-addition',\n templateUrl: './addition.component.html',\n styleUrls: ['./addition.component.scss'],\n})\nexport class AdditionComponent {\n @Input() data: Addition;\n\n get editorialConventionData(): EditorialConventionLayoutData {\n return {\n name: 'add',\n attributes: this.data.attributes,\n editionLevel: this.editionLevel,\n defaultsKey: this._getDefaultLayoutsKeys(),\n };\n }\n\n private _getDefaultLayoutsKeys(): EditorialConventionDefaults {\n switch (this.data.place) {\n case 'above':\n case 'sup':\n return 'additionAbove';\n case 'below':\n case 'under':\n case 'sub':\n return 'additionBelow';\n case 'end':\n case 'inline':\n case 'inspace':\n return 'additionInline';\n case 'left':\n return 'additionLeft';\n case 'right':\n return 'additionRight';\n default:\n return 'addition';\n }\n }\n}\n","<span class=\"add\" [attr.data-edition]=\"editionLevel\" [attr.data-place]=\"data.place\" \n [evtHighlight]=\"highlightData\" [evtEditorialConventionLayout]=\"editorialConventionData\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\" \n [editionLevel]=\"editionLevel\" [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\"></evt-content-viewer>\n</span>","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'evt-witness-panel',\n templateUrl: './witness-panel.component.html',\n styleUrls: ['./witness-panel.component.scss'],\n})\nexport class WitnessPanelComponent {\n @Input() witness: string;\n @Output() hide = new EventEmitter<boolean>();\n\n emitHide() {\n this.hide.emit(true);\n }\n\n}\n","<evt-panel [comparable]=\"true\" [secondary]=\"true\" [closable]=\"true\" (hide)=\"emitHide()\">\n <div header-left>\n <!-- TODO: Add dropdowns for navigation -->\n Witness {{ witness }}\n </div>\n <div content evtAnnotator>\n <h1>Text of witness</h1>\n <p>\n Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Inmensae subtilitatis, obscuris et malesuada fames. Ambitioni dedisse scripsisse iudicaretur. At nos hinc posthac, sitientis piros Afros.\n </p>\n </div>\n</evt-panel>","\nimport { Component, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { AppConfig } from '../app.config';\nimport { GlobalListsComponent } from '../components/global-lists/global-lists.component';\n// import { SpecificListsComponent } from '../components/specific-lists/specific-lists.component';\nimport { ProjectInfoComponent } from '../components/project-info/project-info.component';\nimport { EvtInfoComponent } from '../evt-info/evt-info.component';\nimport { EVTModelService } from '../services/evt-model.service';\nimport { ColorTheme, ThemesService } from '../services/themes.service';\nimport { ShortcutsComponent } from '../shortcuts/shortcuts.component';\nimport { EvtIconInfo } from '../ui-components/icon/icon.component';\nimport { ModalComponent } from '../ui-components/modal/modal.component';\nimport { ModalService } from '../ui-components/modal/modal.service';\n\n@Component({\n selector: 'evt-main-menu',\n templateUrl: './main-menu.component.html',\n styleUrls: ['./main-menu.component.scss'],\n})\nexport class MainMenuComponent implements OnInit, OnDestroy {\n @Output() itemClicked = new EventEmitter<string>();\n public dynamicItems: MainMenuItem[] = [];\n public uiConfig = AppConfig.evtSettings.ui;\n public fileConfig = AppConfig.evtSettings.files;\n public editionConfig = AppConfig.evtSettings.edition;\n\n private isOpened = false;\n private subscriptions = [];\n private availableLangs = AppConfig.evtSettings.ui.availableLanguages.filter((l) => l.enabled);\n\n constructor(\n public themes: ThemesService,\n public translate: TranslateService,\n private modalService: ModalService,\n private evtModelService: EVTModelService,\n ) {\n }\n\n ngOnInit() {\n this.loadUiConfig();\n this.isOpened = true;\n }\n\n closeMenu() {\n if (this.isOpened) {\n this.isOpened = false;\n this.itemClicked.emit('close');\n }\n }\n\n private loadUiConfig(): void {\n this.initDynamicItems();\n }\n\n private initDynamicItems() {\n // TODO Check if available from uiConfig\n this.dynamicItems = [\n {\n id: 'projectInfo',\n iconInfo: {\n icon: 'info-circle',\n additionalClasses: 'icon',\n },\n label: 'projectInfo',\n enabled$: of(true),\n callback: () => this.openGlobalDialogInfo(),\n },\n {\n id: 'openLists',\n iconInfo: {\n icon: 'clipboard-list',\n additionalClasses: 'icon',\n },\n label: 'openLists',\n enabled$: this.evtModelService.namedEntities$.pipe(\n map(ne => this.editionConfig.showLists && ne.all.entities.length > 0),\n ),\n callback: () => this.openGlobalDialogLists(),\n },\n // {\n // id: 'openLemLists',\n // iconInfo: {\n // icon: 'clipboard-list',\n // additionalClasses: 'icon',\n // },\n // label: 'openLemLists',\n // enabled$: this.evtModelService.lemmatizedEntities$.pipe(\n // map(ne => this.editionConfig.showLists && ne.all.lementities.length > 0),\n // ),\n // callback: () => this.openSpecificDialogLists(),\n // },\n // {\n // id: 'bookmark',\n // iconInfo: {\n // icon: 'bookmark',\n // additionalClasses: 'icon',\n // },\n // label: 'bookmark',\n // enabled$: of(true),\n // callback: () => this.generateBookmark(),\n // },\n // {\n // id: 'downloadXML',\n // iconInfo: {\n // icon: 'download',\n // additionalClasses: 'icon',\n // },\n // label: 'downloadXML',\n // enabled$: of(true),\n // callback: () => this.downloadXML(),\n // },\n ];\n }\n\n private openGlobalDialogInfo() {\n this.itemClicked.emit('globalInfo');\n const modalRef = this.modalService.open(ModalComponent, { id: 'project-info', animation: false });\n const modalComp = modalRef.componentInstance as ModalComponent;\n modalComp.fixedHeight = true;\n modalComp.wider = true;\n modalComp.modalId = 'project-info';\n modalComp.title = 'projectInfo';\n modalComp.bodyContentClass = 'p-0 h-100';\n modalComp.headerIcon = { icon: 'info', iconSet: 'fas', additionalClasses: 'mr-3' };\n modalComp.bodyComponent = ProjectInfoComponent;\n }\n\n private openGlobalDialogLists() {\n this.itemClicked.emit('lists');\n const modalRef = this.modalService.open(ModalComponent, { id: 'global-lists' });\n const modalComp = modalRef.componentInstance as ModalComponent;\n modalComp.fixedHeight = true;\n modalComp.wider = true;\n modalComp.modalId = 'global-lists';\n modalComp.title = 'lists';\n modalComp.bodyContentClass = 'p-0 h-100';\n modalComp.headerIcon = { icon: 'clipboard-list', iconSet: 'fas', additionalClasses: 'mr-3' };\n modalComp.bodyComponent = GlobalListsComponent;\n }\n\n // private openSpecificDialogLists() {\n // this.itemClicked.emit('lists');\n // const modalRef = this.modalService.open(ModalComponent, { id: 'specific-lists' });\n // const modalComp = modalRef.componentInstance as ModalComponent;\n // modalComp.fixedHeight = true;\n // modalComp.wider = true;\n // modalComp.modalId = 'specific-lists';\n // modalComp.title = 'lists';\n // modalComp.bodyContentClass = 'p-0 h-100';\n // modalComp.headerIcon = { icon: 'clipboard-list', iconSet: 'fas', additionalClasses: 'mr-3' };\n // modalComp.bodyComponent = SpecificListsComponent;\n // }\n\n // private generateBookmark() {\n // // TODO generateBookmark\n // this.itemClicked.emit('bookmark');\n // }\n\n // private downloadXML() {\n // // TODO downloadXML\n // this.itemClicked.emit('downloadXML');\n // if (this.fileConfig && this.fileConfig.editionUrls) {\n // this.fileConfig.editionUrls.forEach(url => window.open(url, '_blank'));\n // } else {\n // alert('Loading data... \\nPlease try again later.');\n // }\n // }\n\n openShortCuts() {\n this.itemClicked.emit('shortcuts');\n const modalRef = this.modalService.open(ModalComponent, { id: 'shortcuts' });\n const modalComp = modalRef.componentInstance as ModalComponent;\n modalComp.fixedHeight = true;\n modalComp.modalId = 'shortcuts';\n modalComp.title = 'shortcuts';\n modalComp.bodyContentClass = 'p-3';\n modalComp.headerIcon = { icon: 'keyboard', iconSet: 'fas', additionalClasses: 'mr-3' };\n modalComp.bodyComponent = ShortcutsComponent;\n }\n\n // LANGUAGE\n selectLanguage(event: MouseEvent, languageSelected: Language) {\n event.stopPropagation();\n this.translate.use(languageSelected.code);\n this.itemClicked.emit('language');\n }\n\n getAvailableLanguages() {\n return this.availableLangs;\n }\n\n // THEMES\n selectTheme(event: MouseEvent, theme: ColorTheme) {\n event.stopPropagation();\n this.itemClicked.emit('theme');\n this.themes.selectTheme(theme);\n }\n\n getAvailableThemes(): ColorTheme[] {\n return this.themes.getAvailableThemes();\n }\n\n getCurrentTheme() {\n return this.themes.getCurrentTheme();\n }\n\n openEVTInfo() {\n this.itemClicked.emit('evtInfo');\n const modalRef = this.modalService.open(ModalComponent, { id: 'evtInfo' });\n const modalComp = modalRef.componentInstance as ModalComponent;\n modalComp.fixedHeight = true;\n modalComp.modalId = 'evtInfo';\n modalComp.title = 'aboutEVT';\n modalComp.bodyContentClass = 'p-3';\n modalComp.headerIcon = { icon: 'copyright', iconSet: 'fas', additionalClasses: 'mr-3' };\n modalComp.bodyComponent = EvtInfoComponent;\n }\n\n // tslint:disable-next-line: variable-name\n trackMenuItem(_index: number, item: MainMenuItem) {\n return item.id;\n }\n\n // tslint:disable-next-line: variable-name\n trackLanguages(_index: number, item: Language) {\n return item.code;\n }\n\n // tslint:disable-next-line: variable-name\n trackTheme(_index: number, item: ColorTheme) {\n return item.value;\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}\n\nexport interface Language {\n code: string;\n label: string;\n}\n\nexport interface MainMenuItem {\n id: string;\n iconInfo: EvtIconInfo;\n label: string;\n enabled$: Observable<boolean>;\n callback: () => void;\n}\n","<div class=\"mainMenu\" (clickOutside)=\"closeMenu()\" (escape)=\"closeMenu()\">\n <ul>\n <ng-container *ngFor=\"let item of dynamicItems; trackBy: trackMenuItem\">\n <li *ngIf=\"item.enabled$ | async\">\n <span (click)=\"item.callback()\">\n <evt-icon [iconInfo]=\"item.iconInfo\"></evt-icon>{{item.label | translate}}\n </span>\n </li>\n </ng-container>\n </ul>\n <hr />\n <ul>\n <li *ngIf=\"uiConfig && uiConfig.localization\">\n <span class=\"no-action\" data-prevent-close=\"true\">\n <evt-icon [iconInfo]=\"{icon: 'language', additionalClasses: 'icon'}\"></evt-icon>\n {{ 'changeLanguage' | translate }}\n <img *ngFor=\"let language of getAvailableLanguages(); trackBy: trackLanguages\"\n src=\"../../assets/images/{{language.code}}.png\" class=\"flag\"\n [class.active]=\"translate.currentLang === language.code\" [title]=\"language.label | translate\"\n (click)=\"selectLanguage($event, language);\" />\n </span>\n </li>\n <li>\n <span class=\"no-action\" data-prevent-close=\"true\">\n <evt-icon [iconInfo]=\"{icon: 'paint-brush', additionalClasses: 'icon'}\"></evt-icon>\n {{ 'changeTheme' | translate }}\n <span class=\"theme-item\" *ngFor=\"let theme of getAvailableThemes(); trackBy: trackTheme;\"\n [class.active]=\"getCurrentTheme() === theme\" [attr.data-theme]=\"theme.value\"\n [title]=\"theme.label | translate\" (click)=\"selectTheme($event, theme)\">\n </span>\n </span>\n </li>\n <li>\n <span (click)=\"openShortCuts()\">\n <evt-icon [iconInfo]=\"{icon: 'keyboard', additionalClasses: 'icon'}\"></evt-icon>\n {{ 'shortcuts' | translate }}\n </span>\n </li>\n <li>\n <span (click)=\"openEVTInfo()\">\n <evt-icon [iconInfo]=\"{icon: 'copyright', additionalClasses: 'icon'}\"></evt-icon>\n {{ 'aboutEVT' | translate }}\n </span>\n </li>\n </ul>\n</div>","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\nimport { LemmatizedEntitiesList, Relation } from '../../models/evt-models';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { Map } from '../../utils/js-utils';\n\ninterface SpecificList extends LemmatizedEntitiesList {\n icon: string;\n}\n\n@Component({\n selector: 'evt-specific-lists',\n templateUrl: './specific-lists.component.html',\n styleUrls: ['./specific-lists.component.scss'],\n})\nexport class SpecificListsComponent {\n lists$: Observable<SpecificList[]> = this.evtModelService.lemmatizedEntities$.pipe(\n map(ne => (ne.lemmas.lemlists)),\n map(lemlists => (lemlists.map(lemlist => ({\n ...lemlist,\n icon: this.listsIcons[lemlist.lemmatizedEntityType] || 'lemlist',\n })))),\n tap(lemlists => {\n if (!this.selectedList && lemlists[0]) {\n this.openLemList(undefined, lemlists[0]);\n }\n }),\n );\n\n selectedList: LemmatizedEntitiesList;\n\n relations$: Observable<Relation[]> = this.evtModelService.lemmatizedEntities$.pipe(\n map(ne => ne.relations),\n );\n\n showRelations = false;\n\n private listsIcons: Map<string> = {\n lem: 'user',\n place: 'map-marker',\n org: 'users',\n event: 'calendar',\n };\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n openLemList(event: MouseEvent, lemlist: LemmatizedEntitiesList) {\n if (event) {\n event.stopPropagation();\n }\n if (this.selectedList !== lemlist) {\n this.selectedList = lemlist;\n }\n this.showRelations = false;\n \n }\n\n openRelations() {\n this.showRelations = true;\n this.selectedList = undefined;\n }\n}\n","<div class=\"row h-100 m-0\">\n <div class=\"bg-light col-3 p-0 border-right\">\n <ng-template ngFor let-lemlist [ngForOf]=\"lists$ | async\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletContext]=\"{ lemlist: lemlist, last: false }\">\n </ng-template>\n </ng-template>\n <div class=\"list-item border-bottom border-top\" *ngIf=\"(relations$ | async).length > 0\"\n (click)=\"openRelations()\">\n <span class=\"list-item-main p-2 w-100 d-block edition-font\">\n <evt-icon [iconInfo]=\"{icon: 'network-wired', additionalClasses: 'mr-1'}\"></evt-icon>\n {{ 'relations' | translate }}\n <span class=\"badge badge-pill badge-info ui-font\">{{ (relations$ | async).length }}</span>\n </span>\n </div>\n </div>\n <div class=\"col-9 p-0\">\n <ng-container [ngSwitch]=\"showRelations\">\n <ng-container *ngSwitchCase=\"true\">\n <evt-content-viewer *ngFor=\"let relation of relations$ | async\"\n [content]=\"relation\"></evt-content-viewer> <!-- TODO: create component for relation list -->\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngIf=\"selectedList\" [content]=\"selectedList\"></evt-content-viewer>\n </ng-container>\n </ng-container>\n \n </div>\n</div>\n\n<ng-template #listTemplate let-lemlist=\"lemlist\" let-last=\"last\">\n <div class=\"list-item border-bottom\" (click)=\"openLemList($event, lemlist)\" [ngClass]=\"{\n hidden: lemlist.content?.length === 0,\n 'bg-dark': selectedList === lemlist,\n 'text-light': selectedList === lemlist,\n 'border-bottom': !last\n }\">\n <span class=\"list-item-main p-2 w-100 d-block edition-font\">\n <evt-icon *ngIf=\"lemlist.icon\" [iconInfo]=\"{icon: lemlist.icon, additionalClasses: 'mr-1'}\"></evt-icon>\n {{lemlist.label | translate}}\n <span class=\"badge badge-pill badge-info ui-font\" *ngIf=\"lemlist.content?.length > 0\">{{ lemlist.content?.length }}</span>\n </span>\n <div class=\"sub-list ml-3 border-left\" *ngIf=\"lemlist.sublists.length > 0\">\n <ng-template ngFor let-sublist let-last [ngForOf]=\"lemlist.sublists\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletContext]=\"{ lemlist: sublist, last: last }\">\n </ng-template>\n </ng-template>\n </div>\n </div>\n</ng-template>","import { Component, Input } from '@angular/core';\nimport { SeriesStmt } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-series-stmt',\n templateUrl: './series-stmt.component.html',\n styleUrls: ['./series-stmt.component.scss'],\n})\n@register(SeriesStmt)\nexport class SeriesStmtComponent {\n @Input() data: SeriesStmt;\n}\n","<div class=\"seriesStatement\">\n <ng-container [ngSwitch]=\"data?.structuredData\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"section; context: { label: '', items: data?.title, class: 'title' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: '', items: data?.biblScope, class: 'biblScope' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: '', items: data?.editor, class: 'editor' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'idno', items: data?.idno, class: 'idno' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'responsibles', items: data?.respStmt, class: 'respStmt', itemsSeparator: ', ' }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngFor=\"let element of data?.content\" [content]=\"element\"></evt-content-viewer>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #section let-label=\"label\" let-items=\"items\" let-class=\"class\" let-itemsSeparator=\"itemsSeparator\">\n <evt-header-section *ngIf=\"items?.length > 0\" [label]=\"label\" [additionalClass]=\"class\" [inlineLabel]=\"true\">\n <div content>\n <ng-container *ngFor=\"let item of items; let i = index\">\n <evt-content-viewer [content]=\"item\"></evt-content-viewer><ng-container *ngIf=\"itemsSeparator && i < items.length - 1\">{{ itemsSeparator }}</ng-container> \n </ng-container>\n </div>\n </evt-header-section>\n</ng-template>","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter',\n})\n@Injectable()\nexport class FilterPipe implements PipeTransform {\n transform<T>(items: T[], field: string, value: string, caseSensitive: boolean): T[] {\n if (!items) { return []; }\n if (!value || value.length === 0) { return items; }\n try {\n const reg = new RegExp(value, `${caseSensitive ? '' : 'i'}g`);\n const results = items.filter(it => it[field] && value && it[field].match(reg));\n\n return results.length > 0 ? results : [undefined];\n } catch (e) {\n return [];\n }\n\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Namespace } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-namespace',\n templateUrl: './namespace.component.html',\n styleUrls: ['./namespace.component.scss'],\n})\n@register(Namespace)\nexport class NamespaceComponent {\n @Input() data: Namespace;\n}\n","<div class=\"namespace\">\n <div class=\"namespace-name\">{{data.name}}</div>\n <ul class=\"namespace-tagUsage\">\n <li *ngFor=\"let usage of data.tagUsage\">\n <strong>{{usage.gi}}</strong>\n <ng-container *ngIf=\"usage.occurs || usage.withId\">\n (<ng-container *ngIf=\"usage.occurs\">{{usage.occurs}} {{ usage.occurs === 1 ? 'occurence' : 'occurences' | translate }}</ng-container>\n <ng-container *ngIf=\"usage.withId\"> {{ 'withId' | translate }} {{usage.withId}}</ng-container>)\n </ng-container>\n <div>\n <evt-content-viewer *ngFor=\"let element of usage.content\" [content]=\"element\"></evt-content-viewer>\n </div>\n </li>\n </ul>\n</div>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { CompactType, DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2';\nimport { Subscription } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { EVTStatusService } from 'src/app/services/evt-status.service';\nimport { EditionLevel } from '../../app.config';\nimport { Page } from '../../models/evt-models';\n\n@Component({\n selector: 'evt-reading-text',\n templateUrl: './reading-text.component.html',\n styleUrls: ['./reading-text.component.scss'],\n})\nexport class ReadingTextComponent implements OnInit, OnDestroy {\n public layoutOptions: GridsterConfig = {};\n public textPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 };\n public currentPageID$ = this.evtStatusService.currentStatus$.pipe(\n map(({ page }) => page.id),\n );\n\n public currentEditionLevel$ = this.evtStatusService.currentStatus$.pipe(\n map(({ editionLevels }) => editionLevels[0]),\n shareReplay(1),\n );\n public options: GridsterConfig = {};\n\n public apparatusesOpened = true;\n public apparatusesItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 };\n\n public pinnedBoardOpened = false;\n public pinnedBoardItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 };\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n ngOnInit() {\n this.initGridster();\n }\n\n changePage(selectedPage: Page) {\n this.evtStatusService.updatePage$.next(selectedPage);\n }\n\n changeEditionLevel(editionLevel: EditionLevel) {\n this.evtStatusService.updateEditionLevels$.next([editionLevel?.id]);\n }\n\n togglePinnedBoard() {\n this.pinnedBoardOpened = !this.pinnedBoardOpened;\n this.updateGridsterConfig();\n }\n\n toggleApparatuses() {\n this.apparatusesOpened = !this.apparatusesOpened;\n this.updateGridsterConfig();\n }\n\n changedOptions() {\n if (this.options.api && this.options.api.optionsChanged) {\n this.options.api.optionsChanged();\n }\n }\n\n private updateGridsterConfig() {\n this.pinnedBoardItem.x = this.apparatusesOpened ? 2 : (this.textPanelItem.x !== 0 ? 0 : 1);\n this.apparatusesItem.x = this.pinnedBoardOpened ? 2 : (this.textPanelItem.x !== 0 ? 0 : 1);\n this.changedOptions();\n }\n\n private initGridster() {\n this.layoutOptions = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n compactType: CompactType.CompactLeft,\n margin: 0,\n maxCols: 3,\n maxRows: 1,\n draggable: {\n enabled: false,\n },\n resizable: {\n enabled: false,\n },\n };\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}\n","<gridster [options]=\"layoutOptions\">\n <gridster-item [item]=\"textPanelItem\">\n <evt-text-panel \n [pageID]=\"currentPageID$ | async\" \n [editionLevelID]=\"currentEditionLevel$ | async\"\n (pageChange)=\"changePage($event)\" \n (editionLevelChange)=\"changeEditionLevel($event)\"\n ></evt-text-panel>\n </gridster-item>\n <gridster-item *ngIf=\"pinnedBoardOpened\" [item]=\"pinnedBoardItem\">\n <evt-pinboard-panel content (hide)=\"togglePinnedBoard()\"></evt-pinboard-panel>\n </gridster-item>\n <gridster-item *ngIf=\"apparatusesOpened\" [item]=\"apparatusesItem\">\n <evt-panel class=\"apparatuses\" [secondary]=\"true\" [hideFooter]=\"true\" [hideHeader]=\"true\">\n <div content>\n <ul ngbNav #apparatuses=\"ngbNav\" class=\"nav-tabs nav-fill\">\n <li [ngbNavItem]=\"'critical'\">\n <a ngbNavLink>{{'CriticalApparatus' | translate}}</a>\n <ng-template ngbNavContent>\n <div>{{'CriticalApparatus' | translate}}</div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'sources'\">\n <a ngbNavLink>{{ 'Sources' | translate }}</a>\n <ng-template ngbNavContent>\n <div>{{ 'Sources' | translate }}</div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'analogues'\">\n <a ngbNavLink>{{ 'Analogues' | translate }}</a>\n <ng-template ngbNavContent>\n <div>{{ 'Analogues' | translate }}</div>\n </ng-template>\n </li>\n </ul> \n <div [ngbNavOutlet]=\"apparatuses\" class=\"mt-2\"></div>\n </div>\n </evt-panel>\n </gridster-item>\n</gridster>\n<div class=\"global-tools\">\n <evt-button [type]=\"'button'\" [toggler]=\"true\" [active]=\"apparatusesOpened\"\n (btnClick)=\"toggleApparatuses()\" additionalClasses=\"btn-primary shadow rounded-circle mr-1\" \n [iconLeft]=\"{icon: 'pen-square'}\"></evt-button>\n <evt-button [type]=\"'button'\" [toggler]=\"true\" [active]=\"pinnedBoardOpened\"\n (btnClick)=\"togglePinnedBoard()\" additionalClasses=\"btn-primary shadow rounded-circle\" \n [iconLeft]=\"{icon: 'thumbtack'}\"></evt-button>\n</div>","import { Component, ElementRef, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable, Subject, Subscription } from 'rxjs';\nimport { delay, distinctUntilChanged, filter, map, shareReplay, take } from 'rxjs/operators';\nimport { AppConfig, EditionLevel, EditionLevelType, TextFlow } from '../../app.config';\nimport { EntitiesSelectItem } from '../../components/entities-select/entities-select.component';\nimport { LemsSelectItem } from '../../components/lems-select/lems-select.component';\nimport { IperlemsSelectItem } from '../../components/iperlems-select/iperlems-select.component';\nimport { Page } from '../../models/evt-models';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { EVTStatusService } from '../../services/evt-status.service';\nimport { EvtIconInfo } from '../../ui-components/icon/icon.component';\n\n@Component({\n selector: 'evt-text-panel',\n templateUrl: './text-panel.component.html',\n styleUrls: ['./text-panel.component.scss'],\n})\nexport class TextPanelComponent implements OnInit, OnDestroy {\n @ViewChild('mainContent') mainContent: ElementRef;\n\n @Input() hideEditionLevelSelector: boolean;\n\n @Input() pageID: string;\n public currentPage$ = new BehaviorSubject<Page>(undefined);\n public currentPageId$ = this.currentPage$.pipe(\n map(p => p?.id),\n );\n @Output() pageChange: Observable<Page> = this.currentPage$.pipe(\n filter(p => !!p),\n distinctUntilChanged(),\n );\n\n @Input() editionLevelID: EditionLevelType;\n public currentEdLevel$ = new BehaviorSubject<EditionLevel>(undefined);\n public currentEdLevelId$ = this.currentEdLevel$.pipe(\n map(e => e?.id),\n );\n @Output() editionLevelChange: Observable<EditionLevel> = this.currentEdLevel$.pipe(\n filter(e => !!e),\n distinctUntilChanged(),\n );\n\n public currentStatus$ = combineLatest([\n this.evtModelService.pages$,\n this.currentPage$,\n this.currentEdLevel$,\n this.evtStatus.currentViewMode$,\n ]).pipe(\n delay(0),\n filter(([pages, currentPage, editionLevel, currentViewMode]) => !!pages && !!currentPage && !!editionLevel && !!currentViewMode),\n map(([pages, currentPage, editionLevel, currentViewMode]) => ({ pages, currentPage, editionLevel, currentViewMode })),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n shareReplay(1),\n );\n\n public itemsToHighlight$ = new Subject<EntitiesSelectItem[]>();\n public itemsLemsToHighlight$ = new Subject<LemsSelectItem[]>();\n public itemsIperlemsToHighlight$ = new Subject<IperlemsSelectItem[]>();\n public secondaryContent = '';\n private showSecondaryContent = false;\n\n public selectedPage;\n\n public textFlow: TextFlow = AppConfig.evtSettings.edition.defaultTextFlow || 'prose';\n public enableProseVersesToggler = AppConfig.evtSettings.edition.proseVersesToggler;\n public get proseVersesTogglerIcon(): EvtIconInfo {\n\n return { icon: this.textFlow === 'prose' ? 'align-left' : 'align-justify', iconSet: 'fas' };\n }\n\n public isMultiplePageFlow$ = this.currentStatus$.pipe(\n map((x) => x.editionLevel.id === 'critical' && x.currentViewMode.id !== 'imageText'),\n shareReplay(1),\n );\n\n private updatingPageFromScroll = false;\n private subscriptions: Subscription[] = [];\n\n constructor(\n public evtModelService: EVTModelService,\n public evtStatus: EVTStatusService,\n ) {\n }\n\n ngOnInit() {\n if (this.editionLevelID === 'critical') {\n this.textFlow = AppConfig.evtSettings.edition.defaultTextFlow || 'verses';\n }\n if (!this.enableProseVersesToggler) {\n this.textFlow = undefined;\n }\n\n this.subscriptions.push(\n this.currentStatus$.pipe(\n map(currentStatus => currentStatus.currentPage),\n filter(page => !!page),\n delay(0), // Needed to have the HTML pb el available\n ).subscribe((page) => this._scrollToPage(page.id)),\n );\n }\n\n getSecondaryContent(): string {\n return this.secondaryContent;\n }\n\n isSecondaryContentOpened(): boolean {\n return this.showSecondaryContent;\n }\n\n toggleSecondaryContent(newContent: string) {\n if (this.secondaryContent !== newContent) {\n this.showSecondaryContent = true;\n this.secondaryContent = newContent;\n }\n else {\n this.showSecondaryContent = false;\n this.secondaryContent = '';\n }\n }\n\n toggleProseVerses() {\n this.textFlow = this.textFlow === 'prose' ? 'verses' : 'prose';\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n\n updatePage() {\n if (this.mainContent && this.editionLevelID === 'critical') {\n const mainContentEl: HTMLElement = this.mainContent.nativeElement;\n const pbs = mainContentEl.querySelectorAll('evt-page');\n let pbCount = 0;\n let pbVisible = false;\n let pbId = '';\n const docViewTop = mainContentEl.scrollTop;\n const docViewBottom = docViewTop + mainContentEl.parentElement.clientHeight;\n while (pbCount < pbs.length && !pbVisible) {\n pbId = pbs[pbCount].getAttribute('data-id');\n const pbElem = mainContentEl.querySelector<HTMLElement>(`evt-page[data-id=\"${pbId}\"]`);\n const pbRect = pbElem.getBoundingClientRect();\n if (pbRect.top && (pbRect.top <= docViewBottom) && (pbRect.top >= docViewTop)) {\n pbVisible = true;\n } else {\n pbCount++;\n }\n }\n combineLatest([this.evtModelService.pages$, this.currentPageId$])\n .pipe(take(1)).subscribe(([pages, currentPageId]) => {\n if (pbVisible && currentPageId !== pbId) {\n this.updatingPageFromScroll = true;\n this.evtStatus.updatePage$.next(pages.find(p => p.id === pbId));\n }\n });\n }\n }\n\n private _scrollToPage(pageId: string) {\n if (this.updatingPageFromScroll) {\n this.updatingPageFromScroll = false;\n } else if (this.mainContent) {\n const mainContentEl: HTMLElement = this.mainContent.nativeElement;\n const pageEl = mainContentEl.querySelector<HTMLElement>(`[data-id=\"${pageId}\"]`);\n if (pageEl) {\n pageEl.scrollIntoView();\n } else {\n mainContentEl.parentElement.scrollTop = 0;\n }\n }\n }\n}\n","<evt-panel [showSecondaryContent]=\"isSecondaryContentOpened()\" (scrollContent)=\"updatePage()\">\n <div header-left>\n <evt-page-selector [pageID]=\"pageID\" (selectionChange)=\"currentPage$.next($event)\"></evt-page-selector>\n <evt-edition-level-selector [class.hidden]=\"hideEditionLevelSelector\" [editionLevelID]=\"editionLevelID\" (selectionChange)=\"currentEdLevel$.next($event)\"></evt-edition-level-selector>\n <evt-button\n label=\"Info\"\n [iconLeft]=\"{icon: 'info-circle'}\"\n additionalClasses=\"btn-primary mr-1\"\n class=\"info-panel\"\n (btnClick)=\"toggleSecondaryContent('Le immagini sono pubblicate su concessione del Ministero della cultura – Archivio di Stato di Prato e sono liberamente utilizzabili per attività di studio, ricerca, libera manifestazione del pensiero o espressione creativa, promozione della conoscenza del patrimonio culturale. I diritti di riproduzione delle immagini pubblicate – ai sensi degli articoli 106, 107 e 108 del Codice dei beni culturali e del paesaggio (D.Lgs. 42/2004 e s.m.i.) – appartengono dell’Archivio di Stato di Prato, pertanto tutti gli usi di queste immagini, diversi da quelli sopra esposti, debbono essere espressamente autorizzati (https://archiviodistatoprato.cultura.gov.it/servizi/autorizzazioni-a-pubblicare).')\"\n [active]=\"secondaryContent === 'Info'\"></evt-button>\n </div>\n <div content evtAnnotator #mainContent>\n <ng-container *ngIf=\"(currentStatus$ | async) as currentStatus\">\n <ng-container *ngIf=\"isMultiplePageFlow$ | async\">\n <evt-page *ngFor=\"let page of currentStatus.pages\"\n [attr.data-id]=\"page.id\"\n [data]=\"page\"\n [textFlow]=\"textFlow\"\n [itemsToHighlight]=\"itemsToHighlight$ | async\"\n [itemsLemsToHighlight]=\"itemsLemsToHighlight$ | async\"\n [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight$ | async\"></evt-page>\n </ng-container>\n <evt-page *ngIf=\"(isMultiplePageFlow$ | async) === false\"\n [attr.data-id]=\"currentStatus.currentPage.id\"\n [data]=\"currentStatus.currentPage\"\n [editionLevel]=\"currentStatus.editionLevel\"\n [textFlow]=\"textFlow\"\n [itemsToHighlight]=\"itemsToHighlight$ | async\"\n [itemsLemsToHighlight]=\"itemsLemsToHighlight$ | async\"\n [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight$ | async\"></evt-page>\n </ng-container>\n </div>\n <div secondary-content>\n {{ getSecondaryContent() }}\n </div>\n\n <div footer>\n <!-- <evt-button\n [iconLeft]=\"{icon: 'search'}\"\n label=\"Search\"\n additionalClasses=\"mr-1\"\n (btnClick)=\"toggleSecondaryContent('SEARCH_RESULTS')\"\n [active]=\"secondaryContent === 'SEARCH_RESULTS'\">\n </evt-button> -->\n <evt-entities-select (selectionChange)=\"itemsToHighlight$.next($event)\"></evt-entities-select>\n <evt-lems-select (selectionChange)=\"itemsLemsToHighlight$.next($event)\"></evt-lems-select>\n <evt-iperlems-select (selectionChange)=\"itemsIperlemsToHighlight$.next($event)\"></evt-iperlems-select>\n <evt-button *ngIf=\"enableProseVersesToggler\" \n [iconLeft]=\"proseVersesTogglerIcon\"\n [label]=\"textFlow | translate\"\n additionalClasses=\"ml-1\"\n (btnClick)=\"toggleProseVerses()\">\n </evt-button>\n </div>\n</evt-panel>","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\nimport { getEventKeyCode } from '../../utils/js-utils';\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[escape]',\n})\nexport class EscapeDirective {\n @Output() escape = new EventEmitter<void>();\n\n @HostListener('window:keyup', ['$event'])\n keyEvent(e: KeyboardEvent) {\n if (e.code === 'Escape' || e.key === 'Escape' || getEventKeyCode(e) === 27) {\n this.escape.emit();\n }\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { HighlightData } from '../models/evt-models';\n\n@Directive({\n selector: '[evtHighlight]',\n})\nexport class HighlightDirective {\n @Input('evtHighlight') set highlightData(hd: HighlightData) {\n this.highlight(hd);\n }\n\n constructor(\n private el: ElementRef,\n ) {\n }\n\n private highlight(highlightData: HighlightData) {\n if (highlightData.highlight) {\n this.el.nativeElement.classList.add('highlight');\n } else {\n this.el.nativeElement.classList.remove('highlight');\n }\n this.el.nativeElement.style.backgroundColor = highlightData && highlightData.highlight ? highlightData.highlightColor : '';\n }\n}\n","import { isBoolString } from 'src/app/utils/js-utils';\nimport { xmlParser } from '.';\nimport {\n AccMat, Acquisition, Additional, Additions, AdminInfo, AltIdentifier, Binding, BindingDesc, Collation, CollectionEl, Condition,\n CustEvent, CustodialHist, DecoDesc, DecoNote, Depth, Dim, Dimensions, Explicit, Filiation, FinalRubric, Foliation,\n G, HandDesc, HandNote, Head, Height, History, Identifier, Incipit, Institution, Layout, LayoutDesc, Locus, LocusGrp, MaterialValues,\n MsContents, MsDesc, MsFrag, MsIdentifier, MsItem, MsItemStruct, MsName, MsPart, MusicNotation, Note, ObjectDesc, OrigDate,\n Origin, OrigPlace, Paragraph, PhysDesc, Provenance, RecordHist, Repository, Rubric, ScriptDesc, Seal, SealDesc, Source, Summary,\n Support, SupportDesc, Surrogates, Text, TypeDesc, TypeNote, Width, XMLElement,\n} from '../../models/evt-models';\nimport { GenericElemParser, queryAndParseElement, queryAndParseElements } from './basic-parsers';\nimport { GParser } from './character-declarations-parser';\nimport { createParser, getClass, getDefaultN, getID, parseChildren, Parser, unhandledElement } from './parser-models';\n\nclass GAttrParser extends GenericElemParser {\n protected gParser = createParser(GParser, this.genericParse);\n}\n\n@xmlParser('dim', DimParser)\nexport class DimParser extends GAttrParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Dim {\n const genericElem = super.parse(xml);\n const { dimType, scope, extent, unit, quantity, atLeast, atMost, min, max } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Dim,\n scope,\n extent,\n unit,\n quantity: quantity ? parseInt(quantity, 10) : undefined,\n atLeast: atLeast ? parseInt(atLeast, 10) : undefined,\n atMost: atMost ? parseInt(atMost, 10) : undefined,\n min: min ? parseInt(min, 10) : undefined,\n max: max ? parseInt(max, 10) : undefined,\n dimType,\n gEl: queryAndParseElements<G>(xml, 'g'),\n };\n }\n}\n\n@xmlParser('depth', DepthParser)\nexport class DepthParser extends GAttrParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Depth {\n const genericElem = super.parse(xml);\n const { scope, extent, unit, quantity, atLeast, atMost, min, max } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Depth,\n scope,\n extent,\n unit,\n quantity: quantity ? parseInt(quantity, 10) : undefined,\n atLeast: atLeast ? parseInt(atLeast, 10) : undefined,\n atMost: atMost ? parseInt(atMost, 10) : undefined,\n min: min ? parseInt(min, 10) : undefined,\n max: max ? parseInt(max, 10) : undefined,\n gEl: queryAndParseElements<G>(xml, 'g'),\n };\n }\n}\n\n@xmlParser('width', WidthParser)\nexport class WidthParser extends GAttrParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Width {\n const genericElem = super.parse(xml);\n const { scope, extent, unit, quantity, atLeast, atMost, min, max } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Width,\n scope,\n extent,\n unit,\n quantity: quantity ? parseInt(quantity, 10) : undefined,\n atLeast: atLeast ? parseInt(atLeast, 10) : undefined,\n atMost: atMost ? parseInt(atMost, 10) : undefined,\n min: min ? parseInt(min, 10) : undefined,\n max: max ? parseInt(max, 10) : undefined,\n gEl: queryAndParseElements<G>(xml, 'g'),\n };\n }\n}\n\n@xmlParser('height', HeightParser)\nexport class HeightParser extends GAttrParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Height {\n const genericElem = super.parse(xml);\n const { scope, extent, unit, quantity, atLeast, atMost, min, max } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Height,\n scope,\n extent,\n unit,\n quantity: quantity ? parseInt(quantity, 10) : undefined,\n atLeast: atLeast ? parseInt(atLeast, 10) : undefined,\n atMost: atMost ? parseInt(atMost, 10) : undefined,\n min: min ? parseInt(min, 10) : undefined,\n max: max ? parseInt(max, 10) : undefined,\n gEl: queryAndParseElements<G>(xml, 'g'),\n };\n }\n}\n\n@xmlParser('dimensions', DimensionsParser)\nexport class DimensionsParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Dimensions {\n const genericElem = super.parse(xml);\n const { dimensionsType, scope, extent, unit, quantity, atLeast, atMost, min, max } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Dimensions,\n dimensionsType,\n scope,\n extent,\n unit,\n quantity: quantity ? parseInt(quantity, 10) : undefined,\n atLeast: atLeast ? parseInt(atLeast, 10) : undefined,\n atMost: atMost ? parseInt(atMost, 10) : undefined,\n min: min ? parseInt(min, 10) : undefined,\n max: max ? parseInt(max, 10) : undefined,\n height: queryAndParseElement<Height>(xml, 'height'),\n width: queryAndParseElement<Width>(xml, 'width'),\n depth: queryAndParseElement<Depth>(xml, 'depth'),\n dim: queryAndParseElement<Dim>(xml, 'dim'),\n };\n }\n}\n\n@xmlParser('acquisition', AcquisitionParser)\nexport class AcquisitionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Acquisition {\n const genericElem = super.parse(xml);\n const { notBefore, notAfter } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Acquisition,\n notBefore,\n notAfter,\n name: unhandledElement(xml, 'name', this.genericParse),\n };\n }\n}\n\n@xmlParser('origDate', OrigDateParser)\nexport class OrigDateParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): OrigDate {\n const genericElem = super.parse(xml);\n const { notBefore, notAfter, when, origDateType } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: OrigDate,\n notBefore,\n notAfter,\n when,\n origDateType,\n };\n }\n}\n\n@xmlParser('origPlace', OrigPlaceParser)\nexport class OrigPlaceParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): OrigPlace {\n const genericElem = super.parse(xml);\n const { key, origPlaceType } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: OrigPlace,\n key,\n origPlaceType,\n };\n }\n}\n\n@xmlParser('origin', OriginParser)\nexport class OriginParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Origin {\n const genericElem = super.parse(xml);\n const { notBefore, notAfter, evidence, resp } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Origin,\n notBefore,\n notAfter,\n evidence,\n resp,\n origDate: queryAndParseElement(xml, 'origDate'),\n origPlace: queryAndParseElement(xml, 'origPlace'),\n };\n }\n}\n\n@xmlParser('provenance', ProvenanceParser)\nexport class ProvenanceParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Provenance {\n const genericElem = super.parse(xml);\n const { when } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Acquisition,\n when,\n };\n }\n}\n\n@xmlParser('history', HistoryParser)\nexport class HistoryParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): History {\n\n return {\n ...super.parse(xml),\n type: History,\n acquisition: queryAndParseElement(xml, 'acquisition'),\n origin: queryAndParseElement(xml, 'origin'),\n provenance: queryAndParseElements(xml, 'provenance'),\n summary: queryAndParseElement(xml, 'summary'),\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('layout', LayoutParser)\nexport class LayoutParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Layout {\n const genericElem = super.parse(xml);\n const { columns, streams, ruledLines, writtenLines } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: LayoutDesc,\n columns: columns ? parseInt(columns, 10) : undefined,\n streams: streams ? parseInt(streams, 10) : undefined,\n ruledLines: ruledLines ? parseInt(ruledLines, 10) : undefined,\n writtenLines: writtenLines ? parseInt(writtenLines, 10) : undefined,\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('layoutDesc', LayoutDescParser)\nexport class LayoutDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): LayoutDesc {\n\n return {\n ...super.parse(xml),\n type: LayoutDesc,\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n ab: unhandledElement(xml, 'ab', this.genericParse),\n summary: queryAndParseElement(xml, 'provenance'),\n layout: queryAndParseElement(xml, 'layout'),\n };\n }\n}\n\n@xmlParser('support', SupportParser)\nexport class SupportParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Support {\n\n return {\n ...super.parse(xml),\n type: Support,\n material: unhandledElement(xml, 'material', this.genericParse),\n watermark: unhandledElement(xml, 'watermark', this.genericParse),\n };\n }\n}\n\n@xmlParser('collation', CollationParser)\nexport class CollationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Collation {\n\n return {\n ...super.parse(xml),\n type: Collation,\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('condition', ConditionParser)\nexport class ConditionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Condition {\n\n return {\n ...super.parse(xml),\n type: Condition,\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('foliation', FoliationParser)\nexport class FoliationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Foliation {\n\n return {\n ...super.parse(xml),\n type: Foliation,\n id: getID(xml),\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('supportDesc', SupportDescParser)\nexport class SupportDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): SupportDesc {\n\n return {\n ...super.parse(xml),\n type: SupportDesc,\n material: xml.getAttribute('material') as MaterialValues,\n pEl: queryAndParseElements(xml, 'p'),\n ab: unhandledElement(xml, 'ab', this.genericParse),\n extents: unhandledElement(xml, 'extent', this.genericParse),\n support: queryAndParseElement(xml, 'support'),\n collation: queryAndParseElement(xml, 'collation'),\n foliation: queryAndParseElement(xml, 'foliation'),\n condition: queryAndParseElement(xml, 'condition'),\n };\n }\n}\n\n@xmlParser('objectDesc', ObjectDescParser)\nexport class ObjectDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ObjectDesc {\n const genericElem = super.parse(xml);\n const { form } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: ObjectDesc,\n form,\n layoutDesc: queryAndParseElement(xml, 'layoutDesc'),\n supportDesc: queryAndParseElement(xml, 'supportDesc'),\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('decoNote', DecoNoteParser)\nexport class DecoNoteParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): DecoNote {\n const genericElem = super.parse(xml);\n const { decoNoteType } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: DecoNote,\n decoNoteType,\n watermark: unhandledElement(xml, 'watermark', this.genericParse),\n };\n }\n}\n\n@xmlParser('binding', BindingParser)\nexport class BindingParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Binding {\n\n return {\n ...super.parse(xml),\n type: Binding,\n contemporary: true || false,\n decoNote: queryAndParseElements(xml, 'decoNote'),\n pEl: queryAndParseElements(xml, 'p'),\n condition: unhandledElement(xml, 'condition', this.genericParse),\n ab: unhandledElement(xml, 'ab', this.genericParse),\n };\n }\n}\n\n@xmlParser('bindingDesc', BindingDescParser)\nexport class BindingDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): BindingDesc {\n\n return {\n ...super.parse(xml),\n type: BindingDesc,\n condition: unhandledElement(xml, 'condition', this.genericParse),\n decoNote: queryAndParseElements(xml, 'decoNote'),\n binding: queryAndParseElements(xml, 'binding'),\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('summary', SummaryParser)\nexport class SummaryParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Summary {\n\n return {\n ...super.parse(xml),\n type: Summary,\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('decoDesc', DecoDescParser)\nexport class DecoDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): DecoDesc {\n\n return {\n ...super.parse(xml),\n type: DecoDesc,\n decoNote: queryAndParseElement(xml, 'decoNote'),\n pEl: queryAndParseElements(xml, 'p'),\n summary: queryAndParseElement(xml, 'summary'),\n ab: unhandledElement(xml, 'ab', this.genericParse),\n };\n }\n}\n\n@xmlParser('handDesc', HandDescParser)\nexport class HandDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): HandDesc {\n const genericElem = super.parse(xml);\n const { hands } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: HandDesc,\n hands,\n handNote: queryAndParseElements<HandNote>(xml, 'handNote'),\n };\n }\n}\n\n@xmlParser('additions', AdditionsParser)\nexport class AdditionsParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Additions {\n\n return {\n ...super.parse(xml),\n type: Additions,\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('scriptDesc', ScriptDescParser)\nexport class ScriptDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ScriptDesc {\n\n return {\n ...super.parse(xml),\n type: ScriptDesc,\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n summary: queryAndParseElement(xml, 'summary'),\n scriptNote: unhandledElement(xml, 'scriptNote', this.genericParse),\n };\n }\n}\n\n@xmlParser('seal', SealParser)\nexport class SealParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Seal {\n const genericElem = super.parse(xml);\n const { n, sealType } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Seal,\n contemporary: isBoolString(xml.getAttribute('contemporary')),\n decoNote: queryAndParseElement(xml, 'decoNote'),\n sealType,\n n: getDefaultN(n),\n pEl: queryAndParseElements(xml, 'p'),\n ab: unhandledElement(xml, 'ab', this.genericParse),\n };\n }\n}\n\n@xmlParser('sealDesc', SealDescParser)\nexport class SealDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): SealDesc {\n\n return {\n ...super.parse(xml),\n type: SealDesc,\n seal: queryAndParseElement(xml, 'seal'),\n };\n }\n}\n\n@xmlParser('typeNote', TypeNoteParser)\nexport class TypeNoteParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): TypeNote {\n const genericElem = super.parse(xml);\n const { scope } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: TypeNote,\n id: getID(xml),\n scope,\n };\n }\n}\n\n@xmlParser('typeDesc', TypeDescParser)\nexport class TypeDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): TypeDesc {\n\n return {\n ...super.parse(xml),\n type: TypeDesc,\n summary: queryAndParseElement(xml, 'summary'),\n typeNote: queryAndParseElement(xml, 'typeNote'),\n };\n }\n}\n\n@xmlParser('accMat', AccMatParser)\nexport class AccMatParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): AccMat {\n\n return {\n ...super.parse(xml),\n type: AccMat,\n pEl: queryAndParseElements(xml, 'p'),\n };\n }\n}\n\n@xmlParser('musicNotation', MusicNotationParser)\nexport class MusicNotationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MusicNotation {\n\n return {\n ...super.parse(xml),\n type: MusicNotation,\n term: unhandledElement(xml, 'term', this.genericParse),\n };\n }\n}\n\n@xmlParser('physDesc', PhysDescParser)\nexport class PhysDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): PhysDesc {\n\n return {\n ...super.parse(xml),\n type: PhysDesc,\n objectDesc: queryAndParseElement(xml, 'objectDesc'),\n bindingDesc: queryAndParseElement(xml, 'bindingDesc'),\n decoDesc: queryAndParseElement(xml, 'decoDesc'),\n handDesc: queryAndParseElement(xml, 'handDesc'),\n accMat: queryAndParseElement(xml, 'accMat'),\n additions: queryAndParseElement(xml, 'additions'),\n musicNotation: queryAndParseElement(xml, 'musicNotation'),\n scriptDesc: queryAndParseElement(xml, 'scriptDesc'),\n sealDesc: queryAndParseElement(xml, 'sealDesc'),\n typeDesc: queryAndParseElement(xml, 'typeDesc'),\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('finalRubric', FinalRubricParser)\nexport class FinalRubricParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): FinalRubric {\n\n return {\n ...super.parse(xml),\n type: FinalRubric,\n lbEl: queryAndParseElements(xml, 'lb'),\n };\n }\n}\n\n@xmlParser('locus', LocusParser)\nexport class LocusParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Locus {\n const genericElem = super.parse(xml);\n const { scheme, from, to, facs, target } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Locus,\n scheme,\n from,\n to,\n facs,\n target,\n gEl: queryAndParseElements(xml, 'g'),\n locus: queryAndParseElement(xml, 'locus'),\n hi: unhandledElement(xml, 'hi', this.genericParse),\n };\n }\n}\n\n@xmlParser('locusGrp', LocusGrpParser)\nexport class LocusGrpParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): LocusGrp {\n const genericElem = super.parse(xml);\n const { scheme } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: LocusGrp,\n scheme,\n locus: queryAndParseElement(xml, 'locus'),\n };\n }\n}\n\n@xmlParser('incipit', IncipitParser)\nexport class IncipitParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Incipit {\n const genericElem = super.parse(xml);\n const { lang } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Incipit,\n defective: isBoolString(xml.getAttribute('defective')),\n lang,\n lbEl: queryAndParseElements(xml, 'lb'),\n locus: queryAndParseElement(xml, 'locus'),\n };\n }\n}\n\n@xmlParser('explicit', ExplicitParser)\nexport class ExplicitParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Explicit {\n const genericElem = super.parse(xml);\n const { lang } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Explicit,\n defective: isBoolString(xml.getAttribute('defective')),\n lang,\n locus: queryAndParseElement(xml, 'locus'),\n };\n }\n}\n\n@xmlParser('rubric', RubricParser)\nexport class RubricParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Rubric {\n const genericElem = super.parse(xml);\n const { lang, rend } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Rubric,\n lang,\n rend,\n lbEl: queryAndParseElements(xml, 'lb'),\n locus: queryAndParseElement(xml, 'locus'),\n stamp: unhandledElement(xml, 'stamp', this.genericParse),\n };\n }\n}\n\n@xmlParser('filiation', FiliationParser)\nexport class FiliationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Filiation {\n const genericElem = super.parse(xml);\n const { filiationType } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Filiation,\n filiationType,\n };\n }\n}\n\n@xmlParser('msItemStruct', MsItemStructParser)\nexport class MsItemStructParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MsItemStruct {\n const genericElem = super.parse(xml);\n const { n } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: MsItemStruct,\n n: getDefaultN(n),\n defective: isBoolString(xml.getAttribute('defective')),\n authors: unhandledElement(xml, 'author', this.genericParse),\n titles: unhandledElement(xml, 'title', this.genericParse),\n textLangs: unhandledElement(xml, 'textLang', this.genericParse),\n bibl: unhandledElement(xml, 'bibl', this.genericParse),\n respStmt: unhandledElement(xml, 'respStmt', this.genericParse),\n quote: unhandledElement(xml, 'quote', this.genericParse),\n listBibl: unhandledElement(xml, 'listBibl', this.genericParse),\n colophons: unhandledElement(xml, 'colophon', this.genericParse),\n rubric: queryAndParseElement<Rubric>(xml, 'rubric'),\n incipit: queryAndParseElement<Incipit>(xml, 'incipit'),\n explicit: queryAndParseElement<Explicit>(xml, 'explicit'),\n finalRubric: queryAndParseElement<FinalRubric>(xml, 'finalRubric'),\n decoNote: queryAndParseElement<DecoNote>(xml, 'decoNote'),\n filiation: queryAndParseElements<Filiation>(xml, 'filiation'),\n locus: queryAndParseElement<Locus>(xml, 'locus'),\n noteEl: queryAndParseElements<Note>(xml, 'note'),\n };\n }\n}\n\n@xmlParser('msItem', MsItemParser)\nexport class MsItemParser extends MsItemStructParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MsItem {\n\n return {\n ...super.parse(xml),\n type: MsItem,\n docAuthors: unhandledElement(xml, 'docAuthor', this.genericParse),\n docTitles: unhandledElement(xml, 'docTitle', this.genericParse),\n docImprints: unhandledElement(xml, 'docImprint', this.genericParse),\n docDate: unhandledElement(xml, 'docDate', this.genericParse),\n locusGrp: queryAndParseElement<LocusGrp>(xml, 'locusGrp'),\n gapEl: queryAndParseElements(xml, 'gap'),\n msItem: queryAndParseElements(xml, 'msItem'),\n };\n }\n}\n\n@xmlParser('custEvent', CustEventParser)\nexport class CustEventParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CustEvent {\n const genericElem = super.parse(xml);\n const { notBefore, notAfter, when, from, to, custEventType } = genericElem.attributes;\n\n return {\n ...super.parse(xml),\n type: CustEvent,\n notBefore,\n notAfter,\n when,\n from,\n to,\n custEventType,\n };\n }\n}\n\n@xmlParser('custodialHist', CustodialHistParser)\nexport class CustodialHistParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CustodialHist {\n\n return {\n ...super.parse(xml),\n type: CustodialHist,\n custEvent: queryAndParseElements(xml, 'custEvent'),\n ab: unhandledElement(xml, 'ab', this.genericParse),\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('source', SourceParser)\nexport class SourceParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Source {\n\n return {\n ...super.parse(xml),\n type: Source,\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('recordHist', RecordHistParser)\nexport class RecordHistParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): RecordHist {\n\n return {\n ...super.parse(xml),\n type: RecordHist,\n changes: unhandledElement(xml, 'change', this.genericParse),\n source: queryAndParseElements(xml, 'source'),\n ab: unhandledElement(xml, 'ab', this.genericParse),\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('adminInfo', AdminInfoParser)\nexport class AdminInfoParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): AdminInfo {\n\n return {\n ...super.parse(xml),\n type: AdminInfo,\n noteEl: queryAndParseElements(xml, 'note'),\n availabilities: unhandledElement(xml, 'availability', this.genericParse),\n custodialHist: queryAndParseElement(xml, 'custodialHist'),\n recordHist: queryAndParseElement(xml, 'recordHist'),\n };\n }\n}\n\n@xmlParser('surrogates', SurrogatesParser)\nexport class SurrogatesParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Surrogates {\n\n return {\n ...super.parse(xml),\n type: Surrogates,\n bibls: unhandledElement(xml, 'bibl', this.genericParse),\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('additional', AdditionalParser)\nexport class AdditionalParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Additional {\n\n return {\n ...super.parse(xml),\n type: Summary,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n listBibls: unhandledElement(xml, 'listBibl', this.genericParse),\n adminInfo: queryAndParseElement(xml, 'adminInfo'),\n surrogates: queryAndParseElement(xml, 'surrogates'),\n };\n }\n}\n\n@xmlParser('repository', RepositoryParser)\nexport class RepositoryParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Repository {\n const genericElem = super.parse(xml);\n const { lang } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Repository,\n lang,\n };\n }\n}\n\n@xmlParser('msContents', MsContentsParser)\nexport class MsContentsParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MsContents {\n\n return {\n ...super.parse(xml),\n type: MsContents,\n summary: queryAndParseElement(xml, 'summary'),\n msItem: queryAndParseElements(xml, 'msItem'),\n msItemStruct: queryAndParseElement(xml, 'msItemStruct'),\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n textLangs: unhandledElement(xml, 'textLang', this.genericParse),\n };\n }\n}\n\n@xmlParser('collection', CollectionParser)\nexport class CollectionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CollectionEl {\n const genericElem = super.parse(xml);\n const { collectionType } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: CollectionEl,\n collectionType,\n };\n }\n}\n\n@xmlParser('evt-identifier-parser', IdentifierParser)\nclass IdentifierParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Identifier {\n return {\n ...super.parse(xml),\n type: Identifier,\n collection: queryAndParseElements(xml, 'collection'),\n repository: queryAndParseElement(xml, 'repository'),\n idnos: unhandledElement(xml, 'idno', this.genericParse),\n regions: unhandledElement(xml, 'region', this.genericParse),\n settlements: unhandledElement(xml, 'settlement', this.genericParse),\n countries: unhandledElement(xml, 'country', this.genericParse),\n };\n }\n}\n\n@xmlParser('altIdentifier', AltIdentifierParser)\nexport class AltIdentifierParser extends IdentifierParser implements Parser<XMLElement> {\n parse(xml: XMLElement): AltIdentifier {\n\n return {\n ...super.parse(xml),\n type: AltIdentifier,\n noteEl: queryAndParseElements(xml, 'note'),\n };\n }\n}\n\n@xmlParser('msName', MsNameParser)\nexport class MsNameParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MsName {\n\n return {\n ...super.parse(xml),\n type: AltIdentifier,\n name: unhandledElement(xml, 'name', this.genericParse),\n rs: unhandledElement(xml, 'rs', this.genericParse),\n gEl: queryAndParseElements(xml, 'g'),\n };\n }\n}\n\n@xmlParser('institution', InstitutionParser)\nexport class InstitutionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Institution {\n\n return {\n ...super.parse(xml),\n type: Institution,\n country: unhandledElement(xml, 'country', this.genericParse),\n region: unhandledElement(xml, 'region', this.genericParse),\n };\n }\n}\n\n@xmlParser('msIdentifier', MsIdentifierParser)\nexport class MsIdentifierParser extends IdentifierParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MsIdentifier {\n\n return {\n ...super.parse(xml),\n type: MsIdentifier,\n id: getID(xml),\n institution: queryAndParseElement(xml, 'institution'),\n altIdentifier: queryAndParseElements(xml, 'altIdentifier'),\n msName: queryAndParseElements(xml, 'msName'),\n };\n }\n}\n\n@xmlParser('head', HeadParser)\nexport class HeadParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Head {\n const genericElem = super.parse(xml);\n const { place, rend, style, rendition, facs, n } = genericElem.attributes;\n\n return {\n ...genericElem,\n type: Head,\n n: getDefaultN(n),\n place,\n rend,\n rendition,\n style,\n facs,\n lbEl: queryAndParseElements(xml, 'lb'),\n hi: unhandledElement(xml, 'hi', this.genericParse),\n title: unhandledElement(xml, 'title', this.genericParse),\n origPlace: queryAndParseElement(xml, 'origPlace'),\n origDate: queryAndParseElement(xml, 'origDate'),\n };\n }\n}\n\n@xmlParser('msFrag', MsFragParser)\nexport class MsFragParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MsFrag {\n\n return {\n ...super.parse(xml),\n type: MsFrag,\n additional: queryAndParseElement(xml, 'additional'),\n altIdentifier: queryAndParseElement(xml, 'altIdentifier'),\n history: queryAndParseElement(xml, 'history'),\n msContents: queryAndParseElement(xml, 'msContents'),\n msIdentifier: queryAndParseElement(xml, 'msIdentifier'),\n physDesc: queryAndParseElement(xml, 'physDesc'),\n pEl: queryAndParseElements<Paragraph>(xml, 'p'),\n\n };\n }\n}\n\n@xmlParser('msPart', MsPartParser)\nexport class MsPartParser extends MsFragParser implements Parser<XMLElement> {\n parse(xml: XMLElement): MsPart {\n\n return {\n ...super.parse(xml),\n type: MsPart,\n msParts: queryAndParseElements(xml, 'msPart'),\n head: queryAndParseElement(xml, 'head'),\n };\n }\n}\n\n@xmlParser('msDesc', MsDescParser)\nexport class MsDescParser extends MsPartParser implements Parser<XMLElement> {\n private msDescCounter = 0;\n parse(xml: XMLElement): MsDesc {\n const genericElem = super.parse(xml);\n const { n, label } = genericElem.attributes;\n let firstIdnoValue = '';\n\n const msDesc: MsDesc = {\n ...super.parse(xml),\n type: MsDesc,\n id: getID(xml),\n n: getDefaultN(n),\n label,\n msFrags: queryAndParseElements(xml, 'msFrag'),\n };\n firstIdnoValue = this.getFirstIdnoValue(msDesc);\n msDesc.label = xml.getAttribute('n') || xml.getAttribute('xml:id') || firstIdnoValue;\n\n return msDesc;\n }\n\n getFirstIdnoValue(ms) {\n this.msDescCounter++;\n if (ms.msIdentifier.idnos.length > 0) {\n const item = ms.msIdentifier.idnos[0].filter((el: Text) => el.text?.trim() || el.content?.length > 0);\n if (item[0].text) {\n return item[0].text.trim();\n }\n\n if (item[0].content.length > 0){\n return (item[0].content[0].text);\n }\n }\n\n return `MS Desc ${this.msDescCounter}`;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'evt-version-panel',\n templateUrl: './version-panel.component.html',\n styleUrls: ['./version-panel.component.scss'],\n})\nexport class VersionPanelComponent {\n @Input() version: string;\n @Output() hide = new EventEmitter<boolean>();\n\n emitHide() {\n this.hide.emit(true);\n }\n\n}\n","<evt-panel [comparable]=\"true\" [secondary]=\"true\" [closable]=\"true\" (hide)=\"emitHide()\">\n <div header-left>\n <!-- TODO: Add dropdown for navigation -->\n Version {{ version }}\n </div>\n <div content evtAnnotator>\n <h1>Text of version</h1>\n <p>\n Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Inmensae subtilitatis, obscuris et malesuada fames. Ambitioni dedisse scripsisse iudicaretur. At nos hinc posthac, sitientis piros Afros.\n </p>\n </div>\n</evt-panel>","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2';\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { Page } from 'src/app/models/evt-models';\nimport { EVTStatusService } from 'src/app/services/evt-status.service';\n\nimport { EditionLevel } from '../../app.config';\n\n@Component({\n selector: 'evt-text-text',\n templateUrl: './text-text.component.html',\n styleUrls: ['./text-text.component.scss'],\n})\nexport class TextTextComponent implements OnInit, OnDestroy {\n public options: GridsterConfig = {};\n public textPanel1Item: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 };\n public textPanel2Item: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 };\n\n public currentPageID$ = this.evtStatusService.currentStatus$.pipe(\n map(({ page }) => page.id),\n );\n\n public currentEditionLevels$ = this.evtStatusService.currentStatus$.pipe(\n map(({ editionLevels }) => editionLevels),\n shareReplay(1),\n );\n\n private editionLevelPanel1Change$: BehaviorSubject<EditionLevel> = new BehaviorSubject(undefined);\n private editionLevelPanel2Change$: BehaviorSubject<EditionLevel> = new BehaviorSubject(undefined);\n private lastPanelChanged$: BehaviorSubject<1 | 2> = new BehaviorSubject(undefined);\n\n public editionLevelChange$ = combineLatest([\n this.editionLevelPanel1Change$,\n this.editionLevelPanel2Change$,\n this.lastPanelChanged$,\n ]);\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n ngOnInit() {\n this.initGridster();\n this.editionLevelChange$.subscribe(([edLvl1, edLvl2, changedPanel]) => {\n if (!edLvl1 || !edLvl2) { return; }\n if (edLvl1 === edLvl2) {\n if (changedPanel === 1) {\n edLvl2 = this.evtStatusService.availableEditionLevels.filter(e => e.id !== edLvl1.id)[0];\n } else if (changedPanel === 2) {\n edLvl1 = this.evtStatusService.availableEditionLevels.filter(e => e.id !== edLvl2.id)[0];\n }\n }\n this.evtStatusService.updateEditionLevels$.next([edLvl1?.id, edLvl2?.id]);\n });\n }\n\n changePage(selectedPage: Page) {\n this.evtStatusService.updatePage$.next(selectedPage);\n }\n\n changeEditionLevel(edLvl: EditionLevel, changedPanel: 1 | 2) {\n if (changedPanel === 1) {\n this.editionLevelPanel1Change$.next(edLvl);\n } else if (changedPanel === 2) {\n this.editionLevelPanel2Change$.next(edLvl);\n }\n this.lastPanelChanged$.next(changedPanel);\n }\n\n private initGridster() {\n this.options = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n margin: 0,\n maxCols: 2,\n maxRows: 1,\n draggable: {\n enabled: true,\n ignoreContent: true,\n dragHandleClass: 'panel-header',\n },\n resizable: {\n enabled: false,\n },\n };\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n}\n","<gridster [options]=\"options\" *ngIf=\"currentEditionLevels$ | async as currentEditionLevels\">\n <gridster-item [item]=\"textPanel1Item\">\n <evt-text-panel \n [pageID]=\"currentPageID$ | async\" \n [editionLevelID]=\"currentEditionLevels[0]\"\n (pageChange)=\"changePage($event)\" \n (editionLevelChange)=\"changeEditionLevel($event, 1)\"\n ></evt-text-panel>\n </gridster-item>\n <gridster-item [item]=\"textPanel2Item\">\n <evt-text-panel \n [pageID]=\"currentPageID$ | async\" \n [editionLevelID]=\"currentEditionLevels[1]\"\n (pageChange)=\"changePage($event)\" \n (editionLevelChange)=\"changeEditionLevel($event, 2)\"\n ></evt-text-panel>\n </gridster-item>\n</gridster>","import {ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { LemEntry, Reading, GenericElement } from './../../../models/evt-models';\nimport { register } from 'src/app/services/component-register.service';\nimport { EVTModelService } from '../../../services/evt-model.service';\n\n@Component({\n selector: 'evt-lem-entry-detail',\n templateUrl: './lem-entry-detail.component.html',\n styleUrls: ['./lem-entry-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\n@register(LemEntryDetailComponent)\nexport class LemEntryDetailComponent implements OnInit {\n @Input() data: LemEntry;\n nestedLems: LemEntry [] = [];\n rdgHasCounter = false;\n \n get significantRdg(): Reading[] {\n return this.data.readings.filter((rdg) => rdg.significant);\n }\n\n get notSignificantRdg(): Reading[]{\n return this.data.readings.filter((rdg) => !rdg.significant);\n }\n \n get readings(): Reading[] {\n return [this.data.lemma, ...this.significantRdg, ...this.notSignificantRdg]\n }\n\n get rdgMetadata() {\n return Object.keys(this.data.attributes).filter((key) => key !== 'id')\n .reduce((obj, key) => ({\n ...obj,\n [key]: this.data.attributes[key],\n }), {});\n }\n\n constructor(\n public evtModelService: EVTModelService,\n ) { \n }\n\n ngOnInit() {\n if (this.data.nestedLemsIDs.length > 0) {\n this.recoverNestedLems(this.data);\n }\n }\n\n recoverNestedLems(lem: LemEntry) {\n const nesLems = lem.lemma.content.filter((c: LemEntry | GenericElement) => c.type === LemEntry);\n nesLems.forEach((nesLem: LemEntry) => {\n this.nestedLems = this.nestedLems.concat(nesLem);\n if (nesLem.nestedLemsIDs.length > 0) {\n this.recoverNestedLems(nesLem);\n }\n });\n }\n\n isLemEntry (item: GenericElement | LemEntry): boolean {\n return item.type === LemEntry;\n }\n\n getNestedLemLemma(lemId: string): Reading {\n return this.nestedLems.find((c) => c.id === lemId).lemma;\n }\n\n getNestedLemPos(lemId: string): number {\n return this.nestedLems.findIndex((nesLem) => nesLem.id === lemId);\n }\n}\n[]","<div class=\"card lem-detail-container\">\n <div class=\"card-body lem-detail-content\">\n <span>\n <evt-lem-entry-readings class=\"lem-detail-readings\" [data]=\"data\" [template]=\"nestedLemsReadingsTemplate\" [rdgHasCounter]=\"true\"></evt-lem-entry-readings>\n <div *ngIf=\"data.nestedLemsIDs.length > 0\" class=\"lem-detail-nested-readings-container\">\n <span *ngFor=\"let nesLem of nestedLems; let i = index\" class=\"lem-detail-nested-readings\">\n <sup>{{ i + 1 }} </sup>\n <evt-lem-entry-readings [data]=\"nesLem\" [template]=\"nestedLemsReadingsTemplate\" [rdgHasCounter]=\"false\"></evt-lem-entry-readings>\n </span>\n </div>\n </span>\n <evt-pinner [item]=\"data\" renderer=\"LemsEntryReadings\" pinType=\"LemsEntry\"></evt-pinner>\n </div>\n <div class=\"card-footer lem-detail-tabs\">\n <ul ngbNav #lemEntryTab=\"ngbNav\" class=\"nav-pills\">\n <li ngbNavItem=\"lemmaNotes\" *ngIf=\"data.notes.length > 0\">\n <a class=\"lem-detail-btn\" ngbNavLink>{{'lemmaNotes' | translate}}</a>\n <ng-template ngbNavContent>\n <evt-note *ngFor=\"let note of data.notes\" [data]=\"note\"></evt-note>\n </ng-template>\n </li>\n <li ngbNavItem=\"notSignificantRdg\" *ngIf=\"notSignificantRdg.length > 0\">\n <a class=\"lem-detail-btn\" ngbNavLink>{{'ortographicVariants' | translate}}</a>\n <ng-template ngbNavContent>\n <span class=\"d-block\" *ngFor=\"let el of notSignificantRdg\">\n <evt-reading [data]=\"el\"></evt-reading>\n <!--span *ngFor=\"let witID of el.witIDs\" class=\"font-italic\"> {{ witID }} </span-->\n </span>\n </ng-template>\n </li>\n <li ngbNavItem=\"info\">\n <a class=\"lem-detail-btn-new\" ngbNavLink>{{'info' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"info-lemma-wrapper-new\" *ngIf=\"data.lemma\">\n <span>{{'infoForLemma' | translate}} </span>\n <evt-reading *ngIf=\"data.nestedLemsIDs.length === 0\" class=\"info-rdg\" [data]=\"data.lemma\"></evt-reading>\n <span *ngIf=\"data.nestedLemsIDs.length > 0\" class=\"info-rdg\">\n <ng-container *ngTemplateOutlet=\"nestedLemsReadingsTemplate; context: { rdgHasCounter: rdgHasCounter }\"></ng-container>\n </span>\n <span class=\"d-block ml-2\" *ngFor=\"let metadata of rdgMetadata | keyvalue\">\n <span class=\"info-label\" *ngIf=\"metadata.key !== 'id'\">{{ metadata.key }}:</span> {{ metadata.value }}\n </span>\n <span class=\"d-block ml-2\" *ngIf=\"(rdgMetadata | keyvalue).length === 0\">\n <span class=\"font-italic\">{{'noDataAvailable' | translate}}</span>\n </span>\n </div>\n <!--div>\n <span class=\"more-info-label\">{{'moreInfoAboutLem' | translate}}</span>\n <ng-container *ngFor=\"let rdg of readings\">\n <div *ngIf=\"(rdg.attributes | keyvalue).length !== 0\" class=\"mb-2\">\n <span>{{'metadataFor' | translate}} </span>\n <ng-container *ngIf=\"rdg.content.length !== 0\">\n <evt-reading *ngIf=\"data.nestedLemsIDs.length === 0\" class=\"info-rdg\" [data]=\"rdg\"></evt-reading>\n <ng-container *ngIf=\"data.nestedLemsIDs.length > 0\">\n <ng-container *ngFor=\"let c of rdg.content\">\n <evt-content-viewer class=\"info-rdg\" *ngIf=\"!isLemEntry(c)\" [content]=\"c\"></evt-content-viewer>\n <evt-reading class=\"info-rdg\" *ngIf=\"isLemEntry(c)\" [data]=\"c.lemma\"></evt-reading>\n </ng-container>\n </ng-container>\n </ng-container>\n <span *ngIf=\"rdg.content.length === 0\" class=\"font-italic info-rdg\">{{'omit' | translate}}</span>\n <span *ngIf=\"rdg.attributes.wit\" class=\"d-block ml-2\">\n <span class=\"info-label\">{{'wit' | translate}}</span> {{rdg.attributes.wit}}\n </span>\n <ng-container *ngFor=\"let metadata of rdgMetadata | keyvalue\">\n <span class=\"d-block ml-2\" *ngIf=\"metadata.key !== 'wit'\">\n <span class=\"info-label\">{{ metadata.key }}:</span> {{ metadata.value }}\n </span>\n </ng-container>\n </div>\n </ng-container>\n </div-->\n </ng-template>\n </li>\n <li ngbNavItem=\"xml\">\n <a class=\"lem-detail-btn\" ngbNavLink>{{'xml' | translate}}</a>\n <ng-template ngbNavContent>\n <pre>{{ data.originalEncoding | xmlBeautify }}</pre>\n </ng-template>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"lemEntryTab\" class=\"tab-content\"></div>\n </div>\n</div>\n\n<ng-template #nestedLemsReadingsTemplate let-rdgHasCounter=\"rdgHasCounter\">\n <ng-container *ngFor=\"let c of data.lemma.content\">\n <evt-content-viewer *ngIf=\"!isLemEntry(c)\" class=\"{{ data.class }}\" [content]=\"c\"></evt-content-viewer>\n\n <ng-container *ngIf=\"isLemEntry(c)\">\n <!-- Handle reading of nested app with no further nesting -->\n <evt-reading [data]=\"c.lemma\"></evt-reading>\n <sup *ngIf=\"rdgHasCounter\">{{ getNestedLemPos(c.id) + 1 }} </sup>\n\n <!-- Handle reading of nested app with further nesting -->\n <ng-container *ngIf=\"c.nestedLemsIDs.length > 0\">\n <ng-container *ngFor=\"let nesID of c.nestedLemsIDs; let i = index\">\n <evt-reading [data]=\"getNestedLemLemma(nesID)\"></evt-reading>\n <sup *ngIf=\"rdgHasCounter\">{{ getNestedLemPos(nesID) + 1 }}</sup>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>","import { Component, Input } from '@angular/core';\nimport { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive';\nimport { Surplus } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface SurplusComponent extends EditionlevelSusceptible, Highlightable { }\n\n@Component({\n selector: 'evt-surplus',\n templateUrl: './surplus.component.html',\n styleUrls: ['./surplus.component.scss'],\n})\n@register(Surplus)\nexport class SurplusComponent {\n @Input() data: Surplus;\n\n get editorialConventionData(): EditorialConventionLayoutData {\n return {\n name: 'surplus',\n attributes: this.data?.attributes || {},\n editionLevel: this.editionLevel,\n defaultsKey: 'surplus',\n };\n }\n}\n","<span class=\"{{data.class}}\" [evtHighlight]=\"highlightData\" [evtEditorialConventionLayout]=\"editorialConventionData\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\" [editionLevel]=\"editionLevel\"\n [itemsToHighlight]=\"itemsToHighlight\"></evt-content-viewer>\n</span>","import { Injectable } from '@angular/core';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { EncodingDesc, FileDesc, ProfileDesc, ProjectInfo, RevisionDesc, XMLElement } from '../../models/evt-models';\nimport { EditionDataService } from '../edition-data.service';\nimport { queryAndParseElement } from './basic-parsers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PrefatoryMatterParserService {\n public readonly title$ = this.editionDataService.parsedEditionSource$.pipe(\n map((source) => this.parseEditionTitle(source)),\n shareReplay(1),\n );\n\n public readonly projectInfo$ = this.editionDataService.parsedEditionSource$.pipe(\n map((source) => this.parseProjectInfo(source)),\n shareReplay(1),\n );\n\n constructor(\n private editionDataService: EditionDataService,\n ) {\n }\n\n parseEditionTitle(source: XMLElement) {\n const titleElems = source.querySelectorAll('titleStmt title');\n\n return titleElems[0]?.textContent;\n }\n\n parseProjectInfo(source: XMLElement): ProjectInfo {\n return {\n fileDesc: queryAndParseElement<FileDesc>(source, 'fileDesc', true),\n encodingDesc: queryAndParseElement<EncodingDesc>(source, 'encodingDesc', true),\n profileDesc: queryAndParseElement<ProfileDesc>(source, 'profileDesc', true),\n revisionDesc: queryAndParseElement<RevisionDesc>(source, 'revisionDesc', true),\n };\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\n\nimport { G } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins';\n\nexport interface GComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { }\n\n@Component({\n selector: 'evt-g',\n templateUrl: './g.component.html',\n styleUrls: ['./g.component.scss'],\n})\n@register(G)\nexport class GComponent {\n @Input() data: G;\n\n specialChars$ = this.evtModelService.specialChars$.pipe(\n map((specialChars) => specialChars.find(char => char.id === this.data.charId)),\n );\n\n diplomaticMapping$ = this.specialChars$.pipe(\n map((specialChar) => {\n const mapping = specialChar?.mappings.find(m => m.type === 'diplomatic');\n\n return mapping?.content ?? [];\n }),\n );\n\n normalizedMapping$ = this.specialChars$.pipe(\n map((specialChar) => {\n const mapping = specialChar?.mappings.find(m => m.type === 'normalized');\n\n return mapping?.content ?? [];\n }),\n );\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n}\n","<ng-container *ngIf=\"data.content.length > 0\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\" [editionLevel]=\"editionLevel\"\n [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [textFlow]=\"textFlow\"></evt-content-viewer>\n</ng-container>\n\n<ng-container *ngIf=\"data.content.length === 0\">\n <ng-container [ngSwitch]=\"editionLevel\">\n <ng-container *ngSwitchCase=\"'diplomatic'\">\n <evt-content-viewer *ngFor=\"let element of diplomaticMapping$ | async\" [content]=\"element\"\n [editionLevel]=\"editionLevel\" [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [textFlow]=\"textFlow\"></evt-content-viewer>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngFor=\"let element of normalizedMapping$ | async\" [content]=\"element\"\n [editionLevel]=\"editionLevel\" [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [textFlow]=\"textFlow\"></evt-content-viewer>\n </ng-container>\n </ng-container>\n</ng-container>","import { Component, Input, ViewChild } from '@angular/core';\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\nimport { Note } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-note',\n templateUrl: './note.component.html',\n styleUrls: ['./note.component.scss'],\n})\n@register(Note)\nexport class NoteComponent {\n @Input() data: Note;\n @ViewChild('popover', { static: true }) popover: NgbPopover;\n\n public pinnerStyle = {\n 'margin-right': '-0.65rem',\n 'margin-top': '-0.35rem',\n float: 'right',\n };\n\n onTriggerClicked(event: MouseEvent) {\n event.stopPropagation();\n }\n}\n","<span class=\"evt-note\" [evtHtmlAttributes]=\"data?.attributes\" [attr.data-type]=\"data?.noteType\">\n <ng-container [ngSwitch]=\"data?.noteLayout\">\n <ng-container *ngSwitchCase=\"'plain-text'\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\">\n </evt-content-viewer>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button #popover=\"ngbPopover\" type=\"button\" class=\"btn btn-link popover-toggle evt-trigger\" [ngbPopover]=\"popContent\"\n [autoClose]=\"'outside'\" popoverClass=\"evt-note-popover {{data?.noteType}}\" container=\"body\" [placement]=\"['auto']\"\n (click)=\"onTriggerClicked($event)\" [attr.data-note-type]=\"data.noteType\">\n <span class=\"note-icon\">\n {{data.exponent}}\n <span class=\"arrow\"></span>\n </span>\n </button>\n </ng-container>\n </ng-container>\n</span>\n\n<ng-template #popContent>\n <evt-pinner [item]=\"data\" pinType=\"Notes\" [additionalStyle]=\"pinnerStyle\"></evt-pinner>\n <div class=\"content\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\">\n </evt-content-viewer>\n </div>\n</ng-template>","import { Directive, ElementRef, Input, OnChanges, OnInit, Renderer2, SimpleChanges } from '@angular/core';\nimport { EditionLevelType } from '../app.config';\nimport { Attributes, EditorialConventionLayouts } from '../models/evt-models';\nimport { EditorialConventionDefaults, EditorialConventionsService } from '../services/editorial-conventions.service';\n\nexport interface EditorialConventionLayoutData {\n name: string;\n attributes: Attributes;\n editionLevel: EditionLevelType;\n defaultsKey?: EditorialConventionDefaults;\n}\n\n@Directive({\n selector: '[evtEditorialConventionLayout]',\n})\nexport class EditorialConventionLayoutDirective implements OnInit, OnChanges {\n @Input('evtEditorialConventionLayout') data: EditorialConventionLayoutData;\n @Input() defaultLayouts: Partial<EditorialConventionLayouts>;\n\n // tslint:disable-next-line: variable-name\n private _oldStyle: {\n // tslint:disable-next-line: no-any\n [cssProperty: string]: any;\n };\n\n constructor(\n private editorialConventionsService: EditorialConventionsService,\n private el: ElementRef,\n private renderer: Renderer2,\n ) {\n }\n\n ngOnInit() {\n this._setLayout();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.data.isFirstChange() && changes.data.previousValue !== changes.data.currentValue) {\n this._setLayout();\n }\n }\n\n private _setLayout() {\n const layouts = this.editorialConventionsService.getLayouts(this.data.name, this.data.attributes, this.data.defaultsKey);\n this._cleanPreviousLayout();\n if (layouts && this.data.editionLevel) {\n const editionLayout = layouts[this.data.editionLevel];\n if (editionLayout) {\n if (editionLayout.pre) {\n const preEl = document.createElement('span');\n preEl.classList.add('pre');\n preEl.innerHTML = editionLayout.pre;\n this.el.nativeElement.prepend(preEl);\n }\n\n if (editionLayout.post) {\n const postEl = document.createElement('span');\n postEl.classList.add('post');\n postEl.innerHTML = editionLayout.post;\n this.renderer.appendChild(this.el.nativeElement, postEl);\n }\n\n if (editionLayout.style) {\n Object.keys(editionLayout.style).forEach(key => this.renderer.setStyle(this.el.nativeElement, key, editionLayout.style[key]));\n this._oldStyle = editionLayout.style;\n }\n }\n }\n }\n\n private _cleanPreviousLayout() {\n const preEl = this.el.nativeElement.querySelector('.pre');\n if (preEl) { preEl.remove(); }\n\n const postEl = this.el.nativeElement.querySelector('.post');\n if (postEl) { postEl.remove(); }\n\n if (this._oldStyle) {\n Object.keys(this._oldStyle).forEach(key => this.renderer.setStyle(this.el.nativeElement, key, ''));\n this._oldStyle = undefined;\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Identifier } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-identifier',\n templateUrl: './identifier.component.html',\n styleUrls: ['./identifier.component.scss'],\n})\n\n@register(Identifier)\nexport class IdentifierComponent {\n @Input() data: Identifier;\n @Input() listClass: boolean;\n}\n","<div class=\"flex-container\" [class.has-list-class]=\"listClass\">\n <ng-container *ngIf=\"data?.settlements.length>0 || data?.regions.length>0 || data?.countries.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'place'\" [additionalClass]=\"'settlement'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\"> \n <div> \n <span *ngFor=\"let settlements of data.settlements\">\n <evt-content-viewer *ngFor=\"let settlements of settlements\" [content]=\"settlements\"></evt-content-viewer>\n </span>\n <ng-container *ngIf=\"data.regions.length>0\">\n <ng-container *ngIf=\"data.settlements.length>0\">, </ng-container>\n <span *ngFor=\"let regions of data.regions\">\n <evt-content-viewer *ngFor=\"let region of regions\" [content]=\"region\"></evt-content-viewer>\n </span>\n </ng-container>\n <ng-container *ngIf=\"data.countries.length>0\">\n <ng-container *ngIf=\"data.settlements.length>0 || data.regions.length>0\">, </ng-container>\n <span *ngFor=\"let countries of data.countries\">\n <evt-content-viewer *ngFor=\"let country of countries\" [content]=\"country\"></evt-content-viewer>\n </span>\n </ng-container> \n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data?.repository\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'repository'\" [additionalClass]=\"'repository'\" [inlineLabel]=\"true\" ></evt-ms-desc-section>\n </div> \n <div class=\"flex-item-information\"> \n <evt-content-viewer [content]=\"data.repository\"></evt-content-viewer>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data?.collection.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'collection'\" [additionalClass]=\"'collection'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div> \n <div class=\"flex-item-information\"> \n <evt-content-viewer *ngFor=\"let c of data.collection\" [content]=\"c\" class=\"projectInfo-block\"></evt-content-viewer>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data?.idnos.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'idno'\" [additionalClass]=\"'idno'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\"> \n <div *ngFor=\"let idnos of data.idnos\">\n <evt-content-viewer *ngFor=\"let idno of idnos\" [content]=\"idno\"></evt-content-viewer>\n </div>\n </div>\n </ng-container>\n</div> ","import { Component, Input } from '@angular/core';\n\nimport { EditionLevelType } from '../../app.config';\nimport { Choice } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins';\n\nexport interface ChoiceComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { }\n\n@Component({\n selector: 'evt-choice',\n templateUrl: './choice.component.html',\n styleUrls: ['./choice.component.scss'],\n})\n@register(Choice)\nexport class ChoiceComponent {\n @Input() data: Choice;\n\n get content() {\n if (this.editionLevel === 'diplomatic') {\n return this.data.originalContent;\n }\n\n return this.data.normalizedContent;\n }\n\n get alternativeContent() {\n if (this.editionLevel === 'diplomatic') {\n return this.data.normalizedContent;\n }\n\n return this.data.originalContent;\n }\n\n get alternativeEditionLevel(): EditionLevelType {\n return this.editionLevel === 'diplomatic' ? 'interpretative' : 'diplomatic';\n }\n}\n","<span class=\"choice\" [attr.data-intervention-type]=\"data.editorialInterventionType\" [evtHtmlAttributes]=\"data?.attributes\"\n [ngbPopover]=\"popContent\" [autoClose]=\"'outside'\" popoverClass=\"choice-popover {{data.editorialInterventionType}}\" \n container=\"body\" [placement]=\"['bottom']\" triggers=\"mouseenter:mouseleave\">\n <evt-content-viewer *ngFor=\"let element of content\" [content]=\"element\"\n [editionLevel]=\"editionLevel\" [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [textFlow]=\"textFlow\"></evt-content-viewer>\n</span>\n\n<ng-template #popContent>\n <evt-content-viewer *ngFor=\"let element of alternativeContent\" [content]=\"element\"\n [editionLevel]=\"alternativeEditionLevel\" [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [textFlow]=\"textFlow\"></evt-content-viewer>\n</ng-template>","import { XMLElement } from '../models/evt-models';\n\n/**\n * Counter that takes into account the number of parsed elements with [xpath]{@link DOMUtilsService.html#xpath},\n * in order to allow the generation of unique ids when node path is not available.\n */\nlet totIdsGenerated = 0;\n\n/**\n * Function to check if an element is nested into another particular element.\n * @param element The element to be checked\n * @param parentTagName TagName of the element that does not be a parent of the given element\n * @param attributes attributes\n *\n * @returns Whether the given element is nested in a node with given TagName or not\n */\nexport function isNestedInElem(element, parentTagName: string, attributes?: Array<{ key: string, value }>): boolean {\n return !!element && isNodeNestedInElem(element, parentTagName, false, attributes);\n}\n/**\n * Function to check if an element is directly nested into another particular element.\n * @param element The element to be checked\n * @param parentTagName TagName of the element that does not be a parent of the given element\n * @param attributes attributes\n *\n * @returns Whether the given element is nested in a node with given TagName or not\n */\nexport function isDirectlyNestedInElem(element, parentTagName: string, attributes?: Array<{ key: string, value }>): boolean {\n return isNodeNestedInElem(element, parentTagName, true, attributes);\n}\n\n/**\n * Function to check if an element is nested into another particular element.\n * @param element The element to be checked\n * @param parentTagName TagName of the element that does not be a parent of the given element\n * @param directCheck Whether to check only parentNode or analyize all ancestors\n * @param attributes attributes\n *\n * @returns Whether the given element is nested in a node with given TagName or not\n */\nexport function isNodeNestedInElem(\n element,\n parentTagName: string,\n directCheck: boolean,\n attributes?: Array<{ key: string, value }>,\n): boolean {\n if (element.parentNode !== null) {\n if (element.parentNode.tagName === 'text') {\n return false;\n }\n if (parentTagName === '' || element.parentNode.tagName === parentTagName || element.parentNode.nodeName === parentTagName) {\n if (!attributes || attributes.length === 0) {\n return true;\n }\n if (!element.parentNode.attributes || element.parentNode.attributes.length === 0) {\n return false;\n }\n let matchingAttr = 0;\n attributes.forEach(attr => {\n if (element.parentNode.attributes[attr.key] &&\n element.parentNode.attributes[attr.key].value === attr.value) {\n matchingAttr++;\n }\n });\n if (matchingAttr === attributes.length) {\n return true;\n }\n\n return directCheck ? false : isNestedInElem(element.parentNode, parentTagName, attributes);\n }\n\n return directCheck ? false : isNestedInElem(element.parentNode, parentTagName, attributes);\n }\n\n return false;\n}\n/**\n * This method will generate a string representing the xpath of the given element.\n * This string can be use as a unique identifier, since every element as a different xpath.\n * @param el XML element to analyze\n *\n * @returns calculated xpath of the given element\n */\n// tslint:disable-next-line: no-any\nexport function xpath(el: any): string {\n try {\n if (typeof el === 'string') {\n // document.evaluate(xpathExpression, contextNode, namespaceResolver, resultType, result );\n return document.evaluate(el, document, undefined, 0, undefined).stringValue;\n }\n if (!el || el.nodeType !== 1) { return ''; }\n let sames = [];\n if (el.parentNode) {\n sames = [].filter.call(el.parentNode.children, (x) => {\n return x.tagName === el.tagName;\n });\n }\n let countIndex = sames.length > 1 ? ([].indexOf.call(sames, el) + 1) : 1;\n countIndex = `[${countIndex}]`;\n const tagName = el.tagName !== 'tei' ? '-' + el.tagName : '';\n\n return `${xpath(el.parentNode)}${tagName}${countIndex}`;\n } catch (e) {\n totIdsGenerated++; // TODO: remove side effects\n\n return `-id${totIdsGenerated}`;\n }\n}\n\n/**\n * This method will an excerpted or truncated XHTML string and returns a well-balanced XHTML string\n * - It checks for broken tags, e.g. <code>&lt;stro</code> [a <code>&lt;</code> after the last <code>&gt;</code> indicates a broken tag]\n * - It eventually truncates broken tags\n * - It checks for broken elements, e.g. <code>&lt;strong&gt;Hello, w</code>\n * - It gets an array of all tags (start, end, and self-closing)\n * - It prepares an empty array where to store broken tags (<code>stack</code>)\n * - It loops over all tags\n * - when it founds an end tag, it pops it off of the stack\n * - when it founds a start tag, it push it onto the stack\n * - then it founds a self-closing tag, it do nothing\n * - At the end of the loop, <code>stack</code> should contain only the start tags of the broken elements, most deeply-nested at the top\n * - It loops over stack array\n * - pops the unmatched tag off the stack\n * - gets just the tag name\n * - and appends the end tag\n *\n * @param XHTMLstring string to balanced\n *\n * @returns well-balanced XHTML string\n */\nexport function balanceXHTML(XHTMLstring: string): string {\n // Check for broken tags, e.g. <stro\n // Check for a < after the last >, indicating a broken tag\n if (XHTMLstring) {\n if (XHTMLstring.lastIndexOf('<') > XHTMLstring.lastIndexOf('>')) {\n // Truncate broken tag\n XHTMLstring = XHTMLstring.substring(0, XHTMLstring.lastIndexOf('<'));\n }\n\n // Check for broken elements, e.g. <strong>Hello, w\n // Get an array of all tags (start, end, and self-closing)\n const tags = XHTMLstring.match(/<(?!\\!)[^>]+>/g);\n const stack = [];\n const tagToOpen = [];\n for (const tag in tags) {\n if (tag.search('/') === 1) { // </tagName>\n // end tag -- pop off of the stack\n // If the last element of the stack is the corresponding of opening tag\n const tagName = tag.replace(/[<\\/>]/ig, '');\n const openTag = stack[stack.length - 1];\n if (openTag && (openTag.search('<' + tagName + ' ') >= 0 || openTag.search('<' + tagName + '>') >= 0)) {\n stack.pop();\n } else { // Tag non aperto\n tagToOpen.push(tagName);\n }\n } else if (tag.search('/>') <= 0) { // <tagName>\n // start tag -- push onto the stack\n stack.push(tag);\n } else { // <tagName />\n // self-closing tag -- do nothing\n }\n }\n\n // stack should now contain only the start tags of the broken elements, most deeply-nested at the top\n while (stack.length > 0) {\n // pop the unmatched tag off the stack\n let endTag = stack.pop();\n // get just the tag name\n endTag = endTag.substring(1, endTag.search(/[ >]/));\n // append the end tag\n XHTMLstring += '</' + endTag + '>';\n }\n\n while (tagToOpen.length > 0) {\n const startTag = tagToOpen.shift();\n XHTMLstring = '<' + startTag + '>' + XHTMLstring;\n }\n }\n\n // Return the well-balanced XHTML string\n return (XHTMLstring ? XHTMLstring : '');\n}\n\n/**\n * Get all DOM elements contained between the node elements\n *\n * @param start starting node\n * @param end ending node\n *\n * @returns list of nodes contained between start node and end node\n */\n// tslint:disable-next-line: no-any\nexport function getElementsBetweenTreeNode(start: any, end: any): XMLElement[] {\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, end.length || end.childNodes.length);\n const commonAncestorChild = Array.from((range.commonAncestorContainer as XMLElement).children);\n const startIdx = commonAncestorChild.indexOf(start);\n const endIdx = commonAncestorChild.indexOf(end);\n const rangeNodes = commonAncestorChild.slice(startIdx, endIdx).filter((c) => c !== start);\n rangeNodes.forEach((c: XMLElement) => c.setAttribute('xpath', xpath(c).replace(/-/g, '/')));\n const fragment = range.cloneContents();\n const nodes = Array.from(fragment.childNodes);\n\n return nodes as XMLElement[];\n}\n\nexport function getOuterHTML(element): string {\n let outerHTML: string = element.outerHTML;\n outerHTML = outerHTML ? outerHTML.replace(/ xmlns=\"http:\\/\\/www\\.tei-c\\.org\\/ns\\/1\\.0\"/g, '') : outerHTML;\n\n return outerHTML;\n}\n\nexport function getCommonAncestor(node1, node2) {\n const method = 'contains' in node1 ? 'contains' : 'compareDocumentPosition';\n const test = method === 'contains' ? 1 : 0x10;\n\n node1 = node1.parentNode;\n while (node1) {\n // tslint:disable-next-line:no-bitwise\n if ((node1[method](node2) & test) === test) {\n return node1;\n }\n node1 = node1.parentNode;\n }\n\n return undefined;\n}\n\nexport function createNsResolver(doc: Document) {\n return (prefix: string) => prefix === 'ns' ? doc.documentElement.namespaceURI : undefined;\n}\n","import { Component, Input } from '@angular/core';\n\nimport { TitleStmt } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-title-stmt',\n templateUrl: './title-stmt.component.html',\n styleUrls: ['./title-stmt.component.scss'],\n})\n@register(TitleStmt)\nexport class TitleStmtComponent {\n @Input() data: TitleStmt;\n}\n","<div class=\"main-title\" *ngFor=\"let el of data?.titles\" [evtHtmlAttributes]=\"el?.attributes\">\n <evt-content-viewer [content]=\"el\"></evt-content-viewer>\n</div>\n<div class=\"sub-title\" *ngFor=\"let el of data?.subtitles\" [evtHtmlAttributes]=\"el?.attributes\">\n <evt-content-viewer [content]=\"el\"></evt-content-viewer>\n</div>\n<div class=\"author\" *ngFor=\"let author of data?.authors\">\n <evt-content-viewer [content]=\"author\"></evt-content-viewer>\n</div>\n\n<ng-container *ngTemplateOutlet=\"section; context: { label: 'editors', items: data?.editors, class: 'editor' }\"></ng-container>\n<ng-container *ngTemplateOutlet=\"section; context: { label: 'sponsors', items: data?.sponsors, class: 'sponsor' }\"></ng-container>\n<ng-container *ngTemplateOutlet=\"section; context: { label: 'funders', items: data?.funders, class: 'funder' }\"></ng-container>\n<ng-container *ngTemplateOutlet=\"section; context: { label: 'principals', items: data?.principals, class: 'principal' }\"></ng-container>\n<ng-container *ngTemplateOutlet=\"section; context: { label: 'responsibles', items: data?.respStmts, class: 'principal' }\"></ng-container>\n\n<ng-template #section let-label=\"label\" let-items=\"items\" let-class=\"class\">\n <evt-header-section *ngIf=\"items?.length > 0\" [label]=\"label\" [additionalClass]=\"class\">\n <div content>\n <evt-content-viewer *ngFor=\"let item of items\" [content]=\"item\" ></evt-content-viewer>\n </div>\n </evt-header-section>\n</ng-template>\n","import { Component, Input, Output } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\n\nimport { EVTModelService } from '../../services/evt-model.service';\n\n@Component({\n selector: 'evt-page-selector',\n templateUrl: './page-selector.component.html',\n styleUrls: ['./page-selector.component.scss'],\n})\nexport class PageSelectorComponent {\n public pages$ = this.evtModelService.pages$;\n\n // tslint:disable-next-line: variable-name\n private _pageID: string;\n @Input() set pageID(p: string) {\n this._pageID = p;\n this.selectedPage$.next(this._pageID);\n }\n get pageID() { return this._pageID; }\n\n selectedPage$ = new BehaviorSubject<string>(undefined);\n\n @Output() selectionChange = combineLatest([\n this.pages$,\n this.selectedPage$.pipe(distinctUntilChanged()),\n ]).pipe(\n filter(([pages, pageID]) => !!pageID && !!pages && pages.length > 0),\n map(([pages, pageID]) => pages.find(p => p.id === pageID)),\n );\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n}\n","<ng-select\n class=\"mr-1\"\n [items]=\"pages$ | async\"\n bindLabel=\"label\"\n bindValue=\"id\"\n [clearable]=\"false\"\n [searchable]=\"true\"\n [ngModel]=\"selectedPage$ | async\"\n (change)=\"pageID = $event.id\">\n <ng-template\n ng-label-tmp\n let-item=\"item\">\n <evt-icon\n [iconInfo]=\"{icon: 'file-alt', additionalClasses: 'mr-2'}\"\n label-left></evt-icon>\n {{ item.label | translate: {value: (pages$ | async).indexOf(item) + 1} }}\n </ng-template>\n</ng-select>","import { isNestedInElem } from 'src/app/utils/dom-utils';\nimport { isBoolString } from 'src/app/utils/js-utils';\nimport { xmlParser } from '.';\nimport {\n Abstract, Calendar, CalendarDesc, CatRef, Change, Channel, ChannelMode, ClassCode, Constitution,\n Correction, CorrectionMethod, CorrectionStatus, CorrespAction, CorrespActionType, CorrespContext, CorrespDesc, Creation, CRefPattern,\n Degree, Derivation, Description, Domain, EditionStmt, EditorialDecl, EncodingDesc, Extent, Factuality, FileDesc, GenericElement,\n HandNote, HandNotes, HandNoteScope, Hyphenation, HyphenationEol, Interaction, Interpretation,\n Keywords, Language, LangUsage, ListChange, ListTranspose, MsDesc, NamedEntitiesList, NamedEntityRef, Namespace, Normalization,\n NormalizationMethod, Note, NotesStmt, Paragraph, ParticDesc, Preparedness, ProfileDesc, ProjectDesc, Ptr, PublicationStmt,\n Punctuation, PunctuationMarks, PunctuationPlacement,\n Purpose, Quotation, QuotationMarks, RefsDecl, RefState, Rendition, RenditionScope, Resp, RespStmt, RevisionDesc,\n SamplingDecl, Scheme, Segmentation, SeriesStmt, Setting, SettingDesc, SourceDesc, Status, StdVals,\n TagsDecl, TagUsage, Term, TextClass, TextDesc, TitleStmt, Transpose, XMLElement,\n} from '../../models/evt-models';\nimport { GenericElemParser, GenericParser, parseElement, queryAndParseElement, queryAndParseElements } from './basic-parsers';\nimport { NamedEntityRefParser } from './named-entity-parsers';\nimport { complexElements, createParser, getDefaultAttr, getID, Parser } from './parser-models';\n\n@xmlParser('resp', RespParser)\nexport class RespParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Resp {\n const { ref, when } = this.attributeParser.parse(xml);\n const normalizedResp = ref?.indexOf('http://') < 0 && ref?.indexOf('https://') < 0 ? `http://${ref}` : ref ?? '';\n\n return {\n ...super.parse(xml),\n type: Resp,\n normalizedResp,\n date: when || '',\n };\n }\n}\n\n@xmlParser('respStmt', RespStmtParser)\nexport class RespStmtParser extends GenericElemParser implements Parser<XMLElement> {\n private namedEntityRefParser = createParser(NamedEntityRefParser, this.genericParse);\n\n parse(xml: XMLElement): RespStmt {\n const people = Array.from(xml.querySelectorAll<XMLElement>(':scope > name, :scope > orgName, :scope > persName'))\n .map(p => {\n if (['orgName', 'persName'].includes(p.tagName)) {\n return this.namedEntityRefParser.parse(p) as NamedEntityRef;\n }\n\n return this.genericParse(p) as GenericElement;\n });\n\n return {\n ...super.parse(xml),\n type: RespStmt,\n responsibility: queryAndParseElement<Resp>(xml, 'resp'),\n notes: queryAndParseElements<Note>(xml, 'note'),\n people,\n };\n }\n}\n\n\n\n@xmlParser('titleStmt', TitleStmtParser)\nexport class TitleStmtParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): TitleStmt {\n const title = queryAndParseElements<GenericElement>(xml, 'title[type=\"main\"]');\n\n return {\n ...super.parse(xml),\n type: TitleStmt,\n titles: title.length > 0 ? title : queryAndParseElements<GenericElement>(xml, 'title:not([type=\"sub\"])'),\n subtitles: queryAndParseElements<GenericElement>(xml, 'title[type=\"sub\"]'),\n authors: queryAndParseElements<GenericElement>(xml, 'author'),\n editors: queryAndParseElements<GenericElement>(xml, 'editor'),\n sponsors: queryAndParseElements<GenericElement>(xml, 'sponsor'),\n funders: queryAndParseElements<GenericElement>(xml, 'funder'),\n principals: queryAndParseElements<GenericElement>(xml, 'principal'),\n respStmts: queryAndParseElements<RespStmt>(xml, 'respStmt'),\n };\n }\n}\n\n@xmlParser('editionStmt', EditionStmtParser)\nexport class EditionStmtParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): EditionStmt {\n return {\n ...super.parse(xml),\n type: EditionStmt,\n edition: queryAndParseElements<GenericElement>(xml, 'edition'),\n respStmt: queryAndParseElements<RespStmt>(xml, 'respStmt'),\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n };\n }\n}\n\n@xmlParser('publicationStmt', PublicationStmtParser)\nexport class PublicationStmtParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): PublicationStmt {\n return {\n ...super.parse(xml),\n type: PublicationStmt,\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n publisher: queryAndParseElements<GenericElement>(xml, 'publisher'),\n distributor: queryAndParseElements<GenericElement>(xml, 'distributor'),\n authority: queryAndParseElements<GenericElement>(xml, 'authority'),\n pubPlace: queryAndParseElements<GenericElement>(xml, 'pubPlace'),\n address: queryAndParseElements<GenericElement>(xml, 'address'),\n idno: queryAndParseElements<GenericElement>(xml, 'idno'),\n availability: queryAndParseElements<GenericElement>(xml, 'availability'),\n date: queryAndParseElements<GenericElement>(xml, 'date'),\n licence: queryAndParseElements<GenericElement>(xml, 'licence'),\n };\n }\n}\n\n@xmlParser('seriesStmt', SeriesStmtParser)\nexport class SeriesStmtParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): SeriesStmt {\n return {\n ...super.parse(xml),\n type: SeriesStmt,\n structuredData: Array.from(xml.querySelectorAll(':scope > p')).length === 0,\n title: queryAndParseElements<GenericElement>(xml, 'title'),\n idno: queryAndParseElements<GenericElement>(xml, 'idno'),\n respStmt: queryAndParseElements<RespStmt>(xml, 'respStmt'),\n editor: queryAndParseElements<GenericElement>(xml, 'editor'),\n biblScope: queryAndParseElements<GenericElement>(xml, 'biblScope'),\n };\n }\n}\n\n@xmlParser('notesStmt', NotesStmtParser)\nexport class NotesStmtParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): NotesStmt {\n return {\n ...super.parse(xml),\n type: NotesStmt,\n notes: queryAndParseElements<Note>(xml, 'note').map(el => ({\n ...el,\n noteLayout: 'plain-text',\n })),\n relatedItems: queryAndParseElements<GenericElement>(xml, 'relatedItem'),\n };\n }\n}\n\n@xmlParser('sourceDesc', SourceDescParser)\nexport class SourceDescParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): SourceDesc {\n return {\n ...super.parse(xml),\n type: SourceDesc,\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n msDescs: queryAndParseElements<MsDesc>(xml, 'msDesc'),\n bibl: queryAndParseElements<GenericElement>(xml, 'bibl'),\n biblFull: queryAndParseElements<GenericElement>(xml, 'biblFull'),\n biblStruct: queryAndParseElements<GenericElement>(xml, 'biblStruct'),\n recordingStmt: queryAndParseElements<GenericElement>(xml, 'recordingStmt'),\n scriptStmt: queryAndParseElements<GenericElement>(xml, 'scriptStmt'),\n };\n }\n}\n\n@xmlParser('extent', ExtentParser)\nexport class ExtentParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Extent {\n return {\n ...super.parse(xml),\n type: Extent,\n };\n }\n}\n\n@xmlParser('fileDesc', FileDescParser)\nexport class FileDescParser extends GenericElemParser implements Parser<XMLElement> {\n private excludeFromParsing = [\n 'listBibl',\n 'listEvent',\n 'listOrg',\n 'listPerson',\n 'listPlace',\n 'listWit',\n // 'sourceDesc list',\n // 'list'\n ];\n\n parse(xml: XMLElement): FileDesc {\n xml = xml.cloneNode(true) as XMLElement;\n Array.from(xml.querySelectorAll<XMLElement>(this.excludeFromParsing.toString()))\n .filter((list) => !isNestedInElem(list, list.tagName))\n .forEach(el => el.remove());\n\n return {\n ...super.parse(xml),\n type: FileDesc,\n titleStmt: queryAndParseElement<TitleStmt>(xml, 'titleStmt'),\n editionStmt: queryAndParseElement<EditionStmt>(xml, 'editionStmt'),\n publicationStmt: queryAndParseElement<PublicationStmt>(xml, 'publicationStmt'),\n sourceDesc: queryAndParseElement<SourceDesc>(xml, 'sourceDesc'),\n extent: queryAndParseElement<Extent>(xml, 'extent'),\n notesStmt: queryAndParseElement<NotesStmt>(xml, 'notesStmt'),\n seriesStmt: queryAndParseElement<SeriesStmt>(xml, 'seriesStmt'),\n };\n }\n}\n\n@xmlParser('projectDesc', ProjectDescParser)\nexport class ProjectDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ProjectDesc {\n return {\n ...super.parse(xml),\n type: ProjectDesc,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('samplingDecl', SamplingDeclParser)\nexport class SamplingDeclParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): SamplingDecl {\n return {\n ...super.parse(xml),\n type: SamplingDecl,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('correction', CorrectionParser)\nexport class CorrectionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Correction {\n return {\n ...super.parse(xml),\n type: Correction,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n status: xml.getAttribute('status') as CorrectionStatus,\n method: xml.getAttribute('method') as CorrectionMethod || 'silent',\n };\n }\n}\n\n@xmlParser('normalization', NormalizationParser)\nexport class NormalizationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Normalization {\n return {\n ...super.parse(xml),\n type: Normalization,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n sources: xml.getAttribute('source')?.split(' ') || [],\n method: xml.getAttribute('method') as NormalizationMethod || 'silent',\n };\n }\n}\n\n@xmlParser('punctuation', PunctuationParser)\nexport class PunctuationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Punctuation {\n return {\n ...super.parse(xml),\n type: Punctuation,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n marks: xml.getAttribute('marks') as PunctuationMarks,\n placement: xml.getAttribute('placement') as PunctuationPlacement,\n };\n }\n}\n\n@xmlParser('quotation', QuotationParser)\nexport class QuotationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Quotation {\n return {\n ...super.parse(xml),\n type: Quotation,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n marks: xml.getAttribute('marks') as QuotationMarks,\n };\n }\n}\n\n@xmlParser('hyphenation', HyphenationParser)\nexport class HyphenationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Hyphenation {\n return {\n ...super.parse(xml),\n type: Hyphenation,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n eol: xml.getAttribute('eol') as HyphenationEol,\n };\n }\n}\n\n@xmlParser('segmentation', SegmentationParser)\nexport class SegmentationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Segmentation {\n return {\n ...super.parse(xml),\n type: Segmentation,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('stdVals', StdValsParser)\nexport class StdValsParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): StdVals {\n return {\n ...super.parse(xml),\n type: StdVals,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('interpretation', InterpretationParser)\nexport class InterpretationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Interpretation {\n return {\n ...super.parse(xml),\n type: Interpretation,\n content: queryAndParseElements<Paragraph>(xml, 'p'),\n };\n }\n}\n\n@xmlParser('editorialDecl', EditorialDeclParser)\nexport class EditorialDeclParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): EditorialDecl {\n return {\n ...super.parse(xml),\n type: EditorialDecl,\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n correction: queryAndParseElements<Correction>(xml, 'correction'),\n hyphenation: queryAndParseElements<Hyphenation>(xml, 'hyphenation'),\n interpretation: queryAndParseElements<Interpretation>(xml, 'interpretation'),\n normalization: queryAndParseElements<Normalization>(xml, 'normalization'),\n punctuation: queryAndParseElements<Punctuation>(xml, 'punctuation'),\n quotation: queryAndParseElements<Quotation>(xml, 'quotation'),\n segmentation: queryAndParseElements<Segmentation>(xml, 'segmentation'),\n stdVals: queryAndParseElements<StdVals>(xml, 'stdVals'),\n };\n }\n}\n\n@xmlParser('rendition', RenditionParser)\nexport class RenditionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Rendition {\n return {\n ...super.parse(xml),\n type: Rendition,\n id: getID(xml),\n scope: xml.getAttribute('scope') as RenditionScope || '',\n selector: xml.getAttribute('selector') || '',\n scheme: xml.getAttribute('scheme') as Scheme || undefined,\n schemeVersion: xml.getAttribute('schemeVersion') || '',\n };\n }\n}\n\n@xmlParser('tagUsage', TagUsageParser)\nexport class TagUsageParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): TagUsage {\n return {\n ...super.parse(xml),\n type: TagUsage,\n gi: xml.getAttribute('gi'),\n occurs: parseInt(xml.getAttribute('occurs'), 10) || undefined,\n withId: parseInt(xml.getAttribute('withId'), 10) || undefined,\n };\n }\n}\n\n@xmlParser('namespace', NamespaceParser)\nexport class NamespaceParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Namespace {\n return {\n ...super.parse(xml),\n type: Namespace,\n name: xml.getAttribute('name') || '',\n tagUsage: queryAndParseElements<TagUsage>(xml, 'tagUsage'),\n };\n }\n}\n\n@xmlParser('tagsDecl', TagsDeclParser)\nexport class TagsDeclParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): TagsDecl {\n return {\n ...super.parse(xml),\n type: TagsDecl,\n rendition: queryAndParseElements<Rendition>(xml, 'rendition'),\n namespace: queryAndParseElements<Namespace>(xml, 'namespace'),\n };\n }\n}\n\n@xmlParser('cRefPattern', CRefPatternParser)\nexport class CRefPatternParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CRefPattern {\n return {\n ...super.parse(xml),\n type: CRefPattern,\n matchPattern: xml.getAttribute('matchPattern'),\n replacementPattern: xml.getAttribute('replacementPattern'),\n };\n }\n}\n\n@xmlParser('refState', RefStateParser)\nexport class RefStateParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): RefState {\n return {\n ...super.parse(xml),\n type: RefState,\n ed: xml.getAttribute('ed'),\n unit: xml.getAttribute('unit'),\n length: parseInt(xml.getAttribute('length'), 10) || 0,\n delim: xml.getAttribute('delim'),\n };\n }\n}\n\n@xmlParser('refsDecl', RefsDeclParser)\nexport class RefsDeclParser extends GenericElemParser implements Parser<XMLElement> {\n cRefPatternParser = createParser(CRefPatternParser, this.genericParse);\n refStateParser = createParser(RefStateParser, this.genericParse);\n\n parse(xml: XMLElement): RefsDecl {\n return {\n ...super.parse(xml),\n type: RefsDecl,\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n cRefPattern: queryAndParseElements<CRefPattern>(xml, 'cRefPattern'),\n refState: queryAndParseElements<RefState>(xml, 'refState'),\n };\n }\n}\n\n@xmlParser('encodingDesc', EncodingDescParser)\nexport class EncodingDescParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): EncodingDesc {\n return {\n ...super.parse(xml),\n type: EncodingDesc,\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n projectDesc: queryAndParseElements<ProjectDesc>(xml, 'projectDesc'),\n samplingDecl: queryAndParseElements<SamplingDecl>(xml, 'samplingDecl'),\n editorialDecl: queryAndParseElements<EditorialDecl>(xml, 'editorialDecl'),\n tagsDecl: queryAndParseElements<TagsDecl>(xml, 'tagsDecl'),\n styleDefDecl: queryAndParseElement<GenericElement>(xml, 'styleDefDecl'),\n refsDecl: queryAndParseElements<RefsDecl>(xml, 'refsDecl'),\n classDecl: queryAndParseElements<GenericElement>(xml, 'classDecl'),\n geoDecl: queryAndParseElements<GenericElement>(xml, 'geoDecl'),\n unitDecl: queryAndParseElements<GenericElement>(xml, 'unitDecl'),\n schemaSpec: queryAndParseElements<GenericElement>(xml, 'schemaSpec'),\n schemaRef: queryAndParseElements<GenericElement>(xml, 'schemaRef'),\n };\n }\n}\n\n@xmlParser('abstract', AbstractParser)\nexport class AbstractParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Abstract {\n return {\n ...super.parse(xml),\n type: Abstract,\n resp: xml.getAttribute('resp'),\n lang: xml.getAttribute('xml:lang'),\n };\n }\n}\n\n@xmlParser('calendar', CalendarParser)\nexport class CalendarParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Calendar {\n return {\n ...super.parse(xml),\n type: Calendar,\n id: xml.getAttribute('xml:id'),\n target: xml.getAttribute('target'),\n };\n }\n}\n\n@xmlParser('calendarDesc', CalendarDescParser)\nexport class CalendarDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CalendarDesc {\n return {\n ...super.parse(xml),\n type: CalendarDesc,\n calendars: queryAndParseElements<Calendar>(xml, 'calendar'),\n };\n }\n}\n\n@xmlParser('correspAction', CorrespActionParser)\nexport class CorrespActionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CorrespAction {\n return {\n ...super.parse(xml),\n type: CorrespAction,\n actionType: xml.getAttribute('type') as CorrespActionType,\n };\n }\n}\n\n@xmlParser('correspContext', CorrespContextParser)\nexport class CorrespContextParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CorrespContext {\n return {\n ...super.parse(xml),\n type: CorrespContext,\n };\n }\n}\n\n@xmlParser('correspDesc', CorrespDescParser)\nexport class CorrespDescParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CorrespDesc {\n return {\n ...super.parse(xml),\n type: CorrespDesc,\n content: queryAndParseElements<CorrespAction | CorrespContext | Note | Paragraph>(xml, 'correspAction, correspContext, note, p'),\n };\n }\n}\n\n@xmlParser('creation', CreationParser)\nexport class CreationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Creation {\n return {\n ...super.parse(xml),\n type: Creation,\n };\n }\n}\n\n@xmlParser('language', LanguageParser)\nexport class LanguageParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Language {\n return {\n ...super.parse(xml),\n type: Language,\n ident: xml.getAttribute('ident'),\n usage: parseInt(xml.getAttribute('usage'), 10) || undefined,\n };\n }\n}\n\n@xmlParser('langUsage', LangUsageParser)\nexport class LangUsageParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): LangUsage {\n return {\n ...super.parse(xml),\n type: LangUsage,\n structuredData: Array.from(xml.querySelectorAll<XMLElement>(':scope > p')).length > 0,\n languages: queryAndParseElements<Language>(xml, 'language'),\n };\n }\n}\n\n@xmlParser('classCode', ClassCodeParser)\nexport class ClassCodeParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ClassCode {\n return {\n ...super.parse(xml),\n type: ClassCode,\n scheme: xml.getAttribute('scheme'),\n };\n }\n}\n\n@xmlParser('catRef', CatRefParser)\nexport class CatRefParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): CatRef {\n return {\n ...super.parse(xml),\n type: CatRef,\n scheme: xml.getAttribute('scheme'),\n target: xml.getAttribute('target'),\n };\n }\n}\n\n@xmlParser('keywords', KeywordsParser)\nexport class KeywordsParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Keywords {\n return {\n ...super.parse(xml),\n type: Keywords,\n scheme: xml.getAttribute('scheme'),\n terms: queryAndParseElements<Term>(xml, 'term'),\n };\n }\n}\n\n@xmlParser('textClass', TextClassParser)\nexport class TextClassParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): TextClass {\n return {\n ...super.parse(xml),\n type: TextClass,\n keywords: queryAndParseElements<Keywords>(xml, 'keywords'),\n catRef: queryAndParseElements<CatRef>(xml, 'catRef'),\n classCode: queryAndParseElements<ClassCode>(xml, 'classCode'),\n };\n }\n}\n\n@xmlParser('handNote', HandNoteParser)\nexport class HandNoteParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): HandNote {\n return {\n ...super.parse(xml),\n type: HandNote,\n id: getID(xml),\n scribe: xml.getAttribute('scribe'),\n scribeRef: xml.getAttribute('scribeRef'),\n script: xml.getAttribute('script'),\n scriptRef: xml.getAttribute('scriptRef'),\n medium: xml.getAttribute('medium'),\n scope: xml.getAttribute('scope') as HandNoteScope,\n };\n }\n}\n\n@xmlParser('handNotes', HandNotesParser)\nexport class HandNotesParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): HandNotes {\n return {\n ...super.parse(xml),\n type: HandNotes,\n content: queryAndParseElements<HandNote>(xml, 'keywords'),\n };\n }\n}\n\n@xmlParser('transpose', TransposeParser)\nexport class TransposeParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Transpose {\n return {\n ...super.parse(xml),\n type: Transpose,\n content: queryAndParseElements<Ptr>(xml, 'ptr'),\n };\n }\n}\n\n@xmlParser('listTranspose', ListTransposeParser)\nexport class ListTransposeParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ListTranspose {\n return {\n ...super.parse(xml),\n type: ListTranspose,\n description: queryAndParseElements<Description>(xml, 'desc'),\n transposes: queryAndParseElements<Transpose>(xml, 'transpose'),\n };\n }\n}\n\n@xmlParser('channel', ChannelParser)\nexport class ChannelParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Channel {\n return {\n ...super.parse(xml),\n type: Channel,\n mode: xml.getAttribute('mode') as ChannelMode,\n };\n }\n}\n\n@xmlParser('constitution', ConstitutionParser)\nexport class ConstitutionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Constitution {\n return {\n ...super.parse(xml),\n type: Constitution,\n constitutionType: xml.getAttribute('type'),\n };\n }\n}\n\n@xmlParser('derivation', DerivationParser)\nexport class DerivationParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Derivation {\n return {\n ...super.parse(xml),\n type: Derivation,\n derivationType: xml.getAttribute('type'),\n };\n }\n}\n\n@xmlParser('domain', DomainParser)\nexport class DomainParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Domain {\n return {\n ...super.parse(xml),\n type: Domain,\n domainType: xml.getAttribute('type'),\n };\n }\n}\n\n@xmlParser('factuality', FactualityParser)\nexport class FactualityParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Factuality {\n return {\n ...super.parse(xml),\n type: Factuality,\n factualityType: xml.getAttribute('type'),\n };\n }\n}\n\n@xmlParser('interaction', InteractionParser)\nexport class InteractionParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Interaction {\n return {\n ...super.parse(xml),\n type: Interaction,\n interactionType: xml.getAttribute('type'),\n active: xml.getAttribute('type'),\n passive: xml.getAttribute('type'),\n };\n }\n}\n\n@xmlParser('preparedness', PreparednessParser)\nexport class PreparednessParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Preparedness {\n return {\n ...super.parse(xml),\n type: Preparedness,\n preparednessType: xml.getAttribute('type'),\n };\n }\n}\n\n@xmlParser('purpose', PurposeParser)\nexport class PurposeParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Purpose {\n return {\n ...super.parse(xml),\n type: Purpose,\n purposeType: xml.getAttribute('type'),\n degree: xml.getAttribute('degree') as Degree,\n };\n }\n}\n\n@xmlParser('change', ChangeParser)\nexport class ChangeParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Change {\n return {\n ...super.parse(xml),\n type: Change,\n id: getID(xml),\n who: getDefaultAttr(xml.getAttribute('who')).replace('#', ''),\n status: xml.getAttribute('status') as Status,\n when: xml.getAttribute('when'),\n notBefore: xml.getAttribute('notBefore'),\n notAfter: xml.getAttribute('notAfter'),\n targets: getDefaultAttr(xml.getAttribute('target')).split(' ').map(t => t.replace('#', '')),\n };\n }\n}\n\n@xmlParser('textDesc', TextDescParser)\nexport class TextDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): TextDesc {\n return {\n ...super.parse(xml),\n type: TextDesc,\n channel: queryAndParseElements<Channel>(xml, 'channel'),\n constitution: queryAndParseElements<Constitution>(xml, 'constitution'),\n derivation: queryAndParseElements<Derivation>(xml, 'derivation'),\n domain: queryAndParseElements<Domain>(xml, 'domain'),\n factuality: queryAndParseElements<Factuality>(xml, 'factuality'),\n interaction: queryAndParseElements<Interaction>(xml, 'interaction'),\n preparedness: queryAndParseElements<Preparedness>(xml, 'preparedness'),\n purpose: queryAndParseElements<Purpose>(xml, 'purpose'),\n };\n }\n}\n\n@xmlParser('particDesc', ParticDescParser)\nexport class ParticDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ParticDesc {\n return {\n ...super.parse(xml),\n type: ParticDesc,\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n participants: queryAndParseElements<NamedEntitiesList>(xml, 'listPerson').concat(queryAndParseElements<NamedEntitiesList>(xml, 'listOrg')),\n };\n }\n}\n\n@xmlParser('setting', SettingParser)\nexport class SettingParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Setting {\n const names = queryAndParseElements<GenericElement>(xml, 'name');\n const orgNames = queryAndParseElements<GenericElement>(xml, 'orgName');\n const persNames = queryAndParseElements<GenericElement>(xml, 'persName');\n const placeNames = queryAndParseElements<GenericElement>(xml, 'placeName');\n \n return {\n ...super.parse(xml),\n type: Setting,\n who: xml.getAttribute('who'),\n name: names.concat(orgNames).concat(persNames).concat(placeNames),\n date: queryAndParseElements(xml, 'date'),\n time: queryAndParseElements(xml, 'time'),\n locale: queryAndParseElements(xml, 'locale'),\n activity: queryAndParseElements(xml, 'activity'),\n };\n }\n}\n\n@xmlParser('settingDesc', SettingDescParser)\nexport class SettingDescParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): SettingDesc {\n return {\n ...super.parse(xml),\n type: SettingDesc,\n structuredData: Array.from(xml.children).filter(el => el.tagName === 'p').length !== xml.children.length,\n settings: queryAndParseElements<Setting>(xml, 'setting'),\n places: queryAndParseElements<NamedEntitiesList>(xml, 'listPlace'),\n };\n }\n}\n\n@xmlParser('listChange', ListChangeParser)\nexport class ListChangeParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ListChange {\n return {\n ...super.parse(xml),\n type: ListChange,\n content: complexElements(xml.childNodes, true).filter((child: XMLElement) => child.tagName !== 'desc')\n .map(child => parseElement<ListChange | Change>(child as XMLElement)),\n description: queryAndParseElement<Description>(xml, 'desc'),\n id: getID(xml),\n ordered: isBoolString(xml.getAttribute('ordered')),\n };\n }\n}\n\n@xmlParser('profileDesc', ProfileDescParser)\nexport class ProfileDescParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): ProfileDesc {\n return {\n ...super.parse(xml),\n type: ProfileDesc,\n abstract: queryAndParseElements<Abstract>(xml, 'abstract'),\n calendarDesc: queryAndParseElements<CalendarDesc>(xml, 'calendarDesc'),\n correspDesc: queryAndParseElements<CorrespDesc>(xml, 'correspDesc'),\n creation: queryAndParseElements<Creation>(xml, 'creation'),\n handNotes: queryAndParseElements<HandNotes>(xml, 'handNotes'),\n langUsage: queryAndParseElements<LangUsage>(xml, 'langUsage'),\n listTranspose: queryAndParseElements<ListTranspose>(xml, 'listTranspose'),\n particDesc: queryAndParseElements<ParticDesc>(xml, 'particDesc'),\n settingDesc: queryAndParseElements<SettingDesc>(xml, 'settingDesc'),\n textClass: queryAndParseElements<TextClass>(xml, 'textClass'),\n textDesc: queryAndParseElements<TextDesc>(xml, 'textDesc'),\n };\n }\n}\n\n@xmlParser('revisionDesc', RevisionDescParser)\nexport class RevisionDescParser extends GenericParser implements Parser<XMLElement> {\n parse(xml: XMLElement): RevisionDesc {\n return {\n ...super.parse(xml),\n type: RevisionDesc,\n content: complexElements(xml.childNodes, true).map(child => parseElement<ListChange | Change>(child as XMLElement)),\n status: xml.getAttribute('status') as Status,\n };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MsPart } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-ms-part',\n templateUrl: './ms-part.component.html',\n styleUrls: ['./ms-part.component.scss'],\n})\n\n@register(MsPart)\nexport class MsPartComponent {\n @Input() data: MsPart;\n}\n","<div class=\"msPart\"> \n <evt-ms-desc-section [label]=\"'msPart'\" [underline]=false></evt-ms-desc-section> \n <div class=\"flex-container\" *ngIf=\"data?.pEl.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'summary'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.pEl\"></evt-content-viewer> \n </div>\n </div>\n <ng-container *ngIf=\"data?.head as head\">\n <div class=\"flex-container\" *ngIf=\"head.title.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'title'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <ng-container *ngFor=\"let titles of head.title; let i = index\">\n <evt-content-viewer *ngFor=\"let title of titles\" [content]=\"title\"></evt-content-viewer>\n <span *ngIf=\"i < [head.title.length-1]\">, </span>\n </ng-container>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"head.origPlace\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'origPlace'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"head.origPlace\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"head.origDate\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'origDate'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"head.origDate\"></evt-content-viewer>\n </div>\n </div>\n </ng-container>\n <evt-ms-identifier *ngIf=\"data?.msIdentifier\" [data]=\"data.msIdentifier\"></evt-ms-identifier>\n <evt-ms-contents *ngIf=\"data?.msContents\" [data]=\"data.msContents\"></evt-ms-contents>\n <evt-phys-desc *ngIf=\"data?.physDesc\" [data]=\"data.physDesc\"></evt-phys-desc>\n <evt-history *ngIf=\"data?.history\" [data]=\"data.history\"></evt-history>\n <evt-additional *ngIf=\"data?.additional\" [data]=\"data.additional\"></evt-additional> \n <ng-container *ngFor=\"let p of data?.msParts\" >\n <ul>\n <li>\n <evt-ms-part [data]=\"p\"></evt-ms-part>\n </li>\n </ul>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\n\nimport { Paragraph } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins';\n\nexport interface ParagraphComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { }\n\n@Component({\n selector: 'evt-paragraph',\n templateUrl: './paragraph.component.html',\n styleUrls: ['./paragraph.component.scss'],\n})\n\n@register(Paragraph)\nexport class ParagraphComponent {\n @Input() data: Paragraph;\n}\n","<p [evtHtmlAttributes]=\"data?.attributes\">\n\t<span class=\"p-num\" *ngIf=\"data.n\">{{data.n}}</span>\n\t<evt-content-viewer *ngFor=\"let el of data.content\" [content]=\"el\" [editionLevel]=\"editionLevel\" \n\t\t[itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [evtHighlight]=\"highlightData\" [textFlow]=\"textFlow\">\n\t</evt-content-viewer>\n</p>","import { Component, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { map } from 'rxjs/operators';\nimport { Gap } from 'src/app/models/evt-models';\nimport { register } from 'src/app/services/component-register.service';\n\n@Component({\n selector: 'evt-gap',\n templateUrl: './gap.component.html',\n styleUrls: ['./gap.component.scss'],\n})\n@register(Gap)\nexport class GapComponent {\n @Input() data: Gap;\n\n get content() {\n if (!!this.data.unit && !!this.data.quantity) {\n switch (this.data.unit) {\n case 'char':\n return `[${'.'.repeat(this.data.quantity)}]`;\n case 'line':\n return '<span class=\"line-gap\"></span>'.repeat(this.data.quantity);\n case 'word':\n return `[${'... '.repeat(this.data.quantity).slice(0, -1)}]`;\n default:\n return '[***]';\n }\n } else if (this.data.extent) {\n return `[${this.data.extent}]`;\n }\n\n return '[***]';\n }\n\n get gapDescription$() {\n return this.translateService.get([this.data.unit, `${this.data.unit}s`, 'missingS', 'missingP', this.data.extent, this.data.reason])\n .pipe(\n map((translations) => {\n let desc = '';\n if (!!this.data.unit || !!this.data.quantity) {\n const unit = this.data.quantity > 1 ? translations[`${this.data.unit}s`] : translations[this.data.unit];\n const missing = this.data.quantity > 1 ? translations.missingP : translations.missingS;\n desc = this.data.quantity ? `${this.data.quantity} ${unit} ${missing}` : `${unit}`;\n } else if (this.data.extent) {\n desc = translations[this.data.extent];\n }\n desc += (this.data.reason ? ` (${translations[this.data.reason]})` : '').trim();\n\n return translations[this.data.extent] === desc ? '' : desc;\n }),\n );\n }\n\n constructor(\n private translateService: TranslateService,\n ) {\n }\n}\n","<span class=\"gap {{data.class}}\" [innerHTML]=\"content\" [ngbPopover]=\"gapDescription$ | async\" triggers=\"mouseenter:mouseleave\"></span>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'evt-panel',\n templateUrl: './panel.component.html',\n styleUrls: ['./panel.component.scss'],\n})\nexport class PanelComponent implements OnInit {\n @Input() comparable: boolean;\n @Input() secondary: boolean;\n @Input() closable: boolean;\n @Input() hideHeader: boolean;\n @Input() hideFooter: boolean;\n @Input() showSecondaryContent: boolean;\n\n @Output() hide: EventEmitter<boolean> = new EventEmitter();\n @Output() scrollContent: EventEmitter<MouseEvent> = new EventEmitter();\n\n ngOnInit() {\n this.comparable = this.comparable === undefined ? false : this.comparable;\n this.secondary = this.secondary === undefined ? false : this.secondary;\n this.closable = this.closable === undefined ? false : this.closable;\n this.hideHeader = this.hideHeader === undefined ? false : this.hideHeader;\n this.hideFooter = this.hideFooter === undefined ? false : this.hideFooter;\n this.showSecondaryContent = this.showSecondaryContent === undefined ? false : this.showSecondaryContent;\n }\n\n isSecondaryContentOpened(): boolean {\n return this.showSecondaryContent;\n }\n\n emitHide() {\n this.hide.emit(true);\n }\n\n onScroll(event: MouseEvent) {\n event.preventDefault();\n this.scrollContent.emit(event);\n }\n}\n","<div class=\"panel card\" \n [class.comparable]=\"comparable\"\n [class.secondary]=\"secondary\">\n <div class=\"panel-header header card-header\" *ngIf=\"!hideHeader\">\n \t<nav class=\"navbar\">\n <div><ng-content select=\"[header-left]\"></ng-content></div>\n <div><ng-content select=\"[header-right]\"></ng-content></div>\n <evt-button *ngIf=\"closable\" additionalClasses=\"rounded-circle btn-close\" \n (btnClick)=\"emitHide()\" [iconLeft]=\"{icon: 'times'}\">\n </evt-button>\n </nav>\n </div>\n <div class=\"panel-content content card-content\" (scroll)=\"onScroll($event)\"\n [class.noFooter]=\"hideFooter\" [class.noHeader]=\"hideHeader\"\n [class.p-4]=\"!hideHeader || !hideFooter\">\n <ng-content select=\"[content]\"></ng-content>\n </div>\n <div class=\"secondary-content card-content\" \n [class.open]=\"isSecondaryContentOpened()\"\n [class.noFooter]=\"hideFooter\">\n <ng-content select=\"[secondary-content]\"></ng-content>\n </div>\n <div class=\"footer card-footer\" *ngIf=\"!hideFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AnnotatorService {\n public textSelection$ = new Subject<Selection>();\n\n selectedText() {\n this.textSelection$.next(window.getSelection());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AttributesMap } from 'ng-dynamic-component';\nimport { AppConfig } from '../app.config';\nimport { EditorialConvention, EditorialConventionLayouts } from '../models/evt-models';\n\n// List of handled editorial convention\nexport type EditorialConventionDefaults = 'addition' | 'additionAbove' | 'additionBelow' | 'additionInline' | 'additionLeft' | 'additionRight' |\n 'damage' | 'deletion' | 'sicCrux' | 'surplus';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditorialConventionsService {\n defaultLayouts: { [T in EditorialConventionDefaults]: Partial<EditorialConventionLayouts> } = {\n addition: {\n diplomatic: {\n style: {\n 'background-color': '#bdecb6',\n },\n },\n },\n additionAbove: {\n interpretative: {\n pre: '\\\\',\n post: '/',\n },\n diplomatic: {\n style: {\n 'vertical-align': 'super',\n 'font-size': '.7rem',\n 'background-color': '#bdecb6',\n },\n },\n },\n additionBelow: {\n interpretative: {\n pre: '/',\n post: '\\\\',\n },\n diplomatic: {\n style: {\n 'vertical-align': 'bottom',\n 'font-size': '.7rem',\n 'background-color': '#bdecb6',\n },\n },\n },\n additionInline: {\n interpretative: {\n pre: '|',\n post: '|',\n },\n diplomatic: {\n style: {\n 'background-color': '#bdecb6',\n },\n },\n },\n additionLeft: {\n interpretative: {\n post: '| |',\n style: {\n 'margin-right': '-0.3rem',\n },\n },\n diplomatic: {\n style: {\n 'margin-left': '-1rem',\n 'background-color': '#bdecb6',\n },\n },\n },\n additionRight: {\n interpretative: {\n pre: '| |',\n style: {\n 'margin-left': '-0.3rem',\n },\n },\n diplomatic: {\n style: {\n 'background-color': '#bdecb6',\n },\n },\n },\n damage: {\n diplomatic: {\n style: {\n 'background-color': 'rgba(193, 193, 193, 0.7)',\n },\n },\n },\n deletion: {\n diplomatic: {\n style: {\n 'background-color': '#fdd3d1',\n 'text-decoration': 'line-through',\n },\n },\n interpretative: {\n pre: '[[',\n post: ']]',\n },\n },\n sicCrux: {\n diplomatic: {\n pre: '&dagger;',\n post: '&dagger;',\n },\n interpretative: {\n pre: '&dagger;',\n post: '&dagger;',\n },\n critical: {\n pre: '&dagger;',\n post: '&dagger;',\n },\n },\n surplus: {\n diplomatic: {\n pre: '{',\n post: '}',\n style: {\n 'background-color': '#f6b26a',\n },\n },\n },\n };\n\n getLayouts(name: string, attributes: AttributesMap, defaultsKey: EditorialConventionDefaults) {\n const defaultKeys = this.defaultLayouts[defaultsKey];\n let layouts: Partial<EditorialConventionLayouts> = defaultKeys;\n\n const externalLayouts = this._getExternalConfigs().find(c => {\n return c.element === name &&\n (!attributes || Object.keys(attributes).concat(Object.keys(c.attributes)).every(k => attributes[k] === c.attributes[k]));\n })?.layouts ?? undefined;\n\n if (externalLayouts) {\n Object.keys(externalLayouts).forEach(editionLevel => {\n layouts = {\n ...defaultKeys || {},\n [editionLevel]: {\n ...defaultKeys ? defaultKeys[editionLevel] : {},\n ...externalLayouts[editionLevel],\n },\n };\n });\n }\n\n return layouts;\n }\n\n private _getExternalConfigs(): EditorialConvention[] {\n const customs = AppConfig.evtSettings.editorialConventions;\n\n return Object.keys(customs).map((key) => ({\n element: customs[key].markup?.element ?? key,\n attributes: customs[key].markup?.attributes ?? {},\n layouts: customs[key].layouts ?? {},\n }));\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { MsIdentifier } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-ms-identifier',\n templateUrl: './ms-identifier.component.html',\n styleUrls: ['./ms-identifier.component.scss'],\n})\n\n@register(MsIdentifier)\nexport class MsIdentifierComponent {\n @Input() data: MsIdentifier;\n}\n","<div class=\"msIdentifier\">\n <evt-ms-desc-section [label]=\"'msIdentifier'\" [underline]=true></evt-ms-desc-section>\n <div class=\"flex-container\">\n <ng-container *ngIf=\"data?.msName.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'msName'\" [additionalClass]=\"'msName'\" [inlineLabel]=\"true\"></evt-ms-desc-section> \n </div>\n <div class=\"flex-item-information\"> \n <evt-content-viewer *ngFor=\"let m of data.msName\" [content]=\"m\" class=\"projectInfo-block\"></evt-content-viewer>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data?.institution\">\n <div class=\"flex-item-label\" *ngIf=\"data?.institution\">\n <evt-ms-desc-section [label]=\"'institution'\" [additionalClass]=\"'institution'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div> \n <div class=\"flex-item-information\"> \n <evt-content-viewer [content]=\"data?.institution\"></evt-content-viewer>\n </div>\n </ng-container> \n </div> \n <evt-identifier [data]=\"data\"></evt-identifier> \n <ng-container *ngFor=\"let a of data?.altIdentifier\">\n <evt-ms-desc-section [label]=\"'altIdentifier'\" [inlineLabel]=\"true\"></evt-ms-desc-section> \n <evt-identifier [data]=\"a\" [listClass]=\"true\"></evt-identifier>\n <evt-ms-desc-section *ngIf=\"a.noteEl.length>0\" [inlineLabel]=\"true\" [additionalClass]=\"'itemElement'\">\n <evt-content-viewer *ngFor=\"let nt of a.noteEl\" [content]=\"nt\"></evt-content-viewer>\n </evt-ms-desc-section>\n </ng-container>\n</div>\n","import { Component, Input } from '@angular/core';\n\nimport { Extent } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-extent',\n templateUrl: './extent.component.html',\n styleUrls: ['./extent.component.scss'],\n})\n@register(Extent)\nexport class ExtentComponent {\n @Input() data: Extent;\n}\n","<evt-header-section *ngIf=\"data?.content?.length > 0\" [label]=\"'extent'\" [additionalClass]=\"'extent'\" [inlineLabel]=\"true\">\n <div content>\n <evt-content-viewer *ngFor=\"let el of data.content\" [content]=\"el\"></evt-content-viewer> \n </div>\n</evt-header-section>\n","import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { CompactType, DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { EditionLevel } from 'src/app/app.config';\nimport { Page } from 'src/app/models/evt-models';\nimport { EVTStatusService } from 'src/app/services/evt-status.service';\nimport { EvtIconInfo } from 'src/app/ui-components/icon/icon.component';\n\n@Component({\n selector: 'evt-text-versions',\n templateUrl: './text-versions.component.html',\n styleUrls: ['./text-versions.component.scss'],\n})\nexport class TextVersionsComponent implements OnInit {\n @ViewChild('versionsPanel', { static: true }) versionsPanel: ElementRef;\n private versions: VersionItem[] = [];\n\n public options: GridsterConfig = {};\n public textPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 };\n public versionsPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 };\n public versionsOptions: GridsterConfig = {};\n\n public currentPageID$ = this.evtStatusService.currentStatus$.pipe(\n map(({ page }) => page.id),\n );\n\n public currentEditionLevel$ = this.evtStatusService.currentStatus$.pipe(\n map(({ editionLevels }) => editionLevels[0]),\n shareReplay(1),\n );\n\n public get versionBtn(): { label: string, additionalClasses: string, title: string, icon?: EvtIconInfo } {\n return {\n label: this.versions.length > 0 ? '' : 'addVersion',\n title: this.versions.length > 0 ? 'addVersion' : '',\n additionalClasses: `btn-floating ${this.versions.length > 0 ? 'rounded-circle' : ''}`,\n icon: { iconSet: 'fas', icon: 'plus' },\n };\n }\n\n constructor(\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n ngOnInit() {\n this.initGridster();\n this.initPageAndVersions();\n }\n\n changePage(selectedPage: Page) {\n this.evtStatusService.updatePage$.next(selectedPage);\n }\n\n changeEditionLevel(editionLevel: EditionLevel) {\n this.evtStatusService.updateEditionLevels$.next([editionLevel?.id]);\n }\n\n getVersions() {\n return this.versions;\n }\n\n addVersion() {\n const newVersion = {\n label: (this.versions.length + 1).toString(), // TODO: TEMP\n itemConfig: { cols: 1, rows: 1, y: 0, x: this.versions.length + 1 },\n };\n this.versions.push(newVersion); // TODO: TEMP\n this.updateGridsterOptions();\n // TODO: Come gestiamo la rotta nel caso di più versioni selezionate?\n }\n\n removeVersion(index) {\n this.versions.splice(index, 1);\n this.updateGridsterOptions();\n }\n\n private initPageAndVersions() {\n // TODO: subscribe to route params\n }\n\n private initGridster() {\n this.options = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n margin: 0,\n maxCols: 2,\n maxRows: 1,\n draggable: {\n enabled: false,\n ignoreContent: false,\n ignoreContentClass: 'panel-content',\n dragHandleClass: 'panel-header',\n },\n resizable: {\n enabled: false,\n },\n };\n this.versionsOptions = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n compactType: CompactType.CompactLeft,\n scrollToNewItems: true,\n margin: 0,\n maxRows: 1,\n draggable: {\n enabled: true,\n ignoreContent: true,\n dragHandleClass: 'panel-header',\n },\n resizable: {\n enabled: false,\n },\n mobileBreakpoint: 0,\n itemResizeCallback: this.updateFixedColWidth.bind(this),\n itemChangeCallback: this.itemChange.bind(this),\n };\n }\n\n private itemChange() {\n const updatedVerList: string[] = [];\n for (const verItem of this.versions) {\n const verIndex = verItem.itemConfig.x;\n updatedVerList[verIndex] = verItem.label;\n }\n // TODO: Use this list to update URL params\n console.log('TODO! Use this list to update URL params', updatedVerList);\n }\n\n private updateGridsterOptions() {\n this.options.maxCols = this.versions.length <= 1 ? 2 : 3;\n this.versionsPanelItem.cols = this.versions.length <= 1 ? 1 : 2;\n\n this.versionsOptions.maxCols = this.versions.length;\n\n this.versionsOptions.gridType = this.versions.length <= 2 ? GridType.Fit : GridType.HorizontalFixed;\n this.changedOptions();\n this.updateFixedColWidth();\n }\n\n private changedOptions() {\n if (this.options.api && this.options.api.optionsChanged) {\n this.options.api.optionsChanged();\n }\n if (this.versionsOptions.api && this.versionsOptions.api.optionsChanged) {\n this.versionsOptions.api.optionsChanged();\n }\n }\n\n private updateFixedColWidth() {\n const versionsPanelEl = this.versionsPanel.nativeElement as HTMLElement;\n const fixedColWidth = versionsPanelEl.clientWidth * 0.416666666667;\n this.versionsOptions.fixedColWidth = this.versions.length > 2 ? fixedColWidth : undefined;\n this.changedOptions();\n }\n}\n\ninterface VersionItem {\n label: string;\n itemConfig: GridsterItem;\n}\n","<gridster [options]=\"options\">\n <gridster-item [item]=\"textPanelItem\">\n <evt-text-panel\n [pageID]=\"currentPageID$ | async\" \n [editionLevelID]=\"currentEditionLevel$ | async\"\n (pageChange)=\"changePage($event)\" \n (editionLevelChange)=\"changeEditionLevel($event)\"\n ></evt-text-panel>\n </gridster-item>\n <gridster-item [item]=\"versionsPanelItem\">\n <div class=\"versionsPanel\" #versionsPanel\n [class.align-self-center]=\"getVersions().length === 0\" \n [class.empty]=\"getVersions().length === 0\">\n <gridster [options]=\"versionsOptions\" *ngIf=\"getVersions().length > 0\">\n <gridster-item [item]=\"version.itemConfig\" *ngFor=\"let version of getVersions(); let i = index\">\n <evt-version-panel\n (hide)=\"removeVersion(i)\" [version]=\"version.label\">\n </evt-version-panel>\n </gridster-item>\n </gridster>\n <evt-button class=\"btn\" [class.btn-float-right]=\"getVersions().length > 0\"\n [additionalClasses]=\"versionBtn?.additionalClasses\"\n [label]=\"versionBtn?.label | translate\" [iconLeft]=\"versionBtn?.icon\" [title]=\"versionBtn?.title | translate\"\n (btnClick)=\"addVersion()\"></evt-button>\n </div> \n </gridster-item>\n</gridster>","import { Component, Input } from '@angular/core';\nimport { NamedEntityInfo } from '../../../models/evt-models';\nimport { register } from '../../../services/component-register.service';\n\n@Component({\n selector: 'evt-named-entity-detail',\n templateUrl: './named-entity-detail.component.html',\n styleUrls: ['./named-entity-detail.component.scss'],\n})\n@register(NamedEntityInfo)\nexport class NamedEntityDetailComponent {\n @Input() data: NamedEntityInfo;\n\n iconData = {\n actors: { icon: 'users' },\n birth: { icon: 'birthday-cake' },\n bloc: { icon: 'map-marker' },\n country: { icon: 'map-marker' },\n death: { icon: 'times', rotate: 45 },\n district: { icon: 'map-marker' },\n geogFeat: { icon: 'map-marker' },\n geoname: { icon: 'map-marker' },\n idno: { icon: 'barcode' },\n note: { icon: 'sticky-note' },\n occupation: { icon: 'briefcase' },\n orgname: { icon: 'users' },\n persname: { icon: 'user' },\n placename: { icon: 'map-marker' },\n region: { icon: 'map-marker' },\n relations: { icon: 'share-alt' },\n residence: { icon: 'home' },\n settlement: { icon: 'location-arrow' },\n sex: { icon: 'venus-mars' },\n };\n\n defaultIcon = { icon: 'info-circle' };\n}\n","<div [title]=\"'&lt;' + data.label + '&gt;' | lowercase\">\n <span class=\"icon\">\n <evt-icon [iconInfo]=\"iconData[data.label] || defaultIcon\"></evt-icon>\n </span>\n <span class=\"label\" *ngIf=\"data.label\">{{ data.label }}: </span>\n <span class=\"text\">\n <ng-container *ngFor=\"let element of data.content\">\n <evt-content-viewer [content]=\"element\"></evt-content-viewer>\n <ul class=\"attributes-list\">\n <li *ngFor=\"let item of element.attributes | keyvalue\">\n <span class=\"label\">{{ item.key }}:</span> {{ item.value }}\n </li>\n </ul>\n </ng-container>\n\n </span>\n</div>","import { XMLElement } from '../models/evt-models';\n\n// TODO get rid of any\n// tslint:disable-next-line: no-any\ndeclare var window: any;\n\nexport function parseXml(xmlStr: string): XMLElement {\n if (typeof window.DOMParser !== 'undefined') {\n\n return (new window.DOMParser()).parseFromString(xmlStr, 'text/xml');\n }\n\n if (typeof window.ActiveXObject !== 'undefined' &&\n new window.ActiveXObject('Microsoft.XMLDOM')) {\n const xmlDoc = new window.ActiveXObject('Microsoft.XMLDOM');\n xmlDoc.async = 'false';\n xmlDoc.loadXML(xmlStr);\n\n return xmlDoc;\n }\n throw new Error('No XML parser found');\n}\n\nexport function replaceMultispaces(textContent: string) {\n return textContent.replace(/\\s{2,}/g, ' ');\n}\n\nexport function replaceNewLines(textContent: string) {\n return replaceMultispaces(textContent.trim().replace(/\\n/g, ' '));\n}\n\nexport function replaceNotWordChar(textContent: string) {\n return textContent && textContent.replace(/[\\W_]/, ' ') ;\n}\n\nexport function removeSpaces(textContent: string) {\n return textContent.replace(/\\s/g, '');\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { AppConfig } from '../app.config';\nimport { EntitiesSelectItem } from '../components/entities-select/entities-select.component';\nimport { Attributes } from '../models/evt-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EntitiesSelectService {\n public updateSelection$ = new Subject<EntitiesSelectItem[]>();\n public selectedItems$ = this.updateSelection$.pipe(\n shareReplay(1),\n );\n\n public getClassNameFromValue(value) {\n return value.toLowerCase().replace(/\\s/g, '').replace(/(\\[.*?\\])/g, '');\n }\n\n public getAttributesFromValue(value): Array<{ key: string, value: string }> {\n return (value.toLowerCase().replace(/\\s/g, '').match(/(\\[.*?\\])/g) || [])\n .map(i => i.replace(/(\\[|\\]|\\')/g, '').split('=')).map(i => ({ key: i[0], value: i[1] }));\n }\n\n public matchClassAndAttributes(valueForCheck: string, attributesToCheck: Attributes, classToCheck: string) {\n return valueForCheck.split(',')\n .some(v => this.matchClass(v, classToCheck) && this.matchAttributes(v, attributesToCheck));\n }\n\n public matchClass(classForCheck: string, classToCheck: string) {\n return classToCheck === this.getClassNameFromValue(classForCheck);\n }\n\n public matchAttributes(attributesForCheck: string, attributesToCheck: Attributes) {\n return this.getAttributesFromValue(attributesForCheck).every(a => attributesToCheck[a.key] === a.value);\n }\n\n public getHighlightColor(attributesToCheck: Attributes, classNameToCheck: string, selectedItems?: EntitiesSelectItem[]) {\n const entitiesSelectItems = AppConfig.evtSettings.edition.entitiesSelectItems\n .reduce((i: EntitiesSelectItem[], g) => i.concat(g.items), [])\n .reduce((x: EntitiesSelectItem[], y) => {\n const multiValues: EntitiesSelectItem[] = [];\n y.value.split(',').forEach(t => {\n multiValues.push({ ...y, value: t });\n });\n\n return x.concat(multiValues);\n }, []);\n\n let bestMatch: EntitiesSelectItem & { score: number };\n entitiesSelectItems.forEach(item => {\n let score = 0;\n score += this.matchClass(item.value, classNameToCheck) ? 1 : 0;\n const attributes = this.getAttributesFromValue(item.value);\n score += attributes.length && this.matchAttributes(item.value, attributesToCheck) ? 1 : 0;\n if (score > 0 && selectedItems) {\n score += selectedItems.find(i => i.value === item.value) ? 1 : 0;\n }\n if (score > 0 && (!bestMatch || bestMatch.score < score)) {\n bestMatch = {\n ...item,\n score,\n };\n }\n });\n\n return bestMatch ? bestMatch.color : '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { AppConfig } from '../app.config';\nimport { IperlemsSelectItem } from '../components/iperlems-select/iperlems-select.component';\nimport { Attributes } from '../models/evt-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IperlemsSelectService {\n public updateIperlemsSelection$ = new Subject<IperlemsSelectItem[]>();\n public selectedIperlemsItems$ = this.updateIperlemsSelection$.pipe(\n shareReplay(1),\n );\n\n public getClassNameFromValue(value) {\n return value.toLowerCase().replace(/\\s/g, '').replace(/(\\[.*?\\])/g, '');\n }\n\n public getAttributesFromValue(value): Array<{ key: string, value: string }> {\n return (value.toLowerCase().replace(/\\s/g, '').match(/(\\[.*?\\])/g) || [])\n .map(i => i.replace(/(\\[|\\]|\\')/g, '').split('=')).map(i => ({ key: i[0], value: i[1] }));\n }\n\n public matchClassAndAttributes(valueForCheck: string, attributesToCheck: Attributes, classToCheck: string) {\n return valueForCheck.split(',')\n .some(v => this.matchClass(v, classToCheck) && this.matchAttributes(v, attributesToCheck));\n }\n\n public matchClass(classForCheck: string, classToCheck: string) {\n return classToCheck === this.getClassNameFromValue(classForCheck);\n }\n\n public matchAttributes(attributesForCheck: string, attributesToCheck: Attributes) {\n return this.getAttributesFromValue(attributesForCheck).every(a => attributesToCheck[a.key] === a.value);\n }\n\n public getHighlightColor(attributesToCheck: Attributes, classNameToCheck: string, selectedIperlemsItems?: IperlemsSelectItem[]) {\n const iperlemsSelectItems = AppConfig.evtSettings.edition.iperlemsSelectItems\n .reduce((i: IperlemsSelectItem[], g) => i.concat(g.items), [])\n .reduce((x: IperlemsSelectItem[], y) => {\n const multiValues: IperlemsSelectItem[] = [];\n y.value.split(',').forEach(t => {\n multiValues.push({ ...y, value: t });\n });\n\n return x.concat(multiValues);\n }, []);\n\n let bestMatch: IperlemsSelectItem & { score: number };\n iperlemsSelectItems.forEach(item => {\n let score = 0;\n score += this.matchClass(item.value, classNameToCheck) ? 1 : 0;\n const attributes = this.getAttributesFromValue(item.value);\n score += attributes.length && this.matchAttributes(item.value, attributesToCheck) ? 1 : 0;\n if (score > 0 && selectedIperlemsItems) {\n score += selectedIperlemsItems.find(i => i.value === item.value) ? 1 : 0;\n }\n if (score > 0 && (!bestMatch || bestMatch.score < score)) {\n bestMatch = {\n ...item,\n score,\n };\n }\n });\n\n return bestMatch ? bestMatch.color : '';\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { LemmatizedEntityInfo } from '../../../models/evt-models';\nimport { register } from '../../../services/component-register.service';\n// import { normalizeUrl } from '../../../utils/js-utils';\n\n@Component({\n selector: 'evt-lemmatized-entity-detail',\n templateUrl: './lemmatized-entity-detail.component.html',\n styleUrls: ['./lemmatized-entity-detail.component.scss'],\n})\n@register(LemmatizedEntityInfo)\nexport class LemmatizedEntityDetailComponent {\n @Input() data: LemmatizedEntityInfo;\n\n iconData = {\n actors: { icon: 'users' },\n birth: { icon: 'birthday-cake' },\n bloc: { icon: 'map-marker' },\n country: { icon: 'map-marker' },\n death: { icon: 'times', rotate: 45 },\n district: { icon: 'map-marker' },\n geogFeat: { icon: 'map-marker' },\n geoname: { icon: 'map-marker' },\n idno: { icon: 'barcode' },\n note: { icon: 'sticky-note' },\n occupation: { icon: 'briefcase' },\n orgname: { icon: 'users' },\n persname: { icon: 'user' },\n placename: { icon: 'map-marker' },\n region: { icon: 'map-marker' },\n relations: { icon: 'share-alt' },\n residence: { icon: 'home' },\n settlement: { icon: 'location-arrow' },\n sex: { icon: 'venus-mars' },\n link: { icon: 'external-link-alt', iconSet: 'fas'}\n };\n\n defaultIcon = { icon: 'info-circle' };\n\n get linkLem() {\n var link = this.data.attributes.lemmaRef\n return link; \n }\n\n openlinkLem() {\n if (this.linkLem) {\n window.open(this.linkLem);\n }\n }\n openlinkTLIO() {\n window.open('http://tlio.ovi.cnr.it/TLIO/');\n }\n}\n","<div [title]=\"'&lt;' + data.label + '&gt;' | lowercase\">\n <!-- <span class=\"icon\">\n <evt-icon [iconInfo]=\"iconData[data.label] || defaultIcon\"></evt-icon>\n </span> -->\n <span class=\"label\" *ngIf=\"data.label=='lem'\">Lemma: </span>\n <span class=\"label\" *ngIf=\"data.label=='note'\">\n Note: \n </span> \n <span class=\"text\">\n <ng-container *ngFor=\"let element of data.content\">\n <evt-content-viewer [content]=\"element\"></evt-content-viewer>\n <ul class=\"attributes-list\">\n <div *ngFor=\"let item of element.attributes | keyvalue\">\n <li *ngIf=\"item.key!=='lemmaRef' && data.label!=='div'\">\n <span *ngIf=\"item.key==='norm' && item.key!=='lemmaRef'\" class=\"label\">Forma normalizzata: </span>\n <span *ngIf=\"item.key==='type' && item.key!=='lemmaRef'\" class=\"label\">Iperlemma: </span>\n <span *ngIf=\"item.key==='pos' && item.key!=='lemmaRef'\" class=\"label\">Categoria grammaticale: </span> \n <span *ngIf=\"item.key!=='lemmaRef'\">{{ item.value }}</span>\n </li>\n </div> \n </ul>\n \n </ng-container>\n <span class=\"label\" *ngIf=\"data.label=='lem'\">\n Risorse esterne<br/>Consulta il Tesoro della Lingua Italiana delle Origini \n </span> \n <span>\n <ng-container *ngFor=\"let element of data.content; index as i; first as isFirst\">\n <ul class=\"attributes-list\">\n <div *ngFor=\"let item of element.attributes| keyvalue\">\n <li *ngIf=\"item.key==='lemmaRef' && data.label!=='lem' && data.label!='note' && data.label==='a' && item.key!=='pos' && item.key!=='norm' && item.key!=='type'\">\n <div>\n <span (click)=\"openlinkLem()\" [class.pointer]=\"linkLem\">\n <a class=\"icon-delete\" class=\"ml-2 external-link-alt\">\n Definizione lemma \n <evt-icon [iconInfo]=\"{icon: 'external-link-alt', iconSet: 'fas'}\"></evt-icon>\n </a>\n \n </span> \n </div>\n </li>\n <li *ngIf=\"item.key !=='lemmaRef' && data.label!=='a' && item.key!=='pos' && item.key!=='norm'\">\n <div>\n <span (click)=\"openlinkTLIO()\" [class.pointer]=\"linkLem\">\n <a class=\"icon-delete\" class=\"ml-2 external-link-alt\">\n TLIO \n <evt-icon [iconInfo]=\"{icon: 'external-link-alt', iconSet: 'fas'}\"></evt-icon>\n </a>\n </span> \n </div>\n </li>\n </div>\n </ul>\n </ng-container>\n </span>\n </span>\n</div>","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'evt-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n})\nexport class IconComponent implements OnInit {\n @Input() iconInfo: EvtIconInfo;\n\n ngOnInit(): void {\n if (this.iconInfo) {\n this.iconInfo.iconSet = this.iconInfo.iconSet ? this.iconInfo.iconSet : 'fas'; // Default set is Fontawesome Solid\n this.iconInfo.additionalClasses = this.iconInfo.additionalClasses || '';\n this.iconInfo.rotate = this.iconInfo.rotate !== undefined ? this.iconInfo.rotate : 0;\n }\n }\n}\nexport interface EvtIconInfo {\n icon: string;\n iconSet?: 'evt' | 'fas' | 'far';\n additionalClasses?: string;\n rotate?: number;\n transform?: string;\n mask?;\n}\n","<ng-container *ngIf=\"iconInfo\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"iconInfo.iconSet === 'evt'\">\n <span class=\"evt-icon-{{iconInfo.icon}} {{iconInfo.additionalClasses}}\"></span>\n </ng-container>\n <ng-container *ngSwitchCase=\"iconInfo.iconSet === 'fas' || iconInfo.iconSet === 'far'\">\n <!-- fas, far-->\n <fa-icon [icon]=\"[iconInfo.iconSet, iconInfo.icon]\" class=\"{{iconInfo.additionalClasses}}\"\n [rotate]=\"iconInfo.rotate\" [transform]=\"iconInfo.transform\" [mask]=\"iconInfo.mask\"></fa-icon>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <span style=\"display: none\">iconSet non supportato</span>\n </ng-container>\n </ng-container>\n</ng-container>","import { Injectable } from '@angular/core';\nimport { parse, ParserRegister } from '.';\nimport {\n NamedEntitiesList, NamedEntity, NamedEntityOccurrence, NamedEntityOccurrenceRef, Page, XMLElement,\n} from '../../models/evt-models';\nimport { isNestedInElem } from '../../utils/dom-utils';\nimport { Map } from '../../utils/js-utils';\nimport { GenericElemParser } from './basic-parsers';\nimport { getListsToParseTagNames, namedEntitiesListsTagNamesMap } from './named-entity-parsers';\nimport { createParser } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NamedEntitiesParserService {\n private tagNamesMap = namedEntitiesListsTagNamesMap;\n\n public parseLists(document: XMLElement) {\n const listsToParse = getListsToParseTagNames();\n const listParser = ParserRegister.get('evt-named-entities-list-parser');\n // We consider only first level lists; inset lists will be considered\n const lists = Array.from(document.querySelectorAll<XMLElement>(listsToParse.toString()))\n .filter((list) => !isNestedInElem(list, list.tagName))\n .map((l) => listParser.parse(l) as NamedEntitiesList);\n\n return {\n lists,\n entities: lists.map(({ content }) => content).reduce((a, b) => a.concat(b), []),\n relations: lists.map(({ relations }) => relations).reduce((a, b) => a.concat(b), []),\n };\n }\n\n public getResultsByType(lists: NamedEntitiesList[], entities: NamedEntity[], type: string[]) {\n return {\n lists: lists.filter(list => type.indexOf(list.namedEntityType) >= 0),\n entities: entities.filter(entity => type.indexOf(entity.namedEntityType) >= 0),\n };\n }\n\n public parseNamedEntitiesOccurrences(pages: Page[]) {\n return pages.map(p => this.getNamedEntitiesOccurrencesInPage(p))\n .reduce(\n (x, y) => {\n Object.keys(y).forEach(k => {\n if (x[k]) {\n x[k] = x[k].concat([y[k]]);\n } else {\n x[k] = [y[k]];\n }\n });\n\n return x;\n },\n {});\n }\n\n public getNamedEntitiesOccurrencesInPage(p: Page): Array<Map<NamedEntityOccurrence>> {\n return p.originalContent\n .filter(e => e.nodeType === 1)\n .map(e => {\n const occurrences = [];\n if (this.tagNamesMap.occurrences.indexOf(e.tagName) >= 0 && e.getAttribute('ref')) { // Handle first level page contents\n occurrences.push(this.parseNamedEntityOccurrence(e));\n }\n\n return occurrences.concat(Array.from(e.querySelectorAll<XMLElement>(this.tagNamesMap.occurrences))\n .map(el => this.parseNamedEntityOccurrence(el)));\n })\n .filter(e => e.length > 0)\n .reduce((x, y) => x.concat(y), [])\n .reduce(\n (x, y) => {\n const refsByDoc: NamedEntityOccurrenceRef[] = x[y.ref] ? x[y.ref].refsByDoc || [] : [];\n const docRefs = refsByDoc.find(r => r.docId === y.docId);\n if (docRefs) {\n docRefs.refs.push(y.el);\n } else {\n refsByDoc.push({\n docId: y.docId,\n refs: [y.el],\n docLabel: y.docLabel,\n });\n }\n\n return {\n ...x, [y.ref]: {\n pageId: p.id,\n pageLabel: p.label,\n refsByDoc,\n },\n } as Array<Map<NamedEntityOccurrence>>;\n },\n {});\n }\n\n private parseNamedEntityOccurrence(xml: XMLElement) {\n const doc = xml.closest('text');\n const elementParser = createParser(GenericElemParser, parse);\n\n return {\n ref: xml.getAttribute('ref').replace('#', ''),\n el: elementParser.parse(xml),\n docId: doc ? doc.getAttribute('xml:id') : '', // TODO: get proper document id when missing\n docLabel: doc ? doc.getAttribute('n') || doc.getAttribute('xml:id') : '', // TODO: get proper document label when attributes missing\n };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { EncodingDesc } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-encoding-desc',\n templateUrl: './encoding-desc.component.html',\n styleUrls: ['./encoding-desc.component.scss'],\n})\n@register(EncodingDesc)\nexport class EncodingDescComponent {\n @Input() data: EncodingDesc;\n}\n","<ng-container [ngSwitch]=\"data?.structuredData\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'projectDesc', items: data?.projectDesc, class: 'projectDesc' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'samplingDecl', items: data?.samplingDecl, class: 'samplingDecl' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'editorialDecl', items: data?.editorialDecl, class: 'editorialDecl' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'tagsDecl', items: data?.tagsDecl, class: 'tagsDecl' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'refsDecl', items: data?.refsDecl, class: 'refsDecl' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'classDecl', items: data?.classDecl, class: 'classDecl' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'geoDecl', items: data?.geoDecl, class: 'geoDecl' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'unitDecl', items: data?.unitDecl, class: 'unitDecl' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'schemaSpec', items: data?.schemaSpec, class: 'schemaSpec' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'schemaRef', items: data?.schemaRef, class: 'schemaRef' }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngFor=\"let element of data?.content\" [content]=\"element\"></evt-content-viewer>\n </ng-container>\n</ng-container>\n\n<ng-template #section let-label=\"label\" let-items=\"items\" let-class=\"class\">\n <ng-container *ngIf=\"items?.length > 0\" >\n <h4 *ngIf=\"label\" class=\"main-section-title\">{{ label | translate }}</h4>\n <evt-header-section [additionalClass]=\"class\">\n <div content>\n <evt-content-viewer *ngFor=\"let item of items\" [content]=\"item\"></evt-content-viewer> \n </div>\n </evt-header-section>\n </ng-container>\n</ng-template>","import { xmlParser } from '.';\nimport { Choice, ChoiceType, XMLElement } from '../../models/evt-models';\nimport { AttributeParser, EmptyParser } from './basic-parsers';\nimport { createParser, parseChildren, Parser } from './parser-models';\n\n@xmlParser('choice', ChoiceParser)\nexport class ChoiceParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Choice {\n const attributes = this.attributeParser.parse(xml);\n const choiceComponent: Choice = {\n type: Choice,\n content: parseChildren(xml, this.genericParse),\n attributes,\n editorialInterventionType: this.getEditorialInterventionType(xml),\n originalContent: this.getOriginalContent(xml),\n normalizedContent: this.getNormalizedContent(xml),\n };\n\n return choiceComponent;\n }\n\n private getEditorialInterventionType(xml: XMLElement): ChoiceType | '' {\n const sicCorEls = Array.from(xml.querySelectorAll<XMLElement>('sic, corr'))\n .filter(el => el.parentElement === xml);\n if (sicCorEls.length > 0) {\n return 'emendation';\n }\n const origRegEls = Array.from(xml.querySelectorAll<XMLElement>('orig, reg, abbr, expan'))\n .filter(el => el.parentElement === xml);\n if (origRegEls.length > 0) {\n return 'normalization';\n }\n\n return '';\n }\n\n private getOriginalContent(xml: XMLElement) {\n return Array.from(xml.querySelectorAll<XMLElement>('orig, sic, abbr'))\n .filter(el => el.parentElement === xml)\n .map(el => this.genericParse(el));\n }\n\n private getNormalizedContent(xml: XMLElement) {\n return Array.from(xml.querySelectorAll<XMLElement>('reg, corr, expan'))\n .filter(el => el.parentElement === xml)\n .map(el => this.genericParse(el));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { XMLElement } from 'src/app/models/evt-models';\nimport { parse } from '.';\nimport { LBParser, VerseParser } from './basic-parsers';\nimport { createParser } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LinesVersesParserService {\n public parseLines(document: XMLElement) {\n // Significant verses are those with at least @n or @xml:id attribute\n return Array.from(document.querySelectorAll<XMLElement>('lb'))\n .filter(el => el.getAttribute('n') || el.getAttribute('xml:id'))\n .map((l) => this.parseLine(l));\n }\n\n public parseLine(line: XMLElement) {\n return createParser(LBParser, parse).parse(line);\n }\n\n public parseVerses(document: XMLElement) {\n return Array.from(document.querySelectorAll<XMLElement>('l'))\n .map((v) => this.parseLine(v));\n }\n\n public parseVerse(verse: XMLElement) {\n return createParser(VerseParser, parse).parse(verse);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { AppConfig, EditionLevel } from '../../app.config';\nimport { Page, Surface, ViewerDataType, XMLImagesValues } from '../../models/evt-models';\nimport { ViewerSource } from '../../models/evt-polymorphic-models';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { EVTStatusService } from '../../services/evt-status.service';\n\n@Component({\n selector: 'evt-image-text',\n templateUrl: './image-text.component.html',\n styleUrls: ['./image-text.component.scss'],\n})\nexport class ImageTextComponent implements OnInit {\n public layoutOptions: GridsterConfig = {};\n public imagePanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 };\n public textPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 };\n\n public imageViewer$ = this.evtModelService.surfaces$.pipe(\n map((surface) => this.getImageViewerType(AppConfig.evtSettings.files.editionImagesSource, surface)),\n );\n\n public currentPageID$ = this.evtStatusService.currentStatus$.pipe(\n map(({ page }) => page.id),\n );\n\n public currentEditionLevel$ = this.evtStatusService.currentStatus$.pipe(\n map(({ editionLevels }) => editionLevels[0]),\n shareReplay(1),\n );\n\n constructor(\n private evtStatusService: EVTStatusService,\n private evtModelService: EVTModelService,\n ) {\n }\n\n getImageViewerType(editionImages, surface: Surface[]): ViewerDataType {\n for (const key of Object.keys(editionImages)) {\n if (editionImages[key].enabled) {\n return ViewerSource.getDataType(key, surface);\n }\n }\n const xmlImages: XMLImagesValues[] = [];\n this.evtModelService.pages$.pipe().subscribe(\n (pages) => pages.map(page => xmlImages.push({ url: page.facsUrl }),\n ));\n\n return { type: 'default', value: { xmlImages } };\n }\n\n ngOnInit() {\n this.initGridster();\n }\n\n changePage(selectedPage: Page) {\n this.evtStatusService.updatePage$.next(selectedPage);\n }\n\n changeEditionLevel(editionLevel: EditionLevel) {\n this.evtStatusService.updateEditionLevels$.next([editionLevel?.id]);\n }\n\n private initGridster() {\n this.layoutOptions = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n margin: 0,\n maxCols: 2,\n maxRows: 1,\n draggable: {\n enabled: true,\n ignoreContent: true,\n dragHandleClass: 'panel-header',\n },\n resizable: {\n enabled: false,\n },\n };\n }\n}\n","<gridster [options]=\"layoutOptions\">\n <gridster-item [item]=\"imagePanelItem\">\n <evt-image-panel \n [viewerData]=\"imageViewer$ | async\"\n [pageID]=\"currentPageID$ | async\"\n (pageChange)=\"changePage($event)\"\n ></evt-image-panel>\n </gridster-item>\n <gridster-item [item]=\"textPanelItem\">\n <evt-text-panel\n [pageID]=\"currentPageID$ | async\" \n [editionLevelID]=\"currentEditionLevel$ | async\"\n (pageChange)=\"changePage($event)\" \n (editionLevelChange)=\"changeEditionLevel($event)\"\n ></evt-text-panel>\n </gridster-item>\n</gridster>","import { Component, Input, Output } from '@angular/core';\nimport { BehaviorSubject, combineLatest, of } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { AppConfig, EditionLevelType } from '../../app.config';\nimport { EvtIconInfo } from '../../ui-components/icon/icon.component';\n\n@Component({\n selector: 'evt-edition-level-selector',\n templateUrl: './edition-level-selector.component.html',\n styleUrls: ['./edition-level-selector.component.scss'],\n})\nexport class EditionLevelSelectorComponent {\n public editionLevels = (AppConfig.evtSettings.edition.availableEditionLevels || []).filter((el) => !el.disabled);\n\n // tslint:disable-next-line: variable-name\n private _edLevelID: EditionLevelType;\n @Input() set editionLevelID(p: EditionLevelType) {\n this._edLevelID = p;\n this.selectedEditionLevel$.next(this._edLevelID);\n }\n get editionLevelID() { return this._edLevelID; }\n\n selectedEditionLevel$ = new BehaviorSubject<EditionLevelType>(undefined);\n\n @Output() selectionChange = combineLatest([\n of(this.editionLevels),\n this.selectedEditionLevel$.pipe(distinctUntilChanged()),\n ]).pipe(\n filter(([edLevels, edLevelID]) => !!edLevelID && !!edLevels && edLevels.length > 0),\n map(([edLevels, edLevelID]) => !!edLevelID ? edLevels.find(p => p.id === edLevelID) || edLevels[0] : edLevels[0]),\n filter(e => !!e),\n );\n\n icon: EvtIconInfo = {\n icon: 'layer-group', // TODO: Choose better icon\n additionalClasses: 'mr-2',\n };\n}\n","<ng-select\n class=\"mr-1\"\n [items]=\"editionLevels\"\n bindLabel=\"label\"\n bindValue=\"id\"\n [clearable]=\"false\"\n [searchable]=\"true\"\n [ngModel]=\"selectedEditionLevel$ | async\"\n (change)=\"editionLevelID = $event.id\">\n <ng-template\n ng-label-tmp\n let-item=\"item\">\n <evt-icon\n [iconInfo]=\"icon\"\n label-left></evt-icon>\n {{item.label | translate}}\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n {{item.label | translate}}\n </ng-template>\n</ng-select>","import { Component, EventEmitter, Output } from '@angular/core';\nimport { AppConfig } from '../../app.config';\nimport { EvtIconInfo } from '../../ui-components/icon/icon.component';\n\nexport interface LemsSelectItemGroup {\n label: string;\n items: LemsSelectItem[];\n disabled?: boolean;\n}\nexport interface LemsSelectItem {\n label: string;\n value: string; // This will be used to identify the items to be selected, by indicating tag name and attributes (for XML)\n color?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'evt-lems-select',\n templateUrl: './lems-select.component.html',\n styleUrls: ['./lems-select.component.scss'],\n})\nexport class LemsSelectComponent {\n @Output() selectionChange: EventEmitter<LemsSelectItem[]> = new EventEmitter();\n \n lemsTypes: Array<LemsSelectItem & { group: string }> = (AppConfig.evtSettings.edition.lemsSelectItems || [])\n .filter(g => !g.disabled)\n .reduce((x, y) => [...x, ...y.items.filter(i => !i.disabled).map(i => ({ ...i, group: y.label }))], []);\n\n iconColor: EvtIconInfo = {\n icon: 'circle',\n iconSet: 'fas',\n additionalClasses: 'ml-2 mr-1',\n };\n\n public selectedLemTypes: LemsSelectItem[] = [];\n\n updateSelectedLemTypes(lemsTypes: LemsSelectItem[]) {\n if (Array.isArray(lemsTypes)) { // BUGFIX: There is a bug in ng-select change event and second time the parameter is an event\n this.selectionChange.emit(lemsTypes);\n // console.log('Prova', AppConfig.evtSettings.edition.lemsSelectItems || [])\n }\n \n }\n\n toggleSelection() {\n if (this.selectedLemTypes.length < this.lemsTypes.length) {\n this.selectedLemTypes = this.lemsTypes;\n } else {\n this.selectedLemTypes = [];\n }\n this.selectionChange.emit(this.selectedLemTypes);\n // console.log('Prova 0', AppConfig.evtSettings.edition.lemsSelectItems[0])\n // console.log('Prova 1', AppConfig.evtSettings.edition.lemsSelectItems[1])\n }\n}\n","<ng-container *ngIf=\"lemsTypes.length > 0\">\n <ng-select\n [items]=\"lemsTypes\" \n [multiple]=\"true\" \n [closeOnSelect]=\"false\" \n [searchable]=\"false\"\n [placeholder]=\"'selectLemsItems' | translate\" \n [(ngModel)]=\"selectedLemTypes\" \n [disabled]=\"lemsTypes.length === 0\" \n groupBy=\"group\"\n (change)=\"updateSelectedLemTypes($event)\">\n <ng-template ng-header-tmp>\n <div class=\"lem-select-toolbar\">\n <div class=\"w-100 text-dark select-all-btn\">\n <input id=\"select-all\" type=\"checkbox\" class=\"mr-2\" (click)=\"toggleSelection()\"\n [checked]=\"selectedLemTypes?.length === lemsTypes.length\"/>\n <label for=\"select-all\" class=\"m-0\">{{ 'selectLemsAll' | translate }}</label>\n </div>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\" let-search=\"searchTerm\">\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModel]=\"item$.selected\"/>\n <evt-icon [iconInfo]=\"iconColor\" [style.color]=\"item.color\"></evt-icon>\n <span class=\"ng-value-label\">{{item.label | translate}}</span>\n </ng-template>\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-container *ngIf=\"items.length === 1\">\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:1\">\n <evt-icon [iconInfo]=\"iconColor\" [style.color]=\"item.color\"></evt-icon>\n <span class=\"ng-value-label\">{{item.label}}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">×</span>\n </div>\n </ng-container>\n <div class=\"ng-value\" *ngIf=\"items.length > 1\">\n <span class=\"ng-value-label\">{{items.length}} {{'selected' | translate}}</span>\n </div>\n </ng-template>\n </ng-select> \n</ng-container>","import {\n Attribute, Component, ElementRef, EventEmitter, HostBinding, HostListener,\n Input, OnInit, Output, ViewChild,\n} from '@angular/core';\n\nimport { ThemesService } from '../../services/themes.service';\nimport { EvtIconInfo } from '../icon/icon.component';\nimport { ModalService } from './modal.service';\n\n@Component({\n selector: 'evt-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n})\nexport class ModalComponent implements OnInit {\n @Input() closeOnShadow: boolean;\n @Input() closeOnEsc: boolean;\n @Input() fixedHeight: boolean;\n @Input() scrollDisabled: boolean;\n @Input() wider: boolean;\n @Input() headerIcon: EvtIconInfo;\n\n @Input() bodyComponent;\n @Input() footerComponent;\n\n @Input() bodyHTML: string;\n @Input() footerHTML: string;\n\n @Output() hide = new EventEmitter<string>();\n\n @ViewChild('modalDialog', { static: true }) modalDialog: ElementRef;\n\n @HostBinding('attr.data-theme') get dataTheme() { return this.themes.getCurrentTheme().value; }\n\n constructor(\n @Attribute('modalId') public modalId: string,\n @Attribute('title') public title: string,\n @Attribute('bodyContentClass') public bodyContentClass: string,\n public themes: ThemesService,\n private modalService: ModalService) {\n }\n\n ngOnInit() {\n this.closeOnShadow = this.closeOnShadow === undefined ? true : this.closeOnShadow;\n this.closeOnEsc = this.closeOnEsc === undefined ? true : this.closeOnEsc;\n this.fixedHeight = this.fixedHeight === undefined ? false : this.fixedHeight;\n }\n\n @HostListener('click', ['$event'])\n clickout(event) {\n const modal = this.modalDialog.nativeElement;\n const internalClick: boolean = event.path.find((o) => {\n return o.className && o.className.indexOf && o.className.indexOf(modal.className) >= 0;\n });\n if (this.closeOnShadow && !internalClick) {\n this.closeDialog();\n }\n }\n\n handleEscape() {\n if (this.closeOnEsc) {\n this.closeDialog();\n }\n }\n\n closeDialog() {\n this.hide.emit(this.modalId);\n this.modalService.close(this.modalId);\n }\n}\n","<div class=\"modal fade show\" [class.fixed-height]=\"fixedHeight\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\"\n (escape)=\"handleEscape()\">\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\" #modalDialog [class.wider]=\"wider\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <evt-icon *ngIf=\"headerIcon\" [iconInfo]=\"headerIcon\"></evt-icon>\n <span class=\"modal-title\">\n {{title | translate}}\n <ng-content select=\"[title]\"></ng-content>\n </span>\n <button type=\"button\" class=\"close\" (click)=\"closeDialog()\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body p-0\" [class.no-scroll]=\"scrollDisabled\">\n <div class=\"{{bodyContentClass}}\">\n <ng-content select=\"[body]\"></ng-content>\n <div [innerHtml]=\"bodyHTML\" *ngIf=\"bodyHTML\"></div>\n <ndc-dynamic [ndcDynamicComponent]=\"bodyComponent\" *ngIf=\"bodyComponent\"></ndc-dynamic>\n </div>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"[footer]\"></ng-content>\n <div [innerHtml]=\"footerHTML\" *ngIf=\"footerHTML\" class=\"modal-footer\"></div>\n <ndc-dynamic [ndcDynamicComponent]=\"footerComponent\" *ngIf=\"footerComponent\"></ndc-dynamic>\n </div>\n </div>\n </div>\n</div>","import { Component, Input } from '@angular/core';\nimport { Reading } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { Highlightable } from '../components-mixins';\n\n@Component({\n selector: 'evt-reading',\n templateUrl: './reading.component.html',\n styleUrls: ['./reading.component.scss'],\n})\n@register(Reading)\nexport class ReadingComponent extends Highlightable {\n @Input() data: Reading;\n}\n","<evt-content-viewer class=\"{{ data.class }}\" *ngFor=\"let element of data.content\" [content]=\"element\" [itemsToHighlight]=\"itemsToHighlight\"></evt-content-viewer>","import { Component, Input } from '@angular/core';\nimport { GenericElement } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins';\n\nexport interface GenericElementComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { }\n\n@Component({\n selector: 'evt-generic-element',\n templateUrl: './generic-element.component.html',\n styleUrls: ['./generic-element.component.scss'],\n})\n@register(GenericElement)\nexport class GenericElementComponent {\n @Input() data: GenericElement;\n}\n","<evt-content-viewer class=\"genericElement {{data.class}}\" [evtHtmlAttributes]=\"data?.attributes\"\n\t*ngFor=\"let el of data.content\" [content]=\"el\" [editionLevel]=\"editionLevel\" [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\"\n\t[evtHighlight]=\"highlightData\" [textFlow]=\"textFlow\"></evt-content-viewer>\n","import { HostListener } from '@angular/core';\nimport { Directive } from '@angular/core';\nimport { AnnotatorService } from '../services/annotator/annotator.service';\n\n@Directive({\n selector: '[evtAnnotator]',\n})\nexport class AnnotatorDirective {\n\n constructor(\n public annotator: AnnotatorService,\n ) { }\n\n @HostListener('mouseup')\n onMouseup() {\n this.annotator.selectedText();\n }\n\n}\n","import { Component, ElementRef, HostBinding, HostListener, OnDestroy, ViewChild } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AppConfig } from './app.config';\nimport { ThemesService } from './services/themes.service';\nimport { ShortcutsService } from './shortcuts/shortcuts.service';\nimport { EvtIconInfo } from './ui-components/icon/icon.component';\n\n@Component({\n selector: 'evt-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnDestroy {\n @ViewChild('mainSpinner') mainSpinner: ElementRef;\n private subscriptions: Subscription[] = [];\n public hasNavBar = AppConfig.evtSettings.ui.enableNavBar;\n public navbarOpened$ = new BehaviorSubject(this.hasNavBar && AppConfig.evtSettings.ui.initNavBarOpened);\n\n public navbarTogglerIcon$: Observable<EvtIconInfo> = this.navbarOpened$.pipe(\n map((opened: boolean) => opened ? { icon: 'caret-down', iconSet: 'fas' } : { icon: 'caret-up', iconSet: 'fas' }),\n );\n\n constructor(\n private router: Router,\n private spinner: NgxSpinnerService,\n private shortcutsService: ShortcutsService,\n private themes: ThemesService,\n ) {\n this.router.events.subscribe((event) => {\n switch (true) {\n case event instanceof NavigationStart:\n this.spinner.show();\n break;\n case event instanceof NavigationEnd:\n case event instanceof NavigationCancel:\n case event instanceof NavigationError:\n this.spinner.hide();\n break;\n default:\n break;\n }\n });\n }\n\n @HostBinding('attr.data-theme') get dataTheme() { return this.themes.getCurrentTheme().value; }\n\n toggleToolbar() {\n this.navbarOpened$.next(!this.navbarOpened$.getValue());\n window.dispatchEvent(new Event('resize')); // Needed to tell Gridster to resize\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n\n @HostListener('window:keyup', ['$event'])\n keyEvent(e: KeyboardEvent) {\n this.shortcutsService.handleKeyboardEvent(e);\n }\n}\n","<evt-main-header></evt-main-header>\n<div class=\"temp-panel\" [ngClass]=\"{'has-navbar': navbarOpened$ | async}\">\n <router-outlet></router-outlet>\n</div>\n<ng-container *ngIf=\"hasNavBar\">\n <span class=\"navbar-toggler\" [ngClass]=\"{opened: navbarOpened$ | async}\" (click)=\"toggleToolbar()\" [title]=\"'toggleToolbar' | translate\">\n <evt-icon [iconInfo]=\"navbarTogglerIcon$ | async\">\n </evt-icon>\n </span>\n <evt-nav-bar [ngClass]=\"{opened: navbarOpened$ | async}\">\n </evt-nav-bar>\n</ng-container>\n<ngx-spinner #mainSpinner bdColor=\"rgba(51,51,51,0.8)\"></ngx-spinner>\n","import { Type } from '@angular/core';\nimport { Comment, GenericElement, HTML, XMLElement } from '../../models/evt-models';\nimport { Map } from '../../utils/js-utils';\nimport { createParser, Parser, ParseResult } from './parser-models';\n\nexport class ParserRegister {\n // tslint:disable-next-line: no-any\n private static PARSER_MAP: Map<Type<any>> = {};\n\n // tslint:disable-next-line: no-any\n static set(tagName: string, parserType: Type<any>) {\n ParserRegister.PARSER_MAP[tagName.toLowerCase()] = parserType;\n }\n\n static get<T>(tagName: string): Parser<T> {\n const name = ParserRegister.mapName(tagName.toLowerCase());\n\n return createParser(ParserRegister.PARSER_MAP[name], parse) as Parser<T>;\n }\n\n private static mapName(tagName) {\n const nes = ['event', 'geogname', 'orgname', 'persname', 'placename'];\n if (nes.includes(tagName)) {\n return 'evt-named-entity-parser';\n }\n const nels = ['listPerson', 'listPlace', 'listOrg', 'listEvent'];\n if (nels.includes(tagName)) {\n return 'evt-named-entities-list-parser';\n }\n const crit = ['app'];\n if (crit.includes(tagName)) {\n return 'evt-apparatus-entry-parser';\n }\n /* add by FS\n const ling = ['rdgGrp'];\n if (ling.includes(tagName)) {\n return 'evt-lem-entry-parser';\n } */\n const neslem = ['w', 'lem'];\n if (neslem.includes(tagName)) {\n return 'evt-lemmatized-entity-parser';\n }\n const nelslem = ['list'];\n if (nelslem.includes(tagName)) {\n return 'evt-lemmatized-entities-list-parser';\n }\n\n if (!Object.keys(ParserRegister.PARSER_MAP).includes(tagName)) {\n return 'evt-generic-elem-parser';\n }\n\n return tagName;\n }\n}\n\n// tslint:disable-next-line: no-any\nexport function xmlParser(tagName: string, parserType: Type<any>) {\n\n // tslint:disable-next-line: no-any\n return (_: Type<any>) => {\n ParserRegister.set(tagName, parserType);\n };\n}\n\nexport function parse(xml: XMLElement): ParseResult<GenericElement> {\n if (!xml) { return { content: [xml] } as HTML; }\n // Text Node\n if (xml.nodeType === 3) { return ParserRegister.get('evt-text-parser').parse(xml); }\n // Comment\n if (xml.nodeType === 8) { return {} as Comment; }\n const tagName = xml.tagName.toLowerCase();\n const parser: Parser<XMLElement> = ParserRegister.get(tagName);\n\n return parser.parse(xml);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as vkbeautify from 'vkbeautify';\nimport { replaceMultispaces } from '../utils/xml-utils';\n\n@Pipe({\n name: 'xmlBeautify',\n})\nexport class XmlBeautifyPipe implements PipeTransform {\n\n transform(value: string) {\n return vkbeautify.xml(replaceMultispaces('\\n' + value));\n }\n\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { EvtIconInfo } from '../icon/icon.component';\n\n@Component({\n selector: 'evt-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n @Input() public iconLeft: EvtIconInfo;\n @Input() public iconRight: EvtIconInfo;\n @Input() toggler: boolean;\n @Input() transparent: boolean;\n @Input() inverted: boolean;\n @Input() active: boolean;\n @Input() additionalStyle: { [key: string]: string | number };\n @Input() disabled: boolean;\n @Input() label: string;\n @Input() additionalClasses: string;\n @Input() type: 'button' | 'submit';\n @Output() btnClick: EventEmitter<EVTBtnClickEvent> = new EventEmitter();\n\n constructor(private cdRef: ChangeDetectorRef) { }\n\n ngOnInit() {\n this.active = this.active !== undefined ? this.active : false;\n this.disabled = this.disabled !== undefined ? this.disabled : false;\n if (this.iconLeft) {\n this.iconLeft = {\n ...this.iconLeft,\n additionalClasses: 'icon ' + (this.iconLeft.additionalClasses || ''),\n };\n }\n if (this.iconRight) {\n this.iconRight = {\n ...this.iconRight,\n additionalClasses: 'icon ' + (this.iconRight.additionalClasses || ''),\n };\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes && changes.active) {\n this.active = changes.active.currentValue;\n this.cdRef.detectChanges();\n }\n }\n\n clickButton(event: MouseEvent) {\n if (!this.disabled) {\n if (this.toggler) {\n this.active = !this.active;\n }\n this.btnClick.emit({ event, active: this.active });\n }\n }\n}\n\nexport interface EVTBtnClickEvent {\n event: MouseEvent;\n active?: boolean;\n}\n","<button type=\"button\" (click)=\"clickButton($event)\" \n class=\"btn btn-sm {{additionalClasses}}\" \n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'btn-light': !transparent,\n 'btn-inverted': inverted,\n 'btn-hovered': inverted && active,\n 'shadow-sm': !transparent,\n transparent: transparent,\n active: active\n }\"\n [ngStyle]=\"additionalStyle\"\n [type]=\"type\">\n <ng-content select=\"[label-left]\"></ng-content>\n <evt-icon [iconInfo]=\"iconLeft\" *ngIf=\"iconLeft\"></evt-icon>\n {{ label }}\n <evt-icon [iconInfo]=\"iconRight\" *ngIf=\"iconRight\"></evt-icon>\n</button>","import { Component, Input } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\nimport { EVTStatusService } from 'src/app/services/evt-status.service';\nimport { Page, ViewerDataType } from '../../models/evt-models';\nimport { EVTModelService } from '../../services/evt-model.service';\n\n@Component({\n selector: 'evt-image-panel',\n templateUrl: './image-panel.component.html',\n styleUrls: ['./image-panel.component.scss'],\n})\nexport class ImagePanelComponent{\n @Input() viewerData: ViewerDataType;\n\n // tslint:disable-next-line: variable-name\n private _pageNumber: number;\n @Input() set pageID(v: string) {\n this.evtModelService.pages$.pipe(\n take(1)).subscribe((pages) => this._pageNumber = pages.findIndex(page => page.id === v));\n }\n get pageNumber(): number { return this._pageNumber + 1; }\n\n public currentPage$ = new BehaviorSubject<Page>(undefined);\n public currentPageId$ = this.currentPage$.pipe(\n map(p => p?.id),\n );\n\n currentMsDescId$ = new BehaviorSubject(undefined);\n currentMsDesc$ = combineLatest([this.evtModelService.msDesc$, this.currentMsDescId$]).pipe(\n filter(([msDesc, currentId]) => !!msDesc && !!currentId),\n map(([msDesc, currentId]) => msDesc.find(m => m.id === currentId)),\n );\n\n msDescOpen = false;\n\n constructor(\n private evtModelService: EVTModelService,\n private evtStatus: EVTStatusService,\n ) {\n }\n\n updatePage(viewerPage: number){\n this.evtModelService.pages$.pipe(take(1)).subscribe(\n (pages) => this.evtStatus.updatePage$.next(pages[viewerPage - 1]),\n );\n }\n\n setMsDescOpen(isOpen: boolean) {\n this.msDescOpen = isOpen;\n }\n\n setMsDescID(msDescId: string) {\n this.currentMsDescId$.next(msDescId);\n }\n}\n","<evt-panel [showSecondaryContent]=\"msDescOpen\"\n [hideHeader]=\"false\"\n [hideFooter]=\"true\">\n <div header-left>\n <!-- TODO: Add dropdowns for navigation -->\n <evt-ms-desc-selector #msDesc (selectionChange)=\"setMsDescID($event)\" (msDescOpen)=\"setMsDescOpen($event)\"></evt-ms-desc-selector>\n </div>\n <div content>\n <evt-osd\n *ngIf=\"viewerData\"\n [viewerData]=\"viewerData\"\n [page]=\"pageNumber\"\n (pageChange)=\"updatePage($event)\">\n </evt-osd>\n <p *ngIf=\"!viewerData\">Found no source file</p>\n </div>\n\n <div secondary-content>\n <div *ngIf=\"msDescOpen\">\n <evt-ms-desc [data]=\"currentMsDesc$ | async\"></evt-ms-desc> \n </div>\n </div>\n</evt-panel>\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { map, tap } from 'rxjs/operators';\nimport { PinboardService } from '../../pinboard/pinboard.service';\n\n@Component({\n selector: 'evt-pinboard-panel',\n templateUrl: './pinboard-panel.component.html',\n styleUrls: ['./pinboard-panel.component.scss'],\n})\nexport class PinboardPanelComponent {\n @Output() hide: EventEmitter<void> = new EventEmitter();\n\n public selectedPinTypes: string[] = [];\n public pinboardTypes$ = this.pinboard.getItems().pipe(\n map(items => {\n const types = [];\n items.forEach(item => {\n const pinType = item.pinType;\n if (pinType && !types.find(i => i.id === item.pinType)) {\n types.push({ id: pinType, label: pinType });\n }\n });\n\n return types;\n }),\n tap(types => {\n if (this.selectedPinTypes && this.selectedPinTypes.length > 0) {\n this.selectedPinTypes = [...this.selectedPinTypes.filter(type => types.find(i => i.id === type))];\n }\n }));\n\n constructor(private pinboard: PinboardService) { }\n\n emitHide() {\n this.hide.emit();\n }\n}\n","<evt-panel [closable]=\"true\" [secondary]=\"true\" (hide)=\"emitHide()\">\n <div header-left>{{'pinboard' | translate}}</div>\n <evt-pinboard content [types]=\"selectedPinTypes\"></evt-pinboard>\n <div footer>\n <ng-select \n [items]=\"pinboardTypes$ | async\" [multiple]=\"true\" \n [closeOnSelect]=\"false\" [searchable]=\"true\"\n bindValue=\"id\" bindLabel=\"label\" [placeholder]=\"'filterPins' | translate\" \n [(ngModel)]=\"selectedPinTypes\" [disabled]=\"(pinboardTypes$ | async).length === 0\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:2\">\n <span class=\"ng-value-label\">{{item.label}}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">×</span>\n </div>\n <div class=\"ng-value\" *ngIf=\"items.length > 2\">\n <span class=\"ng-value-label\">{{items.length - 2}} {{'more' | translate}}...</span>\n </div>\n </ng-template>\n </ng-select>\n </div>\n\n</evt-panel>","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PinboardService } from './pinboard.service';\n\n@Component({\n selector: 'evt-pinboard',\n templateUrl: './pinboard.component.html',\n styleUrls: ['./pinboard.component.scss'],\n})\nexport class PinboardComponent implements OnInit, OnChanges {\n @Input() types: string[];\n // tslint:disable-next-line: no-any\n itemsPinned$: Observable<any[]>; // TODO: get rid of any\n\n constructor(private pinboard: PinboardService) {\n }\n\n ngOnInit() {\n this.initPins();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.types.currentValue !== changes.types.previousValue) {\n this.initPins();\n }\n }\n\n removePinnedItem(item) {\n this.pinboard.toggleItem(item);\n }\n\n private initPins() {\n this.itemsPinned$ = this.pinboard.getItems(this.types);\n }\n}\n","<div class=\"pinnedItems-container\" *ngIf=\"itemsPinned$ | async as itemsPinned; else loading\">\n <div *ngFor=\"let item of itemsPinned\" class=\"pinnedItem\">\n <div class=\"pinnedItem-header\">\n <span class=\"pin-type\"> {{ item.pinType | translate }}</span>\n <span class=\"pin-date\"> [{{ item.pinDate | date:'shortDate' }}]</span>\n <evt-button [iconLeft]=\"{icon: 'trash-alt'}\" [title]=\"'RemovePin' | translate\" class=\"pin-remover\"\n (btnClick)=\"removePinnedItem(item)\"></evt-button>\n </div>\n <ng-container [ngSwitch]=\"item.renderer\">\n <div *ngSwitchCase=\"'ApparatusEntryReadings'\">\n <evt-apparatus-entry-readings [data]=\"item\"></evt-apparatus-entry-readings>\n </div>\n <div *ngSwitchDefault>\n <evt-content-viewer *ngFor=\"let element of item.content\" [content]=\"element\"></evt-content-viewer>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"itemsPinned.length === 0 && types\">\n <span *ngIf=\"types.length > 0\">\n {{ 'filteredPinboardEmpty' | translate }}\n </span>\n <span *ngIf=\"!types || types.length === 0\">\n {{ 'pinboardEmpty' | translate }}\n </span>\n </div>\n</div>\n\n<ng-template #loading>\n {{ 'pinboardLoading' | translate }}\n</ng-template>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'humanize' })\nexport class HumanizePipe implements PipeTransform {\n\n transform(value: string) {\n if (value === '') {\n return value;\n }\n\n value = value.replace(/([^A-Z])([A-Z])/g, '$1 $2').replace(/([A-Z])([A-Z][^A-Z])/g, '$1 $2');\n\n return value;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'evt-ms-desc-section',\n templateUrl: './ms-desc-section.component.html',\n styleUrls: ['./ms-desc-section.component.scss'],\n})\nexport class MsDescSectionComponent {\n @Input() label: string;\n @Input() additionalClass: string;\n @Input() inlineLabel: boolean;\n @Input() nestedElement: boolean;\n @Input() underline: boolean;\n}\n","<div class=\"section {{ additionalClass }}\" [class.has-inline-label]=\"inlineLabel\" [class.has-nested-element]=\"nestedElement\" \n[class.underline-dotted]=\"underline\">\n <span class=\"section-label\" *ngIf=\"label\">{{ label | translate }}{{inlineLabel ? ': ' : ''}}</span>\n <ng-container [ngSwitch]=\"nestedElement\">\n <ng-container *ngSwitchCase=true>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <div class=\"section-content\">\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #content>\n <ng-content select=\"[content]\"></ng-content>\n</ng-template>","import { Injectable } from '@angular/core';\n\nimport { parse } from '.';\nimport { Surface, XMLElement, Zone } from '../../models/evt-models';\nimport { SurfaceParser, ZoneParser } from './facsimile-parser';\nimport { createParser } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FacsimileParserService {\n private zoneParser = createParser(ZoneParser, parse);\n private surfaceParser = createParser(SurfaceParser, parse);\n\n parseSurfaces(xml: XMLElement): Surface[] {\n if (!xml) { return []; }\n\n return Array.from(xml.querySelectorAll<XMLElement>('surface')).map(s => this.surfaceParser.parse(s));\n }\n\n parseZones(xml: XMLElement): Zone[] {\n if (!xml) { return []; }\n\n return Array.from(xml.querySelectorAll<XMLElement>('zone')).map(z => this.zoneParser.parse(z));\n }\n\n}\n","import { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\n\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n\n@NgModule({\n imports: [\n HttpClientModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n })],\n exports: [TranslateModule],\n})\nexport class AppTranslationModule {\n}\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LemEntry, Reading } from 'src/app/models/evt-models';\nimport { register } from 'src/app/services/component-register.service';\nimport { EVTModelService } from 'src/app/services/evt-model.service';\n\n@Component({\n selector: 'evt-lem-entry-readings',\n templateUrl: './lem-entry-readings.component.html',\n styleUrls: ['./lem-entry-readings.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\n@register(LemEntryReadingsComponent)\nexport class LemEntryReadingsComponent {\n @Input() data: LemEntry;\n @Input() rdgHasCounter: boolean;\n // tslint:disable-next-line: no-any\n @Input() template: TemplateRef<any>;\n\n groups$ = this.evtModelService.groups$;\n \n constructor(\n public evtModelService: EVTModelService,\n ) {\n }\n\n get significantRdg(): Reading[] {\n return this.data.readings.filter((rdg) => rdg.significant);\n }\n \n getWits$(witID: string): Observable<string[]> {\n return this.groups$.pipe(\n map((groups) => {\n return groups.filter((g) => g.id === witID).map((g) => g.witnesses).reduce((x, y) => ([ ...x, ...y ]), []);\n }),\n map((groupWits) => groupWits.length > 0 ? groupWits : [witID]),\n );\n }\n\n}\n","<span class=\"lem-entry-reading\">\n <!--\n It's necessary to handle both readings with and without nested apps, because nested apps inside app-entry-detail have different behaviour,\n so we can't use apparatus-entry-component to render them.\n -->\n <evt-reading *ngIf=\"data.nestedLemsIDs.length === 0\" [data]=\"data.lemma\"></evt-reading>\n\n <ng-container *ngIf=\"data.nestedLemsIDs.length > 0\">\n <ng-container *ngTemplateOutlet=\"template context: { rdgHasCounter: rdgHasCounter }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"data.lemma.content.length > 0\">\n <span *ngFor=\"let witID of data.lemma.witIDs\"> {{ witID }}</span>\n </ng-container>\n <span>] </span>\n</span>\n\n<span class=\"lem-entry-reading\" *ngFor=\"let el of significantRdg\">\n <evt-reading *ngIf=\"el.content.length !== 0\" [data]=\"el\"></evt-reading>\n <span class=\"font-italic\" *ngIf=\"el.content.length === 0\">omit.</span>\n <!-- TODO: handle lacunastart and lacunaend -->\n <ng-container *ngFor=\"let witID of el.witIDs\">\n <span *ngFor=\"let wit of getWits$(witID) | async\" class=\"font-italic\"> {{ wit }} </span>\n </ng-container>\n</span>","import { Component, EventEmitter, Output } from '@angular/core';\nimport { AppConfig } from '../../app.config';\nimport { EvtIconInfo } from '../../ui-components/icon/icon.component';\n\nexport interface IperlemsSelectItemGroup {\n label: string;\n items: IperlemsSelectItem[];\n disabled?: boolean;\n}\nexport interface IperlemsSelectItem {\n label: string;\n value: string; // This will be used to identify the items to be selected, by indicating tag name and attributes (for XML)\n color?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'evt-iperlems-select',\n templateUrl: './iperlems-select.component.html',\n styleUrls: ['./iperlems-select.component.scss'],\n})\nexport class IperlemsSelectComponent {\n @Output() selectionChange: EventEmitter<IperlemsSelectItem[]> = new EventEmitter();\n \n iperlemsTypes: Array<IperlemsSelectItem & { group: string }> = (AppConfig.evtSettings.edition.iperlemsSelectItems || [])\n .filter(g => !g.disabled)\n .reduce((x, y) => [...x, ...y.items.filter(i => !i.disabled).map(i => ({ ...i, group: y.label }))], []);\n\n iconColor: EvtIconInfo = {\n icon: 'circle',\n iconSet: 'fas',\n additionalClasses: 'ml-2 mr-1',\n };\n\n public selectedIperlemTypes: IperlemsSelectItem[] = [];\n\n updateSelectedIperlemTypes(iperlemsTypes: IperlemsSelectItem[]) {\n if (Array.isArray(iperlemsTypes)) { // BUGFIX: There is a bug in ng-select change event and second time the parameter is an event\n this.selectionChange.emit(iperlemsTypes);\n // console.log('Prova', AppConfig.evtSettings.edition.iperlemsSelectItems || [])\n }\n \n }\n\n toggleSelection() {\n if (this.selectedIperlemTypes.length < this.iperlemsTypes.length) {\n this.selectedIperlemTypes = this.iperlemsTypes;\n } else {\n this.selectedIperlemTypes = [];\n }\n this.selectionChange.emit(this.selectedIperlemTypes);\n // console.log('Prova 0', AppConfig.evtSettings.edition.iperlemsSelectItems[0])\n // console.log('Prova 1', AppConfig.evtSettings.edition.iperlemsSelectItems[1])\n }\n}\n","<ng-container *ngIf=\"iperlemsTypes.length > 0\">\n <ng-select\n [items]=\"iperlemsTypes\" \n [multiple]=\"true\" \n [closeOnSelect]=\"false\" \n [searchable]=\"false\"\n [placeholder]=\"'selectIperlemsItems' | translate\" \n [(ngModel)]=\"selectedIperlemTypes\" \n [disabled]=\"iperlemsTypes.length === 0\" \n groupBy=\"group\"\n (change)=\"updateSelectedIperlemTypes($event)\">\n <ng-template ng-header-tmp>\n <div class=\"lem-select-toolbar\">\n <div class=\"w-100 text-dark select-all-btn\">\n <input id=\"select-all\" type=\"checkbox\" class=\"mr-2\" (click)=\"toggleSelection()\"\n [checked]=\"selectedIperlemTypes?.length === iperlemsTypes.length\"/>\n <label for=\"select-all\" class=\"m-0\">{{ 'selectIperlemsAll' | translate }}</label>\n </div>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\" let-search=\"searchTerm\">\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModel]=\"item$.selected\"/>\n <evt-icon [iconInfo]=\"iconColor\" [style.color]=\"item.color\"></evt-icon>\n <span class=\"ng-value-label\">{{item.label | translate}}</span>\n </ng-template>\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-container *ngIf=\"items.length === 1\">\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:1\">\n <evt-icon [iconInfo]=\"iconColor\" [style.color]=\"item.color\"></evt-icon>\n <span class=\"ng-value-label\">{{item.label}}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">×</span>\n </div>\n </ng-container>\n <div class=\"ng-value\" *ngIf=\"items.length > 1\">\n <span class=\"ng-value-label\">{{items.length}} {{'selected' | translate}}</span>\n </div>\n </ng-template>\n </ng-select> \n</ng-container>","import { Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LemmatizedEntity, Relation } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\n\n@register(Relation)\n@Component({\n selector: 'evt-lemmatized-entity-relation',\n templateUrl: './lemmatized-entity-relation.component.html',\n styleUrls: ['./lemmatized-entity-relation.component.scss'],\n})\nexport class LemmatizedEntityRelationComponent {\n @Input() data: Relation;\n @Input() inEntity: boolean;\n\n selectedEntity: LemmatizedEntity;\n\n activeParts$ = this.getEntities('activeParts');\n mutualParts$ = this.getEntities('mutualParts');\n passiveParts$ = this.getEntities('passiveParts');\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n toggleEntity(entity: LemmatizedEntity) {\n // TODO: if inEntity, then open entity in list\n if (!this.inEntity) {\n if (this.selectedEntity === entity) {\n this.selectedEntity = undefined;\n } else {\n this.selectedEntity = entity;\n }\n }\n }\n\n private getEntities(partIdsGroup: 'activeParts' | 'mutualParts' | 'passiveParts'):\n Observable<Array<{ id: string; entity: LemmatizedEntity; label: string }>> {\n return this.evtModelService.lemmatizedEntities$.pipe(\n map(ne => this.data[partIdsGroup].map(entityId => {\n const entity = ne.all.lementities.find(e => e.id === entityId);\n\n return {\n id: entityId,\n entity,\n get label() {\n return (entity ? entity.label : entityId);\n },\n };\n })),\n map(neslem => neslem.filter(e => !!e)),\n );\n }\n}\n","<div class=\"relation pb-2\" [ngClass]=\"{\n 'p-3': !inEntity,\n 'border-bottom': !inEntity\n }\" [evtHtmlAttributes]=\"data?.attributes\">\n <small class=\"relation-type\" *ngIf=\"data.relationType\">{{ data.relationType | lowercase }}</small>\n <div>\n <evt-icon [iconInfo]=\"{icon: 'network-wired', additionalClasses: 'mr-2'}\"></evt-icon>\n <ng-template ngFor let-part let-last=\"last\" [ngForOf]=\"activeParts$ | async\">\n <ng-template [ngTemplateOutlet]=\"relationParticipant\"\n [ngTemplateOutletContext]=\"{ part: part, last: last }\">\n </ng-template>\n </ng-template>\n \n <ng-template ngFor let-part let-last=\"last\" [ngForOf]=\"mutualParts$ | async\">\n <ng-template [ngTemplateOutlet]=\"relationParticipant\"\n [ngTemplateOutletContext]=\"{ part: part, last: last }\">\n </ng-template>\n </ng-template>\n\n {{ data.name | humanize | lowercase }}\n\n <ng-template ngFor let-part let-last=\"last\" [ngForOf]=\"passiveParts$ | async\">\n <ng-template [ngTemplateOutlet]=\"relationParticipant\"\n [ngTemplateOutletContext]=\"{ part: part, last: last }\">\n </ng-template>\n </ng-template>\n\n <evt-lemmatized-entity *ngIf=\"selectedEntity\" [data]=\"selectedEntity\" [inList]=\"false\"></evt-lemmatized-entity>\n </div>\n <div class=\"relation-description text-secondary\" *ngIf=\"data.description.length > 0\">\n <evt-content-viewer *ngFor=\"let el of data.description\" [content]=\"el\"></evt-content-viewer>\n </div>\n</div>\n<ng-template #relationParticipant let-part=\"part\" let-last=\"last\">\n <span class=\"relation-entity {{ part.entity?.lemmatizedEntityType }}\" [class.disabled]=\"!part.entity\"\n (click)=\"toggleEntity(part.entity)\">{{ part.label + (!last ? ', ' : '')}}</span>\n</ng-template>","import { AttributesMap } from 'ng-dynamic-component';\nimport { Attributes, Description, GenericElement, HTML, XMLElement } from '../../models/evt-models';\nimport { xpath } from '../../utils/dom-utils';\n\nexport type ParseResult<T extends GenericElement> = T | HTML | GenericElement | Attributes | Description | AttributesMap;\n\nexport interface Parser<T> { parse(data: T): ParseResult<GenericElement>; }\n\n// TODO: check if args are needed and if this can manage singleton instances\n// TODO: maybe a simple new is enough?\nexport type ParseFn = (d: XMLElement) => ParseResult<GenericElement>;\nexport function createParser<U, T extends Parser<U>>(c: new (raw: ParseFn) => T, data: ParseFn): T { return new c(data); }\n\nexport function getID(xml: XMLElement, prefix: string = '') { return xml.getAttribute('xml:id') || prefix + xpath(xml); }\nexport function getClass(xml: XMLElement) { return xml.tagName ? xml.tagName.toLowerCase() : ''; }\nexport function parseChildren(xml: XMLElement, parseFn: ParseFn, excludeEmptyText?: boolean) {\n return complexElements(xml.childNodes, excludeEmptyText).map(child => parseFn(child as XMLElement));\n}\nexport function getDefaultN(n: string) { return n || ''; }\nexport function getDefaultAttr(attr: string) { return attr || ''; }\n\nexport function unhandledElement(xml: XMLElement, name: string, parseFn: ParseFn) {\n return Array.from(xml.querySelectorAll<XMLElement>(`:scope > ${name}`)).map(e => parseChildren(e, parseFn));\n}\n\nexport function complexElements(nodes: NodeListOf<ChildNode>, excludeEmptyText?: boolean): ChildNode[] {\n const interestingNodes = Array.from(nodes).filter((n) => n.nodeType !== 8);\n\n return excludeEmptyText ? interestingNodes.filter((n) => n.nodeType !== 3 || n.textContent.trim()) : interestingNodes;\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\nimport { AppConfig } from '../app.config';\nimport { LemsSelectItem } from '../components/lems-select/lems-select.component';\nimport { Attributes } from '../models/evt-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LemsSelectService {\n public updateLemsSelection$ = new Subject<LemsSelectItem[]>();\n public selectedLemsItems$ = this.updateLemsSelection$.pipe(\n shareReplay(1),\n );\n\n public getClassNameFromValue(value) {\n return value.toLowerCase().replace(/\\s/g, '').replace(/(\\[.*?\\])/g, '');\n }\n\n public getAttributesFromValue(value): Array<{ key: string, value: string }> {\n return (value.toLowerCase().replace(/\\s/g, '').match(/(\\[.*?\\])/g) || [])\n .map(i => i.replace(/(\\[|\\]|\\')/g, '').split('=')).map(i => ({ key: i[0], value: i[1] }));\n }\n\n public matchClassAndAttributes(valueForCheck: string, attributesToCheck: Attributes, classToCheck: string) {\n return valueForCheck.split(',')\n .some(v => this.matchClass(v, classToCheck) && this.matchAttributes(v, attributesToCheck));\n }\n\n public matchClass(classForCheck: string, classToCheck: string) {\n return classToCheck === this.getClassNameFromValue(classForCheck);\n }\n\n public matchAttributes(attributesForCheck: string, attributesToCheck: Attributes) {\n return this.getAttributesFromValue(attributesForCheck).every(a => attributesToCheck[a.key] === a.value);\n }\n\n public getHighlightColor(attributesToCheck: Attributes, classNameToCheck: string, selectedLemsItems?: LemsSelectItem[]) {\n const lemsSelectItems = AppConfig.evtSettings.edition.lemsSelectItems\n .reduce((i: LemsSelectItem[], g) => i.concat(g.items), [])\n .reduce((x: LemsSelectItem[], y) => {\n const multiValues: LemsSelectItem[] = [];\n y.value.split(',').forEach(t => {\n multiValues.push({ ...y, value: t });\n });\n\n return x.concat(multiValues);\n }, []);\n\n let bestMatch: LemsSelectItem & { score: number };\n lemsSelectItems.forEach(item => {\n let score = 0;\n score += this.matchClass(item.value, classNameToCheck) ? 1 : 0;\n const attributes = this.getAttributesFromValue(item.value);\n score += attributes.length && this.matchAttributes(item.value, attributesToCheck) ? 1 : 0;\n if (score > 0 && selectedLemsItems) {\n score += selectedLemsItems.find(i => i.value === item.value) ? 1 : 0;\n }\n if (score > 0 && (!bestMatch || bestMatch.score < score)) {\n bestMatch = {\n ...item,\n score,\n };\n }\n });\n\n return bestMatch ? bestMatch.color : '';\n }\n}\n","import { NgxSliderModule } from '@angular-slider/ngx-slider';\nimport { ScrollingModule as ExperimentalScrollingModule } from '@angular/cdk-experimental/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { FaIconLibrary } from '@fortawesome/angular-fontawesome';\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { NgbModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\nimport { GridsterModule } from 'angular-gridster2';\nimport { DynamicAttributesModule, DynamicModule } from 'ng-dynamic-component';\nimport { NgxSpinnerModule } from 'ngx-spinner';\nimport { UiComponentsModule } from './ui-components/ui-components.module';\n\nimport { RouterModule, Routes } from '@angular/router';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppTranslationModule } from './app-translation.module';\nimport { AppComponent } from './app.component';\n\nimport { Ng2HandySyntaxHighlighterModule } from 'ng2-handy-syntax-highlighter';\nimport { AppConfig } from './app.config';\n\nimport { AdditionComponent } from './components/addition/addition.component';\nimport { AdditionalComponent } from './components/additional/additional.component';\nimport { ApparatusEntryDetailComponent } from './components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component';\nimport { ApparatusEntryReadingsComponent } from './components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component';\nimport { ApparatusEntryComponent } from './components/apparatus-entry/apparatus-entry.component';\nimport { CharComponent } from './components/char/char.component';\nimport { ChoiceComponent } from './components/choice/choice.component';\nimport { ContentViewerComponent } from './components/content-viewer/content-viewer.component';\nimport { DamageComponent } from './components/damage/damage.component';\nimport { DeletionComponent } from './components/deletion/deletion.component';\nimport { EditionLevelSelectorComponent } from './components/edition-level-selector/edition-level-selector.component';\nimport { EditionStmtComponent } from './components/edition-stmt/edition-stmt.component';\nimport { EditorialDeclComponent } from './components/editorial-decl/editorial-decl.component';\nimport { EncodingDescComponent } from './components/encoding-desc/encoding-desc.component';\nimport { EntitiesSelectComponent } from './components/entities-select/entities-select.component';\nimport { LemsSelectComponent } from './components/lems-select/lems-select.component';\nimport { IperlemsSelectComponent } from './components/iperlems-select/iperlems-select.component';\nimport { ExtentComponent } from './components/extent/extent.component';\nimport { FileDescComponent } from './components/file-desc/file-desc.component';\nimport { GComponent } from './components/g/g.component';\nimport { GapComponent } from './components/gap/gap.component';\nimport { GenericElementComponent } from './components/generic-element/generic-element.component';\nimport { GlobalListsComponent } from './components/global-lists/global-lists.component';\nimport { SpecificListsComponent } from './components/specific-lists/specific-lists.component';\nimport { HistoryComponent } from './components/history/history.component';\nimport { IdentifierComponent } from './components/identifier/identifier.component';\nimport { LbComponent } from './components/lb/lb.component';\nimport { ManuscriptThumbnailsViewerComponent } from './components/manuscript-thumbnails-viewer/manuscript-thumbnails-viewer.component';\nimport { MsContentsComponent } from './components/ms-contents/ms-contents.component';\nimport { MsDescSelectorComponent } from './components/ms-desc-selector/ms-desc-selector.component';\nimport { MsDescComponent } from './components/ms-desc/ms-desc.component';\nimport { MsFragComponent } from './components/ms-frag/ms-frag.component';\nimport { MsIdentifierComponent } from './components/ms-identifier/ms-identifier.component';\nimport { MsItemComponent } from './components/ms-item/ms-item.component';\nimport { MsPartComponent } from './components/ms-part/ms-part.component';\nimport { NamedEntitiesListComponent } from './components/named-entities-list/named-entities-list.component';\nimport { NamedEntityRefComponent } from './components/named-entity-ref/named-entity-ref.component';\nimport { NamedEntityRelationComponent } from './components/named-entity-relation/named-entity-relation.component';\nimport { NamedEntityDetailComponent } from './components/named-entity/named-entity-detail/named-entity-detail.component';\nimport { NamedEntityOccurrenceComponent } from './components/named-entity/named-entity-occurrence/named-entity-occurrence.component';\nimport { NamedEntityComponent } from './components/named-entity/named-entity.component';\nimport { NamespaceComponent } from './components/namespace/namespace.component';\nimport { NoteComponent } from './components/note/note.component';\nimport { NotesStmtComponent } from './components/notes-stmt/notes-stmt.component';\nimport { OriginalEncodingViewerComponent } from './components/original-encoding-viewer/original-encoding-viewer.component';\nimport { OsdComponent } from './components/osd/osd.component';\nimport { PageSelectorComponent } from './components/page-selector/page-selector.component';\nimport { PageComponent } from './components/page/page.component';\nimport { ParagraphComponent } from './components/paragraph/paragraph.component';\nimport { PhysDescComponent } from './components/phys-desc/phys-desc.component';\nimport { ProjectDescComponent } from './components/project-desc/project-desc.component';\nimport { ProjectInfoComponent } from './components/project-info/project-info.component';\nimport { PublicationStmtComponent } from './components/publication-stmt/publication-stmt.component';\nimport { ReadingComponent } from './components/reading/reading.component';\nimport { RenditionComponent } from './components/rendition/rendition.component';\nimport { RespStmtComponent } from './components/resp-stmt/resp-stmt.component';\nimport { SamplingDeclComponent } from './components/sampling-decl/sampling-decl.component';\nimport { SeriesStmtComponent } from './components/series-stmt/series-stmt.component';\nimport { SicComponent } from './components/sic/sic.component';\nimport { SuppliedComponent } from './components/supplied/supplied.component';\nimport { SurplusComponent } from './components/surplus/surplus.component';\nimport { TagsDeclComponent } from './components/tags-decl/tags-decl.component';\nimport { TextComponent } from './components/text/text.component';\nimport { TitleStmtComponent } from './components/title-stmt/title-stmt.component';\nimport { VerseComponent } from './components/verse/verse.component';\nimport { VersesGroupComponent } from './components/verses-group/verses-group.component';\nimport { WordComponent } from './components/word/word.component';\nimport { AnnotatorDirective } from './directives/annotator.directive';\nimport { EditorialConventionLayoutDirective } from './directives/editorial-convention-layout.directive';\nimport { HighlightDirective } from './directives/highlight.directive';\nimport { HtmlAttributesDirective } from './directives/html-attributes.directive';\nimport { EvtInfoComponent } from './evt-info/evt-info.component';\nimport { MainHeaderComponent } from './main-header/main-header.component';\n// import { MainFooterComponent } from './main-footer/main-footer.component';\nimport { MainMenuComponent } from './main-menu/main-menu.component';\nimport { NavBarComponent } from './nav-bar/nav-bar.component';\nimport { ImagePanelComponent } from './panels/image-panel/image-panel.component';\nimport { PinboardPanelComponent } from './panels/pinboard-panel/pinboard-panel.component';\nimport { SourcesPanelComponent } from './panels/sources-panel/sources-panel.component';\nimport { TextPanelComponent } from './panels/text-panel/text-panel.component';\nimport { VersionPanelComponent } from './panels/version-panel/version-panel.component';\nimport { WitnessPanelComponent } from './panels/witness-panel/witness-panel.component';\nimport { PinboardComponent } from './pinboard/pinboard.component';\nimport { PinnerComponent } from './pinboard/pinner/pinner.component';\nimport { FilterPipe } from './pipes/filter.pipe';\nimport { HumanizePipe } from './pipes/humanize.pipe';\nimport { StartsWithPipe } from './pipes/starts-with.pipe';\nimport { XmlBeautifyPipe } from './pipes/xml-beautify.pipe';\nimport { AnnotatorService } from './services/annotator/annotator.service';\nimport { IdbService } from './services/idb.service';\nimport { ThemesService } from './services/themes.service';\nimport { GenericParserService } from './services/xml-parsers/generic-parser.service';\nimport { XMLParsers } from './services/xml-parsers/xml-parsers';\nimport { ShortcutsComponent } from './shortcuts/shortcuts.component';\nimport { MsDescSectionComponent } from './ui-components/ms-desc-section/ms-desc-section.component';\nimport { CollationComponent } from './view-modes/collation/collation.component';\nimport { ImageTextComponent } from './view-modes/image-text/image-text.component';\nimport { ReadingTextComponent } from './view-modes/reading-text/reading-text.component';\nimport { TextSourcesComponent } from './view-modes/text-sources/text-sources.component';\nimport { TextTextComponent } from './view-modes/text-text/text-text.component';\nimport { TextVersionsComponent } from './view-modes/text-versions/text-versions.component';\nimport { LemEntryComponent } from './components/lem-entry/lem-entry.component';\nimport { LemEntryDetailComponent } from './components/lem-entry/lem-entry-detail/lem-entry-detail.component';\nimport { LemEntryReadingsComponent } from './components/lem-entry/lem-entry-readings/lem-entry-readings.component';\n// add by FS \nimport { LemmatizedEntitiesListComponent } from './components/lemmatized-entities-list/lemmatized-entities-list.component';\nimport { LemmatizedEntityRefComponent } from './components/lemmatized-entity-ref/lemmatized-entity-ref.component';\nimport { LemmatizedEntityRelationComponent } from './components/lemmatized-entity-relation/lemmatized-entity-relation.component';\nimport { LemmatizedEntityDetailComponent } from './components/lemmatized-entity/lemmatized-entity-detail/lemmatized-entity-detail.component';\nimport { LemmatizedEntityOccurrenceComponent } from './components/lemmatized-entity/lemmatized-entity-occurrence/lemmatized-entity-occurrence.component';\nimport { LemmatizedEntityComponent } from './components/lemmatized-entity/lemmatized-entity.component';\n\nconst routes: Routes = [\n];\n\nexport function initializeApp(appConfig: AppConfig) {\n return () => appConfig.load();\n}\n\n@NgModule({\n declarations: [\n AdditionComponent,\n AdditionalComponent,\n AnnotatorDirective,\n ApparatusEntryComponent,\n ApparatusEntryDetailComponent,\n ApparatusEntryReadingsComponent,\n AppComponent,\n CharComponent,\n ChoiceComponent,\n CollationComponent,\n ContentViewerComponent,\n DamageComponent,\n DeletionComponent,\n EditionLevelSelectorComponent,\n EditionStmtComponent,\n EditorialConventionLayoutDirective,\n EditorialDeclComponent,\n EncodingDescComponent,\n EntitiesSelectComponent,\n LemsSelectComponent,\n IperlemsSelectComponent,\n EvtInfoComponent,\n ExtentComponent,\n FileDescComponent,\n FilterPipe,\n GapComponent,\n GComponent,\n GenericElementComponent,\n GlobalListsComponent,\n SpecificListsComponent,\n HighlightDirective,\n HistoryComponent,\n HtmlAttributesDirective,\n HumanizePipe,\n IdentifierComponent,\n ImagePanelComponent,\n ImageTextComponent,\n LbComponent,\n MainHeaderComponent,\n // MainFooterComponent,\n MainMenuComponent,\n ManuscriptThumbnailsViewerComponent,\n MsContentsComponent,\n MsDescComponent,\n MsDescSectionComponent,\n MsDescSelectorComponent,\n MsFragComponent,\n MsFragComponent,\n MsIdentifierComponent,\n MsItemComponent,\n MsPartComponent,\n NamedEntitiesListComponent,\n NamedEntityComponent,\n NamedEntityDetailComponent,\n NamedEntityOccurrenceComponent,\n NamedEntityRefComponent,\n NamedEntityRelationComponent,\n NamespaceComponent,\n NavBarComponent,\n NoteComponent,\n NotesStmtComponent,\n OriginalEncodingViewerComponent,\n OsdComponent,\n PageComponent,\n PageSelectorComponent,\n ParagraphComponent,\n PhysDescComponent,\n PinboardComponent,\n PinboardPanelComponent,\n PinnerComponent,\n ProjectDescComponent,\n ProjectInfoComponent,\n PublicationStmtComponent,\n ReadingComponent,\n ReadingTextComponent,\n RenditionComponent,\n RespStmtComponent,\n SamplingDeclComponent,\n SeriesStmtComponent,\n ShortcutsComponent,\n SicComponent,\n SourcesPanelComponent,\n StartsWithPipe,\n SuppliedComponent,\n SurplusComponent,\n TagsDeclComponent,\n TextComponent,\n TextPanelComponent,\n TextSourcesComponent,\n TextTextComponent,\n TextVersionsComponent,\n TitleStmtComponent,\n VerseComponent,\n VersesGroupComponent,\n VersionPanelComponent,\n WitnessPanelComponent,\n WordComponent,\n XmlBeautifyPipe,\n LemEntryComponent,\n LemEntryDetailComponent,\n LemEntryReadingsComponent,\n // add by FS\n LemmatizedEntitiesListComponent,\n LemmatizedEntityComponent,\n LemmatizedEntityDetailComponent,\n LemmatizedEntityOccurrenceComponent,\n LemmatizedEntityRefComponent,\n LemmatizedEntityRelationComponent,\n ],\n imports: [\n AppRoutingModule,\n AppTranslationModule,\n BrowserModule,\n BrowserAnimationsModule,\n DynamicAttributesModule,\n DynamicModule,\n ExperimentalScrollingModule,\n FormsModule,\n GridsterModule,\n HttpClientModule,\n Ng2HandySyntaxHighlighterModule,\n NgbModule,\n NgbPopoverModule,\n NgxSliderModule,\n NgxSpinnerModule,\n RouterModule.forRoot(routes, { useHash: true, relativeLinkResolution: 'legacy' }),\n ScrollingModule,\n UiComponentsModule,\n ],\n providers: [\n AnnotatorService,\n AppConfig,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [AppConfig], multi: true,\n },\n AppConfig,\n GenericParserService,\n IdbService,\n ThemesService,\n XMLParsers,\n ],\n bootstrap: [\n AppComponent,\n ],\n entryComponents: [\n AdditionComponent,\n EvtInfoComponent,\n GlobalListsComponent,\n SpecificListsComponent,\n NamedEntitiesListComponent,\n NamedEntityComponent,\n NamedEntityDetailComponent,\n NamedEntityRefComponent,\n NamedEntityRelationComponent,\n ProjectInfoComponent,\n ShortcutsComponent,\n // add by FS \n LemmatizedEntitiesListComponent,\n LemmatizedEntityComponent,\n LemmatizedEntityDetailComponent,\n LemmatizedEntityRefComponent,\n LemmatizedEntityRelationComponent,\n ],\n})\nexport class AppModule {\n constructor(\n library: FaIconLibrary,\n ) {\n library.addIconPacks(fas);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'evt-sources-panel',\n templateUrl: './sources-panel.component.html',\n styleUrls: ['./sources-panel.component.scss'],\n})\nexport class SourcesPanelComponent {\n}\n","<evt-panel [secondary]=\"true\">\n <div header-left>\n <!-- TODO: Add dropdown for sources selection -->\n </div>\n <div content evtAnnotator>\n Source Text: \n <blockquote>\n Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Etiam habebis sem dicantur magna mollis euismod. Plura mihi bona sunt, inclinet, amari petere vellent.\n </blockquote>\n </div>\n</evt-panel>","import { AppConfig } from 'src/app/app.config';\nimport { ParserRegister, xmlParser } from '.';\nimport {\n GenericElement, LemmatizedEntitiesList, LemmatizedEntity, LemmatizedEntityInfo, LemmatizedEntityLabel,\n LemmatizedEntityRef, LemmatizedEntityType, Relation, XMLElement,\n} from '../../models/evt-models';\nimport { xpath } from '../../utils/dom-utils';\nimport { replaceNewLines } from '../../utils/xml-utils';\nimport { AttributeMapParser, AttributeParser, EmptyParser, GenericElemParser, TextParser } from './basic-parsers';\nimport { createParser, parseChildren, Parser } from './parser-models';\n\nexport const lemmatizedEntitiesListsTagNamesMap: { [key: string]: string } = {\n lemmas: 'list',\n occurrences: 'w[ref], lem[ref]',\n};\n\n// error ? FS\nexport function getLemListType(tagName): LemmatizedEntityType {\n return tagName.toLowerCase();\n}\n\nexport function getLemListsToParseTagNames() {\n const neLemListsConfig = AppConfig.evtSettings.edition.lemmatizedEntitiesLists || {};\n\n return Object.keys(neLemListsConfig)\n .map((i) => neLemListsConfig[i].enabled ? lemmatizedEntitiesListsTagNamesMap[i] : undefined)\n .filter(ne => !!ne);\n}\n\n@xmlParser('evt-lemmatized-entities-list-parser', LemmatizedEntitiesListParser)\nexport class LemmatizedEntitiesListParser extends EmptyParser implements Parser<XMLElement> {\n private neLemListsConfig = AppConfig.evtSettings.edition.lemmatizedEntitiesLists || {};\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): LemmatizedEntitiesList {\n const parsedLemList: LemmatizedEntitiesList = {\n type: LemmatizedEntitiesList,\n id: xml.getAttribute('xml:id') || xpath(xml),\n label: '',\n lemmatizedEntityType: getLemListType(xml.tagName),\n content: [],\n sublists: [],\n originalEncoding: xml,\n relations: [],\n description: [],\n attributes: this.attributeParser.parse(xml),\n };\n\n const relationParse = createParser(RelationParser, this.genericParse);\n xml.childNodes.forEach((child: XMLElement) => {\n if (child.nodeType === 1) {\n switch (child.tagName.toLowerCase()) {\n case 'head':\n parsedLemList.label = replaceNewLines(child.textContent);\n break;\n case 'desc':\n parsedLemList.description.push(this.genericParse(child));\n break;\n case 'relation':\n if (this.neLemListsConfig.relations.enabled) {\n parsedLemList.relations.push(relationParse.parse(child));\n }\n break;\n case 'listrelation':\n if (this.neLemListsConfig.relations.enabled) {\n child.querySelectorAll<XMLElement>('relation').forEach(r => parsedLemList.relations.push(relationParse.parse(r)));\n }\n break;\n default:\n if (getLemListsToParseTagNames().indexOf(child.tagName) >= 0) {\n const subListParser = ParserRegister.get('evt-lemmatized-entities-list-parser');\n const parsedSubList = subListParser.parse(child) as LemmatizedEntitiesList;\n parsedLemList.sublists.push(parsedSubList);\n parsedLemList.content = parsedLemList.content.concat(parsedSubList.content);\n parsedLemList.relations = parsedLemList.relations.concat(parsedSubList.relations);\n } else {\n parsedLemList.content.push(this.genericParse(child) as LemmatizedEntity);\n }\n }\n }\n });\n parsedLemList.label = parsedLemList.label || xml.getAttribute('type') || `List of ${parsedLemList.lemmatizedEntityType}`;\n\n return parsedLemList;\n }\n}\n\n@xmlParser('evt-lemmatized-entity-parser', LemmatizedEntityRefParser)\nexport class LemmatizedEntityRefParser extends EmptyParser implements Parser<XMLElement> {\n elementParser = createParser(GenericElemParser, this.genericParse);\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): LemmatizedEntityRef | GenericElement {\n const ref = xml.getAttribute('ref');\n if (!ref) { return this.elementParser.parse(xml); }\n const neLemTypeMap: { [key: string]: LemmatizedEntityType } = {\n w: 'w',\n lemmas: 'w',\n lem: 'lem',\n item: 'item'\n };\n\n return {\n type: LemmatizedEntityRef,\n entityLemId: getLemEntityID(ref),\n entityLemType: neLemTypeMap[xml.tagName],\n path: xpath(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n class: xml.tagName.toLowerCase(),\n };\n }\n\n}\n\n// Generic entity parser\nexport class EntityParser extends EmptyParser implements Parser<XMLElement> {\n // TODO: try to refactor subclasses to use a function parameter to get labels\n attributeParsers = createParser(AttributeMapParser, this.genericParse);\n parse(xml: XMLElement): LemmatizedEntity {\n const elId = xml.getAttribute('xml:id') || xpath(xml);\n const label = replaceNewLines(xml.textContent) || 'No info';\n const entity: LemmatizedEntity = {\n type: LemmatizedEntity,\n id: elId,\n sortKey: xml.getAttribute('sortKey') || (label ? label[0] : '') || xml.getAttribute('xml:id') || xpath(xml),\n originalEncoding: xml,\n label,\n lemmatizedEntityType: this.getEntityType(xml.tagName),\n content: Array.from(xml.children).map((subchild: XMLElement) => this.parseEntityInfo(subchild)),\n attributes: this.attributeParsers.parse(xml),\n };\n\n return entity;\n }\n\n private parseEntityInfo(xml: XMLElement): LemmatizedEntityInfo {\n return {\n type: LemmatizedEntityInfo,\n label: xml.nodeType === 1 ? xml.tagName.toLowerCase() : 'info',\n content: [this.genericParse(xml)],\n attributes: xml.nodeType === 1 ? this.attributeParsers.parse(xml) : {},\n };\n }\n\n private getEntityType(tagName): LemmatizedEntityType { return tagName.toLowerCase(); }\n}\n\n@xmlParser('item', ItemParser)\nexport class ItemParser extends EntityParser {\n parse(xml: XMLElement): LemmatizedEntity {\n return {\n ...super.parse(xml),\n label: this.getLabel(xml),\n };\n }\n\n private getLabel(xml: XMLElement) { // TODO: refactor me, also try to use a function parameter for the label for each entity\n const itemElement = xml.querySelector<XMLElement>('item');\n const wElement = xml.querySelector<XMLElement>('w');\n const lemElement = xml.querySelector<XMLElement>('lem');\n let label: LemmatizedEntityLabel;\n if (itemElement) {\n label = replaceNewLines(itemElement.textContent);\n } else if (wElement) {\n label = wElement ? `${replaceNewLines(wElement.textContent)} ` : '';\n } else if (lemElement) {\n label = lemElement ? `${replaceNewLines(lemElement.textContent)} ` : '';\n }\n return label;\n }\n}\n\nexport class EventParser extends EntityParser {\n parse(xml: XMLElement): LemmatizedEntity {\n return {\n ...super.parse(xml),\n label: textLabel('label', xml),\n };\n }\n\n getLabel(xml: XMLElement) {\n const eventLabelElement = xml.querySelector<XMLElement>('label');\n\n return (eventLabelElement ? replaceNewLines(eventLabelElement.textContent) : '') || 'No info';\n }\n}\n\n// @xmlParser('interpGrp', InterpGroupParser)\n// export class InterpGroupParser) extends EntityParser {\n// parse(xml: XMLElement): LemmatizedEntity { return { ...super.parse(xml), label: this.getLabel(xml) }; }\n\n// private getLabel(xml: XMLElement) { // TODO: refactor me\n// const role = xml.getAttribute('xml:id');\n// let label: LemmatizedEntityLabel = 'No info';\n// if (role) {\n// label = role.trim();\n// } else {\n// label = replaceNewLines(xml.textContent) || 'No info';\n// }\n\n// return label;\n// }\n// }\n\nexport class EntityInfoParser extends EmptyParser implements Parser<XMLElement> {\n attributeParsers = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): LemmatizedEntityInfo {\n return {\n type: LemmatizedEntityInfo,\n label: xml.nodeType === 1 ? xml.tagName.toLowerCase() : 'info',\n content: [this.genericParse(xml)],\n attributes: xml.nodeType === 1 ? this.attributeParsers.parse(xml) : {},\n };\n }\n}\n\nexport class RelationParser extends EmptyParser implements Parser<XMLElement> {\n attributeParsers = createParser(AttributeParser, this.genericParse);\n entityInfoParser = createParser(EntityInfoParser, this.genericParse);\n textParser = createParser(TextParser, this.genericParse);\n\n parse(xml: XMLElement): Relation {\n const descriptionEls = xml.querySelectorAll<XMLElement>('desc');\n const attributes = this.attributeParsers.parse(xml);\n const { name, type } = attributes;\n const active = xml.getAttribute('active') || ''; // TODO: make get attributes return '' as default?\n const mutual = xml.getAttribute('mutual') || '';\n const passive = xml.getAttribute('passive') || '';\n\n const relation: Relation = {\n type: Relation,\n name,\n activeParts: active.replace(/#/g, '').split(' '), // TODO refactor to a single function\n mutualParts: mutual.replace(/#/g, '').split(' '),\n passiveParts: passive.replace(/#/g, '').split(' '),\n relationType: type,\n attributes,\n content: Array.from(xml.children).map((subchild: XMLElement) => this.entityInfoParser.parse(subchild)),\n description: [],\n };\n if (descriptionEls && descriptionEls.length > 0) {\n descriptionEls.forEach((el) => relation.description.push(this.genericParse(el)));\n } else {\n relation.description = [this.textParser.parse(xml)];\n }\n const parentListEl = xml.parentElement.tagName === 'listRelation' ? xml.parentElement : undefined;\n if (parentListEl) {\n relation.relationType = `${(parentListEl.getAttribute('type') || '')} ${(relation.relationType || '')}`.trim();\n }\n\n return relation;\n }\n}\n\nfunction getLemEntityID(ref: string) { return ref ? ref.replace(/#/g, '') : ''; }\nfunction textLabel(elemName: string, xml: XMLElement) {\n const el = xml.querySelector<XMLElement>(elemName);\n return (el ? replaceNewLines(el.textContent) : '') || 'No info';\n}\n","import { Component, Input } from '@angular/core';\n\nimport { EditionStmt } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-edition-stmt',\n templateUrl: './edition-stmt.component.html',\n styleUrls: ['./edition-stmt.component.scss'],\n})\n@register(EditionStmt)\nexport class EditionStmtComponent {\n @Input() data: EditionStmt;\n}\n","<ng-container [ngSwitch]=\"data?.structuredData\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'edition', items: data?.edition, class: 'edition' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'responsibles', items: data?.respStmt, class: 'principal' }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngFor=\"let element of data?.content\" [content]=\"element\"></evt-content-viewer>\n </ng-container>\n</ng-container>\n\n\n<ng-template #section let-label=\"label\" let-items=\"items\" let-class=\"class\">\n <evt-header-section *ngIf=\"items?.length > 0\" [label]=\"label\" [inlineLabel]=\"true\" [additionalClass]=\"class\">\n <div content>\n <evt-content-viewer *ngFor=\"let item of items\" [content]=\"item\" ></evt-content-viewer>\n </div>\n </evt-header-section>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { MsDesc } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-ms-desc',\n templateUrl: './ms-desc.component.html',\n styleUrls: ['./ms-desc.component.scss'],\n})\n\n@register(MsDesc)\nexport class MsDescComponent {\n @Input() data: MsDesc;\n}\n","<div class=\"flex-container\" *ngIf=\"data?.pEl.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'summary'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.pEl\"></evt-content-viewer> \n </div>\n</div>\n<ng-container *ngIf=\"data?.head as head\">\n <div class=\"flex-container\" *ngIf=\"head.title?.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'title'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <ng-container *ngFor=\"let titles of head.title; let i = index\">\n <evt-content-viewer *ngFor=\"let title of titles\" [content]=\"title\"></evt-content-viewer>\n <span *ngIf=\"i < [head.title.length-1]\">, </span>\n </ng-container>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"head.origPlace\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'origPlace'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"head.origPlace\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"head.origDate\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'origDate'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"head.origDate\"></evt-content-viewer>\n </div>\n </div>\n</ng-container>\n<evt-ms-identifier *ngIf=\"data?.msIdentifier\" [data]=\"data.msIdentifier\"></evt-ms-identifier>\n<evt-ms-contents *ngIf=\"data?.msContents\" [data]=\"data.msContents\"></evt-ms-contents>\n<evt-phys-desc *ngIf=\"data?.physDesc\" [data]=\"data.physDesc\"></evt-phys-desc>\n<evt-history *ngIf=\"data?.history\" [data]=\"data.history\"></evt-history>\n<evt-additional *ngIf=\"data?.additional\" [data]=\"data.additional\"></evt-additional>\n<ng-container *ngFor=\"let frag of data?.msFrags\" >\n <evt-ms-frag [data]=\"frag\"></evt-ms-frag>\n</ng-container>\n<ng-container *ngFor=\"let part of data?.msParts\">\n <evt-ms-part [data]=\"part\"></evt-ms-part>\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { map, tap } from 'rxjs/operators';\nimport { LemmatizedEntityRef } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { LemsSelectService } from '../../services/lems-select.service';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { EVTStatusService } from '../../services/evt-status.service';\nimport { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins';\n\nexport interface LemmatizedEntityRefComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { }\n\n@Component({\n selector: 'evt-lemmatized-entity-ref',\n templateUrl: './lemmatized-entity-ref.component.html',\n styleUrls: ['./lemmatized-entity-ref.component.scss'],\n})\n@register(LemmatizedEntityRef)\nexport class LemmatizedEntityRefComponent {\n @Input() data: LemmatizedEntityRef;\n availableLemEntities$ = this.evtModelService.lemmatizedEntities$.pipe(\n map(ne => ne.all.lementities.length > 0),\n );\n\n entity$ = this.evtModelService.lemmatizedEntities$.pipe(\n map(ne => ne.all.lementities.find(e => e.id === this.data.entityLemId) || 'notFound'),\n );\n\n public highlighted$ = this.lemsSelectService.selectedLemsItems$.pipe(\n tap(items => {\n if (this.data) {\n this.data.class = this.data.class || '';\n this.data.attributes = this.data.attributes || {};\n }\n\n return items;\n }),\n map(items => items.some(i => i && this.data &&\n this.lemsSelectService.matchClassAndAttributes(i.value, this.data.attributes, this.data.class))),\n );\n\n public opened = false;\n\n constructor(\n public evtStatusService: EVTStatusService,\n private evtModelService: EVTModelService,\n private lemsSelectService: LemsSelectService,\n ) {\n }\n\n toggleLemEntityData(event: MouseEvent) {\n event.stopPropagation();\n this.opened = !this.opened;\n }\n}\n","<span class=\"lemmatizedEntityRef {{ data.entityLemType }} \" (click)=\"toggleLemEntityData($event)\" [ngClass]=\"{\n opened: opened,\n lemmaHighlight: (evtStatusService.currentLemmatizedEntityId$ | async) === data.entityLemId && !opened,\n noDetails: (availableLemEntities$ | async) === false\n }\" [evtHighlight]=\"highlightDataLem\" [evtHtmlAttributes]=\"data?.attributes\">\n <span class=\"iperlemmatizedEntityRef {{ data.entityLemType }} \" (click)=\"toggleLemEntityData($event)\" [ngClass]=\"{\n opened: opened,\n iperlemmaHighlight: (evtStatusService.currentLemmatizedEntityId$ | async) === data.entityLemId && !opened,\n noDetails: (availableLemEntities$ | async) === false\n }\" [evtHighlight]=\"highlightDataIperlem\" [evtHtmlAttributes]=\"data?.attributes\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\" [editionLevel]=\"editionLevel\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [textFlow]=\"textFlow\"></evt-content-viewer>\n </span>\n</span>\n<ng-container *ngIf=\"availableLemEntities$ | async\">\n <div *ngIf=\"opened\" class=\"lemmatizedEntityRefDetail {{ data.entityLemType }}\">\n <ng-container *ngIf=\"entity$ | async as entity; else loading\">\n <span *ngIf=\"entity === 'notFound'\" class=\"d-block p-2 pl-3 font-italic font-weight-light not-found-msg\">{{ 'entityNotFound' | translate }}</span>\n <evt-lemmatized-entity *ngIf=\"entity !== 'notFound'\" [inList]=\"true\" [data]=\"entity\"> </evt-lemmatized-entity>\n </ng-container>\n <ng-template #loading>Loading...</ng-template>\n </div>\n</ng-container>","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { forkJoin } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { EntitiesSelectItemGroup } from './components/entities-select/entities-select.component';\nimport { LemsSelectItemGroup } from './components/lems-select/lems-select.component';\nimport { IperlemsSelectItemGroup } from './components/iperlems-select/iperlems-select.component';\nimport { ViewMode, ViewModeId } from './models/evt-models';\nimport { Attributes, EditorialConventionLayout } from './models/evt-models';\n\n@Injectable()\nexport class AppConfig {\n static evtSettings: EVTConfig;\n private readonly uiConfigUrl = 'assets/config/ui_config.json';\n private readonly fileConfigUrl = 'assets/config/file_config.json';\n private readonly editionConfigUrl = 'assets/config/edition_config.json';\n private readonly editorialConventionsConfigUrl = 'assets/config/editorial_conventions_config.json';\n\n constructor(\n public translate: TranslateService,\n private http: HttpClient,\n ) { }\n\n load() {\n return new Promise<void>((resolve) => {\n forkJoin([\n this.http.get<UiConfig>(this.uiConfigUrl),\n this.http.get<EditionConfig>(this.editionConfigUrl),\n this.http.get<FileConfig>(this.fileConfigUrl),\n this.http.get<EditorialConventionsConfig>(this.editorialConventionsConfigUrl),\n ]).pipe(\n map(([ui, edition, files, editorialConventions]) => {\n console.log(ui, edition, files);\n // Handle default values => TODO: Decide how to handle defaults!!\n if (ui.defaultLocalization) {\n if (ui.availableLanguages.find((l) => l.code === ui.defaultLocalization && l.enabled)) {\n this.translate.use(ui.defaultLocalization);\n } else {\n const firstAvailableLang = ui.availableLanguages.find((l) => l.enabled);\n if (firstAvailableLang) {\n this.translate.use(firstAvailableLang.code);\n }\n }\n }\n\n return { ui, edition, files, editorialConventions };\n }),\n ).subscribe(evtConfig => {\n AppConfig.evtSettings = evtConfig;\n console.log('evtConfig', evtConfig);\n resolve();\n });\n });\n }\n \n}\nexport interface EVTConfig {\n ui: UiConfig;\n edition: EditionConfig;\n files: FileConfig;\n editorialConventions: EditorialConventionsConfig;\n}\n\nexport interface UiConfig {\n localization: boolean;\n defaultLocalization: string;\n availableLanguages: Array<{\n code: string;\n label: string;\n enabled: boolean;\n }>;\n enableNavBar: boolean;\n initNavBarOpened: boolean;\n thumbnailsButton: boolean;\n viscollButton: boolean;\n}\n\nexport interface EditionConfig {\n editionTitle: string;\n badge: string;\n editionHome: string;\n showLists: boolean;\n availableEditionLevels: EditionLevel[];\n namedEntitiesLists: Partial<{\n persons: NamedEntitiesListsConfig;\n places: NamedEntitiesListsConfig;\n organizations: NamedEntitiesListsConfig;\n relations: NamedEntitiesListsConfig;\n events: NamedEntitiesListsConfig;\n }>;\n // add by FS \n lemmatizedEntitiesLists: Partial<{\n lemmas: LemmatizedEntitiesListsConfig;\n iperlemmas: LemmatizedEntitiesListsConfig;\n relations: LemmatizedEntitiesListsConfig;\n }>;\n lemsSelectItems: LemsSelectItemGroup[];\n iperlemsSelectItems: IperlemsSelectItemGroup[];\n entitiesSelectItems: EntitiesSelectItemGroup[];\n notSignificantVariants: string[];\n lemNotSignificantVariants: string[];\n defaultEdition: EditionLevelType;\n defaultViewMode: ViewModeId;\n availableViewModes: ViewMode[];\n proseVersesToggler: boolean;\n defaultTextFlow: TextFlow;\n verseNumberPrinter: number;\n}\n\nexport type EditionImagesSources = 'manifest' | 'graphics';\n\nexport interface FileConfig {\n editionUrls: string[];\n editionImagesSource: {\n [T in EditionImagesSources]: EditionImagesConfig;\n };\n logoUrl?: string;\n imagesFolderUrl?: string;\n}\n\nexport interface EditionImagesConfig {\n value: string;\n enabled: boolean;\n}\n\nexport interface NamedEntitiesListsConfig {\n defaultLabel: string;\n enabled: boolean;\n}\n\n// add by FS \nexport interface LemmatizedEntitiesListsConfig {\n defaultLabel: string;\n enabled: boolean;\n}\n\nexport type EditionLevelType = 'diplomatic' | 'interpretative' | 'critical';\nexport interface EditionLevel {\n id: EditionLevelType;\n label: string;\n title?: string;\n disabled?: boolean;\n}\n\nexport interface EditorialConventionsConfig {\n [key: string]: CustomEditorialConvention;\n}\n\nexport interface CustomEditorialConvention {\n layouts: { // indicate the output style to be assigned for the indicated encoding for each edition level\n [key in EditionLevelType]: EditorialConventionLayout;\n };\n markup: { // Identifies the element depending on its encoding\n element: string;\n attributes: Attributes;\n };\n}\n\nexport type TextFlow = 'prose' | 'verses';","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { LemmatizedEntitiesList } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTBtnClickEvent } from '../../ui-components/button/button.component';\n\n@register(LemmatizedEntitiesList)\n@Component({\n selector: 'evt-lemmatized-entities-list',\n templateUrl: './lemmatized-entities-list.component.html',\n styleUrls: ['./lemmatized-entities-list.component.scss'],\n})\nexport class LemmatizedEntitiesListComponent implements OnInit, OnChanges {\n @Input() data: LemmatizedEntitiesList;\n @Output() searchedEntities: EventEmitter<string> = new EventEmitter();\n // tslint:disable-next-line: variable-name\n private _selectedKey: string;\n set selectedKey(k: string) {\n this._selectedKey = k;\n }\n get selectedKey() { return this._selectedKey; }\n public navigationKeys: string[] = [];\n\n public searchOpened = false;\n public querySearch = '';\n public querySearchSubmitted = '';\n public caseSensitiveSearch = false;\n\n ngOnInit() {\n this.initKeys();\n }\n\n ngOnChanges() {\n this.initKeys();\n }\n\n toggleSearch() {\n this.searchOpened = !this.searchOpened;\n this.querySearch = '';\n this.querySearchSubmitted = '';\n this.searchedEntities.emit(this.querySearch);\n }\n\n toggleCaseSensitiveSearch(event: EVTBtnClickEvent) {\n this.caseSensitiveSearch = event.active;\n }\n\n private initKeys() {\n if (!!this.data && !!this.data.content && this.data.content.length > 0) {\n this.navigationKeys = this.data.content\n .filter(el => el.lemmatizedEntityType === this.data.lemmatizedEntityType)\n .map(el => el.sortKey?.substr(0, 1).toLowerCase())\n .filter((item, i, ar) => item && ar.indexOf(item) === i)\n .sort();\n this.selectedKey = this.navigationKeys[0] || '';\n }\n }\n}\n","<div class=\"card border-0 ne-list\">\n <div class=\"card-header p-0 m-0\" *ngIf=\"data?.content?.length > 0\">\n <form class=\"input-group p-1\" *ngIf=\"searchOpened\">\n <input type=\"input\" name=\"search\" class=\"form-control form-control-sm ne-list-search\"\n [placeholder]=\"'search' | translate\" [(ngModel)]=\"querySearch\" />\n <div class=\"input-group-append\">\n <evt-button [type]=\"'submit'\" [toggler]=\"true\" [active]=\"caseSensitiveSearch\" [label]=\"'aA'\"\n (btnClick)=\"toggleCaseSensitiveSearch($event)\" additionalClasses=\"border\"></evt-button>\n <evt-button [iconLeft]=\"{icon: 'search'}\" [type]=\"'submit'\" [disabled]=\"!querySearch\"\n additionalClasses=\"border\"> </evt-button>\n <evt-button (btnClick)=\"toggleSearch()\" [iconLeft]=\"{icon: 'times'}\" additionalClasses=\"border\">\n </evt-button>\n </div>\n </form>\n <nav *ngIf=\"!searchOpened\">\n <ul class=\"pagination pagination-sm justify-content-center m-0 p-1\">\n <evt-button (btnClick)=\"toggleSearch()\" [iconLeft]=\"{icon: 'search'}\" additionalClasses=\"mr-2\">\n </evt-button>\n <li class=\"page-item\" *ngFor=\"let key of navigationKeys\" [class.active]=\"selectedKey === key\">\n <span class=\"page-link\" (click)=\"selectedKey=key\">{{key}}</span>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"card-body ne-list-body p-0 m-0\">\n <cdk-virtual-scroll-viewport autosize *ngIf=\"data?.content?.length > 0\" >\n <ng-container\n *cdkVirtualFor=\"let entity of data?.content | startsWith:'sortKey':(querySearch ? '' : selectedKey)| filter:'label':querySearch:caseSensitiveSearch; templateCacheSize: 0\">\n <evt-lemmatized-entity *ngIf=\"entity\" [inList]=\"true\" [data]=\"entity\"> </evt-lemmatized-entity>\n <div class=\"p-3\" *ngIf=\"!entity\"> {{'noMatches' | translate }} </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n <div *ngIf=\"data?.content?.length === 0\" class=\"p-3 ne-list-msg\">\n {{ 'noEntities' | translate }}\n </div>\n </div>\n</div>","import { Injectable } from '@angular/core';\nimport { parse, ParserRegister } from '.';\nimport {\n LemmatizedEntitiesList, LemmatizedEntity, LemmatizedEntityOccurrence, LemmatizedEntityOccurrenceRef, Page, XMLElement,\n} from '../../models/evt-models';\nimport { isNestedInElem } from '../../utils/dom-utils';\nimport { Map } from '../../utils/js-utils';\nimport { GenericElemParser } from './basic-parsers';\nimport { getLemListsToParseTagNames, lemmatizedEntitiesListsTagNamesMap } from './lemmatized-entity-parsers';\nimport { createParser } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class LemmatizedEntitiesParserService {\n private tagLemNamesMap = lemmatizedEntitiesListsTagNamesMap;\n\n public parseLemLists(document: XMLElement) {\n const lemListsToParse = getLemListsToParseTagNames();\n const lemListParser = ParserRegister.get('evt-lemmatized-lementities-list-parser');\n // We consider only first level lists; inset lists will be considered\n const lemlists = Array.from(document.querySelectorAll<XMLElement>(lemListsToParse.toString()))\n .filter((lemlist) => !isNestedInElem(lemlist, lemlist.tagName))\n .map((l) => lemListParser.parse(l) as LemmatizedEntitiesList);\n\n return {\n lemlists,\n lementities: lemlists.map(({ content }) => content).reduce((a, b) => a.concat(b), []),\n relations: lemlists.map(({ relations }) => relations).reduce((a, b) => a.concat(b), []),\n };\n }\n\n public getResultsByType(lemlists: LemmatizedEntitiesList[], lementities: LemmatizedEntity[], type: string[]) {\n return {\n lemlists: lemlists.filter(list => type.indexOf(list.lemmatizedEntityType) >= 0),\n lementities: lementities.filter(entity => type.indexOf(entity.lemmatizedEntityType) >= 0),\n };\n }\n\n public parseLemmatizedEntitiesOccurrences(pages: Page[]) {\n return pages.map(p => this.getLemmatizedEntitiesOccurrencesInPage(p))\n .reduce(\n (x, y) => {\n Object.keys(y).forEach(k => {\n if (x[k]) {\n x[k] = x[k].concat([y[k]]);\n } else {\n x[k] = [y[k]];\n }\n });\n\n return x;\n },\n {});\n }\n\n public getLemmatizedEntitiesOccurrencesInPage(p: Page): Array<Map<LemmatizedEntityOccurrence>> {\n return p.originalContent\n .filter(e => e.nodeType === 1)\n .map(e => {\n const occurrences = [];\n if (this.tagLemNamesMap.occurrences.indexOf(e.tagName) >= 0 && e.getAttribute('ref')) { // Handle first level page contents\n occurrences.push(this.parseLemmatizedEntityOccurrence(e));\n }\n\n return occurrences.concat(Array.from(e.querySelectorAll<XMLElement>(this.tagLemNamesMap.occurrences))\n .map(el => this.parseLemmatizedEntityOccurrence(el)));\n })\n .filter(e => e.length > 0)\n .reduce((x, y) => x.concat(y), [])\n .reduce(\n (x, y) => {\n const refsByDoc: LemmatizedEntityOccurrenceRef[] = x[y.ref] ? x[y.ref].refsByDoc || [] : [];\n const docRefs = refsByDoc.find(r => r.docId === y.docId);\n if (docRefs) {\n docRefs.refs.push(y.el);\n } else {\n refsByDoc.push({\n docId: y.docId,\n refs: [y.el],\n docLabel: y.docLabel,\n });\n }\n\n return {\n ...x, [y.ref]: {\n pageId: p.id,\n pageLabel: p.label,\n refsByDoc,\n },\n } as Array<Map<LemmatizedEntityOccurrence>>;\n },\n {});\n }\n\n private parseLemmatizedEntityOccurrence(xml: XMLElement) {\n const doc = xml.closest('text');\n const elementParser = createParser(GenericElemParser, parse);\n\n return {\n ref: xml.getAttribute('ref').replace('#', ''),\n el: elementParser.parse(xml),\n docId: doc ? doc.getAttribute('xml:id') : '', // TODO: get proper document id when missing\n docLabel: doc ? doc.getAttribute('n') || doc.getAttribute('xml:id') : '', // TODO: get proper document label when attributes missing\n };\n }\n}\n","import { AttributesMap } from 'ng-dynamic-component';\nimport { ParserRegister, xmlParser } from '.';\nimport {\n Addition, Attributes, Damage, Deletion, Gap, GenericElement, Lb, Note, NoteLayout,\n Paragraph, PlacementType, Ptr, Supplied, Term, Text, Verse, VersesGroup, Word, XMLElement,\n} from '../../models/evt-models';\nimport { isNestedInElem, xpath } from '../../utils/dom-utils';\nimport { replaceMultispaces } from '../../utils/xml-utils';\nimport { createParser, getClass, getDefaultN, getID, parseChildren, ParseFn, Parser } from './parser-models';\n\nexport class EmptyParser {\n genericParse: ParseFn;\n constructor(parseFn: ParseFn) { this.genericParse = parseFn; }\n}\n\nexport class AttrParser extends EmptyParser {\n protected attributeParser = createParser(AttributeParser, this.genericParse);\n}\n\nexport function queryAndParseElements<T>(xml: XMLElement, name: string) {\n const p = ParserRegister.get(name);\n\n return Array.from(xml.querySelectorAll<XMLElement>(`:scope > ${name}`)).map(g => p.parse(g) as unknown as T);\n}\n\nexport function queryAndParseElement<T>(xml: XMLElement, name: string, allAnnidationLevels?: boolean): T {\n const el = xml.querySelector<XMLElement>(`${allAnnidationLevels ? '' : ':scope > '}${name}`);\n const p = ParserRegister.get(name);\n\n return el && p.parse(el) as unknown as T;\n}\n\nexport function parseElement<T>(xml: XMLElement): T {\n const p = ParserRegister.get(xml.tagName);\n\n return xml && p.parse(xml) as unknown as T;\n}\n\n@xmlParser('evt-generic-elem-parser', GenericElemParser)\nexport class GenericElemParser extends AttrParser implements Parser<XMLElement> {\n parse(xml: XMLElement): GenericElement {\n return {\n type: Object,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n // path?: string; // TODO: add path\n };\n }\n}\n\nexport class GenericParser extends GenericElemParser {\n protected genericElemParser = createParser(GenericElemParser, this.genericParse);\n}\n\n@xmlParser('evt-attribute-parser', AttributeParser)\nexport class AttributeParser extends EmptyParser implements Parser<XMLElement> {\n parse(data: HTMLElement): Attributes {\n return Array.from(data.attributes)\n .map(({ name, value }) => ({ [name === 'xml:id' ? 'id' : name.replace(':', '-')]: value }))\n .reduce((x, y) => ({ ...x, ...y }), {});\n }\n}\n\n@xmlParser('attribute-map-parser', AttributeMapParser)\nexport class AttributeMapParser extends EmptyParser implements Parser<XMLElement> {\n parse(xml: XMLElement) {\n const attributes: AttributesMap = {};\n Array.from(xml.attributes).forEach((attr) => {\n attributes[attr.name] = attr.value;\n });\n\n return attributes;\n }\n}\n\n@xmlParser('evt-text-parser', TextParser)\nexport class TextParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Text {\n return {\n type: Text,\n text: replaceMultispaces(xml.textContent),\n attributes: {},\n } as Text;\n }\n}\n\n@xmlParser('p', ParagraphParser)\nexport class ParagraphParser extends EmptyParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Paragraph {\n const attributes = ParserRegister.get('evt-attribute-parser').parse(xml) as Attributes;\n const paragraphComponent: Paragraph = {\n type: Paragraph,\n content: parseChildren(xml, this.genericParse),\n attributes,\n n: getDefaultN(attributes.n),\n };\n\n return paragraphComponent;\n }\n}\n\n@xmlParser('lb', LBParser)\nexport class LBParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Lb {\n const attributes = this.attributeParser.parse(xml);\n const { n, rend, facs } = attributes;\n\n return {\n id: getID(xml),\n n: getDefaultN(n),\n rend,\n facs,\n type: Lb,\n content: [],\n attributes,\n };\n }\n}\n\n@xmlParser('note', NoteParser)\nexport class NoteParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Note {\n const noteLayout: NoteLayout = this.isFooterNote(xml) || this.isNamedEntityNote(xml)\n || ['person', 'place', 'app', 'msDesc', 'item'].some((v) => isNestedInElem(xml, v))\n ? 'plain-text'\n : 'popover';\n\n const noteType = !xml.getAttribute('type') && isNestedInElem(xml, 'app')\n ? 'critical'\n : 'comment';\n\n const attributes = this.attributeParser.parse(xml);\n const noteElement = {\n type: Note,\n noteType,\n noteLayout,\n exponent: attributes.n,\n path: xpath(xml),\n content: parseChildren(xml, this.genericParse),\n attributes,\n };\n\n return noteElement;\n }\n\n private isFooterNote(xml: XMLElement) { return isNestedInElem(xml, 'div', [{ key: 'type', value: 'footer' }]); }\n private isNamedEntityNote(xml: XMLElement) { return isNestedInElem(xml, 'relation') || isNestedInElem(xml, 'event'); }\n}\n\n@xmlParser('ptr', PtrParser)\nexport class PtrParser extends GenericElemParser implements Parser<XMLElement> {\n noteParser = createParser(NoteParser, this.genericParse);\n elementParser = createParser(GenericElemParser, this.genericParse);\n parse(xml: XMLElement): Ptr | Note | GenericElement {\n if (xml.getAttribute('type') === 'noteAnchor' && xml.getAttribute('target')) {\n const noteId = xml.getAttribute('target').replace('#', '');\n const rootNode = xml.closest('TEI');\n const noteEl = rootNode.querySelector<XMLElement>(`note[*|id=\"${noteId}\"]`);\n\n return noteEl ? this.noteParser.parse(noteEl) : this.elementParser.parse(xml);\n }\n\n return {\n ...super.parse(xml),\n type: Ptr,\n id: getID(xml),\n target: xml.getAttribute('target'),\n cRef: xml.getAttribute('cRef'),\n ptrType: xml.getAttribute('ptrType'),\n rend: xml.getAttribute('rend'),\n };\n }\n}\n\n@xmlParser('l', VerseParser)\nexport class VerseParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Verse {\n const attributes = this.attributeParser.parse(xml);\n const lineComponent: Verse = {\n type: Verse,\n content: parseChildren(xml, this.genericParse),\n attributes,\n n: getDefaultN(attributes.n),\n };\n\n return lineComponent;\n }\n}\n\n@xmlParser('lg', VersesGroupParser)\nexport class VersesGroupParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): VersesGroup {\n const attributes = this.attributeParser.parse(xml);\n const lgComponent: VersesGroup = {\n type: VersesGroup,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes,\n n: getDefaultN(attributes.n),\n groupType: getDefaultN(attributes.type),\n };\n\n return lgComponent;\n }\n}\n\n@xmlParser('supplied', SuppliedParser)\nexport class SuppliedParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Supplied {\n const attributes = this.attributeParser.parse(xml);\n const { reason, source, resp } = attributes;\n\n return {\n type: Supplied,\n reason,\n source,\n resp,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes,\n };\n }\n}\n\n@xmlParser('damage', DamageParser)\nexport class DamageParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Damage {\n const attributes = this.attributeParser.parse(xml);\n const { agent, group, degree } = attributes;\n\n return {\n agent,\n group: parseInt(group, 10) ?? undefined,\n degree,\n type: Damage,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n };\n }\n}\n\n@xmlParser('gap', GapParser)\nexport class GapParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Gap {\n const attributes = this.attributeParser.parse(xml);\n const { reason, agent, quantity, unit, extent } = attributes;\n\n return {\n type: Gap,\n reason,\n agent,\n quantity: quantity ? parseInt(quantity, 10) : undefined,\n unit,\n extent,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes,\n };\n }\n}\n\n@xmlParser('add', AdditionParser)\nexport class AdditionParser extends EmptyParser implements Parser<XMLElement> {\n elementParser = createParser(GenericElemParser, this.genericParse);\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Addition {\n return {\n type: Addition,\n place: xml.getAttribute('place') as PlacementType,\n path: xpath(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n class: xml.tagName.toLowerCase(),\n };\n }\n}\n\n@xmlParser('w', WordParser)\nexport class WordParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Word {\n const attributes = this.attributeParser.parse(xml);\n const { lemma } = attributes;\n\n return {\n type: Word,\n lemma,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n };\n }\n}\n\n@xmlParser('del', DeletionParser)\nexport class DeletionParser extends EmptyParser implements Parser<XMLElement> {\n elementParser = createParser(GenericElemParser, this.genericParse);\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Deletion {\n return {\n type: Deletion,\n rend: xml.getAttribute('rend'),\n path: xpath(xml),\n content: parseChildren(xml, this.genericParse),\n attributes: this.attributeParser.parse(xml),\n class: xml.tagName.toLowerCase(),\n };\n }\n}\n\n@xmlParser('term', TermParser)\nexport class TermParser extends GenericElemParser implements Parser<XMLElement> {\n parse(xml: XMLElement): Term {\n return {\n ...super.parse(xml),\n type: Term,\n id: xml.getAttribute('xml:id'),\n ref: xml.getAttribute('ref'),\n rend: xml.getAttribute('rend'),\n };\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { Map } from '../utils/js-utils';\n\n// tslint:disable-next-line: no-any\nconst COMPONENT_MAP: Map<Type<any>> = {};\n\n// tslint:disable-next-line: no-any\nexport function register(dataType: Type<any>) {\n // tslint:disable-next-line: no-any\n return (cls: Type<any>) => {\n COMPONENT_MAP[dataType.name] = cls;\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ComponentRegisterService {\n\n // tslint:disable-next-line: no-any\n getComponent(dataType: Type<any>) {\n return COMPONENT_MAP[dataType.name];\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, Optional } from '@angular/core';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ApparatusEntry } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { ApparatusEntryDetailComponent } from './apparatus-entry-detail/apparatus-entry-detail.component';\n@Component({\n selector: 'evt-apparatus-entry',\n templateUrl: './apparatus-entry.component.html',\n styleUrls: ['./apparatus-entry.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@register(ApparatusEntry)\nexport class ApparatusEntryComponent {\n @Input() data: ApparatusEntry;\n\n public opened = false;\n public isInsideAppDetail: boolean;\n public nestedApps: ApparatusEntry[] = [];\n\n variance$ = this.evtModelService.appVariance$.pipe(\n map((variances) => variances[this.data.id]),\n shareReplay(1),\n );\n\n constructor(\n private evtModelService: EVTModelService,\n @Optional() private parentDetailComponent?: ApparatusEntryDetailComponent,\n ) {\n this.isInsideAppDetail = this.parentDetailComponent ? true : false;\n }\n\n toggleAppEntryBox(e: MouseEvent) {\n e.stopPropagation();\n this.opened = !this.opened;\n }\n\n closeAppEntryBox() {\n this.opened = false;\n }\n\n stopPropagation(e: MouseEvent) {\n e.stopPropagation();\n }\n}\n","<!-- Check if the app entry is inside an app detail (nested app). In the app detail it's not necessary to render the entire app but only the lemma. -->\n<!-- Controlla se la voce dell'apparato si trova all'interno di un dettaglio dell'apparato (app annidata). Nel dettaglio dell'apparato e non è necessario rendere l'intero apparato, ma solo il lemma. -->\n\n<span *ngIf=\"!isInsideAppDetail\" class=\"app-entry\" [attr.data-variance]=\"variance$ | async\" [ngClass]=\"{ 'app-detail-opened': opened }\">\n <evt-reading class=\"app-entry-lem\" *ngIf=\"data?.lemma\" [data]=\"data.lemma\" (click)=\"toggleAppEntryBox($event);\"></evt-reading>\n <!-- The click event in \"evt-apparatus-entry-detail\" is used to manage nested apps -->\n <evt-apparatus-entry-detail *ngIf=\"data?.lemma && opened\" [data]=\"data\" (click)=\"stopPropagation($event)\"></evt-apparatus-entry-detail> \n</span>","import { ChangeDetectionStrategy, Component, Input, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ApparatusEntry, Reading } from 'src/app/models/evt-models';\nimport { register } from 'src/app/services/component-register.service';\nimport { EVTModelService } from 'src/app/services/evt-model.service';\n\n@Component({\n selector: 'evt-apparatus-entry-readings',\n templateUrl: './apparatus-entry-readings.component.html',\n styleUrls: ['./apparatus-entry-readings.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\n@register(ApparatusEntryReadingsComponent)\nexport class ApparatusEntryReadingsComponent {\n @Input() data: ApparatusEntry;\n @Input() rdgHasCounter: boolean;\n // tslint:disable-next-line: no-any\n @Input() template: TemplateRef<any>;\n\n groups$ = this.evtModelService.groups$;\n\n constructor(\n public evtModelService: EVTModelService,\n ) {\n }\n\n get significantRdg(): Reading[] {\n return this.data.readings.filter((rdg) => rdg.significant);\n }\n\n getWits$(witID: string): Observable<string[]> {\n return this.groups$.pipe(\n map((groups) => {\n return groups.filter((g) => g.id === witID).map((g) => g.witnesses).reduce((x, y) => ([ ...x, ...y ]), []);\n }),\n map((groupWits) => groupWits.length > 0 ? groupWits : [witID]),\n );\n }\n}\n","<span class=\"app-entry-reading\">\n <!--\n It's necessary to handle both readings with and without nested apps, because nested apps inside app-entry-detail have different behaviour,\n so we can't use apparatus-entry-component to render them.\n -->\n <evt-reading *ngIf=\"data.nestedAppsIDs.length === 0\" [data]=\"data.lemma\"></evt-reading>\n\n <ng-container *ngIf=\"data.nestedAppsIDs.length > 0\">\n <ng-container *ngTemplateOutlet=\"template context: { rdgHasCounter: rdgHasCounter }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"data.lemma.content.length > 0\">\n <span *ngFor=\"let witID of data.lemma.witIDs\"> {{ witID }}</span>\n </ng-container>\n <span>] </span>\n</span>\n\n<span class=\"app-entry-reading\" *ngFor=\"let el of significantRdg\">\n <evt-reading *ngIf=\"el.content.length !== 0\" [data]=\"el\"></evt-reading>\n <span class=\"font-italic\" *ngIf=\"el.content.length === 0\">omit.</span>\n <!-- TODO: handle lacunastart and lacunaend -->\n <ng-container *ngFor=\"let witID of el.witIDs\">\n <span *ngFor=\"let wit of getWits$(witID) | async\" class=\"font-italic\"> {{ wit }} </span>\n </ng-container>\n</span>","import { Component, Input } from '@angular/core';\nimport { Supplied } from 'src/app/models/evt-models';\nimport { register } from 'src/app/services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface SuppliedComponent extends EditionlevelSusceptible, Highlightable { }\n\n@Component({\n selector: 'evt-supplied',\n templateUrl: './supplied.component.html',\n styleUrls: ['./supplied.component.scss'],\n})\n@register(Supplied)\nexport class SuppliedComponent {\n @Input() data: Supplied;\n\n}\n","<span *ngIf=\"editionLevel !== 'diplomatic'\" class=\"{{data.class}}\" [ngbPopover]=\"data?.reason\"\n triggers=\"mouseenter:mouseleave\" [openDelay]=\"500\" [attr.data-reason]=\"data?.reason || ''\">[<evt-content-viewer\n *ngFor=\"let element of data.content\" [content]=\"element\" [editionLevel]=\"editionLevel\"\n [itemsToHighlight]=\"itemsToHighlight\"></evt-content-viewer>]</span>","import { Component, Input } from '@angular/core';\nimport { EditorialConventionDefaults } from 'src/app/services/editorial-conventions.service';\n\nimport { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive';\nimport { Sic } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface SicComponent extends EditionlevelSusceptible, Highlightable { }\n\n@Component({\n selector: 'evt-sic',\n templateUrl: './sic.component.html',\n styleUrls: ['./sic.component.scss'],\n})\n@register(Sic)\nexport class SicComponent {\n\n @Input() data: Sic;\n\n get editorialConventionData(): EditorialConventionLayoutData {\n return {\n name: 'sic',\n attributes: this.data?.attributes || {},\n editionLevel: this.editionLevel,\n defaultsKey: this.defaultsKey,\n };\n }\n\n get defaultsKey(): EditorialConventionDefaults {\n switch (this.data.sicType) {\n case 'crux':\n return 'sicCrux';\n }\n }\n}\n","<span class=\"{{data.class}}\" [evtHighlight]=\"highlightData\" [evtEditorialConventionLayout]=\"editorialConventionData\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\" [editionLevel]=\"editionLevel\"\n [itemsToHighlight]=\"itemsToHighlight\"></evt-content-viewer>\n</span>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PinboardService {\n private items$ = new BehaviorSubject({});\n\n /**\n * @todo Handle Groups of similar elements\n * @todo Handle page/document/edition reference\n * @todo Handle saving in local storage and retrieving from it on loading\n */\n toggleItem(item, additionalData?: { pinType?: string, renderer?: string }) {\n const itemId = item.id || item.path;\n const items = this.items$.getValue();\n if (items[itemId]) {\n delete items[itemId];\n } else {\n items[itemId] = {\n ...item,\n renderer: additionalData.renderer,\n pinType: additionalData.pinType || 'GenericPin',\n pinDate: item.pinDate ? item.pinDate : new Date(),\n };\n }\n this.items$.next(items);\n }\n\n isItemPinned(item) {\n const itemId = item.id || item.path;\n const items = this.items$.getValue();\n\n return items[itemId];\n }\n\n // tslint:disable-next-line: no-any\n getItems(types?: string[]): Observable<any[]> { // TODO get rid of any\n return this.items$.pipe(\n map(items => {\n let itemsArray = Array.from(Object.keys(items), (key) => items[key]);\n if (types && types.length > 0) {\n itemsArray = itemsArray.filter(item => item.pinType && types.indexOf(item.pinType) >= 0);\n }\n\n return itemsArray;\n }));\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map, mergeMap, publishReplay, refCount, tap } from 'rxjs/operators';\nimport { AppConfig } from '../app.config';\nimport { OriginalEncodingNodeType } from '../models/evt-models';\nimport { parseXml } from '../utils/xml-utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditionDataService {\n private editionUrls = AppConfig.evtSettings.files.editionUrls || [];\n public parsedEditionSource$: Observable<OriginalEncodingNodeType> = this.loadAndParseEditionData();\n\n constructor(\n private http: HttpClient,\n ) {\n }\n\n private loadAndParseEditionData() {\n const editionUrl = this.editionUrls[0];\n\n return this.http.get(editionUrl, { responseType: 'text' }).pipe(\n map(source => parseXml(source)),\n mergeMap((editionData) => this.loadXIinclude(editionData, editionUrl.substring(0, editionUrl.lastIndexOf('/') + 1))),\n publishReplay(1),\n refCount(),\n catchError(() => this.handleLoadingError()),\n );\n }\n\n loadXIinclude(doc: HTMLElement, baseUrlPath: string) {\n const filesToInclude = Array.from(doc.getElementsByTagName('xi:include'));\n const xiIncludeLoadsSubs = filesToInclude.map(element =>\n this.http.get(baseUrlPath + element.getAttribute('href'), { responseType: 'text' })\n .pipe(\n tap((fileData) => {\n const includedDoc = parseXml(fileData);\n const fileXpointer = element.getAttribute('xpointer');\n let includedTextElem: Node;\n if (fileXpointer) {\n includedTextElem = doc.querySelector(`[*|id=\"${fileXpointer}\"]`) || includedDoc.querySelector('text');\n } else {\n includedTextElem = includedDoc.querySelector('text');\n }\n // element.parentNode.replaceChild(includedTextElem, element);\n element.parentNode.appendChild(includedTextElem);\n }),\n catchError(_ => {\n Array.from(element.getElementsByTagName('xi:fallback')).map((el) => {\n const divEl = document.createElement('div');\n divEl.classList.add('xiinclude-fallback');\n divEl.setAttribute('xml:id', element.getAttribute('xpointer'));\n divEl.innerHTML = `<p>${el.innerHTML}</p>`;\n\n return divEl;\n }).forEach((el) => element.parentNode.replaceChild(el, element));\n\n return of(doc);\n }),\n ));\n if (xiIncludeLoadsSubs.length > 0) {\n return forkJoin(xiIncludeLoadsSubs).pipe(map(() => doc));\n }\n\n return of(doc);\n }\n\n private handleLoadingError() {\n // TODO: TEMP\n const errorEl: HTMLElement = document.createElement('div');\n if (!this.editionUrls || this.editionUrls.length === 0) {\n errorEl.textContent = 'Missing configuration for edition files. Data cannot be loaded.';\n } else {\n errorEl.textContent = 'There was an error in loading edition files.';\n }\n\n return of(errorEl);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FileDesc } from 'src/app/models/evt-models';\nimport { register } from 'src/app/services/component-register.service';\n\n@Component({\n selector: 'evt-file-desc',\n templateUrl: './file-desc.component.html',\n styleUrls: ['./file-desc.component.scss'],\n})\n@register(FileDesc)\nexport class FileDescComponent {\n @Input() data: FileDesc;\n}\n","<div class=\"fileDesc\">\n <ng-container *ngTemplateOutlet=\"section; context: { label: '', content: data?.titleStmt, class: 'titleStmt' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'editionStatement', content: data?.editionStmt, class: 'editionStmt' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'extent', content: data?.extent, class: 'extent' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'publicationStatement', content: data?.publicationStmt, class: 'publicationStmt' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'seriesStatement', content: data?.seriesStmt, class: 'seriesStmt' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'notesStatement', content: data?.notesStmt, class: 'notesStmt' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'sourceDesc', content: data?.sourceDesc, class: 'sourceDesc' }\"></ng-container>\n</div>\n\n<ng-template #section let-label=\"label\" let-content=\"content\" let-class=\"class\">\n <ng-container *ngIf=\"content\">\n <h4 *ngIf=\"label\" class=\"main-section-title {{class}}-title\">{{ label | translate }}</h4>\n <evt-header-section [additionalClass]=\"class\">\n <div content>\n <evt-content-viewer [content]=\"content\"></evt-content-viewer> \n </div>\n </evt-header-section>\n </ng-container>\n</ng-template>","import { Component, EventEmitter, Output } from '@angular/core';\nimport { AppConfig } from '../../app.config';\nimport { EvtIconInfo } from '../../ui-components/icon/icon.component';\n\nexport interface EntitiesSelectItemGroup {\n label: string;\n items: EntitiesSelectItem[];\n disabled?: boolean;\n}\nexport interface EntitiesSelectItem {\n label: string;\n value: string; // This will be used to identify the items to be selected, by indicating tag name and attributes (for XML)\n color?: string;\n disabled?: boolean;\n}\n\n@Component({\n selector: 'evt-entities-select',\n templateUrl: './entities-select.component.html',\n styleUrls: ['./entities-select.component.scss'],\n})\nexport class EntitiesSelectComponent {\n @Output() selectionChange: EventEmitter<EntitiesSelectItem[]> = new EventEmitter();\n\n entitiesTypes: Array<EntitiesSelectItem & { group: string }> = (AppConfig.evtSettings.edition.entitiesSelectItems || [])\n .filter(g => !g.disabled)\n .reduce((x, y) => [...x, ...y.items.filter(i => !i.disabled).map(i => ({ ...i, group: y.label }))], []);\n\n iconColor: EvtIconInfo = {\n icon: 'circle',\n iconSet: 'fas',\n additionalClasses: 'ml-2 mr-1',\n };\n\n public selectedTypes: EntitiesSelectItem[] = [];\n\n updateSelectedTypes(entitiesTypes: EntitiesSelectItem[]) {\n if (Array.isArray(entitiesTypes)) { // BUGFIX: There is a bug in ng-select change event and second time the parameter is an event\n this.selectionChange.emit(entitiesTypes);\n }\n }\n\n toggleSelection() {\n if (this.selectedTypes.length < this.entitiesTypes.length) {\n this.selectedTypes = this.entitiesTypes;\n } else {\n this.selectedTypes = [];\n }\n this.selectionChange.emit(this.selectedTypes);\n }\n}\n","<ng-container *ngIf=\"entitiesTypes.length > 0\">\n <ng-select \n [items]=\"entitiesTypes\" \n [multiple]=\"true\" \n [closeOnSelect]=\"false\" \n [searchable]=\"false\"\n [placeholder]=\"'selectItems' | translate\" \n [(ngModel)]=\"selectedTypes\" \n [disabled]=\"entitiesTypes.length === 0\" \n groupBy=\"group\"\n (change)=\"updateSelectedTypes($event)\">\n <ng-template ng-header-tmp>\n <div class=\"entities-select-toolbar\">\n <div class=\"w-100 text-dark select-all-btn\">\n <input id=\"select-all\" type=\"checkbox\" class=\"mr-2\" (click)=\"toggleSelection()\"\n [checked]=\"selectedTypes?.length === entitiesTypes.length\"/>\n <label for=\"select-all\" class=\"m-0\">{{ 'selectAll' | translate }}</label>\n </div>\n </div>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\" let-search=\"searchTerm\">\n <input id=\"item-{{index}}\" type=\"checkbox\" [ngModel]=\"item$.selected\"/>\n <evt-icon [iconInfo]=\"iconColor\" [style.color]=\"item.color\"></evt-icon>\n <span class=\"ng-value-label\">{{item.label | translate}}</span>\n </ng-template>\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-container *ngIf=\"items.length === 1\">\n <div class=\"ng-value\" *ngFor=\"let item of items | slice:0:1\">\n <evt-icon [iconInfo]=\"iconColor\" [style.color]=\"item.color\"></evt-icon>\n <span class=\"ng-value-label\">{{item.label}}</span>\n <span class=\"ng-value-icon right\" (click)=\"clear(item)\" aria-hidden=\"true\">×</span>\n </div>\n </ng-container>\n <div class=\"ng-value\" *ngIf=\"items.length > 1\">\n <span class=\"ng-value-label\">{{items.length}} {{'selected' | translate}}</span>\n </div>\n </ng-template>\n </ng-select>\n \n</ng-container>\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line: directive-selector\n selector: '[clickOutside]',\n})\nexport class ClickOutsideDirective {\n\n @Output() clickOutside = new EventEmitter<void>();\n\n constructor(private elementRef: ElementRef) { }\n\n @HostListener('document:click', ['$event.target'])\n public onClick(target) {\n const clickedInside = this.elementRef.nativeElement.contains(target);\n if (!clickedInside) {\n this.clickOutside.emit();\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { NamedEntities, NamedEntityOccurrence, OriginalEncodingNodeType, Page, ZoneHotSpot, ZoneLine, LemmatizedEntities, LemmatizedEntityOccurrence } from '../models/evt-models';\nimport { Map } from '../utils/js-utils';\nimport { EditionDataService } from './edition-data.service';\nimport { ApparatusEntriesParserService } from './xml-parsers/apparatus-entries-parser.service';\nimport { CharacterDeclarationsParserService } from './xml-parsers/character-declarations-parser.service';\nimport { FacsimileParserService } from './xml-parsers/facsimile-parser.service';\nimport { LinesVersesParserService } from './xml-parsers/lines-verses-parser.service';\nimport { MsDescParserService } from './xml-parsers/ms-desc-parser.service';\nimport { NamedEntitiesParserService } from './xml-parsers/named-entities-parser.service';\nimport { PrefatoryMatterParserService } from './xml-parsers/prefatory-matter-parser.service';\nimport { StructureXmlParserService } from './xml-parsers/structure-xml-parser.service';\nimport { WitnessesParserService } from './xml-parsers/witnesses-parser.service';\n// add by FS\nimport { LemmatizedEntitiesParserService } from './xml-parsers/lemmatized-entities-parser.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EVTModelService {\n public readonly editionSource$: Observable<OriginalEncodingNodeType> = this.editionDataService.parsedEditionSource$\n .pipe(\n shareReplay(1),\n );\n\n public readonly title$ = this.editionSource$.pipe(\n map((source) => this.prefatoryMatterParser.parseEditionTitle(source)),\n shareReplay(1),\n );\n\n public readonly projectInfo$ = this.prefatoryMatterParser.projectInfo$.pipe(\n shareReplay(1),\n );\n\n public readonly pages$: Observable<Page[]> = this.editionSource$.pipe(\n map((source) => this.editionStructureParser.parsePages(source).pages),\n shareReplay(1),\n );\n\n // NAMED ENTITIES\n public readonly parsedLists$ = this.editionSource$.pipe(\n map((source) => this.namedEntitiesParser.parseLists(source)),\n shareReplay(1),\n );\n\n public readonly persons$ = this.parsedLists$.pipe(\n map(({ lists, entities }) => (this.namedEntitiesParser.getResultsByType(lists, entities, ['person', 'personGrp']))),\n );\n\n public readonly places$ = this.parsedLists$.pipe(\n map(({ lists, entities }) => this.namedEntitiesParser.getResultsByType(lists, entities, ['place'])),\n );\n\n public readonly organizations$ = this.parsedLists$.pipe(\n map(({ lists, entities }) => this.namedEntitiesParser.getResultsByType(lists, entities, ['org'])),\n );\n\n public readonly relations$ = this.parsedLists$.pipe(\n map(({ relations }) => relations),\n );\n\n public readonly events$ = this.parsedLists$.pipe(\n map(({ lists, entities }) => this.namedEntitiesParser.getResultsByType(lists, entities, ['event'])),\n );\n\n public readonly verses$ = this.editionSource$.pipe(\n map((source) => this.linesVersesParser.parseVerses(source)),\n shareReplay(1),\n );\n\n public readonly lines$ = this.editionSource$.pipe(\n map((source) => this.linesVersesParser.parseLines(source)),\n shareReplay(1),\n );\n\n public readonly namedEntities$: Observable<NamedEntities> = combineLatest([\n this.persons$,\n this.places$,\n this.organizations$,\n this.relations$,\n this.events$,\n ]).pipe(\n map(([persons, places, organizations, relations, events]) => ({\n all: {\n lists: [...persons.lists, ...places.lists, ...organizations.lists, ...events.lists],\n entities: [...persons.entities, ...places.entities, ...organizations.entities, ...events.entities],\n },\n persons,\n places,\n organizations,\n relations,\n events,\n })),\n shareReplay(1),\n );\n\n public entitiesOccurrences$: Observable<Map<NamedEntityOccurrence[]>> = this.pages$.pipe(\n map((pages) => this.namedEntitiesParser.parseNamedEntitiesOccurrences(pages)),\n shareReplay(1),\n );\n\n public lemsOccurrences$: Observable<Map<LemmatizedEntityOccurrence[]>> = this.pages$.pipe(\n map((pages) => this.lemmatizedEntitiesParser.parseLemmatizedEntitiesOccurrences(pages)),\n shareReplay(1),\n );\n\n // WITNESSES\n public readonly witnessesData$ = this.editionSource$.pipe(\n map((source) => this.witnessesParser.parseWitnessesData(source)),\n shareReplay(1),\n );\n\n public readonly witnesses$ = this.witnessesData$.pipe(\n map(({ witnesses }) => witnesses),\n shareReplay(1),\n );\n\n public readonly groups$ = this.witnessesData$.pipe(\n map(({ groups }) => groups),\n shareReplay(1),\n );\n\n // APPARATUS ENTRIES\n public readonly appEntries$ = this.editionSource$.pipe(\n map((source) => this.apparatusParser.parseAppEntries(source)),\n shareReplay(1),\n );\n\n public readonly significantReadings$ = this.appEntries$.pipe(\n map((appEntries) => this.apparatusParser.getSignificantReadings(appEntries)),\n shareReplay(1),\n );\n\n public readonly significantReadingsNumber$ = this.significantReadings$.pipe(\n map((signRdgs) => this.apparatusParser.getSignificantReadingsNumber(signRdgs)),\n shareReplay(1),\n );\n\n public readonly appVariance$ = this.witnesses$.pipe(\n switchMap((witList) => {\n return this.significantReadingsNumber$.pipe(\n map((signRdgsNum) => this.apparatusParser.getAppVariance(signRdgsNum, witList)),\n );\n }),\n shareReplay(1),\n );\n\n // FACSIMILE\n public readonly surfaces$ = this.editionSource$.pipe(\n map((source) => this.facsimileParser.parseSurfaces(source)),\n shareReplay(1),\n );\n\n public readonly hsLines$ = this.surfaces$.pipe(\n map((surfaces) => surfaces.reduce((x: ZoneLine[], y) => x.concat(y.zones.lines), [])),\n shareReplay(1),\n );\n\n public readonly hotspots$ = this.surfaces$.pipe(\n map((surfaces) => surfaces.reduce((x: ZoneHotSpot[], y) => x.concat(y.zones.hotspots), [])),\n shareReplay(1),\n );\n\n // CHAR DECL\n public readonly characters$ = this.editionSource$.pipe(\n map((source) => this.characterDeclarationsParser.parseChars(source)),\n shareReplay(1),\n );\n\n public readonly glyphs$ = this.editionSource$.pipe(\n map((source) => this.characterDeclarationsParser.parseGlyphs(source)),\n shareReplay(1),\n );\n\n public readonly specialChars$ = combineLatest([\n this.characters$,\n this.glyphs$,\n ]).pipe(\n map(([chars, glyphs]) => chars.concat(glyphs)),\n );\n\n public readonly msDesc$ = this.editionSource$.pipe(\n map((source) => this.msDescParser.parseMsDesc(source)),\n shareReplay(1),\n);\n\n // add by FS \n // LEMMA ENTITIES\n public readonly parsedLemLists$ = this.editionSource$.pipe(\n map((source) => this.lemmatizedEntitiesParser.parseLemLists(source)),\n shareReplay(1),\n );\n\n public readonly item$ = this.parsedLemLists$.pipe(\n map(({ lemlists, lementities }) => (this.lemmatizedEntitiesParser.getResultsByType(lemlists, lementities, ['item', 'lem', 'w']))),\n );\n\n public readonly lemmas$ = this.parsedLemLists$.pipe(\n map(({ lemlists, lementities }) => (this.lemmatizedEntitiesParser.getResultsByType(lemlists, lementities, ['item', 'lem', 'w']))),\n );\n\n public readonly lemmatizedEntities$: Observable<LemmatizedEntities> = combineLatest([\n this.item$,\n this.lemmas$,\n this.relations$,\n ]).pipe(\n map(([item, lemmas, relations]) => ({\n all: {\n lemlists: [...item.lemlists, ...lemmas.lemlists],\n lementities: [...item.lementities],\n },\n item,\n lemmas,\n relations,\n })),\n shareReplay(1),\n );\n\n public entitiesLemOccurrences$: Observable<Map<LemmatizedEntityOccurrence[]>> = this.pages$.pipe(\n map((pages) => this.lemmatizedEntitiesParser.parseLemmatizedEntitiesOccurrences(pages)),\n shareReplay(1),\n );\n\n constructor(\n private editionDataService: EditionDataService,\n private editionStructureParser: StructureXmlParserService,\n private namedEntitiesParser: NamedEntitiesParserService,\n private prefatoryMatterParser: PrefatoryMatterParserService,\n private witnessesParser: WitnessesParserService,\n private apparatusParser: ApparatusEntriesParserService,\n private facsimileParser: FacsimileParserService,\n private characterDeclarationsParser: CharacterDeclarationsParserService,\n private linesVersesParser: LinesVersesParserService,\n private msDescParser: MsDescParserService,\n // add by FS\n private lemmatizedEntitiesParser: LemmatizedEntitiesParserService,\n ) {\n }\n\n getPage(pageId: string): Observable<Page> {\n return this.pages$.pipe(map((pages) => pages.find((page) => page.id === pageId)));\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, Optional } from '@angular/core';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { LemEntry } from 'src/app/models/evt-models';\nimport { register } from 'src/app/services/component-register.service';\nimport { EVTModelService } from 'src/app/services/evt-model.service';\nimport { LemEntryDetailComponent } from './lem-entry-detail/lem-entry-detail.component';\n\n\n@Component({\n selector: 'evt-lem-entry',\n templateUrl: './lem-entry.component.html',\n styleUrls: ['./lem-entry.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\n@register(LemEntry)\nexport class LemEntryComponent {\n\n @Input() data: LemEntry;\n\n public opened = false;\n public isInsideLemDetail: boolean;\n public nestedLems : LemEntry[] = [];\n\n variance$ = this.evtModelService.appVariance$.pipe(\n map((variances) => variances[this.data.id]),\n shareReplay(1),\n );\n \n constructor(\n private evtModelService: EVTModelService,\n @Optional() private parentDetailComponent?: LemEntryDetailComponent,\n ) {\n this.isInsideLemDetail = this.parentDetailComponent ? true : false;\n }\n\n toggleLemEntryBox(e: MouseEvent) {\n e.stopPropagation();\n this.opened = !this.opened;\n }\n\n closeLemEntryBox() {\n this.opened = false;\n }\n\n stopPropagation(e: MouseEvent) {\n e.stopPropagation();\n }\n}\n","<!-- Check if the lem entry is inside an lem detail (nested lem). In the lem detail it's not necessary to render the entire lem but only the lemma -->\n<span *ngIf=\"!isInsideLemDetail\" class=\"lem-entry\" [attr.data-variance]=\"variance$ | async\" [ngClass]=\"{ 'lem-detail-opened': opened }\">\n <evt-reading class=\"lem-entry-lem\" *ngIf=\"data?.lemma\" [data]=\"data.lemma\" (click)=\"toggleLemEntryBox($event);\"></evt-reading>\n <!-- The click event in \"evt-lem-entry-detail\" is used to manage nested apps -->\n <evt-lem-entry-detail *ngIf=\"data?.lemma && opened\" [data]=\"data\" (click)=\"stopPropagation($event)\"></evt-lem-entry-detail> \n </span>","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'evt-header-section',\n templateUrl: './header-section.component.html',\n styleUrls: ['./header-section.component.scss'],\n})\nexport class HeaderSectionComponent {\n @Input() label: string;\n @Input() additionalClass: string;\n @Input() inlineLabel: boolean;\n}\n","<div class=\"section {{additionalClass}}\" [class.has-inline-label]=\"inlineLabel\">\n <div class=\"section-label\" *ngIf=\"label\">{{ label | translate }}{{inlineLabel ? ': ' : ''}}</div>\n <div class=\"section-content\">\n <ng-content select=\"[content]\"></ng-content>\n </div>\n</div>","import { Attribute, Component, Input } from '@angular/core';\nimport { EVTBtnClickEvent } from '../../ui-components/button/button.component';\nimport { PinboardService } from '../pinboard.service';\n\n@Component({\n selector: 'evt-pinner',\n templateUrl: './pinner.component.html',\n styleUrls: ['./pinner.component.scss'],\n})\nexport class PinnerComponent {\n @Input() item;\n @Input() additionalStyle: { [key: string]: string | number };\n constructor(\n @Attribute('pinType') public pinType: string,\n @Attribute('renderer') public renderer: string,\n private pinboard: PinboardService) { }\n\n isItemPinned() {\n return this.pinboard.isItemPinned(this.item);\n }\n\n togglePin(btnEvent: EVTBtnClickEvent) {\n btnEvent.event.stopPropagation();\n this.pinboard.toggleItem(this.item, { pinType: this.pinType, renderer: this.renderer });\n }\n}\n","<evt-button [iconLeft]=\"{icon: 'thumbtack'}\" [title]=\"'PinItem' | translate\" class=\"evt-pinner\"\n [ngStyle]=\"additionalStyle\" [toggler]=\"true\" [transparent]=\"true\" [active]=\"isItemPinned()\"\n (btnClick)=\"togglePin($event)\"></evt-button>","import { Injectable } from '@angular/core';\nimport { getEventKeyCode } from '../utils/js-utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ShortcutsService {\n handleKeyboardEvent(e: KeyboardEvent) {\n const eKeyCode = getEventKeyCode(e);\n if (e.altKey) { // ALT pressed\n switch (eKeyCode) {\n // TODO: MODE VIEW\n case 49: // alt+1\n // First view mode\n break;\n case 50: // alt+2\n // Second view mode\n break;\n case 51: // alt+3\n // Third view mode\n break;\n case 52: // alt+1\n // Fourth view mode\n break;\n // other useful\n case 73: // alt+i\n // Open PROJECT INFO\n break;\n case 76: // alt+l\n // Open Lists\n break;\n case 69: // alt + e\n if (e.shiftKey) { // alt + shift + e\n // Open EVT Info\n }\n break;\n case 66:\n // Open bookmark\n break;\n case 83: { // alt + s\n if (e.shiftKey) { // alt + shift + s\n // Open shortcuts\n }\n break;\n }\n }\n } else {\n if ((e.ctrlKey) && (eKeyCode === 32)) { // GM: CTRL+space\n // TODO: toggle bottom navbar\n } else if ((eKeyCode === 102 || eKeyCode === 70) &&\n (e.ctrlKey || e.metaKey) && e.altKey && e.shiftKey) { // CTRL+ALT+SHIF+f - CMD+ALT+SHIF+f\n // TODO: go fullscreen\n } else if ((eKeyCode === 102 || eKeyCode === 70) &&\n (e.ctrlKey || e.metaKey) && e.altKey) { // CTRL+f - CMD+f\n // TODO: Toggle search\n } else {\n switch (eKeyCode) {\n case 37: // left arrow\n // TODO: Nav left\n break;\n case 39: // right arrow\n // TODO: Nav right\n break;\n case 38: // up\n // TODO: Nav to previous document\n break;\n case 40: // down\n // TODO: Nav to following document\n break;\n case 27: // escape\n break;\n case 13: // input\n break;\n }\n }\n }\n }\n}\n","import { AppConfig } from 'src/app/app.config';\nimport { xmlParser } from '.';\nimport { ApparatusEntry, Note, Reading, XMLElement } from '../../models/evt-models';\nimport { getOuterHTML } from '../../utils/dom-utils';\nimport { removeSpaces } from '../../utils/xml-utils';\nimport { AttributeParser, EmptyParser, NoteParser } from './basic-parsers';\nimport { createParser, getID, Parser } from './parser-models';\n\n@xmlParser('rdg', RdgParser)\nexport class RdgParser extends EmptyParser implements Parser<XMLElement> {\n private readingGroupTagName = 'rdgGrp';\n attributeParser = createParser(AttributeParser, this.genericParse);\n\n public parse(rdg: XMLElement): Reading {\n return {\n type: Reading,\n id: getID(rdg),\n attributes: this.attributeParser.parse(rdg),\n witIDs: this.parseReadingWitnesses(rdg) || [],\n content: this.parseAppReadingContent(rdg),\n significant: this.isReadingSignificant(rdg),\n class: rdg.tagName.toLowerCase(),\n };\n }\n\n private parseReadingWitnesses(rdg: XMLElement) {\n return rdg.getAttribute('wit')?.split('#')\n .map((el) => removeSpaces(el))\n .filter((el) => el.length !== 0);\n }\n\n private parseAppReadingContent(rdg: XMLElement) {\n return Array.from(rdg.childNodes)\n .map((child: XMLElement) => this.genericParse(child));\n }\n\n private isReadingSignificant(rdg: XMLElement): boolean {\n const notSignificantReadings = AppConfig.evtSettings.edition.notSignificantVariants;\n let isSignificant = true;\n\n if (notSignificantReadings.length > 0) {\n isSignificant = this.isSignificant(notSignificantReadings, rdg.attributes);\n if (isSignificant && rdg.parentElement.tagName === this.readingGroupTagName) {\n isSignificant = this.isSignificant(notSignificantReadings, rdg.parentElement.attributes);\n }\n }\n\n return isSignificant;\n }\n\n private isSignificant(notSignificantReading: string[], attributes: NamedNodeMap): boolean {\n return !Array.from(attributes).some(({ name, value }) => notSignificantReading.includes(`${name}=${value}`));\n }\n}\n\n@xmlParser('evt-apparatus-entry-parser', AppParser)\nexport class AppParser extends EmptyParser implements Parser<XMLElement> {\n private noteTagName = 'note';\n private appEntryTagName = 'app';\n private readingTagName = 'rdg';\n private lemmaTagName = 'lem';\n\n attributeParser = createParser(AttributeParser, this.genericParse);\n noteParser = createParser(NoteParser, this.genericParse);\n rdgParser = createParser(RdgParser, this.genericParse);\n\n public parse(appEntry: XMLElement): ApparatusEntry {\n return {\n type: ApparatusEntry,\n id: getID(appEntry),\n attributes: this.attributeParser.parse(appEntry),\n content: [],\n lemma: this.parseLemma(appEntry),\n readings: this.parseReadings(appEntry),\n notes: this.parseAppNotes(appEntry),\n originalEncoding: getOuterHTML(appEntry),\n class: appEntry.tagName.toLowerCase(),\n nestedAppsIDs: this.getNestedAppsIDs(appEntry),\n };\n }\n\n private getNestedAppsIDs(app: XMLElement): string[] {\n const nesApps = app.querySelectorAll('app');\n\n return Array.from(nesApps).map((a: XMLElement) => getID(a));\n }\n\n private parseAppNotes(appEntry: XMLElement): Note[] {\n const notes = Array.from(appEntry.children)\n .filter(({ tagName }) => tagName === this.noteTagName)\n .map((note: XMLElement) => this.noteParser.parse(note));\n\n return notes;\n }\n\n private parseLemma(appEntry: XMLElement): Reading {\n return appEntry.querySelector(`${this.lemmaTagName}`) ?\n this.rdgParser.parse(appEntry.querySelector(`${this.lemmaTagName}`)) : undefined;\n }\n\n private parseReadings(appEntry: XMLElement): Reading[] {\n return Array.from(appEntry.querySelectorAll(`${this.readingTagName}`))\n .filter((el) => el.closest(this.appEntryTagName) === appEntry)\n .map((rdg: XMLElement) => this.rdgParser.parse(rdg));\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgbNav } from '@ng-bootstrap/ng-bootstrap';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { NamedEntity } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\n\n@register(NamedEntity)\n@Component({\n selector: 'evt-named-entity',\n templateUrl: './named-entity.component.html',\n styleUrls: ['./named-entity.component.scss'],\n})\nexport class NamedEntityComponent implements OnInit {\n @Input() data: NamedEntity;\n @Input() inList: boolean;\n occurrences$ = this.evtModelService.entitiesOccurrences$.pipe(\n map(occ => occ[this.data.id] || []),\n shareReplay(1),\n );\n relations$ = this.evtModelService.relations$.pipe(\n map(el => el.filter(rel => rel.activeParts.indexOf(this.data.id) >= 0 ||\n rel.passiveParts.indexOf(this.data.id) >= 0 || rel.mutualParts.indexOf(this.data.id) >= 0)));\n\n @ViewChild('entityDetails') entityDetails: NgbNav;\n\n public contentOpened = true;\n\n get selectedSection() {\n if (this.contentOpened) {\n return `${this.data && this.data.content.length === 0 ? 'occurrences' : 'info'}_${this.data.id}`;\n }\n\n return '';\n }\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n ngOnInit() {\n if (this.inList) {\n this.contentOpened = false;\n }\n }\n\n toggleContent() {\n if (this.inList) {\n this.contentOpened = !this.contentOpened;\n }\n }\n\n tabSelected(event: MouseEvent) {\n event.stopPropagation();\n }\n\n}\n","<div class=\"card ne-container {{ data.namedEntityType }}\" (click)=\"tabSelected($event)\" [ngClass]=\"{\n inList: inList, \n contentOpened: contentOpened\n }\" *ngIf=\"data\" [evtHtmlAttributes]=\"data?.attributes\">\n <div class=\"card-header ne-header\" (click)=\"toggleContent()\">\n <evt-icon *ngIf=\"inList && contentOpened\"\n [iconInfo]=\"{ icon: 'caret-down', additionalClasses: 'icon toggler mr-2'}\">\n </evt-icon>\n <evt-icon *ngIf=\"inList && !contentOpened\"\n [iconInfo]=\"{icon: 'caret-right', additionalClasses: 'icon toggler mr-2'}\"></evt-icon>\n <evt-icon *ngIf=\"data.namedEntityType === 'person'\"\n [iconInfo]=\"{icon: 'user', additionalClasses: 'icon mr-1'}\"></evt-icon>\n <evt-icon *ngIf=\"data.namedEntityType === 'place'\"\n [iconInfo]=\"{icon: 'map-marker', additionalClasses: 'icon mr-1'}\">\n </evt-icon>\n {{ data.label }}\n <evt-pinner [item]=\"data\" renderer=\"NamedEntity\" pinType=\"NamedEntities\"></evt-pinner>\n </div>\n <div class=\"card-body ne-content\" *ngIf=\"contentOpened\">\n <ul ngbNav #entityDetails=\"ngbNav\" class=\"entity-details\" [activeId]=\"selectedSection\">\n <li [ngbNavItem]=\"'info_'+data.id\" [disabled]=\"data.content.length === 0\">\n <a ngbNavLink class=\"ui-font\">{{'Info' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content\">\n <evt-content-viewer *ngFor=\"let detail of data.content\" [content]=\"detail\">\n </evt-content-viewer>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'occurrences_'+data.id\">\n <a ngbNavLink class=\"ui-font\">{{'Occorrenze' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content ui-font\" *ngIf=\"occurrences$ | async as occurrences\">\n <span *ngIf=\"occurrences.length === 0\">{{'noOccurrences' | translate}}</span>\n <evt-named-entity-occurrence *ngFor=\"let occurrence of occurrences\" [occurrence]=\"occurrence\" [entityId]=\"data.id\"></evt-named-entity-occurrence>\n </div>\n </ng-template>\n </li>\n <!-- <li [ngbNavItem]=\"'relations_'+data.id\">\n <a ngbNavLink class=\"ui-font\">{{'Relazioni' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content\" *ngIf=\"relations$ | async as relations\">\n <span *ngIf=\"relations.length === 0\" class=\"ui-font\">{{'noRelations' | translate}}</span>\n <evt-named-entity-relation *ngFor=\"let relation of relations\" \n [data]=\"relation\" [inEntity]=\"true\"></evt-named-entity-relation>\n </div>\n </ng-template>\n </li> -->\n <li [ngbNavItem]=\"'xml_'+data.id\">\n <a ngbNavLink class=\"ui-font\">{{'XMLSource' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content no-padding\">\n <evt-original-encoding-viewer [originalEncoding]=\"data.originalEncoding\">\n </evt-original-encoding-viewer>\n </div>\n </ng-template>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"entityDetails\"></div>\n </div>\n</div>","import { Component, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Rendition } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { snakeToCamelCased } from '../../utils/js-utils';\n\n@Component({\n selector: 'evt-rendition',\n templateUrl: './rendition.component.html',\n styleUrls: ['./rendition.component.scss'],\n})\n@register(Rendition)\nexport class RenditionComponent {\n @Input() data: Rendition;\n\n get scopeDescription$() {\n if (this.data.scope) {\n const descKey = snakeToCamelCased(`rendition-${this.data.scope}-desc`);\n\n return this.translateService.get(descKey).pipe(\n map(translation => translation === descKey ? '' : `(${translation})`),\n );\n }\n\n return of('');\n }\n\n constructor(\n private translateService: TranslateService,\n ) { }\n}\n","<div class=\"rendition\">\n <ng-container *ngIf=\"data.scope || data.selector || data.scheme\">\n <div class=\"rendition-section rendition-scope\" *ngIf=\"data.scope\">\n <label>{{'scope' | translate}}: </label>\n <span>{{data.scope}} {{ scopeDescription$ | async }}</span>\n </div>\n <div class=\"rendition-section rendition-selector\" *ngIf=\"data.selector\">\n <label>{{'selector' | translate}}: </label><span>{{data.selector}}</span>\n </div>\n <div class=\"rendition-section rendition-scheme\" *ngIf=\"data.scheme\">\n <label>{{'scheme' | translate}}: </label><span>{{data.scheme}} {{data.schemeVersion}}</span>\n </div>\n <div class=\"rendition-section rendition-content\">\n <label>{{'rules' | translate}}: </label>\n <span>\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\"></evt-content-viewer>\n </span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!data.scope && !data.selector && !data.scheme && data.id\">\n <div class=\"rendition-section rendition-content\">\n <label>{{data.id}}:</label>\n <span>\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\"></evt-content-viewer>\n </span>\n </div>\n </ng-container>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'evt-shortcuts',\n templateUrl: './shortcuts.component.html',\n styleUrls: ['./shortcuts.component.scss'],\n})\nexport class ShortcutsComponent {\n // tslint:disable-next-line: no-any\n public shortcuts: Array<{ label: string, instructions: any[] }> = []; // TODO: get rid of instructions\n\n constructor() {\n this.initShortcuts();\n }\n\n private initShortcuts() {\n this.shortcuts.push({\n label: 'OpenProjectInfo',\n instructions: [\n { type: 'key', text: 'ALT' },\n { text: '+' },\n { type: 'key', text: 'I' }],\n });\n this.shortcuts.push({\n label: 'OpenLists',\n instructions: [\n { type: 'key', text: 'ALT' },\n { text: '+' },\n { type: 'key', text: 'L' }],\n });\n this.shortcuts.push({\n label: 'OpenCurrentBookmark',\n instructions: [\n { type: 'key', text: 'ALT' },\n { text: '+' },\n { type: 'key', text: 'B' }],\n });\n this.shortcuts.push({\n label: 'OpenEVTInfo',\n instructions: [\n { type: 'key', text: 'ALT' },\n { text: '+' },\n { type: 'key', text: 'SHIFT' },\n { text: '+' },\n { type: 'key', text: 'E' }],\n });\n this.shortcuts.push({\n label: 'OpenShortcuts',\n instructions: [\n { type: 'key', text: 'ALT' },\n { text: '+' },\n { type: 'key', text: 'SHIFT' },\n { text: '+' },\n { type: 'key', text: 'S' }],\n });\n // this.shortcuts.push({\n // label: 'ChangeView',\n // instructions: [\n // { type: 'key', text: 'ALT' },\n // { text: '+' },\n // { type: 'key', text: '1' },\n // { text: '/' },\n // { type: 'key', text: 'ALT' },\n // { text: '+' },\n // { type: 'key', text: '2' },\n // { text: '/' },\n // { type: 'key', text: 'ALT' },\n // { text: '+' },\n // { type: 'key', text: '3' },\n // { text: '...' }]\n // });\n // this.shortcuts.push({\n // label: 'ChangePage',\n // instructions: [\n // { type: 'key', text: '&larr;' },\n // { text: 'and' },\n // { type: 'key', text: '&rarr;' }]\n // });\n // this.shortcuts.push({\n // label: 'ChangeDocument',\n // instructions: [\n // { type: 'key', text: '&uarr;' },\n // { text: 'and' },\n // { type: 'key', text: '&darr;' }]\n // });\n // this.shortcuts.push({\n // label: 'FullScreen',\n // instructions: [\n // { type: 'key', text: 'ctrl' },\n // { text: '/' },\n // { type: 'key', text: 'cmd' },\n // { text: '+' },\n // { type: 'key', text: 'alt' },\n // { text: '+' },\n // { type: 'key', text: 'shift' },\n // { text: '+' },\n // { type: 'key', text: 'f' }]\n // });\n // this.shortcuts.push({\n // label: 'FullScreen',\n // instructions: [\n // { type: 'key', text: 'ctrl' },\n // { text: '/' },\n // { type: 'key', text: 'cmd' },\n // { text: '+' },\n // { type: 'key', text: 'alt' },\n // { text: '+' },\n // { type: 'key', text: 'f' }]\n // });\n this.shortcuts.push({\n label: 'CloseModalIfOpened',\n instructions: [\n { type: 'key', text: 'ESC' }],\n });\n }\n}\n","<div class=\"container\">\n <div class=\"row mb-2 border-bottom pb-2 pt-2\" *ngFor=\"let shortcut of shortcuts\">\n <div class=\"col\">\n {{ shortcut.label | translate }}\n </div>\n <div class=\"col\">\n <span class=\"shortcuts-instruction-item\" *ngFor=\"let item of shortcut.instructions\" [attr.type]=\"item.type\">\n {{item.text}}\n </span>\n </div>\n </div>\n</div>","import { Component, Input } from '@angular/core';\n\nimport { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive';\nimport { Deletion } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface DeletionComponent extends EditionlevelSusceptible, Highlightable { }\n\n@register(Deletion)\n@Component({\n selector: 'evt-deletion',\n templateUrl: './deletion.component.html',\n styleUrls: ['./deletion.component.scss'],\n})\nexport class DeletionComponent {\n @Input() data: Deletion;\n\n get editorialConventionData(): EditorialConventionLayoutData {\n return {\n name: 'del',\n attributes: this.data.attributes,\n editionLevel: this.editionLevel,\n defaultsKey: 'deletion',\n };\n }\n}\n","<span class=\"del\" [attr.data-edition]=\"editionLevel\" [attr.data-rend]=\"data.rend\" [evtHtmlAttributes]=\"data?.attributes\"\n [evtHighlight]=\"highlightData\" [evtEditorialConventionLayout]=\"editorialConventionData\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\" [editionLevel]=\"editionLevel\"\n [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\"></evt-content-viewer>\n</span>","import { Component, Input } from '@angular/core';\n\nimport { EditorialConventionLayoutData } from '../../directives/editorial-convention-layout.directive';\nimport { Damage } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface DamageComponent extends EditionlevelSusceptible, Highlightable { }\n\n@Component({\n selector: 'evt-damage',\n templateUrl: './damage.component.html',\n styleUrls: ['./damage.component.scss'],\n})\n@register(Damage)\nexport class DamageComponent {\n @Input() data: Damage;\n\n get editorialConventionData(): EditorialConventionLayoutData {\n return {\n name: 'damage',\n attributes: this.data?.attributes || {},\n editionLevel: this.editionLevel,\n defaultsKey: 'damage',\n };\n }\n}\n","<span class=\"{{data.class}}\" [evtEditorialConventionLayout]=\"editorialConventionData\">\n <evt-content-viewer *ngFor=\"let element of data.content\" [content]=\"element\"\n [editionLevel]=\"editionLevel\" [itemsToHighlight]=\"itemsToHighlight\"></evt-content-viewer>\n</span>\n","// import { Attribute } from '@angular/core';\n// import { LemmatizedEntityLabel } from './../../models/evt-models';\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgbNav } from '@ng-bootstrap/ng-bootstrap';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport { LemmatizedEntity } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { normalizeUrl } from '../../utils/js-utils';\n\n@register(LemmatizedEntity)\n@Component({\n selector: 'evt-lemmatized-entity',\n templateUrl: './lemmatized-entity.component.html',\n styleUrls: ['./lemmatized-entity.component.scss'],\n})\nexport class LemmatizedEntityComponent implements OnInit {\n @Input() data: LemmatizedEntity;\n @Input() inList: boolean;\n occurrences$ = this.evtModelService.lemsOccurrences$.pipe(\n map(occ => occ[this.data.id] || []),\n shareReplay(1),\n );\n relations$ = this.evtModelService.relations$.pipe(\n map(el => el.filter(rel => rel.activeParts.indexOf(this.data.id) >= 0 ||\n rel.passiveParts.indexOf(this.data.id) >= 0 || rel.mutualParts.indexOf(this.data.id) >= 0)));\n\n @ViewChild('lemDetails') lemDetails: NgbNav;\n\n public contentOpened = true;\n\n get selectedSection() {\n if (this.contentOpened) {\n return `${this.data && this.data.content.length === 0 ? 'occurrences' : 'info'}_${this.data.id}`;\n }\n\n return '';\n }\n\n get linkLem() { \n return normalizeUrl('http://tlio.ovi.cnr.it/TLIO/'); \n }\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n ngOnInit() {\n if (this.inList) {\n this.contentOpened = false;\n }\n }\n\n toggleContent() {\n if (this.inList) {\n this.contentOpened = !this.contentOpened;\n }\n }\n\n tabSelected(event: MouseEvent) {\n event.stopPropagation();\n }\n\n openlinkLem() {\n if (this.linkLem) {\n window.open(this.linkLem, '_blank');\n }\n }\n\n}\n","<div class=\"card ne-container {{ data.lemmatizedEntityType }}\" (click)=\"tabSelected($event)\" [ngClass]=\"{\n inList: inList, \n contentOpened: contentOpened\n }\" *ngIf=\"data\" [evtHtmlAttributes]=\"data?.attributes\">\n <div class=\"card-header ne-header\" (click)=\"toggleContent()\">\n <evt-icon *ngIf=\"inList && contentOpened\"\n [iconInfo]=\"{ icon: 'caret-down', additionalClasses: 'icon toggler mr-2'}\">\n </evt-icon>\n <evt-icon *ngIf=\"inList && !contentOpened\"\n [iconInfo]=\"{icon: 'caret-right', additionalClasses: 'icon toggler mr-2'}\"></evt-icon>\n <evt-icon *ngIf=\"data.lemmatizedEntityType === 'lem'\"\n [iconInfo]=\"{icon: 'map-marker', additionalClasses: 'icon mr-1'}\">\n </evt-icon>\n <evt-icon *ngIf=\"data.lemmatizedEntityType === 'w'\"\n [iconInfo]=\"{icon: 'map-marker', additionalClasses: 'icon mr-1'}\">\n </evt-icon>\n {{ data.label }}\n <evt-pinner [item]=\"data\" renderer=\"LemmatizedEntity\" pinType=\"LemmatizedEntities\"></evt-pinner>\n </div>\n <div class=\"card-body ne-content\" *ngIf=\"contentOpened\">\n <ul ngbNav #lemDetails=\"ngbNav\" class=\"lem-details\" [activeId]=\"selectedSection\">\n <li [ngbNavItem]=\"'info_'+data.id\" [disabled]=\"data.content.length === 0\">\n <a ngbNavLink class=\"ui-font\">{{'Info' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content\">\n <evt-content-viewer *ngFor=\"let detail of data.content\" [content]=\"detail\">\n </evt-content-viewer>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'occurrences_'+data.id\">\n <a ngbNavLink class=\"ui-font\">{{'Occorrenze' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content ui-font\" *ngIf=\"occurrences$ | async as occurrences\">\n <span *ngIf=\"occurrences.length === 0\">{{'noLemOccurrences' | translate}}</span>\n <evt-lemmatized-entity-occurrence *ngFor=\"let occurrence of occurrences\" [occurrence]=\"occurrence\" [entityLemId]=\"data.id\"></evt-lemmatized-entity-occurrence>\n </div>\n </ng-template>\n </li>\n <!-- <li [ngbNavItem]=\"'relations_'+data.id\">\n <a ngbNavLink class=\"ui-font\">{{'Relations' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content\" *ngIf=\"relations$ | async as relations\">\n <span *ngIf=\"relations.length === 0\" class=\"ui-font\">{{'noRelations' | translate}}</span>\n <evt-lemmatized-entity-relation *ngFor=\"let relation of relations\" \n [data]=\"relation\" [inEntity]=\"true\"></evt-lemmatized-entity-relation>\n </div>\n </ng-template>\n </li> -->\n <li [ngbNavItem]=\"'xml_'+data.id\">\n <a ngbNavLink class=\"ui-font\">{{'XMLSource' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content no-padding\">\n <evt-original-encoding-viewer [originalEncoding]=\"data.originalEncoding\">\n </evt-original-encoding-viewer>\n </div>\n </ng-template>\n </li>\n <!-- <li [ngbNavItem]=\"'link_'+data.id\">\n <a ngbNavLink class=\"ui-font\">{{'Risorse esterne' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"ne-detail-content\">\n <span (click)=\"openlinkLem()\" class=\"edition-font\" [class.pointer]=\"linkLem\">Link alla voce su TLIO</span>\n <a *ngIf=\"linkLem\" [href]=\"linkLem\" target=\"_blank\"\n class=\"ml-2 edition-home-link\">\n <evt-icon [iconInfo]=\"{icon: 'external-link-alt', iconSet: 'fas' }\"></evt-icon>\n </a>\n </div>\n </ng-template>\n </li> -->\n </ul>\n <div [ngbNavOutlet]=\"lemDetails\"></div>\n </div>\n</div>","import { xmlParser } from '.';\nimport { Sic, Surplus, XMLElement } from '../../models/evt-models';\nimport { AttributeParser, EmptyParser } from './basic-parsers';\nimport { createParser, getClass, parseChildren, Parser } from './parser-models';\n\n@xmlParser('surplus', SurplusParser)\nexport class SurplusParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Surplus {\n const attributes = this.attributeParser.parse(xml);\n const { reason } = attributes;\n\n return {\n type: Surplus,\n reason,\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes,\n };\n }\n}\n\n@xmlParser('sic', SicParser)\nexport class SicParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n parse(xml: XMLElement): Sic {\n const attributes = this.attributeParser.parse(xml);\n const { type } = attributes;\n\n return {\n type: Sic,\n sicType: type || '',\n class: getClass(xml),\n content: parseChildren(xml, this.genericParse),\n attributes,\n };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { EVTModelService } from '../../services/evt-model.service';\n\nimport { AppConfig } from '../../app.config';\nimport { Verse } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EditionlevelSusceptible, Highlightable, TextFlowSusceptible } from '../components-mixins';\n\nexport interface VerseComponent extends EditionlevelSusceptible, Highlightable, TextFlowSusceptible { }\n\n@Component({\n selector: 'evt-verse',\n templateUrl: './verse.component.html',\n styleUrls: ['./verse.component.scss'],\n})\n\n@register(Verse)\nexport class VerseComponent {\n @Input() data: Verse;\n\n get displayBlock$() {\n return this.evtModelService.lines$.pipe(\n map(lines => lines.length > 0),\n map(hasLines => {\n // In diplomatic and interpretative edition, if the text doesn't have any line, verses are shown as block items,\n // unless current text flow is prose\n // In critical edition verses are always shown as block items, unless current text flow is prose\n switch (this.editionLevel) {\n case 'diplomatic':\n case 'interpretative':\n return this.textFlow === 'verses' || !hasLines;\n case 'critical':\n return this.textFlow !== 'prose';\n }\n }),\n );\n }\n\n private verseNumberPrinter = AppConfig.evtSettings.edition.verseNumberPrinter || 5;\n get showNumber() {\n const num = parseInt(this.data.n, 10);\n\n return !isNaN(num) && num % this.verseNumberPrinter !== 0;\n }\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n}\n","<span class=\"verse l\" [evtHtmlAttributes]=\"data.attributes\" \n\t[class.display-block]=\"displayBlock$ | async\">\n\t<span class=\"verse-num\" [class.hidden]=\"(displayBlock$ | async) && showNumber\">{{data.n}}</span>\n\t<evt-content-viewer *ngFor=\"let el of data.content\" [content]=\"el\" [editionLevel]=\"editionLevel\" \n\t\t[itemsToHighlight]=\"itemsToHighlight\" [evtHighlight]=\"highlightData\" [textFlow]=\"textFlow\">\n\t</evt-content-viewer>\n</span>","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemesService {\n themes: ColorTheme[];\n currentTheme: ColorTheme;\n\n constructor() {\n this.themes = [\n {\n value: 'restore',\n label: 'themeRestore',\n },\n {\n value: 'classic',\n label: 'themeClassic',\n },\n {\n value: 'neutral',\n label: 'themeNeutral',\n },\n {\n value: 'modern',\n label: 'themeModern',\n },\n ];\n this.selectTheme(this.themes[0]);\n }\n\n selectTheme(theme: ColorTheme) {\n this.currentTheme = theme;\n document.body.setAttribute('data-theme', theme.value); // Needed to let ngb-popover and ngb-modals work properly with themes\n }\n\n getAvailableThemes(): ColorTheme[] {\n return this.themes;\n }\n\n getCurrentTheme(): ColorTheme {\n return this.currentTheme;\n }\n}\n\nexport interface ColorTheme {\n value: string;\n label: string; // Key in the JSON localization for the label\n}\n","import { Component, Input } from '@angular/core';\nimport { MsItem } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-ms-item',\n templateUrl: './ms-item.component.html',\n styleUrls: ['./ms-item.component.scss'],\n})\n\n@register(MsItem)\nexport class MsItemComponent {\n @Input() data: MsItem;\n @Input() nested1: boolean;\n @Input() nested2: boolean;\n}\n","<div class=\"flex-container section-msItem\" [class.has-nested1]=\"nested1\" [class.has-nested2]=\"nested2\"> \n <div class=\"flex-item-locus\" *ngIf=\"data?.locus\"> \n <span class=\"locus\">\n <evt-content-viewer [content]=\"data.locus\"></evt-content-viewer>\n <span>:</span>\n </span>\n </div>\n <div class=\"flex-item-information\">\n <evt-ms-desc-section *ngIf=\"data?.titles?.length>0 || data?.docTitles?.length>0\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <ng-container content>\n <ng-container *ngFor=\"let titles of data.titles; let i = index\">\n <evt-content-viewer *ngFor=\"let title of titles\" [content]=\"title\"></evt-content-viewer>\n <span *ngIf=\"i < [data.titles.length-1]\">, </span>\n </ng-container>\n <ng-container *ngFor=\"let docTitles of data.docTitles; let i = index\">\n <evt-content-viewer *ngFor=\"let docTitle of docTitles\" [content]=\"docTitle\"></evt-content-viewer>\n <span *ngIf=\"i < [data.docTitles.length-1]\">, </span>\n </ng-container>\n </ng-container>\n </evt-ms-desc-section>\n <ng-container class=\"msItem-information\">\n <evt-ms-desc-section *ngIf=\"data?.textLangs?.length>0\" [label]=\"'textLang'\" [inlineLabel]=\"true\" [nestedElement]=\"true\"> \n <ng-container content>\n <ng-container *ngFor=\"let textLangs of data.textLangs; let i = index\">\n <evt-content-viewer *ngFor=\"let textLang of textLangs\" [content]=\"textLang\"></evt-content-viewer>\n <span *ngIf=\"i < [data.textLangs.length-1]\">, </span>\n </ng-container>\n </ng-container>\n </evt-ms-desc-section>\n <evt-ms-desc-section *ngIf=\"data?.authors?.length>0 || data?.docAuthors?.length>0\" [label]=\"'author'\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <ng-container content>\n <span *ngFor=\"let authors of data.authors; let i = index\">\n <evt-content-viewer *ngFor=\"let author of authors\" [content]=\"author\"></evt-content-viewer>\n <span *ngIf=\"i < [data.authors.length-1]\">, </span>\n </span>\n <span *ngIf=\"data.authors.length>0 && data.docAuthors.length>0\">, </span>\n <span *ngFor=\"let docAuthors of data.docAuthors; let i = index\">\n <evt-content-viewer *ngFor=\"let docAuthor of docAuthors\" [content]=\"docAuthor\"></evt-content-viewer>\n <span *ngIf=\"i < [data.docAuthors.length-1]\">, </span>\n </span>\n </ng-container>\n </evt-ms-desc-section>\n <evt-ms-desc-section *ngIf=\"data?.docDate?.length>0\" [label]=\"'docDate'\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <ng-container content>\n <span *ngFor=\"let dates of data.docDate\" content>\n <evt-content-viewer *ngFor=\"let date of dates\" [content]=\"date\"></evt-content-viewer>\n </span>\n </ng-container>\n </evt-ms-desc-section>\n <evt-ms-desc-section *ngIf=\"data?.colophons?.length>0\" [label]=\"'colophon'\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <ng-container content>\n <span *ngFor=\"let colophons of data.colophons\">\n <evt-content-viewer *ngFor=\"let colophon of colophons\" [content]=\"colophon\"></evt-content-viewer>\n </span>\n </ng-container>\n </evt-ms-desc-section>\n <evt-ms-desc-section *ngIf=\"data?.incipit\" [label]=\"'incipit'\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <evt-content-viewer [content]=\"data.incipit\" class=\"incipit\"></evt-content-viewer>\n </evt-ms-desc-section>\n <evt-ms-desc-section *ngIf=\"data?.explicit\" [label]=\"'explicit'\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <evt-content-viewer [content]=\"data.explicit\" class=\"explicit\"></evt-content-viewer>\n </evt-ms-desc-section>\n <evt-ms-desc-section *ngIf=\"data?.docImprints?.length>0\" [label]=\"'docImprint'\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <ng-container content>\n <span *ngFor=\"let docImprints of data.docImprints\">\n <evt-content-viewer *ngFor=\"let docImprint of docImprints\" [content]=\"docImprint\"></evt-content-viewer>\n </span>\n </ng-container>\n </evt-ms-desc-section>\n <evt-ms-desc-section *ngIf=\"data?.noteEl?.length>0\" [label]=\"'note'\" [inlineLabel]=\"true\" [nestedElement]=\"true\">\n <evt-content-viewer *ngFor=\"let n of data.noteEl\" [content]=\"n\"></evt-content-viewer>\n </evt-ms-desc-section> \n </ng-container>\n </div> \n</div>\n","import { EventEmitter, Output, ViewChild } from '@angular/core';\nimport { Component, Input } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { EVTModelService } from 'src/app/services/evt-model.service';\n\n@Component({\n selector: 'evt-ms-desc-selector',\n templateUrl: './ms-desc-selector.component.html',\n styleUrls: ['./ms-desc-selector.component.scss'],\n})\nexport class MsDescSelectorComponent {\n public msDesc$ = this.evtModelService.msDesc$;\n\n @Output() selectionChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() msDescOpen: EventEmitter<boolean> = new EventEmitter<boolean>();\n @ViewChild('ngSelectComponent') ngSelectComponent: NgSelectComponent;\n\n // tslint:disable-next-line: variable-name\n private _msDescID: string;\n @Input() set msDescID(p: string) {\n this._msDescID = p;\n }\n\n get msDescID() { return this._msDescID; }\n\n constructor(\n public evtModelService: EVTModelService,\n ) {\n }\n\n openMsDescContent() {\n this.selectionChange.emit(this.msDescID);\n this.msDescOpen.emit(true);\n }\n\n resetMsDesc() {\n this.msDescOpen.emit(false);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { EditionLevelType, TextFlow } from '../app.config';\nimport { HighlightData } from '../models/evt-models';\nimport { HighlightDataLem } from '../models/evt-models';\nimport { HighlightDataIperlem } from '../models/evt-models';\nimport { EntitiesSelectItem } from './entities-select/entities-select.component';\nimport { LemsSelectItem } from './lems-select/lems-select.component';\nimport { IperlemsSelectItem } from './iperlems-select/iperlems-select.component';\n\n@Directive()\n// tslint:disable-next-line: directive-class-suffix\nexport class Highlightable {\n @Input() highlightData: HighlightData;\n @Input() highlightDataLem: HighlightDataLem;\n @Input() highlightDataIperlem: HighlightDataIperlem;\n @Input() itemsToHighlight: EntitiesSelectItem[];\n @Input() itemsLemsToHighlight: LemsSelectItem[];\n @Input() itemsIperlemsToHighlight: IperlemsSelectItem[];\n}\n\n@Directive()\n// tslint:disable-next-line: directive-class-suffix\nexport class EditionlevelSusceptible {\n @Input() editionLevel: EditionLevelType;\n}\n\n@Directive()\n// tslint:disable-next-line: directive-class-suffix\nexport class TextFlowSusceptible {\n @Input() textFlow: TextFlow;\n}\n","import { xmlParser } from '.';\nimport { Graphic, Point, Surface, XMLElement, Zone, ZoneHotSpot, ZoneLine, ZoneRendition } from '../../models/evt-models';\nimport { AttributeParser, EmptyParser } from './basic-parsers';\nimport { createParser, getID, parseChildren, Parser } from './parser-models';\n\n@xmlParser('zone', ZoneParser)\nexport class ZoneParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n public parse(xml: XMLElement): Zone {\n let coords: Point[];\n const attributes = this.attributeParser.parse(xml);\n if (xml.getAttribute('points')) {\n coords = attributes.points.split(' ')\n .map(stringPoint => {\n const points = stringPoint.split(',');\n\n return {\n x: parseInt(points[0], 10),\n y: parseInt(points[1], 10),\n };\n });\n } else {\n const ul: Point = {\n x: parseFloat(attributes.ulx) || undefined,\n y: parseFloat(attributes.uly) || undefined,\n };\n const lr: Point = {\n x: parseFloat(attributes.lrx) || undefined,\n y: parseFloat(attributes.lry) || undefined,\n };\n const ur: Point = {\n x: lr.x,\n y: ul.y,\n };\n const ll: Point = {\n x: ul.x,\n y: lr.y,\n };\n coords = [ul, ur, lr, ll];\n }\n const id = getID(xml);\n const surface = xml.closest<XMLElement>('surface');\n\n return {\n type: Zone,\n attributes,\n id,\n coords,\n corresp: attributes.corresp?.replace('#', '') ?? id,\n rend: attributes.rend,\n rendition: attributes.rendition as ZoneRendition,\n rotate: attributes.rotate ? parseInt(attributes.rotate, 10) || 0 : 0,\n content: parseChildren(xml, this.genericParse),\n surface: surface ? getID(surface) : '',\n };\n }\n}\n\n@xmlParser('graphic', GraphicParser)\nexport class GraphicParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n public parse(xml: XMLElement): Graphic {\n return {\n type: Graphic,\n url: xml.getAttribute('url') || '',\n height: xml.getAttribute('height') || '',\n width: xml.getAttribute('width') || '',\n attributes: this.attributeParser.parse(xml),\n content: parseChildren(xml, this.genericParse),\n };\n }\n}\n\n@xmlParser('surface', SurfaceParser)\nexport class SurfaceParser extends EmptyParser implements Parser<XMLElement> {\n attributeParser = createParser(AttributeParser, this.genericParse);\n graphicParser = createParser(GraphicParser, this.genericParse);\n zoneParser = createParser(ZoneParser, this.genericParse);\n public parse(xml: XMLElement): Surface {\n const zones = Array.from(xml.querySelectorAll<XMLElement>('zone')).map(z => this.zoneParser.parse(z));\n\n return {\n type: Surface,\n id: getID(xml),\n corresp: xml.getAttribute('corresp')?.replace('#', ''),\n graphics: Array.from(xml.querySelectorAll<XMLElement>('graphic')).map(g => this.graphicParser.parse(g)),\n zones: {\n lines: zones.filter(z => z.rendition === 'Line') as ZoneLine[],\n hotspots: zones.filter(z => z.rendition === 'HotSpot') as ZoneHotSpot[],\n },\n attributes: this.attributeParser.parse(xml),\n content: parseChildren(xml, this.genericParse),\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\nimport { NamedEntitiesList, Relation } from '../../models/evt-models';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { Map } from '../../utils/js-utils';\n\ninterface GlobalList extends NamedEntitiesList {\n icon: string;\n}\n\n@Component({\n selector: 'evt-global-lists',\n templateUrl: './global-lists.component.html',\n styleUrls: ['./global-lists.component.scss'],\n})\nexport class GlobalListsComponent {\n lists$: Observable<GlobalList[]> = this.evtModelService.namedEntities$.pipe(\n map(ne => (ne.persons.lists.concat(ne.places.lists, ne.organizations.lists, ne.events.lists))),\n map(lists => (lists.map(list => ({\n ...list,\n icon: this.listsIcons[list.namedEntityType] || 'list',\n })))),\n tap(lists => {\n if (!this.selectedList && lists[0]) {\n this.openList(undefined, lists[0]);\n }\n }),\n );\n\n selectedList: NamedEntitiesList;\n\n relations$: Observable<Relation[]> = this.evtModelService.namedEntities$.pipe(\n map(ne => ne.relations),\n );\n\n showRelations = false;\n\n private listsIcons: Map<string> = {\n person: 'user',\n place: 'map-marker',\n org: 'users',\n event: 'calendar',\n };\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n openList(event: MouseEvent, list: NamedEntitiesList) {\n if (event) {\n event.stopPropagation();\n }\n if (this.selectedList !== list) {\n this.selectedList = list;\n }\n this.showRelations = false;\n }\n\n openRelations() {\n this.showRelations = true;\n this.selectedList = undefined;\n }\n}\n","<div class=\"row h-100 m-0\">\n <div class=\"bg-light col-3 p-0 border-right\">\n <ng-template ngFor let-list [ngForOf]=\"lists$ | async\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletContext]=\"{ list: list, last: false }\">\n </ng-template>\n </ng-template>\n <div class=\"list-item border-bottom border-top\" *ngIf=\"(relations$ | async).length > 0\"\n (click)=\"openRelations()\">\n <span class=\"list-item-main p-2 w-100 d-block edition-font\">\n <evt-icon [iconInfo]=\"{icon: 'network-wired', additionalClasses: 'mr-1'}\"></evt-icon>\n {{ 'relations' | translate }}\n <span class=\"badge badge-pill badge-info ui-font\">{{ (relations$ | async).length }}</span>\n </span>\n </div>\n </div>\n <div class=\"col-9 p-0\">\n <ng-container [ngSwitch]=\"showRelations\">\n <ng-container *ngSwitchCase=\"true\">\n <evt-content-viewer *ngFor=\"let relation of relations$ | async\"\n [content]=\"relation\"></evt-content-viewer> <!-- TODO: create component for relation list -->\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngIf=\"selectedList\" [content]=\"selectedList\"></evt-content-viewer>\n </ng-container>\n </ng-container>\n \n </div>\n</div>\n\n<ng-template #listTemplate let-list=\"list\" let-last=\"last\">\n <div class=\"list-item border-bottom\" (click)=\"openList($event, list)\" [ngClass]=\"{\n hidden: list.content?.length === 0,\n 'bg-dark': selectedList === list,\n 'text-light': selectedList === list,\n 'border-bottom': !last\n }\">\n <span class=\"list-item-main p-2 w-100 d-block edition-font\">\n <evt-icon *ngIf=\"list.icon\" [iconInfo]=\"{icon: list.icon, additionalClasses: 'mr-1'}\"></evt-icon>\n {{list.label | translate}}\n <span class=\"badge badge-pill badge-info ui-font\" *ngIf=\"list.content?.length > 0\">{{ list.content?.length }}</span>\n </span>\n <div class=\"sub-list ml-3 border-left\" *ngIf=\"list.sublists.length > 0\">\n <ng-template ngFor let-sublist let-last [ngForOf]=\"list.sublists\">\n <ng-template [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletContext]=\"{ list: sublist, last: last }\">\n </ng-template>\n </ng-template>\n </div>\n </div>\n</ng-template>","import { Component, Input } from '@angular/core';\nimport { TagsDecl } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-tags-decl',\n templateUrl: './tags-decl.component.html',\n styleUrls: ['./tags-decl.component.scss'],\n})\n@register(TagsDecl)\nexport class TagsDeclComponent {\n @Input() data: TagsDecl;\n}\n","<div class=\"tagsDecl\">\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'rendition', items: data?.rendition, class: 'rendition' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'namespace', items: data?.namespace, class: 'namespace' }\"></ng-container>\n</div>\n\n<ng-template #section let-label=\"label\" let-items=\"items\" let-class=\"class\">\n <evt-header-section *ngIf=\"items?.length > 0\" [label]=\"label\" [additionalClass]=\"class\" [inlineLabel]=\"true\">\n <div content>\n <evt-content-viewer *ngFor=\"let item of items\" [content]=\"item\" ></evt-content-viewer>\n </div>\n </evt-header-section>\n</ng-template>\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\n\nimport { HttpClient } from '@angular/common/http';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { ViewerDataType } from '../../models/evt-models';\nimport { OsdTileSource, ViewerDataInput, ViewerSource } from '../../models/evt-polymorphic-models';\nimport { uuid } from '../../utils/js-utils';\n\ndeclare var OpenSeadragon;\n\ninterface OsdAnnotation {\n id: string;\n element: HTMLElement;\n x: number;\n y: number;\n width: number;\n height: number;\n fontSize?: number;\n text: string;\n modalService?: NgbModal;\n}\n\ninterface OsdAnnotationAPI {\n elements: OsdAnnotation[];\n getElements: () => OsdAnnotation[];\n getElementById: (id: string) => OsdAnnotation;\n addElement: (e: OsdAnnotation) => OsdAnnotation[];\n addElements: (es: OsdAnnotation[]) => OsdAnnotation[];\n removeElementById: (id: string) => void;\n removeElementsById: (ids: string[]) => void;\n goToElementLocation: (id: string) => void;\n}\n\ninterface OsdViewerAPI {\n addHandler: (eventName: string, handler: (x: { page: number }) => void) => void;\n goToPage: (page: number) => void;\n viewport;\n gestureSettingsMouse;\n raiseEvent: (evtName: string) => void;\n}\n/*\nObservable<OsdTileSource[]>\n \"@id\": \"https://www.e-codices.unifr.ch:443/loris/bge/bge-gr0044/bge-gr0044_e001.jp2/full/full/0/default.jpg\",\n \"@type\": \"dctypes:Image\",\n \"format\": \"image/jpeg\",\n \"height\": 7304,\n \"width\": 5472,\n \"service\": {\n \"@context\": \"http://iiif.io/api/image/2/context.json\",\n \"@id\": \"https://www.e-codices.unifr.ch/loris/bge/bge-gr0044/bge-gr0044_e001.jp2\",\n \"profile\": \"http://iiif.io/api/image/2/level2.json\"\n }\n}\n\nTo:\n{\n '@context': 'http://iiif.io/api/image/2/context.json',\n '@id': 'https://www.e-codices.unifr.ch/loris/bge/bge-gr0044/bge-gr0044_e001.jp2',\n 'profile': ['http://iiif.io/api/image/2/level2.json'],\n 'protocol': 'http://iiif.io/api/image',\n 'height': 7304,\n 'width': 5472,\n}\n*/\n\n@Component({\n selector: 'evt-osd',\n templateUrl: './osd.component.html',\n styleUrls: ['./osd.component.scss'],\n})\nexport class OsdComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('osd', { read: ElementRef, static: true }) div: ElementRef;\n\n // tslint:disable-next-line: variable-name\n private _options;\n @Input() set options(v) { // TODO: add interface to better type this object\n if (v !== this._options) {\n this._options = v;\n this.optionsChange.next(this._options);\n }\n }\n get options() { return this._options; }\n optionsChange = new BehaviorSubject({});\n\n private _viewerDataType: string; // tslint:disable-line: variable-name\n public _viewerSource: ViewerDataInput; // tslint:disable-line: variable-name\n @Input() set viewerData(v: ViewerDataType) {\n this._viewerDataType = v.type;\n this._viewerSource = ViewerSource.getSource(v, v.type);\n this.sourceChange.next(this._viewerSource);\n }\n sourceChange = new BehaviorSubject<ViewerDataInput>([]);\n\n // tslint:disable-next-line: variable-name\n private _page: number;\n @Input() set page(v: number) {\n if (v !== this._page) {\n this._page = v;\n this.pageChange.next(this._page);\n }\n }\n\n get page() { return this._page; }\n\n @Output() pageChange = new EventEmitter<number>();\n\n @Input() text: string;\n\n viewer: Partial<OsdViewerAPI>;\n viewerId: string;\n annotationsHandle: OsdAnnotationAPI;\n\n private subscriptions: Subscription[] = [];\n\n tileSources: Observable<OsdTileSource[]>;\n\n constructor(\n private http: HttpClient,\n ) {\n this.subscriptions.push(this.pageChange.pipe(\n distinctUntilChanged(),\n ).subscribe((x) => {\n if (!!this.viewer) {\n this.viewer.goToPage(x - 1);\n }\n }));\n }\n\n ngAfterViewInit() {\n this.viewerId = uuid('openseadragon');\n this.div.nativeElement.id = this.viewerId;\n\n this.tileSources = ViewerSource.getTileSource(this.sourceChange, this._viewerDataType, this.http);\n\n const commonOptions = {\n visibilityRatio: 0.1,\n minZoomLevel: 0.5,\n defaultZoomLevel: 1,\n sequenceMode: true,\n prefixUrl: 'assets/osd/images/',\n id: this.div.nativeElement.id,\n navigatorBackground: '#606060',\n showNavigator: false,\n gestureSettingsMouse: {\n clickToZoom: false,\n dblClickToZoom: true,\n },\n };\n\n this.subscriptions.push(combineLatest([this.optionsChange, this.tileSources])\n .subscribe(([_, tileSources]) => {\n if (!!tileSources) {\n this.viewer = OpenSeadragon({\n ...commonOptions,\n tileSources,\n });\n } else {\n this.viewer = OpenSeadragon({\n ...commonOptions,\n ...this.options,\n });\n }\n\n this.viewer.addHandler('page', ({ page }) => {\n this.pageChange.next(page + 1);\n });\n }));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n}\n","<div\n #osd\n class=\"full-height\" >\n</div>\n","import { Component } from '@angular/core';\nimport { first, tap } from 'rxjs/operators';\nimport { GenericElement } from 'src/app/models/evt-models';\nimport { EVTModelService } from '../../services/evt-model.service';\n\n@Component({\n selector: 'evt-project-info',\n templateUrl: './project-info.component.html',\n styleUrls: ['./project-info.component.scss'],\n})\nexport class ProjectInfoComponent {\n public projectInfo$ = this.evtModelService.projectInfo$.pipe(\n first(),\n tap((info) => this.openSection('fileDesc', info.fileDesc)),\n );\n\n public selectedSection: { key: string; content: GenericElement };\n\n constructor(\n private evtModelService: EVTModelService,\n ) { }\n\n openSection(key: string, content: GenericElement) {\n this.selectedSection = { key, content };\n }\n}\n","<div class=\"project-info-container row h-100 m-0\">\n <div class=\"project-info-tabs bg-light col-3 p-0 h-100 border-right\">\n <ng-container *ngIf=\"projectInfo$ | async as projectInfo\">\n <ng-template [ngTemplateOutlet]=\"sectionTemplate\" [ngTemplateOutletContext]=\"{ key: 'fileDesc', data: projectInfo.fileDesc }\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"sectionTemplate\" [ngTemplateOutletContext]=\"{ key: 'encodingDesc', data: projectInfo.encodingDesc }\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"sectionTemplate\" [ngTemplateOutletContext]=\"{ key: 'profileDesc', data: projectInfo.profileDesc }\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"sectionTemplate\" [ngTemplateOutletContext]=\"{ key: 'revisionDesc', data: projectInfo.revisionDesc }\"></ng-template>\n </ng-container>\n </div>\n <div class=\"project-info-content col-9 p-3 h-100\">\n <evt-content-viewer [content]=\"selectedSection?.content\"></evt-content-viewer> \n </div>\n</div>\n\n<ng-template #sectionTemplate let-key=\"key\" let-data=\"data\">\n <div class=\"section-item border-bottom\" (click)=\"openSection(key, data)\" [ngClass]=\"{\n hidden: !data || data.content?.length === 0,\n 'bg-dark': selectedSection?.key === key,\n 'text-light': selectedSection?.key === key\n }\">\n <span class=\"p-2 w-100 d-block edition-font\">\n {{key | translate}}\n </span>\n </div>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { DynamicAttributesModule, DynamicModule } from 'ng-dynamic-component';\n\nimport { AppTranslationModule } from '../app-translation.module';\nimport { ButtonComponent } from './button/button.component';\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { EscapeDirective } from './directives/escape.directive';\nimport { HeaderSectionComponent } from './header-section/header-section.component';\nimport { IconComponent } from './icon/icon.component';\nimport { ModalComponent } from './modal/modal.component';\nimport { PanelComponent } from './panel/panel.component';\n\n@NgModule({\n declarations: [\n ButtonComponent,\n ClickOutsideDirective,\n EscapeDirective,\n HeaderSectionComponent,\n IconComponent,\n ModalComponent,\n PanelComponent,\n ],\n imports: [\n CommonModule,\n FontAwesomeModule,\n AppTranslationModule,\n DynamicAttributesModule,\n DynamicModule,\n NgbModule,\n NgSelectModule,\n ],\n exports: [\n ButtonComponent,\n ClickOutsideDirective,\n EscapeDirective,\n HeaderSectionComponent,\n IconComponent,\n ModalComponent,\n NgSelectModule,\n PanelComponent,\n ],\n entryComponents: [\n ModalComponent,\n ],\n})\nexport class UiComponentsModule {\n}\n","import { Injectable } from '@angular/core';\nimport { parse } from '.';\nimport { Char, XMLElement } from '../../models/evt-models';\nimport { CharParser, GlyphParser } from './character-declarations-parser';\nimport { createParser } from './parser-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CharacterDeclarationsParserService {\n\n private charParser = createParser(CharParser, parse);\n private glyphParser = createParser(GlyphParser, parse);\n\n parseChars(xml: XMLElement): Char[] {\n if (!xml) { return []; }\n\n return Array.from(xml.querySelectorAll<XMLElement>('char')).map(c => this.charParser.parse(c));\n }\n\n parseGlyphs(xml: XMLElement): Char[] {\n if (!xml) { return []; }\n\n return Array.from(xml.querySelectorAll<XMLElement>('glyph')).map(g => this.glyphParser.parse(g));\n }\n}\n","import { Component, ComponentRef, Input, OnDestroy, ViewChild, ViewContainerRef } from '@angular/core';\n\nimport { AttributesMap } from 'ng-dynamic-component';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { filter, map, shareReplay } from 'rxjs/operators';\nimport { EditionLevelType, TextFlow } from '../../app.config';\nimport { GenericElement } from '../../models/evt-models';\nimport { ComponentRegisterService } from '../../services/component-register.service';\nimport { EntitiesSelectService } from '../../services/entities-select.service';\nimport { EntitiesSelectItem } from '../entities-select/entities-select.component';\nimport { LemsSelectService } from '../../services/lems-select.service';\nimport { LemsSelectItem } from '../lems-select/lems-select.component';\nimport { IperlemsSelectService } from '../../services/iperlems-select.service';\nimport { IperlemsSelectItem } from '../iperlems-select/iperlems-select.component';\n\n@Component({\n selector: 'evt-content-viewer',\n templateUrl: './content-viewer.component.html',\n})\nexport class ContentViewerComponent implements OnDestroy {\n private v: GenericElement;\n @Input() set content(v: GenericElement) {\n this.v = v;\n this.contentChange.next(v);\n }\n get content() { return this.v; }\n\n private ith: EntitiesSelectItem[];\n @Input() set itemsToHighlight(i: EntitiesSelectItem[]) {\n this.ith = i;\n this.itemsToHighlightChange.next(i);\n }\n get itemsToHighlight() { return this.ith; }\n\n private ithlems: LemsSelectItem[];\n @Input() set itemsLemsToHighlight(i: LemsSelectItem[]) {\n this.ithlems = i;\n this.itemsLemsToHighlightChange.next(i);\n }\n get itemsLemsToHighlight() { return this.ithlems; }\n \n private ithiperlems: IperlemsSelectItem[];\n @Input() set itemsIperlemsToHighlight(i: IperlemsSelectItem[]) {\n this.ithiperlems = i;\n this.itemsIperlemsToHighlightChange.next(i);\n }\n\n get itemsIperlemsToHighlight() { return this.ithiperlems; }\n\n contentChange = new BehaviorSubject<GenericElement>(undefined);\n @ViewChild('container', { read: ViewContainerRef }) container: ViewContainerRef;\n itemsToHighlightChange = new BehaviorSubject<EntitiesSelectItem[]>([]);\n itemsLemsToHighlightChange = new BehaviorSubject<LemsSelectItem[]>([]);\n itemsIperlemsToHighlightChange = new BehaviorSubject<IperlemsSelectItem[]>([]);\n\n private edLevel: EditionLevelType;\n @Input() set editionLevel(el: EditionLevelType) {\n this.edLevel = el;\n this.editionLevelChange.next(el);\n }\n get editionLevel() { return this.edLevel; }\n editionLevelChange = new BehaviorSubject<EditionLevelType | ''>('');\n\n private txtFlow: TextFlow;\n @Input() set textFlow(t: TextFlow) {\n this.txtFlow = t;\n this.textFlowChange.next(t);\n }\n get textFlow() { return this.txtFlow; }\n textFlowChange = new BehaviorSubject<TextFlow>(undefined);\n\n constructor(\n private componentRegister: ComponentRegisterService,\n private entitiesSelectService: EntitiesSelectService,\n private lemsSelectService: LemsSelectService,\n private iperlemsSelectService: IperlemsSelectService,\n ) {\n }\n\n // tslint:disable-next-line: no-any\n public parsedContent: Observable<{ [keyName: string]: any }> = this.contentChange.pipe(\n map((data) => ({\n ...data,\n type: this.componentRegister.getComponent(data?.type ?? GenericElement) || this.componentRegister.getComponent(GenericElement),\n })),\n shareReplay(1),\n );\n\n // tslint:disable-next-line: no-any\n public inputs: Observable<{ [keyName: string]: any }> = combineLatest([\n this.contentChange,\n this.itemsToHighlightChange,\n this.itemsLemsToHighlightChange,\n this.itemsIperlemsToHighlightChange,\n this.editionLevelChange,\n this.textFlowChange,\n ]).pipe(\n map(([data, itemsToHighlight, itemsLemsToHighlight, itemsIperlemsToHighlight, editionLevel, textFlow]) => {\n if (this.toBeHighlighted()) {\n return {\n data,\n highlightData: this.getHighlightData(data, itemsToHighlight),\n highlightDataLem: this.getHighlightDataLem(data, itemsLemsToHighlight),\n highlightDataIperlem: this.getHighlightDataIperlem(data, itemsIperlemsToHighlight),\n itemsToHighlight,\n itemsLemsToHighlight,\n itemsIperlemsToHighlight,\n editionLevel,\n textFlow,\n };\n }\n\n return {\n data,\n editionLevel,\n textFlow,\n };\n }),\n shareReplay(1),\n );\n\n // tslint:disable-next-line: ban-types\n public outputs: Observable<{ [keyName: string]: Function }> = this.contentChange.pipe(\n map(() => ({})),\n shareReplay(1),\n );\n public attributes: Observable<AttributesMap> = this.contentChange.pipe(\n filter(parsedContent => !!parsedContent),\n map((parsedContent) => ({ ...parsedContent.attributes || {}, ...{ class: `edition-font ${parsedContent.class || ''}` } })),\n shareReplay(1),\n );\n\n public context$ = combineLatest([\n this.parsedContent,\n this.inputs,\n this.outputs,\n this.attributes,\n ]).pipe(\n map(([parsedContent, inputs, outputs, attributes]) => (\n { parsedContent, inputs, outputs, attributes }\n )),\n );\n\n private componentRef: ComponentRef<{}>;\n\n private toBeHighlighted() {\n return true; // TODO: Decide when an item should be highlighted\n }\n\n private getHighlightData(data, ith: EntitiesSelectItem[]) {\n return {\n highlight: ith?.some(i => this.entitiesSelectService.matchClassAndAttributes(i.value, data?.attributes ?? {}, data?.class)) ?? false,\n highlightColor: this.entitiesSelectService.getHighlightColor(data?.attributes ?? {}, data?.class, ith),\n };\n }\n\n private getHighlightDataLem(data, ithlems: LemsSelectItem[]) {\n return {\n highlight: ithlems?.some(i => this.lemsSelectService.matchClassAndAttributes(i.value, data?.attributes ?? {}, data?.class)) ?? false,\n highlightColor: this.lemsSelectService.getHighlightColor(data?.attributes ?? {}, data?.class, ithlems),\n };\n }\n\n private getHighlightDataIperlem(data, ithiperlems: IperlemsSelectItem[]) {\n return {\n highlight: ithiperlems?.some(i => this.iperlemsSelectService.matchClassAndAttributes(i.value, data?.attributes ?? {}, data?.class)) ?? false,\n highlightColor: this.iperlemsSelectService.getHighlightColor(data?.attributes ?? {}, data?.class, ithiperlems),\n };\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = undefined;\n }\n }\n}\n","<ng-container *ngIf=\"context$ | async as context\">\n <ng-container *ngTemplateOutlet=\"dynamicTemplate;context:context\"></ng-container>\n</ng-container>\n\n<ng-template #dynamicTemplate let-parsedContent=\"parsedContent\" let-inputs=\"inputs\" let-outputs=\"outputs\"\n let-attributes=\"attributes\">\n <ndc-dynamic [ndcDynamicComponent]=\"parsedContent.type\" [ndcDynamicInputs]=\"inputs\" [ndcDynamicOutputs]=\"outputs\"\n [ndcDynamicAttributes]=\"attributes\"></ndc-dynamic>\n</ng-template>","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { CompactType, DisplayGrid, GridsterConfig, GridsterItem, GridType } from 'angular-gridster2';\nimport { map } from 'rxjs/operators';\nimport { Page } from 'src/app/models/evt-models';\nimport { EVTStatusService } from 'src/app/services/evt-status.service';\nimport { EvtIconInfo } from 'src/app/ui-components/icon/icon.component';\n\n@Component({\n selector: 'evt-collation',\n templateUrl: './collation.component.html',\n styleUrls: ['./collation.component.scss'],\n})\nexport class CollationComponent implements OnInit, OnDestroy {\n @ViewChild('collationPanel', { static: true }) collationPanel: ElementRef;\n\n private witnesses: WitnessItem[] = [];\n\n public options: GridsterConfig = {};\n public textPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 0 };\n public collationPanelItem: GridsterItem = { cols: 1, rows: 1, y: 0, x: 1 };\n public collationOptions: GridsterConfig = {};\n\n private subscriptions = [];\n\n public currentPageID$ = this.evtStatusService.currentStatus$.pipe(\n map(({ page }) => page.id),\n );\n\n public get witnessBtn(): { label: string, additionalClasses: string, title: string, icon: EvtIconInfo } {\n return {\n label: this.witnesses.length > 0 ? '' : 'addWitness',\n title: this.witnesses.length > 0 ? 'addWitness' : '',\n additionalClasses: `btn-floating ${this.witnesses.length > 0 ? 'rounded-circle' : ''}`,\n icon: { iconSet: 'fas', icon: 'plus' },\n };\n }\n\n constructor(\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n ngOnInit() {\n this.initGridster();\n }\n\n changePage(selectedPage: Page) {\n this.evtStatusService.updatePage$.next(selectedPage);\n }\n\n getWitnesses() {\n return this.witnesses;\n }\n\n addWitness() {\n const id = (this.witnesses.length + 1).toString(); // TODO: TEMP\n const newWit = {\n label: id,\n itemConfig: { cols: 1, rows: 1, y: 0, x: this.witnesses.length + 1, id },\n };\n\n this.witnesses.push(newWit); // TODO: TEMP\n this.updateGridsterOptions();\n // TODO: Come gestiamo la rotta nel caso di testimoni collazionati?\n }\n\n removeWitness(index) {\n this.witnesses.splice(index, 1);\n this.updateGridsterOptions();\n }\n\n private initGridster() {\n this.options = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n margin: 0,\n maxCols: 2,\n maxRows: 1,\n draggable: {\n enabled: false,\n },\n resizable: {\n enabled: false,\n },\n };\n this.collationOptions = {\n gridType: GridType.Fit,\n displayGrid: DisplayGrid.None,\n compactType: CompactType.CompactLeft,\n scrollToNewItems: true,\n margin: 0,\n maxRows: 1,\n draggable: {\n enabled: true,\n ignoreContent: true,\n dragHandleClass: 'panel-header',\n },\n resizable: {\n enabled: false,\n },\n mobileBreakpoint: 0,\n itemResizeCallback: this.updateFixedColWidth.bind(this),\n itemChangeCallback: this.itemChange.bind(this),\n };\n }\n\n private itemChange() {\n const updatedWitList: string[] = [];\n for (const witItem of this.witnesses) {\n const witIndex = witItem.itemConfig.x;\n updatedWitList[witIndex] = witItem.label;\n }\n // TODO: Use this list to update URL params\n console.log('TODO! Use this list to update URL params', updatedWitList);\n }\n\n private updateGridsterOptions() {\n this.options.maxCols = this.witnesses.length <= 1 ? 2 : 3;\n this.collationPanelItem.cols = this.witnesses.length <= 1 ? 1 : 2;\n\n this.collationOptions.maxCols = this.witnesses.length;\n this.collationOptions.gridType = this.witnesses.length <= 2 ? GridType.Fit : GridType.HorizontalFixed;\n this.changedOptions();\n this.updateFixedColWidth();\n }\n\n private changedOptions() {\n if (this.options.api && this.options.api.optionsChanged) {\n this.options.api.optionsChanged();\n }\n if (this.collationOptions.api && this.collationOptions.api.optionsChanged) {\n this.collationOptions.api.optionsChanged();\n }\n }\n\n private updateFixedColWidth() {\n const collationPanelEl = this.collationPanel.nativeElement as HTMLElement;\n const fixedColWidth = collationPanelEl.clientWidth * 0.416666666667;\n this.collationOptions.fixedColWidth = this.witnesses.length > 2 ? fixedColWidth : undefined;\n this.changedOptions();\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n}\n\ninterface WitnessItem {\n label: string;\n itemConfig: GridsterItem;\n}\n","<gridster [options]=\"options\">\n <gridster-item [item]=\"textPanelItem\">\n <evt-text-panel\n [pageID]=\"currentPageID$ | async\" \n (pageChange)=\"changePage($event)\" \n [hideEditionLevelSelector]=\"true\" \n [editionLevelID]=\"'critical'\"\n ></evt-text-panel>\n </gridster-item>\n <gridster-item [item]=\"collationPanelItem\">\n <div class=\"collationPanel\" #collationPanel\n [class.align-self-center]=\"getWitnesses().length === 0\" \n [class.empty]=\"getWitnesses().length === 0\">\n <gridster [options]=\"collationOptions\" *ngIf=\"getWitnesses().length > 0\">\n <gridster-item [item]=\"witness.itemConfig\" \n *ngFor=\"let witness of getWitnesses(); let i = index\">\n <evt-witness-panel\n (hide)=\"removeWitness(i)\" [witness]=\"witness.label\">\n </evt-witness-panel>\n </gridster-item>\n </gridster>\n <evt-button class=\"btn\" [class.btn-float-right]=\"getWitnesses().length > 0\"\n [additionalClasses]=\"witnessBtn?.additionalClasses\"\n [label]=\"witnessBtn?.label | translate\" [iconLeft]=\"witnessBtn?.icon\" [title]=\"witnessBtn?.title | translate\"\n (btnClick)=\"addWitness()\"></evt-button>\n </div> \n </gridster-item>\n</gridster>","import { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';\nimport { AppConfig } from '../app.config';\nimport { isUrl } from '../utils/js-utils';\nimport { Surface, ViewerDataType, XMLImagesValues } from './evt-models';\n\nexport interface OsdTileSource {\n type?: string;\n '@context'?: string;\n '@id'?: string;\n profile?: [];\n protocol?: string;\n url?: string;\n height: string;\n width: string;\n}\n\nexport type ViewerDataInput = string | XMLImagesValues[];\n\ninterface ViewerSource {\n getDataType(key: string, data?: Surface[]): ViewerDataType;\n getSource(source: ViewerDataType): ViewerDataInput;\n getTileSource(change: BehaviorSubject<ViewerDataInput>, http?: HttpClient): Observable<OsdTileSource[]>;\n}\n\ntype ViewerConstructors<T> = {\n [K in keyof T]: new () => T[K];\n};\n\nclass ViewerController<T extends Record<string, ViewerSource>> {\n private factories: T;\n\n constructor(classes: ViewerConstructors<T>) {\n this.factories = Object.fromEntries(\n Object.entries(classes).map(\n ([key, value]) => ([key, new value()]),\n ),\n ) as T;\n }\n getSource<K extends keyof T>(source: ViewerDataType, type: string | K): ReturnType<T[K]['getSource']> {\n return this.factories[type].getSource(source) as ReturnType<T[K]['getSource']>;\n }\n getTileSource<K extends keyof T>(change: BehaviorSubject<ViewerDataInput>, type: string | K, http?: HttpClient): ReturnType<T[K]['getTileSource']> {\n return this.factories[type].getTileSource(change, http) as ReturnType<T[K]['getTileSource']>;\n }\n getDataType<K extends keyof T>(type: string, data?: Surface[]): ReturnType<T[K]['getDataType']> {\n return this.factories[type].getDataType(type, data) as ReturnType<T[K]['getDataType']>;\n }\n}\n\nclass ManifestSource {\n getDataType(key: string): ViewerDataType {\n return {\n type: key,\n value: {\n manifestURL: AppConfig.evtSettings.files.editionImagesSource[key].value,\n },\n };\n }\n\n getSource(source: ViewerDataType): string {\n return source.value.manifestURL;\n }\n\n getTileSource(change: BehaviorSubject<string>, http: HttpClient): Observable<OsdTileSource[]> {\n return (\n change\n .pipe(\n filter((url) => !!url),\n distinctUntilChanged(),\n switchMap((url) => http.get<{ sequences: Partial<Array<{ canvases }>> }>(url)),\n map((manifest) => manifest // get the resource fields in the manifest json structure\n .sequences.map((seq) => seq.canvases.map((canv) => canv.images).reduce((x, y) => x.concat(y), []))\n .reduce((x, y) => x.concat(y), []).map((res) => res.resource)\n .map(this.buildTileSource),\n ),\n )\n );\n }\n\n buildTileSource(manifestResource) {\n return {\n '@context': manifestResource.service['@context'],\n '@id': manifestResource.service['@id'],\n profile: [manifestResource.service['@profile']],\n protocol: 'http://iiif.io/api/image',\n height: manifestResource.height,\n width: manifestResource.width,\n };\n }\n}\n\nclass XMLSource {\n getDataType(key: string, data: Surface[]): ViewerDataType {\n const localImagesFolder = AppConfig.evtSettings.files.imagesFolderUrl;\n const xmlImages: XMLImagesValues[] = data.map(s =>\n s[AppConfig.evtSettings.files.editionImagesSource[key].value]\n ? {\n url: isUrl(s.corresp) ? s.corresp : localImagesFolder + s.corresp,\n } : {\n width: s[key][0].width,\n height: s[key][0].height,\n url: isUrl(s[key][0].url) ? s[key][0].url : localImagesFolder + s[key][0].url,\n });\n\n return { type: key, value: { xmlImages } };\n }\n\n getSource(source: ViewerDataType): XMLImagesValues[] {\n return source.value.xmlImages;\n }\n\n getTileSource(change: BehaviorSubject<XMLImagesValues[]>): Observable<OsdTileSource[]> {\n return (\n change\n .pipe(\n map((value) => value.map(this.buildTileSource)),\n )\n );\n }\n\n buildTileSource(resource) {\n return {\n type: 'image',\n url: resource.url,\n width: resource.width,\n height: resource.height,\n };\n }\n}\n\nconst ViewerModels = Object.freeze({\n manifest: ManifestSource,\n graphics: XMLSource,\n default: XMLSource,\n\n});\n\nexport const ViewerSource = new ViewerController(ViewerModels);\n","import { Component, Input } from '@angular/core';\nimport { Additional } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-additional',\n templateUrl: './additional.component.html',\n styleUrls: ['./additional.component.scss'],\n})\n\n@register(Additional)\nexport class AdditionalComponent {\n @Input() data: Additional;\n\n}\n","<div class=\"additional\">\n <evt-ms-desc-section [label]=\"'additional'\" [underline]=true></evt-ms-desc-section>\n <div class=\"flex-container\" *ngIf=\"data?.adminInfo?.recordHist\">\n <evt-ms-desc-section [label]=\"'recordHist'\" [inlineLabel]=\"true\" class=\"flex-item-label\"></evt-ms-desc-section>\n <div class=\"flex-item-information\">\n <evt-content-viewer *ngFor=\"let s of data.adminInfo.recordHist?.source\" [content]=\"s\" class=\"projectInfo-block\"></evt-content-viewer>\n <div *ngFor=\"let changes of data.adminInfo.recordHist?.changes\">\n <evt-content-viewer *ngFor=\"let change of changes\" [content]=\"change\"></evt-content-viewer>\n </div>\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.adminInfo.recordHist?.pEl\"></evt-content-viewer> \n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.adminInfo?.custodialHist\">\n <evt-ms-desc-section [label]=\"'custodialHist'\" [inlineLabel]=\"true\" class=\"flex-item-label\"></evt-ms-desc-section>\n <div class=\"flex-item-information\">\n <evt-content-viewer *ngFor=\"let ce of data.adminInfo.custodialHist?.custEvent\" [content]=\"ce\" class=\"projectInfo-block\"></evt-content-viewer>\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.adminInfo.custodialHist?.pEl\"></evt-content-viewer> \n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.adminInfo?.availabilities?.length>0\">\n <evt-ms-desc-section [label]=\"'availability'\" [inlineLabel]=\"true\" class=\"flex-item-label\"></evt-ms-desc-section>\n <div class=\"flex-item-information\">\n <div *ngFor=\"let availabilities of data.adminInfo.availabilities\">\n <evt-content-viewer *ngFor=\"let availability of availabilities\" [content]=\"availability\"></evt-content-viewer>\n </div>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.adminInfo?.noteEl?.length>0\">\n <evt-ms-desc-section [label]=\"'adminInfo'\" [inlineLabel]=\"true\" class=\"flex-item-label\"></evt-ms-desc-section>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"n\" *ngFor=\"let n of data.adminInfo.noteEl\"></evt-content-viewer> \n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.listBibls.length>0\">\n <evt-ms-desc-section [label]=\"'listBibl'\" [inlineLabel]=\"true\" class=\"flex-item-label\"></evt-ms-desc-section>\n <div class=\"flex-item-information\">\n <div *ngFor=\"let listBibls of data.listBibls\">\n <evt-content-viewer *ngFor=\"let listBibl of listBibls\" [content]=\"listBibl\"></evt-content-viewer>\n </div>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.surrogates\">\n <evt-ms-desc-section [label]=\"'surrogates'\" [inlineLabel]=\"true\" class=\"flex-item-label\"></evt-ms-desc-section>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.surrogates?.pEl\"></evt-content-viewer> \n <div *ngFor=\"let bibls of data.surrogates?.bibls\">\n <evt-content-viewer *ngFor=\"let bibl of bibls\" [content]=\"bibl\"></evt-content-viewer>\n </div>\n </div>\n </div>\n</div>\n\n","import { Component, Input } from '@angular/core';\nimport { Resp, RespStmt } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-resp-stmt',\n templateUrl: './resp-stmt.component.html',\n styleUrls: ['./resp-stmt.component.scss'],\n})\n@register(RespStmt)\nexport class RespStmtComponent {\n @Input() data: RespStmt;\n\n openNormalizedResp(resp: Resp) {\n if (resp.normalizedResp) {\n window.open(resp.normalizedResp, '_blank');\n }\n }\n}\n","<div class=\"resp-stmt\">\n <ng-container *ngIf=\"data.responsibility\">\n <span class=\"responsibility\" (click)=\"openNormalizedResp(data.responsibility)\" [class.has-link]=\"data.responsibility.normalizedResp\">\n <ng-container *ngIf=\"data.responsibility.date\">({{data.responsibility.date}}) </ng-container>\n <evt-content-viewer *ngFor=\"let el of data.responsibility.content\" [content]=\"el\"></evt-content-viewer>\n {{ ' ' }}\n </span>\n </ng-container>\n <span *ngFor=\"let subj of data?.people; let i = index\">\n <evt-content-viewer [content]=\"subj\"></evt-content-viewer>\n <ng-container>{{ i < data?.people.length - 1 ? ', ' : '' }}</ng-container>\n </span>\n <evt-content-viewer *ngFor=\"let note of data?.notes\" [content]=\"note\"></evt-content-viewer>\n</div>","import { Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { NamedEntity, Relation } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\n\n@register(Relation)\n@Component({\n selector: 'evt-named-entity-relation',\n templateUrl: './named-entity-relation.component.html',\n styleUrls: ['./named-entity-relation.component.scss'],\n})\nexport class NamedEntityRelationComponent {\n @Input() data: Relation;\n @Input() inEntity: boolean;\n\n selectedEntity: NamedEntity;\n\n activeParts$ = this.getEntities('activeParts');\n mutualParts$ = this.getEntities('mutualParts');\n passiveParts$ = this.getEntities('passiveParts');\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n toggleEntity(entity: NamedEntity) {\n // TODO: if inEntity, then open entity in list\n if (!this.inEntity) {\n if (this.selectedEntity === entity) {\n this.selectedEntity = undefined;\n } else {\n this.selectedEntity = entity;\n }\n }\n }\n\n private getEntities(partIdsGroup: 'activeParts' | 'mutualParts' | 'passiveParts'):\n Observable<Array<{ id: string; entity: NamedEntity; label: string }>> {\n return this.evtModelService.namedEntities$.pipe(\n map(ne => this.data[partIdsGroup].map(entityId => {\n const entity = ne.all.entities.find(e => e.id === entityId);\n\n return {\n id: entityId,\n entity,\n get label() {\n return (entity ? entity.label : entityId);\n },\n };\n })),\n map(nes => nes.filter(e => !!e)),\n );\n }\n}\n","<div class=\"relation pb-2\" [ngClass]=\"{\n 'p-3': !inEntity,\n 'border-bottom': !inEntity\n }\" [evtHtmlAttributes]=\"data?.attributes\">\n <small class=\"relation-type\" *ngIf=\"data.relationType\">{{ data.relationType | lowercase }}</small>\n <div>\n <evt-icon [iconInfo]=\"{icon: 'network-wired', additionalClasses: 'mr-2'}\"></evt-icon>\n <ng-template ngFor let-part let-last=\"last\" [ngForOf]=\"activeParts$ | async\">\n <ng-template [ngTemplateOutlet]=\"relationParticipant\"\n [ngTemplateOutletContext]=\"{ part: part, last: last }\">\n </ng-template>\n </ng-template>\n \n <ng-template ngFor let-part let-last=\"last\" [ngForOf]=\"mutualParts$ | async\">\n <ng-template [ngTemplateOutlet]=\"relationParticipant\"\n [ngTemplateOutletContext]=\"{ part: part, last: last }\">\n </ng-template>\n </ng-template>\n\n {{ data.name | humanize | lowercase }}\n\n <ng-template ngFor let-part let-last=\"last\" [ngForOf]=\"passiveParts$ | async\">\n <ng-template [ngTemplateOutlet]=\"relationParticipant\"\n [ngTemplateOutletContext]=\"{ part: part, last: last }\">\n </ng-template>\n </ng-template>\n\n <evt-named-entity *ngIf=\"selectedEntity\" [data]=\"selectedEntity\" [inList]=\"false\"></evt-named-entity>\n </div>\n <div class=\"relation-description text-secondary\" *ngIf=\"data.description.length > 0\">\n <evt-content-viewer *ngFor=\"let el of data.description\" [content]=\"el\"></evt-content-viewer>\n </div>\n</div>\n<ng-template #relationParticipant let-part=\"part\" let-last=\"last\">\n <span class=\"relation-entity {{ part.entity?.namedEntityType }}\" [class.disabled]=\"!part.entity\"\n (click)=\"toggleEntity(part.entity)\">{{ part.label + (!last ? ', ' : '')}}</span>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { CollationComponent } from './view-modes/collation/collation.component';\nimport { ImageTextComponent } from './view-modes/image-text/image-text.component';\nimport { ReadingTextComponent } from './view-modes/reading-text/reading-text.component';\nimport { TextSourcesComponent } from './view-modes/text-sources/text-sources.component';\nimport { TextTextComponent } from './view-modes/text-text/text-text.component';\nimport { TextVersionsComponent } from './view-modes/text-versions/text-versions.component';\n\nconst appRoutes: Routes = [\n { path: 'imageText', component: ImageTextComponent },\n { path: 'readingText', component: ReadingTextComponent },\n { path: 'textText', component: TextTextComponent },\n { path: 'collation', component: CollationComponent },\n { path: 'textSources', component: TextSourcesComponent },\n { path: 'textVersions', component: TextVersionsComponent },\n];\n@NgModule({\n imports: [RouterModule.forRoot(appRoutes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {\n}\n","import { Component, Input } from '@angular/core';\nimport { Char } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-char',\n templateUrl: './char.component.html',\n styleUrls: ['./char.component.scss'],\n})\n@register(Char)\nexport class CharComponent {\n @Input() data: Char;\n}\n","<div class=\"char\">\n <div class=\"char-name\">{{ data.name }}</div>\n <div class=\"char-mapping\" *ngFor=\"let mapping of data.mappings\">\n <span class=\"char-mapping-label\">{{ mapping.type }} {{ mapping.subtype }}</span>\n <span class=\"char-mapping-value\" [attr.data-type]=\"mapping.type\" [attr.data-subtype]=\"mapping.subtype\">\n <evt-content-viewer *ngFor=\"let element of mapping.content\" [content]=\"element\"></evt-content-viewer>\n </span>\n </div>\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { NamedEntitiesList } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTBtnClickEvent } from '../../ui-components/button/button.component';\n\n@register(NamedEntitiesList)\n@Component({\n selector: 'evt-named-entities-list',\n templateUrl: './named-entities-list.component.html',\n styleUrls: ['./named-entities-list.component.scss'],\n})\nexport class NamedEntitiesListComponent implements OnInit, OnChanges {\n @Input() data: NamedEntitiesList;\n @Output() searchedEntities: EventEmitter<string> = new EventEmitter();\n // tslint:disable-next-line: variable-name\n private _selectedKey: string;\n set selectedKey(k: string) {\n this._selectedKey = k;\n }\n get selectedKey() { return this._selectedKey; }\n public navigationKeys: string[] = [];\n\n public searchOpened = false;\n public querySearch = '';\n public querySearchSubmitted = '';\n public caseSensitiveSearch = false;\n\n ngOnInit() {\n this.initKeys();\n }\n\n ngOnChanges() {\n this.initKeys();\n }\n\n toggleSearch() {\n this.searchOpened = !this.searchOpened;\n this.querySearch = '';\n this.querySearchSubmitted = '';\n this.searchedEntities.emit(this.querySearch);\n }\n\n toggleCaseSensitiveSearch(event: EVTBtnClickEvent) {\n this.caseSensitiveSearch = event.active;\n }\n\n private initKeys() {\n if (!!this.data && !!this.data.content && this.data.content.length > 0) {\n this.navigationKeys = this.data.content\n .filter(el => el.namedEntityType === this.data.namedEntityType)\n .map(el => el.sortKey?.substr(0, 1).toLowerCase())\n .filter((item, i, ar) => item && ar.indexOf(item) === i)\n .sort();\n this.selectedKey = this.navigationKeys[0] || '';\n }\n }\n}\n","<div class=\"card border-0 ne-list\">\n <div class=\"card-header p-0 m-0\" *ngIf=\"data?.content?.length > 0\">\n <form class=\"input-group p-1\" *ngIf=\"searchOpened\">\n <input type=\"input\" name=\"search\" class=\"form-control form-control-sm ne-list-search\"\n [placeholder]=\"'search' | translate\" [(ngModel)]=\"querySearch\" />\n <div class=\"input-group-append\">\n <evt-button [type]=\"'submit'\" [toggler]=\"true\" [active]=\"caseSensitiveSearch\" [label]=\"'aA'\"\n (btnClick)=\"toggleCaseSensitiveSearch($event)\" additionalClasses=\"border\"></evt-button>\n <evt-button [iconLeft]=\"{icon: 'search'}\" [type]=\"'submit'\" [disabled]=\"!querySearch\"\n additionalClasses=\"border\"> </evt-button>\n <evt-button (btnClick)=\"toggleSearch()\" [iconLeft]=\"{icon: 'times'}\" additionalClasses=\"border\">\n </evt-button>\n </div>\n </form>\n <nav *ngIf=\"!searchOpened\">\n <ul class=\"pagination pagination-sm justify-content-center m-0 p-1\">\n <evt-button (btnClick)=\"toggleSearch()\" [iconLeft]=\"{icon: 'search'}\" additionalClasses=\"mr-2\">\n </evt-button>\n <li class=\"page-item\" *ngFor=\"let key of navigationKeys\" [class.active]=\"selectedKey === key\">\n <span class=\"page-link\" (click)=\"selectedKey=key\">{{key}}</span>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"card-body ne-list-body p-0 m-0\">\n <cdk-virtual-scroll-viewport autosize *ngIf=\"data?.content?.length > 0\" >\n <ng-container\n *cdkVirtualFor=\"let entity of data?.content | startsWith:'sortKey':(querySearch ? '' : selectedKey)| filter:'label':querySearch:caseSensitiveSearch; templateCacheSize: 0\">\n <evt-named-entity *ngIf=\"entity\" [inList]=\"true\" [data]=\"entity\"> </evt-named-entity>\n <div class=\"p-3\" *ngIf=\"!entity\"> {{'noMatches' | translate }} </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n <div *ngIf=\"data?.content?.length === 0\" class=\"p-3 ne-list-msg\">\n {{ 'noEntities' | translate }}\n </div>\n </div>\n</div>","import { Component, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\nimport { NamedEntityOccurrence, NamedEntityOccurrenceRef } from '../../../models/evt-models';\nimport { EVTModelService } from '../../../services/evt-model.service';\nimport { EVTStatusService } from '../../../services/evt-status.service';\n\n@Component({\n selector: 'evt-named-entity-occurrence',\n templateUrl: './named-entity-occurrence.component.html',\n styleUrls: ['./named-entity-occurrence.component.scss'],\n})\nexport class NamedEntityOccurrenceComponent {\n @Input() occurrence: NamedEntityOccurrence;\n @Input() entityId: string;\n\n constructor(\n private evtModelService: EVTModelService,\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n goToOccurrenceRef(ref: NamedEntityOccurrenceRef) {\n this.evtModelService.pages$.pipe(take(1)).subscribe(pages => {\n const page = pages.find(p => p.id === this.occurrence.pageId);\n this.evtStatusService.updateDocument$.next(ref.docId);\n this.evtStatusService.updatePage$.next(page);\n this.evtStatusService.currentNamedEntityId$.next(this.entityId);\n });\n }\n}\n","<span class=\"ne-occurrence\" *ngFor=\"let refByDoc of occurrence.refsByDoc\" (click)=\"goToOccurrenceRef(refByDoc)\">\n {{ occurrence.pageLabel }} {{ refByDoc.docLabel ? '(' + refByDoc.docLabel + ')' : '' }}\n <span class=\"badge badge-info badge-light ne-occurrence-count\"\n #popover=\"ngbPopover\" \n [ngbPopover]=\"popContent\" \n [autoClose]=\"'outside'\" \n popoverClass=\"evt-note\"\n container=\"body\" \n [placement]=\"['auto']\">\n {{refByDoc.refs?.length}}\n </span>\n <ng-template #popContent>\n <div *ngFor=\"let ref of refByDoc.refs\">\n <evt-content-viewer [content]=\"ref\"></evt-content-viewer>\n </div>\n </ng-template>\n</span>","import { Component, Input } from '@angular/core';\nimport { PublicationStmt } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-publication-stmt',\n templateUrl: './publication-stmt.component.html',\n styleUrls: ['./publication-stmt.component.scss'],\n})\n@register(PublicationStmt)\nexport class PublicationStmtComponent {\n @Input() data: PublicationStmt;\n\n}\n","<ng-container [ngSwitch]=\"data?.structuredData\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'publisher', items: data?.publisher, class: 'publisher' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'distributor', items: data?.distributor, class: 'distributor' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'authority', items: data?.authority, class: 'authority' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'publicationPlace', items: data?.pubPlace, class: 'pubPlace' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'address', items: data?.address, class: 'address' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'idno', items: data?.idno, class: 'idno' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'availability', items: data?.availability, class: 'availability' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'date', items: data?.date, class: 'date' }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"section; context: { label: 'licence', items: data?.licence, class: 'licence' }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <evt-content-viewer *ngFor=\"let element of data?.content\" [content]=\"element\"></evt-content-viewer>\n </ng-container>\n</ng-container>\n\n<ng-template #section let-label=\"label\" let-items=\"items\" let-class=\"class\">\n <evt-header-section *ngIf=\"items?.length > 0\" [label]=\"label\" [additionalClass]=\"class\" [inlineLabel]=\"true\">\n <div content>\n <evt-content-viewer *ngFor=\"let item of items\" [content]=\"item\"></evt-content-viewer> \n </div>\n </evt-header-section>\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { MsContents } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-ms-contents',\n templateUrl: './ms-contents.component.html',\n styleUrls: ['./ms-contents.component.scss'],\n})\n\n@register(MsContents)\nexport class MsContentsComponent {\n @Input() data: MsContents;\n}\n","<div class=\"msContents\">\n <evt-ms-desc-section [label]=\"'msContents'\" [underline]=true></evt-ms-desc-section>\n <div class=\"flex-container\">\n <ng-container *ngIf=\"data?.summary\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'summary'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"data.summary\"></evt-content-viewer>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data?.textLangs.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'textLang'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <div>\n <span *ngFor=\"let textLangs of data.textLangs; let i = index\">\n <evt-content-viewer *ngFor=\"let textLang of textLangs\" [content]=\"textLang\"></evt-content-viewer>\n <span *ngIf=\"i < [data.textLangs.length-1]\">, </span>\n </span>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data?.msItem.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'items'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n </ng-container>\n </div>\n <ng-container *ngFor=\"let m of data?.msItem\">\n <evt-ms-item [data]=\"m\"></evt-ms-item>\n <evt-ms-item *ngFor=\"let ms of m.msItem\" [data]=\"ms\" [nested1]=\"true\"></evt-ms-item>\n <ng-container *ngFor=\"let ms of m.msItem\">\n <evt-ms-item *ngFor=\"let item of ms.msItem\" [data]=\"item\" [nested2]=\"true\"></evt-ms-item>\n </ng-container>\n </ng-container>\n <div class=\"flex-container\" *ngIf=\"data?.pEl.length>0\">\n <ng-container>\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'summary'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.pEl\"></evt-content-viewer> \n </div>\n </ng-container>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { GridItem, Page } from '../../models/evt-models';\nimport { EVTStatusService } from '../../services/evt-status.service';\n\n@Component({\n selector: 'evt-manuscript-thumbnails',\n templateUrl: './manuscript-thumbnails-viewer.component.html',\n styleUrls: ['./manuscript-thumbnails-viewer.component.scss'],\n})\n\nexport class ManuscriptThumbnailsViewerComponent implements OnInit, OnChanges {\n @Output() clickedItem = new EventEmitter<GridItem>();\n\n @Input() pages: Page[] = [];\n @Input() col = 1;\n @Input() row = 1;\n\n public indexPage = 0;\n private items: GridItem[];\n public grid: GridItem[][][] = [];\n\n public currentItem$ = this.evtStatusService.currentPage$.pipe(\n map(p => this.items.find(i => i.id === p.id)),\n );\n\n constructor(\n private evtStatusService: EVTStatusService,\n ) {\n }\n\n ngOnInit() {\n this._setup();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (Object.keys(changes).some(k => changes[k].currentValue !== changes[k].previousValue)) {\n this._setup();\n }\n }\n\n private _setup() {\n this.items = this.pages.map((page) => ({ url: page.url, name: page.label, id: page.id }));\n this.col = this.isValid(this.col) ? this.col : 1;\n this.row = this.isValid(this.row) ? this.row : 1;\n const gridSize = this.col * this.row;\n this.grid = Array(Math.ceil(this.items.length / gridSize)).fill(1)\n .map((_, i) => this.items.slice(i * gridSize, i * gridSize + gridSize))\n .map((p) => Array(this.row).fill(1).map((_, i) => p.slice(i * this.col, i * this.col + this.col)))\n ;\n }\n\n isValid(value) {\n return !(isNaN(value) || value <= 0);\n }\n\n goToPrevPage() {\n this.indexPage = Math.max(0, this.indexPage - 1);\n }\n\n goToNextPage() {\n this.indexPage = Math.min(this.indexPage + 1, this.grid.length - 1);\n }\n\n goToThumbPage(item) {\n this.evtStatusService.updatePage$.next(this.pages.find(p => p.id === item.id));\n this.clickedItem.emit(item);\n }\n}\n","<div class=\"thumbnails-view\">\n <ng-container *ngTemplateOutlet=\"fullGrid\"></ng-container>\n</div>\n\n<ng-template #fullGrid >\n <ng-container *ngFor=\"let page of grid; let i = index\">\n <div id=\"page_{{i+1}}\" class=\"page\" [ngClass]=\"{'active': indexPage === i }\">\n <div class=\"d-flex row flex-row bd-highlight mb-3\" *ngFor=\"let row of page\">\n <div class=\"p-2 bd-highlight item-content \" *ngFor=\"let item of row\" (click)=\"goToThumbPage(item)\">\n <img class=\"evt-img-page\" src=\"{{item.url}}\" alt=\"page\" [ngClass]=\"{'clicked-item': (currentItem$ | async) === item }\"/>\n <p class=\"item-page-index\"[ngClass]=\"{'clicked-item-par': item.active }\">{{item.name}}</p>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container>\n <div class=\"change-page-container\" [hidden]=\"grid.length <= 1\">\n <evt-button [iconRight]=\"{icon: 'caret-left'}\" (btnClick)=\"goToPrevPage()\"></evt-button>\n <p class=\"current-page\">{{indexPage+1}}/{{grid.length}}</p>\n <evt-button [iconLeft]=\"{icon: 'caret-right'}\" (btnClick)=\"goToNextPage()\"></evt-button>\n </div>\n </ng-container>\n</ng-template>","import { Component, Input } from '@angular/core';\nimport { PhysDesc } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-phys-desc',\n templateUrl: './phys-desc.component.html',\n styleUrls: ['./phys-desc.component.scss'],\n})\n\n@register(PhysDesc)\nexport class PhysDescComponent {\n @Input() data: PhysDesc;\n}\n","<div class=\"phyDesc\">\n <evt-ms-desc-section [label]=\"'phyDesc'\" [underline]=true></evt-ms-desc-section>\n <ng-container *ngIf=\"data?.objectDesc as objectDesc\">\n <div class=\"flex-container\" *ngIf=\"objectDesc.pEl?.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'description'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"parag\" *ngFor=\"let parag of objectDesc.pEl\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"objectDesc.supportDesc?.support || objectDesc.supportDesc?.pEl.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'supportDesc'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"objectDesc.supportDesc.support || objectDesc.supportDesc\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"objectDesc.supportDesc?.condition\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'condition'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"objectDesc.supportDesc.condition\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"objectDesc.supportDesc?.extents.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'extent'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <div *ngFor=\"let extents of objectDesc.supportDesc?.extents\">\n <evt-content-viewer *ngFor=\"let extent of extents\" [content]=\"extent\"></evt-content-viewer>\n </div>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"objectDesc.supportDesc?.foliation\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'foliation'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"objectDesc.supportDesc.foliation\"></evt-content-viewer>\n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"objectDesc.supportDesc?.collation\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'collation'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"objectDesc.supportDesc.collation\"></evt-content-viewer> \n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"objectDesc.layoutDesc\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'layoutDesc'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"objectDesc.layoutDesc\"></evt-content-viewer> \n </div>\n </div>\n </ng-container>\n <div class=\"flex-container\" *ngIf=\"data?.handDesc\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'handDesc'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"data.handDesc\"></evt-content-viewer> \n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.decoDesc\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'decoDesc'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"data.decoDesc\"></evt-content-viewer> \n </div>\n </div>\n <div class=\"flex-container\" *ngIf=\"data?.bindingDesc\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'bindingDesc'\" [inlineLabel]=\"true\"></evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"data.bindingDesc\"></evt-content-viewer> \n </div>\n </div> \n <div class=\"flex-container\" *ngIf=\"data?.pEl.length>0\">\n <div class=\"flex-item-label\">\n <evt-ms-desc-section [label]=\"'description'\" [inlineLabel]=\"true\"> </evt-ms-desc-section>\n </div>\n <div class=\"flex-item-information\">\n <evt-content-viewer [content]=\"par\" *ngFor=\"let par of data.pEl\"></evt-content-viewer> \n </div>\n </div> \n</div>","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { ApparatusEntry, GenericElement, Reading } from '../../../models/evt-models';\nimport { register } from '../../../services/component-register.service';\nimport { EVTModelService } from '../../../services/evt-model.service';\n@Component({\n selector: 'evt-apparatus-entry-detail',\n templateUrl: './apparatus-entry-detail.component.html',\n styleUrls: ['./apparatus-entry-detail.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\n@register(ApparatusEntryDetailComponent)\nexport class ApparatusEntryDetailComponent implements OnInit {\n @Input() data: ApparatusEntry;\n nestedApps: ApparatusEntry[] = [];\n rdgHasCounter = false;\n\n get significantRdg(): Reading[] {\n return this.data.readings.filter((rdg) => rdg.significant);\n }\n\n get notSignificantRdg(): Reading[] {\n return this.data.readings.filter((rdg) => !rdg.significant);\n }\n\n get readings(): Reading[] {\n return [this.data.lemma, ...this.significantRdg, ...this.notSignificantRdg]\n }\n\n get rdgMetadata() {\n return Object.keys(this.data.attributes).filter((key) => key !== 'id')\n .reduce((obj, key) => ({\n ...obj,\n [key]: this.data.attributes[key],\n }), {});\n }\n\n constructor(\n public evtModelService: EVTModelService,\n ) {\n }\n\n ngOnInit() {\n if (this.data.nestedAppsIDs.length > 0) {\n this.recoverNestedApps(this.data);\n }\n }\n\n recoverNestedApps(app: ApparatusEntry) {\n const nesApps = app.lemma.content.filter((c: ApparatusEntry | GenericElement) => c.type === ApparatusEntry);\n nesApps.forEach((nesApp: ApparatusEntry) => {\n this.nestedApps = this.nestedApps.concat(nesApp);\n if (nesApp.nestedAppsIDs.length > 0) {\n this.recoverNestedApps(nesApp);\n }\n });\n }\n\n isAppEntry(item: GenericElement | ApparatusEntry): boolean {\n return item.type === ApparatusEntry;\n }\n \n /* gestire questo FS */\n getNestedAppLemma(appId: string): Reading {\n return this.nestedApps.find((c) => c.id === appId).lemma;\n }\n\n getNestedAppPos(appId: string): number {\n return this.nestedApps.findIndex((nesApp) => nesApp.id === appId);\n }\n}\n","<div class=\"card app-detail-container\">\n <div class=\"card-body app-detail-content\">\n <span>\n <evt-apparatus-entry-readings class=\"app-detail-readings\" [data]=\"data\" [template]=\"nestedAppsReadingsTemplate\" [rdgHasCounter]=\"true\"></evt-apparatus-entry-readings>\n <div *ngIf=\"data.nestedAppsIDs.length > 0\" class=\"app-detail-nested-readings-container\">\n <span *ngFor=\"let nesApp of nestedApps; let i = index\" class=\"app-detail-nested-readings\">\n <sup>{{ i + 1 }} </sup>\n <evt-apparatus-entry-readings [data]=\"nesApp\" [template]=\"nestedAppsReadingsTemplate\" [rdgHasCounter]=\"false\"></evt-apparatus-entry-readings>\n </span>\n </div>\n </span>\n <evt-pinner [item]=\"data\" renderer=\"ApparatusEntryReadings\" pinType=\"ApparatusEntry\"></evt-pinner>\n </div>\n <div class=\"card-footer app-detail-tabs\">\n <ul ngbNav #appEntryTab=\"ngbNav\" class=\"nav-pills\">\n <li ngbNavItem=\"criticalNotes\" *ngIf=\"data.notes.length > 0\">\n <a class=\"app-detail-btn\" ngbNavLink>{{'criticalNotes' | translate}}</a>\n <ng-template ngbNavContent>\n <evt-note *ngFor=\"let note of data.notes\" [data]=\"note\"></evt-note>\n </ng-template>\n </li>\n <li ngbNavItem=\"notSignificantRdg\" *ngIf=\"notSignificantRdg.length > 0\">\n <a class=\"app-detail-btn\" ngbNavLink>{{'ortographicVariants' | translate}}</a>\n <ng-template ngbNavContent>\n <span class=\"d-block\" *ngFor=\"let el of notSignificantRdg\">\n <evt-reading [data]=\"el\"></evt-reading>\n <span *ngFor=\"let witID of el.witIDs\" class=\"font-italic\"> {{ witID }} </span>\n </span>\n </ng-template>\n </li>\n <li ngbNavItem=\"info\">\n <a class=\"app-detail-btn\" ngbNavLink>{{'info' | translate}}</a>\n <ng-template ngbNavContent>\n <div class=\"info-lemma-wrapper\" *ngIf=\"data.lemma\">\n <span>{{'metadataForLemma' | translate}} </span>\n <evt-reading *ngIf=\"data.nestedAppsIDs.length === 0\" class=\"info-rdg\" [data]=\"data.lemma\"></evt-reading>\n <span *ngIf=\"data.nestedAppsIDs.length > 0\" class=\"info-rdg\">\n <ng-container *ngTemplateOutlet=\"nestedAppsReadingsTemplate; context: { rdgHasCounter: rdgHasCounter }\"></ng-container>\n </span>\n <span class=\"d-block ml-2\" *ngFor=\"let metadata of rdgMetadata | keyvalue\">\n <span class=\"info-label\" *ngIf=\"metadata.key !== 'id'\">{{ metadata.key }}:</span> {{ metadata.value }}\n </span>\n <span class=\"d-block ml-2\" *ngIf=\"(rdgMetadata | keyvalue).length === 0\">\n <span class=\"font-italic\">{{'noDataAvailable' | translate}}</span>\n </span>\n </div>\n <div>\n <span class=\"more-info-label\">{{'moreInfoAboutApp' | translate}}</span>\n <ng-container *ngFor=\"let rdg of readings\">\n <div *ngIf=\"(rdg.attributes | keyvalue).length !== 0\" class=\"mb-2\">\n <span>{{'metadataFor' | translate}} </span>\n <ng-container *ngIf=\"rdg.content.length !== 0\">\n <evt-reading *ngIf=\"data.nestedAppsIDs.length === 0\" class=\"info-rdg\" [data]=\"rdg\"></evt-reading>\n <ng-container *ngIf=\"data.nestedAppsIDs.length > 0\">\n <ng-container *ngFor=\"let c of rdg.content\">\n <evt-content-viewer class=\"info-rdg\" *ngIf=\"!isAppEntry(c)\" [content]=\"c\"></evt-content-viewer>\n <evt-reading class=\"info-rdg\" *ngIf=\"isAppEntry(c)\" [data]=\"c.lemma\"></evt-reading>\n </ng-container>\n </ng-container>\n </ng-container>\n <span *ngIf=\"rdg.content.length === 0\" class=\"font-italic info-rdg\">{{'omit' | translate}}</span>\n <span *ngIf=\"rdg.attributes.wit\" class=\"d-block ml-2\">\n <span class=\"info-label\">{{'wit' | translate}}</span> {{rdg.attributes.wit}}\n </span>\n <ng-container *ngFor=\"let metadata of rdgMetadata | keyvalue\">\n <span class=\"d-block ml-2\" *ngIf=\"metadata.key !== 'wit'\">\n <span class=\"info-label\">{{ metadata.key }}:</span> {{ metadata.value }}\n </span>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </li>\n <li ngbNavItem=\"xml\">\n <a class=\"app-detail-btn\" ngbNavLink>{{'xml' | translate}}</a>\n <ng-template ngbNavContent>\n <pre>{{ data.originalEncoding | xmlBeautify }}</pre>\n </ng-template>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"appEntryTab\" class=\"tab-content\"></div>\n </div>\n</div>\n\n<ng-template #nestedAppsReadingsTemplate let-rdgHasCounter=\"rdgHasCounter\">\n <ng-container *ngFor=\"let c of data.lemma.content\">\n <evt-content-viewer *ngIf=\"!isAppEntry(c)\" class=\"{{ data.class }}\" [content]=\"c\"></evt-content-viewer>\n\n <ng-container *ngIf=\"isAppEntry(c)\">\n <!-- Handle reading of nested app with no further nesting -->\n <evt-reading [data]=\"c.lemma\"></evt-reading>\n <sup *ngIf=\"rdgHasCounter\">{{ getNestedAppPos(c.id) + 1 }} </sup>\n\n <!-- Handle reading of nested app with further nesting -->\n <ng-container *ngIf=\"c.nestedAppsIDs.length > 0\">\n <ng-container *ngFor=\"let nesID of c.nestedAppsIDs; let i = index\">\n <evt-reading [data]=\"getNestedAppLemma(nesID)\"></evt-reading>\n <sup *ngIf=\"rdgHasCounter\">{{ getNestedAppPos(nesID) + 1 }}</sup>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-template>","import { Injectable } from '@angular/core';\nimport { parse } from '.';\nimport { XMLElement } from '../../models/evt-models';\n\n@Injectable()\nexport class GenericParserService {\n parse(xml: XMLElement) { return parse(xml); }\n}\n","import { Injectable } from '@angular/core';\nimport Dexie from 'dexie';\n\ninterface AnnotationID {\n annotationId: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class IdbService extends Dexie {\n public db: Dexie.Table<AnnotationID, number>;\n constructor() {\n super('EVT-Annotator');\n this.version(1).stores({\n Annotations: '++id',\n });\n this.db = this.table('Annotations');\n }\n\n getAll() {\n return this.db.toArray();\n }\n\n add(data) {\n return this.db.add(data);\n }\n\n update(id, data) {\n return this.db.update(id, data);\n }\n\n remove(id) {\n return this.db.delete(id);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { map } from 'rxjs/operators';\n\nimport { VersesGroup } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\nimport { EVTModelService } from '../../services/evt-model.service';\nimport { EditionlevelSusceptible, Highlightable } from '../components-mixins';\n\nexport interface VersesGroupComponent extends EditionlevelSusceptible, Highlightable { }\n\n@Component({\n selector: 'evt-verses-group',\n templateUrl: './verses-group.component.html',\n styleUrls: ['./verses-group.component.scss'],\n})\n@register(VersesGroup)\nexport class VersesGroupComponent {\n @Input() data: VersesGroup;\n\n get displayBlock$() {\n return this.evtModelService.lines$.pipe(\n map(lines => lines.length > 0),\n map(hasLines => {\n // In diplomatic and interpretative edition, if the text doesn't have any line, verses group are shown as block items\n // In critical edition verses are always shown as block items\n switch (this.editionLevel) {\n case 'diplomatic':\n case 'interpretative':\n return !hasLines;\n case 'critical':\n return true;\n }\n }),\n );\n }\n\n constructor(\n private evtModelService: EVTModelService,\n ) {\n }\n\n}\n","<span class=\"verses-group {{data.class}} {{data.groupType}}\" [evtHtmlAttributes]=\"data.attributes\" \n\t[class.display-block]=\"displayBlock$ | async\">\n\t<span class=\"verses-group-num\">{{data.n}}</span>\n\t<evt-content-viewer *ngFor=\"let el of data.content\" [content]=\"el\" [editionLevel]=\"editionLevel\" \n\t\t[itemsToHighlight]=\"itemsToHighlight\" [evtHighlight]=\"highlightData\">\n\t</evt-content-viewer>\n</span>\n","import { Component, Input } from '@angular/core';\nimport { NotesStmt } from '../../models/evt-models';\nimport { register } from '../../services/component-register.service';\n\n@Component({\n selector: 'evt-notes-stmt',\n templateUrl: './notes-stmt.component.html',\n styleUrls: ['./notes-stmt.component.scss'],\n})\n@register(NotesStmt)\nexport class NotesStmtComponent {\n @Input() data: NotesStmt;\n\n}\n","<div *ngFor=\"let note of data?.notes\">\n <evt-content-viewer [content]=\"note\"></evt-content-viewer>\n</div>\n\n<evt-header-section *ngIf=\"data?.relatedItems?.length > 0\" [label]=\"'relatedItems'\" [additionalClass]=\"'relatedItems'\" [inlineLabel]=\"false\">\n <div content>\n <div *ngFor=\"let item of data?.relatedItems\">\n <evt-content-viewer [content]=\"item\"></evt-content-viewer>\n </div>\n </div>\n</evt-header-section>","import { Component, Input } from '@angular/core';\nimport { BehaviorSubject, of } from 'rxjs';\nimport { EditionLevel } from '../../app.config';\nimport { Page } from '../../models/evt-models';\nimport { EntitiesSelectItem } from '../entities-select/entities-select.component';\nimport { LemsSelectItem } from '../lems-select/lems-select.component';\nimport { IperlemsSelectItem } from '../iperlems-select/iperlems-select.component';\n\n@Component({\n selector: 'evt-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.scss'],\n})\nexport class PageComponent {\n @Input() itemsToHighlight: EntitiesSelectItem[];\n @Input() itemsLemsToHighlight: LemsSelectItem[];\n @Input() itemsIperlemsToHighlight: IperlemsSelectItem[];\n @Input() editionLevel: EditionLevel;\n @Input() textFlow: boolean;\n\n private d: Page;\n @Input() set data(v: Page) {\n this.d = v;\n this.pageDataChange.next(this.d);\n }\n get data() { return this.d; }\n pageDataChange = new BehaviorSubject<Page>(undefined);\n\n busy = of<boolean>(false); // TODO: manage loading\n}\n","<evt-content-viewer\n *ngFor=\"let element of (pageDataChange | async)?.parsedContent || []\"\n [content]=\"element\" [editionLevel]=\"editionLevel?.id\" [itemsToHighlight]=\"itemsToHighlight\" [itemsLemsToHighlight]=\"itemsLemsToHighlight\" [itemsIperlemsToHighlight]=\"itemsIperlemsToHighlight\" [textFlow]=\"textFlow\">\n</evt-content-viewer>\n<ngx-spinner\n *ngIf=\"busy | async\"\n name=\"pageSpinner\"\n type=\"ball-beat\"\n [fullScreen]=\"false\"\n bdColor=\"rgba(51,51,51,0.3)\"\n size=\"medium\">\n</ngx-spinner>\n","import { Injectable } from '@angular/core';\nimport { ParserRegister } from '.';\nimport { ApparatusEntry, Reading, Witness, XMLElement } from '../../models/evt-models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApparatusEntriesParserService {\n private appEntryTagName = 'app';\n\n public parseAppEntries(document: XMLElement) {\n const appParser = ParserRegister.get('evt-apparatus-entry-parser');\n\n return Array.from(document.querySelectorAll<XMLElement>(this.appEntryTagName))\n .map((appEntry) => appParser.parse(appEntry) as ApparatusEntry);\n }\n\n public getSignificantReadings(apps: ApparatusEntry[]) {\n const signRdgs = {};\n apps.forEach((app) => {\n signRdgs[app.id] = app.readings.concat(app.lemma).filter((rdg: Reading) => rdg.significant);\n });\n\n return signRdgs;\n }\n\n public getSignificantReadingsNumber(signRdgs: { [key: string]: ApparatusEntry[] }) {\n const signRdgsNumber = {};\n Object.keys(signRdgs).forEach((app) => {\n signRdgsNumber[app] = signRdgs[app].length;\n });\n\n return signRdgsNumber;\n }\n\n public getAppVariance(signRdgsNum: { [key: string]: number }, witList: Witness[]) {\n const appsVariance = {};\n if (Object.keys(witList).length > 1) {\n Object.keys(signRdgsNum).forEach((x) => {\n appsVariance[x] = signRdgsNum[x] / Object.keys(witList).length;\n });\n }\n\n return appsVariance;\n }\n}\n","export interface Map<T> {\n [key: string]: T;\n}\n\nexport function flat<T>(a: T[][]): T[] { return a.reduce((x, y) => x.concat(y), []); }\n\nexport function uuid(prefix?: string): string { // TODO: use proper UUID generation\n return !!prefix ? `${prefix}-${Math.random()}` : `${Math.random()}`;\n}\n\nexport function mapToArray<T>(m: Map<T>) {\n return Object.keys(m).map((id) => m[id]);\n}\n\nexport function arrayToMap<T, K extends keyof T>(arr: T[], key: K): Map<T> {\n const map: Map<T> = {};\n arr.forEach((x) => map[x[`${key}`]] = x);\n\n return map;\n}\n\nexport function uniqueObjCharKeys<T>(m: Map<T>) {\n const keys = [];\n Object.keys(m).forEach(key => {\n if (keys.indexOf(key[0].toLowerCase()) < 0) {\n keys.push(key[0].toLowerCase());\n }\n });\n keys.sort();\n\n return keys;\n}\nexport function uniqueArrayCharKeys(a: string[]) {\n const keys = [];\n a.forEach(key => {\n if (keys.indexOf(key[0].toLowerCase()) < 0) {\n keys.push(key[0].toLowerCase());\n }\n });\n keys.sort((strA, strB) => strA.toLowerCase().localeCompare(strB.toLowerCase()));\n\n return keys;\n}\n\n/**\n * Performs a deep merge of objects and returns new object. Does not modify\n * objects (immutable) and merges arrays via concatenation.\n *\n * @param objects - Objects to merge\n * @returns New object with merged key/values\n */\nexport function mergeDeep<T>(...objects: T[]) { // TODO: never used, remove?\n const isObject = (obj: T) => obj && typeof obj === 'object';\n const cb = (prev: T, obj: T) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = [...pVal, ...oVal].filter((element, index, array) => array.indexOf(element) === index);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n\n return prev;\n };\n\n return objects.reduce(cb, {});\n}\n\nexport function getEventKeyCode(event) {\n let code: number | string;\n\n if (event.key !== undefined) {\n code = event.key;\n } else if (event.keyIdentifier !== undefined) {\n code = event.keyIdentifier;\n } else if (event.keyCode !== undefined) {\n code = event.keyCode;\n }\n\n return code;\n}\n\nexport function normalizeUrl(url) {\n return url && url.indexOf('http') < 0 ? 'http://' + url : url;\n}\n\nexport function isBoolString(s: string) {\n return s === 'true';\n}\n\nexport function snakeToCamelCased(str) {\n return str.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n}\n\nexport function isUrl(path: string) {\n return /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/.test(path);\n }\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}