UNPKG

@myrmidon/cadmus-ui-pg

Version:

Cadmus - general smart UI components.

107 lines (101 loc) 7.93 kB
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 &#x2B24;\n <span class=\"dsc\">\n {{ item.description }} &#x2B24;\n <span matTooltip=\"Last saved\"\n >{{ item.timeModified | date: \"yyyy-MM-dd HH:mm:ss\" }}\n {{ item.userId }}</span\n >\n &#x2B24;\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 &#x2B24;\n <span class=\"dsc\">\n {{ item.description }} &#x2B24;\n <span matTooltip=\"Last saved\"\n >{{ item.timeModified | date: \"yyyy-MM-dd HH:mm:ss\" }}\n {{ item.userId }}</span\n >\n &#x2B24;\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