@myrmidon/cadmus-part-codicology-shelfmarks 0.0.2
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/README.md +24 -0
- package/esm2020/lib/cadmus-part-codicology-shelfmarks.module.mjs +91 -0
- package/esm2020/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.mjs +100 -0
- package/esm2020/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.mjs +151 -0
- package/esm2020/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.mjs +26 -0
- package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.query.mjs +16 -0
- package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.service.mjs +18 -0
- package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.store.mjs +27 -0
- package/esm2020/lib/cod-shelfmarks-part.mjs +87 -0
- package/esm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs +5 -0
- package/esm2020/public-api.mjs +9 -0
- package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs +492 -0
- package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -0
- package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs +490 -0
- package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -0
- package/lib/cadmus-part-codicology-shelfmarks.module.d.ts +21 -0
- package/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.d.ts +28 -0
- package/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.d.ts +36 -0
- package/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.d.ts +13 -0
- package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.query.d.ts +8 -0
- package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.service.d.ts +9 -0
- package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.store.d.ts +10 -0
- package/lib/cod-shelfmarks-part.d.ts +90 -0
- package/myrmidon-cadmus-part-codicology-shelfmarks.d.ts +5 -0
- package/package.json +43 -0
- package/public-api.d.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"myrmidon-cadmus-part-codicology-shelfmarks.mjs","sources":["../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.html","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.html","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.store.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.query.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.service.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.html","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/lib/cadmus-part-codicology-shelfmarks.module.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/public-api.ts","../../../../projects/myrmidon/cadmus-part-codicology-shelfmarks/src/myrmidon-cadmus-part-codicology-shelfmarks.ts"],"sourcesContent":["import { Part } from '@myrmidon/cadmus-core';\r\n\r\n/**\r\n * A manuscript's shelfmark.\r\n */\r\nexport interface CodShelfmark {\r\n tag?: string;\r\n city: string;\r\n library: string;\r\n fund?: string;\r\n location: string;\r\n}\r\n\r\n/**\r\n * The CodShelfmarks part model.\r\n */\r\nexport interface CodShelfmarksPart extends Part {\r\n shelfmarks: CodShelfmark[];\r\n}\r\n\r\n/**\r\n * The type ID used to identify the CodShelfmarksPart type.\r\n */\r\nexport const COD_SHELFMARKS_PART_TYPEID = 'it.vedph.codicology.shelfmarks';\r\n\r\n/**\r\n * JSON schema for the CodShelfmarks part.\r\n * You can use the JSON schema tool at https://jsonschema.net/.\r\n */\r\nexport const COD_SHELFMARKS_PART_SCHEMA = {\r\n $schema: 'http://json-schema.org/draft-07/schema#',\r\n $id:\r\n 'www.vedph.it/cadmus/parts/codicology/' +\r\n COD_SHELFMARKS_PART_TYPEID +\r\n '.json',\r\n type: 'object',\r\n title: 'CodShelfmarksPart',\r\n required: [\r\n 'id',\r\n 'itemId',\r\n 'typeId',\r\n 'timeCreated',\r\n 'creatorId',\r\n 'timeModified',\r\n 'userId',\r\n 'shelfmarks',\r\n ],\r\n properties: {\r\n timeCreated: {\r\n type: 'string',\r\n pattern: '^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}.\\\\d+Z$',\r\n },\r\n creatorId: {\r\n type: 'string',\r\n },\r\n timeModified: {\r\n type: 'string',\r\n pattern: '^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}.\\\\d+Z$',\r\n },\r\n userId: {\r\n type: 'string',\r\n },\r\n id: {\r\n type: 'string',\r\n pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',\r\n },\r\n itemId: {\r\n type: 'string',\r\n pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',\r\n },\r\n typeId: {\r\n type: 'string',\r\n pattern: '^[a-z][-0-9a-z._]*$',\r\n },\r\n roleId: {\r\n type: ['string', 'null'],\r\n pattern: '^([a-z][-0-9a-z._]*)?$',\r\n },\r\n shelfmarks: {\r\n type: 'array',\r\n items: {\r\n anyOf: [\r\n {\r\n type: 'object',\r\n required: ['city', 'library', 'location'],\r\n properties: {\r\n tag: {\r\n type: 'string',\r\n },\r\n city: {\r\n type: 'string',\r\n },\r\n library: {\r\n type: 'string',\r\n },\r\n fund: {\r\n type: 'string',\r\n },\r\n location: {\r\n type: 'string',\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n};\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { ThesaurusEntry } from '@myrmidon/cadmus-core';\nimport { CodShelfmark } from '../cod-shelfmarks-part';\n\n@Component({\n selector: 'cadmus-cod-shelfmark-editor',\n templateUrl: './cod-shelfmark-editor.component.html',\n styleUrls: ['./cod-shelfmark-editor.component.css'],\n})\nexport class CodShelfmarkEditorComponent implements OnInit {\n private _shelfmark: CodShelfmark | undefined;\n\n @Input()\n public get shelfmark(): CodShelfmark | undefined {\n return this._shelfmark;\n }\n public set shelfmark(value: CodShelfmark | undefined) {\n this._shelfmark = value;\n this.updateForm(value);\n }\n\n // cod-shelfmark-tags\n @Input()\n public tagEntries: ThesaurusEntry[] | undefined;\n // cod-shelfmark-libraries\n @Input()\n public libEntries: ThesaurusEntry[] | undefined;\n\n @Output()\n public shelfmarkChange: EventEmitter<CodShelfmark>;\n @Output()\n public editorClose: EventEmitter<any>;\n\n public tag: FormControl;\n public city: FormControl;\n public library: FormControl;\n public fund: FormControl;\n public location: FormControl;\n public form: FormGroup;\n\n constructor(formBuilder: FormBuilder) {\n this.shelfmarkChange = new EventEmitter<CodShelfmark>();\n this.editorClose = new EventEmitter<any>();\n // form\n this.tag = formBuilder.control(null, Validators.maxLength(50));\n this.city = formBuilder.control(null, [\n Validators.required,\n Validators.maxLength(50),\n ]);\n this.library = formBuilder.control(null, [\n Validators.required,\n Validators.maxLength(50),\n ]);\n this.fund = formBuilder.control(null, Validators.maxLength(50));\n this.location = formBuilder.control(null, Validators.maxLength(50));\n\n this.form = formBuilder.group({\n tag: this.tag,\n city: this.city,\n library: this.library,\n fund: this.fund,\n location: this.location,\n });\n }\n\n ngOnInit(): void {\n if (this._shelfmark) {\n this.updateForm(this._shelfmark);\n }\n }\n\n private updateForm(model: CodShelfmark | undefined): void {\n if (!model) {\n this.form.reset();\n return;\n }\n\n this.tag.setValue(model.tag);\n this.city.setValue(model.city);\n this.library.setValue(model.library);\n this.fund.setValue(model.fund);\n this.location.setValue(model.location);\n this.form.markAsPristine();\n }\n\n private getModel(): CodShelfmark | null {\n return {\n tag: this.tag.value?.trim(),\n city: this.city.value?.trim(),\n library: this.library.value?.trim(),\n fund: this.fund.value?.trim(),\n location: this.location.value?.trim(),\n };\n }\n\n public cancel(): void {\n this.editorClose.emit();\n }\n\n public save(): void {\n if (this.form.invalid) {\n return;\n }\n const model = this.getModel();\n if (!model) {\n return;\n }\n this.shelfmarkChange.emit(model);\n }\n}\n","<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <!-- tag (bound) -->\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"tag\" placeholder=\"tag\">\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- tag (free) -->\n <mat-form-field *ngIf=\"!tagEntries?.length\">\n <input matInput [formControl]=\"tag\" placeholder=\"tag\" />\n <mat-error\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\n >tag too long</mat-error\n >\n </mat-form-field>\n <!-- city -->\n \n <mat-form-field>\n <input matInput [formControl]=\"city\" placeholder=\"city\" />\n <mat-error\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\n >city required</mat-error\n >\n <mat-error\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\n >city too long</mat-error\n >\n </mat-form-field>\n </div>\n <div>\n <!-- library (bound) -->\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"library\" placeholder=\"library\">\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n </mat-form-field>\n <!-- library (free) -->\n <mat-form-field *ngIf=\"!libEntries?.length\">\n <input matInput [formControl]=\"library\" placeholder=\"library\" />\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(library).errors?.maxLength && (library.dirty || library.touched)\n \"\n >library too long</mat-error\n >\n </mat-form-field>\n <!-- fund -->\n \n <mat-form-field>\n <input matInput [formControl]=\"fund\" placeholder=\"fund\" />\n <mat-error\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\n >fund too long</mat-error\n >\n </mat-form-field>\n <!-- location -->\n \n <mat-form-field>\n <input matInput [formControl]=\"location\" placeholder=\"location\" />\n <mat-error\n *ngIf=\"\n $any(location).errors?.required &&\n (location.dirty || location.touched)\n \"\n >location required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(location).errors?.maxLength &&\n (location.dirty || location.touched)\n \"\n >location too long</mat-error\n >\n </mat-form-field>\n </div>\n <!-- buttons -->\n <div>\n <button\n type=\"button\"\n color=\"warn\"\n mat-icon-button\n matTooltip=\"Discard changes\"\n (click)=\"cancel()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n <button\n type=\"submit\"\n color=\"primary\"\n mat-icon-button\n matTooltip=\"Accept changes\"\n [disabled]=\"form.invalid || form.pristine\"\n >\n <mat-icon>check_circle</mat-icon>\n </button>\n </div>\n</form>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormBuilder } from '@angular/forms';\nimport { take } from 'rxjs/operators';\n\nimport { deepCopy, NgToolsValidators } from '@myrmidon/ng-tools';\nimport { DialogService } from '@myrmidon/ng-mat-tools';\nimport { AuthJwtService } from '@myrmidon/auth-jwt-login';\nimport { ModelEditorComponentBase } from '@myrmidon/cadmus-ui';\nimport { ThesaurusEntry } from '@myrmidon/cadmus-core';\n\nimport {\n CodShelfmark,\n CodShelfmarksPart,\n COD_SHELFMARKS_PART_TYPEID,\n} from '../cod-shelfmarks-part';\n\n/**\n * CodShelfmarksPart editor component.\n * Thesauri: cod-shelfmark-tags, cod-shelfmark-libraries (all optional).\n */\n@Component({\n selector: 'cadmus-cod-shelfmarks-part',\n templateUrl: './cod-shelfmarks-part.component.html',\n styleUrls: ['./cod-shelfmarks-part.component.css'],\n})\nexport class CodShelfmarksPartComponent\n extends ModelEditorComponentBase<CodShelfmarksPart>\n implements OnInit\n{\n private _editedIndex: number;\n\n public tabIndex: number;\n public editedShelfmark: CodShelfmark | undefined;\n\n // cod-shelfmark-tags\n public tagEntries: ThesaurusEntry[] | undefined;\n // cod-shelfmark-libraries\n public libEntries: ThesaurusEntry[] | undefined;\n\n public shelfmarks: FormControl;\n\n constructor(\n authService: AuthJwtService,\n formBuilder: FormBuilder,\n private _dialogService: DialogService\n ) {\n super(authService);\n this._editedIndex = -1;\n this.tabIndex = 0;\n // form\n this.shelfmarks = formBuilder.control(\n [],\n NgToolsValidators.strictMinLengthValidator(1)\n );\n this.form = formBuilder.group({\n entries: this.shelfmarks,\n });\n }\n\n public ngOnInit(): void {\n this.initEditor();\n }\n\n private updateForm(model: CodShelfmarksPart): void {\n if (!model) {\n this.form!.reset();\n return;\n }\n this.shelfmarks.setValue(model.shelfmarks || []);\n this.form!.markAsPristine();\n }\n\n protected onModelSet(model: CodShelfmarksPart): void {\n this.updateForm(deepCopy(model));\n }\n\n protected override onThesauriSet(): void {\n let key = 'cod-shelfmark-tags';\n if (this.thesauri && this.thesauri[key]) {\n this.tagEntries = this.thesauri[key].entries;\n } else {\n this.tagEntries = undefined;\n }\n key = 'cod-shelfmark-libraries';\n if (this.thesauri && this.thesauri[key]) {\n this.libEntries = this.thesauri[key].entries;\n } else {\n this.libEntries = undefined;\n }\n }\n\n protected getModelFromForm(): CodShelfmarksPart {\n let part = this.model;\n if (!part) {\n part = {\n itemId: this.itemId || '',\n id: '',\n typeId: COD_SHELFMARKS_PART_TYPEID,\n roleId: this.roleId,\n timeCreated: new Date(),\n creatorId: '',\n timeModified: new Date(),\n userId: '',\n shelfmarks: [],\n };\n }\n part.shelfmarks = this.shelfmarks.value || [];\n return part;\n }\n\n public addShelfmark(): void {\n const entry: CodShelfmark = {\n city: '',\n library: this.libEntries?.length ? this.libEntries[0].id : '',\n location: '',\n };\n this.shelfmarks.setValue([...this.shelfmarks.value, entry]);\n this.editShelfmark(this.shelfmarks.value.length - 1);\n }\n\n public editShelfmark(index: number): void {\n if (index < 0) {\n this._editedIndex = -1;\n this.tabIndex = 0;\n this.editedShelfmark = undefined;\n } else {\n this._editedIndex = index;\n this.editedShelfmark = this.shelfmarks.value[index];\n setTimeout(() => {\n this.tabIndex = 1;\n }, 300);\n }\n }\n\n public onShelfmarkSave(entry: CodShelfmark): void {\n this.shelfmarks.setValue(\n this.shelfmarks.value.map((e: CodShelfmark, i: number) =>\n i === this._editedIndex ? entry : e\n )\n );\n this.editShelfmark(-1);\n }\n\n public onShelfmarkClose(): void {\n this.editShelfmark(-1);\n }\n\n public deleteShelfmark(index: number): void {\n this._dialogService\n .confirm('Confirmation', 'Delete shelfmark?')\n .pipe(take(1))\n .subscribe((yes) => {\n if (yes) {\n const entries = [...this.shelfmarks.value];\n entries.splice(index, 1);\n this.shelfmarks.setValue(entries);\n }\n });\n }\n\n public moveShelfmarkUp(index: number): void {\n if (index < 1) {\n return;\n }\n const entry = this.shelfmarks.value[index];\n const entries = [...this.shelfmarks.value];\n entries.splice(index, 1);\n entries.splice(index - 1, 0, entry);\n this.shelfmarks.setValue(entries);\n }\n\n public moveShelfmarkDown(index: number): void {\n if (index + 1 >= this.shelfmarks.value.length) {\n return;\n }\n const entry = this.shelfmarks.value[index];\n const entries = [...this.shelfmarks.value];\n entries.splice(index, 1);\n entries.splice(index + 1, 0, entry);\n this.shelfmarks.setValue(entries);\n }\n}\n","<form [formGroup]=\"form!\" (submit)=\"save()\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon>picture_in_picture</mat-icon>\n </div>\n <mat-card-title>Shelfmarks Part</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\n <mat-tab label=\"shelfmarks\">\n <div>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"addShelfmark()\"\n >\n <mat-icon>add_circle</mat-icon> add shelfmark\n </button>\n </div>\n <table *ngIf=\"shelfmarks?.value?.length\">\n <thead>\n <tr>\n <th></th>\n <th>tag</th>\n <th>city</th>\n <th>library</th>\n <th>fund</th>\n <th>location</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let entry of shelfmarks?.value;\n let i = index;\n let first = first;\n let last = last\n \"\n >\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this shelfmark\"\n (click)=\"editShelfmark(i)\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark up\"\n [disabled]=\"first\"\n (click)=\"moveShelfmarkUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark down\"\n [disabled]=\"last\"\n (click)=\"moveShelfmarkDown(i)\"\n >\n <mat-icon>arrow_downward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n color=\"warn\"\n matTooltip=\"Delete this shelfmark\"\n (click)=\"deleteShelfmark(i)\"\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.tag }}</td>\n <td>{{ entry.city }}</td>\n <td>{{ entry.library }}</td>\n <td>{{ entry.fund }}</td>\n <td>{{ entry.location }}</td>\n </tr>\n </tbody>\n </table>\n </mat-tab>\n\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\n <cadmus-cod-shelfmark-editor\n [tagEntries]=\"tagEntries\"\n [libEntries]=\"libEntries\"\n [shelfmark]=\"editedShelfmark\"\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\n (editorClose)=\"onShelfmarkClose()\"\n ></cadmus-cod-shelfmark-editor>\n </mat-tab>\n </mat-tab-group>\n </mat-card-content>\n <mat-card-actions>\n <cadmus-close-save-buttons\n [form]=\"form\"\n [noSave]=\"userLevel < 2\"\n (closeRequest)=\"close()\"\n ></cadmus-close-save-buttons>\n </mat-card-actions>\n </mat-card>\n</form>\n","import { Injectable } from '@angular/core';\r\nimport { StoreConfig, Store } from '@datorama/akita';\r\n\r\nimport { EditPartState, EditPartStoreApi } from '@myrmidon/cadmus-state';\r\nimport { COD_SHELFMARKS_PART_TYPEID } from '../cod-shelfmarks-part';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n@StoreConfig({ name: COD_SHELFMARKS_PART_TYPEID })\r\nexport class EditCodShelfmarksPartStore\r\n extends Store<EditPartState>\r\n implements EditPartStoreApi\r\n{\r\n constructor() {\r\n super({});\r\n }\r\n\r\n public setDirty(value: boolean): void {\r\n this.update({ dirty: value });\r\n }\r\n public setSaving(value: boolean): void {\r\n this.update({ saving: value });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { EditPartQueryBase } from '@myrmidon/cadmus-state';\r\n\r\nimport { EditCodShelfmarksPartStore } from './edit-cod-shelfmarks-part.store';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class EditCodShelfmarksPartQuery extends EditPartQueryBase {\r\n constructor(store: EditCodShelfmarksPartStore) {\r\n super(store);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ItemService, ThesaurusService } from '@myrmidon/cadmus-api';\r\nimport { EditPartServiceBase } from '@myrmidon/cadmus-state';\r\nimport { EditCodShelfmarksPartStore } from './edit-cod-shelfmarks-part.store';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class EditCodShelfmarksPartService extends EditPartServiceBase {\r\n constructor(\r\n editPartStore: EditCodShelfmarksPartStore,\r\n itemService: ItemService,\r\n thesaurusService: ThesaurusService\r\n ) {\r\n super(itemService, thesaurusService);\r\n this.store = editPartStore;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport {\n EditItemQuery,\n EditItemService,\n EditPartFeatureBase,\n} from '@myrmidon/cadmus-state';\nimport { EditCodShelfmarksPartQuery } from './edit-cod-shelfmarks-part.query';\nimport { EditCodShelfmarksPartService } from './edit-cod-shelfmarks-part.service';\n\n@Component({\n selector: 'cadmus-cod-shelfmarks-part-feature',\n templateUrl: './cod-shelfmarks-part-feature.component.html',\n styleUrls: ['./cod-shelfmarks-part-feature.component.css'],\n})\nexport class CodShelfmarksPartFeatureComponent\n extends EditPartFeatureBase\n implements OnInit\n{\n constructor(\n router: Router,\n route: ActivatedRoute,\n snackbar: MatSnackBar,\n editPartQuery: EditCodShelfmarksPartQuery,\n editPartService: EditCodShelfmarksPartService,\n editItemQuery: EditItemQuery,\n editItemService: EditItemService\n ) {\n super(\n router,\n route,\n snackbar,\n editPartQuery,\n editPartService,\n editItemQuery,\n editItemService\n );\n }\n\n public ngOnInit(): void {\n this.initEditor(['cod-shelfmark-tags', 'cod-shelfmark-libraries']);\n }\n}\n","<cadmus-current-item-bar></cadmus-current-item-bar>\n<cadmus-cod-shelfmarks-part\n [itemId]=\"itemId\"\n [roleId]=\"roleId\"\n [model]=\"$any(part$ | async)\"\n (modelChange)=\"save($event)\"\n [thesauri]=\"(thesauri$ | async) || undefined\"\n (editorClose)=\"close()\"\n (dirtyChange)=\"onDirtyChange($event)\"\n></cadmus-cod-shelfmarks-part>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n// cadmus\nimport { CadmusStateModule } from '@myrmidon/cadmus-state';\nimport { CadmusUiModule } from '@myrmidon/cadmus-ui';\nimport { CadmusUiPgModule } from '@myrmidon/cadmus-ui-pg';\n// locals (UI editor and PG wrapper)\nimport { CodShelfmarksPartComponent } from './cod-shelfmarks-part/cod-shelfmarks-part.component';\nimport { CodShelfmarkEditorComponent } from './cod-shelfmark-editor/cod-shelfmark-editor.component';\nimport { CodShelfmarksPartFeatureComponent } from './cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component';\n\n@NgModule({\n declarations: [\n CodShelfmarksPartComponent,\n CodShelfmarkEditorComponent,\n CodShelfmarksPartFeatureComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n // material\n MatButtonModule,\n MatCardModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n MatTabsModule,\n MatTooltipModule,\n // Cadmus\n CadmusStateModule,\n CadmusUiModule,\n CadmusUiPgModule,\n ],\n exports: [\n CodShelfmarksPartComponent,\n CodShelfmarkEditorComponent,\n CodShelfmarksPartFeatureComponent,\n ],\n})\nexport class CadmusPartCodicologyShelfmarksModule {}\n","/*\n * Public API Surface of cadmus-part-codicology-shelfmarks\n */\n\nexport * from './lib/cod-shelfmarks-part';\nexport * from './lib/cod-shelfmarks-part/cod-shelfmarks-part.component';\nexport * from './lib/cod-shelfmark-editor/cod-shelfmark-editor.component';\nexport * from './lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component';\nexport * from './lib/cadmus-part-codicology-shelfmarks.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Input, Output, Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import { take } from 'rxjs/operators';
|
|
4
|
+
import { NgToolsValidators, deepCopy } from '@myrmidon/ng-tools';
|
|
5
|
+
import * as i9$1 from '@myrmidon/cadmus-ui';
|
|
6
|
+
import { ModelEditorComponentBase, CadmusUiModule } from '@myrmidon/cadmus-ui';
|
|
7
|
+
import * as i1$1 from '@myrmidon/auth-jwt-login';
|
|
8
|
+
import * as i1 from '@angular/forms';
|
|
9
|
+
import { Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
10
|
+
import * as i3$1 from '@myrmidon/ng-mat-tools';
|
|
11
|
+
import * as i4$1 from '@angular/material/card';
|
|
12
|
+
import { MatCardModule } from '@angular/material/card';
|
|
13
|
+
import * as i6 from '@angular/material/icon';
|
|
14
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
15
|
+
import * as i6$1 from '@angular/material/tabs';
|
|
16
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
17
|
+
import * as i5 from '@angular/material/button';
|
|
18
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
19
|
+
import * as i2 from '@angular/material/form-field';
|
|
20
|
+
import * as i3 from '@angular/material/select';
|
|
21
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
22
|
+
import * as i4 from '@angular/material/core';
|
|
23
|
+
import * as i7 from '@angular/common';
|
|
24
|
+
import { CommonModule } from '@angular/common';
|
|
25
|
+
import * as i8 from '@angular/material/input';
|
|
26
|
+
import { MatInputModule } from '@angular/material/input';
|
|
27
|
+
import * as i9 from '@angular/material/tooltip';
|
|
28
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
29
|
+
import * as i5$1 from '@myrmidon/cadmus-state';
|
|
30
|
+
import { EditPartQueryBase, EditPartServiceBase, EditPartFeatureBase, CadmusStateModule } from '@myrmidon/cadmus-state';
|
|
31
|
+
import * as i1$2 from '@angular/router';
|
|
32
|
+
import * as i2$2 from '@angular/material/snack-bar';
|
|
33
|
+
import { __decorate } from 'tslib';
|
|
34
|
+
import { Store, StoreConfig } from '@datorama/akita';
|
|
35
|
+
import * as i2$1 from '@myrmidon/cadmus-api';
|
|
36
|
+
import * as i6$2 from '@myrmidon/cadmus-ui-pg';
|
|
37
|
+
import { CadmusUiPgModule } from '@myrmidon/cadmus-ui-pg';
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The type ID used to identify the CodShelfmarksPart type.
|
|
41
|
+
*/
|
|
42
|
+
const COD_SHELFMARKS_PART_TYPEID = 'it.vedph.codicology.shelfmarks';
|
|
43
|
+
/**
|
|
44
|
+
* JSON schema for the CodShelfmarks part.
|
|
45
|
+
* You can use the JSON schema tool at https://jsonschema.net/.
|
|
46
|
+
*/
|
|
47
|
+
const COD_SHELFMARKS_PART_SCHEMA = {
|
|
48
|
+
$schema: 'http://json-schema.org/draft-07/schema#',
|
|
49
|
+
$id: 'www.vedph.it/cadmus/parts/codicology/' +
|
|
50
|
+
COD_SHELFMARKS_PART_TYPEID +
|
|
51
|
+
'.json',
|
|
52
|
+
type: 'object',
|
|
53
|
+
title: 'CodShelfmarksPart',
|
|
54
|
+
required: [
|
|
55
|
+
'id',
|
|
56
|
+
'itemId',
|
|
57
|
+
'typeId',
|
|
58
|
+
'timeCreated',
|
|
59
|
+
'creatorId',
|
|
60
|
+
'timeModified',
|
|
61
|
+
'userId',
|
|
62
|
+
'shelfmarks',
|
|
63
|
+
],
|
|
64
|
+
properties: {
|
|
65
|
+
timeCreated: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
pattern: '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d+Z$',
|
|
68
|
+
},
|
|
69
|
+
creatorId: {
|
|
70
|
+
type: 'string',
|
|
71
|
+
},
|
|
72
|
+
timeModified: {
|
|
73
|
+
type: 'string',
|
|
74
|
+
pattern: '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d+Z$',
|
|
75
|
+
},
|
|
76
|
+
userId: {
|
|
77
|
+
type: 'string',
|
|
78
|
+
},
|
|
79
|
+
id: {
|
|
80
|
+
type: 'string',
|
|
81
|
+
pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
|
|
82
|
+
},
|
|
83
|
+
itemId: {
|
|
84
|
+
type: 'string',
|
|
85
|
+
pattern: '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$',
|
|
86
|
+
},
|
|
87
|
+
typeId: {
|
|
88
|
+
type: 'string',
|
|
89
|
+
pattern: '^[a-z][-0-9a-z._]*$',
|
|
90
|
+
},
|
|
91
|
+
roleId: {
|
|
92
|
+
type: ['string', 'null'],
|
|
93
|
+
pattern: '^([a-z][-0-9a-z._]*)?$',
|
|
94
|
+
},
|
|
95
|
+
shelfmarks: {
|
|
96
|
+
type: 'array',
|
|
97
|
+
items: {
|
|
98
|
+
anyOf: [
|
|
99
|
+
{
|
|
100
|
+
type: 'object',
|
|
101
|
+
required: ['city', 'library', 'location'],
|
|
102
|
+
properties: {
|
|
103
|
+
tag: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
},
|
|
106
|
+
city: {
|
|
107
|
+
type: 'string',
|
|
108
|
+
},
|
|
109
|
+
library: {
|
|
110
|
+
type: 'string',
|
|
111
|
+
},
|
|
112
|
+
fund: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
},
|
|
115
|
+
location: {
|
|
116
|
+
type: 'string',
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
class CodShelfmarkEditorComponent {
|
|
127
|
+
constructor(formBuilder) {
|
|
128
|
+
this.shelfmarkChange = new EventEmitter();
|
|
129
|
+
this.editorClose = new EventEmitter();
|
|
130
|
+
// form
|
|
131
|
+
this.tag = formBuilder.control(null, Validators.maxLength(50));
|
|
132
|
+
this.city = formBuilder.control(null, [
|
|
133
|
+
Validators.required,
|
|
134
|
+
Validators.maxLength(50),
|
|
135
|
+
]);
|
|
136
|
+
this.library = formBuilder.control(null, [
|
|
137
|
+
Validators.required,
|
|
138
|
+
Validators.maxLength(50),
|
|
139
|
+
]);
|
|
140
|
+
this.fund = formBuilder.control(null, Validators.maxLength(50));
|
|
141
|
+
this.location = formBuilder.control(null, Validators.maxLength(50));
|
|
142
|
+
this.form = formBuilder.group({
|
|
143
|
+
tag: this.tag,
|
|
144
|
+
city: this.city,
|
|
145
|
+
library: this.library,
|
|
146
|
+
fund: this.fund,
|
|
147
|
+
location: this.location,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
get shelfmark() {
|
|
151
|
+
return this._shelfmark;
|
|
152
|
+
}
|
|
153
|
+
set shelfmark(value) {
|
|
154
|
+
this._shelfmark = value;
|
|
155
|
+
this.updateForm(value);
|
|
156
|
+
}
|
|
157
|
+
ngOnInit() {
|
|
158
|
+
if (this._shelfmark) {
|
|
159
|
+
this.updateForm(this._shelfmark);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
updateForm(model) {
|
|
163
|
+
if (!model) {
|
|
164
|
+
this.form.reset();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.tag.setValue(model.tag);
|
|
168
|
+
this.city.setValue(model.city);
|
|
169
|
+
this.library.setValue(model.library);
|
|
170
|
+
this.fund.setValue(model.fund);
|
|
171
|
+
this.location.setValue(model.location);
|
|
172
|
+
this.form.markAsPristine();
|
|
173
|
+
}
|
|
174
|
+
getModel() {
|
|
175
|
+
return {
|
|
176
|
+
tag: this.tag.value?.trim(),
|
|
177
|
+
city: this.city.value?.trim(),
|
|
178
|
+
library: this.library.value?.trim(),
|
|
179
|
+
fund: this.fund.value?.trim(),
|
|
180
|
+
location: this.location.value?.trim(),
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
cancel() {
|
|
184
|
+
this.editorClose.emit();
|
|
185
|
+
}
|
|
186
|
+
save() {
|
|
187
|
+
if (this.form.invalid) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
const model = this.getModel();
|
|
191
|
+
if (!model) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
this.shelfmarkChange.emit(model);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
CodShelfmarkEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarkEditorComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
198
|
+
CodShelfmarkEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", 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()\">\n <div>\n <!-- tag (bound) -->\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"tag\" placeholder=\"tag\">\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- tag (free) -->\n <mat-form-field *ngIf=\"!tagEntries?.length\">\n <input matInput [formControl]=\"tag\" placeholder=\"tag\" />\n <mat-error\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\n >tag too long</mat-error\n >\n </mat-form-field>\n <!-- city -->\n \n <mat-form-field>\n <input matInput [formControl]=\"city\" placeholder=\"city\" />\n <mat-error\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\n >city required</mat-error\n >\n <mat-error\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\n >city too long</mat-error\n >\n </mat-form-field>\n </div>\n <div>\n <!-- library (bound) -->\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"library\" placeholder=\"library\">\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n </mat-form-field>\n <!-- library (free) -->\n <mat-form-field *ngIf=\"!libEntries?.length\">\n <input matInput [formControl]=\"library\" placeholder=\"library\" />\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(library).errors?.maxLength && (library.dirty || library.touched)\n \"\n >library too long</mat-error\n >\n </mat-form-field>\n <!-- fund -->\n \n <mat-form-field>\n <input matInput [formControl]=\"fund\" placeholder=\"fund\" />\n <mat-error\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\n >fund too long</mat-error\n >\n </mat-form-field>\n <!-- location -->\n \n <mat-form-field>\n <input matInput [formControl]=\"location\" placeholder=\"location\" />\n <mat-error\n *ngIf=\"\n $any(location).errors?.required &&\n (location.dirty || location.touched)\n \"\n >location required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(location).errors?.maxLength &&\n (location.dirty || location.touched)\n \"\n >location too long</mat-error\n >\n </mat-form-field>\n </div>\n <!-- buttons -->\n <div>\n <button\n type=\"button\"\n color=\"warn\"\n mat-icon-button\n matTooltip=\"Discard changes\"\n (click)=\"cancel()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n <button\n type=\"submit\"\n color=\"primary\"\n mat-icon-button\n matTooltip=\"Accept changes\"\n [disabled]=\"form.invalid || form.pristine\"\n >\n <mat-icon>check_circle</mat-icon>\n </button>\n </div>\n</form>\n", styles: [""], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.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"] }, { 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]" }, { type: i2.MatError, selector: "mat-error", inputs: ["id"] }, { type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarkEditorComponent, decorators: [{
|
|
200
|
+
type: Component,
|
|
201
|
+
args: [{ selector: 'cadmus-cod-shelfmark-editor', template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <!-- tag (bound) -->\n <mat-form-field *ngIf=\"tagEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"tag\" placeholder=\"tag\">\n <mat-option *ngFor=\"let e of tagEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- tag (free) -->\n <mat-form-field *ngIf=\"!tagEntries?.length\">\n <input matInput [formControl]=\"tag\" placeholder=\"tag\" />\n <mat-error\n *ngIf=\"$any(tag).errors?.maxLength && (tag.dirty || tag.touched)\"\n >tag too long</mat-error\n >\n </mat-form-field>\n <!-- city -->\n \n <mat-form-field>\n <input matInput [formControl]=\"city\" placeholder=\"city\" />\n <mat-error\n *ngIf=\"$any(city).errors?.required && (city.dirty || city.touched)\"\n >city required</mat-error\n >\n <mat-error\n *ngIf=\"$any(city).errors?.maxLength && (city.dirty || city.touched)\"\n >city too long</mat-error\n >\n </mat-form-field>\n </div>\n <div>\n <!-- library (bound) -->\n <mat-form-field *ngIf=\"libEntries?.length\" style=\"width: 8em\">\n <mat-select [formControl]=\"library\" placeholder=\"library\">\n <mat-option *ngFor=\"let e of libEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n </mat-form-field>\n <!-- library (free) -->\n <mat-form-field *ngIf=\"!libEntries?.length\">\n <input matInput [formControl]=\"library\" placeholder=\"library\" />\n <mat-error\n *ngIf=\"\n $any(library).errors?.required && (library.dirty || library.touched)\n \"\n >library required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(library).errors?.maxLength && (library.dirty || library.touched)\n \"\n >library too long</mat-error\n >\n </mat-form-field>\n <!-- fund -->\n \n <mat-form-field>\n <input matInput [formControl]=\"fund\" placeholder=\"fund\" />\n <mat-error\n *ngIf=\"$any(fund).errors?.maxLength && (fund.dirty || fund.touched)\"\n >fund too long</mat-error\n >\n </mat-form-field>\n <!-- location -->\n \n <mat-form-field>\n <input matInput [formControl]=\"location\" placeholder=\"location\" />\n <mat-error\n *ngIf=\"\n $any(location).errors?.required &&\n (location.dirty || location.touched)\n \"\n >location required</mat-error\n >\n <mat-error\n *ngIf=\"\n $any(location).errors?.maxLength &&\n (location.dirty || location.touched)\n \"\n >location too long</mat-error\n >\n </mat-form-field>\n </div>\n <!-- buttons -->\n <div>\n <button\n type=\"button\"\n color=\"warn\"\n mat-icon-button\n matTooltip=\"Discard changes\"\n (click)=\"cancel()\"\n >\n <mat-icon>clear</mat-icon>\n </button>\n <button\n type=\"submit\"\n color=\"primary\"\n mat-icon-button\n matTooltip=\"Accept changes\"\n [disabled]=\"form.invalid || form.pristine\"\n >\n <mat-icon>check_circle</mat-icon>\n </button>\n </div>\n</form>\n", styles: [""] }]
|
|
202
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { shelfmark: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], tagEntries: [{
|
|
205
|
+
type: Input
|
|
206
|
+
}], libEntries: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], shelfmarkChange: [{
|
|
209
|
+
type: Output
|
|
210
|
+
}], editorClose: [{
|
|
211
|
+
type: Output
|
|
212
|
+
}] } });
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* CodShelfmarksPart editor component.
|
|
216
|
+
* Thesauri: cod-shelfmark-tags, cod-shelfmark-libraries (all optional).
|
|
217
|
+
*/
|
|
218
|
+
class CodShelfmarksPartComponent extends ModelEditorComponentBase {
|
|
219
|
+
constructor(authService, formBuilder, _dialogService) {
|
|
220
|
+
super(authService);
|
|
221
|
+
this._dialogService = _dialogService;
|
|
222
|
+
this._editedIndex = -1;
|
|
223
|
+
this.tabIndex = 0;
|
|
224
|
+
// form
|
|
225
|
+
this.shelfmarks = formBuilder.control([], NgToolsValidators.strictMinLengthValidator(1));
|
|
226
|
+
this.form = formBuilder.group({
|
|
227
|
+
entries: this.shelfmarks,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
ngOnInit() {
|
|
231
|
+
this.initEditor();
|
|
232
|
+
}
|
|
233
|
+
updateForm(model) {
|
|
234
|
+
if (!model) {
|
|
235
|
+
this.form.reset();
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
this.shelfmarks.setValue(model.shelfmarks || []);
|
|
239
|
+
this.form.markAsPristine();
|
|
240
|
+
}
|
|
241
|
+
onModelSet(model) {
|
|
242
|
+
this.updateForm(deepCopy(model));
|
|
243
|
+
}
|
|
244
|
+
onThesauriSet() {
|
|
245
|
+
let key = 'cod-shelfmark-tags';
|
|
246
|
+
if (this.thesauri && this.thesauri[key]) {
|
|
247
|
+
this.tagEntries = this.thesauri[key].entries;
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
this.tagEntries = undefined;
|
|
251
|
+
}
|
|
252
|
+
key = 'cod-shelfmark-libraries';
|
|
253
|
+
if (this.thesauri && this.thesauri[key]) {
|
|
254
|
+
this.libEntries = this.thesauri[key].entries;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
this.libEntries = undefined;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
getModelFromForm() {
|
|
261
|
+
let part = this.model;
|
|
262
|
+
if (!part) {
|
|
263
|
+
part = {
|
|
264
|
+
itemId: this.itemId || '',
|
|
265
|
+
id: '',
|
|
266
|
+
typeId: COD_SHELFMARKS_PART_TYPEID,
|
|
267
|
+
roleId: this.roleId,
|
|
268
|
+
timeCreated: new Date(),
|
|
269
|
+
creatorId: '',
|
|
270
|
+
timeModified: new Date(),
|
|
271
|
+
userId: '',
|
|
272
|
+
shelfmarks: [],
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
part.shelfmarks = this.shelfmarks.value || [];
|
|
276
|
+
return part;
|
|
277
|
+
}
|
|
278
|
+
addShelfmark() {
|
|
279
|
+
const entry = {
|
|
280
|
+
city: '',
|
|
281
|
+
library: this.libEntries?.length ? this.libEntries[0].id : '',
|
|
282
|
+
location: '',
|
|
283
|
+
};
|
|
284
|
+
this.shelfmarks.setValue([...this.shelfmarks.value, entry]);
|
|
285
|
+
this.editShelfmark(this.shelfmarks.value.length - 1);
|
|
286
|
+
}
|
|
287
|
+
editShelfmark(index) {
|
|
288
|
+
if (index < 0) {
|
|
289
|
+
this._editedIndex = -1;
|
|
290
|
+
this.tabIndex = 0;
|
|
291
|
+
this.editedShelfmark = undefined;
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
this._editedIndex = index;
|
|
295
|
+
this.editedShelfmark = this.shelfmarks.value[index];
|
|
296
|
+
setTimeout(() => {
|
|
297
|
+
this.tabIndex = 1;
|
|
298
|
+
}, 300);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
onShelfmarkSave(entry) {
|
|
302
|
+
this.shelfmarks.setValue(this.shelfmarks.value.map((e, i) => i === this._editedIndex ? entry : e));
|
|
303
|
+
this.editShelfmark(-1);
|
|
304
|
+
}
|
|
305
|
+
onShelfmarkClose() {
|
|
306
|
+
this.editShelfmark(-1);
|
|
307
|
+
}
|
|
308
|
+
deleteShelfmark(index) {
|
|
309
|
+
this._dialogService
|
|
310
|
+
.confirm('Confirmation', 'Delete shelfmark?')
|
|
311
|
+
.pipe(take(1))
|
|
312
|
+
.subscribe((yes) => {
|
|
313
|
+
if (yes) {
|
|
314
|
+
const entries = [...this.shelfmarks.value];
|
|
315
|
+
entries.splice(index, 1);
|
|
316
|
+
this.shelfmarks.setValue(entries);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
moveShelfmarkUp(index) {
|
|
321
|
+
if (index < 1) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
const entry = this.shelfmarks.value[index];
|
|
325
|
+
const entries = [...this.shelfmarks.value];
|
|
326
|
+
entries.splice(index, 1);
|
|
327
|
+
entries.splice(index - 1, 0, entry);
|
|
328
|
+
this.shelfmarks.setValue(entries);
|
|
329
|
+
}
|
|
330
|
+
moveShelfmarkDown(index) {
|
|
331
|
+
if (index + 1 >= this.shelfmarks.value.length) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
const entry = this.shelfmarks.value[index];
|
|
335
|
+
const entries = [...this.shelfmarks.value];
|
|
336
|
+
entries.splice(index, 1);
|
|
337
|
+
entries.splice(index + 1, 0, entry);
|
|
338
|
+
this.shelfmarks.setValue(entries);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
CodShelfmarksPartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartComponent, deps: [{ token: i1$1.AuthJwtService }, { token: i1.FormBuilder }, { token: i3$1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
342
|
+
CodShelfmarksPartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form!\" (submit)=\"save()\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon>picture_in_picture</mat-icon>\n </div>\n <mat-card-title>Shelfmarks Part</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\n <mat-tab label=\"shelfmarks\">\n <div>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"addShelfmark()\"\n >\n <mat-icon>add_circle</mat-icon> add shelfmark\n </button>\n </div>\n <table *ngIf=\"shelfmarks?.value?.length\">\n <thead>\n <tr>\n <th></th>\n <th>tag</th>\n <th>city</th>\n <th>library</th>\n <th>fund</th>\n <th>location</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let entry of shelfmarks?.value;\n let i = index;\n let first = first;\n let last = last\n \"\n >\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this shelfmark\"\n (click)=\"editShelfmark(i)\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark up\"\n [disabled]=\"first\"\n (click)=\"moveShelfmarkUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark down\"\n [disabled]=\"last\"\n (click)=\"moveShelfmarkDown(i)\"\n >\n <mat-icon>arrow_downward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n color=\"warn\"\n matTooltip=\"Delete this shelfmark\"\n (click)=\"deleteShelfmark(i)\"\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.tag }}</td>\n <td>{{ entry.city }}</td>\n <td>{{ entry.library }}</td>\n <td>{{ entry.fund }}</td>\n <td>{{ entry.location }}</td>\n </tr>\n </tbody>\n </table>\n </mat-tab>\n\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\n <cadmus-cod-shelfmark-editor\n [tagEntries]=\"tagEntries\"\n [libEntries]=\"libEntries\"\n [shelfmark]=\"editedShelfmark\"\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\n (editorClose)=\"onShelfmarkClose()\"\n ></cadmus-cod-shelfmark-editor>\n </mat-tab>\n </mat-tab-group>\n </mat-card-content>\n <mat-card-actions>\n <cadmus-close-save-buttons\n [form]=\"form\"\n [noSave]=\"userLevel < 2\"\n (closeRequest)=\"close()\"\n ></cadmus-close-save-buttons>\n </mat-card-actions>\n </mat-card>\n</form>\n", styles: ["th{font-weight:400;color:silver}\n"], components: [{ type: i4$1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i4$1.MatCardHeader, selector: "mat-card-header" }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6$1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i6$1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: CodShelfmarkEditorComponent, selector: "cadmus-cod-shelfmark-editor", inputs: ["shelfmark", "tagEntries", "libEntries"], outputs: ["shelfmarkChange", "editorClose"] }, { type: i9$1.CloseSaveButtonsComponent, selector: "cadmus-close-save-buttons", inputs: ["form", "noSave"], outputs: ["closeRequest"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4$1.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { type: i4$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i4$1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] });
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartComponent, decorators: [{
|
|
344
|
+
type: Component,
|
|
345
|
+
args: [{ selector: 'cadmus-cod-shelfmarks-part', template: "<form [formGroup]=\"form!\" (submit)=\"save()\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon>picture_in_picture</mat-icon>\n </div>\n <mat-card-title>Shelfmarks Part</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <mat-tab-group [(selectedIndex)]=\"tabIndex\">\n <mat-tab label=\"shelfmarks\">\n <div>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"addShelfmark()\"\n >\n <mat-icon>add_circle</mat-icon> add shelfmark\n </button>\n </div>\n <table *ngIf=\"shelfmarks?.value?.length\">\n <thead>\n <tr>\n <th></th>\n <th>tag</th>\n <th>city</th>\n <th>library</th>\n <th>fund</th>\n <th>location</th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"\n let entry of shelfmarks?.value;\n let i = index;\n let first = first;\n let last = last\n \"\n >\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this shelfmark\"\n (click)=\"editShelfmark(i)\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark up\"\n [disabled]=\"first\"\n (click)=\"moveShelfmarkUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this shelfmark down\"\n [disabled]=\"last\"\n (click)=\"moveShelfmarkDown(i)\"\n >\n <mat-icon>arrow_downward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n color=\"warn\"\n matTooltip=\"Delete this shelfmark\"\n (click)=\"deleteShelfmark(i)\"\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.tag }}</td>\n <td>{{ entry.city }}</td>\n <td>{{ entry.library }}</td>\n <td>{{ entry.fund }}</td>\n <td>{{ entry.location }}</td>\n </tr>\n </tbody>\n </table>\n </mat-tab>\n\n <mat-tab label=\"shelfmark\" *ngIf=\"editedShelfmark\">\n <cadmus-cod-shelfmark-editor\n [tagEntries]=\"tagEntries\"\n [libEntries]=\"libEntries\"\n [shelfmark]=\"editedShelfmark\"\n (shelfmarkChange)=\"onShelfmarkSave($event)\"\n (editorClose)=\"onShelfmarkClose()\"\n ></cadmus-cod-shelfmark-editor>\n </mat-tab>\n </mat-tab-group>\n </mat-card-content>\n <mat-card-actions>\n <cadmus-close-save-buttons\n [form]=\"form\"\n [noSave]=\"userLevel < 2\"\n (closeRequest)=\"close()\"\n ></cadmus-close-save-buttons>\n </mat-card-actions>\n </mat-card>\n</form>\n", styles: ["th{font-weight:400;color:silver}\n"] }]
|
|
346
|
+
}], ctorParameters: function () { return [{ type: i1$1.AuthJwtService }, { type: i1.FormBuilder }, { type: i3$1.DialogService }]; } });
|
|
347
|
+
|
|
348
|
+
let EditCodShelfmarksPartStore = class EditCodShelfmarksPartStore extends Store {
|
|
349
|
+
constructor() {
|
|
350
|
+
super({});
|
|
351
|
+
}
|
|
352
|
+
setDirty(value) {
|
|
353
|
+
this.update({ dirty: value });
|
|
354
|
+
}
|
|
355
|
+
setSaving(value) {
|
|
356
|
+
this.update({ saving: value });
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
EditCodShelfmarksPartStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
360
|
+
EditCodShelfmarksPartStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartStore, providedIn: 'root' });
|
|
361
|
+
EditCodShelfmarksPartStore = __decorate([
|
|
362
|
+
StoreConfig({ name: COD_SHELFMARKS_PART_TYPEID })
|
|
363
|
+
], EditCodShelfmarksPartStore);
|
|
364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartStore, decorators: [{
|
|
365
|
+
type: Injectable,
|
|
366
|
+
args: [{ providedIn: 'root' }]
|
|
367
|
+
}], ctorParameters: function () { return []; } });
|
|
368
|
+
|
|
369
|
+
class EditCodShelfmarksPartQuery extends EditPartQueryBase {
|
|
370
|
+
constructor(store) {
|
|
371
|
+
super(store);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
EditCodShelfmarksPartQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartQuery, deps: [{ token: EditCodShelfmarksPartStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
375
|
+
EditCodShelfmarksPartQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartQuery, providedIn: 'root' });
|
|
376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartQuery, decorators: [{
|
|
377
|
+
type: Injectable,
|
|
378
|
+
args: [{ providedIn: 'root' }]
|
|
379
|
+
}], ctorParameters: function () { return [{ type: EditCodShelfmarksPartStore }]; } });
|
|
380
|
+
|
|
381
|
+
class EditCodShelfmarksPartService extends EditPartServiceBase {
|
|
382
|
+
constructor(editPartStore, itemService, thesaurusService) {
|
|
383
|
+
super(itemService, thesaurusService);
|
|
384
|
+
this.store = editPartStore;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
EditCodShelfmarksPartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartService, deps: [{ token: EditCodShelfmarksPartStore }, { token: i2$1.ItemService }, { token: i2$1.ThesaurusService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
388
|
+
EditCodShelfmarksPartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartService, providedIn: 'root' });
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: EditCodShelfmarksPartService, decorators: [{
|
|
390
|
+
type: Injectable,
|
|
391
|
+
args: [{ providedIn: 'root' }]
|
|
392
|
+
}], ctorParameters: function () { return [{ type: EditCodShelfmarksPartStore }, { type: i2$1.ItemService }, { type: i2$1.ThesaurusService }]; } });
|
|
393
|
+
|
|
394
|
+
class CodShelfmarksPartFeatureComponent extends EditPartFeatureBase {
|
|
395
|
+
constructor(router, route, snackbar, editPartQuery, editPartService, editItemQuery, editItemService) {
|
|
396
|
+
super(router, route, snackbar, editPartQuery, editPartService, editItemQuery, editItemService);
|
|
397
|
+
}
|
|
398
|
+
ngOnInit() {
|
|
399
|
+
this.initEditor(['cod-shelfmark-tags', 'cod-shelfmark-libraries']);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
CodShelfmarksPartFeatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartFeatureComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: i2$2.MatSnackBar }, { token: EditCodShelfmarksPartQuery }, { token: EditCodShelfmarksPartService }, { token: i5$1.EditItemQuery }, { token: i5$1.EditItemService }], target: i0.ɵɵFactoryTarget.Component });
|
|
403
|
+
CodShelfmarksPartFeatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: CodShelfmarksPartFeatureComponent, selector: "cadmus-cod-shelfmarks-part-feature", usesInheritance: true, ngImport: i0, template: "<cadmus-current-item-bar></cadmus-current-item-bar>\n<cadmus-cod-shelfmarks-part\n [itemId]=\"itemId\"\n [roleId]=\"roleId\"\n [model]=\"$any(part$ | async)\"\n (modelChange)=\"save($event)\"\n [thesauri]=\"(thesauri$ | async) || undefined\"\n (editorClose)=\"close()\"\n (dirtyChange)=\"onDirtyChange($event)\"\n></cadmus-cod-shelfmarks-part>\n", styles: [""], components: [{ type: i6$2.CurrentItemBarComponent, selector: "cadmus-current-item-bar" }, { type: CodShelfmarksPartComponent, selector: "cadmus-cod-shelfmarks-part" }], pipes: { "async": i7.AsyncPipe } });
|
|
404
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CodShelfmarksPartFeatureComponent, decorators: [{
|
|
405
|
+
type: Component,
|
|
406
|
+
args: [{ selector: 'cadmus-cod-shelfmarks-part-feature', template: "<cadmus-current-item-bar></cadmus-current-item-bar>\n<cadmus-cod-shelfmarks-part\n [itemId]=\"itemId\"\n [roleId]=\"roleId\"\n [model]=\"$any(part$ | async)\"\n (modelChange)=\"save($event)\"\n [thesauri]=\"(thesauri$ | async) || undefined\"\n (editorClose)=\"close()\"\n (dirtyChange)=\"onDirtyChange($event)\"\n></cadmus-cod-shelfmarks-part>\n", styles: [""] }]
|
|
407
|
+
}], ctorParameters: function () { return [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: i2$2.MatSnackBar }, { type: EditCodShelfmarksPartQuery }, { type: EditCodShelfmarksPartService }, { type: i5$1.EditItemQuery }, { type: i5$1.EditItemService }]; } });
|
|
408
|
+
|
|
409
|
+
class CadmusPartCodicologyShelfmarksModule {
|
|
410
|
+
}
|
|
411
|
+
CadmusPartCodicologyShelfmarksModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
412
|
+
CadmusPartCodicologyShelfmarksModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, declarations: [CodShelfmarksPartComponent,
|
|
413
|
+
CodShelfmarkEditorComponent,
|
|
414
|
+
CodShelfmarksPartFeatureComponent], imports: [CommonModule,
|
|
415
|
+
FormsModule,
|
|
416
|
+
ReactiveFormsModule,
|
|
417
|
+
// material
|
|
418
|
+
MatButtonModule,
|
|
419
|
+
MatCardModule,
|
|
420
|
+
MatIconModule,
|
|
421
|
+
MatInputModule,
|
|
422
|
+
MatSelectModule,
|
|
423
|
+
MatTabsModule,
|
|
424
|
+
MatTooltipModule,
|
|
425
|
+
// Cadmus
|
|
426
|
+
CadmusStateModule,
|
|
427
|
+
CadmusUiModule,
|
|
428
|
+
CadmusUiPgModule], exports: [CodShelfmarksPartComponent,
|
|
429
|
+
CodShelfmarkEditorComponent,
|
|
430
|
+
CodShelfmarksPartFeatureComponent] });
|
|
431
|
+
CadmusPartCodicologyShelfmarksModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, imports: [[
|
|
432
|
+
CommonModule,
|
|
433
|
+
FormsModule,
|
|
434
|
+
ReactiveFormsModule,
|
|
435
|
+
// material
|
|
436
|
+
MatButtonModule,
|
|
437
|
+
MatCardModule,
|
|
438
|
+
MatIconModule,
|
|
439
|
+
MatInputModule,
|
|
440
|
+
MatSelectModule,
|
|
441
|
+
MatTabsModule,
|
|
442
|
+
MatTooltipModule,
|
|
443
|
+
// Cadmus
|
|
444
|
+
CadmusStateModule,
|
|
445
|
+
CadmusUiModule,
|
|
446
|
+
CadmusUiPgModule,
|
|
447
|
+
]] });
|
|
448
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: CadmusPartCodicologyShelfmarksModule, decorators: [{
|
|
449
|
+
type: NgModule,
|
|
450
|
+
args: [{
|
|
451
|
+
declarations: [
|
|
452
|
+
CodShelfmarksPartComponent,
|
|
453
|
+
CodShelfmarkEditorComponent,
|
|
454
|
+
CodShelfmarksPartFeatureComponent,
|
|
455
|
+
],
|
|
456
|
+
imports: [
|
|
457
|
+
CommonModule,
|
|
458
|
+
FormsModule,
|
|
459
|
+
ReactiveFormsModule,
|
|
460
|
+
// material
|
|
461
|
+
MatButtonModule,
|
|
462
|
+
MatCardModule,
|
|
463
|
+
MatIconModule,
|
|
464
|
+
MatInputModule,
|
|
465
|
+
MatSelectModule,
|
|
466
|
+
MatTabsModule,
|
|
467
|
+
MatTooltipModule,
|
|
468
|
+
// Cadmus
|
|
469
|
+
CadmusStateModule,
|
|
470
|
+
CadmusUiModule,
|
|
471
|
+
CadmusUiPgModule,
|
|
472
|
+
],
|
|
473
|
+
exports: [
|
|
474
|
+
CodShelfmarksPartComponent,
|
|
475
|
+
CodShelfmarkEditorComponent,
|
|
476
|
+
CodShelfmarksPartFeatureComponent,
|
|
477
|
+
],
|
|
478
|
+
}]
|
|
479
|
+
}] });
|
|
480
|
+
|
|
481
|
+
/*
|
|
482
|
+
* Public API Surface of cadmus-part-codicology-shelfmarks
|
|
483
|
+
*/
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Generated bundle index. Do not edit.
|
|
487
|
+
*/
|
|
488
|
+
|
|
489
|
+
export { COD_SHELFMARKS_PART_SCHEMA, COD_SHELFMARKS_PART_TYPEID, CadmusPartCodicologyShelfmarksModule, CodShelfmarkEditorComponent, CodShelfmarksPartComponent, CodShelfmarksPartFeatureComponent };
|
|
490
|
+
//# sourceMappingURL=myrmidon-cadmus-part-codicology-shelfmarks.mjs.map
|