@myrmidon/cadmus-ui-pg
Version:
Cadmus - general smart UI components.
106 lines (100 loc) • 6.51 kB
JavaScript
import * as i0 from '@angular/core';
import { Component } from '@angular/core';
import { AsyncPipe, DatePipe } from '@angular/common';
import * as i1 from '@myrmidon/cadmus-item-editor';
import * as i1$1 from '@myrmidon/cadmus-state';
import * as i3 from '@myrmidon/cadmus-api';
class CurrentItemBarComponent {
_repository;
item$;
constructor(_repository) {
this._repository = _repository;
this.item$ = this._repository.item$;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: CurrentItemBarComponent, deps: [{ token: i1.EditedItemRepository }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: CurrentItemBarComponent, isStandalone: true, selector: "cadmus-current-item-bar", ngImport: i0, template: "@if (item$ | async; as item) {\r\n<div class=\"item-bar\">\r\n <h3>{{ item.title }}</h3>\r\n <p class=\"dsc\">{{ item.description }}</p>\r\n <p class=\"ver\">\r\n Last saved {{ item.timeModified | date : \"yyyy-MM-dd HH:mm:ss\" }} by\r\n {{ item.userId }}.\r\n </p>\r\n <p class=\"ver\">\r\n Created {{ item.timeCreated | date : \"yyyy-MM-dd HH:mm:ss\" }} by\r\n {{ item.creatorId }}.\r\n </p>\r\n</div>\r\n}\r\n", styles: ["div.item-bar{border:2px solid #f0f0f0;border-radius:4px;padding:4px;background-color:#f0f0f0;margin:12px}div.item-bar h2{margin:0 0 8px}div.item-bar p{margin:0 0 6px}div.item-bar p.dsc{font-style:italic}div.item-bar p.ver{color:#606060}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DatePipe, name: "date" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: CurrentItemBarComponent, decorators: [{
type: Component,
args: [{ selector: 'cadmus-current-item-bar', imports: [AsyncPipe, DatePipe], template: "@if (item$ | async; as item) {\r\n<div class=\"item-bar\">\r\n <h3>{{ item.title }}</h3>\r\n <p class=\"dsc\">{{ item.description }}</p>\r\n <p class=\"ver\">\r\n Last saved {{ item.timeModified | date : \"yyyy-MM-dd HH:mm:ss\" }} by\r\n {{ item.userId }}.\r\n </p>\r\n <p class=\"ver\">\r\n Created {{ item.timeCreated | date : \"yyyy-MM-dd HH:mm:ss\" }} by\r\n {{ item.creatorId }}.\r\n </p>\r\n</div>\r\n}\r\n", styles: ["div.item-bar{border:2px solid #f0f0f0;border-radius:4px;padding:4px;background-color:#f0f0f0;margin:12px}div.item-bar h2{margin:0 0 8px}div.item-bar p{margin:0 0 6px}div.item-bar p.dsc{font-style:italic}div.item-bar p.ver{color:#606060}\n"] }]
}], ctorParameters: () => [{ type: i1.EditedItemRepository }] });
class CurrentLayerPartBarComponent {
_appRepository;
_editedItemRepository;
_editedLayerRepository;
_facetService;
_subs = [];
constructor(_appRepository, _editedItemRepository, _editedLayerRepository, _facetService) {
this._appRepository = _appRepository;
this._editedItemRepository = _editedItemRepository;
this._editedLayerRepository = _editedLayerRepository;
this._facetService = _facetService;
}
typeId;
roleId;
color;
getTypeIdName(typeId) {
const typeThesaurus = this._appRepository.getTypeThesaurus();
if (!typeThesaurus) {
return typeId;
}
// strip :suffix if any
const i = typeId.lastIndexOf(':');
if (i > -1) {
typeId = typeId.substring(0, i);
}
const entry = typeThesaurus.entries?.find((e) => e.id === typeId);
return entry ? entry.value : typeId;
}
getRoleIdName(roleId) {
if (!roleId || !roleId.startsWith('fr.')) {
return roleId;
}
return this.getTypeIdName(roleId);
}
getPartColor(typeId, roleId) {
const facet = this._editedItemRepository.getFacet();
return this._facetService.getPartColor(typeId, roleId, facet);
}
updateLabels() {
const part = this._editedLayerRepository.getPart();
if (!part) {
this.typeId = undefined;
this.roleId = undefined;
this.color = undefined;
return;
}
else {
this.typeId = this.getTypeIdName(part.typeId);
this.roleId = this.getRoleIdName(part.roleId);
this.color = this.getPartColor(part.typeId, part.roleId);
}
}
ngOnInit() {
this._subs.push(this._editedItemRepository.facet$.subscribe((_) => {
this.updateLabels();
}));
this._subs.push(this._editedLayerRepository.part$.subscribe((_) => {
this.updateLabels();
}));
// ensure app data is loaded
this._appRepository.load();
}
ngOnDestroy() {
this._subs.forEach((s) => s.unsubscribe());
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: CurrentLayerPartBarComponent, deps: [{ token: i1$1.AppRepository }, { token: i1.EditedItemRepository }, { token: i1$1.EditedLayerRepository }, { token: i3.FacetService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: CurrentLayerPartBarComponent, isStandalone: true, selector: "cadmus-current-layer-part-bar", ngImport: i0, template: "<div>\r\n <span class=\"type-id\" [style.background-color]=\"color\">{{ typeId }}</span>\r\n <span class=\"role-id\">{{ roleId }}</span>\r\n</div>\r\n", styles: ["span.type-id{padding:4px;border-radius:6px}span.role-id{padding:4px}\n"] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: CurrentLayerPartBarComponent, decorators: [{
type: Component,
args: [{ selector: 'cadmus-current-layer-part-bar', template: "<div>\r\n <span class=\"type-id\" [style.background-color]=\"color\">{{ typeId }}</span>\r\n <span class=\"role-id\">{{ roleId }}</span>\r\n</div>\r\n", styles: ["span.type-id{padding:4px;border-radius:6px}span.role-id{padding:4px}\n"] }]
}], ctorParameters: () => [{ type: i1$1.AppRepository }, { type: i1.EditedItemRepository }, { type: i1$1.EditedLayerRepository }, { type: i3.FacetService }] });
/*
* Public API Surface of cadmus-ui-pg
*/
/**
* Generated bundle index. Do not edit.
*/
export { CurrentItemBarComponent, CurrentLayerPartBarComponent };
//# sourceMappingURL=myrmidon-cadmus-ui-pg.mjs.map