@myrmidon/cadmus-ui-pg
Version:
Cadmus - general smart UI components.
107 lines (101 loc) • 7.93 kB
JavaScript
import * as i0 from '@angular/core';
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
import { AsyncPipe, DatePipe } from '@angular/common';
import { MatTooltip } from '@angular/material/tooltip';
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: "21.2.4", ngImport: i0, type: CurrentItemBarComponent, deps: [{ token: i1.EditedItemRepository }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: CurrentItemBarComponent, isStandalone: true, selector: "cadmus-current-item-bar", ngImport: i0, template: "@if (item$ | async; as item) {\n <div class=\"item-bar\">\n <span class=\"title\">{{ item.title }}</span>\n <span class=\"id\">{{ item.id }}</span>\n ⬤\n <span class=\"dsc\">\n {{ item.description }} ⬤\n <span matTooltip=\"Last saved\"\n >{{ item.timeModified | date: \"yyyy-MM-dd HH:mm:ss\" }}\n {{ item.userId }}</span\n >\n ⬤\n <span matTooltip=\"Created\"\n >{{ item.timeCreated | date: \"yyyy-MM-dd HH:mm:ss\" }}\n {{ item.creatorId }}</span\n >\n </span>\n </div>\n}\n", styles: ["div.item-bar{border:1px solid var(--mat-sys-on-surface-variant);border-radius:4px;background-color:var(--mat-sys-surface-container);color:var(--mat-sys-on-primary-container);margin:6px;padding:4px}.title{font-size:1.2em;font-weight:700;margin-right:.5em}.id{font-size:.8em;font-family:Courier New,Courier,monospace;margin-right:.5em}.dsc{font-size:.9em}\n"], dependencies: [{ kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CurrentItemBarComponent, decorators: [{
type: Component,
args: [{ selector: 'cadmus-current-item-bar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, DatePipe, MatTooltip], template: "@if (item$ | async; as item) {\n <div class=\"item-bar\">\n <span class=\"title\">{{ item.title }}</span>\n <span class=\"id\">{{ item.id }}</span>\n ⬤\n <span class=\"dsc\">\n {{ item.description }} ⬤\n <span matTooltip=\"Last saved\"\n >{{ item.timeModified | date: \"yyyy-MM-dd HH:mm:ss\" }}\n {{ item.userId }}</span\n >\n ⬤\n <span matTooltip=\"Created\"\n >{{ item.timeCreated | date: \"yyyy-MM-dd HH:mm:ss\" }}\n {{ item.creatorId }}</span\n >\n </span>\n </div>\n}\n", styles: ["div.item-bar{border:1px solid var(--mat-sys-on-surface-variant);border-radius:4px;background-color:var(--mat-sys-surface-container);color:var(--mat-sys-on-primary-container);margin:6px;padding:4px}.title{font-size:1.2em;font-weight:700;margin-right:.5em}.id{font-size:.8em;font-family:Courier New,Courier,monospace;margin-right:.5em}.dsc{font-size:.9em}\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 = signal(undefined, ...(ngDevMode ? [{ debugName: "typeId" }] : /* istanbul ignore next */ []));
roleId = signal(undefined, ...(ngDevMode ? [{ debugName: "roleId" }] : /* istanbul ignore next */ []));
color = signal(undefined, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
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.set(undefined);
this.roleId.set(undefined);
this.color.set(undefined);
return;
}
else {
this.typeId.set(this.getTypeIdName(part.typeId));
this.roleId.set(this.getRoleIdName(part.roleId));
this.color.set(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: "21.2.4", 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: "21.2.4", 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"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: CurrentLayerPartBarComponent, decorators: [{
type: Component,
args: [{ selector: 'cadmus-current-layer-part-bar', changeDetection: ChangeDetectionStrategy.OnPush, 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