@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.
Files changed (26) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/cadmus-part-codicology-shelfmarks.module.mjs +91 -0
  3. package/esm2020/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.mjs +100 -0
  4. package/esm2020/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.mjs +151 -0
  5. package/esm2020/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.mjs +26 -0
  6. package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.query.mjs +16 -0
  7. package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.service.mjs +18 -0
  8. package/esm2020/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.store.mjs +27 -0
  9. package/esm2020/lib/cod-shelfmarks-part.mjs +87 -0
  10. package/esm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs +5 -0
  11. package/esm2020/public-api.mjs +9 -0
  12. package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs +492 -0
  13. package/fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -0
  14. package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs +490 -0
  15. package/fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs.map +1 -0
  16. package/lib/cadmus-part-codicology-shelfmarks.module.d.ts +21 -0
  17. package/lib/cod-shelfmark-editor/cod-shelfmark-editor.component.d.ts +28 -0
  18. package/lib/cod-shelfmarks-part/cod-shelfmarks-part.component.d.ts +36 -0
  19. package/lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component.d.ts +13 -0
  20. package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.query.d.ts +8 -0
  21. package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.service.d.ts +9 -0
  22. package/lib/cod-shelfmarks-part-feature/edit-cod-shelfmarks-part.store.d.ts +10 -0
  23. package/lib/cod-shelfmarks-part.d.ts +90 -0
  24. package/myrmidon-cadmus-part-codicology-shelfmarks.d.ts +5 -0
  25. package/package.json +43 -0
  26. 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 &nbsp;\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 &nbsp;\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 &nbsp;\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,21 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./cod-shelfmarks-part/cod-shelfmarks-part.component";
