@sumaris-net/ngx-components 18.23.17 → 18.23.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/doc/changelog.md CHANGED
@@ -2085,3 +2085,6 @@ enh: Environment: add useHash property to configure Angular router to use hash U
2085
2085
 
2086
2086
  # 18.23.16
2087
2087
  - enh(entity-metadata-component) Fix avatar image background color
2088
+
2089
+ # 18.23.18
2090
+ - enh(entity-metadata-component) Increase text size of the recorder department, when recorder person is empty
@@ -12,14 +12,14 @@ export class EntityMetadataComponent {
12
12
  value;
13
13
  showRecorder = true;
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntityMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EntityMetadataComponent, selector: "app-entity-metadata", inputs: { value: "value", showRecorder: "showRecorder" }, ngImport: i0, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n }\n\n @if (value.recorderDepartment?.label; as departmentLabel) {\n <ion-card-subtitle>{{ departmentLabel }}</ion-card-subtitle>\n }\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"], dependencies: [{ kind: "component", type: i1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i3.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: i4.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i5.IsNotNilPipe, name: "isNotNil" }, { kind: "pipe", type: i6.PersonToStringPipe, name: "personToString" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EntityMetadataComponent, selector: "app-entity-metadata", inputs: { value: "value", showRecorder: "showRecorder" }, ngImport: i0, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n @if (value.recorderDepartment) {\n <ion-card-subtitle>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-subtitle>\n }\n } @else if (value.recorderDepartment) {\n <ion-card-title>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-title>\n }\n\n\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"], dependencies: [{ kind: "component", type: i1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i3.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: i4.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i5.IsNotNilPipe, name: "isNotNil" }, { kind: "pipe", type: i6.PersonToStringPipe, name: "personToString" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntityMetadataComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'app-entity-metadata', animations: [fadeInAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n }\n\n @if (value.recorderDepartment?.label; as departmentLabel) {\n <ion-card-subtitle>{{ departmentLabel }}</ion-card-subtitle>\n }\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"] }]
19
+ args: [{ selector: 'app-entity-metadata', animations: [fadeInAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n @if (value.recorderDepartment) {\n <ion-card-subtitle>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-subtitle>\n }\n } @else if (value.recorderDepartment) {\n <ion-card-title>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-title>\n }\n\n\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"] }]
20
20
  }], propDecorators: { value: [{
21
21
  type: Input
22
22
  }], showRecorder: [{
23
23
  type: Input
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L2VudGl0eS1tZXRhZGF0YS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSwyQkFBMkI7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7OztBQVUvRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLEtBQUssQ0FBaUc7SUFFdEcsWUFBWSxHQUFHLElBQUksQ0FBQzt3R0FIbEIsdUJBQXVCOzRGQUF2Qix1QkFBdUIscUhDYnBDLDgwRUF1RUEsNDVGRDdEYyxDQUFDLGVBQWUsQ0FBQzs7NEZBR2xCLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsQ0FBQyxlQUFlLENBQUMsbUJBQ1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbi8vIGltcG9ydCBmYWRlIGluIGFuaW1hdGlvblxuaW1wb3J0IHsgZmFkZUluQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVudGl0eS1tZXRhZGF0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW2ZhZGVJbkFuaW1hdGlvbl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlNZXRhZGF0YUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhbHVlOiBFbnRpdHk8YW55PiAmIHsgY3JlYXRpb25EYXRlPzogRGF0ZSB8IE1vbWVudDsgcmVjb3JkZXJEZXBhcnRtZW50PzogYW55OyByZWNvcmRlclBlcnNvbj86IGFueSB9O1xuXG4gIEBJbnB1dCgpIHNob3dSZWNvcmRlciA9IHRydWU7XG59XG4iLCJAaWYgKHZhbHVlPy5pZCkge1xuICA8aW9uLWNhcmQgQGZhZGVJbkFuaW1hdGlvbj5cbiAgICA8IS0tIHJlY29yZGVyIC0tPlxuICAgIEBpZiAoc2hvd1JlY29yZGVyICYmICh2YWx1ZS5yZWNvcmRlckRlcGFydG1lbnQgfHwgdmFsdWUucmVjb3JkZXJQZXJzb24pKSB7XG4gICAgICA8aW9uLWl0ZW0gY29sb3I9XCJ0cmFuc3BhcmVudFwiPlxuICAgICAgICA8IS0tIHJlY29yZGVyIGF2YXRhciAtLT5cbiAgICAgICAgQGlmICh2YWx1ZS5yZWNvcmRlclBlcnNvbjsgYXMgcmVjb3JkZXJQZXJzb24pIHtcbiAgICAgICAgICA8aW9uLWF2YXRhciBzbG90PVwic3RhcnRcIj5cbiAgICAgICAgICAgIEBpZiAocmVjb3JkZXJQZXJzb24uYXZhdGFyOyBhcyBhdmF0YXJVcmwpIHtcbiAgICAgICAgICAgICAgPGlvbi1pbWcgW3NyY109XCJhdmF0YXJVcmxcIi8+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChyZWNvcmRlclBlcnNvbj8uaWQgfCBpc05vdE5pbCkge1xuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzhcIiBoZWlnaHQ9XCIzOFwiIFtkYXRhLWpkZW50aWNvbi12YWx1ZV09XCJyZWNvcmRlclBlcnNvbi5pZFwiPjwvc3ZnPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gcmVjb3JkZXIgbmFtZSAtLT5cbiAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgdHJhbnNsYXRlPkNPTU1PTi5SRUNPUkRFUjwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgQGlmICh2YWx1ZS5yZWNvcmRlclBlcnNvbjsgYXMgcmVjb3JkZXJQZXJzb24pIHtcbiAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZSBjbGFzcz1cImlvbi10ZXh0LW5vd3JhcFwiPlxuICAgICAgICAgICAgICB7eyByZWNvcmRlclBlcnNvbiB8IHBlcnNvblRvU3RyaW5nIH19XG4gICAgICAgICAgICA8L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAodmFsdWUucmVjb3JkZXJEZXBhcnRtZW50Py5sYWJlbDsgYXMgZGVwYXJ0bWVudExhYmVsKSB7XG4gICAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGU+e3sgZGVwYXJ0bWVudExhYmVsIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvaW9uLWxhYmVsPlxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyZWNvcmRlclN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2lvbi1pdGVtPlxuICAgIH1cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthZnRlclJlY29yZGVyXVwiPjwvbmctY29udGVudD5cblxuICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXAgc3RhdHVzXCI+XG4gICAgICAgIDwhLS0gY3JlYXRpb24gZGF0ZSAtLT5cbiAgICAgICAgQGlmICh2YWx1ZS5jcmVhdGlvbkRhdGUpIHtcbiAgICAgICAgICA8aW9uLXRleHQ+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbGVuZGFyXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkNPTU1PTi5DUkVBVEVEX09OPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgIDxiPnt7IHZhbHVlLmNyZWF0aW9uRGF0ZSB8IGRhdGVGb3JtYXQ6IHt0aW1lOiB0cnVlfSB9fTwvYj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gdXBkYXRlIGRhdGUgLS0+XG4gICAgICAgIEBpZiAodmFsdWUudXBkYXRlRGF0ZSAhPSB2YWx1ZS5jcmVhdGlvbkRhdGUgJiYgdmFsdWUudXBkYXRlRGF0ZTsgYXMgdXBkYXRlRGF0ZSkge1xuICAgICAgICA8aW9uLXRleHQ+XG4gICAgICAgICAgQGlmICh2YWx1ZS5jcmVhdGlvbkRhdGUpIHtcbiAgICAgICAgICAgIDxici8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInRpbWUtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5DT01NT04uVVBEQVRFRF9PTjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPiZuYnNwO3t7IHVwZGF0ZURhdGUgfCBkYXRlRm9ybWF0OiB7dGltZTogdHJ1ZSwgc2Vjb25kczogdHJ1ZX0gfX08L3NwYW4+XG4gICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIH1cbiAgICAgIDwvaW9uLWxhYmVsPlxuXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZC1jb250ZW50PlxuICA8L2lvbi1jYXJkPlxufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1ldGFkYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2Zvcm0vZW50aXR5L2VudGl0eS1tZXRhZGF0YS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSwyQkFBMkI7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7OztBQVUvRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLEtBQUssQ0FBaUc7SUFFdEcsWUFBWSxHQUFHLElBQUksQ0FBQzt3R0FIbEIsdUJBQXVCOzRGQUF2Qix1QkFBdUIscUhDYnBDLHdpRkEwRUEsNDVGRGhFYyxDQUFDLGVBQWUsQ0FBQzs7NEZBR2xCLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsQ0FBQyxlQUFlLENBQUMsbUJBQ1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbi8vIGltcG9ydCBmYWRlIGluIGFuaW1hdGlvblxuaW1wb3J0IHsgZmFkZUluQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWVudGl0eS1tZXRhZGF0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbnRpdHktbWV0YWRhdGEuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW2ZhZGVJbkFuaW1hdGlvbl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlNZXRhZGF0YUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhbHVlOiBFbnRpdHk8YW55PiAmIHsgY3JlYXRpb25EYXRlPzogRGF0ZSB8IE1vbWVudDsgcmVjb3JkZXJEZXBhcnRtZW50PzogYW55OyByZWNvcmRlclBlcnNvbj86IGFueSB9O1xuXG4gIEBJbnB1dCgpIHNob3dSZWNvcmRlciA9IHRydWU7XG59XG4iLCJAaWYgKHZhbHVlPy5pZCkge1xuICA8aW9uLWNhcmQgQGZhZGVJbkFuaW1hdGlvbj5cbiAgICA8IS0tIHJlY29yZGVyIC0tPlxuICAgIEBpZiAoc2hvd1JlY29yZGVyICYmICh2YWx1ZS5yZWNvcmRlckRlcGFydG1lbnQgfHwgdmFsdWUucmVjb3JkZXJQZXJzb24pKSB7XG4gICAgICA8aW9uLWl0ZW0gY29sb3I9XCJ0cmFuc3BhcmVudFwiPlxuICAgICAgICA8IS0tIHJlY29yZGVyIGF2YXRhciAtLT5cbiAgICAgICAgQGlmICh2YWx1ZS5yZWNvcmRlclBlcnNvbjsgYXMgcmVjb3JkZXJQZXJzb24pIHtcbiAgICAgICAgICA8aW9uLWF2YXRhciBzbG90PVwic3RhcnRcIj5cbiAgICAgICAgICAgIEBpZiAocmVjb3JkZXJQZXJzb24uYXZhdGFyOyBhcyBhdmF0YXJVcmwpIHtcbiAgICAgICAgICAgICAgPGlvbi1pbWcgW3NyY109XCJhdmF0YXJVcmxcIi8+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChyZWNvcmRlclBlcnNvbj8uaWQgfCBpc05vdE5pbCkge1xuICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMzhcIiBoZWlnaHQ9XCIzOFwiIFtkYXRhLWpkZW50aWNvbi12YWx1ZV09XCJyZWNvcmRlclBlcnNvbi5pZFwiPjwvc3ZnPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvaW9uLWF2YXRhcj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gcmVjb3JkZXIgbmFtZSAtLT5cbiAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgdHJhbnNsYXRlPkNPTU1PTi5SRUNPUkRFUjwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgQGlmICh2YWx1ZS5yZWNvcmRlclBlcnNvbjsgYXMgcmVjb3JkZXJQZXJzb24pIHtcbiAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZSBjbGFzcz1cImlvbi10ZXh0LW5vd3JhcFwiPlxuICAgICAgICAgICAgICB7eyByZWNvcmRlclBlcnNvbiB8IHBlcnNvblRvU3RyaW5nIH19XG4gICAgICAgICAgICA8L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgQGlmICh2YWx1ZS5yZWNvcmRlckRlcGFydG1lbnQpIHtcbiAgICAgICAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlPnt7IHZhbHVlLnJlY29yZGVyRGVwYXJ0bWVudC5sYWJlbCB8fCB2YWx1ZS5yZWNvcmRlckRlcGFydG1lbnQubmFtZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBAZWxzZSBpZiAodmFsdWUucmVjb3JkZXJEZXBhcnRtZW50KSB7XG4gICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGU+e3sgdmFsdWUucmVjb3JkZXJEZXBhcnRtZW50LmxhYmVsIHx8IHZhbHVlLnJlY29yZGVyRGVwYXJ0bWVudC5uYW1lIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICB9XG5cblxuICAgICAgICA8L2lvbi1sYWJlbD5cblxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmVjb3JkZXJTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9pb24taXRlbT5cbiAgICB9XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYWZ0ZXJSZWNvcmRlcl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwIHN0YXR1c1wiPlxuICAgICAgICA8IS0tIGNyZWF0aW9uIGRhdGUgLS0+XG4gICAgICAgIEBpZiAodmFsdWUuY3JlYXRpb25EYXRlKSB7XG4gICAgICAgICAgPGlvbi10ZXh0PlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjYWxlbmRhclwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5DT01NT04uQ1JFQVRFRF9PTjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICA8Yj57eyB2YWx1ZS5jcmVhdGlvbkRhdGUgfCBkYXRlRm9ybWF0OiB7dGltZTogdHJ1ZX0gfX08L2I+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIHVwZGF0ZSBkYXRlIC0tPlxuICAgICAgICBAaWYgKHZhbHVlLnVwZGF0ZURhdGUgIT0gdmFsdWUuY3JlYXRpb25EYXRlICYmIHZhbHVlLnVwZGF0ZURhdGU7IGFzIHVwZGF0ZURhdGUpIHtcbiAgICAgICAgICA8aW9uLXRleHQ+XG4gICAgICAgICAgICBAaWYgKHZhbHVlLmNyZWF0aW9uRGF0ZSkge1xuICAgICAgICAgICAgICA8YnIvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ0aW1lLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgPHNwYW4gdHJhbnNsYXRlPkNPTU1PTi5VUERBVEVEX09OPC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj4mbmJzcDt7eyB1cGRhdGVEYXRlIHwgZGF0ZUZvcm1hdDoge3RpbWU6IHRydWUsIHNlY29uZHM6IHRydWV9IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgICAgfVxuICAgICAgPC9pb24tbGFiZWw+XG5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gIDwvaW9uLWNhcmQ+XG59XG4iXX0=
@@ -43467,11 +43467,11 @@ class EntityMetadataComponent {
43467
43467
  value;
43468
43468
  showRecorder = true;
43469
43469
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntityMetadataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43470
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EntityMetadataComponent, selector: "app-entity-metadata", inputs: { value: "value", showRecorder: "showRecorder" }, ngImport: i0, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n }\n\n @if (value.recorderDepartment?.label; as departmentLabel) {\n <ion-card-subtitle>{{ departmentLabel }}</ion-card-subtitle>\n }\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"], dependencies: [{ kind: "component", type: i2$1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i2$1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2$1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2$1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2$1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2$1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i2$1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i4$3.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: IsNotNilPipe, name: "isNotNil" }, { kind: "pipe", type: PersonToStringPipe, name: "personToString" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
43470
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: EntityMetadataComponent, selector: "app-entity-metadata", inputs: { value: "value", showRecorder: "showRecorder" }, ngImport: i0, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n @if (value.recorderDepartment) {\n <ion-card-subtitle>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-subtitle>\n }\n } @else if (value.recorderDepartment) {\n <ion-card-title>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-title>\n }\n\n\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"], dependencies: [{ kind: "component", type: i2$1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i2$1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2$1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2$1.IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: i2$1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i2$1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2$1.IonImg, selector: "ion-img", inputs: ["alt", "src"] }, { kind: "component", type: i2$1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2$1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i1$1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i4$3.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: IsNotNilPipe, name: "isNotNil" }, { kind: "pipe", type: PersonToStringPipe, name: "personToString" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
43471
43471
  }
43472
43472
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntityMetadataComponent, decorators: [{
43473
43473
  type: Component,
43474
- args: [{ selector: 'app-entity-metadata', animations: [fadeInAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n }\n\n @if (value.recorderDepartment?.label; as departmentLabel) {\n <ion-card-subtitle>{{ departmentLabel }}</ion-card-subtitle>\n }\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"] }]
43474
+ args: [{ selector: 'app-entity-metadata', animations: [fadeInAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (value?.id) {\n <ion-card @fadeInAnimation>\n <!-- recorder -->\n @if (showRecorder && (value.recorderDepartment || value.recorderPerson)) {\n <ion-item color=\"transparent\">\n <!-- recorder avatar -->\n @if (value.recorderPerson; as recorderPerson) {\n <ion-avatar slot=\"start\">\n @if (recorderPerson.avatar; as avatarUrl) {\n <ion-img [src]=\"avatarUrl\"/>\n } @else if (recorderPerson?.id | isNotNil) {\n <svg width=\"38\" height=\"38\" [data-jdenticon-value]=\"recorderPerson.id\"></svg>\n }\n </ion-avatar>\n }\n\n <!-- recorder name -->\n <ion-label>\n <ion-card-subtitle translate>COMMON.RECORDER</ion-card-subtitle>\n @if (value.recorderPerson; as recorderPerson) {\n <ion-card-title class=\"ion-text-nowrap\">\n {{ recorderPerson | personToString }}\n </ion-card-title>\n @if (value.recorderDepartment) {\n <ion-card-subtitle>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-subtitle>\n }\n } @else if (value.recorderDepartment) {\n <ion-card-title>{{ value.recorderDepartment.label || value.recorderDepartment.name }}</ion-card-title>\n }\n\n\n </ion-label>\n\n <ng-content select=\"[recorderSuffix]\"></ng-content>\n </ion-item>\n }\n\n <ng-content select=\"[afterRecorder]\"></ng-content>\n\n <ion-card-content>\n <ion-label class=\"ion-text-wrap status\">\n <!-- creation date -->\n @if (value.creationDate) {\n <ion-text>\n <ion-icon name=\"calendar\"></ion-icon>\n &nbsp;\n <span translate>COMMON.CREATED_ON</span>\n <span>\n &nbsp;\n <b>{{ value.creationDate | dateFormat: {time: true} }}</b>\n </span>\n </ion-text>\n }\n\n <!-- update date -->\n @if (value.updateDate != value.creationDate && value.updateDate; as updateDate) {\n <ion-text>\n @if (value.creationDate) {\n <br/>\n }\n <ion-label>\n <ion-icon name=\"time-outline\"></ion-icon>\n &nbsp;\n <span translate>COMMON.UPDATED_ON</span>\n <span>&nbsp;{{ updateDate | dateFormat: {time: true, seconds: true} }}</span>\n </ion-label>\n </ion-text>\n }\n </ion-label>\n\n <ng-content></ng-content>\n </ion-card-content>\n </ion-card>\n}\n", styles: ["ion-card{background-color:var(--ion-color-light-tint)}ion-card ion-item ion-avatar{--avatar-border-width: 1px;--avatar-border-opacity: .5;--avatar-size: 40px;--avatar-svg-background-color: var(--ion-background-color);--avatar-img-background-color: var(--ion-color-secondary);height:var(--avatar-size, 40px);width:var(--avatar-size, 40px);border:solid var(--avatar-border-width, 1px) rgba(var(--ion-color-secondary-rgb),var(--avatar-border-opacity, .5))}ion-card ion-item ion-avatar ::ng-deep ion-img img{background-color:var(--avatar-img-background-color)}ion-card ion-item ion-avatar svg{background-color:var(--avatar-svg-background-color);border-radius:50%;height:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2);width:calc(var(--avatar-size, 40px) - var(--avatar-border-width, 1px) * 2)}ion-card ion-item ion-card-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card ion-card-content{background-color:var(--ion-color-light-tint)}ion-card ion-card-content ion-label.status,ion-card ion-card-content * ion-label.status{font-size:12px!important;color:var(--ion-color-step-850)}\n"] }]
43475
43475
  }], propDecorators: { value: [{
43476
43476
  type: Input
43477
43477
  }], showRecorder: [{