@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,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
|
+
};
|
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
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -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';
|