{"version":3,"file":"myrmidon-cadmus-ui-pg.mjs","sources":["../../../../projects/myrmidon/cadmus-ui-pg/src/lib/components/current-item-bar/current-item-bar.component.ts","../../../../projects/myrmidon/cadmus-ui-pg/src/lib/components/current-item-bar/current-item-bar.component.html","../../../../projects/myrmidon/cadmus-ui-pg/src/lib/components/current-layer-part-bar/current-layer-part-bar.component.ts","../../../../projects/myrmidon/cadmus-ui-pg/src/lib/components/current-layer-part-bar/current-layer-part-bar.component.html","../../../../projects/myrmidon/cadmus-ui-pg/src/public-api.ts","../../../../projects/myrmidon/cadmus-ui-pg/src/myrmidon-cadmus-ui-pg.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AsyncPipe, DatePipe } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\nimport { Item } from '@myrmidon/cadmus-core';\r\nimport { EditedItemRepository } from '@myrmidon/cadmus-item-editor';\r\n\r\n@Component({\r\n  selector: 'cadmus-current-item-bar',\r\n  templateUrl: './current-item-bar.component.html',\r\n  styleUrls: ['./current-item-bar.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  imports: [AsyncPipe, DatePipe, MatTooltip],\r\n})\r\nexport class CurrentItemBarComponent {\r\n  public item$: Observable<Item | undefined>;\r\n\r\n  constructor(private _repository: EditedItemRepository) {\r\n    this.item$ = this._repository.item$;\r\n  }\r\n}\r\n","@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","import {\r\n  Component,\r\n  OnDestroy,\r\n  OnInit,\r\n  signal,\r\n  ChangeDetectionStrategy,\r\n} from '@angular/core';\r\n\r\nimport { TextLayerPart } from '@myrmidon/cadmus-core';\r\nimport { FacetService } from '@myrmidon/cadmus-api';\r\nimport { AppRepository, EditedLayerRepository } from '@myrmidon/cadmus-state';\r\nimport { EditedItemRepository } from '@myrmidon/cadmus-item-editor';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'cadmus-current-layer-part-bar',\r\n  templateUrl: './current-layer-part-bar.component.html',\r\n  styleUrls: ['./current-layer-part-bar.component.css'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CurrentLayerPartBarComponent implements OnInit, OnDestroy {\r\n  private _subs: Subscription[] = [];\r\n\r\n  constructor(\r\n    private _appRepository: AppRepository,\r\n    private _editedItemRepository: EditedItemRepository,\r\n    private _editedLayerRepository: EditedLayerRepository,\r\n    private _facetService: FacetService,\r\n  ) {}\r\n\r\n  public readonly typeId = signal<string | undefined>(undefined);\r\n  public readonly roleId = signal<string | undefined>(undefined);\r\n  public readonly color = signal<string | undefined>(undefined);\r\n\r\n  private getTypeIdName(typeId: string): string {\r\n    const typeThesaurus = this._appRepository.getTypeThesaurus();\r\n    if (!typeThesaurus) {\r\n      return typeId;\r\n    }\r\n    // strip :suffix if any\r\n    const i = typeId.lastIndexOf(':');\r\n    if (i > -1) {\r\n      typeId = typeId.substring(0, i);\r\n    }\r\n    const entry = typeThesaurus.entries?.find((e) => e.id === typeId);\r\n    return entry ? entry.value : typeId;\r\n  }\r\n\r\n  private getRoleIdName(roleId?: string): string | undefined {\r\n    if (!roleId || !roleId.startsWith('fr.')) {\r\n      return roleId;\r\n    }\r\n    return this.getTypeIdName(roleId);\r\n  }\r\n\r\n  private getPartColor(typeId: string, roleId?: string): string {\r\n    const facet = this._editedItemRepository.getFacet();\r\n    return this._facetService.getPartColor(typeId, roleId, facet);\r\n  }\r\n\r\n  private updateLabels(): void {\r\n    const part: TextLayerPart | undefined =\r\n      this._editedLayerRepository.getPart();\r\n    if (!part) {\r\n      this.typeId.set(undefined);\r\n      this.roleId.set(undefined);\r\n      this.color.set(undefined);\r\n      return;\r\n    } else {\r\n      this.typeId.set(this.getTypeIdName(part.typeId));\r\n      this.roleId.set(this.getRoleIdName(part.roleId));\r\n      this.color.set(this.getPartColor(part.typeId, part.roleId));\r\n    }\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this._subs.push(\r\n      this._editedItemRepository.facet$.subscribe((_) => {\r\n        this.updateLabels();\r\n      }),\r\n    );\r\n    this._subs.push(\r\n      this._editedLayerRepository.part$.subscribe((_) => {\r\n        this.updateLabels();\r\n      }),\r\n    );\r\n    // ensure app data is loaded\r\n    this._appRepository.load();\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this._subs.forEach((s) => s.unsubscribe());\r\n  }\r\n}\r\n","<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","/*\r\n * Public API Surface of cadmus-ui-pg\r\n */\r\n\r\nexport * from './lib/components/current-item-bar/current-item-bar.component';\r\nexport * from './lib/components/current-layer-part-bar/current-layer-part-bar.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":";;;;;;;;MAgBa,uBAAuB,CAAA;AAGd,IAAA,WAAA;AAFb,IAAA,KAAK;AAEZ,IAAA,WAAA,CAAoB,WAAiC,EAAA;QAAjC,IAAA,CAAA,WAAW,GAAX,WAAW;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;IACrC;uGALW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,mFChBpC,4jBAmBA,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLiC,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAA/B,SAAS,yCAAE,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAElB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,4jBAAA,EAAA,MAAA,EAAA,CAAA,qWAAA,CAAA,EAAA;;;MEM/B,4BAA4B,CAAA;AAI7B,IAAA,cAAA;AACA,IAAA,qBAAA;AACA,IAAA,sBAAA;AACA,IAAA,aAAA;IANF,KAAK,GAAmB,EAAE;AAElC,IAAA,WAAA,CACU,cAA6B,EAC7B,qBAA2C,EAC3C,sBAA6C,EAC7C,aAA2B,EAAA;QAH3B,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,qBAAqB,GAArB,qBAAqB;QACrB,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACtB,IAAA,CAAA,aAAa,GAAb,aAAa;IACpB;AAEa,IAAA,MAAM,GAAG,MAAM,CAAqB,SAAS,6EAAC;AAC9C,IAAA,MAAM,GAAG,MAAM,CAAqB,SAAS,6EAAC;AAC9C,IAAA,KAAK,GAAG,MAAM,CAAqB,SAAS,4EAAC;AAErD,IAAA,aAAa,CAAC,MAAc,EAAA;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;QAC5D,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,OAAO,MAAM;QACf;;QAEA,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACV,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC;AACA,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;QACjE,OAAO,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM;IACrC;AAEQ,IAAA,aAAa,CAAC,MAAe,EAAA;QACnC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACxC,YAAA,OAAO,MAAM;QACf;AACA,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnC;IAEQ,YAAY,CAAC,MAAc,EAAE,MAAe,EAAA;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;AACnD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAC/D;IAEQ,YAAY,GAAA;QAClB,MAAM,IAAI,GACR,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE;QACvC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YACzB;QACF;aAAO;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D;IACF;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YAChD,IAAI,CAAC,YAAY,EAAE;QACrB,CAAC,CAAC,CACH;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YAChD,IAAI,CAAC,YAAY,EAAE;QACrB,CAAC,CAAC,CACH;;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;IAC5B;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C;uGAxEW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,yFCpBzC,gKAIA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDgBa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BACE,+BAA+B,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,gKAAA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA;;;AElBjD;;AAEG;;ACFH;;AAEG;;;;"}