@myrmidon/cadmus-part-codicology-shelfmarks 2.0.5 → 3.0.0

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.
Files changed (23) hide show
  1. package/esm2022/lib/cadmus-part-codicology-shelfmarks.module.mjs +90 -0
  2. package/esm2022/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.mjs +101 -0
  3. package/esm2022/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.mjs +151 -0
  4. package/esm2022/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.mjs +25 -0
  5. package/{esm2020 → esm2022}/lib/cod-shelfmarks-part.mjs +86 -86
  6. package/{esm2020 → esm2022}/myrmidon-cadmus-part-codicology-shelfmarks.mjs +4 -4
  7. package/{esm2020 → esm2022}/public-api.mjs +8 -8
  8. package/{fesm2020 → fesm2022}/myrmidon-cadmus-part-codicology-shelfmarks.mjs +387 -388
  9. package/{fesm2020 → fesm2022}/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -1
  10. package/index.d.ts +5 -5
  11. package/lib/cadmus-part-codicology-shelfmarks.module.d.ts +21 -21
  12. package/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.d.ts +28 -28
  13. package/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.d.ts +36 -36
  14. package/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.d.ts +12 -12
  15. package/lib/cod-shelfmarks-part.d.ts +90 -90
  16. package/package.json +8 -14
  17. package/public-api.d.ts +5 -5
  18. package/esm2020/lib/cadmus-part-codicology-shelfmarks.module.mjs +0 -89
  19. package/esm2020/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.mjs +0 -100
  20. package/esm2020/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.mjs +0 -150
  21. package/esm2020/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.mjs +0 -24
  22. package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs +0 -442
  23. package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +0 -1