3
+ import * as i2 from "./cod-shelfmark-editor/cod-shelfmark-editor.component";
4
+ import * as i3 from "./cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@angular/forms";
7
+ import * as i6 from "@angular/material/button";
8
+ import * as i7 from "@angular/material/card";
9
+ import * as i8 from "@angular/material/icon";
10
+ import * as i9 from "@angular/material/input";
11
+ import * as i10 from "@angular/material/select";
12
+ import * as i11 from "@angular/material/tabs";
13
+ import * as i12 from "@angular/material/tooltip";
14
+ import * as i13 from "@myrmidon/cadmus-state";
15
+ import * as i14 from "@myrmidon/cadmus-ui";
16
+ import * as i15 from "@myrmidon/cadmus-ui-pg";
17
+ export declare class CadmusPartCodicologyShelfmarksModule {
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<CadmusPartCodicologyShelfmarksModule, never>;
19
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CadmusPartCodicologyShelfmarksModule, [typeof i1.CodShelfmarksPartComponent, typeof i2.CodShelfmarkEditorComponent, typeof i3.CodShelfmarksPartFeatureComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.MatButtonModule, typeof i7.MatCardModule, typeof i8.MatIconModule, typeof i9.MatInputModule, typeof i10.MatSelectModule, typeof i11.MatTabsModule, typeof i12.MatTooltipModule, typeof i13.CadmusStateModule, typeof i14.CadmusUiModule, typeof i15.CadmusUiPgModule], [typeof i1.CodShelfmarksPartComponent, typeof i2.CodShelfmarkEditorComponent, typeof i3.CodShelfmarksPartFeatureComponent]>;
20
+ static ɵinj: i0.ɵɵInjectorDeclaration<CadmusPartCodicologyShelfmarksModule>;
21
+ }
@@ -0,0 +1,28 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
3
+ import { ThesaurusEntry } from '@myrmidon/cadmus-core';
4
+ import { CodShelfmark } from '../cod-shelfmarks-part';
5
+ import * as i0 from "@angular/core";
6
+ export declare class CodShelfmarkEditorComponent implements OnInit {
7
+ private _shelfmark;
8
+ get shelfmark(): CodShelfmark | undefined;
9
+ set shelfmark(value: CodShelfmark | undefined);
10
+ tagEntries: ThesaurusEntry[] | undefined;
11
+ libEntries: ThesaurusEntry[] | undefined;
12
+ shelfmarkChange: EventEmitter<CodShelfmark>;
13
+ editorClose: EventEmitter<any>;
14
+ tag: FormControl;
15
+ city: FormControl;
16
+ library: FormControl;
17
+ fund: FormControl;
18
+ location: FormControl;
19
+ form: FormGroup;
20
+ constructor(formBuilder: FormBuilder);
21
+ ngOnInit(): void;
22
+ private updateForm;
23
+ private getModel;
24
+ cancel(): void;
25
+ save(): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<CodShelfmarkEditorComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<CodShelfmarkEditorComponent, "cadmus-cod-shelfmark-editor", never, { "shelfmark": "shelfmark"; "tagEntries": "tagEntries"; "libEntries": "libEntries"; }, { "shelfmarkChange": "shelfmarkChange"; "editorClose": "editorClose"; }, never, never>;
28
+ }
@@ -0,0 +1,36 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { FormControl, FormBuilder } from '@angular/forms';
3
+ import { DialogService } from '@myrmidon/ng-mat-tools';
4
+ import { AuthJwtService } from '@myrmidon/auth-jwt-login';
5
+ import { ModelEditorComponentBase } from '@myrmidon/cadmus-ui';
6
+ import { ThesaurusEntry } from '@myrmidon/cadmus-core';
7
+ import { CodShelfmark, CodShelfmarksPart } from '../cod-shelfmarks-part';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * CodShelfmarksPart editor component.
11
+ * Thesauri: cod-shelfmark-tags, cod-shelfmark-libraries (all optional).
12
+ */
13
+ export declare class CodShelfmarksPartComponent extends ModelEditorComponentBase<CodShelfmarksPart> implements OnInit {
14
+ private _dialogService;
15
+ private _editedIndex;
16
+ tabIndex: number;
17
+ editedShelfmark: CodShelfmark | undefined;
18
+ tagEntries: ThesaurusEntry[] | undefined;
19
+ libEntries: ThesaurusEntry[] | undefined;
20
+ shelfmarks: FormControl;
21
+ constructor(authService: AuthJwtService, formBuilder: FormBuilder, _dialogService: DialogService);
22
+ ngOnInit(): void;
23
+ private updateForm;
24
+ protected onModelSet(model: CodShelfmarksPart): void;
25
+ protected onThesauriSet(): void;
26
+ protected getModelFromForm(): CodShelfmarksPart;
27
+ addShelfmark(): void;
28
+ editShelfmark(index: number): void;
29
+ onShelfmarkSave(entry: CodShelfmark): void;
30
+ onShelfmarkClose(): void;
31
+ deleteShelfmark(index: number): void;
32
+ moveShelfmarkUp(index: number): void;
33
+ moveShelfmarkDown(index: number): void;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<CodShelfmarksPartComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<CodShelfmarksPartComponent, "cadmus-cod-shelfmarks-part", never, {}, {}, never, never>;
36
+ }
@@ -0,0 +1,13 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Router, ActivatedRoute } from '@angular/router';
3
+ import { MatSnackBar } from '@angular/material/snack-bar';
4
+ import { EditItemQuery, EditItemService, EditPartFeatureBase } from '@myrmidon/cadmus-state';
5
+ import { EditCodShelfmarksPartQuery } from './edit-cod-shelfmarks-part.query';
6
+ import { EditCodShelfmarksPartService } from './edit-cod-shelfmarks-part.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class CodShelfmarksPartFeatureComponent extends EditPartFeatureBase implements OnInit {
9
+ constructor(router: Router, route: ActivatedRoute, snackbar: MatSnackBar, editPartQuery: EditCodShelfmarksPartQuery, editPartService: EditCodShelfmarksPartService, editItemQuery: EditItemQuery, editItemService: EditItemService);
10
+ ngOnInit(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<CodShelfmarksPartFeatureComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<CodShelfmarksPartFeatureComponent, "cadmus-cod-shelfmarks-part-feature", never, {}, {}, never, never>;
13
+ }
@@ -0,0 +1,8 @@
1
+ import { EditPartQueryBase } from '@myrmidon/cadmus-state';
2
+ import { EditCodShelfmarksPartStore } from './edit-cod-shelfmarks-part.store';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EditCodShelfmarksPartQuery extends EditPartQueryBase {
5
+ constructor(store: EditCodShelfmarksPartStore);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditCodShelfmarksPartQuery, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<EditCodShelfmarksPartQuery>;
8
+ }
@@ -0,0 +1,9 @@
1
+ import { ItemService, ThesaurusService } from '@myrmidon/cadmus-api';
2
+ import { EditPartServiceBase } from '@myrmidon/cadmus-state';
3
+ import { EditCodShelfmarksPartStore } from './edit-cod-shelfmarks-part.store';
4
+ import * as i0 from "@angular/core";
5
+ export declare class EditCodShelfmarksPartService extends EditPartServiceBase {
6
+ constructor(editPartStore: EditCodShelfmarksPartStore, itemService: ItemService, thesaurusService: ThesaurusService);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditCodShelfmarksPartService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<EditCodShelfmarksPartService>;
9
+ }
@@ -0,0 +1,10 @@
1
+ import { Store } from '@datorama/akita';
2
+ import { EditPartState, EditPartStoreApi } from '@myrmidon/cadmus-state';
3
+ import * as i0 from "@angular/core";
4
+ export declare class EditCodShelfmarksPartStore extends Store<EditPartState> implements EditPartStoreApi {
5
+ constructor();
6
+ setDirty(value: boolean): void;
7
+ setSaving(value: boolean): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<EditCodShelfmarksPartStore, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<EditCodShelfmarksPartStore>;
10
+ }
@@ -0,0 +1,90 @@
1
+ import { Part } from '@myrmidon/cadmus-core';
2
+ /**
3
+ * A manuscript's shelfmark.
4
+ */
5
+ export interface CodShelfmark {
6
+ tag?: string;
7
+ city: string;
8
+ library: string;
9
+ fund?: string;
10
+ location: string;
11
+ }
12
+ /**
13
+ * The CodShelfmarks part model.
14
+ */
15
+ export interface CodShelfmarksPart extends Part {
16
+ shelfmarks: CodShelfmark[];
17
+ }
18
+ /**
19
+ * The type ID used to identify the CodShelfmarksPart type.
20
+ */
21
+ export declare const COD_SHELFMARKS_PART_TYPEID = "it.vedph.codicology.shelfmarks";
22
+ /**
23
+ * JSON schema for the CodShelfmarks part.
24
+ * You can use the JSON schema tool at https://jsonschema.net/.
25
+ */
26
+ export declare const COD_SHELFMARKS_PART_SCHEMA: {
27
+ $schema: string;
28
+ $id: string;
29
+ type: string;
30
+ title: string;
31
+ required: string[];
32
+ properties: {
33
+ timeCreated: {
34
+ type: string;
35
+ pattern: string;
36
+ };
37
+ creatorId: {
38
+ type: string;
39
+ };
40
+ timeModified: {
41
+ type: string;
42
+ pattern: string;
43
+ };
44
+ userId: {
45
+ type: string;
46
+ };
47
+ id: {
48
+ type: string;
49
+ pattern: string;
50
+ };
51
+ itemId: {
52
+ type: string;
53
+ pattern: string;
54
+ };
55
+ typeId: {
56
+ type: string;
57
+ pattern: string;
58
+ };
59
+ roleId: {
60
+ type: string[];
61
+ pattern: string;
62
+ };
63
+ shelfmarks: {
64
+ type: string;
65
+ items: {
66
+ anyOf: {
67
+ type: string;
68
+ required: string[];
69
+ properties: {
70
+ tag: {
71
+ type: string;
72
+ };
73
+ city: {
74
+ type: string;
75
+ };
76
+ library: {
77
+ type: string;
78
+ };
79
+ fund: {
80
+ type: string;
81
+ };
82
+ location: {
83
+ type: string;
84
+ };
85
+ };
86
+ }[];
87
+ };
88
+ };
89
+ };
90
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@myrmidon/cadmus-part-codicology-shelfmarks" />
5
+ export * from './public-api';
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@myrmidon/cadmus-part-codicology-shelfmarks",
3
+ "version": "0.0.2",
4
+ "description": "Cadmus codicology - shelfmarks part.",
5
+ "keywords": [
6
+ "Cadmus"
7
+ ],
8
+ "homepage": "https://github.com/vedph/cadmus-codicology-shell",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/vedph/cadmus-codicology-shell"
12
+ },
13
+ "author": {
14
+ "name": "Daniele Fusi"
15
+ },
16
+ "peerDependencies": {
17
+ "@angular/common": "^13.1.0",
18
+ "@angular/core": "^13.1.0"
19
+ },
20
+ "dependencies": {
21
+ "tslib": "^2.3.0"
22
+ },
23
+ "module": "fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
24
+ "es2020": "fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
25
+ "esm2020": "esm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
26
+ "fesm2020": "fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
27
+ "fesm2015": "fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
28
+ "typings": "myrmidon-cadmus-part-codicology-shelfmarks.d.ts",
29
+ "exports": {
30
+ "./package.json": {
31
+ "default": "./package.json"
32
+ },
33
+ ".": {
34
+ "types": "./myrmidon-cadmus-part-codicology-shelfmarks.d.ts",
35
+ "esm2020": "./esm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
36
+ "es2020": "./fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
37
+ "es2015": "./fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
38
+ "node": "./fesm2015/myrmidon-cadmus-part-codicology-shelfmarks.mjs",
39
+ "default": "./fesm2020/myrmidon-cadmus-part-codicology-shelfmarks.mjs"
40
+ }
41
+ },
42
+ "sideEffects": false
43
+ }
@@ -0,0 +1,5 @@
1
+ export * from './lib/cod-shelfmarks-part';
2
+ export * from './lib/cod-shelfmarks-part/cod-shelfmarks-part.component';
3
+ export * from './lib/cod-shelfmark-editor/cod-shelfmark-editor.component';
4
+ export * from './lib/cod-shelfmarks-part-feature/cod-shelfmarks-part-feature.component';
5
+ export * from './lib/cadmus-part-codicology-shelfmarks.module';