main-es5.js.map 1.0 MB

1
  1. {"version":3,"sources":["webpack:///src/app/components/sampling-decl/sampling-decl.component.html","webpack:///src/app/components/sampling-decl/sampling-decl.component.ts","webpack:///src/app/components/lemmatized-entity/lemmatized-entity-occurrence/lemmatized-entity-occurrence.component.ts","webpack:///src/app/components/lemmatized-entity/lemmatized-entity-occurrence/lemmatized-entity-occurrence.component.html","webpack:///src/app/components/project-desc/project-desc.component.html","webpack:///src/app/components/project-desc/project-desc.component.ts","webpack:///src/app/directives/html-attributes.directive.ts","webpack:///src/app/components/named-entity-ref/named-entity-ref.component.html","webpack:///src/app/components/named-entity-ref/named-entity-ref.component.ts","webpack:///src/app/components/text/text.component.html","webpack:///src/app/components/text/text.component.ts","webpack:///src/app/components/editorial-decl/editorial-decl.component.html","webpack:///src/app/components/editorial-decl/editorial-decl.component.ts","webpack:///src/app/services/xml-parsers/named-entity-parsers.ts","webpack:///src/app/services/xml-parsers/witnesses-parser.service.ts","webpack:///src/app/evt-info/evt-info.component.ts","webpack:///src/app/evt-info/evt-info.component.html","webpack:///src/app/models/evt-models.ts","webpack:///src/app/nav-bar/nav-bar.component.ts","webpack:///src/app/nav-bar/nav-bar.component.html","webpack:///src/app/ui-components/modal/modal.service.ts","webpack:///src/app/components/ms-frag/ms-frag.component.html","webpack:///src/app/components/ms-frag/ms-frag.component.ts","webpack:///src/app/components/history/history.component.html","webpack:///src/app/components/history/history.component.ts","webpack:///src/app/main-header/main-header.component.ts","webpack:///src/app/main-header/main-header.component.html","webpack:///src/app/view-modes/text-sources/text-sources.component.ts","webpack:///src/app/view-modes/text-sources/text-sources.component.html","webpack:///src/app/pipes/starts-with.pipe.ts","webpack:///src/app/services/xml-parsers/character-declarations-parser.ts","webpack:///src/app/services/evt-status.service.ts","webpack:///src/app/components/original-encoding-viewer/original-encoding-viewer.component.ts","webpack:///src/app/components/original-encoding-viewer/original-encoding-viewer.component.html","webpack:///src/app/components/lb/lb.component.html","webpack:///src/app/components/lb/lb.component.ts","webpack:///src/app/components/word/word.component.html","webpack:///src/app/components/word/word.component.ts","webpack:///src/app/services/xml-parsers/xml-parsers.ts","webpack:///src/app/services/xml-parsers/ms-desc-parser.service.ts","webpack:///src/app/services/xml-parsers/structure-xml-parser.service.ts","webpack:///src/app/components/addition/addition.component.html","webpack:///src/app/components/addition/addition.component.ts","webpack:///src/app/panels/witness-panel/witness-panel.component.ts","webpack:///src/app/panels/witness-panel/witness-panel.component.html","webpack:///src/app/main-menu/main-menu.component.ts","webpack:///src/app/main-menu/main-menu.component.html","webpack:///src/app/components/specific-lists/specific-lists.component.ts","webpack:///src/app/components/specific-lists/specific-lists.component.html","webpack:///src/app/components/series-stmt/series-stmt.component.html","webpack:///src/app/components/series-stmt/series-stmt.component.ts","webpack:///src/environments/environment.ts","webpack:///src/app/pipes/filter.pipe.ts","webpack:///src/app/components/namespace/namespace.component.html","webpack:///src/app/components/namespace/namespace.component.ts","webpack:///src/app/view-modes/reading-text/reading-text.component.ts","webpack:///src/app/view-modes/reading-text/reading-text.component.html","webpack:///src/app/panels/text-panel/text-panel.component.ts","webpack:///src/app/panels/text-panel/text-panel.component.html","webpack:///src/app/ui-components/directives/escape.directive.ts","webpack:///src/app/directives/highlight.directive.ts","webpack:///src/app/services/xml-parsers/msdesc-parser.ts","webpack:///src/app/panels/version-panel/version-panel.component.ts","webpack:///src/app/panels/version-panel/version-panel.component.html","webpack:///src/app/view-modes/text-text/text-text.component.ts","webpack:///src/app/view-modes/text-text/text-text.component.html","webpack:///src/app/components/lem-entry/lem-entry-detail/lem-entry-detail.component.html","webpack:///src/app/components/lem-entry/lem-entry-detail/lem-entry-detail.component.ts","webpack:///src/app/components/surplus/surplus.component.html","webpack:///src/app/components/surplus/surplus.component.ts","webpack:///src/app/services/xml-parsers/prefatory-matter-parser.service.ts","webpack:///src/app/components/g/g.component.html","webpack:///src/app/components/g/g.component.ts","webpack:///src/app/components/note/note.component.html","webpack:///src/app/components/note/note.component.ts","webpack:///src/app/directives/editorial-convention-layout.directive.ts","webpack:///src/app/components/identifier/identifier.component.html","webpack:///src/app/components/identifier/identifier.component.ts","webpack:///src/app/components/choice/choice.component.html","webpack:///src/app/components/choice/choice.component.ts","webpack:///src/app/utils/dom-utils.ts","webpack:///src/app/components/title-stmt/title-stmt.component.html","webpack:///src/app/components/title-stmt/title-stmt.component.ts","webpack:///src/app/components/page-selector/page-selector.component.ts","webpack:///src/app/components/page-selector/page-selector.component.html","webpack:///src/app/services/xml-parsers/header-parser.ts","webpack:///src/app/components/ms-part/ms-part.component.html","webpack:///src/app/components/ms-part/ms-part.component.ts","webpack:///src/app/components/paragraph/paragraph.component.html","webpack:///src/app/components/paragraph/paragraph.component.ts","webpack:///src/app/components/gap/gap.component.ts","webpack:///src/app/components/gap/gap.component.html","webpack:///src/app/ui-components/panel/panel.component.ts","webpack:///src/app/ui-components/panel/panel.component.html","webpack:///src/app/services/annotator/annotator.service.ts","webpack:///src/app/services/editorial-conventions.service.ts","webpack:///src/app/components/ms-identifier/ms-identifier.component.html","webpack:///src/app/components/ms-identifier/ms-identifier.component.ts","webpack:///src/app/components/extent/extent.component.html","webpack:///src/app/components/extent/extent.component.ts","webpack:///src/app/view-modes/text-versions/text-versions.component.ts","webpack:///src/app/view-modes/text-versions/text-versions.component.html","webpack:///src/app/components/named-entity/named-entity-detail/named-entity-detail.component.html","webpack:///src/app/components/named-entity/named-entity-detail/named-entity-detail.component.ts","webpack:///src/app/utils/xml-utils.ts","webpack:///src/app/services/entities-select.service.ts","webpack:///src/app/services/iperlems-select.service.ts","webpack:///src/app/components/lemmatized-entity/lemmatized-entity-detail/lemmatized-entity-detail.component.html","webpack:///src/app/components/lemmatized-entity/lemmatized-entity-detail/lemmatized-entity-detail.component.ts","webpack:///src/app/ui-components/icon/icon.component.ts","webpack:///src/app/ui-components/icon/icon.component.html","webpack:///src/app/services/xml-parsers/named-entities-parser.service.ts","webpack:///src/app/components/encoding-desc/encoding-desc.component.html","webpack:///src/app/components/encoding-desc/encoding-desc.component.ts","webpack:///src/app/services/xml-parsers/choice-parser.ts","webpack:///src/app/services/xml-parsers/lines-verses-parser.service.ts","webpack:///src/app/view-modes/image-text/image-text.component.ts","webpack:///src/app/view-modes/image-text/image-text.component.html","webpack:///src/app/components/edition-level-selector/edition-level-selector.component.ts","webpack:///src/app/components/edition-level-selector/edition-level-selector.component.html","webpack:///src/app/components/lems-select/lems-select.component.ts","webpack:///src/app/components/lems-select/lems-select.component.html","webpack:///src/app/ui-components/modal/modal.component.ts","webpack:///src/app/ui-components/modal/modal.component.html","webpack:///src/app/components/reading/reading.component.html","webpack:///src/app/components/reading/reading.component.ts","webpack:///src/app/components/generic-element/generic-element.component.html","webpack:///src/app/components/generic-element/generic-element.component.ts","webpack:///src/app/directives/annotator.directive.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/services/xml-parsers/index.ts","webpack:///src/app/pipes/xml-beautify.pipe.ts","webpack:///src/app/ui-components/button/button.component.ts","webpack:///src/app/ui-components/button/button.component.html","webpack:///src/app/panels/image-panel/image-panel.component.ts","webpack:///src/app/panels/image-panel/image-panel.component.html","webpack:///src/app/panels/pinboard-panel/pinboard-panel.component.ts","webpack:///src/app/panels/pinboard-panel/pinboard-panel.component.html","webpack:///src/app/pinboard/pinboard.component.ts","webpack:///src/app/pinboard/pinboard.component.html","webpack:///src/app/pipes/humanize.pipe.ts","webpack:///src/app/ui-components/ms-desc-section/ms-desc-section.component.ts","webpack:///src/app/ui-components/ms-desc-section/ms-desc-section.component.html","webpack:///src/app/services/xml-parsers/facsimile-parser.service.ts","webpack:///src/app/app-translation.module.ts","webpack:///src/app/components/lem-entry/lem-entry-readings/lem-entry-readings.component.html","webpack:///src/app/components/lem-entry/lem-entry-readings/lem-entry-readings.component.ts","webpack:///src/app/components/iperlems-select/iperlems-select.component.ts","webpack:///src/app/components/iperlems-select/iperlems-select.component.html","webpack:///src/app/components/lemmatized-entity-relation/lemmatized-entity-relation.component.html","webpack:///src/app/components/lemmatized-entity-relation/lemmatized-entity-relation.component.ts","webpack:///src/app/services/xml-parsers/parser-models.ts","webpack:///src/app/services/lems-select.service.ts","webpack:///src/app/app.module.ts","webpack:///src/app/panels/sources-panel/sources-panel.component.ts","webpack:///src/app/panels/sources-panel/sources-panel.component.html","webpack:///src/app/services/xml-parsers/lemmatized-entity-parsers.ts","webpack:///src/app/components/edition-stmt/edition-stmt.component.html","webpack:///src/app/components/edition-stmt/edition-stmt.component.ts","webpack:///src/app/components/ms-desc/ms-desc.component.html","webpack:///src/app/components/ms-desc/ms-desc.component.ts","webpack:///src/app/components/lemmatized-entity-ref/lemmatized-entity-ref.component.html","webpack:///src/app/components/lemmatized-entity-ref/lemmatized-entity-ref.component.ts","webpack:///src/app/app.config.ts","webpack:///src/app/components/lemmatized-entities-list/lemmatized-entities-list.component.html","webpack:///src/app/components/lemmatized-entities-list/lemmatized-entities-list.component.ts","webpack:///src/app/services/xml-parsers/lemmatized-entities-parser.service.ts","webpack:///src/app/services/xml-parsers/basic-parsers.ts","webpack:///src/app/services/component-register.service.ts","webpack:///src/app/components/apparatus-entry/apparatus-entry.component.html","webpack:///src/app/components/apparatus-entry/apparatus-entry.component.ts","webpack:///src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.html","webpack:///src/app/components/apparatus-entry/apparatus-entry-readings/apparatus-entry-readings.component.ts","webpack:///src/app/components/supplied/supplied.component.html","webpack:///src/app/components/supplied/supplied.component.ts","webpack:///src/app/components/sic/sic.component.html","webpack:///src/app/components/sic/sic.component.ts","webpack:///src/app/pinboard/pinboard.service.ts","webpack:///src/app/services/edition-data.service.ts","webpack:///src/app/components/file-desc/file-desc.component.html","webpack:///src/app/components/file-desc/file-desc.component.ts","webpack:///src/app/components/entities-select/entities-select.component.ts","webpack:///src/app/components/entities-select/entities-select.component.html","webpack:///src/app/ui-components/directives/click-outside.directive.ts","webpack:///src/app/services/evt-model.service.ts","webpack:///src/app/components/lem-entry/lem-entry.component.html","webpack:///src/app/components/lem-entry/lem-entry.component.ts","webpack:///src/app/ui-components/header-section/header-section.component.ts","webpack:///src/app/ui-components/header-section/header-section.component.html","webpack:///src/app/pinboard/pinner/pinner.component.ts","webpack:///src/app/pinboard/pinner/pinner.component.html","webpack:///src/app/shortcuts/shortcuts.service.ts","webpack:///src/app/services/xml-parsers/app-parser.ts","webpack:///src/app/components/named-entity/named-entity.component.html","webpack:///src/app/components/named-entity/named-entity.component.ts","webpack:///src/app/components/rendition/rendition.component.html","webpack:///src/app/components/rendition/rendition.component.ts","webpack:///src/app/shortcuts/shortcuts.component.ts","webpack:///src/app/shortcuts/shortcuts.component.html","webpack:///src/app/components/deletion/deletion.component.html","webpack:///src/app/components/deletion/deletion.component.ts","webpack:///src/app/components/damage/damage.component.html","webpack:///src/app/components/damage/damage.component.ts","webpack:///src/app/components/lemmatized-entity/lemmatized-entity.component.ts","webpack:///src/app/components/lemmatized-entity/lemmatized-entity.component.html","webpack:///src/app/services/xml-parsers/editorial-parsers.ts","webpack:///src/app/components/verse/verse.component.html","webpack:///src/app/components/verse/verse.component.ts","webpack:///src/app/services/themes.service.ts","webpack:///src/app/components/ms-item/ms-item.component.html","webpack:///src/app/components/ms-item/ms-item.component.ts","webpack:///src/app/components/ms-desc-selector/ms-desc-selector.component.ts","webpack:///src/app/components/components-mixins.ts","webpack:///src/app/services/xml-parsers/facsimile-parser.ts","webpack:///src/app/components/global-lists/global-lists.component.ts","webpack:///src/app/components/global-lists/global-lists.component.html","webpack:///src/app/components/tags-decl/tags-decl.component.html","webpack:///src/app/components/tags-decl/tags-decl.component.ts","webpack:///src/app/components/osd/osd.component.ts","webpack:///src/app/components/osd/osd.component.html","webpack:///src/app/components/project-info/project-info.component.ts","webpack:///src/app/components/project-info/project-info.component.html","webpack:///src/app/ui-components/ui-components.module.ts","webpack:///src/app/services/xml-parsers/character-declarations-parser.service.ts","webpack:///src/app/components/content-viewer/content-viewer.component.ts","webpack:///src/app/components/content-viewer/content-viewer.component.html","webpack:///src/app/view-modes/collation/collation.component.ts","webpack:///src/app/view-modes/collation/collation.component.html","webpack:///src/app/models/evt-polymorphic-models.ts","webpack:///src/app/components/additional/additional.component.html","webpack:///src/app/components/additional/additional.component.ts","webpack:///src/app/components/resp-stmt/resp-stmt.component.html","webpack:///src/app/components/resp-stmt/resp-stmt.component.ts","webpack:///src/app/components/named-entity-relation/named-entity-relation.component.html","webpack:///src/app/components/named-entity-relation/named-entity-relation.component.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/components/char/char.component.html","webpack:///src/app/components/char/char.component.ts","webpack:///src/app/components/named-entities-list/named-entities-list.component.html","webpack:///src/app/components/named-entities-list/named-entities-list.component.ts","webpack:///src/app/components/named-entity/named-entity-occurrence/named-entity-occurrence.component.ts","webpack:///src/app/components/named-entity/named-entity-occurrence/named-entity-occurrence.component.html","webpack:///src/app/components/publication-stmt/publication-stmt.component.html","webpack:///src/app/components/publication-stmt/publication-stmt.component.ts","webpack:///src/app/components/ms-contents/ms-contents.component.html","webpack:///src/app/components/ms-contents/ms-contents.component.ts","webpack:///src/app/components/manuscript-thumbnails-viewer/manuscript-thumbnails-viewer.component.ts","webpack:///src/app/components/manuscript-thumbnails-viewer/manuscript-thumbnails-viewer.component.html","webpack:///src/app/components/phys-desc/phys-desc.component.html","webpack:///src/app/components/phys-desc/phys-desc.component.ts","webpack:///src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.html","webpack:///src/app/components/apparatus-entry/apparatus-entry-detail/apparatus-entry-detail.component.ts","webpack:///src/app/services/xml-parsers/generic-parser.service.ts","webpack:///src/app/services/idb.service.ts","webpack:///src/app/components/verses-group/verses-group.component.html","webpack:///src/app/components/verses-group/verses-group.component.ts","webpack:///src/app/components/notes-stmt/notes-stmt.component.html","webpack:///src/app/components/notes-stmt/notes-stmt.component.ts","webpack:///src/app/components/page/page.component.ts","webpack:///src/app/components/page/page.component.html","webpack:///src/app/services/xml-parsers/apparatus-entries-parser.service.ts","webpack:///src/app/utils/js-utils.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["SamplingDeclComponent","selector","templateUrl","styleUrls","data","LemmatizedEntityOccurrenceComponent","evtModelService","evtStatusService","ref","pages$","pipe","subscribe","pages","page","find","p","id","occurrence","pageId","updateDocument$","next","docId","updatePage$","currentLemmatizedEntityId$","entityLemId","ProjectDescComponent","HtmlAttributesDirective","el","renderer","Object","keys","attributes","forEach","key","setAttribute","nativeElement","NamedEntityRefComponent","entitiesSelectService","availableEntities$","namedEntities$","ne","all","entities","length","entity$","e","entityId","highlighted$","selectedItems$","items","some","i","matchClassAndAttributes","value","opened","event","stopPropagation","toggleEntityData","TextComponent","EditorialDeclComponent","namedEntitiesListsTagNamesMap","persons","places","organizations","events","occurrences","getListType","tagName","replace","toLowerCase","getListsToParseTagNames","neListsConfig","evtSettings","edition","namedEntitiesLists","map","enabled","undefined","filter","NamedEntitiesListParser","attributeParser","genericParse","xml","parsedList","type","getAttribute","label","namedEntityType","content","sublists","originalEncoding","relations","description","parse","relationParse","RelationParser","childNodes","child","nodeType","textContent","push","querySelectorAll","r","indexOf","subListParser","get","parsedSubList","concat","NamedEntityRefParser","elementParser","neTypeMap","placename","geogname","persname","orgname","getEntityID","entityType","path","EntityParser","attributeParsers","elId","entity","sortKey","getEntityType","Array","from","children","subchild","parseEntityInfo","PersonParser","getLabel","nameElement","querySelector","forenameElement","surnameElement","persNameElement","occupationElement","PersonGroupParser","role","trim","PlaceParser","placeNameElement","settlementElement","EventParser","textLabel","eventLabelElement","OrganizationParser","EntityInfoParser","entityInfoParser","textParser","descriptionEls","name","active","mutual","passive","relation","activeParts","split","mutualParts","passiveParts","relationType","parentListEl","parentElement","elemName","WitnessesParserService","genericParserService","witListTagName","witTagName","witNameAttr","groupTagName","document","lists","witnesses","parseWitnessesList","groups","parseWitnessesGroups","list","parseWitnesses","reduce","x","y","wit","parseWitness","parseWitnessName","parseWitnessContent","groupId","parseParentGroupId","witNameEl","nodeName","parsedGroups","parseWitnessGroup","parseGroupName","parseGroupWitnesses","groupEl","element","parentEl","matches","providedIn","EvtInfoComponent","GenericElement","NamedEntitiesList","NamedEntity","LemmatizedEntitiesList","LemmatizedEntity","LemmatizedEntityInfo","LemmatizedEntityRef","NamedEntityInfo","Relation","NamedEntityRef","ApparatusEntry","LemEntry","Reading","Text","Note","Paragraph","Lb","Surface","Zone","ZoneLine","ZoneHotSpot","Graphic","Char","G","Choice","Verse","VersesGroup","Supplied","Damage","Surplus","Gap","Addition","Sic","Word","Deletion","MsFrag","MsPart","MsDesc","Identifier","AltIdentifier","MsIdentifier","MsContents","PhysDesc","History","Head","Institution","Repository","MsName","CollectionEl","MsItemStruct","MsItem","Summary","Acquisition","Origin","OrigDate","OrigPlace","Provenance","ObjectDesc","LayoutDesc","Layout","SupportDesc","Condition","Collation","Foliation","Support","BindingDesc","Binding","DecoDesc","Additions","HandDesc","ScriptDesc","Seal","SealDesc","TypeDesc","TypeNote","MusicNotation","AccMat","Additional","AdminInfo","CustodialHist","CustEvent","RecordHist","Source","Surrogates","Rubric","FinalRubric","Incipit","Explicit","Locus","LocusGrp","DecoNote","Filiation","Dimensions","Height","Width","Depth","Dim","FileDesc","TitleStmt","RespStmt","Resp","EditionStmt","PublicationStmt","SeriesStmt","NotesStmt","SourceDesc","Extent","EncodingDesc","ProjectDesc","SamplingDecl","Correction","Normalization","Punctuation","Quotation","Hyphenation","Segmentation","StdVals","Interpretation","EditorialDecl","Rendition","TagUsage","Namespace","TagsDecl","RefsDecl","RefState","CRefPattern","Abstract","Calendar","CalendarDesc","CorrespAction","CorrespContext","CorrespDesc","Creation","Language","LangUsage","CatRef","ClassCode","Term","Keywords","TextClass","HandNote","HandNotes","Ptr","Transpose","ListTranspose","Channel","Constitution","Derivation","Domain","Factuality","Interaction","Preparedness","Purpose","TextDesc","ParticDesc","Setting","SettingDesc","ProfileDesc","Change","ListChange","RevisionDesc","ProjectInfo","NavBarComponent","cdref","currentPageInfo$","currentPage$","prevNavigationDisabled$","findIndex","nextNavigationDisabled$","thViewerSettings$","col","row","thumbnailsButton","ui","thumbnailsPanelOpened$","viscollButton","viscollPanelOpened$","navigationDisabled$","thumbnailsPanelOpened","viscollPanelOpened","pageSliderOptions$","navigationDisabled","floor","ceil","showSelectionBar","translate","disabled","calculateThumbsPerPage","pageIndex","thContainer","thumbnailsContainer","thMaxHeight","parseInt","window","getComputedStyle","documentElement","getPropertyValue","thMaxWidth","Math","clientWidth","clientHeight","detectChanges","goToFirstPage","goToPrevPage","goToNextPage","goToLastPage","ModalService","ngbModal","openedModals","componentToOpen","options","keyboard","modalRef","open","close","MsFragComponent","HistoryComponent","MainHeaderComponent","themes","title$","editionTitle","configTitle","viewModes","availableViewModes","currentViewMode$","mainMenuOpened","editionConfig","subscriptions","viewMode","updateViewMode$","clickEvent","itemClicked","_index","item","editionHome","subscription","unsubscribe","customLogo","files","logoUrl","openEditionHome","toggleMainMenu","TextSourcesComponent","textPanelItem","cols","rows","sourcesPanelItem","currentPageID$","currentStatus$","currentEditionLevel$","editionLevels","initGridster","selectedPage","editionLevel","updateEditionLevels$","gridType","Fit","displayGrid","None","margin","maxCols","maxRows","draggable","ignoreContent","dragHandleClass","resizable","changePage","changeEditionLevel","StartsWithPipe","field","it","CharParser","getName","entityName","getEntityName","mappings","getMappings","localProps","getLocalProps","graphics","graphicsParser","charNameEl","localPropName","subtype","graphicParser","GlyphParser","GParser","charId","EVTStatusService","router","route","availableEditionLevels","updateWitnesses$","updateVersions$","asObservable","currentDocument$","queryParams","params","d","currentEditionLevels$","defaultEditionLevelId","currentWitnesses$","ws","currentVersions$","vs","JSON","stringify","versions","slice","currentUrl$","currentStatus","getUrlFromStatus","currentNamedEntityId$","view","navigate","currentViewMode","getValue","pathMatch","url","match","vm","defaultViewMode","status","join","defaultConfig","defaultEdition","OriginalEncodingViewerComponent","outerHTML","encodingType","LbComponent","lines$","lines","hasLines","n","textFlow","WordComponent","lbIndex","wordContent","splice","toggleLemData","ParsersDecl","declarations","_","XMLParsers","MsDescParserService","msDescParser","s","StructureXmlParserService","frontOrigContentAttr","frontTagName","pageTagName","bodyTagName","front","body","pbs","frontPbs","bodyPbs","doc","firstElementChild","ownerDocument","pb","idx","arr","parseDocumentPage","frontPages","isMarkedAsOrigContent","parseSinglePage","bodyPages","nextPb","ancestorTagName","nextNode","reverse","lastChild","originalContent","c","includes","facs","parsedContent","parsePageContent","getPageUrl","facsUrl","firstChild","image","imagesFolderUrl","pageContent","node","origEl","getEditionOrigNode","hasOriginalContent","namespaceURI","xpathRes","evaluate","XPathResult","ANY_TYPE","iterateNext","AdditionComponent","place","defaultsKey","_getDefaultLayoutsKeys","WitnessPanelComponent","hide","emit","emitHide","witness","MainMenuComponent","modalService","dynamicItems","uiConfig","fileConfig","isOpened","availableLangs","availableLanguages","l","loadUiConfig","initDynamicItems","iconInfo","icon","additionalClasses","enabled$","callback","openGlobalDialogInfo","showLists","openGlobalDialogLists","animation","modalComp","componentInstance","fixedHeight","wider","modalId","title","bodyContentClass","headerIcon","iconSet","bodyComponent","languageSelected","use","code","theme","selectTheme","getAvailableThemes","getCurrentTheme","closeMenu","openShortCuts","openEVTInfo","SpecificListsComponent","lists$","lemmatizedEntities$","lemmas","lemlists","lemlist","listsIcons","lemmatizedEntityType","selectedList","openLemList","relations$","showRelations","lem","org","SeriesStmtComponent","environment","production","FilterPipe","caseSensitive","reg","RegExp","results","NamespaceComponent","ReadingTextComponent","layoutOptions","apparatusesOpened","apparatusesItem","pinnedBoardOpened","pinnedBoardItem","updateGridsterConfig","api","optionsChanged","changedOptions","compactType","CompactLeft","toggleApparatuses","togglePinnedBoard","TextPanelComponent","evtStatus","currentPageId$","pageChange","currentEdLevel$","currentEdLevelId$","editionLevelChange","currentPage","a","b","itemsToHighlight$","itemsLemsToHighlight$","itemsIperlemsToHighlight$","secondaryContent","showSecondaryContent","defaultTextFlow","enableProseVersesToggler","proseVersesToggler","isMultiplePageFlow$","updatingPageFromScroll","editionLevelID","_scrollToPage","newContent","mainContent","mainContentEl","pbCount","pbVisible","pbId","docViewTop","scrollTop","docViewBottom","pbElem","pbRect","getBoundingClientRect","top","currentPageId","pageEl","scrollIntoView","updatePage","toggleSecondaryContent","hideEditionLevelSelector","pageID","EscapeDirective","escape","keyEvent","HighlightDirective","highlightData","highlight","classList","add","remove","style","backgroundColor","highlightColor","hd","GAttrParser","gParser","DimParser","genericElem","dimType","scope","extent","unit","quantity","atLeast","atMost","min","max","gEl","DepthParser","WidthParser","HeightParser","DimensionsParser","dimensionsType","height","width","depth","dim","AcquisitionParser","notBefore","notAfter","OrigDateParser","when","origDateType","OrigPlaceParser","origPlaceType","OriginParser","evidence","resp","origDate","origPlace","ProvenanceParser","HistoryParser","acquisition","origin","provenance","summary","pEl","LayoutParser","columns","streams","ruledLines","writtenLines","LayoutDescParser","ab","layout","SupportParser","material","watermark","CollationParser","ConditionParser","FoliationParser","SupportDescParser","extents","support","collation","foliation","condition","ObjectDescParser","form","layoutDesc","supportDesc","DecoNoteParser","decoNoteType","BindingParser","contemporary","decoNote","BindingDescParser","binding","SummaryParser","DecoDescParser","HandDescParser","hands","handNote","AdditionsParser","ScriptDescParser","scriptNote","SealParser","sealType","SealDescParser","seal","TypeNoteParser","TypeDescParser","typeNote","AccMatParser","MusicNotationParser","term","PhysDescParser","objectDesc","bindingDesc","decoDesc","handDesc","accMat","additions","musicNotation","scriptDesc","sealDesc","typeDesc","FinalRubricParser","lbEl","LocusParser","scheme","to","target","locus","hi","LocusGrpParser","IncipitParser","lang","defective","ExplicitParser","RubricParser","rend","stamp","FiliationParser","filiationType","MsItemStructParser","authors","titles","textLangs","bibl","respStmt","quote","listBibl","colophons","rubric","incipit","explicit","finalRubric","filiation","noteEl","MsItemParser","docAuthors","docTitles","docImprints","docDate","locusGrp","gapEl","msItem","CustEventParser","custEventType","CustodialHistParser","custEvent","SourceParser","RecordHistParser","changes","source","AdminInfoParser","availabilities","custodialHist","recordHist","SurrogatesParser","bibls","AdditionalParser","listBibls","adminInfo","surrogates","RepositoryParser","MsContentsParser","msItemStruct","CollectionParser","collectionType","IdentifierParser","collection","repository","idnos","regions","settlements","countries","AltIdentifierParser","MsNameParser","rs","InstitutionParser","country","region","MsIdentifierParser","institution","altIdentifier","msName","HeadParser","rendition","MsFragParser","additional","history","msContents","msIdentifier","physDesc","MsPartParser","msParts","head","MsDescParser","msDescCounter","firstIdnoValue","msDesc","msFrags","getFirstIdnoValue","ms","text","VersionPanelComponent","version","TextTextComponent","textPanel1Item","textPanel2Item","editionLevelPanel1Change$","editionLevelPanel2Change$","lastPanelChanged$","editionLevelChange$","edLvl1","edLvl2","changedPanel","edLvl","LemEntryDetailComponent","nestedLems","rdgHasCounter","nestedLemsIDs","recoverNestedLems","nesLems","lemma","nesLem","lemId","readings","rdg","significant","significantRdg","notSignificantRdg","obj","changeDetection","OnPush","SurplusComponent","PrefatoryMatterParserService","editionDataService","parsedEditionSource$","parseEditionTitle","projectInfo$","parseProjectInfo","titleElems","fileDesc","encodingDesc","profileDesc","revisionDesc","GComponent","specialChars$","specialChars","char","diplomaticMapping$","specialChar","mapping","m","normalizedMapping$","NoteComponent","pinnerStyle","popover","EditorialConventionLayoutDirective","editorialConventionsService","_setLayout","isFirstChange","previousValue","currentValue","layouts","getLayouts","_cleanPreviousLayout","editionLayout","pre","preEl","createElement","innerHTML","prepend","post","postEl","appendChild","setStyle","_oldStyle","defaultLayouts","IdentifierComponent","listClass","ChoiceComponent","normalizedContent","totIdsGenerated","isNestedInElem","parentTagName","isNodeNestedInElem","isDirectlyNestedInElem","directCheck","parentNode","matchingAttr","attr","xpath","stringValue","sames","call","countIndex","balanceXHTML","XHTMLstring","lastIndexOf","substring","tags","stack","tagToOpen","tag","search","openTag","pop","endTag","startTag","shift","getElementsBetweenTreeNode","start","end","range","createRange","setStart","setEnd","commonAncestorChild","commonAncestorContainer","startIdx","endIdx","rangeNodes","fragment","cloneContents","nodes","getOuterHTML","getCommonAncestor","node1","node2","method","test","createNsResolver","prefix","TitleStmtComponent","PageSelectorComponent","selectedPage$","selectionChange","_pageID","RespParser","normalizedResp","date","RespStmtParser","namedEntityRefParser","people","responsibility","notes","TitleStmtParser","subtitles","editors","sponsors","funders","principals","respStmts","EditionStmtParser","structuredData","PublicationStmtParser","publisher","distributor","authority","pubPlace","address","idno","availability","licence","SeriesStmtParser","editor","biblScope","NotesStmtParser","noteLayout","relatedItems","SourceDescParser","msDescs","biblFull","biblStruct","recordingStmt","scriptStmt","ExtentParser","FileDescParser","excludeFromParsing","cloneNode","toString","titleStmt","editionStmt","publicationStmt","sourceDesc","notesStmt","seriesStmt","ProjectDescParser","SamplingDeclParser","CorrectionParser","NormalizationParser","sources","PunctuationParser","marks","placement","QuotationParser","HyphenationParser","eol","SegmentationParser","StdValsParser","InterpretationParser","EditorialDeclParser","correction","hyphenation","interpretation","normalization","punctuation","quotation","segmentation","stdVals","RenditionParser","schemeVersion","TagUsageParser","gi","occurs","withId","NamespaceParser","tagUsage","TagsDeclParser","namespace","CRefPatternParser","matchPattern","replacementPattern","RefStateParser","ed","delim","RefsDeclParser","cRefPatternParser","refStateParser","cRefPattern","refState","EncodingDescParser","projectDesc","samplingDecl","editorialDecl","tagsDecl","styleDefDecl","refsDecl","classDecl","geoDecl","unitDecl","schemaSpec","schemaRef","AbstractParser","CalendarParser","CalendarDescParser","calendars","CorrespActionParser","actionType","CorrespContextParser","CorrespDescParser","CreationParser","LanguageParser","ident","usage","LangUsageParser","languages","ClassCodeParser","CatRefParser","KeywordsParser","terms","TextClassParser","keywords","catRef","classCode","HandNoteParser","scribe","scribeRef","script","scriptRef","medium","HandNotesParser","TransposeParser","ListTransposeParser","transposes","ChannelParser","mode","ConstitutionParser","constitutionType","DerivationParser","derivationType","DomainParser","domainType","FactualityParser","factualityType","InteractionParser","interactionType","PreparednessParser","preparednessType","PurposeParser","purposeType","degree","ChangeParser","who","targets","t","TextDescParser","channel","constitution","derivation","domain","factuality","interaction","preparedness","purpose","ParticDescParser","participants","SettingParser","names","orgNames","persNames","placeNames","time","locale","activity","SettingDescParser","settings","ListChangeParser","ordered","ProfileDescParser","calendarDesc","correspDesc","creation","handNotes","langUsage","listTranspose","particDesc","settingDesc","textClass","textDesc","RevisionDescParser","MsPartComponent","ParagraphComponent","GapComponent","translateService","repeat","reason","translations","desc","missing","missingP","missingS","PanelComponent","scrollContent","comparable","secondary","closable","hideHeader","hideFooter","preventDefault","onScroll","AnnotatorService","textSelection$","getSelection","EditorialConventionsService","addition","diplomatic","additionAbove","interpretative","additionBelow","additionInline","additionLeft","additionRight","damage","deletion","sicCrux","critical","surplus","defaultKeys","externalLayouts","_getExternalConfigs","every","k","customs","editorialConventions","markup","MsIdentifierComponent","ExtentComponent","TextVersionsComponent","versionsPanelItem","versionsOptions","initPageAndVersions","newVersion","itemConfig","updateGridsterOptions","index","ignoreContentClass","scrollToNewItems","mobileBreakpoint","itemResizeCallback","updateFixedColWidth","bind","itemChangeCallback","itemChange","updatedVerList","verItem","verIndex","console","log","HorizontalFixed","versionsPanelEl","versionsPanel","fixedColWidth","addVersion","NamedEntityDetailComponent","iconData","actors","birth","bloc","death","rotate","district","geogFeat","geoname","note","occupation","residence","settlement","sex","defaultIcon","parseXml","xmlStr","DOMParser","parseFromString","ActiveXObject","xmlDoc","async","loadXML","Error","replaceMultispaces","replaceNewLines","replaceNotWordChar","removeSpaces","EntitiesSelectService","updateSelection$","valueForCheck","attributesToCheck","classToCheck","v","matchClass","matchAttributes","classForCheck","getClassNameFromValue","attributesForCheck","getAttributesFromValue","classNameToCheck","selectedItems","entitiesSelectItems","g","multiValues","bestMatch","score","color","IperlemsSelectService","updateIperlemsSelection$","selectedIperlemsItems$","selectedIperlemsItems","iperlemsSelectItems","LemmatizedEntityDetailComponent","link","linkLem","lemmaRef","IconComponent","NamedEntitiesParserService","tagNamesMap","listsToParse","listParser","getNamedEntitiesOccurrencesInPage","parseNamedEntityOccurrence","refsByDoc","docRefs","refs","docLabel","pageLabel","closest","EncodingDescComponent","ChoiceParser","choiceComponent","editorialInterventionType","getEditorialInterventionType","getOriginalContent","getNormalizedContent","sicCorEls","origRegEls","LinesVersesParserService","parseLine","line","verse","ImageTextComponent","imagePanelItem","imageViewer$","surfaces$","surface","getImageViewerType","editionImagesSource","editionImages","getDataType","xmlImages","EditionLevelSelectorComponent","selectedEditionLevel$","edLevels","edLevelID","_edLevelID","LemsSelectComponent","lemsTypes","lemsSelectItems","group","iconColor","selectedLemTypes","isArray","ModalComponent","closeOnShadow","closeOnEsc","modal","modalDialog","internalClick","o","className","closeDialog","handleEscape","scrollDisabled","footerComponent","bodyHTML","footerHTML","dataTheme","clickout","ReadingComponent","GenericElementComponent","AnnotatorDirective","annotator","selectedText","onMouseup","AppComponent","spinner","shortcutsService","hasNavBar","enableNavBar","navbarOpened$","initNavBarOpened","navbarTogglerIcon$","show","dispatchEvent","Event","handleKeyboardEvent","mainSpinner","ParserRegister","parserType","PARSER_MAP","mapName","nes","nels","crit","neslem","nelslem","xmlParser","set","parser","XmlBeautifyPipe","ButtonComponent","cdRef","btnClick","iconLeft","iconRight","toggler","clickButton","transparent","inverted","additionalStyle","ImagePanelComponent","currentMsDescId$","currentMsDesc$","msDesc$","currentId","msDescOpen","viewerPage","isOpen","msDescId","_pageNumber","setMsDescID","setMsDescOpen","viewerData","PinboardPanelComponent","pinboard","selectedPinTypes","pinboardTypes$","getItems","types","pinType","PinboardComponent","initPins","toggleItem","itemsPinned$","HumanizePipe","MsDescSectionComponent","additionalClass","inlineLabel","nestedElement","underline","FacsimileParserService","zoneParser","surfaceParser","z","HttpLoaderFactory","http","AppTranslationModule","forRoot","loader","provide","useFactory","deps","imports","exports","LemEntryReadingsComponent","groups$","witID","groupWits","template","IperlemsSelectComponent","iperlemsTypes","selectedIperlemTypes","LemmatizedEntityRelationComponent","activeParts$","getEntities","mutualParts$","passiveParts$","inEntity","selectedEntity","partIdsGroup","lementities","createParser","getID","getClass","parseChildren","parseFn","excludeEmptyText","complexElements","getDefaultN","getDefaultAttr","unhandledElement","interestingNodes","LemsSelectService","updateLemsSelection$","selectedLemsItems$","selectedLemsItems","routes","initializeApp","appConfig","load","AppModule","library","addIconPacks","multi","useHash","relativeLinkResolution","providers","bootstrap","entryComponents","SourcesPanelComponent","lemmatizedEntitiesListsTagNamesMap","getLemListType","getLemListsToParseTagNames","neLemListsConfig","lemmatizedEntitiesLists","LemmatizedEntitiesListParser","parsedLemList","LemmatizedEntityRefParser","neLemTypeMap","w","getLemEntityID","entityLemType","ItemParser","itemElement","wElement","lemElement","EditionStmtComponent","MsDescComponent","LemmatizedEntityRefComponent","lemsSelectService","availableLemEntities$","toggleLemEntityData","AppConfig","uiConfigUrl","fileConfigUrl","editionConfigUrl","editorialConventionsConfigUrl","Promise","resolve","defaultLocalization","firstAvailableLang","evtConfig","LemmatizedEntitiesListComponent","searchedEntities","navigationKeys","searchOpened","querySearch","querySearchSubmitted","caseSensitiveSearch","initKeys","substr","ar","sort","selectedKey","_selectedKey","LemmatizedEntitiesParserService","tagLemNamesMap","lemListsToParse","lemListParser","getLemmatizedEntitiesOccurrencesInPage","parseLemmatizedEntityOccurrence","EmptyParser","AttrParser","AttributeParser","queryAndParseElements","queryAndParseElement","allAnnidationLevels","parseElement","GenericElemParser","GenericParser","genericElemParser","AttributeMapParser","TextParser","ParagraphParser","paragraphComponent","LBParser","NoteParser","isFooterNote","isNamedEntityNote","noteType","noteElement","exponent","PtrParser","noteParser","noteId","rootNode","cRef","ptrType","VerseParser","lineComponent","VersesGroupParser","lgComponent","groupType","SuppliedParser","DamageParser","agent","GapParser","AdditionParser","WordParser","DeletionParser","TermParser","COMPONENT_MAP","register","dataType","cls","ComponentRegisterService","ApparatusEntryComponent","parentDetailComponent","nestedApps","variance$","appVariance$","variances","isInsideAppDetail","ApparatusEntryReadingsComponent","SuppliedComponent","SicComponent","sicType","PinboardService","items$","additionalData","itemId","pinDate","Date","itemsArray","EditionDataService","editionUrls","loadAndParseEditionData","editionUrl","responseType","editionData","loadXIinclude","handleLoadingError","baseUrlPath","location","href","parametro2","parametro3","parametro","filesToInclude","xiIncludeLoadsSubs","fileData","includedDoc","fileXpointer","includedTextElem","getElementsByTagName","divEl","replaceChild","errorEl","FileDescComponent","EntitiesSelectComponent","entitiesTypes","selectedTypes","ClickOutsideDirective","elementRef","clickOutside","clickedInside","contains","onClick","EVTModelService","editionStructureParser","namedEntitiesParser","prefatoryMatterParser","witnessesParser","apparatusParser","facsimileParser","characterDeclarationsParser","linesVersesParser","lemmatizedEntitiesParser","editionSource$","parsePages","parsedLists$","parseLists","persons$","getResultsByType","places$","organizations$","events$","verses$","parseVerses","parseLines","entitiesOccurrences$","parseNamedEntitiesOccurrences","lemsOccurrences$","parseLemmatizedEntitiesOccurrences","witnessesData$","parseWitnessesData","witnesses$","appEntries$","parseAppEntries","significantReadings$","appEntries","getSignificantReadings","significantReadingsNumber$","signRdgs","getSignificantReadingsNumber","witList","signRdgsNum","getAppVariance","parseSurfaces","hsLines$","surfaces","zones","hotspots$","hotspots","characters$","parseChars","glyphs$","parseGlyphs","chars","glyphs","parseMsDesc","parsedLemLists$","parseLemLists","item$","lemmas$","entitiesLemOccurrences$","LemEntryComponent","isInsideLemDetail","HeaderSectionComponent","PinnerComponent","isItemPinned","btnEvent","togglePin","ShortcutsService","eKeyCode","altKey","shiftKey","ctrlKey","metaKey","RdgParser","readingGroupTagName","witIDs","parseReadingWitnesses","parseAppReadingContent","isReadingSignificant","notSignificantReadings","notSignificantVariants","isSignificant","notSignificantReading","AppParser","noteTagName","appEntryTagName","readingTagName","lemmaTagName","rdgParser","appEntry","parseLemma","parseReadings","parseAppNotes","nestedAppsIDs","getNestedAppsIDs","app","nesApps","NamedEntityComponent","occurrences$","occ","rel","contentOpened","inList","entityDetails","RenditionComponent","descKey","translation","ShortcutsComponent","shortcuts","initShortcuts","instructions","DeletionComponent","DamageComponent","LemmatizedEntityComponent","lemDetails","SurplusParser","SicParser","VerseComponent","verseNumberPrinter","num","isNaN","ThemesService","currentTheme","MsItemComponent","nested1","nested2","MsDescSelectorComponent","msDescID","_msDescID","ngSelectComponent","Highlightable","highlightDataLem","highlightDataIperlem","itemsToHighlight","itemsLemsToHighlight","itemsIperlemsToHighlight","EditionlevelSusceptible","TextFlowSusceptible","ZoneParser","coords","points","stringPoint","ul","parseFloat","ulx","uly","lr","lrx","lry","ur","ll","corresp","GraphicParser","SurfaceParser","GlobalListsComponent","openList","person","TagsDeclComponent","OsdComponent","optionsChange","sourceChange","viewer","goToPage","viewerId","div","tileSources","getTileSource","_viewerDataType","commonOptions","visibilityRatio","minZoomLevel","defaultZoomLevel","sequenceMode","prefixUrl","navigatorBackground","showNavigator","gestureSettingsMouse","clickToZoom","dblClickToZoom","OpenSeadragon","addHandler","_options","_viewerSource","getSource","_page","read","ProjectInfoComponent","info","openSection","selectedSection","UiComponentsModule","CharacterDeclarationsParserService","charParser","glyphParser","ContentViewerComponent","componentRegister","iperlemsSelectService","contentChange","itemsToHighlightChange","itemsLemsToHighlightChange","itemsIperlemsToHighlightChange","textFlowChange","getComponent","inputs","toBeHighlighted","getHighlightData","getHighlightDataLem","getHighlightDataIperlem","outputs","context$","ith","getHighlightColor","ithlems","ithiperlems","componentRef","destroy","edLevel","txtFlow","container","CollationComponent","collationPanelItem","collationOptions","newWit","updatedWitList","witItem","witIndex","collationPanelEl","collationPanel","addWitness","ViewerController","classes","factories","fromEntries","entries","change","ManifestSource","manifestURL","manifest","sequences","seq","canvases","canv","images","res","resource","buildTileSource","manifestResource","service","profile","protocol","XMLSource","localImagesFolder","ViewerModels","freeze","ViewerSource","AdditionalComponent","RespStmtComponent","NamedEntityRelationComponent","appRoutes","component","AppRoutingModule","CharComponent","NamedEntitiesListComponent","NamedEntityOccurrenceComponent","PublicationStmtComponent","MsContentsComponent","ManuscriptThumbnailsViewerComponent","clickedItem","indexPage","grid","currentItem$","_setup","isValid","gridSize","fill","PhysDescComponent","ApparatusEntryDetailComponent","recoverNestedApps","nesApp","appId","GenericParserService","IdbService","stores","Annotations","db","table","toArray","update","VersesGroupComponent","NotesStmtComponent","PageComponent","pageDataChange","busy","ApparatusEntriesParserService","appParser","apps","signRdgsNumber","appsVariance","flat","uuid","random","mapToArray","arrayToMap","uniqueObjCharKeys","uniqueArrayCharKeys","strA","strB","localeCompare","mergeDeep","isObject","cb","prev","pVal","oVal","array","objects","getEventKeyCode","keyIdentifier","keyCode","normalizeUrl","isBoolString","snakeToCamelCased","str","toUpperCase","isUrl","bootstrapModule","err","error","webpackEmptyAsyncContext","req","then","module"],"mappings":"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AAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAA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;;;QAAoB7C,c;;UAKpB8C,U;;;;;;;;;;;;QAAmB9C,c;;UAInB+C,M;;;;;;;;;;;;QAAe/C,c;;UAMfgD,Y;;;;;;;;;;;;QAAqBhD,c;;UAIrBiD,Y;;;;;;;;;;;;QAAqBjD,c;;UAqBrBkD,M;;;;;;;;;;;;QAAeD,Y;;UAUfE,O;;;;;;;;;;;;QAAgBnD,c;;UAIhBoD,W;;;;;;;;;;;;QAAoBpD,c;;UAMpBqD,M;;;;;;;;;;;;QAAerD,c;;UASfsD,Q;;;;;;;;;;;;QAAiBtD,c;;UAOjBuD,S;;;;;;;;;;;;QAAkBvD,c;;UAKlBwD,U;;;;;;;;;;;;QAAmBxD,c;;UAInByD,U;;;;;;;;;;;;QAAmBzD,c;;UAOnB0D,U;;;;;;;;;;;;QAAmB1D,c;;UAOnB2D,M;;;;;;;;;;;;QAAe3D,c;;UAUf4D,W;;;;;;;;;;;;QAAoB5D,c;;UAWpB6D,S;;;;;;;;;;;;QAAkB7D,c;;UAIlB8D,S;;;;;;;;;;;;QAAkB9D,c;;UAIlB+D,S;;;;;;;;;;;;QAAkB/D,c;;UAKlBgE,O;;;;;;;;;;;;QAAgBhE,c;;UAKhBiE,W;;;;;;;;;;;;QAAoBjE,c;;UAOpBkE,O;;;;;;;;;;;;QAAgBlE,c;;UAQhBmE,Q;;;;;;;;;;;;QAAiBnE,c;;UAOjBoE,S;;;;;;;;;;;;QAAkBpE,c;;UAIlBqE,Q;;;;;;;;;;;;QAAiBrE,c;;UAKjBsE,U;;;;;;;;;;;;QAAmBtE,c;;UAKnBuE,I;;;;;;;;;;;;QAAavE,c;;UASbwE,Q;;;;;;;;;;;;QAAiBxE,c;;UAIjByE,Q;;;;;;;;;;;;QAAiBzE,c;;UAKjB0E,Q;;;;;;;;;;;;QAAiB1E,c;;UAKjB2E,a;;;;;;;;;;;;QAAsB3E,c;;UAItB4E,M;;;;;;;;;;;;QAAe5E,c;;UAIf6E,U;;;;;;;;;;;;QAAmB7E,c;;UAMnB8E,S;;;;;;;;;;;;QAAkB9E,c;;UAOlB+E,a;;;;;;;;;;;;QAAsB/E,c;;UAMtBgF,S;;;;;;;;;;;;QAAkBhF,c;;UASlBiF,U;;;;;;;;;;;;QAAmBjF,c;;UAOnBkF,M;;;;;;;;;;;;QAAelF,c;;UAIfmF,U;;;;;;;;;;;;QAAmBnF,c;;UAKnBoF,M;;;;;;;;;;;;QAAepF,c;;UAQfqF,W;;;;;;;;;;;;QAAoBrF,c;;UAIpBsF,O;;;;;;;;;;;;QAAgBtF,c;;UAOhBuF,Q;;;;;;;;;;;;QAAiBvF,c;;UAMjBwF,K;;;;;;;;;;;;QAAcxF,c;;UAWdyF,Q;;;;;;;;;;;;QAAiBzF,c;;UAKjB0F,Q;;;;;;;;;;;;QAAiB1F,c;;UAKjB2F,S;;;;;;;;;;;;QAAkB3F,c;;UAIlB4F,U;;;;;;;;;;;;QAAmB5F,c;;UAgBnB6F,M;;;;;;;;;;;;QAAe7F,c;;UAYf8F,K;;;;;;;;;;;;QAAc9F,c;;UAYd+F,K;;;;;;;;;;;;QAAc/F,c;;UAYdgG,G;;;;;;;;;;;;QAAYhG,c;;UAaZiG,Q;;;;;;;;;;;;QAAiBjG,c;;UAUjBkG,S;;;;;;;;;;;;QAAkBlG,c;;UAWlBmG,Q;;;;;;;;;;;;QAAiBnG,c;;UAMjBoG,I;;;;;;;;;;;;QAAapG,c;;UAKbqG,W;;;;;;;;;;;;QAAoBrG,c;;UAMpBsG,e;;;;;;;;;;;;QAAwBtG,c;;UAaxBuG,U;;;;;;;;;;;;QAAmBvG,c;;UASnBwG,S;;;;;;;;;;;;QAAkBxG,c;;UAKlByG,U;;;;;;;;;;;;QAAmBzG,c;;UAUnB0G,M;;;;;;;;;;;;QAAe1G,c;;UAEf2G,Y;;;;;;;;;;;;QAAqB3G,c;;UAerB4G,W;;;;;;;;;;;;QAAoB5G,c;;UAIpB6G,Y;;;;;;;;;;;;QAAqB7G,c;;UAMrB8G,U;;;;;;;;;;;;QAAmBF,W;;UAMnBG,a;;;;;;;;;;;;QAAsBH,W;;UAOtBI,W;;;;;;;;;;;;QAAoBJ,W;;UAMpBK,S;;;;;;;;;;;;QAAkBL,W;;UAKlBM,W;;;;;;;;;;;;QAAoBN,W;;UAIpBO,Y;;;;;;;;;;;;QAAqBnH,c;;UAIrBoH,O;;;;;;;;;;;;QAAgBpH,c;;UAIhBqH,c;;;;;;;;;;;;QAAuBrH,c;;UAIvBsH,a;;;;;;;;;;;;QAAsBtH,c;;UActBuH,S;;;;;;;;;;;;QAAkBvH,c;;UAQlBwH,Q;;;;;;;;;;;;QAAiBxH,c;;UAMjByH,S;;;;;;;;;;;;QAAkBzH,c;;UAKlB0H,Q;;;;;;;;;;;;QAAiB1H,c;;UAKjB2H,Q;;;;;;;;;;;;QAAiB3H,c;;UAMjB4H,Q;;;;;;;;;;;;QAAiB5H,c;;UAOjB6H,W;;;;;;;;;;;;QAAoB7H,c;;UAKpB8H,Q;;;;;;;;;;;;QAAiB9H,c;;UAKjB+H,Q;;;;;;;;;;;;QAAiB/H,c;;UAKjBgI,Y;;;;;;;;;;;;QAAqBhI,c;;UAKrBiI,a;;;;;;;;;;;;QAAsBjI,c;;UAItBkI,c;;;;;;;;;;;;QAAuBlI,c;;UAEvBmI,W;;;;;;;;;;;;QAAoBnI,c;;UAIpBoI,Q;;;;;;;;;;;;QAAiBpI,c;;UAEjBqI,Q;;;;;;;;;;;;QAAiBrI,c;;UAKjBsI,S;;;;;;;;;;;;QAAkBtI,c;;UAKlBuI,M;;;;;;;;;;;;QAAevI,c;;UAKfwI,S;;;;;;;;;;;;QAAkBxI,c;;UAIlByI,I;;;;;;;;;;;;QAAazI,c;;UAMb0I,Q;;;;;;;;;;;;QAAiB1I,c;;UAKjB2I,S;;;;;;;;;;;;QAAkB3I,c;;UAOlB4I,Q;;;;;;;;;;;;QAAiB5I,c;;UAUjB6I,S;;;;;;;;;;;;QAAkB7I,c;;UAIlB8I,G;;;;;;;;;;;;QAAY9I,c;;UAQZ+I,S;;;;;;;;;;;;QAAkB/I,c;;UAIlBgJ,a;;;;;;;;;;;;QAAsBhJ,c;;UAMtBiJ,O;;;;;;;;;;;;QAAgBjJ,c;;UAIhBkJ,Y;;;;;;;;;;;;QAAqBlJ,c;;UAIrBmJ,U;;;;;;;;;;;;QAAmBnJ,c;;UAInBoJ,M;;;;;;;;;;;;QAAepJ,c;;UAIfqJ,U;;;;;;;;;;;;QAAmBrJ,c;;UAMnBsJ,W;;;;;;;;;;;;QAAoBtJ,c;;UAMpBuJ,Y;;;;;;;;;;;;QAAqBvJ,c;;UAKrBwJ,O;;;;;;;;;;;;QAAgBxJ,c;;UAKhByJ,Q;;;;;;;;;;;;QAAiBzJ,c;;UAWjB0J,U;;;;;;;;;;;;QAAmB1J,c;;UAKnB2J,O;;;;;;;;;;;;QAAgB3J,c;;UAShB4J,W;;;;;;;;;;;;QAAoB5J,c;;UAMpB6J,W;;;;;;;;;;;;QAAoB7J,c;;UAgBpB8J,M;;;;;;;;;;;;QAAe9J,c;;UAUf+J,U;;;;;;;;;;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;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA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","file":"main-es5.js","sourcesContent":["<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 { 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","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>","<div class=\"projectDesc\">\n <evt-content-viewer *ngFor=\"let content of data?.content\" [content]=\"content\"></evt-content-viewer>\n</div>","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","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","<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 { 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","<ng-container *ngIf=\"data\">{{ data.text }}</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 [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 { 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","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\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","<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 { 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=\"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, 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","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","<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';\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=\"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 { 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","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","<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, 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","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>","<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>","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","// 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","<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, 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","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('Images are published courtesy of the Ministry of Culture - State Archives of Prato and are freely usable for activities of study, research, free expression of thought or creative expression, and promotion of knowledge of cultural heritage. The reproduction rights of the published images - in accordance with Articles 106, 107 and 108 of the Code of Cultural Heritage and Landscape (Legislative Decree 42/2004 as amended and supplemented) - belong to the State Archives of Prato, therefore all uses of these images, other than those stated above, must be expressly authorized (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>","<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 {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[]","<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 { 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","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","<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 } 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","<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 { 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","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","<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';\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","<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 { 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","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","<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 } 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","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","<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';\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","<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';\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","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","<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';\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","<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, 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","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>","<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 { 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","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","<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 } 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","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","<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 { 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","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>","<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 { 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=\"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 { 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","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","<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 { 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","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>","<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 { 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","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\nexport function getLemListType(tagName): LemmatizedEntityType {\n console.log(tagName);\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 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\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","<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';\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","<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 { 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","<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 { 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 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","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';","<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 { 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","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","<!-- 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, 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","<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 { 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 *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 { 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 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 { 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","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 parametro2 = document.location.href;\n const parametro3 = parametro2.split(\"p=\")[1].split(\"_\")[0];\n \n const parametro = '[href=\"lettere/' + parametro3 + '.xml\"]';\n //const filesToInclude = Array.from(doc.getElementsByTagName('xi:include')); \n const filesToInclude = Array.from(doc.querySelectorAll(parametro));\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","<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, 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","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","<!-- 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 { 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","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","<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, 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=\"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, 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","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>","<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 { 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=\"{{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 { 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","// 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","<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 { 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","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","<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 { 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","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>","<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 { 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","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","<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 { 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=\"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 { 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=\"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 { 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","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","<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, 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=\"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, 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","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>","<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 { 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","<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, 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","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>","<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 { 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=\"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 { 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","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","<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 { 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","<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 { 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","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\";"]}