@myrmidon/cadmus-refs-asserted-ids 1.0.9 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/asserted-id/asserted-id.component.mjs +133 -0
- package/esm2022/lib/asserted-ids/asserted-ids.component.mjs +147 -0
- package/esm2022/lib/cadmus-refs-asserted-ids.module.mjs +92 -0
- package/esm2022/lib/scoped-pin-lookup/scoped-pin-lookup.component.mjs +130 -0
- package/esm2022/lib/services/pin-ref-lookup.service.mjs +73 -0
- package/{esm2020 → esm2022}/myrmidon-cadmus-refs-asserted-ids.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +8 -8
- package/{fesm2020 → fesm2022}/myrmidon-cadmus-refs-asserted-ids.mjs +500 -500
- package/{fesm2020 → fesm2022}/myrmidon-cadmus-refs-asserted-ids.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/asserted-id/asserted-id.component.d.ts +49 -49
- package/lib/asserted-ids/asserted-ids.component.d.ts +44 -44
- package/lib/cadmus-refs-asserted-ids.module.d.ts +22 -22
- package/lib/scoped-pin-lookup/scoped-pin-lookup.component.d.ts +39 -39
- package/lib/services/pin-ref-lookup.service.d.ts +18 -18
- package/package.json +8 -14
- package/public-api.d.ts +5 -5
- package/esm2020/lib/asserted-id/asserted-id.component.mjs +0 -132
- package/esm2020/lib/asserted-ids/asserted-ids.component.mjs +0 -146
- package/esm2020/lib/cadmus-refs-asserted-ids.module.mjs +0 -91
- package/esm2020/lib/scoped-pin-lookup/scoped-pin-lookup.component.mjs +0 -129
- package/esm2020/lib/services/pin-ref-lookup.service.mjs +0 -72
- package/fesm2015/myrmidon-cadmus-refs-asserted-ids.mjs +0 -554
- package/fesm2015/myrmidon-cadmus-refs-asserted-ids.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"myrmidon-cadmus-refs-asserted-ids.mjs","sources":["../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/services/pin-ref-lookup.service.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/scoped-pin-lookup/scoped-pin-lookup.component.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/scoped-pin-lookup/scoped-pin-lookup.component.html","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-id/asserted-id.component.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-id/asserted-id.component.html","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-ids/asserted-ids.component.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-ids/asserted-ids.component.html","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/cadmus-refs-asserted-ids.module.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/public-api.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/myrmidon-cadmus-refs-asserted-ids.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { map, Observable, of } from 'rxjs';\n\nimport { ItemService } from '@myrmidon/cadmus-api';\nimport { DataPinInfo, IndexLookupDefinition } from '@myrmidon/cadmus-core';\nimport {\n RefLookupFilter,\n RefLookupService,\n} from '@myrmidon/cadmus-refs-lookup';\nimport { DataPage, ErrorWrapper } from '@myrmidon/ng-tools';\n\n/**\n * Cadmus pin-based lookup data service. The text being searched here is just\n * the pin's value, according to the options specified. These options correspond\n * to an index lookup definition. The resulting items are of type DataPinInfo.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PinRefLookupService implements RefLookupService {\n constructor(private _itemService: ItemService) {}\n\n public getName(item: any | undefined): string {\n return item?.value || '';\n }\n\n private buildQuery(def: IndexLookupDefinition, text?: string): string {\n const sb: string[] = [];\n const AND = ' AND ';\n\n if (def.typeId) {\n sb.push(`[partTypeId=${def.typeId}]`);\n }\n if (def.roleId) {\n if (sb.length) {\n sb.push(AND);\n }\n sb.push(`[roleId=${def.roleId}]`);\n }\n if (def.name) {\n if (sb.length) {\n sb.push(AND);\n }\n sb.push(`[name=${def.name}]`);\n }\n if (text) {\n if (sb.length) {\n sb.push(AND);\n }\n // for other operators see backend SqlQueryBuilderBase.cs\n sb.push(`[value*=${text}]`); // *= is \"contains\"\n }\n\n return sb.join('');\n }\n\n public lookup(filter: RefLookupFilter, options?: any): Observable<any[]> {\n // the index lookup definition is required\n const def = options as IndexLookupDefinition;\n if (!def) {\n return of([]);\n }\n\n // build the corresponding pin query\n const query = this.buildQuery(def, filter.text);\n\n // search the index\n return this._itemService.searchPins(query, 1, filter.limit).pipe(\n map((w: ErrorWrapper<DataPage<DataPinInfo>>) => {\n if (w.error) {\n console.error(w.error);\n return [];\n } else {\n return w.value?.items || [];\n }\n })\n );\n }\n}\n","import { Component, EventEmitter, Inject, Output } from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { ItemService } from '@myrmidon/cadmus-api';\n\nimport {\n DataPinInfo,\n IndexLookupDefinitions,\n Item,\n Part,\n} from '@myrmidon/cadmus-core';\nimport { forkJoin, take } from 'rxjs';\n\nimport { PinRefLookupService } from '../services/pin-ref-lookup.service';\n\n// from Cadmus general parts\nconst METADATA_PART_ID = 'it.vedph.metadata';\ninterface MetadataPart extends Part {\n metadata: {\n type?: string;\n name: string;\n value: string;\n }[];\n}\n\ninterface LookupInfo {\n pin: DataPinInfo;\n item?: Item;\n part?: MetadataPart;\n}\n\n/*\n * Scoped pin-based lookup component. This component provides a list\n * of pin-based searches, with a lookup control. Whenever the user\n * picks a pin value, he gets the details about its item and part, and\n * item's metadata part, if any. He can then use these data to build\n * some EID by variously assembling these components.\n */\n@Component({\n selector: 'cadmus-scoped-pin-lookup',\n templateUrl: './scoped-pin-lookup.component.html',\n styleUrls: ['./scoped-pin-lookup.component.css'],\n})\nexport class ScopedPinLookupComponent {\n // lookup\n public key: FormControl<string | null>;\n public keyForm: FormGroup;\n public keys: string[];\n public info?: LookupInfo;\n // builder\n public id: FormControl<string | null>;\n public idForm: FormGroup;\n\n @Output()\n public idPick: EventEmitter<string>;\n\n constructor(\n formBuilder: FormBuilder,\n private _itemService: ItemService,\n public lookupService: PinRefLookupService,\n @Inject('indexLookupDefinitions')\n public lookupDefs: IndexLookupDefinitions\n ) {\n // lookup\n // keys are all the defined lookup searches\n this.keys = Object.keys(lookupDefs);\n // the selected key defines the lookup scope\n this.key = formBuilder.control(null);\n this.keyForm = formBuilder.group({\n key: this.key,\n });\n // id\n this.id = formBuilder.control(null, [\n Validators.required,\n Validators.maxLength(300),\n ]);\n this.idForm = formBuilder.group({\n id: this.id,\n });\n // event\n this.idPick = new EventEmitter<string>();\n }\n\n ngOnInit(): void {\n // pre-select a unique key\n if (this.keys.length === 1) {\n this.key.setValue(this.keys[0]);\n this.key.markAsDirty();\n this.key.updateValueAndValidity();\n }\n }\n\n public onItemChange(item: DataPinInfo): void {\n const info: LookupInfo = {\n pin: item,\n };\n // lookup item and its metadata part if any\n forkJoin({\n item: this._itemService.getItem(item.itemId, false),\n part: this._itemService.getPartFromTypeAndRole(\n item.itemId,\n METADATA_PART_ID\n ),\n })\n .pipe(take(1))\n .subscribe({\n next: (result) => {\n info.item = result.item;\n info.part = result.part as MetadataPart;\n this.info = info;\n },\n error: (error) => {\n console.error(\n error ? JSON.stringify(error) : 'Error loading item/metadata'\n );\n },\n });\n }\n\n public appendIdComponent(type: string, metaIndex = -1): void {\n let id = this.id.value || '';\n\n switch (type) {\n case 'pin':\n id += this.info?.pin.value;\n break;\n case 'itemId':\n id += this.info!.item?.id || '';\n break;\n case 'partId':\n id += this.info!.part?.id || '';\n break;\n case 'partTypeId':\n id += this.info!.part?.typeId || '';\n break;\n case 'partRoleId':\n id += this.info!.part?.roleId || '';\n break;\n case 'metadata':\n id += this.info!.part!.metadata[metaIndex].value;\n break;\n }\n\n this.id.setValue(id);\n this.id.markAsDirty();\n this.id.updateValueAndValidity();\n }\n\n public pickId(): void {\n if (this.idForm.invalid) {\n return;\n }\n this.idPick.emit(this.id.value!);\n this.info = undefined;\n }\n\n public resetId(): void {\n this.id.reset();\n this.id.markAsDirty();\n this.id.updateValueAndValidity();\n }\n}\n","<div>\n <!-- lookup -->\n <div>\n <form [formGroup]=\"keyForm\" class=\"form-row\">\n <!-- key -->\n <mat-form-field *ngIf=\"keys.length > 1\">\n <mat-label>type</mat-label>\n <mat-select [formControl]=\"key\">\n <mat-option *ngFor=\"let k of keys\" [value]=\"k\">{{ k }}</mat-option>\n </mat-select>\n <mat-error\n *ngIf=\"$any(key).errors?.required && (key.dirty || key.touched)\"\n >type required</mat-error\n >\n </mat-form-field>\n <cadmus-ref-lookup\n [service]=\"lookupService\"\n label=\"pin\"\n [options]=\"key.value ? lookupDefs[key.value] : undefined\"\n (itemChange)=\"onItemChange($event)\"\n ></cadmus-ref-lookup>\n </form>\n </div>\n\n <!-- builder -->\n <mat-expansion-panel *ngIf=\"info\" [expanded]=\"info\" [disabled]=\"!info\">\n <mat-expansion-panel-header>ID builder</mat-expansion-panel-header>\n <!-- ID -->\n <div>\n <form [formGroup]=\"idForm\" (submit)=\"pickId()\">\n <mat-form-field style=\"width: 100%\">\n <input matInput [formControl]=\"id\" />\n <mat-error\n *ngIf=\"$any(id).errors?.required && (id.dirty || id.touched)\"\n >ID required</mat-error\n >\n <mat-error\n *ngIf=\"$any(id).errors?.maxLength && (id.dirty || id.touched)\"\n >ID too long</mat-error\n >\n <button\n mat-icon-button\n type=\"button\"\n matSuffix\n (click)=\"resetId()\"\n [disabled]=\"!id.value\"\n >\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n <button\n mat-icon-button\n type=\"button\"\n matSuffix\n (click)=\"pickId()\"\n [disabled]=\"idForm.invalid\"\n >\n <mat-icon color=\"primary\">check_circle</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </div>\n <!-- table -->\n <table>\n <thead>\n <th></th>\n <th>source</th>\n <th>value</th>\n </thead>\n <tbody>\n <!-- pin -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('pin')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>pin</td>\n <td>{{ info!.pin.value }}</td>\n </tr>\n <!-- item ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('itemId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>item ID</td>\n <td>{{ info!.item?.id }}</td>\n </tr>\n <!-- item title -->\n <tr>\n <td></td>\n <td>item title</td>\n <td>{{ info!.item?.title }}</td>\n </tr>\n <!-- part ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('partId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>part ID</td>\n <td>{{ info!.part?.id }}</td>\n </tr>\n <!-- part type ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('partTypeId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>part type ID</td>\n <td>{{ info!.part?.typeId }}</td>\n </tr>\n <!-- part role ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('partRoleId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ info!.part?.roleId }}</td>\n </tr>\n\n <!-- part's metadata -->\n <tr *ngFor=\"let m of info!.part?.metadata; let i = index\">\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('metadata', i)\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td class=\"metadata\">{{ m.name }}</td>\n <td class=\"metadata\">{{ m.value }}</td>\n </tr>\n </tbody>\n </table>\n </mat-expansion-panel>\n</div>\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { IndexLookupDefinitions, ThesaurusEntry } from '@myrmidon/cadmus-core';\r\nimport { Assertion } from '@myrmidon/cadmus-refs-assertion';\r\n\r\nimport { PinRefLookupService } from '../services/pin-ref-lookup.service';\r\n\r\nexport interface AssertedId {\r\n tag?: string;\r\n value: string;\r\n scope: string;\r\n assertion?: Assertion;\r\n}\r\n\r\n@Component({\r\n selector: 'cadmus-refs-asserted-id',\r\n templateUrl: './asserted-id.component.html',\r\n styleUrls: ['./asserted-id.component.css'],\r\n})\r\nexport class AssertedIdComponent implements OnInit {\r\n private _updatingForm: boolean | undefined;\r\n private _id: AssertedId | undefined;\r\n\r\n public tag: FormControl<string | null>;\r\n public value: FormControl<string | null>;\r\n public scope: FormControl<string | null>;\r\n public assertion: FormControl<Assertion | null>;\r\n public form: FormGroup;\r\n\r\n public lookupExpanded: boolean;\r\n\r\n // asserted-id-scopes\r\n @Input()\r\n public idScopeEntries?: ThesaurusEntry[];\r\n\r\n // asserted-id-tags\r\n @Input()\r\n public idTagEntries?: ThesaurusEntry[];\r\n\r\n // assertion-tags\r\n @Input()\r\n public assTagEntries?: ThesaurusEntry[];\r\n\r\n // doc-reference-types\r\n @Input()\r\n public refTypeEntries: ThesaurusEntry[] | undefined;\r\n\r\n // doc-reference-tags\r\n @Input()\r\n public refTagEntries: ThesaurusEntry[] | undefined;\r\n\r\n @Input()\r\n public get id(): AssertedId | undefined | null {\r\n return this._id;\r\n }\r\n public set id(value: AssertedId | undefined | null) {\r\n if (this._id !== value) {\r\n this._id = value || undefined;\r\n this.updateForm(this._id);\r\n }\r\n }\r\n\r\n /**\r\n * True to hide the pin-based EID lookup UI.\r\n */\r\n @Input()\r\n public noEidLookup: boolean | undefined;\r\n\r\n @Input()\r\n public hasSubmit: boolean | undefined;\r\n\r\n @Output()\r\n public idChange: EventEmitter<AssertedId>;\r\n\r\n @Output()\r\n public editorClose: EventEmitter<any>;\r\n\r\n constructor(\r\n formBuilder: FormBuilder,\r\n public lookupService: PinRefLookupService,\r\n @Inject('indexLookupDefinitions')\r\n public lookupDefs: IndexLookupDefinitions\r\n ) {\r\n this.tag = formBuilder.control(null, Validators.maxLength(50));\r\n this.value = formBuilder.control(null, [\r\n Validators.required,\r\n Validators.maxLength(500),\r\n ]);\r\n this.scope = formBuilder.control(null, Validators.maxLength(500));\r\n this.assertion = formBuilder.control(null);\r\n this.form = formBuilder.group({\r\n tag: this.tag,\r\n value: this.value,\r\n scope: this.scope,\r\n assertion: this.assertion\r\n });\r\n this.lookupExpanded = false;\r\n // events\r\n this.idChange = new EventEmitter<AssertedId>();\r\n this.editorClose = new EventEmitter<any>();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.form.valueChanges.pipe(debounceTime(300)).subscribe((_) => {\r\n if (!this._updatingForm) {\r\n this.emitIdChange();\r\n }\r\n });\r\n }\r\n\r\n public onAssertionChange(assertion: Assertion | undefined): void {\r\n this.assertion.setValue(assertion || null);\r\n }\r\n\r\n public onIdPick(id: string): void {\r\n this.value.setValue(id);\r\n this.value.markAsDirty();\r\n this.value.updateValueAndValidity();\r\n this.lookupExpanded = false;\r\n }\r\n\r\n private updateForm(value: AssertedId | undefined): void {\r\n this._updatingForm = true;\r\n if (!value) {\r\n this.form.reset();\r\n } else {\r\n this.tag.setValue(value.tag || null);\r\n this.value.setValue(value.value);\r\n this.scope.setValue(value.scope);\r\n this.assertion.setValue(value.assertion || null);\r\n this.form.markAsPristine();\r\n }\r\n this._updatingForm = false;\r\n // this.emitIdChange();\r\n }\r\n\r\n private getId(): AssertedId {\r\n return {\r\n tag: this.tag.value?.trim(),\r\n value: this.value.value?.trim() || '',\r\n scope: this.scope.value?.trim() || '',\r\n assertion: this.assertion.value || undefined,\r\n };\r\n }\r\n\r\n public emitIdChange(): void {\r\n if (!this.hasSubmit) {\r\n this._id = this.getId();\r\n this.idChange.emit(this._id);\r\n }\r\n }\r\n\r\n public cancel(): void {\r\n this.editorClose.emit();\r\n }\r\n\r\n public save(): void {\r\n if (this.form.valid) {\r\n this._id = this.getId();\r\n this.idChange.emit(this._id);\r\n }\r\n }\r\n}\r\n","<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n <mat-form-field *ngIf=\"idTagEntries?.length\" style=\"width: 8em\">\n <mat-label>tag</mat-label>\n <mat-select [formControl]=\"tag\">\n <mat-option *ngFor=\"let e of idTagEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- tag (free) -->\n <mat-form-field *ngIf=\"!idTagEntries?.length\" style=\"width: 8em\">\n <mat-label>tag</mat-label>\n <input matInput [formControl]=\"tag\" />\n <mat-error *ngIf=\"tag.errors?.maxLength && (tag.dirty || tag.touched)\"\n >tag too long</mat-error\n >\n </mat-form-field>\n\n <!-- scope (bound) -->\n <mat-form-field *ngIf=\"idScopeEntries?.length\" style=\"width: 8em\">\n <mat-label>scope</mat-label>\n <mat-select [formControl]=\"scope\">\n <mat-option *ngFor=\"let e of idScopeEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- scope (free) -->\n <mat-form-field *ngIf=\"!idScopeEntries?.length\" style=\"width: 8em\">\n <mat-label>scope</mat-label>\n <input matInput [formControl]=\"scope\" />\n <mat-error\n *ngIf=\"scope.errors?.maxLength && (scope.dirty || scope.touched)\"\n >scope too long</mat-error\n >\n </mat-form-field>\n\n <!-- value -->\n <mat-form-field>\n <mat-label>value</mat-label>\n <input matInput [formControl]=\"value\" />\n <mat-error\n *ngIf=\"value.errors?.required && (value.dirty || value.touched)\"\n >value required</mat-error\n >\n <mat-error\n *ngIf=\"value.errors?.maxLength && (value.dirty || value.touched)\"\n >value too long</mat-error\n >\n </mat-form-field>\n\n <!-- lookup -->\n <div *ngIf=\"!noEidLookup\" style=\"margin-top: 4px\">\n <mat-expansion-panel [(expanded)]=\"lookupExpanded\">\n <mat-expansion-panel-header>lookup</mat-expansion-panel-header>\n <cadmus-scoped-pin-lookup\n (idPick)=\"onIdPick($event)\"\n ></cadmus-scoped-pin-lookup>\n </mat-expansion-panel>\n </div>\n </div>\n\n <!-- assertion -->\n <mat-expansion-panel>\n <mat-expansion-panel-header>assertion</mat-expansion-panel-header>\n <cadmus-refs-assertion\n [assTagEntries]=\"assTagEntries\"\n [refTypeEntries]=\"refTypeEntries\"\n [refTagEntries]=\"refTagEntries\"\n [assertion]=\"assertion.value\"\n (assertionChange)=\"onAssertionChange($event)\"\n >\n </cadmus-refs-assertion>\n </mat-expansion-panel>\n </div>\n\n <!-- buttons -->\n <div *ngIf=\"hasSubmit\">\n <button mat-icon-button color=\"warn\" type=\"button\" (click)=\"cancel()\">\n <mat-icon>close</mat-icon>\n </button>\n <button\n mat-icon-button\n color=\"primary\"\n type=\"submit\"\n [disabled]=\"form.invalid\"\n >\n <mat-icon>check_circle</mat-icon>\n </button>\n </div>\n</form>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\n\r\nimport { ThesaurusEntry } from '@myrmidon/cadmus-core';\r\nimport { DialogService } from '@myrmidon/ng-mat-tools';\r\nimport { take } from 'rxjs';\r\n\r\nimport { AssertedId } from '../asserted-id/asserted-id.component';\r\n\r\n/**\r\n * Asserted IDs editor.\r\n */\r\n@Component({\r\n selector: 'cadmus-refs-asserted-ids',\r\n templateUrl: './asserted-ids.component.html',\r\n styleUrls: ['./asserted-ids.component.css'],\r\n})\r\nexport class AssertedIdsComponent {\r\n private _ids: AssertedId[];\r\n private _editedIndex: number;\r\n public edited?: AssertedId;\r\n\r\n /**\r\n * The asserted IDs.\r\n */\r\n @Input()\r\n public get ids(): AssertedId[] {\r\n return this._ids;\r\n }\r\n public set ids(value: AssertedId[]) {\r\n if (this._ids !== value) {\r\n this._ids = value || [];\r\n this.updateForm(value);\r\n }\r\n }\r\n\r\n // asserted-id-scopes\r\n @Input()\r\n public idScopeEntries?: ThesaurusEntry[];\r\n\r\n // asserted-id-tags\r\n @Input()\r\n public idTagEntries?: ThesaurusEntry[];\r\n\r\n // assertion-tags\r\n @Input()\r\n public assTagEntries?: ThesaurusEntry[];\r\n\r\n // doc-reference-types\r\n @Input()\r\n public refTypeEntries: ThesaurusEntry[] | undefined;\r\n\r\n // doc-reference-tags\r\n @Input()\r\n public refTagEntries: ThesaurusEntry[] | undefined;\r\n\r\n /**\r\n * Emitted whenever any ID changes.\r\n */\r\n @Output()\r\n public idsChange: EventEmitter<AssertedId[]>;\r\n\r\n public entries: FormControl<AssertedId[]>;\r\n public form: FormGroup;\r\n\r\n constructor(formBuilder: FormBuilder, private _dialogService: DialogService) {\r\n this._ids = [];\r\n this._editedIndex = -1;\r\n this.idsChange = new EventEmitter<AssertedId[]>();\r\n this.entries = formBuilder.control([], { nonNullable: true });\r\n // form\r\n this.form = formBuilder.group({\r\n ids: this.entries,\r\n });\r\n }\r\n\r\n private updateForm(ids: AssertedId[]): void {\r\n if (!ids?.length) {\r\n this.form.reset();\r\n return;\r\n }\r\n this.entries.setValue(ids, { emitEvent: false });\r\n this.entries.updateValueAndValidity();\r\n this.form.markAsPristine();\r\n }\r\n\r\n private emitIdsChange(): void {\r\n this.idsChange.emit(this.entries.value);\r\n }\r\n\r\n public addId(): void {\r\n this.editId(\r\n {\r\n scope: '',\r\n value: '',\r\n },\r\n -1\r\n );\r\n }\r\n\r\n public editId(id: AssertedId, index: number): void {\r\n this._editedIndex = index;\r\n this.edited = id;\r\n }\r\n\r\n public closeId(): void {\r\n this._editedIndex = -1;\r\n this.edited = undefined;\r\n }\r\n\r\n public saveId(entry: AssertedId): void {\r\n const entries = [...this.entries.value];\r\n if (this._editedIndex === -1) {\r\n entries.push(entry);\r\n } else {\r\n entries.splice(this._editedIndex, 1, entry);\r\n }\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.closeId();\r\n }\r\n\r\n public deleteId(index: number): void {\r\n this._dialogService\r\n .confirm('Confirmation', 'Delete ID?')\r\n .pipe(take(1))\r\n .subscribe((yes) => {\r\n if (yes) {\r\n if (this._editedIndex === index) {\r\n this.closeId();\r\n }\r\n const entries = [...this.entries.value];\r\n entries.splice(index, 1);\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.emitIdsChange();\r\n }\r\n });\r\n }\r\n\r\n public moveIdUp(index: number): void {\r\n if (index < 1) {\r\n return;\r\n }\r\n const entry = this.entries.value[index];\r\n const entries = [...this.entries.value];\r\n entries.splice(index, 1);\r\n entries.splice(index - 1, 0, entry);\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.emitIdsChange();\r\n }\r\n\r\n public moveIdDown(index: number): void {\r\n if (index + 1 >= this.entries.value.length) {\r\n return;\r\n }\r\n const entry = this.entries.value[index];\r\n const entries = [...this.entries.value];\r\n entries.splice(index, 1);\r\n entries.splice(index + 1, 0, entry);\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.emitIdsChange();\r\n }\r\n\r\n public onIdChange(id: AssertedId): void {\r\n this.saveId(id);\r\n this.emitIdsChange();\r\n }\r\n}\r\n","<form [formGroup]=\"form\">\r\n <div>\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"addId()\">\r\n <mat-icon>add_circle</mat-icon> ID\r\n </button>\r\n </div>\r\n <table *ngIf=\"entries.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>scope</th>\r\n <th>value</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of entries.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this ID\"\r\n (click)=\"editId(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveIdUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveIdDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this ID\"\r\n (click)=\"deleteId(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.scope }}</td>\r\n <td>{{ entry.value }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\r\n <mat-expansion-panel-header>ID {{edited?.value}}</mat-expansion-panel-header>\r\n <cadmus-refs-asserted-id\r\n [idScopeEntries]=\"idScopeEntries\"\r\n [idTagEntries]=\"idTagEntries\"\r\n [assTagEntries]=\"assTagEntries\"\r\n [refTypeEntries]=\"refTypeEntries\"\r\n [refTagEntries]=\"refTagEntries\"\r\n [hasSubmit]=\"true\"\r\n [id]=\"edited\"\r\n (idChange)=\"onIdChange($event)\"\r\n (editorClose)=\"closeId()\"\r\n ></cadmus-refs-asserted-id>\r\n </mat-expansion-panel>\r\n</form>\r\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 { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { CadmusCoreModule } from '@myrmidon/cadmus-core';\nimport { CadmusApiModule } from '@myrmidon/cadmus-api';\nimport { CadmusRefsAssertionModule } from '@myrmidon/cadmus-refs-assertion';\nimport { CadmusRefsDocReferencesModule } from '@myrmidon/cadmus-refs-doc-references';\nimport { CadmusRefsLookupModule } from '@myrmidon/cadmus-refs-lookup';\n\nimport { AssertedIdComponent } from './asserted-id/asserted-id.component';\nimport { AssertedIdsComponent } from './asserted-ids/asserted-ids.component';\nimport { ScopedPinLookupComponent } from './scoped-pin-lookup/scoped-pin-lookup.component';\n\n@NgModule({\n declarations: [\n AssertedIdComponent,\n AssertedIdsComponent,\n ScopedPinLookupComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n // material\n MatButtonModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n // Cadmus\n CadmusCoreModule,\n CadmusRefsDocReferencesModule,\n CadmusRefsAssertionModule,\n CadmusRefsLookupModule,\n CadmusApiModule,\n ],\n exports: [\n AssertedIdComponent,\n AssertedIdsComponent,\n ScopedPinLookupComponent,\n ],\n})\nexport class CadmusRefsAssertedIdsModule {}\n","/*\n * Public API Surface of cadmus-refs-asserted-ids\n */\n\nexport * from './lib/asserted-id/asserted-id.component';\nexport * from './lib/asserted-ids/asserted-ids.component';\nexport * from './lib/scoped-pin-lookup/scoped-pin-lookup.component';\n\nexport * from './lib/services/pin-ref-lookup.service';\n\nexport * from './lib/cadmus-refs-asserted-ids.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i1","i5","i6","i7","i8","i9","i10","i11","i12.ScopedPinLookupComponent","i7.AssertedIdComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"myrmidon-cadmus-refs-asserted-ids.mjs","sources":["../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/services/pin-ref-lookup.service.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/scoped-pin-lookup/scoped-pin-lookup.component.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/scoped-pin-lookup/scoped-pin-lookup.component.html","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-id/asserted-id.component.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-id/asserted-id.component.html","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-ids/asserted-ids.component.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/asserted-ids/asserted-ids.component.html","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/lib/cadmus-refs-asserted-ids.module.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/public-api.ts","../../../../projects/myrmidon/cadmus-refs-asserted-ids/src/myrmidon-cadmus-refs-asserted-ids.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { map, Observable, of } from 'rxjs';\n\nimport { ItemService } from '@myrmidon/cadmus-api';\nimport { DataPinInfo, IndexLookupDefinition } from '@myrmidon/cadmus-core';\nimport {\n RefLookupFilter,\n RefLookupService,\n} from '@myrmidon/cadmus-refs-lookup';\nimport { DataPage, ErrorWrapper } from '@myrmidon/ng-tools';\n\n/**\n * Cadmus pin-based lookup data service. The text being searched here is just\n * the pin's value, according to the options specified. These options correspond\n * to an index lookup definition. The resulting items are of type DataPinInfo.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PinRefLookupService implements RefLookupService {\n constructor(private _itemService: ItemService) {}\n\n public getName(item: any | undefined): string {\n return item?.value || '';\n }\n\n private buildQuery(def: IndexLookupDefinition, text?: string): string {\n const sb: string[] = [];\n const AND = ' AND ';\n\n if (def.typeId) {\n sb.push(`[partTypeId=${def.typeId}]`);\n }\n if (def.roleId) {\n if (sb.length) {\n sb.push(AND);\n }\n sb.push(`[roleId=${def.roleId}]`);\n }\n if (def.name) {\n if (sb.length) {\n sb.push(AND);\n }\n sb.push(`[name=${def.name}]`);\n }\n if (text) {\n if (sb.length) {\n sb.push(AND);\n }\n // for other operators see backend SqlQueryBuilderBase.cs\n sb.push(`[value*=${text}]`); // *= is \"contains\"\n }\n\n return sb.join('');\n }\n\n public lookup(filter: RefLookupFilter, options?: any): Observable<any[]> {\n // the index lookup definition is required\n const def = options as IndexLookupDefinition;\n if (!def) {\n return of([]);\n }\n\n // build the corresponding pin query\n const query = this.buildQuery(def, filter.text);\n\n // search the index\n return this._itemService.searchPins(query, 1, filter.limit).pipe(\n map((w: ErrorWrapper<DataPage<DataPinInfo>>) => {\n if (w.error) {\n console.error(w.error);\n return [];\n } else {\n return w.value?.items || [];\n }\n })\n );\n }\n}\n","import { Component, EventEmitter, Inject, Output } from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { ItemService } from '@myrmidon/cadmus-api';\n\nimport {\n DataPinInfo,\n IndexLookupDefinitions,\n Item,\n Part,\n} from '@myrmidon/cadmus-core';\nimport { forkJoin, take } from 'rxjs';\n\nimport { PinRefLookupService } from '../services/pin-ref-lookup.service';\n\n// from Cadmus general parts\nconst METADATA_PART_ID = 'it.vedph.metadata';\ninterface MetadataPart extends Part {\n metadata: {\n type?: string;\n name: string;\n value: string;\n }[];\n}\n\ninterface LookupInfo {\n pin: DataPinInfo;\n item?: Item;\n part?: MetadataPart;\n}\n\n/*\n * Scoped pin-based lookup component. This component provides a list\n * of pin-based searches, with a lookup control. Whenever the user\n * picks a pin value, he gets the details about its item and part, and\n * item's metadata part, if any. He can then use these data to build\n * some EID by variously assembling these components.\n */\n@Component({\n selector: 'cadmus-scoped-pin-lookup',\n templateUrl: './scoped-pin-lookup.component.html',\n styleUrls: ['./scoped-pin-lookup.component.css'],\n})\nexport class ScopedPinLookupComponent {\n // lookup\n public key: FormControl<string | null>;\n public keyForm: FormGroup;\n public keys: string[];\n public info?: LookupInfo;\n // builder\n public id: FormControl<string | null>;\n public idForm: FormGroup;\n\n @Output()\n public idPick: EventEmitter<string>;\n\n constructor(\n formBuilder: FormBuilder,\n private _itemService: ItemService,\n public lookupService: PinRefLookupService,\n @Inject('indexLookupDefinitions')\n public lookupDefs: IndexLookupDefinitions\n ) {\n // lookup\n // keys are all the defined lookup searches\n this.keys = Object.keys(lookupDefs);\n // the selected key defines the lookup scope\n this.key = formBuilder.control(null);\n this.keyForm = formBuilder.group({\n key: this.key,\n });\n // id\n this.id = formBuilder.control(null, [\n Validators.required,\n Validators.maxLength(300),\n ]);\n this.idForm = formBuilder.group({\n id: this.id,\n });\n // event\n this.idPick = new EventEmitter<string>();\n }\n\n ngOnInit(): void {\n // pre-select a unique key\n if (this.keys.length === 1) {\n this.key.setValue(this.keys[0]);\n this.key.markAsDirty();\n this.key.updateValueAndValidity();\n }\n }\n\n public onItemChange(item: DataPinInfo): void {\n const info: LookupInfo = {\n pin: item,\n };\n // lookup item and its metadata part if any\n forkJoin({\n item: this._itemService.getItem(item.itemId, false),\n part: this._itemService.getPartFromTypeAndRole(\n item.itemId,\n METADATA_PART_ID\n ),\n })\n .pipe(take(1))\n .subscribe({\n next: (result) => {\n info.item = result.item;\n info.part = result.part as MetadataPart;\n this.info = info;\n },\n error: (error) => {\n console.error(\n error ? JSON.stringify(error) : 'Error loading item/metadata'\n );\n },\n });\n }\n\n public appendIdComponent(type: string, metaIndex = -1): void {\n let id = this.id.value || '';\n\n switch (type) {\n case 'pin':\n id += this.info?.pin.value;\n break;\n case 'itemId':\n id += this.info!.item?.id || '';\n break;\n case 'partId':\n id += this.info!.part?.id || '';\n break;\n case 'partTypeId':\n id += this.info!.part?.typeId || '';\n break;\n case 'partRoleId':\n id += this.info!.part?.roleId || '';\n break;\n case 'metadata':\n id += this.info!.part!.metadata[metaIndex].value;\n break;\n }\n\n this.id.setValue(id);\n this.id.markAsDirty();\n this.id.updateValueAndValidity();\n }\n\n public pickId(): void {\n if (this.idForm.invalid) {\n return;\n }\n this.idPick.emit(this.id.value!);\n this.info = undefined;\n }\n\n public resetId(): void {\n this.id.reset();\n this.id.markAsDirty();\n this.id.updateValueAndValidity();\n }\n}\n","<div>\n <!-- lookup -->\n <div>\n <form [formGroup]=\"keyForm\" class=\"form-row\">\n <!-- key -->\n <mat-form-field *ngIf=\"keys.length > 1\">\n <mat-label>type</mat-label>\n <mat-select [formControl]=\"key\">\n <mat-option *ngFor=\"let k of keys\" [value]=\"k\">{{ k }}</mat-option>\n </mat-select>\n <mat-error\n *ngIf=\"$any(key).errors?.required && (key.dirty || key.touched)\"\n >type required</mat-error\n >\n </mat-form-field>\n <cadmus-ref-lookup\n [service]=\"lookupService\"\n label=\"pin\"\n [options]=\"key.value ? lookupDefs[key.value] : undefined\"\n (itemChange)=\"onItemChange($event)\"\n ></cadmus-ref-lookup>\n </form>\n </div>\n\n <!-- builder -->\n <mat-expansion-panel *ngIf=\"info\" [expanded]=\"info\" [disabled]=\"!info\">\n <mat-expansion-panel-header>ID builder</mat-expansion-panel-header>\n <!-- ID -->\n <div>\n <form [formGroup]=\"idForm\" (submit)=\"pickId()\">\n <mat-form-field style=\"width: 100%\">\n <input matInput [formControl]=\"id\" />\n <mat-error\n *ngIf=\"$any(id).errors?.required && (id.dirty || id.touched)\"\n >ID required</mat-error\n >\n <mat-error\n *ngIf=\"$any(id).errors?.maxLength && (id.dirty || id.touched)\"\n >ID too long</mat-error\n >\n <button\n mat-icon-button\n type=\"button\"\n matSuffix\n (click)=\"resetId()\"\n [disabled]=\"!id.value\"\n >\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n <button\n mat-icon-button\n type=\"button\"\n matSuffix\n (click)=\"pickId()\"\n [disabled]=\"idForm.invalid\"\n >\n <mat-icon color=\"primary\">check_circle</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </div>\n <!-- table -->\n <table>\n <thead>\n <th></th>\n <th>source</th>\n <th>value</th>\n </thead>\n <tbody>\n <!-- pin -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('pin')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>pin</td>\n <td>{{ info!.pin.value }}</td>\n </tr>\n <!-- item ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('itemId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>item ID</td>\n <td>{{ info!.item?.id }}</td>\n </tr>\n <!-- item title -->\n <tr>\n <td></td>\n <td>item title</td>\n <td>{{ info!.item?.title }}</td>\n </tr>\n <!-- part ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('partId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>part ID</td>\n <td>{{ info!.part?.id }}</td>\n </tr>\n <!-- part type ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('partTypeId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>part type ID</td>\n <td>{{ info!.part?.typeId }}</td>\n </tr>\n <!-- part role ID -->\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('partRoleId')\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ info!.part?.roleId }}</td>\n </tr>\n\n <!-- part's metadata -->\n <tr *ngFor=\"let m of info!.part?.metadata; let i = index\">\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('metadata', i)\"\n >\n <mat-icon>add_circle</mat-icon>\n </button>\n </td>\n <td class=\"metadata\">{{ m.name }}</td>\n <td class=\"metadata\">{{ m.value }}</td>\n </tr>\n </tbody>\n </table>\n </mat-expansion-panel>\n</div>\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { IndexLookupDefinitions, ThesaurusEntry } from '@myrmidon/cadmus-core';\r\nimport { Assertion } from '@myrmidon/cadmus-refs-assertion';\r\n\r\nimport { PinRefLookupService } from '../services/pin-ref-lookup.service';\r\n\r\nexport interface AssertedId {\r\n tag?: string;\r\n value: string;\r\n scope: string;\r\n assertion?: Assertion;\r\n}\r\n\r\n@Component({\r\n selector: 'cadmus-refs-asserted-id',\r\n templateUrl: './asserted-id.component.html',\r\n styleUrls: ['./asserted-id.component.css'],\r\n})\r\nexport class AssertedIdComponent implements OnInit {\r\n private _updatingForm: boolean | undefined;\r\n private _id: AssertedId | undefined;\r\n\r\n public tag: FormControl<string | null>;\r\n public value: FormControl<string | null>;\r\n public scope: FormControl<string | null>;\r\n public assertion: FormControl<Assertion | null>;\r\n public form: FormGroup;\r\n\r\n public lookupExpanded: boolean;\r\n\r\n // asserted-id-scopes\r\n @Input()\r\n public idScopeEntries?: ThesaurusEntry[];\r\n\r\n // asserted-id-tags\r\n @Input()\r\n public idTagEntries?: ThesaurusEntry[];\r\n\r\n // assertion-tags\r\n @Input()\r\n public assTagEntries?: ThesaurusEntry[];\r\n\r\n // doc-reference-types\r\n @Input()\r\n public refTypeEntries: ThesaurusEntry[] | undefined;\r\n\r\n // doc-reference-tags\r\n @Input()\r\n public refTagEntries: ThesaurusEntry[] | undefined;\r\n\r\n @Input()\r\n public get id(): AssertedId | undefined | null {\r\n return this._id;\r\n }\r\n public set id(value: AssertedId | undefined | null) {\r\n if (this._id !== value) {\r\n this._id = value || undefined;\r\n this.updateForm(this._id);\r\n }\r\n }\r\n\r\n /**\r\n * True to hide the pin-based EID lookup UI.\r\n */\r\n @Input()\r\n public noEidLookup: boolean | undefined;\r\n\r\n @Input()\r\n public hasSubmit: boolean | undefined;\r\n\r\n @Output()\r\n public idChange: EventEmitter<AssertedId>;\r\n\r\n @Output()\r\n public editorClose: EventEmitter<any>;\r\n\r\n constructor(\r\n formBuilder: FormBuilder,\r\n public lookupService: PinRefLookupService,\r\n @Inject('indexLookupDefinitions')\r\n public lookupDefs: IndexLookupDefinitions\r\n ) {\r\n this.tag = formBuilder.control(null, Validators.maxLength(50));\r\n this.value = formBuilder.control(null, [\r\n Validators.required,\r\n Validators.maxLength(500),\r\n ]);\r\n this.scope = formBuilder.control(null, Validators.maxLength(500));\r\n this.assertion = formBuilder.control(null);\r\n this.form = formBuilder.group({\r\n tag: this.tag,\r\n value: this.value,\r\n scope: this.scope,\r\n assertion: this.assertion\r\n });\r\n this.lookupExpanded = false;\r\n // events\r\n this.idChange = new EventEmitter<AssertedId>();\r\n this.editorClose = new EventEmitter<any>();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.form.valueChanges.pipe(debounceTime(300)).subscribe((_) => {\r\n if (!this._updatingForm) {\r\n this.emitIdChange();\r\n }\r\n });\r\n }\r\n\r\n public onAssertionChange(assertion: Assertion | undefined): void {\r\n this.assertion.setValue(assertion || null);\r\n }\r\n\r\n public onIdPick(id: string): void {\r\n this.value.setValue(id);\r\n this.value.markAsDirty();\r\n this.value.updateValueAndValidity();\r\n this.lookupExpanded = false;\r\n }\r\n\r\n private updateForm(value: AssertedId | undefined): void {\r\n this._updatingForm = true;\r\n if (!value) {\r\n this.form.reset();\r\n } else {\r\n this.tag.setValue(value.tag || null);\r\n this.value.setValue(value.value);\r\n this.scope.setValue(value.scope);\r\n this.assertion.setValue(value.assertion || null);\r\n this.form.markAsPristine();\r\n }\r\n this._updatingForm = false;\r\n // this.emitIdChange();\r\n }\r\n\r\n private getId(): AssertedId {\r\n return {\r\n tag: this.tag.value?.trim(),\r\n value: this.value.value?.trim() || '',\r\n scope: this.scope.value?.trim() || '',\r\n assertion: this.assertion.value || undefined,\r\n };\r\n }\r\n\r\n public emitIdChange(): void {\r\n if (!this.hasSubmit) {\r\n this._id = this.getId();\r\n this.idChange.emit(this._id);\r\n }\r\n }\r\n\r\n public cancel(): void {\r\n this.editorClose.emit();\r\n }\r\n\r\n public save(): void {\r\n if (this.form.valid) {\r\n this._id = this.getId();\r\n this.idChange.emit(this._id);\r\n }\r\n }\r\n}\r\n","<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n <mat-form-field *ngIf=\"idTagEntries?.length\" style=\"width: 8em\">\n <mat-label>tag</mat-label>\n <mat-select [formControl]=\"tag\">\n <mat-option *ngFor=\"let e of idTagEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- tag (free) -->\n <mat-form-field *ngIf=\"!idTagEntries?.length\" style=\"width: 8em\">\n <mat-label>tag</mat-label>\n <input matInput [formControl]=\"tag\" />\n <mat-error *ngIf=\"tag.errors?.maxLength && (tag.dirty || tag.touched)\"\n >tag too long</mat-error\n >\n </mat-form-field>\n\n <!-- scope (bound) -->\n <mat-form-field *ngIf=\"idScopeEntries?.length\" style=\"width: 8em\">\n <mat-label>scope</mat-label>\n <mat-select [formControl]=\"scope\">\n <mat-option *ngFor=\"let e of idScopeEntries\" [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n </mat-select>\n </mat-form-field>\n <!-- scope (free) -->\n <mat-form-field *ngIf=\"!idScopeEntries?.length\" style=\"width: 8em\">\n <mat-label>scope</mat-label>\n <input matInput [formControl]=\"scope\" />\n <mat-error\n *ngIf=\"scope.errors?.maxLength && (scope.dirty || scope.touched)\"\n >scope too long</mat-error\n >\n </mat-form-field>\n\n <!-- value -->\n <mat-form-field>\n <mat-label>value</mat-label>\n <input matInput [formControl]=\"value\" />\n <mat-error\n *ngIf=\"value.errors?.required && (value.dirty || value.touched)\"\n >value required</mat-error\n >\n <mat-error\n *ngIf=\"value.errors?.maxLength && (value.dirty || value.touched)\"\n >value too long</mat-error\n >\n </mat-form-field>\n\n <!-- lookup -->\n <div *ngIf=\"!noEidLookup\" style=\"margin-top: 4px\">\n <mat-expansion-panel [(expanded)]=\"lookupExpanded\">\n <mat-expansion-panel-header>lookup</mat-expansion-panel-header>\n <cadmus-scoped-pin-lookup\n (idPick)=\"onIdPick($event)\"\n ></cadmus-scoped-pin-lookup>\n </mat-expansion-panel>\n </div>\n </div>\n\n <!-- assertion -->\n <mat-expansion-panel>\n <mat-expansion-panel-header>assertion</mat-expansion-panel-header>\n <cadmus-refs-assertion\n [assTagEntries]=\"assTagEntries\"\n [refTypeEntries]=\"refTypeEntries\"\n [refTagEntries]=\"refTagEntries\"\n [assertion]=\"assertion.value\"\n (assertionChange)=\"onAssertionChange($event)\"\n >\n </cadmus-refs-assertion>\n </mat-expansion-panel>\n </div>\n\n <!-- buttons -->\n <div *ngIf=\"hasSubmit\">\n <button mat-icon-button color=\"warn\" type=\"button\" (click)=\"cancel()\">\n <mat-icon>close</mat-icon>\n </button>\n <button\n mat-icon-button\n color=\"primary\"\n type=\"submit\"\n [disabled]=\"form.invalid\"\n >\n <mat-icon>check_circle</mat-icon>\n </button>\n </div>\n</form>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\n\r\nimport { ThesaurusEntry } from '@myrmidon/cadmus-core';\r\nimport { DialogService } from '@myrmidon/ng-mat-tools';\r\nimport { take } from 'rxjs';\r\n\r\nimport { AssertedId } from '../asserted-id/asserted-id.component';\r\n\r\n/**\r\n * Asserted IDs editor.\r\n */\r\n@Component({\r\n selector: 'cadmus-refs-asserted-ids',\r\n templateUrl: './asserted-ids.component.html',\r\n styleUrls: ['./asserted-ids.component.css'],\r\n})\r\nexport class AssertedIdsComponent {\r\n private _ids: AssertedId[];\r\n private _editedIndex: number;\r\n public edited?: AssertedId;\r\n\r\n /**\r\n * The asserted IDs.\r\n */\r\n @Input()\r\n public get ids(): AssertedId[] {\r\n return this._ids;\r\n }\r\n public set ids(value: AssertedId[]) {\r\n if (this._ids !== value) {\r\n this._ids = value || [];\r\n this.updateForm(value);\r\n }\r\n }\r\n\r\n // asserted-id-scopes\r\n @Input()\r\n public idScopeEntries?: ThesaurusEntry[];\r\n\r\n // asserted-id-tags\r\n @Input()\r\n public idTagEntries?: ThesaurusEntry[];\r\n\r\n // assertion-tags\r\n @Input()\r\n public assTagEntries?: ThesaurusEntry[];\r\n\r\n // doc-reference-types\r\n @Input()\r\n public refTypeEntries: ThesaurusEntry[] | undefined;\r\n\r\n // doc-reference-tags\r\n @Input()\r\n public refTagEntries: ThesaurusEntry[] | undefined;\r\n\r\n /**\r\n * Emitted whenever any ID changes.\r\n */\r\n @Output()\r\n public idsChange: EventEmitter<AssertedId[]>;\r\n\r\n public entries: FormControl<AssertedId[]>;\r\n public form: FormGroup;\r\n\r\n constructor(formBuilder: FormBuilder, private _dialogService: DialogService) {\r\n this._ids = [];\r\n this._editedIndex = -1;\r\n this.idsChange = new EventEmitter<AssertedId[]>();\r\n this.entries = formBuilder.control([], { nonNullable: true });\r\n // form\r\n this.form = formBuilder.group({\r\n ids: this.entries,\r\n });\r\n }\r\n\r\n private updateForm(ids: AssertedId[]): void {\r\n if (!ids?.length) {\r\n this.form.reset();\r\n return;\r\n }\r\n this.entries.setValue(ids, { emitEvent: false });\r\n this.entries.updateValueAndValidity();\r\n this.form.markAsPristine();\r\n }\r\n\r\n private emitIdsChange(): void {\r\n this.idsChange.emit(this.entries.value);\r\n }\r\n\r\n public addId(): void {\r\n this.editId(\r\n {\r\n scope: '',\r\n value: '',\r\n },\r\n -1\r\n );\r\n }\r\n\r\n public editId(id: AssertedId, index: number): void {\r\n this._editedIndex = index;\r\n this.edited = id;\r\n }\r\n\r\n public closeId(): void {\r\n this._editedIndex = -1;\r\n this.edited = undefined;\r\n }\r\n\r\n public saveId(entry: AssertedId): void {\r\n const entries = [...this.entries.value];\r\n if (this._editedIndex === -1) {\r\n entries.push(entry);\r\n } else {\r\n entries.splice(this._editedIndex, 1, entry);\r\n }\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.closeId();\r\n }\r\n\r\n public deleteId(index: number): void {\r\n this._dialogService\r\n .confirm('Confirmation', 'Delete ID?')\r\n .pipe(take(1))\r\n .subscribe((yes) => {\r\n if (yes) {\r\n if (this._editedIndex === index) {\r\n this.closeId();\r\n }\r\n const entries = [...this.entries.value];\r\n entries.splice(index, 1);\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.emitIdsChange();\r\n }\r\n });\r\n }\r\n\r\n public moveIdUp(index: number): void {\r\n if (index < 1) {\r\n return;\r\n }\r\n const entry = this.entries.value[index];\r\n const entries = [...this.entries.value];\r\n entries.splice(index, 1);\r\n entries.splice(index - 1, 0, entry);\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.emitIdsChange();\r\n }\r\n\r\n public moveIdDown(index: number): void {\r\n if (index + 1 >= this.entries.value.length) {\r\n return;\r\n }\r\n const entry = this.entries.value[index];\r\n const entries = [...this.entries.value];\r\n entries.splice(index, 1);\r\n entries.splice(index + 1, 0, entry);\r\n this.entries.setValue(entries);\r\n this.entries.markAsDirty();\r\n this.entries.updateValueAndValidity();\r\n this.emitIdsChange();\r\n }\r\n\r\n public onIdChange(id: AssertedId): void {\r\n this.saveId(id);\r\n this.emitIdsChange();\r\n }\r\n}\r\n","<form [formGroup]=\"form\">\r\n <div>\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"addId()\">\r\n <mat-icon>add_circle</mat-icon> ID\r\n </button>\r\n </div>\r\n <table *ngIf=\"entries.value?.length\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>scope</th>\r\n <th>value</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n *ngFor=\"\r\n let entry of entries.value;\r\n let i = index;\r\n let first = first;\r\n let last = last\r\n \"\r\n >\r\n <td>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"primary\"\r\n matTooltip=\"Edit this ID\"\r\n (click)=\"editId(entry, i)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID up\"\r\n [disabled]=\"first\"\r\n (click)=\"moveIdUp(i)\"\r\n >\r\n <mat-icon>arrow_upward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this ID down\"\r\n [disabled]=\"last\"\r\n (click)=\"moveIdDown(i)\"\r\n >\r\n <mat-icon>arrow_downward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n matTooltip=\"Delete this ID\"\r\n (click)=\"deleteId(i)\"\r\n >\r\n <mat-icon>remove_circle</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ entry.scope }}</td>\r\n <td>{{ entry.value }}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\r\n <mat-expansion-panel-header>ID {{edited?.value}}</mat-expansion-panel-header>\r\n <cadmus-refs-asserted-id\r\n [idScopeEntries]=\"idScopeEntries\"\r\n [idTagEntries]=\"idTagEntries\"\r\n [assTagEntries]=\"assTagEntries\"\r\n [refTypeEntries]=\"refTypeEntries\"\r\n [refTagEntries]=\"refTagEntries\"\r\n [hasSubmit]=\"true\"\r\n [id]=\"edited\"\r\n (idChange)=\"onIdChange($event)\"\r\n (editorClose)=\"closeId()\"\r\n ></cadmus-refs-asserted-id>\r\n </mat-expansion-panel>\r\n</form>\r\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 { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { CadmusCoreModule } from '@myrmidon/cadmus-core';\nimport { CadmusApiModule } from '@myrmidon/cadmus-api';\nimport { CadmusRefsAssertionModule } from '@myrmidon/cadmus-refs-assertion';\nimport { CadmusRefsDocReferencesModule } from '@myrmidon/cadmus-refs-doc-references';\nimport { CadmusRefsLookupModule } from '@myrmidon/cadmus-refs-lookup';\n\nimport { AssertedIdComponent } from './asserted-id/asserted-id.component';\nimport { AssertedIdsComponent } from './asserted-ids/asserted-ids.component';\nimport { ScopedPinLookupComponent } from './scoped-pin-lookup/scoped-pin-lookup.component';\n\n@NgModule({\n declarations: [\n AssertedIdComponent,\n AssertedIdsComponent,\n ScopedPinLookupComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n // material\n MatButtonModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n // Cadmus\n CadmusCoreModule,\n CadmusRefsDocReferencesModule,\n CadmusRefsAssertionModule,\n CadmusRefsLookupModule,\n CadmusApiModule,\n ],\n exports: [\n AssertedIdComponent,\n AssertedIdsComponent,\n ScopedPinLookupComponent,\n ],\n})\nexport class CadmusRefsAssertedIdsModule {}\n","/*\n * Public API Surface of cadmus-refs-asserted-ids\n */\n\nexport * from './lib/asserted-id/asserted-id.component';\nexport * from './lib/asserted-ids/asserted-ids.component';\nexport * from './lib/scoped-pin-lookup/scoped-pin-lookup.component';\n\nexport * from './lib/services/pin-ref-lookup.service';\n\nexport * from './lib/cadmus-refs-asserted-ids.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i1","i5","i6","i7","i8","i9","i10","i11","i12.ScopedPinLookupComponent","i7.AssertedIdComponent"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
/// <amd-module name="@myrmidon/cadmus-refs-asserted-ids" />
|
|
5
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="@myrmidon/cadmus-refs-asserted-ids" />
|
|
5
|
+
export * from './public-api';
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
-
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
-
import { IndexLookupDefinitions, ThesaurusEntry } from '@myrmidon/cadmus-core';
|
|
4
|
-
import { Assertion } from '@myrmidon/cadmus-refs-assertion';
|
|
5
|
-
import { PinRefLookupService } from '../services/pin-ref-lookup.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export interface AssertedId {
|
|
8
|
-
tag?: string;
|
|
9
|
-
value: string;
|
|
10
|
-
scope: string;
|
|
11
|
-
assertion?: Assertion;
|
|
12
|
-
}
|
|
13
|
-
export declare class AssertedIdComponent implements OnInit {
|
|
14
|
-
lookupService: PinRefLookupService;
|
|
15
|
-
lookupDefs: IndexLookupDefinitions;
|
|
16
|
-
private _updatingForm;
|
|
17
|
-
private _id;
|
|
18
|
-
tag: FormControl<string | null>;
|
|
19
|
-
value: FormControl<string | null>;
|
|
20
|
-
scope: FormControl<string | null>;
|
|
21
|
-
assertion: FormControl<Assertion | null>;
|
|
22
|
-
form: FormGroup;
|
|
23
|
-
lookupExpanded: boolean;
|
|
24
|
-
idScopeEntries?: ThesaurusEntry[];
|
|
25
|
-
idTagEntries?: ThesaurusEntry[];
|
|
26
|
-
assTagEntries?: ThesaurusEntry[];
|
|
27
|
-
refTypeEntries: ThesaurusEntry[] | undefined;
|
|
28
|
-
refTagEntries: ThesaurusEntry[] | undefined;
|
|
29
|
-
get id(): AssertedId | undefined | null;
|
|
30
|
-
set id(value: AssertedId | undefined | null);
|
|
31
|
-
/**
|
|
32
|
-
* True to hide the pin-based EID lookup UI.
|
|
33
|
-
*/
|
|
34
|
-
noEidLookup: boolean | undefined;
|
|
35
|
-
hasSubmit: boolean | undefined;
|
|
36
|
-
idChange: EventEmitter<AssertedId>;
|
|
37
|
-
editorClose: EventEmitter<any>;
|
|
38
|
-
constructor(formBuilder: FormBuilder, lookupService: PinRefLookupService, lookupDefs: IndexLookupDefinitions);
|
|
39
|
-
ngOnInit(): void;
|
|
40
|
-
onAssertionChange(assertion: Assertion | undefined): void;
|
|
41
|
-
onIdPick(id: string): void;
|
|
42
|
-
private updateForm;
|
|
43
|
-
private getId;
|
|
44
|
-
emitIdChange(): void;
|
|
45
|
-
cancel(): void;
|
|
46
|
-
save(): void;
|
|
47
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AssertedIdComponent, never>;
|
|
48
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AssertedIdComponent, "cadmus-refs-asserted-id", never, { "idScopeEntries": "idScopeEntries"; "idTagEntries": "idTagEntries"; "assTagEntries": "assTagEntries"; "refTypeEntries": "refTypeEntries"; "refTagEntries": "refTagEntries"; "id": "id"; "noEidLookup": "noEidLookup"; "hasSubmit": "hasSubmit"; }, { "idChange": "idChange"; "editorClose": "editorClose"; }, never, never, false, never>;
|
|
49
|
-
}
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { IndexLookupDefinitions, ThesaurusEntry } from '@myrmidon/cadmus-core';
|
|
4
|
+
import { Assertion } from '@myrmidon/cadmus-refs-assertion';
|
|
5
|
+
import { PinRefLookupService } from '../services/pin-ref-lookup.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export interface AssertedId {
|
|
8
|
+
tag?: string;
|
|
9
|
+
value: string;
|
|
10
|
+
scope: string;
|
|
11
|
+
assertion?: Assertion;
|
|
12
|
+
}
|
|
13
|
+
export declare class AssertedIdComponent implements OnInit {
|
|
14
|
+
lookupService: PinRefLookupService;
|
|
15
|
+
lookupDefs: IndexLookupDefinitions;
|
|
16
|
+
private _updatingForm;
|
|
17
|
+
private _id;
|
|
18
|
+
tag: FormControl<string | null>;
|
|
19
|
+
value: FormControl<string | null>;
|
|
20
|
+
scope: FormControl<string | null>;
|
|
21
|
+
assertion: FormControl<Assertion | null>;
|
|
22
|
+
form: FormGroup;
|
|
23
|
+
lookupExpanded: boolean;
|
|
24
|
+
idScopeEntries?: ThesaurusEntry[];
|
|
25
|
+
idTagEntries?: ThesaurusEntry[];
|
|
26
|
+
assTagEntries?: ThesaurusEntry[];
|
|
27
|
+
refTypeEntries: ThesaurusEntry[] | undefined;
|
|
28
|
+
refTagEntries: ThesaurusEntry[] | undefined;
|
|
29
|
+
get id(): AssertedId | undefined | null;
|
|
30
|
+
set id(value: AssertedId | undefined | null);
|
|
31
|
+
/**
|
|
32
|
+
* True to hide the pin-based EID lookup UI.
|
|
33
|
+
*/
|
|
34
|
+
noEidLookup: boolean | undefined;
|
|
35
|
+
hasSubmit: boolean | undefined;
|
|
36
|
+
idChange: EventEmitter<AssertedId>;
|
|
37
|
+
editorClose: EventEmitter<any>;
|
|
38
|
+
constructor(formBuilder: FormBuilder, lookupService: PinRefLookupService, lookupDefs: IndexLookupDefinitions);
|
|
39
|
+
ngOnInit(): void;
|
|
40
|
+
onAssertionChange(assertion: Assertion | undefined): void;
|
|
41
|
+
onIdPick(id: string): void;
|
|
42
|
+
private updateForm;
|
|
43
|
+
private getId;
|
|
44
|
+
emitIdChange(): void;
|
|
45
|
+
cancel(): void;
|
|
46
|
+
save(): void;
|
|
47
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssertedIdComponent, never>;
|
|
48
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssertedIdComponent, "cadmus-refs-asserted-id", never, { "idScopeEntries": { "alias": "idScopeEntries"; "required": false; }; "idTagEntries": { "alias": "idTagEntries"; "required": false; }; "assTagEntries": { "alias": "assTagEntries"; "required": false; }; "refTypeEntries": { "alias": "refTypeEntries"; "required": false; }; "refTagEntries": { "alias": "refTagEntries"; "required": false; }; "id": { "alias": "id"; "required": false; }; "noEidLookup": { "alias": "noEidLookup"; "required": false; }; "hasSubmit": { "alias": "hasSubmit"; "required": false; }; }, { "idChange": "idChange"; "editorClose": "editorClose"; }, never, never, false, never>;
|
|
49
|
+
}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
-
import { ThesaurusEntry } from '@myrmidon/cadmus-core';
|
|
4
|
-
import { DialogService } from '@myrmidon/ng-mat-tools';
|
|
5
|
-
import { AssertedId } from '../asserted-id/asserted-id.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Asserted IDs editor.
|
|
9
|
-
*/
|
|
10
|
-
export declare class AssertedIdsComponent {
|
|
11
|
-
private _dialogService;
|
|
12
|
-
private _ids;
|
|
13
|
-
private _editedIndex;
|
|
14
|
-
edited?: AssertedId;
|
|
15
|
-
/**
|
|
16
|
-
* The asserted IDs.
|
|
17
|
-
*/
|
|
18
|
-
get ids(): AssertedId[];
|
|
19
|
-
set ids(value: AssertedId[]);
|
|
20
|
-
idScopeEntries?: ThesaurusEntry[];
|
|
21
|
-
idTagEntries?: ThesaurusEntry[];
|
|
22
|
-
assTagEntries?: ThesaurusEntry[];
|
|
23
|
-
refTypeEntries: ThesaurusEntry[] | undefined;
|
|
24
|
-
refTagEntries: ThesaurusEntry[] | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* Emitted whenever any ID changes.
|
|
27
|
-
*/
|
|
28
|
-
idsChange: EventEmitter<AssertedId[]>;
|
|
29
|
-
entries: FormControl<AssertedId[]>;
|
|
30
|
-
form: FormGroup;
|
|
31
|
-
constructor(formBuilder: FormBuilder, _dialogService: DialogService);
|
|
32
|
-
private updateForm;
|
|
33
|
-
private emitIdsChange;
|
|
34
|
-
addId(): void;
|
|
35
|
-
editId(id: AssertedId, index: number): void;
|
|
36
|
-
closeId(): void;
|
|
37
|
-
saveId(entry: AssertedId): void;
|
|
38
|
-
deleteId(index: number): void;
|
|
39
|
-
moveIdUp(index: number): void;
|
|
40
|
-
moveIdDown(index: number): void;
|
|
41
|
-
onIdChange(id: AssertedId): void;
|
|
42
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AssertedIdsComponent, never>;
|
|
43
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AssertedIdsComponent, "cadmus-refs-asserted-ids", never, { "ids": "ids"; "idScopeEntries": "idScopeEntries"; "idTagEntries": "idTagEntries"; "assTagEntries": "assTagEntries"; "refTypeEntries": "refTypeEntries"; "refTagEntries": "refTagEntries"; }, { "idsChange": "idsChange"; }, never, never, false, never>;
|
|
44
|
-
}
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { ThesaurusEntry } from '@myrmidon/cadmus-core';
|
|
4
|
+
import { DialogService } from '@myrmidon/ng-mat-tools';
|
|
5
|
+
import { AssertedId } from '../asserted-id/asserted-id.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Asserted IDs editor.
|
|
9
|
+
*/
|
|
10
|
+
export declare class AssertedIdsComponent {
|
|
11
|
+
private _dialogService;
|
|
12
|
+
private _ids;
|
|
13
|
+
private _editedIndex;
|
|
14
|
+
edited?: AssertedId;
|
|
15
|
+
/**
|
|
16
|
+
* The asserted IDs.
|
|
17
|
+
*/
|
|
18
|
+
get ids(): AssertedId[];
|
|
19
|
+
set ids(value: AssertedId[]);
|
|
20
|
+
idScopeEntries?: ThesaurusEntry[];
|
|
21
|
+
idTagEntries?: ThesaurusEntry[];
|
|
22
|
+
assTagEntries?: ThesaurusEntry[];
|
|
23
|
+
refTypeEntries: ThesaurusEntry[] | undefined;
|
|
24
|
+
refTagEntries: ThesaurusEntry[] | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Emitted whenever any ID changes.
|
|
27
|
+
*/
|
|
28
|
+
idsChange: EventEmitter<AssertedId[]>;
|
|
29
|
+
entries: FormControl<AssertedId[]>;
|
|
30
|
+
form: FormGroup;
|
|
31
|
+
constructor(formBuilder: FormBuilder, _dialogService: DialogService);
|
|
32
|
+
private updateForm;
|
|
33
|
+
private emitIdsChange;
|
|
34
|
+
addId(): void;
|
|
35
|
+
editId(id: AssertedId, index: number): void;
|
|
36
|
+
closeId(): void;
|
|
37
|
+
saveId(entry: AssertedId): void;
|
|
38
|
+
deleteId(index: number): void;
|
|
39
|
+
moveIdUp(index: number): void;
|
|
40
|
+
moveIdDown(index: number): void;
|
|
41
|
+
onIdChange(id: AssertedId): void;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssertedIdsComponent, never>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssertedIdsComponent, "cadmus-refs-asserted-ids", never, { "ids": { "alias": "ids"; "required": false; }; "idScopeEntries": { "alias": "idScopeEntries"; "required": false; }; "idTagEntries": { "alias": "idTagEntries"; "required": false; }; "assTagEntries": { "alias": "assTagEntries"; "required": false; }; "refTypeEntries": { "alias": "refTypeEntries"; "required": false; }; "refTagEntries": { "alias": "refTagEntries"; "required": false; }; }, { "idsChange": "idsChange"; }, never, never, false, never>;
|
|
44
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./asserted-id/asserted-id.component";
|
|
3
|
-
import * as i2 from "./asserted-ids/asserted-ids.component";
|
|
4
|
-
import * as i3 from "./scoped-pin-lookup/scoped-pin-lookup.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/expansion";
|
|
9
|
-
import * as i8 from "@angular/material/form-field";
|
|
10
|
-
import * as i9 from "@angular/material/icon";
|
|
11
|
-
import * as i10 from "@angular/material/input";
|
|
12
|
-
import * as i11 from "@angular/material/select";
|
|
13
|
-
import * as i12 from "@myrmidon/cadmus-core";
|
|
14
|
-
import * as i13 from "@myrmidon/cadmus-refs-doc-references";
|
|
15
|
-
import * as i14 from "@myrmidon/cadmus-refs-assertion";
|
|
16
|
-
import * as i15 from "@myrmidon/cadmus-refs-lookup";
|
|
17
|
-
import * as i16 from "@myrmidon/cadmus-api";
|
|
18
|
-
export declare class CadmusRefsAssertedIdsModule {
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CadmusRefsAssertedIdsModule, never>;
|
|
20
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<CadmusRefsAssertedIdsModule, [typeof i1.AssertedIdComponent, typeof i2.AssertedIdsComponent, typeof i3.ScopedPinLookupComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.MatButtonModule, typeof i7.MatExpansionModule, typeof i8.MatFormFieldModule, typeof i9.MatIconModule, typeof i10.MatInputModule, typeof i11.MatSelectModule, typeof i12.CadmusCoreModule, typeof i13.CadmusRefsDocReferencesModule, typeof i14.CadmusRefsAssertionModule, typeof i15.CadmusRefsLookupModule, typeof i16.CadmusApiModule], [typeof i1.AssertedIdComponent, typeof i2.AssertedIdsComponent, typeof i3.ScopedPinLookupComponent]>;
|
|
21
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<CadmusRefsAssertedIdsModule>;
|
|
22
|
-
}
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./asserted-id/asserted-id.component";
|
|
3
|
+
import * as i2 from "./asserted-ids/asserted-ids.component";
|
|
4
|
+
import * as i3 from "./scoped-pin-lookup/scoped-pin-lookup.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/expansion";
|
|
9
|
+
import * as i8 from "@angular/material/form-field";
|
|
10
|
+
import * as i9 from "@angular/material/icon";
|
|
11
|
+
import * as i10 from "@angular/material/input";
|
|
12
|
+
import * as i11 from "@angular/material/select";
|
|
13
|
+
import * as i12 from "@myrmidon/cadmus-core";
|
|
14
|
+
import * as i13 from "@myrmidon/cadmus-refs-doc-references";
|
|
15
|
+
import * as i14 from "@myrmidon/cadmus-refs-assertion";
|
|
16
|
+
import * as i15 from "@myrmidon/cadmus-refs-lookup";
|
|
17
|
+
import * as i16 from "@myrmidon/cadmus-api";
|
|
18
|
+
export declare class CadmusRefsAssertedIdsModule {
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CadmusRefsAssertedIdsModule, never>;
|
|
20
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CadmusRefsAssertedIdsModule, [typeof i1.AssertedIdComponent, typeof i2.AssertedIdsComponent, typeof i3.ScopedPinLookupComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.MatButtonModule, typeof i7.MatExpansionModule, typeof i8.MatFormFieldModule, typeof i9.MatIconModule, typeof i10.MatInputModule, typeof i11.MatSelectModule, typeof i12.CadmusCoreModule, typeof i13.CadmusRefsDocReferencesModule, typeof i14.CadmusRefsAssertionModule, typeof i15.CadmusRefsLookupModule, typeof i16.CadmusApiModule], [typeof i1.AssertedIdComponent, typeof i2.AssertedIdsComponent, typeof i3.ScopedPinLookupComponent]>;
|
|
21
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CadmusRefsAssertedIdsModule>;
|
|
22
|
+
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
-
import { ItemService } from '@myrmidon/cadmus-api';
|
|
4
|
-
import { DataPinInfo, IndexLookupDefinitions, Item, Part } from '@myrmidon/cadmus-core';
|
|
5
|
-
import { PinRefLookupService } from '../services/pin-ref-lookup.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
interface MetadataPart extends Part {
|
|
8
|
-
metadata: {
|
|
9
|
-
type?: string;
|
|
10
|
-
name: string;
|
|
11
|
-
value: string;
|
|
12
|
-
}[];
|
|
13
|
-
}
|
|
14
|
-
interface LookupInfo {
|
|
15
|
-
pin: DataPinInfo;
|
|
16
|
-
item?: Item;
|
|
17
|
-
part?: MetadataPart;
|
|
18
|
-
}
|
|
19
|
-
export declare class ScopedPinLookupComponent {
|
|
20
|
-
private _itemService;
|
|
21
|
-
lookupService: PinRefLookupService;
|
|
22
|
-
lookupDefs: IndexLookupDefinitions;
|
|
23
|
-
key: FormControl<string | null>;
|
|
24
|
-
keyForm: FormGroup;
|
|
25
|
-
keys: string[];
|
|
26
|
-
info?: LookupInfo;
|
|
27
|
-
id: FormControl<string | null>;
|
|
28
|
-
idForm: FormGroup;
|
|
29
|
-
idPick: EventEmitter<string>;
|
|
30
|
-
constructor(formBuilder: FormBuilder, _itemService: ItemService, lookupService: PinRefLookupService, lookupDefs: IndexLookupDefinitions);
|
|
31
|
-
ngOnInit(): void;
|
|
32
|
-
onItemChange(item: DataPinInfo): void;
|
|
33
|
-
appendIdComponent(type: string, metaIndex?: number): void;
|
|
34
|
-
pickId(): void;
|
|
35
|
-
resetId(): void;
|
|
36
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ScopedPinLookupComponent, never>;
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScopedPinLookupComponent, "cadmus-scoped-pin-lookup", never, {}, { "idPick": "idPick"; }, never, never, false, never>;
|
|
38
|
-
}
|
|
39
|
-
export {};
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { ItemService } from '@myrmidon/cadmus-api';
|
|
4
|
+
import { DataPinInfo, IndexLookupDefinitions, Item, Part } from '@myrmidon/cadmus-core';
|
|
5
|
+
import { PinRefLookupService } from '../services/pin-ref-lookup.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
interface MetadataPart extends Part {
|
|
8
|
+
metadata: {
|
|
9
|
+
type?: string;
|
|
10
|
+
name: string;
|
|
11
|
+
value: string;
|
|
12
|
+
}[];
|
|
13
|
+
}
|
|
14
|
+
interface LookupInfo {
|
|
15
|
+
pin: DataPinInfo;
|
|
16
|
+
item?: Item;
|
|
17
|
+
part?: MetadataPart;
|
|
18
|
+
}
|
|
19
|
+
export declare class ScopedPinLookupComponent {
|
|
20
|
+
private _itemService;
|
|
21
|
+
lookupService: PinRefLookupService;
|
|
22
|
+
lookupDefs: IndexLookupDefinitions;
|
|
23
|
+
key: FormControl<string | null>;
|
|
24
|
+
keyForm: FormGroup;
|
|
25
|
+
keys: string[];
|
|
26
|
+
info?: LookupInfo;
|
|
27
|
+
id: FormControl<string | null>;
|
|
28
|
+
idForm: FormGroup;
|
|
29
|
+
idPick: EventEmitter<string>;
|
|
30
|
+
constructor(formBuilder: FormBuilder, _itemService: ItemService, lookupService: PinRefLookupService, lookupDefs: IndexLookupDefinitions);
|
|
31
|
+
ngOnInit(): void;
|
|
32
|
+
onItemChange(item: DataPinInfo): void;
|
|
33
|
+
appendIdComponent(type: string, metaIndex?: number): void;
|
|
34
|
+
pickId(): void;
|
|
35
|
+
resetId(): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScopedPinLookupComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScopedPinLookupComponent, "cadmus-scoped-pin-lookup", never, {}, { "idPick": "idPick"; }, never, never, false, never>;
|
|
38
|
+
}
|
|
39
|
+
export {};
|