@@ -0,0 +1,90 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatCardModule } from '@angular/material/card';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { MatInputModule } from '@angular/material/input';
8
+ import { MatTabsModule } from '@angular/material/tabs';
9
+ import { MatSelectModule } from '@angular/material/select';
10
+ import { MatTooltipModule } from '@angular/material/tooltip';
11
+ // cadmus
12
+ import { CadmusStateModule } from '@myrmidon/cadmus-state';
13
+ import { CadmusUiModule } from '@myrmidon/cadmus-ui';
14
+ import { CadmusUiPgModule } from '@myrmidon/cadmus-ui-pg';
15
+ // locals (UI editor and PG wrapper)
16
+ import { CodShelfmarksPartComponent } from './cod-shelfmarks-part/cod-shelfmarks-part.component';
17
+ import { CodShelfmarkEditorComponent } from './cod-shelfmark-editor/cod-shelfmark-editor.component';
18
+ import { CodShelfmarksPartFeatureComponent } from './cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component';
19
+ import * as i0 from "@angular/core";
20
+ class CadmusPartCodicologyShelfmarksModule {
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, declarations: [CodShelfmarksPartComponent,
23
+ CodShelfmarkEditorComponent,
24
+ CodShelfmarksPartFeatureComponent], imports: [CommonModule,
25
+ FormsModule,
26
+ ReactiveFormsModule,
27
+ // material
28
+ MatButtonModule,
29
+ MatCardModule,
30
+ MatIconModule,
31
+ MatInputModule,
32
+ MatSelectModule,
33
+ MatTabsModule,
34
+ MatTooltipModule,
35
+ // Cadmus
36
+ CadmusStateModule,
37
+ CadmusUiModule,
38
+ CadmusUiPgModule], exports: [CodShelfmarksPartComponent,
39
+ CodShelfmarkEditorComponent,
40
+ CodShelfmarksPartFeatureComponent] }); }
41
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, imports: [CommonModule,
42
+ FormsModule,
43
+ ReactiveFormsModule,
44
+ // material
45
+ MatButtonModule,
46
+ MatCardModule,
47
+ MatIconModule,
48
+ MatInputModule,
49
+ MatSelectModule,
50
+ MatTabsModule,
51
+ MatTooltipModule,
52
+ // Cadmus
53
+ CadmusStateModule,
54
+ CadmusUiModule,
55
+ CadmusUiPgModule] }); }
56
+ }
57
+ export { CadmusPartCodicologyShelfmarksModule };
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, decorators: [{
59
+ type: NgModule,
60
+ args: [{
61
+ declarations: [
62
+ CodShelfmarksPartComponent,
63
+ CodShelfmarkEditorComponent,
64
+ CodShelfmarksPartFeatureComponent,
65
+ ],
66
+ imports: [
67
+ CommonModule,
68
+ FormsModule,
69
+ ReactiveFormsModule,
70
+ // material
71
+ MatButtonModule,
72
+ MatCardModule,
73
+ MatIconModule,
74
+ MatInputModule,
75
+ MatSelectModule,
76
+ MatTabsModule,
77
+ MatTooltipModule,
78
+ // Cadmus
79
+ CadmusStateModule,
80
+ CadmusUiModule,
81
+ CadmusUiPgModule,
82
+ ],
83
+ exports: [
84
+ CodShelfmarksPartComponent,
85
+ CodShelfmarkEditorComponent,
86
+ CodShelfmarksPartFeatureComponent,
87
+ ],
88
+ }]
89
+ }] });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy1wYXJ0LWNvZGljb2xvZ3ktc2hlbGZtYXJrcy9zcmMvbGliL2NhZG11cy1wYXJ0LWNvZGljb2xvZ3ktc2hlbGZtYXJrcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELFNBQVM7QUFDVCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsb0NBQW9DO0FBQ3BDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOztBQUV4SCxNQTZCYSxvQ0FBb0M7OEdBQXBDLG9DQUFvQzsrR0FBcEMsb0NBQW9DLGlCQTNCN0MsMEJBQTBCO1lBQzFCLDJCQUEyQjtZQUMzQixpQ0FBaUMsYUFHakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGNBQWM7WUFDZCxlQUFlO1lBQ2YsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxnQkFBZ0IsYUFHaEIsMEJBQTBCO1lBQzFCLDJCQUEyQjtZQUMzQixpQ0FBaUM7K0dBR3hCLG9DQUFvQyxZQXRCN0MsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGNBQWM7WUFDZCxlQUFlO1lBQ2YsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxnQkFBZ0I7O1NBUVAsb0NBQW9DOzJGQUFwQyxvQ0FBb0M7a0JBN0JoRCxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IsaUNBQWlDO3FCQUNsQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQixpQ0FBaUM7cUJBQ2xDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5cclxuLy8gY2FkbXVzXHJcbmltcG9ydCB7IENhZG11c1N0YXRlTW9kdWxlIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1zdGF0ZSc7XHJcbmltcG9ydCB7IENhZG11c1VpTW9kdWxlIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy11aSc7XHJcbmltcG9ydCB7IENhZG11c1VpUGdNb2R1bGUgfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLXVpLXBnJztcclxuLy8gbG9jYWxzIChVSSBlZGl0b3IgYW5kIFBHIHdyYXBwZXIpXHJcbmltcG9ydCB7IENvZFNoZWxmbWFya3NQYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb2Qtc2hlbGZtYXJrcy1wYXJ0L2NvZC1zaGVsZm1hcmtzLXBhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29kU2hlbGZtYXJrRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb2Qtc2hlbGZtYXJrLWVkaXRvci9jb2Qtc2hlbGZtYXJrLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2RTaGVsZm1hcmtzUGFydEZlYXR1cmVDb21wb25lbnQgfSBmcm9tICcuL2NvZC1zaGVsZm1hcmtzLXBhcnQtZmVhdHVyZS9jb2Qtc2hlbGZtYXJrcy1wYXJ0LWZlYXR1cmUuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDb2RTaGVsZm1hcmtzUGFydENvbXBvbmVudCxcclxuICAgIENvZFNoZWxmbWFya0VkaXRvckNvbXBvbmVudCxcclxuICAgIENvZFNoZWxmbWFya3NQYXJ0RmVhdHVyZUNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIC8vIG1hdGVyaWFsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0VGFic01vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICAvLyBDYWRtdXNcclxuICAgIENhZG11c1N0YXRlTW9kdWxlLFxyXG4gICAgQ2FkbXVzVWlNb2R1bGUsXHJcbiAgICBDYWRtdXNVaVBnTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ29kU2hlbGZtYXJrc1BhcnRDb21wb25lbnQsXHJcbiAgICBDb2RTaGVsZm1hcmtFZGl0b3JDb21wb25lbnQsXHJcbiAgICBDb2RTaGVsZm1hcmtzUGFydEZlYXR1cmVDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhZG11c1BhcnRDb2RpY29sb2d5U2hlbGZtYXJrc01vZHVsZSB7fVxyXG4iXX0=
@@ -0,0 +1,101 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Validators, } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/button";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "@angular/material/input";
9
+ import * as i6 from "@angular/material/form-field";
10
+ import * as i7 from "@angular/material/select";
11
+ import * as i8 from "@angular/material/core";
12
+ import * as i9 from "@angular/material/tooltip";
13
+ class CodShelfmarkEditorComponent {
14
+ get shelfmark() {
15
+ return this._shelfmark;
16
+ }
17
+ set shelfmark(value) {
18
+ if (this._shelfmark === value) {
19
+ return;
20
+ }
21
+ this._shelfmark = value;
22
+ this.updateForm(value);
23
+ }
24
+ constructor(formBuilder) {
25
+ this.shelfmarkChange = new EventEmitter();
26
+ this.editorClose = new EventEmitter();
27
+ // form
28
+ this.tag = formBuilder.control(null, Validators.maxLength(50));
29
+ this.city = formBuilder.control(null, [
30
+ Validators.required,
31
+ Validators.maxLength(50),
32
+ ]);
33
+ this.library = formBuilder.control(null, [
34
+ Validators.required,
35
+ Validators.maxLength(50),
36
+ ]);
37
+ this.fund = formBuilder.control(null, Validators.maxLength(50));
38
+ this.location = formBuilder.control(null, Validators.maxLength(50));
39
+ this.form = formBuilder.group({
40
+ tag: this.tag,
41
+ city: this.city,
42
+ library: this.library,
43
+ fund: this.fund,
44
+ location: this.location,
45
+ });
46
+ }
47
+ ngOnInit() {
48
+ if (this._shelfmark) {
49
+ this.updateForm(this._shelfmark);
50
+ }
51
+ }
52
+ updateForm(model) {
53
+ if (!model) {
54
+ this.form.reset();
55
+ return;
56
+ }
57
+ this.tag.setValue(model.tag || null);
58
+ this.city.setValue(model.city);
59
+ this.library.setValue(model.library);
60
+ this.fund.setValue(model.fund || null);
61
+ this.location.setValue(model.location);
62
+ this.form.markAsPristine();
63
+ }
64
+ getModel() {
65
+ return {
66
+ tag: this.tag.value?.trim(),
67
+ city: this.city.value?.trim() || '',
68
+ library: this.library.value?.trim() || '',
69
+ fund: this.fund.value?.trim(),
70
+ location: this.location.value?.trim() || '',
71
+ };
72
+ }
73
+ cancel() {
74
+ this.editorClose.emit();
75
+ }
76
+ save() {
77
+ if (this.form.invalid) {
78
+ return;
79
+ }
80
+ this._shelfmark = this.getModel();
81
+ this.shelfmarkChange.emit(this._shelfmark);
82
+ }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CodShelfmarkEditorComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: CodShelfmarkEditorComponent, selector: "cadmus-cod-shelfmark-editor", inputs: { shelfmark: "shelfmark", tagEntries: "tagEntries", libEntries: "libEntries" }, outputs: { shelfmarkChange: "shelfmarkChange", editorClose: "editorClose" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <div>\r\n <!-- tag (bound) -->\r\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\r\n <mat-label>tag</mat-label>\r\n <mat-select [formControl]=\"tag\">\r\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- tag (free) -->\r\n <mat-form-field *ngIf=\"!tagEntries?.length\">\r\n <mat-label>tag</mat-label>\r\n <input matInput [formControl]=\"tag\" />\r\n <mat-error\r\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\r\n >tag too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- city -->\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>city</mat-label>\r\n <input matInput [formControl]=\"city\" />\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\r\n >city required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\r\n >city too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <!-- library (bound) -->\r\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\r\n <mat-label>library</mat-label>\r\n <mat-select [formControl]=\"library\">\r\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- library (free) -->\r\n <mat-form-field *ngIf=\"!libEntries?.length\">\r\n <mat-label>library</mat-label>\r\n <input matInput [formControl]=\"library\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.maxLength && (library.dirty || library.touched)\r\n \"\r\n >library too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- fund -->\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>fund</mat-label>\r\n <input matInput [formControl]=\"fund\" />\r\n <mat-error\r\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\r\n >fund too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- location -->\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>location</mat-label>\r\n <input matInput [formControl]=\"location\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.required &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.maxLength &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <!-- buttons -->\r\n <div>\r\n <button\r\n type=\"button\"\r\n color=\"warn\"\r\n mat-icon-button\r\n matTooltip=\"Discard changes\"\r\n (click)=\"cancel()\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n <button\r\n type=\"submit\"\r\n color=\"primary\"\r\n mat-icon-button\r\n matTooltip=\"Accept changes\"\r\n [disabled]=\"form.invalid || form.pristine\"\r\n >\r\n <mat-icon>check_circle</mat-icon>\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
85
+ }
86
+ export { CodShelfmarkEditorComponent };
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CodShelfmarkEditorComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ selector: 'cadmus-cod-shelfmark-editor', template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <div>\r\n <!-- tag (bound) -->\r\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\r\n <mat-label>tag</mat-label>\r\n <mat-select [formControl]=\"tag\">\r\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- tag (free) -->\r\n <mat-form-field *ngIf=\"!tagEntries?.length\">\r\n <mat-label>tag</mat-label>\r\n <input matInput [formControl]=\"tag\" />\r\n <mat-error\r\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\r\n >tag too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- city -->\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>city</mat-label>\r\n <input matInput [formControl]=\"city\" />\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\r\n >city required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\r\n >city too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div>\r\n <!-- library (bound) -->\r\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\r\n <mat-label>library</mat-label>\r\n <mat-select [formControl]=\"library\">\r\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\r\n e.value\r\n }}</mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- library (free) -->\r\n <mat-form-field *ngIf=\"!libEntries?.length\">\r\n <mat-label>library</mat-label>\r\n <input matInput [formControl]=\"library\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.required && (library.dirty || library.touched)\r\n \"\r\n >library required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(library).errors?.maxLength && (library.dirty || library.touched)\r\n \"\r\n >library too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- fund -->\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>fund</mat-label>\r\n <input matInput [formControl]=\"fund\" />\r\n <mat-error\r\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\r\n >fund too long</mat-error\r\n >\r\n </mat-form-field>\r\n <!-- location -->\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>location</mat-label>\r\n <input matInput [formControl]=\"location\" />\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.required &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location required</mat-error\r\n >\r\n <mat-error\r\n *ngIf=\"\r\n $any(location).errors?.maxLength &&\r\n (location.dirty || location.touched)\r\n \"\r\n >location too long</mat-error\r\n >\r\n </mat-form-field>\r\n </div>\r\n <!-- buttons -->\r\n <div>\r\n <button\r\n type=\"button\"\r\n color=\"warn\"\r\n mat-icon-button\r\n matTooltip=\"Discard changes\"\r\n (click)=\"cancel()\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n <button\r\n type=\"submit\"\r\n color=\"primary\"\r\n mat-icon-button\r\n matTooltip=\"Accept changes\"\r\n [disabled]=\"form.invalid || form.pristine\"\r\n >\r\n <mat-icon>check_circle</mat-icon>\r\n </button>\r\n </div>\r\n</form>\r\n" }]
90
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { shelfmark: [{
91
+ type: Input
92
+ }], tagEntries: [{
93
+ type: Input
94
+ }], libEntries: [{
95
+ type: Input
96
+ }], shelfmarkChange: [{
97
+ type: Output
98
+ }], editorClose: [{
99
+ type: Output
100
+ }] } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFyay1lZGl0b3IvY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFyay1lZGl0b3IvY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBSUwsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBSXhCLE1BS2EsMkJBQTJCO0lBR3RDLElBQ1csU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQVcsU0FBUyxDQUFDLEtBQStCO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBcUJELFlBQVksV0FBd0I7UUFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsT0FBTztRQUNQLElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxD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QUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQW5HVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix3T0NmeEMsNHZIQXlIQTs7U0QxR2EsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNkJBQTZCO2tHQVE1QixTQUFTO3NCQURuQixLQUFLO2dCQWNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixNQUFNO2dCQUdBLFdBQVc7c0JBRGpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybUJ1aWxkZXIsXHJcbiAgRm9ybUNvbnRyb2wsXHJcbiAgRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUaGVzYXVydXNFbnRyeSB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcbmltcG9ydCB7IENvZFNoZWxmbWFyayB9IGZyb20gJy4uL2NvZC1zaGVsZm1hcmtzLXBhcnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjYWRtdXMtY29kLXNoZWxmbWFyay1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2Qtc2hlbGZtYXJrLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29kLXNoZWxmbWFyay1lZGl0b3IuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29kU2hlbGZtYXJrRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIF9zaGVsZm1hcms6IENvZFNoZWxmbWFyayB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHNoZWxmbWFyaygpOiBDb2RTaGVsZm1hcmsgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWxmbWFyaztcclxuICB9XHJcbiAgcHVibGljIHNldCBzaGVsZm1hcmsodmFsdWU6IENvZFNoZWxmbWFyayB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRoaXMuX3NoZWxmbWFyayA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2hlbGZtYXJrID0gdmFsdWU7XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm0odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29kLXNoZWxmbWFyay10YWdzXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdGFnRW50cmllczogVGhlc2F1cnVzRW50cnlbXSB8IHVuZGVmaW5lZDtcclxuICAvLyBjb2Qtc2hlbGZtYXJrLWxpYnJhcmllc1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxpYkVudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzaGVsZm1hcmtDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDb2RTaGVsZm1hcms+O1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBlZGl0b3JDbG9zZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gIHB1YmxpYyB0YWc6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xyXG4gIHB1YmxpYyBjaXR5OiBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPjtcclxuICBwdWJsaWMgbGlicmFyeTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XHJcbiAgcHVibGljIGZ1bmQ6IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+O1xyXG4gIHB1YmxpYyBsb2NhdGlvbjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD47XHJcbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IoZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLnNoZWxmbWFya0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29kU2hlbGZtYXJrPigpO1xyXG4gICAgdGhpcy5lZGl0b3JDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgLy8gZm9ybVxyXG4gICAgdGhpcy50YWcgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSk7XHJcbiAgICB0aGlzLmNpdHkgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFtcclxuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApLFxyXG4gICAgXSk7XHJcbiAgICB0aGlzLmxpYnJhcnkgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFtcclxuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApLFxyXG4gICAgXSk7XHJcbiAgICB0aGlzLmZ1bmQgPSBmb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSk7XHJcbiAgICB0aGlzLmxvY2F0aW9uID0gZm9ybUJ1aWxkZXIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCkpO1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IGZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgdGFnOiB0aGlzLnRhZyxcclxuICAgICAgY2l0eTogdGhpcy5jaXR5LFxyXG4gICAgICBsaWJyYXJ5OiB0aGlzLmxpYnJhcnksXHJcbiAgICAgIGZ1bmQ6IHRoaXMuZnVuZCxcclxuICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb24sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3NoZWxmbWFyaykge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZvcm0odGhpcy5fc2hlbGZtYXJrKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRm9ybShtb2RlbDogQ29kU2hlbGZtYXJrIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoIW1vZGVsKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWcuc2V0VmFsdWUobW9kZWwudGFnIHx8IG51bGwpO1xyXG4gICAgdGhpcy5jaXR5LnNldFZhbHVlKG1vZGVsLmNpdHkpO1xyXG4gICAgdGhpcy5saWJyYXJ5LnNldFZhbHVlKG1vZGVsLmxpYnJhcnkpO1xyXG4gICAgdGhpcy5mdW5kLnNldFZhbHVlKG1vZGVsLmZ1bmQgfHwgbnVsbCk7XHJcbiAgICB0aGlzLmxvY2F0aW9uLnNldFZhbHVlKG1vZGVsLmxvY2F0aW9uKTtcclxuICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNb2RlbCgpOiBDb2RTaGVsZm1hcmsge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGFnOiB0aGlzLnRhZy52YWx1ZT8udHJpbSgpLFxyXG4gICAgICBjaXR5OiB0aGlzLmNpdHkudmFsdWU/LnRyaW0oKSB8fCAnJyxcclxuICAgICAgbGlicmFyeTogdGhpcy5saWJyYXJ5LnZhbHVlPy50cmltKCkgfHwgJycsXHJcbiAgICAgIGZ1bmQ6IHRoaXMuZnVuZC52YWx1ZT8udHJpbSgpLFxyXG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbi52YWx1ZT8udHJpbSgpIHx8ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRvckNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3NoZWxmbWFyayA9IHRoaXMuZ2V0TW9kZWwoKTtcclxuICAgIHRoaXMuc2hlbGZtYXJrQ2hhbmdlLmVtaXQodGhpcy5fc2hlbGZtYXJrKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJzYXZlKClcIj5cclxuICA8ZGl2PlxyXG4gICAgPCEtLSB0YWcgKGJvdW5kKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cInRhZ0VudHJpZXM/Lmxlbmd0aFwiIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnRhZzwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwidGFnXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGUgb2YgdGFnRW50cmllc1wiIFt2YWx1ZV09XCJlLmlkXCI+e3tcclxuICAgICAgICAgIGUudmFsdWVcclxuICAgICAgICB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gdGFnIChmcmVlKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiF0YWdFbnRyaWVzPy5sZW5ndGhcIj5cclxuICAgICAgPG1hdC1sYWJlbD50YWc8L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJ0YWdcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCIkYW55KHRhZykuZXJyb3JzPy5tYXhMZW5ndGggJiYgKHRhZy5kaXJ0eSB8fCB0YWcudG91Y2hlZClcIlxyXG4gICAgICAgID50YWcgdG9vIGxvbmc8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPCEtLSBjaXR5IC0tPlxyXG4gICAgJm5ic3A7XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+Y2l0eTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImNpdHlcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCIkYW55KGNpdHkpLmVycm9ycz8ucmVxdWlyZWQgJiYgKGNpdHkuZGlydHkgfHwgY2l0eS50b3VjaGVkKVwiXHJcbiAgICAgICAgPmNpdHkgcmVxdWlyZWQ8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIiRhbnkoY2l0eSkuZXJyb3JzPy5tYXhMZW5ndGggJiYgKGNpdHkuZGlydHkgfHwgY2l0eS50b3VjaGVkKVwiXHJcbiAgICAgICAgPmNpdHkgdG9vIGxvbmc8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8IS0tIGxpYnJhcnkgKGJvdW5kKSAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImxpYkVudHJpZXM/Lmxlbmd0aFwiIHN0eWxlPVwid2lkdGg6IDhlbVwiPlxyXG4gICAgICA8bWF0LWxhYmVsPmxpYnJhcnk8L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImxpYnJhcnlcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZSBvZiBsaWJFbnRyaWVzXCIgW3ZhbHVlXT1cImUuaWRcIj57e1xyXG4gICAgICAgICAgZS52YWx1ZVxyXG4gICAgICAgIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsaWJyYXJ5KS5lcnJvcnM/LnJlcXVpcmVkICYmIChsaWJyYXJ5LmRpcnR5IHx8IGxpYnJhcnkudG91Y2hlZClcclxuICAgICAgICBcIlxyXG4gICAgICAgID5saWJyYXJ5IHJlcXVpcmVkPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gbGlicmFyeSAoZnJlZSkgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCIhbGliRW50cmllcz8ubGVuZ3RoXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+bGlicmFyeTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cImxpYnJhcnlcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICRhbnkobGlicmFyeSkuZXJyb3JzPy5yZXF1aXJlZCAmJiAobGlicmFyeS5kaXJ0eSB8fCBsaWJyYXJ5LnRvdWNoZWQpXHJcbiAgICAgICAgXCJcclxuICAgICAgICA+bGlicmFyeSByZXF1aXJlZDwvbWF0LWVycm9yXHJcbiAgICAgID5cclxuICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAkYW55KGxpYnJhcnkpLmVycm9ycz8ubWF4TGVuZ3RoICYmIChsaWJyYXJ5LmRpcnR5IHx8IGxpYnJhcnkudG91Y2hlZClcclxuICAgICAgICBcIlxyXG4gICAgICAgID5saWJyYXJ5IHRvbyBsb25nPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwhLS0gZnVuZCAtLT5cclxuICAgICZuYnNwO1xyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPmZ1bmQ8L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJmdW5kXCIgLz5cclxuICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICpuZ0lmPVwiJGFueShmdW5kKS5lcnJvcnM/Lm1heExlbmd0aCAmJiAoZnVuZC5kaXJ0eSB8fCBmdW5kLnRvdWNoZWQpXCJcclxuICAgICAgICA+ZnVuZCB0b28gbG9uZzwvbWF0LWVycm9yXHJcbiAgICAgID5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8IS0tIGxvY2F0aW9uIC0tPlxyXG4gICAgJm5ic3A7XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+bG9jYXRpb248L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJsb2NhdGlvblwiIC8+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsb2NhdGlvbikuZXJyb3JzPy5yZXF1aXJlZCAmJlxyXG4gICAgICAgICAgKGxvY2F0aW9uLmRpcnR5IHx8IGxvY2F0aW9uLnRvdWNoZWQpXHJcbiAgICAgICAgXCJcclxuICAgICAgICA+bG9jYXRpb24gcmVxdWlyZWQ8L21hdC1lcnJvclxyXG4gICAgICA+XHJcbiAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgJGFueShsb2NhdGlvbikuZXJyb3JzPy5tYXhMZW5ndGggJiZcclxuICAgICAgICAgIChsb2NhdGlvbi5kaXJ0eSB8fCBsb2NhdGlvbi50b3VjaGVkKVxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgPmxvY2F0aW9uIHRvbyBsb25nPC9tYXQtZXJyb3JcclxuICAgICAgPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8IS0tIGJ1dHRvbnMgLS0+XHJcbiAgPGRpdj5cclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBtYXRUb29sdGlwPVwiRGlzY2FyZCBjaGFuZ2VzXCJcclxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIG1hdFRvb2x0aXA9XCJBY2NlcHQgY2hhbmdlc1wiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWQgfHwgZm9ybS5wcmlzdGluZVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
@@ -0,0 +1,151 @@
1
+ import { Component } from '@angular/core';
2
+ import { take } from 'rxjs/operators';
3
+ import { NgToolsValidators } from '@myrmidon/ng-tools';
4
+ import { ModelEditorComponentBase } from '@myrmidon/cadmus-ui';
5
+ import { COD_SHELFMARKS_PART_TYPEID, } from '../cod-shelfmarks-part';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@myrmidon/auth-jwt-login";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@myrmidon/ng-mat-tools";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@angular/material/button";
12
+ import * as i6 from "@angular/material/card";
13
+ import * as i7 from "@angular/material/icon";
14
+ import * as i8 from "@angular/material/tabs";
15
+ import * as i9 from "@angular/material/tooltip";
16
+ import * as i10 from "@myrmidon/cadmus-ui";
17
+ import * as i11 from "../cod-shelfmark-editor/cod-shelfmark-editor.component";
18
+ /**
19
+ * CodShelfmarksPart editor component.
20
+ * Thesauri: cod-shelfmark-tags, cod-shelfmark-libraries (all optional).
21
+ */
22
+ class CodShelfmarksPartComponent extends ModelEditorComponentBase {
23
+ constructor(authService, formBuilder, _dialogService) {
24
+ super(authService, formBuilder);
25
+ this._dialogService = _dialogService;
26
+ this._editedIndex = -1;
27
+ this.tabIndex = 0;
28
+ // form
29
+ this.shelfmarks = formBuilder.control([], {
30
+ nonNullable: true,
31
+ validators: NgToolsValidators.strictMinLengthValidator(1),
32
+ });
33
+ }
34
+ ngOnInit() {
35
+ super.ngOnInit();
36
+ }
37
+ buildForm(formBuilder) {
38
+ return formBuilder.group({
39
+ shelfmarks: this.shelfmarks,
40
+ });
41
+ }
42
+ updateThesauri(thesauri) {
43
+ let key = 'cod-shelfmark-tags';
44
+ if (this.hasThesaurus(key)) {
45
+ this.tagEntries = thesauri[key].entries;
46
+ }
47
+ else {
48
+ this.tagEntries = undefined;
49
+ }
50
+ key = 'cod-shelfmark-libraries';
51
+ if (this.hasThesaurus(key)) {
52
+ this.libEntries = thesauri[key].entries;
53
+ }
54
+ else {
55
+ this.libEntries = undefined;
56
+ }
57
+ }
58
+ updateForm(part) {
59
+ if (!part) {
60
+ this.form.reset();
61
+ return;
62
+ }
63
+ this.shelfmarks.setValue(part.shelfmarks || []);
64
+ this.form.markAsPristine();
65
+ }
66
+ onDataSet(data) {
67
+ // thesauri
68
+ if (data?.thesauri) {
69
+ this.updateThesauri(data.thesauri);
70
+ }
71
+ // form
72
+ this.updateForm(data?.value);
73
+ }
74
+ getValue() {
75
+ let part = this.getEditedPart(COD_SHELFMARKS_PART_TYPEID);
76
+ part.shelfmarks = this.shelfmarks.value || [];
77
+ return part;
78
+ }
79
+ addShelfmark() {
80
+ this.editShelfmark({
81
+ city: '',
82
+ library: this.libEntries?.length ? this.libEntries[0].id : '',
83
+ location: '',
84
+ });
85
+ }
86
+ editShelfmark(shelfmark, index = -1) {
87
+ if (!shelfmark) {
88
+ this._editedIndex = -1;
89
+ this.tabIndex = 0;
90
+ this.editedShelfmark = undefined;
91
+ }
92
+ else {
93
+ this._editedIndex = index;
94
+ this.editedShelfmark = shelfmark;
95
+ setTimeout(() => {
96
+ this.tabIndex = 1;
97
+ });
98
+ }
99
+ }
100
+ onShelfmarkSave(shelfmark) {
101
+ const shelfmarks = [...this.shelfmarks.value];
102
+ if (this._editedIndex > -1) {
103
+ shelfmarks.splice(this._editedIndex, 1, shelfmark);
104
+ }
105
+ else {
106
+ shelfmarks.push(shelfmark);
107
+ }
108
+ this.shelfmarks.setValue(shelfmarks);
109
+ this.editShelfmark(null);
110
+ }
111
+ deleteShelfmark(index) {
112
+ this._dialogService
113
+ .confirm('Confirmation', 'Delete shelfmark?')
114
+ .pipe(take(1))
115
+ .subscribe((yes) => {
116
+ if (yes) {
117
+ const entries = [...this.shelfmarks.value];
118
+ entries.splice(index, 1);
119
+ this.shelfmarks.setValue(entries);
120
+ }
121
+ });
122
+ }
123
+ moveShelfmarkUp(index) {
124
+ if (index < 1) {
125
+ return;
126
+ }
127
+ const entry = this.shelfmarks.value[index];
128
+ const entries = [...this.shelfmarks.value];
129
+ entries.splice(index, 1);
130
+ entries.splice(index - 1, 0, entry);
131
+ this.shelfmarks.setValue(entries);
132
+ }
133
+ moveShelfmarkDown(index) {
134
+ if (index + 1 >= this.shelfmarks.value.length) {
135
+ return;
136
+ }
137
+ const entry = this.shelfmarks.value[index];
138
+ const entries = [...this.shelfmarks.value];
139
+ entries.splice(index, 1);
140
+ entries.splice(index + 1, 0, entry);
141
+ this.shelfmarks.setValue(entries);
142
+ }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CodShelfmarksPartComponent, deps: [{ token: i1.AuthJwtService }, { token: i2.FormBuilder }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-header>\r\n <div mat-card-avatar>\r\n <mat-icon>picture_in_picture</mat-icon>\r\n </div>\r\n <mat-card-title>Shelfmarks Part</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\r\n <mat-tab label=\"shelfmarks\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n (click)=\"addShelfmark()\"\r\n >\r\n <mat-icon>add_circle</mat-icon> shelfmark\r\n </button>\r\n </div>\r\n <table *ngIf=\"shelfmarks?.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>tag</th>\r\n <th>city</th>\r\n <th>library</th>\r\n <th>fund</th>\r\n <th>location</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of shelfmarks?.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this shelfmark\"\r\n (click)=\"editShelfmark(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveShelfmarkUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveShelfmarkDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this shelfmark\"\r\n (click)=\"deleteShelfmark(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.tag }}</td>\r\n <td>{{ entry.city }}</td>\r\n <td>{{ entry.library }}</td>\r\n <td>{{ entry.fund }}</td>\r\n <td>{{ entry.location }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-tab>\r\n\r\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\r\n <cadmus-cod-shelfmark-editor\r\n [tagEntries]=\"tagEntries\"\r\n [libEntries]=\"libEntries\"\r\n [shelfmark]=\"editedShelfmark\"\r\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\r\n (editorClose)=\"editShelfmark(null)\"\r\n ></cadmus-cod-shelfmark-editor>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <cadmus-close-save-buttons\r\n [form]=\"form\"\r\n [noSave]=\"userLevel < 2\"\r\n (closeRequest)=\"close()\"\r\n ></cadmus-close-save-buttons>\r\n </mat-card-actions>\r\n </mat-card>\r\n</form>\r\n", styles: ["th{font-weight:400;color:silver}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i6.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { kind: "directive", type: i6.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i6.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i8.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.CloseSaveButtonsComponent, selector: "cadmus-close-save-buttons", inputs: ["form", "noSave"], outputs: ["closeRequest"] }, { kind: "component", type: i11.CodShelfmarkEditorComponent, selector: "cadmus-cod-shelfmark-editor", inputs: ["shelfmark", "tagEntries", "libEntries"], outputs: ["shelfmarkChange", "editorClose"] }] }); }
145
+ }
146
+ export { CodShelfmarksPartComponent };
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CodShelfmarksPartComponent, decorators: [{
148
+ type: Component,
149
+ args: [{ selector: 'cadmus-cod-shelfmarks-part', template: "<form [formGroup]=\"form\" (submit)=\"save()\">\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-header>\r\n <div mat-card-avatar>\r\n <mat-icon>picture_in_picture</mat-icon>\r\n </div>\r\n <mat-card-title>Shelfmarks Part</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\r\n <mat-tab label=\"shelfmarks\">\r\n <div>\r\n <button\r\n type=\"button\"\r\n mat-flat-button\r\n color=\"primary\"\r\n (click)=\"addShelfmark()\"\r\n >\r\n <mat-icon>add_circle</mat-icon> shelfmark\r\n </button>\r\n </div>\r\n <table *ngIf=\"shelfmarks?.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>tag</th>\r\n <th>city</th>\r\n <th>library</th>\r\n <th>fund</th>\r\n <th>location</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of shelfmarks?.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this shelfmark\"\r\n (click)=\"editShelfmark(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveShelfmarkUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this shelfmark down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveShelfmarkDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this shelfmark\"\r\n (click)=\"deleteShelfmark(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.tag }}</td>\r\n <td>{{ entry.city }}</td>\r\n <td>{{ entry.library }}</td>\r\n <td>{{ entry.fund }}</td>\r\n <td>{{ entry.location }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-tab>\r\n\r\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\r\n <cadmus-cod-shelfmark-editor\r\n [tagEntries]=\"tagEntries\"\r\n [libEntries]=\"libEntries\"\r\n [shelfmark]=\"editedShelfmark\"\r\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\r\n (editorClose)=\"editShelfmark(null)\"\r\n ></cadmus-cod-shelfmark-editor>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <cadmus-close-save-buttons\r\n [form]=\"form\"\r\n [noSave]=\"userLevel < 2\"\r\n (closeRequest)=\"close()\"\r\n ></cadmus-close-save-buttons>\r\n </mat-card-actions>\r\n </mat-card>\r\n</form>\r\n", styles: ["th{font-weight:400;color:silver}\n"] }]
150
+ }], ctorParameters: function () { return [{ type: i1.AuthJwtService }, { type: i2.FormBuilder }, { type: i3.DialogService }]; } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFya3MtcGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtcGFydC1jb2RpY29sb2d5LXNoZWxmbWFya3Mvc3JjL2xpYi9jb2Qtc2hlbGZtYXJrcy1wYXJ0L2NvZC1zaGVsZm1hcmtzLXBhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFya3MtcGFydC9jb2Qtc2hlbGZtYXJrcy1wYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBWSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2pFLE9BQU8sRUFBZ0Isd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUc3RSxPQUFPLEVBR0wsMEJBQTBCLEdBQzNCLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFaEM7OztHQUdHO0FBQ0gsTUFLYSwwQkFDWCxTQUFRLHdCQUEyQztJQWVuRCxZQUNFLFdBQTJCLEVBQzNCLFdBQXdCLEVBQ2hCLGNBQTZCO1FBRXJDLEtBQUssQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFGeEIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFHckMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixPQUFPO1FBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZ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LENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBYTtRQUNwQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzdDLE9BQU87U0FDUjtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0F2SlUsMEJBQTBCO2tHQUExQiwwQkFBMEIseUZDOUJ2QyxpNEhBNkdBOztTRC9FYSwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1CdWlsZGVyLFxyXG4gIEZvcm1Hcm91cCxcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IGRlZXBDb3B5LCBOZ1Rvb2xzVmFsaWRhdG9ycyB9IGZyb20gJ0BteXJtaWRvbi9uZy10b29scyc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAbXlybWlkb24vbmctbWF0LXRvb2xzJztcclxuaW1wb3J0IHsgQXV0aEp3dFNlcnZpY2UgfSBmcm9tICdAbXlybWlkb24vYXV0aC1qd3QtbG9naW4nO1xyXG5pbXBvcnQgeyBFZGl0ZWRPYmplY3QsIE1vZGVsRWRpdG9yQ29tcG9uZW50QmFzZSB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtdWknO1xyXG5pbXBvcnQgeyBUaGVzYXVyaVNldCwgVGhlc2F1cnVzRW50cnkgfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLWNvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDb2RTaGVsZm1hcmssXHJcbiAgQ29kU2hlbGZtYXJrc1BhcnQsXHJcbiAgQ09EX1NIRUxGTUFSS1NfUEFSVF9UWVBFSUQsXHJcbn0gZnJvbSAnLi4vY29kLXNoZWxmbWFya3MtcGFydCc7XHJcblxyXG4vKipcclxuICogQ29kU2hlbGZtYXJrc1BhcnQgZWRpdG9yIGNvbXBvbmVudC5cclxuICogVGhlc2F1cmk6IGNvZC1zaGVsZm1hcmstdGFncywgY29kLXNoZWxmbWFyay1saWJyYXJpZXMgKGFsbCBvcHRpb25hbCkuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NhZG11cy1jb2Qtc2hlbGZtYXJrcy1wYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNoZWxmbWFya3MtcGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29kLXNoZWxmbWFya3MtcGFydC5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2RTaGVsZm1hcmtzUGFydENvbXBvbmVudFxyXG4gIGV4dGVuZHMgTW9kZWxFZGl0b3JDb21wb25lbnRCYXNlPENvZFNoZWxmbWFya3NQYXJ0PlxyXG4gIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICBwcml2YXRlIF9lZGl0ZWRJbmRleDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgdGFiSW5kZXg6IG51bWJlcjtcclxuICBwdWJsaWMgZWRpdGVkU2hlbGZtYXJrOiBDb2RTaGVsZm1hcmsgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vIGNvZC1zaGVsZm1hcmstdGFnc1xyXG4gIHB1YmxpYyB0YWdFbnRyaWVzOiBUaGVzYXVydXNFbnRyeVtdIHwgdW5kZWZpbmVkO1xyXG4gIC8vIGNvZC1zaGVsZm1hcmstbGlicmFyaWVzXHJcbiAgcHVibGljIGxpYkVudHJpZXM6IFRoZXNhdXJ1c0VudHJ5W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBzaGVsZm1hcmtzOiBGb3JtQ29udHJvbDxDb2RTaGVsZm1hcmtbXT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgYXV0aFNlcnZpY2U6IEF1dGhKd3RTZXJ2aWNlLFxyXG4gICAgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoYXV0aFNlcnZpY2UsIGZvcm1CdWlsZGVyKTtcclxuICAgIHRoaXMuX2VkaXRlZEluZGV4ID0gLTE7XHJcbiAgICB0aGlzLnRhYkluZGV4ID0gMDtcclxuICAgIC8vIGZvcm1cclxuICAgIHRoaXMuc2hlbGZtYXJrcyA9IGZvcm1CdWlsZGVyLmNvbnRyb2woW10sIHtcclxuICAgICAgbm9uTnVsbGFibGU6IHRydWUsXHJcbiAgICAgIHZhbGlkYXRvcnM6IE5nVG9vbHNWYWxpZGF0b3JzLnN0cmljdE1pbkxlbmd0aFZhbGlkYXRvcigxKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBidWlsZEZvcm0oZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKTogRm9ybUdyb3VwIHwgVW50eXBlZEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBzaGVsZm1hcmtzOiB0aGlzLnNoZWxmbWFya3MsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVGhlc2F1cmkodGhlc2F1cmk6IFRoZXNhdXJpU2V0KTogdm9pZCB7XHJcbiAgICBsZXQga2V5ID0gJ2NvZC1zaGVsZm1hcmstdGFncyc7XHJcbiAgICBpZiAodGhpcy5oYXNUaGVzYXVydXMoa2V5KSkge1xyXG4gICAgICB0aGlzLnRhZ0VudHJpZXMgPSB0aGVzYXVyaVtrZXldLmVudHJpZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhZ0VudHJpZXMgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBrZXkgPSAnY29kLXNoZWxmbWFyay1saWJyYXJpZXMnO1xyXG4gICAgaWYgKHRoaXMuaGFzVGhlc2F1cnVzKGtleSkpIHtcclxuICAgICAgdGhpcy5saWJFbnRyaWVzID0gdGhlc2F1cmlba2V5XS5lbnRyaWVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5saWJFbnRyaWVzID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVGb3JtKHBhcnQ/OiBDb2RTaGVsZm1hcmtzUGFydCB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICghcGFydCkge1xyXG4gICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaGVsZm1hcmtzLnNldFZhbHVlKHBhcnQuc2hlbGZtYXJrcyB8fCBbXSk7XHJcbiAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbkRhdGFTZXQoZGF0YT86IEVkaXRlZE9iamVjdDxDb2RTaGVsZm1hcmtzUGFydD4pOiB2b2lkIHtcclxuICAgIC8vIHRoZXNhdXJpXHJcbiAgICBpZiAoZGF0YT8udGhlc2F1cmkpIHtcclxuICAgICAgdGhpcy51cGRhdGVUaGVzYXVyaShkYXRhLnRoZXNhdXJpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBmb3JtXHJcbiAgICB0aGlzLnVwZGF0ZUZvcm0oZGF0YT8udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFZhbHVlKCk6IENvZFNoZWxmbWFya3NQYXJ0IHtcclxuICAgIGxldCBwYXJ0ID0gdGhpcy5nZXRFZGl0ZWRQYXJ0KFxyXG4gICAgICBDT0RfU0hFTEZNQVJLU19QQVJUX1RZUEVJRFxyXG4gICAgKSBhcyBDb2RTaGVsZm1hcmtzUGFydDtcclxuICAgIHBhcnQuc2hlbGZtYXJrcyA9IHRoaXMuc2hlbGZtYXJrcy52YWx1ZSB8fCBbXTtcclxuICAgIHJldHVybiBwYXJ0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFNoZWxmbWFyaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdFNoZWxmbWFyayh7XHJcbiAgICAgIGNpdHk6ICcnLFxyXG4gICAgICBsaWJyYXJ5OiB0aGlzLmxpYkVudHJpZXM/Lmxlbmd0aCA/IHRoaXMubGliRW50cmllc1swXS5pZCA6ICcnLFxyXG4gICAgICBsb2NhdGlvbjogJycsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlZGl0U2hlbGZtYXJrKHNoZWxmbWFyazogQ29kU2hlbGZtYXJrIHwgbnVsbCwgaW5kZXggPSAtMSk6IHZvaWQge1xyXG4gICAgaWYgKCFzaGVsZm1hcmspIHtcclxuICAgICAgdGhpcy5fZWRpdGVkSW5kZXggPSAtMTtcclxuICAgICAgdGhpcy50YWJJbmRleCA9IDA7XHJcbiAgICAgIHRoaXMuZWRpdGVkU2hlbGZtYXJrID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZWRpdGVkSW5kZXggPSBpbmRleDtcclxuICAgICAgdGhpcy5lZGl0ZWRTaGVsZm1hcmsgPSBzaGVsZm1hcms7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFiSW5kZXggPSAxO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNoZWxmbWFya1NhdmUoc2hlbGZtYXJrOiBDb2RTaGVsZm1hcmspOiB2b2lkIHtcclxuICAgIGNvbnN0IHNoZWxmbWFya3MgPSBbLi4udGhpcy5zaGVsZm1hcmtzLnZhbHVlXTtcclxuXHJcbiAgICBpZiAodGhpcy5fZWRpdGVkSW5kZXggPiAtMSkge1xyXG4gICAgICBzaGVsZm1hcmtzLnNwbGljZSh0aGlzLl9lZGl0ZWRJbmRleCwgMSwgc2hlbGZtYXJrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNoZWxmbWFya3MucHVzaChzaGVsZm1hcmspO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hlbGZtYXJrcy5zZXRWYWx1ZShzaGVsZm1hcmtzKTtcclxuICAgIHRoaXMuZWRpdFNoZWxmbWFyayhudWxsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVTaGVsZm1hcmsoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlhbG9nU2VydmljZVxyXG4gICAgICAuY29uZmlybSgnQ29uZmlybWF0aW9uJywgJ0RlbGV0ZSBzaGVsZm1hcms/JylcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgoeWVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHllcykge1xyXG4gICAgICAgICAgY29uc3QgZW50cmllcyA9IFsuLi50aGlzLnNoZWxmbWFya3MudmFsdWVdO1xyXG4gICAgICAgICAgZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgdGhpcy5zaGVsZm1hcmtzLnNldFZhbHVlKGVudHJpZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW92ZVNoZWxmbWFya1VwKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCA8IDEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZW50cnkgPSB0aGlzLnNoZWxmbWFya3MudmFsdWVbaW5kZXhdO1xyXG4gICAgY29uc3QgZW50cmllcyA9IFsuLi50aGlzLnNoZWxmbWFya3MudmFsdWVdO1xyXG4gICAgZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgZW50cmllcy5zcGxpY2UoaW5kZXggLSAxLCAwLCBlbnRyeSk7XHJcbiAgICB0aGlzLnNoZWxmbWFya3Muc2V0VmFsdWUoZW50cmllcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW92ZVNoZWxmbWFya0Rvd24oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ICsgMSA+PSB0aGlzLnNoZWxmbWFya3MudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5zaGVsZm1hcmtzLnZhbHVlW2luZGV4XTtcclxuICAgIGNvbnN0IGVudHJpZXMgPSBbLi4udGhpcy5zaGVsZm1hcmtzLnZhbHVlXTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGVudHJpZXMuc3BsaWNlKGluZGV4ICsgMSwgMCwgZW50cnkpO1xyXG4gICAgdGhpcy5zaGVsZm1hcmtzLnNldFZhbHVlKGVudHJpZXMpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAoc3VibWl0KT1cInNhdmUoKVwiPlxyXG4gIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIj5cclxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgbWF0LWNhcmQtYXZhdGFyPlxyXG4gICAgICAgIDxtYXQtaWNvbj5waWN0dXJlX2luX3BpY3R1cmU8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlNoZWxmbWFya3MgUGFydDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8bWF0LXRhYi1ncm91cCBbKHNlbGVjdGVkSW5kZXgpXT1cInRhYkluZGV4XCI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJzaGVsZm1hcmtzXCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkU2hlbGZtYXJrKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmFkZF9jaXJjbGU8L21hdC1pY29uPiBzaGVsZm1hcmtcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInNoZWxmbWFya3M/LnZhbHVlPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgIDx0aD48L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPnRhZzwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+Y2l0eTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+bGlicmFyeTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+ZnVuZDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+bG9jYXRpb248L3RoPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICA8dHJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICBsZXQgZW50cnkgb2Ygc2hlbGZtYXJrcz8udmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBpID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IGZpcnN0O1xyXG4gICAgICAgICAgICAgICAgICBsZXQgbGFzdCA9IGxhc3RcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB0aGlzIHNoZWxmbWFya1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRTaGVsZm1hcmsoZW50cnksIGkpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTW92ZSB0aGlzIHNoZWxmbWFyayB1cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpcnN0XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZVNoZWxmbWFya1VwKGkpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5hcnJvd191cHdhcmQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJNb3ZlIHRoaXMgc2hlbGZtYXJrIGRvd25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZVNoZWxmbWFya0Rvd24oaSlcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmFycm93X2Rvd253YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cIndhcm5cIlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJEZWxldGUgdGhpcyBzaGVsZm1hcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVTaGVsZm1hcmsoaSlcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnJlbW92ZV9jaXJjbGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgZW50cnkudGFnIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBlbnRyeS5jaXR5IH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBlbnRyeS5saWJyYXJ5IH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBlbnRyeS5mdW5kIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBlbnRyeS5sb2NhdGlvbiB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgPC9tYXQtdGFiPlxyXG5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cInNoZWxmbWFya1wiICpuZ0lmPVwiZWRpdGVkU2hlbGZtYXJrXCI+XHJcbiAgICAgICAgICA8Y2FkbXVzLWNvZC1zaGVsZm1hcmstZWRpdG9yXHJcbiAgICAgICAgICAgIFt0YWdFbnRyaWVzXT1cInRhZ0VudHJpZXNcIlxyXG4gICAgICAgICAgICBbbGliRW50cmllc109XCJsaWJFbnRyaWVzXCJcclxuICAgICAgICAgICAgW3NoZWxmbWFya109XCJlZGl0ZWRTaGVsZm1hcmtcIlxyXG4gICAgICAgICAgICAoc2hlbGZtYXJrQ2hhbmdlKT1cIm9uU2hlbGZtYXJrU2F2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGVkaXRvckNsb3NlKT1cImVkaXRTaGVsZm1hcmsobnVsbClcIlxyXG4gICAgICAgICAgPjwvY2FkbXVzLWNvZC1zaGVsZm1hcmstZWRpdG9yPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDxjYWRtdXMtY2xvc2Utc2F2ZS1idXR0b25zXHJcbiAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgW25vU2F2ZV09XCJ1c2VyTGV2ZWwgPCAyXCJcclxuICAgICAgICAoY2xvc2VSZXF1ZXN0KT1cImNsb3NlKClcIlxyXG4gICAgICA+PC9jYWRtdXMtY2xvc2Utc2F2ZS1idXR0b25zPlxyXG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbjwvZm9ybT5cclxuIl19
@@ -0,0 +1,25 @@
1
+ import { Component } from '@angular/core';
2
+ import { EditPartFeatureBase } from '@myrmidon/cadmus-state';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/router";
5
+ import * as i2 from "@angular/material/snack-bar";
6
+ import * as i3 from "@myrmidon/cadmus-api";
7
+ import * as i4 from "@myrmidon/cadmus-state";
8
+ import * as i5 from "@myrmidon/cadmus-ui-pg";
9
+ import * as i6 from "../cod-shelfmarks-part/cod-shelfmarks-part.component";
10
+ class CodShelfmarksPartFeatureComponent extends EditPartFeatureBase {
11
+ constructor(router, route, snackbar, itemService, thesaurusService, editorService) {
12
+ super(router, route, snackbar, itemService, thesaurusService, editorService);
13
+ }
14
+ getReqThesauriIds() {
15
+ return ['cod-shelfmark-tags', 'cod-shelfmark-libraries'];
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CodShelfmarksPartFeatureComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.MatSnackBar }, { token: i3.ItemService }, { token: i3.ThesaurusService }, { token: i4.PartEditorService }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: CodShelfmarksPartFeatureComponent, selector: "cadmus-cod-shelfmarks-part-feature", usesInheritance: true, ngImport: i0, template: "<cadmus-current-item-bar></cadmus-current-item-bar>\r\n<cadmus-cod-shelfmarks-part\r\n [identity]=\"identity\"\r\n [data]=\"$any(data)\"\r\n (dataChange)=\"save($event)\"\r\n (editorClose)=\"close()\"\r\n (dirtyChange)=\"onDirtyChange($event)\"\r\n></cadmus-cod-shelfmarks-part>\r\n", styles: [""], dependencies: [{ kind: "component", type: i5.CurrentItemBarComponent, selector: "cadmus-current-item-bar" }, { kind: "component", type: i6.CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part" }] }); }
19
+ }
20
+ export { CodShelfmarksPartFeatureComponent };
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CodShelfmarksPartFeatureComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'cadmus-cod-shelfmarks-part-feature', template: "<cadmus-current-item-bar></cadmus-current-item-bar>\r\n<cadmus-cod-shelfmarks-part\r\n [identity]=\"identity\"\r\n [data]=\"$any(data)\"\r\n (dataChange)=\"save($event)\"\r\n (editorClose)=\"close()\"\r\n (dirtyChange)=\"onDirtyChange($event)\"\r\n></cadmus-cod-shelfmarks-part>\r\n" }]
24
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.MatSnackBar }, { type: i3.ItemService }, { type: i3.ThesaurusService }, { type: i4.PartEditorService }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNoZWxmbWFya3MtcGFydC1mZWF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy1wYXJ0LWNvZGljb2xvZ3ktc2hlbGZtYXJrcy9zcmMvbGliL2NvZC1zaGVsZm1hcmtzLXBhcnQtZmVhdHVyZS9jb2Qtc2hlbGZtYXJrcy1wYXJ0LWZlYXR1cmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXBhcnQtY29kaWNvbG9neS1zaGVsZm1hcmtzL3NyYy9saWIvY29kLXNoZWxmbWFya3MtcGFydC1mZWF0dXJlL2NvZC1zaGVsZm1hcmtzLXBhcnQtZmVhdHVyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBRSxtQkFBbUIsRUFBcUIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFHaEYsTUFLYSxpQ0FDWCxTQUFRLG1CQUFtQjtJQUczQixZQUNFLE1BQWMsRUFDZCxLQUFxQixFQUNyQixRQUFxQixFQUNyQixXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsYUFBZ0M7UUFFaEMsS0FBSyxDQUNILE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsYUFBYSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRWtCLGlCQUFpQjtRQUNsQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQXhCVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxpR0NaOUMsaVNBUUE7O1NESWEsaUNBQWlDOzJGQUFqQyxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0Usb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuXHJcbmltcG9ydCB7IEVkaXRQYXJ0RmVhdHVyZUJhc2UsIFBhcnRFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1zdGF0ZSc7XHJcbmltcG9ydCB7IEl0ZW1TZXJ2aWNlLCBUaGVzYXVydXNTZXJ2aWNlIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1hcGknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjYWRtdXMtY29kLXNoZWxmbWFya3MtcGFydC1mZWF0dXJlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNoZWxmbWFya3MtcGFydC1mZWF0dXJlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2Qtc2hlbGZtYXJrcy1wYXJ0LWZlYXR1cmUuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29kU2hlbGZtYXJrc1BhcnRGZWF0dXJlQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBFZGl0UGFydEZlYXR1cmVCYXNlXHJcbiAgaW1wbGVtZW50cyBPbkluaXRcclxue1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBzbmFja2JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBpdGVtU2VydmljZTogSXRlbVNlcnZpY2UsXHJcbiAgICB0aGVzYXVydXNTZXJ2aWNlOiBUaGVzYXVydXNTZXJ2aWNlLFxyXG4gICAgZWRpdG9yU2VydmljZTogUGFydEVkaXRvclNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKFxyXG4gICAgICByb3V0ZXIsXHJcbiAgICAgIHJvdXRlLFxyXG4gICAgICBzbmFja2JhcixcclxuICAgICAgaXRlbVNlcnZpY2UsXHJcbiAgICAgIHRoZXNhdXJ1c1NlcnZpY2UsXHJcbiAgICAgIGVkaXRvclNlcnZpY2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0UmVxVGhlc2F1cmlJZHMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFsnY29kLXNoZWxmbWFyay10YWdzJywgJ2NvZC1zaGVsZm1hcmstbGlicmFyaWVzJ107XHJcbiAgfVxyXG59XHJcbiIsIjxjYWRtdXMtY3VycmVudC1pdGVtLWJhcj48L2NhZG11cy1jdXJyZW50LWl0ZW0tYmFyPlxyXG48Y2FkbXVzLWNvZC1zaGVsZm1hcmtzLXBhcnRcclxuICBbaWRlbnRpdHldPVwiaWRlbnRpdHlcIlxyXG4gIFtkYXRhXT1cIiRhbnkoZGF0YSlcIlxyXG4gIChkYXRhQ2hhbmdlKT1cInNhdmUoJGV2ZW50KVwiXHJcbiAgKGVkaXRvckNsb3NlKT1cImNsb3NlKClcIlxyXG4gIChkaXJ0eUNoYW5nZSk9XCJvbkRpcnR5Q2hhbmdlKCRldmVudClcIlxyXG4+PC9jYWRtdXMtY29kLXNoZWxmbWFya3MtcGFydD5cclxuIl19