UNPKG

@myrmidon/cadmus-ui-pg

Version:

Cadmus - general smart UI components.

106 lines (100 loc) 6.51 kB
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