@myrmidon/cadmus-refs-asserted-ids 5.1.2 → 5.1.4
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-composite-id/asserted-composite-id.component.mjs +5 -5
- package/esm2022/lib/asserted-composite-ids/asserted-composite-ids.component.mjs +5 -5
- package/esm2022/lib/asserted-id/asserted-id.component.mjs +9 -5
- package/esm2022/lib/asserted-ids/asserted-ids.component.mjs +5 -5
- package/esm2022/lib/pin-target-lookup/pin-target-lookup.component.mjs +5 -5
- package/esm2022/lib/scoped-pin-lookup/scoped-pin-lookup.component.mjs +5 -5
- package/esm2022/lib/services/item-ref-lookup.service.mjs +3 -3
- package/esm2022/lib/services/pin-ref-lookup.service.mjs +3 -3
- package/fesm2022/myrmidon-cadmus-refs-asserted-ids.mjs +34 -30
- package/fesm2022/myrmidon-cadmus-refs-asserted-ids.mjs.map +1 -1
- package/lib/asserted-id/asserted-id.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -102,10 +102,10 @@ class PinRefLookupService {
|
|
|
102
102
|
}
|
|
103
103
|
}));
|
|
104
104
|
}
|
|
105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
106
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PinRefLookupService, deps: [{ token: i1.ItemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
106
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PinRefLookupService, providedIn: 'root' }); }
|
|
107
107
|
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PinRefLookupService, decorators: [{
|
|
109
109
|
type: Injectable,
|
|
110
110
|
args: [{
|
|
111
111
|
providedIn: 'root',
|
|
@@ -212,10 +212,10 @@ class ScopedPinLookupComponent {
|
|
|
212
212
|
this.id.markAsDirty();
|
|
213
213
|
this.id.updateValueAndValidity();
|
|
214
214
|
}
|
|
215
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: ScopedPinLookupComponent, isStandalone: true, selector: "cadmus-scoped-pin-lookup", outputs: { idPick: "idPick" }, ngImport: i0, template: "<div>\n <!-- lookup -->\n <div>\n <form [formGroup]=\"keyForm\" class=\"form-row\">\n <!-- key -->\n @if (keys.length > 1) {\n <mat-form-field>\n <mat-label>type</mat-label>\n <mat-select [formControl]=\"key\">\n @for (k of keys; track k) {\n <mat-option [value]=\"k\">{{ k }}</mat-option>\n }\n </mat-select>\n @if ($any(key).errors?.required && (key.dirty || key.touched)) {\n <mat-error\n >type required</mat-error\n >\n }\n </mat-form-field>\n }\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 @if (info) {\n <mat-expansion-panel [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 @if ($any(id).errors?.required && (id.dirty || id.touched)) {\n <mat-error\n >ID required</mat-error\n >\n }\n @if ($any(id).errors?.maxLength && (id.dirty || id.touched)) {\n <mat-error\n >ID too long</mat-error\n >\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 <!-- part's metadata -->\n @for (m of info!.part?.metadata; track m; let i = $index) {\n <tr>\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 }\n </tbody>\n </table>\n </mat-expansion-panel>\n }\n </div>\n", styles: [".metadata{color:#4a3001}table{border:1px solid silver;border-radius:6px;padding:4px;margin-top:8px}tr:nth-child(odd){background-color:#f0f0f0}th{font-weight:400;text-align:left;color:silver}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: RefLookupComponent, selector: "cadmus-ref-lookup", inputs: ["label", "limit", "baseFilter", "service", "item", "required", "hasMore", "linkTemplate", "optDialog", "options"], outputs: ["itemChange", "moreRequest"] }] }); }
|
|
215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ScopedPinLookupComponent, deps: [{ token: i1$1.FormBuilder }, { token: i1.ItemService }, { token: PinRefLookupService }, { token: 'indexLookupDefinitions' }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: ScopedPinLookupComponent, isStandalone: true, selector: "cadmus-scoped-pin-lookup", outputs: { idPick: "idPick" }, ngImport: i0, template: "<div>\n <!-- lookup -->\n <div>\n <form [formGroup]=\"keyForm\" class=\"form-row\">\n <!-- key -->\n @if (keys.length > 1) {\n <mat-form-field>\n <mat-label>type</mat-label>\n <mat-select [formControl]=\"key\">\n @for (k of keys; track k) {\n <mat-option [value]=\"k\">{{ k }}</mat-option>\n }\n </mat-select>\n @if ($any(key).errors?.required && (key.dirty || key.touched)) {\n <mat-error>type required</mat-error>\n }\n </mat-form-field>\n }\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 @if (info) {\n <mat-expansion-panel [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 @if ($any(id).errors?.required && (id.dirty || id.touched)) {\n <mat-error>ID required</mat-error>\n } @if ($any(id).errors?.maxLength && (id.dirty || id.touched)) {\n <mat-error>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\" class=\"mat-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\" class=\"mat-primary\"\n >check_circle</mat-icon\n >\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 class=\"mat-primary\">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 class=\"mat-primary\">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 class=\"mat-primary\">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 class=\"mat-primary\">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 class=\"mat-primary\">add_circle</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ info!.part?.roleId }}</td>\n </tr>\n <!-- part's metadata -->\n @for (m of info!.part?.metadata; track m; let i = $index) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('metadata', i)\"\n >\n <mat-icon class=\"mat-primary\">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 }\n </tbody>\n </table>\n </mat-expansion-panel>\n }\n</div>\n", styles: [".metadata{color:#4a3001}table{border:1px solid silver;border-radius:6px;padding:4px;margin-top:8px}tr:nth-child(odd){background-color:#f0f0f0}th{font-weight:400;text-align:left;color:silver}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: RefLookupComponent, selector: "cadmus-ref-lookup", inputs: ["label", "limit", "baseFilter", "service", "item", "required", "hasMore", "linkTemplate", "optDialog", "options"], outputs: ["itemChange", "moreRequest"] }] }); }
|
|
217
217
|
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ScopedPinLookupComponent, decorators: [{
|
|
219
219
|
type: Component,
|
|
220
220
|
args: [{ standalone: true, selector: 'cadmus-scoped-pin-lookup', imports: [
|
|
221
221
|
FormsModule,
|
|
@@ -227,7 +227,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
227
227
|
MatInputModule,
|
|
228
228
|
MatSelectModule,
|
|
229
229
|
RefLookupComponent
|
|
230
|
-
], template: "<div>\n <!-- lookup -->\n <div>\n <form [formGroup]=\"keyForm\" class=\"form-row\">\n <!-- key -->\n @if (keys.length > 1) {\n
|
|
230
|
+
], template: "<div>\n <!-- lookup -->\n <div>\n <form [formGroup]=\"keyForm\" class=\"form-row\">\n <!-- key -->\n @if (keys.length > 1) {\n <mat-form-field>\n <mat-label>type</mat-label>\n <mat-select [formControl]=\"key\">\n @for (k of keys; track k) {\n <mat-option [value]=\"k\">{{ k }}</mat-option>\n }\n </mat-select>\n @if ($any(key).errors?.required && (key.dirty || key.touched)) {\n <mat-error>type required</mat-error>\n }\n </mat-form-field>\n }\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 @if (info) {\n <mat-expansion-panel [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 @if ($any(id).errors?.required && (id.dirty || id.touched)) {\n <mat-error>ID required</mat-error>\n } @if ($any(id).errors?.maxLength && (id.dirty || id.touched)) {\n <mat-error>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\" class=\"mat-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\" class=\"mat-primary\"\n >check_circle</mat-icon\n >\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 class=\"mat-primary\">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 class=\"mat-primary\">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 class=\"mat-primary\">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 class=\"mat-primary\">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 class=\"mat-primary\">add_circle</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ info!.part?.roleId }}</td>\n </tr>\n <!-- part's metadata -->\n @for (m of info!.part?.metadata; track m; let i = $index) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n (click)=\"appendIdComponent('metadata', i)\"\n >\n <mat-icon class=\"mat-primary\">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 }\n </tbody>\n </table>\n </mat-expansion-panel>\n }\n</div>\n", styles: [".metadata{color:#4a3001}table{border:1px solid silver;border-radius:6px;padding:4px;margin-top:8px}tr:nth-child(odd){background-color:#f0f0f0}th{font-weight:400;text-align:left;color:silver}\n"] }]
|
|
231
231
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: i1.ItemService }, { type: PinRefLookupService }, { type: undefined, decorators: [{
|
|
232
232
|
type: Inject,
|
|
233
233
|
args: ['indexLookupDefinitions']
|
|
@@ -253,11 +253,13 @@ class AssertedIdComponent {
|
|
|
253
253
|
Validators.required,
|
|
254
254
|
Validators.maxLength(500),
|
|
255
255
|
]);
|
|
256
|
+
this.label = formBuilder.control(null, Validators.maxLength(500));
|
|
256
257
|
this.scope = formBuilder.control(null, Validators.maxLength(500));
|
|
257
258
|
this.assertion = formBuilder.control(null);
|
|
258
259
|
this.form = formBuilder.group({
|
|
259
260
|
tag: this.tag,
|
|
260
261
|
value: this.value,
|
|
262
|
+
label: this.label,
|
|
261
263
|
scope: this.scope,
|
|
262
264
|
assertion: this.assertion,
|
|
263
265
|
});
|
|
@@ -290,6 +292,7 @@ class AssertedIdComponent {
|
|
|
290
292
|
else {
|
|
291
293
|
this.tag.setValue(value.tag || null);
|
|
292
294
|
this.value.setValue(value.value);
|
|
295
|
+
this.label.setValue(value.label || null);
|
|
293
296
|
this.scope.setValue(value.scope);
|
|
294
297
|
this.assertion.setValue(value.assertion || null);
|
|
295
298
|
this.form.markAsPristine();
|
|
@@ -300,6 +303,7 @@ class AssertedIdComponent {
|
|
|
300
303
|
return {
|
|
301
304
|
tag: this.tag.value?.trim(),
|
|
302
305
|
value: this.value.value?.trim() || '',
|
|
306
|
+
label: this.label.value?.trim() || undefined,
|
|
303
307
|
scope: this.scope.value?.trim() || '',
|
|
304
308
|
assertion: this.assertion.value || undefined,
|
|
305
309
|
};
|
|
@@ -319,10 +323,10 @@ class AssertedIdComponent {
|
|
|
319
323
|
this.idChange.emit(this._id);
|
|
320
324
|
}
|
|
321
325
|
}
|
|
322
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
323
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
326
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedIdComponent, deps: [{ token: i1$1.FormBuilder }, { token: PinRefLookupService }, { token: 'indexLookupDefinitions' }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
327
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AssertedIdComponent, isStandalone: true, selector: "cadmus-refs-asserted-id", inputs: { idScopeEntries: "idScopeEntries", idTagEntries: "idTagEntries", assTagEntries: "assTagEntries", refTypeEntries: "refTypeEntries", refTagEntries: "refTagEntries", id: "id", noEidLookup: "noEidLookup", hasSubmit: "hasSubmit" }, outputs: { idChange: "idChange", editorClose: "editorClose" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n @if (idTagEntries?.length) {\n <mat-form-field>\n <mat-label>tag</mat-label>\n <mat-select [formControl]=\"tag\">\n @for (e of idTagEntries; track e) {\n <mat-option [value]=\"e.id\">{{ e.value }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- tag (free) -->\n @if (!idTagEntries?.length) {\n <mat-form-field>\n <mat-label>tag</mat-label>\n <input matInput [formControl]=\"tag\" />\n @if ($any(tag.errors)?.maxLength && (tag.dirty || tag.touched)) {\n <mat-error>tag too long</mat-error>\n }\n </mat-form-field>\n }\n\n <!-- scope (bound) -->\n @if (idScopeEntries?.length) {\n <mat-form-field>\n <mat-label>scope</mat-label>\n <mat-select [formControl]=\"scope\">\n @for (e of idScopeEntries; track e) {\n <mat-option [value]=\"e.id\">{{ e.value }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- scope (free) -->\n @if (!idScopeEntries?.length) {\n <mat-form-field>\n <mat-label>scope</mat-label>\n <input matInput [formControl]=\"scope\" />\n @if ($any(scope.errors)?.maxLength && (scope.dirty || scope.touched)) {\n <mat-error>scope too long</mat-error>\n }\n </mat-form-field>\n }\n\n <!-- value -->\n <mat-form-field>\n <mat-label>value</mat-label>\n <input matInput [formControl]=\"value\" />\n @if ($any(value.errors)?.required && (value.dirty || value.touched)) {\n <mat-error>value required</mat-error>\n } @if ($any(value.errors)?.maxLength && (value.dirty || value.touched))\n {\n <mat-error>value too long</mat-error>\n }\n </mat-form-field>\n\n <!-- label -->\n <mat-form-field>\n <mat-label>label</mat-label>\n <input matInput [formControl]=\"label\" />\n @if ($any(label.errors)?.maxLength && (label.dirty || label.touched)) {\n <mat-error>label too long</mat-error>\n }\n </mat-form-field>\n\n <!-- lookup -->\n @if (!noEidLookup) {\n <div>\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 }\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 @if (hasSubmit) {\n <div>\n <button mat-icon-button color=\"warn\" type=\"button\" (click)=\"cancel()\">\n <mat-icon class=\"mat-warn\">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 class=\"mat-primary\">check_circle</mat-icon>\n </button>\n </div>\n }\n</form>\n", styles: [".form-row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.form-row *{flex:0 0 auto}.pin-info{font-size:90%;color:silver}fieldset{border:1px solid silver;border-radius:6px;padding:6px}@media only screen and (max-width: 959px){div#container{grid-template-rows:1fr auto;grid-template-columns:1fr;grid-template-areas:\"editor\" \"lookup\"}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: AssertionComponent, selector: "cadmus-refs-assertion", inputs: ["assTagEntries", "refTypeEntries", "refTagEntries", "assertion"], outputs: ["assertionChange"] }, { kind: "component", type: ScopedPinLookupComponent, selector: "cadmus-scoped-pin-lookup", outputs: ["idPick"] }] }); }
|
|
324
328
|
}
|
|
325
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedIdComponent, decorators: [{
|
|
326
330
|
type: Component,
|
|
327
331
|
args: [{ standalone: true, selector: 'cadmus-refs-asserted-id', imports: [
|
|
328
332
|
FormsModule,
|
|
@@ -335,7 +339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
335
339
|
MatSelectModule,
|
|
336
340
|
AssertionComponent,
|
|
337
341
|
ScopedPinLookupComponent
|
|
338
|
-
], template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n @if (idTagEntries?.length) {\n
|
|
342
|
+
], template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n @if (idTagEntries?.length) {\n <mat-form-field>\n <mat-label>tag</mat-label>\n <mat-select [formControl]=\"tag\">\n @for (e of idTagEntries; track e) {\n <mat-option [value]=\"e.id\">{{ e.value }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- tag (free) -->\n @if (!idTagEntries?.length) {\n <mat-form-field>\n <mat-label>tag</mat-label>\n <input matInput [formControl]=\"tag\" />\n @if ($any(tag.errors)?.maxLength && (tag.dirty || tag.touched)) {\n <mat-error>tag too long</mat-error>\n }\n </mat-form-field>\n }\n\n <!-- scope (bound) -->\n @if (idScopeEntries?.length) {\n <mat-form-field>\n <mat-label>scope</mat-label>\n <mat-select [formControl]=\"scope\">\n @for (e of idScopeEntries; track e) {\n <mat-option [value]=\"e.id\">{{ e.value }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- scope (free) -->\n @if (!idScopeEntries?.length) {\n <mat-form-field>\n <mat-label>scope</mat-label>\n <input matInput [formControl]=\"scope\" />\n @if ($any(scope.errors)?.maxLength && (scope.dirty || scope.touched)) {\n <mat-error>scope too long</mat-error>\n }\n </mat-form-field>\n }\n\n <!-- value -->\n <mat-form-field>\n <mat-label>value</mat-label>\n <input matInput [formControl]=\"value\" />\n @if ($any(value.errors)?.required && (value.dirty || value.touched)) {\n <mat-error>value required</mat-error>\n } @if ($any(value.errors)?.maxLength && (value.dirty || value.touched))\n {\n <mat-error>value too long</mat-error>\n }\n </mat-form-field>\n\n <!-- label -->\n <mat-form-field>\n <mat-label>label</mat-label>\n <input matInput [formControl]=\"label\" />\n @if ($any(label.errors)?.maxLength && (label.dirty || label.touched)) {\n <mat-error>label too long</mat-error>\n }\n </mat-form-field>\n\n <!-- lookup -->\n @if (!noEidLookup) {\n <div>\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 }\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 @if (hasSubmit) {\n <div>\n <button mat-icon-button color=\"warn\" type=\"button\" (click)=\"cancel()\">\n <mat-icon class=\"mat-warn\">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 class=\"mat-primary\">check_circle</mat-icon>\n </button>\n </div>\n }\n</form>\n", styles: [".form-row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.form-row *{flex:0 0 auto}.pin-info{font-size:90%;color:silver}fieldset{border:1px solid silver;border-radius:6px;padding:6px}@media only screen and (max-width: 959px){div#container{grid-template-rows:1fr auto;grid-template-columns:1fr;grid-template-areas:\"editor\" \"lookup\"}}\n"] }]
|
|
339
343
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: PinRefLookupService }, { type: undefined, decorators: [{
|
|
340
344
|
type: Inject,
|
|
341
345
|
args: ['indexLookupDefinitions']
|
|
@@ -475,10 +479,10 @@ class AssertedIdsComponent {
|
|
|
475
479
|
this.saveId(id);
|
|
476
480
|
this.emitIdsChange();
|
|
477
481
|
}
|
|
478
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
479
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
482
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedIdsComponent, deps: [{ token: i1$1.FormBuilder }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
483
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AssertedIdsComponent, isStandalone: true, selector: "cadmus-refs-asserted-ids", inputs: { ids: "ids", idScopeEntries: "idScopeEntries", idTagEntries: "idTagEntries", assTagEntries: "assTagEntries", refTypeEntries: "refTypeEntries", refTagEntries: "refTagEntries" }, outputs: { idsChange: "idsChange" }, ngImport: i0, template: "<form [formGroup]=\"form\">\n <div>\n <button\n type=\"button\"\n mat-flat-button\n color=\"primary\"\n class=\"mat-primary\"\n (click)=\"addId()\"\n >\n <mat-icon>add_circle</mat-icon> ID\n </button>\n </div>\n @if (entries.value.length) {\n <table>\n <thead>\n <tr>\n <th></th>\n <th>scope</th>\n <th>value</th>\n </tr>\n </thead>\n <tbody>\n @for ( entry of entries.value; track entry; let i = $index; let first =\n $first; let last = $last) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this ID\"\n (click)=\"editId(entry, i)\"\n >\n <mat-icon class=\"mat-primary\">edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID up\"\n [disabled]=\"first\"\n (click)=\"moveIdUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID down\"\n [disabled]=\"last\"\n (click)=\"moveIdDown(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 ID\"\n (click)=\"deleteId(i)\"\n >\n <mat-icon class=\"mat-warn\">remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.scope }}</td>\n <td>{{ entry.value }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\n <mat-expansion-panel-header\n >ID {{ edited?.value }}</mat-expansion-panel-header\n >\n <cadmus-refs-asserted-id\n [idScopeEntries]=\"idScopeEntries\"\n [idTagEntries]=\"idTagEntries\"\n [assTagEntries]=\"assTagEntries\"\n [refTypeEntries]=\"refTypeEntries\"\n [refTagEntries]=\"refTagEntries\"\n [hasSubmit]=\"true\"\n [id]=\"edited\"\n (idChange)=\"onIdChange($event)\"\n (editorClose)=\"closeId()\"\n ></cadmus-refs-asserted-id>\n </mat-expansion-panel>\n</form>\n", styles: ["th{font-weight:400;color:silver;text-align:left}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i6$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: AssertedIdComponent, selector: "cadmus-refs-asserted-id", inputs: ["idScopeEntries", "idTagEntries", "assTagEntries", "refTypeEntries", "refTagEntries", "id", "noEidLookup", "hasSubmit"], outputs: ["idChange", "editorClose"] }] }); }
|
|
480
484
|
}
|
|
481
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
485
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedIdsComponent, decorators: [{
|
|
482
486
|
type: Component,
|
|
483
487
|
args: [{ standalone: true, selector: 'cadmus-refs-asserted-ids', imports: [
|
|
484
488
|
CommonModule,
|
|
@@ -489,7 +493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
489
493
|
MatIconModule,
|
|
490
494
|
MatTooltipModule,
|
|
491
495
|
AssertedIdComponent
|
|
492
|
-
], template: "<form [formGroup]=\"form\">\n <div>\n <button
|
|
496
|
+
], template: "<form [formGroup]=\"form\">\n <div>\n <button\n type=\"button\"\n mat-flat-button\n color=\"primary\"\n class=\"mat-primary\"\n (click)=\"addId()\"\n >\n <mat-icon>add_circle</mat-icon> ID\n </button>\n </div>\n @if (entries.value.length) {\n <table>\n <thead>\n <tr>\n <th></th>\n <th>scope</th>\n <th>value</th>\n </tr>\n </thead>\n <tbody>\n @for ( entry of entries.value; track entry; let i = $index; let first =\n $first; let last = $last) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this ID\"\n (click)=\"editId(entry, i)\"\n >\n <mat-icon class=\"mat-primary\">edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID up\"\n [disabled]=\"first\"\n (click)=\"moveIdUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID down\"\n [disabled]=\"last\"\n (click)=\"moveIdDown(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 ID\"\n (click)=\"deleteId(i)\"\n >\n <mat-icon class=\"mat-warn\">remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.scope }}</td>\n <td>{{ entry.value }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\n <mat-expansion-panel-header\n >ID {{ edited?.value }}</mat-expansion-panel-header\n >\n <cadmus-refs-asserted-id\n [idScopeEntries]=\"idScopeEntries\"\n [idTagEntries]=\"idTagEntries\"\n [assTagEntries]=\"assTagEntries\"\n [refTypeEntries]=\"refTypeEntries\"\n [refTagEntries]=\"refTagEntries\"\n [hasSubmit]=\"true\"\n [id]=\"edited\"\n (idChange)=\"onIdChange($event)\"\n (editorClose)=\"closeId()\"\n ></cadmus-refs-asserted-id>\n </mat-expansion-panel>\n</form>\n", styles: ["th{font-weight:400;color:silver;text-align:left}\n"] }]
|
|
493
497
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: i2.DialogService }], propDecorators: { ids: [{
|
|
494
498
|
type: Input
|
|
495
499
|
}], idScopeEntries: [{
|
|
@@ -520,10 +524,10 @@ class ItemRefLookupService {
|
|
|
520
524
|
getName(item) {
|
|
521
525
|
return item?.title;
|
|
522
526
|
}
|
|
523
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
524
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
527
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ItemRefLookupService, deps: [{ token: i1.ItemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
528
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ItemRefLookupService, providedIn: 'root' }); }
|
|
525
529
|
}
|
|
526
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
530
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ItemRefLookupService, decorators: [{
|
|
527
531
|
type: Injectable,
|
|
528
532
|
args: [{
|
|
529
533
|
providedIn: 'root',
|
|
@@ -932,10 +936,10 @@ class PinTargetLookupComponent {
|
|
|
932
936
|
this._target = this.getTarget();
|
|
933
937
|
this.targetChange.emit(this._target);
|
|
934
938
|
}
|
|
935
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
936
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: PinTargetLookupComponent, isStandalone: true, selector: "cadmus-pin-target-lookup", inputs: { pinByTypeMode: "pinByTypeMode", canSwitchMode: "canSwitchMode", canEditTarget: "canEditTarget", lookupDefinitions: "lookupDefinitions", extLookupConfigs: "extLookupConfigs", internalDefault: "internalDefault", target: "target", defaultPartTypeKey: "defaultPartTypeKey" }, outputs: { editorClose: "editorClose", targetChange: "targetChange", extMoreRequest: "extMoreRequest", extLookupConfigChange: "extLookupConfigChange" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div class=\"form-row\">\n <!-- external -->\n <mat-checkbox [formControl]=\"external\">external</mat-checkbox>\n <!-- mode switcher -->\n @if (!external.value) {\n <div>\n @if (canSwitchMode) {\n <mat-checkbox [formControl]=\"byTypeMode\"> by type</mat-checkbox>\n }\n </div>\n }\n </div>\n\n <div class=\"form-row\">\n <!-- label -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>label</mat-label>\n <input matInput [formControl]=\"label\" />\n @if ($any(label).errors?.required && (label.dirty || label.touched)) {\n <mat-error>label required</mat-error>\n } @if ( $any(label).errors?.maxLength && (label.dirty || label.touched)\n ) {\n <mat-error>label too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && label.value) {\n <div class=\"info\"><span class=\"label\">label</span>{{ label.value }}</div>\n }\n </div>\n\n <!-- gid -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>GID</mat-label>\n <input matInput [formControl]=\"gid\" />\n @if ($any(gid).errors?.required && (gid.dirty || gid.touched)) {\n <mat-error>GID required</mat-error>\n } @if ($any(gid).errors?.maxLength && (gid.dirty || gid.touched)) {\n <mat-error>GID too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && gid.value) {\n <div class=\"info\">\n <span class=\"label\">GID</span> <span class=\"gid\">{{ gid.value }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- external lookup set -->\n @if (external.value && extLookupConfigs.length) {\n <div>\n <cadmus-ref-lookup-set\n [configs]=\"extLookupConfigs\"\n (itemChange)=\"onExtItemChange($event)\"\n (moreRequest)=\"onExtMoreRequest($event)\"\n (configChange)=\"onExtConfigChange($event)\"\n ></cadmus-ref-lookup-set>\n </div>\n }\n\n <!-- BY ITEM -->\n @if (!external.value) {\n <div>\n @if (!byTypeMode.value) {\n <fieldset class=\"form-row\">\n <legend>pin filters</legend>\n <!-- item filter -->\n <cadmus-ref-lookup\n [service]=\"itemLookupService\"\n label=\"item\"\n (itemChange)=\"onItemLookupChange($event)\"\n ></cadmus-ref-lookup>\n <!-- part filter -->\n @if (itemParts.length) {\n <mat-form-field>\n <mat-label>part</mat-label>\n <mat-select [formControl]=\"itemPart\">\n <mat-option [value]=\"null\">(any)</mat-option>\n @for (p of itemParts; track p) {\n <mat-option [value]=\"p\">{{\n p.typeId | flatLookup : modelEntries : \"id\" : \"value\"\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </fieldset>\n }\n <!-- BY TYPE -->\n @if (byTypeMode.value) {\n <div>\n <!-- par type filter -->\n @if (partTypeKeys.length) {\n <mat-form-field>\n <mat-label>part type</mat-label>\n <mat-select [formControl]=\"partTypeKey\">\n @for (k of partTypeKeys; track k) {\n <mat-option [value]=\"k\">{{ k }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n }\n <!-- PIN -->\n @if (partTypeKey.value) {\n <div>\n <!-- pin lookup -->\n <cadmus-ref-lookup\n [service]=\"pinLookupService\"\n [baseFilter]=\"filter\"\n [options]=\"pinFilterOptions\"\n label=\"pin\"\n (itemChange)=\"onPinLookupChange($event)\"\n ></cadmus-ref-lookup>\n </div>\n }\n <!-- data -->\n @if (lookupData?.pin?.name) {\n <mat-expansion-panel id=\"data\">\n <mat-expansion-panel-header>pin data</mat-expansion-panel-header>\n <!-- table -->\n <table>\n <thead>\n <th></th>\n <th>source</th>\n <th>value</th>\n </thead>\n <tbody>\n <!-- pin -->\n @if (lookupData?.pin?.value) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>pin</td>\n <td>{{ lookupData!.pin.value }}</td>\n </tr>\n }\n <!-- item ID -->\n @if (lookupData?.pin?.itemId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.itemId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>item ID</td>\n <td>{{ lookupData!.pin.itemId }}</td>\n </tr>\n }\n <!-- item title -->\n @if (lookupData?.item?.title) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.item!.title\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>item title</td>\n <td>{{ lookupData!.item!.title }}</td>\n </tr>\n }\n <!-- part ID -->\n @if (lookupData?.pin?.partId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>part ID</td>\n <td>{{ lookupData!.pin.partId }}</td>\n </tr>\n }\n <!-- part type ID -->\n @if (lookupData?.pin?.partTypeId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partTypeId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>part type ID</td>\n <td>{{ lookupData!.pin!.partTypeId }}</td>\n </tr>\n }\n <!-- part role ID -->\n @if (lookupData?.pin?.roleId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.roleId!\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ lookupData!.pin!.roleId }}</td>\n </tr>\n }\n <!-- part's metadata -->\n @for ( m of lookupData?.metaPart?.metadata || []; track m; let i =\n $index) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"m.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td class=\"metadata\">{{ m.name }}</td>\n <td class=\"metadata\">{{ m.value }}</td>\n </tr>\n }\n </tbody>\n </table>\n </mat-expansion-panel>\n }\n </div>\n }\n\n <!-- buttons -->\n <div>\n <button mat-flat-button type=\"button\" (click)=\"close()\">\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n <button mat-flat-button type=\"submit\" [disabled]=\"form.invalid\">\n <mat-icon color=\"primary\">check_circle</mat-icon> target\n </button>\n </div>\n</form>\n", styles: [".metadata{color:#4a3001}.info{border:1px solid silver;border-radius:6px;background-color:silver;color:#fff;padding:4px;margin:8px 0}.info .label{background-color:#fff;color:silver;margin:0 6px}#data{margin:8px 0}table{border:1px solid silver;border-radius:6px;padding:4px;margin-top:8px}tr:nth-child(odd){background-color:#f0f0f0}th{font-weight:400;text-align:left;color:silver}.form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}.label{border:1px solid silver;border-radius:6px;padding:4px}fieldset{border:1px solid silver;border-radius:6px;padding:4px 8px;margin-bottom:8px}legend{color:silver}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ClipboardModule }, { kind: "directive", type: i6$2.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: NgToolsModule }, { kind: "pipe", type: i3$1.FlatLookupPipe, name: "flatLookup" }, { kind: "component", type: RefLookupComponent, selector: "cadmus-ref-lookup", inputs: ["label", "limit", "baseFilter", "service", "item", "required", "hasMore", "linkTemplate", "optDialog", "options"], outputs: ["itemChange", "moreRequest"] }, { kind: "component", type: RefLookupSetComponent, selector: "cadmus-ref-lookup-set", inputs: ["configs", "iconSize"], outputs: ["configChange", "itemChange", "moreRequest"] }] }); }
|
|
939
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PinTargetLookupComponent, deps: [{ token: 'indexLookupDefinitions' }, { token: ItemRefLookupService }, { token: PinRefLookupService }, { token: i1.ItemService }, { token: i1.ThesaurusService }, { token: i4$1.MatSnackBar }, { token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
940
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: PinTargetLookupComponent, isStandalone: true, selector: "cadmus-pin-target-lookup", inputs: { pinByTypeMode: "pinByTypeMode", canSwitchMode: "canSwitchMode", canEditTarget: "canEditTarget", lookupDefinitions: "lookupDefinitions", extLookupConfigs: "extLookupConfigs", internalDefault: "internalDefault", target: "target", defaultPartTypeKey: "defaultPartTypeKey" }, outputs: { editorClose: "editorClose", targetChange: "targetChange", extMoreRequest: "extMoreRequest", extLookupConfigChange: "extLookupConfigChange" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div class=\"form-row\">\n <!-- external -->\n <mat-checkbox [formControl]=\"external\">external</mat-checkbox>\n <!-- mode switcher -->\n @if (!external.value) {\n <div>\n @if (canSwitchMode) {\n <mat-checkbox [formControl]=\"byTypeMode\"> by type</mat-checkbox>\n }\n </div>\n }\n </div>\n\n <div class=\"form-row\">\n <!-- label -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>label</mat-label>\n <input matInput [formControl]=\"label\" />\n @if ($any(label).errors?.required && (label.dirty || label.touched)) {\n <mat-error>label required</mat-error>\n } @if ( $any(label).errors?.maxLength && (label.dirty || label.touched)\n ) {\n <mat-error>label too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && label.value) {\n <div class=\"info\"><span class=\"label\">label</span>{{ label.value }}</div>\n }\n </div>\n\n <!-- gid -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>GID</mat-label>\n <input matInput [formControl]=\"gid\" />\n @if ($any(gid).errors?.required && (gid.dirty || gid.touched)) {\n <mat-error>GID required</mat-error>\n } @if ($any(gid).errors?.maxLength && (gid.dirty || gid.touched)) {\n <mat-error>GID too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && gid.value) {\n <div class=\"info\">\n <span class=\"label\">GID</span> <span class=\"gid\">{{ gid.value }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- external lookup set -->\n @if (external.value && extLookupConfigs.length) {\n <div>\n <cadmus-ref-lookup-set\n [configs]=\"extLookupConfigs\"\n (itemChange)=\"onExtItemChange($event)\"\n (moreRequest)=\"onExtMoreRequest($event)\"\n (configChange)=\"onExtConfigChange($event)\"\n ></cadmus-ref-lookup-set>\n </div>\n }\n\n <!-- BY ITEM -->\n @if (!external.value) {\n <div>\n @if (!byTypeMode.value) {\n <fieldset class=\"form-row\">\n <legend>pin filters</legend>\n <!-- item filter -->\n <cadmus-ref-lookup\n [service]=\"itemLookupService\"\n label=\"item\"\n (itemChange)=\"onItemLookupChange($event)\"\n ></cadmus-ref-lookup>\n <!-- part filter -->\n @if (itemParts.length) {\n <mat-form-field>\n <mat-label>part</mat-label>\n <mat-select [formControl]=\"itemPart\">\n <mat-option [value]=\"null\">(any)</mat-option>\n @for (p of itemParts; track p) {\n <mat-option [value]=\"p\">{{\n p.typeId | flatLookup : modelEntries : \"id\" : \"value\"\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </fieldset>\n }\n <!-- BY TYPE -->\n @if (byTypeMode.value) {\n <div>\n <!-- par type filter -->\n @if (partTypeKeys.length) {\n <mat-form-field>\n <mat-label>part type</mat-label>\n <mat-select [formControl]=\"partTypeKey\">\n @for (k of partTypeKeys; track k) {\n <mat-option [value]=\"k\">{{ k }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n }\n <!-- PIN -->\n @if (partTypeKey.value) {\n <div>\n <!-- pin lookup -->\n <cadmus-ref-lookup\n [service]=\"pinLookupService\"\n [baseFilter]=\"filter\"\n [options]=\"pinFilterOptions\"\n label=\"pin\"\n (itemChange)=\"onPinLookupChange($event)\"\n ></cadmus-ref-lookup>\n </div>\n }\n <!-- data -->\n @if (lookupData?.pin?.name) {\n <mat-expansion-panel id=\"data\">\n <mat-expansion-panel-header>pin data</mat-expansion-panel-header>\n <!-- table -->\n <table>\n <thead>\n <th></th>\n <th>source</th>\n <th>value</th>\n </thead>\n <tbody>\n <!-- pin -->\n @if (lookupData?.pin?.value) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>pin</td>\n <td>{{ lookupData!.pin.value }}</td>\n </tr>\n }\n <!-- item ID -->\n @if (lookupData?.pin?.itemId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.itemId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>item ID</td>\n <td>{{ lookupData!.pin.itemId }}</td>\n </tr>\n }\n <!-- item title -->\n @if (lookupData?.item?.title) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.item!.title\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>item title</td>\n <td>{{ lookupData!.item!.title }}</td>\n </tr>\n }\n <!-- part ID -->\n @if (lookupData?.pin?.partId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>part ID</td>\n <td>{{ lookupData!.pin.partId }}</td>\n </tr>\n }\n <!-- part type ID -->\n @if (lookupData?.pin?.partTypeId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partTypeId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>part type ID</td>\n <td>{{ lookupData!.pin!.partTypeId }}</td>\n </tr>\n }\n <!-- part role ID -->\n @if (lookupData?.pin?.roleId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.roleId!\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ lookupData!.pin!.roleId }}</td>\n </tr>\n }\n <!-- part's metadata -->\n @for ( m of lookupData?.metaPart?.metadata || []; track m; let i =\n $index) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"m.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td class=\"metadata\">{{ m.name }}</td>\n <td class=\"metadata\">{{ m.value }}</td>\n </tr>\n }\n </tbody>\n </table>\n </mat-expansion-panel>\n }\n </div>\n }\n\n <!-- buttons -->\n <div>\n <button mat-flat-button type=\"button\" (click)=\"close()\">\n <mat-icon color=\"warn\" class=\"mat-warn\">close</mat-icon>\n </button>\n <button mat-flat-button type=\"submit\" [disabled]=\"form.invalid\">\n <mat-icon color=\"primary\" class=\"mat-primary\">check_circle</mat-icon>\n target\n </button>\n </div>\n</form>\n", styles: [".metadata{color:#4a3001}.info{border:1px solid silver;border-radius:6px;background-color:silver;color:#fff;padding:4px;margin:8px 0}.info .label{background-color:#fff;color:silver;margin:0 6px}#data{margin:8px 0}table{border:1px solid silver;border-radius:6px;padding:4px;margin-top:8px}tr:nth-child(odd){background-color:#f0f0f0}th{font-weight:400;text-align:left;color:silver}.form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}.label{border:1px solid silver;border-radius:6px;padding:4px}fieldset{border:1px solid silver;border-radius:6px;padding:4px 8px;margin-bottom:8px}legend{color:silver}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ClipboardModule }, { kind: "directive", type: i6$2.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: NgToolsModule }, { kind: "pipe", type: i3$1.FlatLookupPipe, name: "flatLookup" }, { kind: "component", type: RefLookupComponent, selector: "cadmus-ref-lookup", inputs: ["label", "limit", "baseFilter", "service", "item", "required", "hasMore", "linkTemplate", "optDialog", "options"], outputs: ["itemChange", "moreRequest"] }, { kind: "component", type: RefLookupSetComponent, selector: "cadmus-ref-lookup-set", inputs: ["configs", "iconSize"], outputs: ["configChange", "itemChange", "moreRequest"] }] }); }
|
|
937
941
|
}
|
|
938
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
942
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: PinTargetLookupComponent, decorators: [{
|
|
939
943
|
type: Component,
|
|
940
944
|
args: [{ standalone: true, selector: 'cadmus-pin-target-lookup', imports: [
|
|
941
945
|
FormsModule,
|
|
@@ -951,7 +955,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
951
955
|
NgToolsModule,
|
|
952
956
|
RefLookupComponent,
|
|
953
957
|
RefLookupSetComponent,
|
|
954
|
-
], template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div class=\"form-row\">\n <!-- external -->\n <mat-checkbox [formControl]=\"external\">external</mat-checkbox>\n <!-- mode switcher -->\n @if (!external.value) {\n <div>\n @if (canSwitchMode) {\n <mat-checkbox [formControl]=\"byTypeMode\"> by type</mat-checkbox>\n }\n </div>\n }\n </div>\n\n <div class=\"form-row\">\n <!-- label -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>label</mat-label>\n <input matInput [formControl]=\"label\" />\n @if ($any(label).errors?.required && (label.dirty || label.touched)) {\n <mat-error>label required</mat-error>\n } @if ( $any(label).errors?.maxLength && (label.dirty || label.touched)\n ) {\n <mat-error>label too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && label.value) {\n <div class=\"info\"><span class=\"label\">label</span>{{ label.value }}</div>\n }\n </div>\n\n <!-- gid -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>GID</mat-label>\n <input matInput [formControl]=\"gid\" />\n @if ($any(gid).errors?.required && (gid.dirty || gid.touched)) {\n <mat-error>GID required</mat-error>\n } @if ($any(gid).errors?.maxLength && (gid.dirty || gid.touched)) {\n <mat-error>GID too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && gid.value) {\n <div class=\"info\">\n <span class=\"label\">GID</span> <span class=\"gid\">{{ gid.value }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- external lookup set -->\n @if (external.value && extLookupConfigs.length) {\n <div>\n <cadmus-ref-lookup-set\n [configs]=\"extLookupConfigs\"\n (itemChange)=\"onExtItemChange($event)\"\n (moreRequest)=\"onExtMoreRequest($event)\"\n (configChange)=\"onExtConfigChange($event)\"\n ></cadmus-ref-lookup-set>\n </div>\n }\n\n <!-- BY ITEM -->\n @if (!external.value) {\n <div>\n @if (!byTypeMode.value) {\n <fieldset class=\"form-row\">\n <legend>pin filters</legend>\n <!-- item filter -->\n <cadmus-ref-lookup\n [service]=\"itemLookupService\"\n label=\"item\"\n (itemChange)=\"onItemLookupChange($event)\"\n ></cadmus-ref-lookup>\n <!-- part filter -->\n @if (itemParts.length) {\n <mat-form-field>\n <mat-label>part</mat-label>\n <mat-select [formControl]=\"itemPart\">\n <mat-option [value]=\"null\">(any)</mat-option>\n @for (p of itemParts; track p) {\n <mat-option [value]=\"p\">{{\n p.typeId | flatLookup : modelEntries : \"id\" : \"value\"\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </fieldset>\n }\n <!-- BY TYPE -->\n @if (byTypeMode.value) {\n <div>\n <!-- par type filter -->\n @if (partTypeKeys.length) {\n <mat-form-field>\n <mat-label>part type</mat-label>\n <mat-select [formControl]=\"partTypeKey\">\n @for (k of partTypeKeys; track k) {\n <mat-option [value]=\"k\">{{ k }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n }\n <!-- PIN -->\n @if (partTypeKey.value) {\n <div>\n <!-- pin lookup -->\n <cadmus-ref-lookup\n [service]=\"pinLookupService\"\n [baseFilter]=\"filter\"\n [options]=\"pinFilterOptions\"\n label=\"pin\"\n (itemChange)=\"onPinLookupChange($event)\"\n ></cadmus-ref-lookup>\n </div>\n }\n <!-- data -->\n @if (lookupData?.pin?.name) {\n <mat-expansion-panel id=\"data\">\n <mat-expansion-panel-header>pin data</mat-expansion-panel-header>\n <!-- table -->\n <table>\n <thead>\n <th></th>\n <th>source</th>\n <th>value</th>\n </thead>\n <tbody>\n <!-- pin -->\n @if (lookupData?.pin?.value) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>pin</td>\n <td>{{ lookupData!.pin.value }}</td>\n </tr>\n }\n <!-- item ID -->\n @if (lookupData?.pin?.itemId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.itemId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>item ID</td>\n <td>{{ lookupData!.pin.itemId }}</td>\n </tr>\n }\n <!-- item title -->\n @if (lookupData?.item?.title) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.item!.title\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>item title</td>\n <td>{{ lookupData!.item!.title }}</td>\n </tr>\n }\n <!-- part ID -->\n @if (lookupData?.pin?.partId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>part ID</td>\n <td>{{ lookupData!.pin.partId }}</td>\n </tr>\n }\n <!-- part type ID -->\n @if (lookupData?.pin?.partTypeId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partTypeId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>part type ID</td>\n <td>{{ lookupData!.pin!.partTypeId }}</td>\n </tr>\n }\n <!-- part role ID -->\n @if (lookupData?.pin?.roleId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.roleId!\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ lookupData!.pin!.roleId }}</td>\n </tr>\n }\n <!-- part's metadata -->\n @for ( m of lookupData?.metaPart?.metadata || []; track m; let i =\n $index) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"m.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </td>\n <td class=\"metadata\">{{ m.name }}</td>\n <td class=\"metadata\">{{ m.value }}</td>\n </tr>\n }\n </tbody>\n </table>\n </mat-expansion-panel>\n }\n </div>\n }\n\n <!-- buttons -->\n <div>\n <button mat-flat-button type=\"button\" (click)=\"close()\">\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n <button mat-flat-button type=\"submit\" [disabled]=\"form.invalid\">\n <mat-icon color=\"primary\">check_circle</mat-icon
|
|
958
|
+
], template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div class=\"form-row\">\n <!-- external -->\n <mat-checkbox [formControl]=\"external\">external</mat-checkbox>\n <!-- mode switcher -->\n @if (!external.value) {\n <div>\n @if (canSwitchMode) {\n <mat-checkbox [formControl]=\"byTypeMode\"> by type</mat-checkbox>\n }\n </div>\n }\n </div>\n\n <div class=\"form-row\">\n <!-- label -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>label</mat-label>\n <input matInput [formControl]=\"label\" />\n @if ($any(label).errors?.required && (label.dirty || label.touched)) {\n <mat-error>label required</mat-error>\n } @if ( $any(label).errors?.maxLength && (label.dirty || label.touched)\n ) {\n <mat-error>label too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && label.value) {\n <div class=\"info\"><span class=\"label\">label</span>{{ label.value }}</div>\n }\n </div>\n\n <!-- gid -->\n <div>\n @if (external.value || canEditTarget) {\n <mat-form-field>\n <mat-label>GID</mat-label>\n <input matInput [formControl]=\"gid\" />\n @if ($any(gid).errors?.required && (gid.dirty || gid.touched)) {\n <mat-error>GID required</mat-error>\n } @if ($any(gid).errors?.maxLength && (gid.dirty || gid.touched)) {\n <mat-error>GID too long</mat-error>\n }\n </mat-form-field>\n } @if (!external.value && !canEditTarget && gid.value) {\n <div class=\"info\">\n <span class=\"label\">GID</span> <span class=\"gid\">{{ gid.value }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- external lookup set -->\n @if (external.value && extLookupConfigs.length) {\n <div>\n <cadmus-ref-lookup-set\n [configs]=\"extLookupConfigs\"\n (itemChange)=\"onExtItemChange($event)\"\n (moreRequest)=\"onExtMoreRequest($event)\"\n (configChange)=\"onExtConfigChange($event)\"\n ></cadmus-ref-lookup-set>\n </div>\n }\n\n <!-- BY ITEM -->\n @if (!external.value) {\n <div>\n @if (!byTypeMode.value) {\n <fieldset class=\"form-row\">\n <legend>pin filters</legend>\n <!-- item filter -->\n <cadmus-ref-lookup\n [service]=\"itemLookupService\"\n label=\"item\"\n (itemChange)=\"onItemLookupChange($event)\"\n ></cadmus-ref-lookup>\n <!-- part filter -->\n @if (itemParts.length) {\n <mat-form-field>\n <mat-label>part</mat-label>\n <mat-select [formControl]=\"itemPart\">\n <mat-option [value]=\"null\">(any)</mat-option>\n @for (p of itemParts; track p) {\n <mat-option [value]=\"p\">{{\n p.typeId | flatLookup : modelEntries : \"id\" : \"value\"\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </fieldset>\n }\n <!-- BY TYPE -->\n @if (byTypeMode.value) {\n <div>\n <!-- par type filter -->\n @if (partTypeKeys.length) {\n <mat-form-field>\n <mat-label>part type</mat-label>\n <mat-select [formControl]=\"partTypeKey\">\n @for (k of partTypeKeys; track k) {\n <mat-option [value]=\"k\">{{ k }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </div>\n }\n <!-- PIN -->\n @if (partTypeKey.value) {\n <div>\n <!-- pin lookup -->\n <cadmus-ref-lookup\n [service]=\"pinLookupService\"\n [baseFilter]=\"filter\"\n [options]=\"pinFilterOptions\"\n label=\"pin\"\n (itemChange)=\"onPinLookupChange($event)\"\n ></cadmus-ref-lookup>\n </div>\n }\n <!-- data -->\n @if (lookupData?.pin?.name) {\n <mat-expansion-panel id=\"data\">\n <mat-expansion-panel-header>pin data</mat-expansion-panel-header>\n <!-- table -->\n <table>\n <thead>\n <th></th>\n <th>source</th>\n <th>value</th>\n </thead>\n <tbody>\n <!-- pin -->\n @if (lookupData?.pin?.value) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>pin</td>\n <td>{{ lookupData!.pin.value }}</td>\n </tr>\n }\n <!-- item ID -->\n @if (lookupData?.pin?.itemId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.itemId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>item ID</td>\n <td>{{ lookupData!.pin.itemId }}</td>\n </tr>\n }\n <!-- item title -->\n @if (lookupData?.item?.title) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.item!.title\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>item title</td>\n <td>{{ lookupData!.item!.title }}</td>\n </tr>\n }\n <!-- part ID -->\n @if (lookupData?.pin?.partId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>part ID</td>\n <td>{{ lookupData!.pin.partId }}</td>\n </tr>\n }\n <!-- part type ID -->\n @if (lookupData?.pin?.partTypeId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.partTypeId\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>part type ID</td>\n <td>{{ lookupData!.pin!.partTypeId }}</td>\n </tr>\n }\n <!-- part role ID -->\n @if (lookupData?.pin?.roleId) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"lookupData!.pin!.roleId!\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td>part role ID</td>\n <td>{{ lookupData!.pin!.roleId }}</td>\n </tr>\n }\n <!-- part's metadata -->\n @for ( m of lookupData?.metaPart?.metadata || []; track m; let i =\n $index) {\n <tr>\n <td>\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n [cdkCopyToClipboard]=\"m.value\"\n (cdkCopyToClipboardCopied)=\"onCopied()\"\n >\n <mat-icon class=\"mat-primary\">content_copy</mat-icon>\n </button>\n </td>\n <td class=\"metadata\">{{ m.name }}</td>\n <td class=\"metadata\">{{ m.value }}</td>\n </tr>\n }\n </tbody>\n </table>\n </mat-expansion-panel>\n }\n </div>\n }\n\n <!-- buttons -->\n <div>\n <button mat-flat-button type=\"button\" (click)=\"close()\">\n <mat-icon color=\"warn\" class=\"mat-warn\">close</mat-icon>\n </button>\n <button mat-flat-button type=\"submit\" [disabled]=\"form.invalid\">\n <mat-icon color=\"primary\" class=\"mat-primary\">check_circle</mat-icon>\n target\n </button>\n </div>\n</form>\n", styles: [".metadata{color:#4a3001}.info{border:1px solid silver;border-radius:6px;background-color:silver;color:#fff;padding:4px;margin:8px 0}.info .label{background-color:#fff;color:silver;margin:0 6px}#data{margin:8px 0}table{border:1px solid silver;border-radius:6px;padding:4px;margin-top:8px}tr:nth-child(odd){background-color:#f0f0f0}th{font-weight:400;text-align:left;color:silver}.form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}.label{border:1px solid silver;border-radius:6px;padding:4px}fieldset{border:1px solid silver;border-radius:6px;padding:4px 8px;margin-bottom:8px}legend{color:silver}\n"] }]
|
|
955
959
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
956
960
|
type: Inject,
|
|
957
961
|
args: ['indexLookupDefinitions']
|
|
@@ -1100,10 +1104,10 @@ class AssertedCompositeIdComponent {
|
|
|
1100
1104
|
this.idChange.emit(this._id);
|
|
1101
1105
|
}
|
|
1102
1106
|
}
|
|
1103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
1104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
1107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedCompositeIdComponent, deps: [{ token: i1$1.FormBuilder }, { token: PinRefLookupService }, { token: 'indexLookupDefinitions' }, { token: i3$1.RamStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AssertedCompositeIdComponent, isStandalone: true, selector: "cadmus-refs-asserted-composite-id", inputs: { idScopeEntries: "idScopeEntries", idTagEntries: "idTagEntries", assTagEntries: "assTagEntries", refTypeEntries: "refTypeEntries", refTagEntries: "refTagEntries", id: "id", internalDefault: "internalDefault", hasSubmit: "hasSubmit", pinByTypeMode: "pinByTypeMode", canSwitchMode: "canSwitchMode", canEditTarget: "canEditTarget", lookupDefinitions: "lookupDefinitions", defaultPartTypeKey: "defaultPartTypeKey" }, outputs: { idChange: "idChange", editorClose: "editorClose", extMoreRequest: "extMoreRequest" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n @if (idTagEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>tag</mat-label>\n <mat-select [formControl]=\"tag\">\n @for (e of idTagEntries; track e) {\n <mat-option [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- tag (free) -->\n @if (!idTagEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>tag</mat-label>\n <input matInput [formControl]=\"tag\" />\n @if ($any(tag.errors)?.maxLength && (tag.dirty || tag.touched)) {\n <mat-error\n >tag too long</mat-error\n >\n }\n </mat-form-field>\n }\n\n <!-- scope (bound) -->\n @if (idScopeEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>scope</mat-label>\n <mat-select [formControl]=\"scope\">\n @for (e of idScopeEntries; track e) {\n <mat-option [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- scope (free) -->\n @if (!idScopeEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>scope</mat-label>\n <input matInput [formControl]=\"scope\" />\n @if (\n $any(scope.errors)?.maxLength && (scope.dirty || scope.touched)\n ) {\n <mat-error\n >scope too long</mat-error\n >\n }\n </mat-form-field>\n }\n\n <!-- label and GID -->\n @if (target.value?.label) {\n <div class=\"info\">\n <span class=\"label\">label</span>{{ target.value?.label }}\n </div>\n }\n @if (target.value?.gid) {\n <div class=\"info\">\n <span class=\"label\">GID</span>{{ target.value?.gid }}\n </div>\n }\n </div>\n\n <!-- target -->\n <div class=\"boxed\">\n <mat-expansion-panel [(expanded)]=\"targetExpanded\">\n <mat-expansion-panel-header>target</mat-expansion-panel-header>\n <cadmus-pin-target-lookup\n [pinByTypeMode]=\"pinByTypeMode\"\n [canSwitchMode]=\"canSwitchMode\"\n [canEditTarget]=\"canEditTarget\"\n [lookupDefinitions]=\"lookupDefinitions\"\n [defaultPartTypeKey]=\"defaultPartTypeKey\"\n [target]=\"target.value\"\n [internalDefault]=\"internalDefault\"\n [extLookupConfigs]=\"extLookupConfigs\"\n (targetChange)=\"onTargetChange($event)\"\n (editorClose)=\"onEditorClose()\"\n (extMoreRequest)=\"onExtMoreRequest($event)\"\n (extLookupConfigChange)=\"onExtLookupConfigChange($event)\"\n ></cadmus-pin-target-lookup>\n </mat-expansion-panel>\n </div>\n\n <!-- assertion -->\n <br />\n <div class=\"boxed\">\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 </div>\n\n <!-- buttons -->\n @if (hasSubmit) {\n <div>\n <button\n mat-icon-button\n color=\"warn\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"!this.target.value?.gid || !this.target.value?.label\"\n >\n <mat-icon class=\"mat-warn\">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 class=\"mat-primary\">check_circle</mat-icon>\n </button>\n </div>\n }\n </form>\n", styles: [".form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}.boxed{border:1px solid silver;border-radius:6px;padding:6px}.short-text{width:8em}.pin-info{font-size:90%;color:silver}fieldset{border:1px solid silver;border-radius:6px;padding:6px}.info{border:1px solid silver;border-radius:6px;background-color:silver;color:#fff;padding:4px}.info .label{background-color:#fff;color:silver;margin:0 6px}@media only screen and (max-width: 959px){div#container{grid-template-rows:1fr auto;grid-template-columns:1fr;grid-template-areas:\"editor\" \"lookup\"}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: AssertionComponent, selector: "cadmus-refs-assertion", inputs: ["assTagEntries", "refTypeEntries", "refTagEntries", "assertion"], outputs: ["assertionChange"] }, { kind: "component", type: PinTargetLookupComponent, selector: "cadmus-pin-target-lookup", inputs: ["pinByTypeMode", "canSwitchMode", "canEditTarget", "lookupDefinitions", "extLookupConfigs", "internalDefault", "target", "defaultPartTypeKey"], outputs: ["editorClose", "targetChange", "extMoreRequest", "extLookupConfigChange"] }] }); }
|
|
1105
1109
|
}
|
|
1106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
1110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedCompositeIdComponent, decorators: [{
|
|
1107
1111
|
type: Component,
|
|
1108
1112
|
args: [{ standalone: true, selector: 'cadmus-refs-asserted-composite-id', imports: [
|
|
1109
1113
|
FormsModule,
|
|
@@ -1116,7 +1120,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
1116
1120
|
MatSelectModule,
|
|
1117
1121
|
AssertionComponent,
|
|
1118
1122
|
PinTargetLookupComponent,
|
|
1119
|
-
], template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n @if (idTagEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>tag</mat-label>\n <mat-select [formControl]=\"tag\">\n @for (e of idTagEntries; track e) {\n <mat-option [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- tag (free) -->\n @if (!idTagEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>tag</mat-label>\n <input matInput [formControl]=\"tag\" />\n @if ($any(tag.errors)?.maxLength && (tag.dirty || tag.touched)) {\n <mat-error\n >tag too long</mat-error\n >\n }\n </mat-form-field>\n }\n\n <!-- scope (bound) -->\n @if (idScopeEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>scope</mat-label>\n <mat-select [formControl]=\"scope\">\n @for (e of idScopeEntries; track e) {\n <mat-option [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- scope (free) -->\n @if (!idScopeEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>scope</mat-label>\n <input matInput [formControl]=\"scope\" />\n @if (\n $any(scope.errors)?.maxLength && (scope.dirty || scope.touched)\n ) {\n <mat-error\n >scope too long</mat-error\n >\n }\n </mat-form-field>\n }\n\n <!-- label and GID -->\n @if (target.value?.label) {\n <div class=\"info\">\n <span class=\"label\">label</span>{{ target.value?.label }}\n </div>\n }\n @if (target.value?.gid) {\n <div class=\"info\">\n <span class=\"label\">GID</span>{{ target.value?.gid }}\n </div>\n }\n </div>\n\n <!-- target -->\n <div class=\"boxed\">\n <mat-expansion-panel [(expanded)]=\"targetExpanded\">\n <mat-expansion-panel-header>target</mat-expansion-panel-header>\n <cadmus-pin-target-lookup\n [pinByTypeMode]=\"pinByTypeMode\"\n [canSwitchMode]=\"canSwitchMode\"\n [canEditTarget]=\"canEditTarget\"\n [lookupDefinitions]=\"lookupDefinitions\"\n [defaultPartTypeKey]=\"defaultPartTypeKey\"\n [target]=\"target.value\"\n [internalDefault]=\"internalDefault\"\n [extLookupConfigs]=\"extLookupConfigs\"\n (targetChange)=\"onTargetChange($event)\"\n (editorClose)=\"onEditorClose()\"\n (extMoreRequest)=\"onExtMoreRequest($event)\"\n (extLookupConfigChange)=\"onExtLookupConfigChange($event)\"\n ></cadmus-pin-target-lookup>\n </mat-expansion-panel>\n </div>\n\n <!-- assertion -->\n <br />\n <div class=\"boxed\">\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 </div>\n\n <!-- buttons -->\n @if (hasSubmit) {\n <div>\n <button\n mat-icon-button\n color=\"warn\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"!this.target.value?.gid || !this.target.value?.label\"\n >\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 }\n </form>\n", styles: [".form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}.boxed{border:1px solid silver;border-radius:6px;padding:6px}.short-text{width:8em}.pin-info{font-size:90%;color:silver}fieldset{border:1px solid silver;border-radius:6px;padding:6px}.info{border:1px solid silver;border-radius:6px;background-color:silver;color:#fff;padding:4px}.info .label{background-color:#fff;color:silver;margin:0 6px}@media only screen and (max-width: 959px){div#container{grid-template-rows:1fr auto;grid-template-columns:1fr;grid-template-areas:\"editor\" \"lookup\"}}\n"] }]
|
|
1123
|
+
], template: "<form [formGroup]=\"form\" (submit)=\"save()\">\n <div>\n <div class=\"form-row\">\n <!-- tag (bound) -->\n @if (idTagEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>tag</mat-label>\n <mat-select [formControl]=\"tag\">\n @for (e of idTagEntries; track e) {\n <mat-option [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- tag (free) -->\n @if (!idTagEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>tag</mat-label>\n <input matInput [formControl]=\"tag\" />\n @if ($any(tag.errors)?.maxLength && (tag.dirty || tag.touched)) {\n <mat-error\n >tag too long</mat-error\n >\n }\n </mat-form-field>\n }\n\n <!-- scope (bound) -->\n @if (idScopeEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>scope</mat-label>\n <mat-select [formControl]=\"scope\">\n @for (e of idScopeEntries; track e) {\n <mat-option [value]=\"e.id\">{{\n e.value\n }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <!-- scope (free) -->\n @if (!idScopeEntries?.length) {\n <mat-form-field class=\"short-text\">\n <mat-label>scope</mat-label>\n <input matInput [formControl]=\"scope\" />\n @if (\n $any(scope.errors)?.maxLength && (scope.dirty || scope.touched)\n ) {\n <mat-error\n >scope too long</mat-error\n >\n }\n </mat-form-field>\n }\n\n <!-- label and GID -->\n @if (target.value?.label) {\n <div class=\"info\">\n <span class=\"label\">label</span>{{ target.value?.label }}\n </div>\n }\n @if (target.value?.gid) {\n <div class=\"info\">\n <span class=\"label\">GID</span>{{ target.value?.gid }}\n </div>\n }\n </div>\n\n <!-- target -->\n <div class=\"boxed\">\n <mat-expansion-panel [(expanded)]=\"targetExpanded\">\n <mat-expansion-panel-header>target</mat-expansion-panel-header>\n <cadmus-pin-target-lookup\n [pinByTypeMode]=\"pinByTypeMode\"\n [canSwitchMode]=\"canSwitchMode\"\n [canEditTarget]=\"canEditTarget\"\n [lookupDefinitions]=\"lookupDefinitions\"\n [defaultPartTypeKey]=\"defaultPartTypeKey\"\n [target]=\"target.value\"\n [internalDefault]=\"internalDefault\"\n [extLookupConfigs]=\"extLookupConfigs\"\n (targetChange)=\"onTargetChange($event)\"\n (editorClose)=\"onEditorClose()\"\n (extMoreRequest)=\"onExtMoreRequest($event)\"\n (extLookupConfigChange)=\"onExtLookupConfigChange($event)\"\n ></cadmus-pin-target-lookup>\n </mat-expansion-panel>\n </div>\n\n <!-- assertion -->\n <br />\n <div class=\"boxed\">\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 </div>\n\n <!-- buttons -->\n @if (hasSubmit) {\n <div>\n <button\n mat-icon-button\n color=\"warn\"\n type=\"button\"\n (click)=\"cancel()\"\n [disabled]=\"!this.target.value?.gid || !this.target.value?.label\"\n >\n <mat-icon class=\"mat-warn\">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 class=\"mat-primary\">check_circle</mat-icon>\n </button>\n </div>\n }\n </form>\n", styles: [".form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.form-row *{flex:0 0 auto}.boxed{border:1px solid silver;border-radius:6px;padding:6px}.short-text{width:8em}.pin-info{font-size:90%;color:silver}fieldset{border:1px solid silver;border-radius:6px;padding:6px}.info{border:1px solid silver;border-radius:6px;background-color:silver;color:#fff;padding:4px}.info .label{background-color:#fff;color:silver;margin:0 6px}@media only screen and (max-width: 959px){div#container{grid-template-rows:1fr auto;grid-template-columns:1fr;grid-template-areas:\"editor\" \"lookup\"}}\n"] }]
|
|
1120
1124
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: PinRefLookupService }, { type: undefined, decorators: [{
|
|
1121
1125
|
type: Inject,
|
|
1122
1126
|
args: ['indexLookupDefinitions']
|
|
@@ -1267,10 +1271,10 @@ class AssertedCompositeIdsComponent {
|
|
|
1267
1271
|
this.saveId(id);
|
|
1268
1272
|
this.emitIdsChange();
|
|
1269
1273
|
}
|
|
1270
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
1271
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
1274
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedCompositeIdsComponent, deps: [{ token: i1$1.FormBuilder }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1275
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AssertedCompositeIdsComponent, isStandalone: true, selector: "cadmus-refs-asserted-composite-ids", inputs: { ids: "ids", idScopeEntries: "idScopeEntries", idTagEntries: "idTagEntries", assTagEntries: "assTagEntries", refTypeEntries: "refTypeEntries", refTagEntries: "refTagEntries", pinByTypeMode: "pinByTypeMode", canSwitchMode: "canSwitchMode", canEditTarget: "canEditTarget", lookupDefinitions: "lookupDefinitions", defaultPartTypeKey: "defaultPartTypeKey", internalDefault: "internalDefault" }, outputs: { idsChange: "idsChange" }, ngImport: i0, template: "<form [formGroup]=\"form\">\n <!-- buttons -->\n <button\n type=\"button\"\n color=\"primary\"\n class=\"mat-primary\"\n mat-flat-button\n (click)=\"addId()\"\n >\n <mat-icon>add_circle</mat-icon> ID\n </button>\n <!-- list -->\n @if (entries.value.length) {\n <table>\n <thead>\n <tr>\n <th></th>\n <th>scope</th>\n <th>label</th>\n <th>value</th>\n <th>ass.</th>\n </tr>\n </thead>\n <tbody>\n @for ( entry of entries.value; track entry; let i = $index; let first =\n $first; let last = $last) {\n <tr>\n <td class=\"fit-width\">\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this ID\"\n (click)=\"editId(entry, i)\"\n >\n <mat-icon class=\"mat-primary\">edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID up\"\n [disabled]=\"first\"\n (click)=\"moveIdUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID down\"\n [disabled]=\"last\"\n (click)=\"moveIdDown(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 ID\"\n (click)=\"deleteId(i)\"\n >\n <mat-icon class=\"mat-warn\">remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.scope }}</td>\n <td>{{ entry?.target?.label }}</td>\n <td>{{ entry?.target?.gid }}</td>\n <td>{{ entry?.assertion ? \"Y\" : \"N\" }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- editor -->\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\n <mat-expansion-panel-header\n >ID {{ edited?.target?.label }}</mat-expansion-panel-header\n >\n <cadmus-refs-asserted-composite-id\n [idScopeEntries]=\"idScopeEntries\"\n [idTagEntries]=\"idTagEntries\"\n [assTagEntries]=\"assTagEntries\"\n [refTypeEntries]=\"refTypeEntries\"\n [refTagEntries]=\"refTagEntries\"\n [hasSubmit]=\"true\"\n [pinByTypeMode]=\"pinByTypeMode\"\n [canSwitchMode]=\"canSwitchMode\"\n [canEditTarget]=\"canEditTarget\"\n [lookupDefinitions]=\"lookupDefinitions\"\n [defaultPartTypeKey]=\"defaultPartTypeKey\"\n [internalDefault]=\"internalDefault\"\n [id]=\"edited\"\n (idChange)=\"onIdChange($event)\"\n (editorClose)=\"closeId()\"\n ></cadmus-refs-asserted-composite-id>\n </mat-expansion-panel>\n</form>\n", styles: ["th{font-weight:400;color:silver;text-align:left}td{padding-right:4px}td.fit-width{width:1px;white-space:nowrap;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "component", type: AssertedCompositeIdComponent, selector: "cadmus-refs-asserted-composite-id", inputs: ["idScopeEntries", "idTagEntries", "assTagEntries", "refTypeEntries", "refTagEntries", "id", "internalDefault", "hasSubmit", "pinByTypeMode", "canSwitchMode", "canEditTarget", "lookupDefinitions", "defaultPartTypeKey"], outputs: ["idChange", "editorClose", "extMoreRequest"] }] }); }
|
|
1272
1276
|
}
|
|
1273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
1277
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AssertedCompositeIdsComponent, decorators: [{
|
|
1274
1278
|
type: Component,
|
|
1275
1279
|
args: [{ standalone: true, selector: 'cadmus-refs-asserted-composite-ids', imports: [
|
|
1276
1280
|
FormsModule,
|
|
@@ -1282,7 +1286,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
1282
1286
|
MatIconModule,
|
|
1283
1287
|
MatInputModule,
|
|
1284
1288
|
AssertedCompositeIdComponent
|
|
1285
|
-
], template: "<form [formGroup]=\"form\">\n <!-- buttons -->\n <button
|
|
1289
|
+
], template: "<form [formGroup]=\"form\">\n <!-- buttons -->\n <button\n type=\"button\"\n color=\"primary\"\n class=\"mat-primary\"\n mat-flat-button\n (click)=\"addId()\"\n >\n <mat-icon>add_circle</mat-icon> ID\n </button>\n <!-- list -->\n @if (entries.value.length) {\n <table>\n <thead>\n <tr>\n <th></th>\n <th>scope</th>\n <th>label</th>\n <th>value</th>\n <th>ass.</th>\n </tr>\n </thead>\n <tbody>\n @for ( entry of entries.value; track entry; let i = $index; let first =\n $first; let last = $last) {\n <tr>\n <td class=\"fit-width\">\n <button\n type=\"button\"\n mat-icon-button\n color=\"primary\"\n matTooltip=\"Edit this ID\"\n (click)=\"editId(entry, i)\"\n >\n <mat-icon class=\"mat-primary\">edit</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID up\"\n [disabled]=\"first\"\n (click)=\"moveIdUp(i)\"\n >\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button\n type=\"button\"\n mat-icon-button\n matTooltip=\"Move this ID down\"\n [disabled]=\"last\"\n (click)=\"moveIdDown(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 ID\"\n (click)=\"deleteId(i)\"\n >\n <mat-icon class=\"mat-warn\">remove_circle</mat-icon>\n </button>\n </td>\n <td>{{ entry.scope }}</td>\n <td>{{ entry?.target?.label }}</td>\n <td>{{ entry?.target?.gid }}</td>\n <td>{{ entry?.assertion ? \"Y\" : \"N\" }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n <!-- editor -->\n <mat-expansion-panel [expanded]=\"edited\" [disabled]=\"!edited\">\n <mat-expansion-panel-header\n >ID {{ edited?.target?.label }}</mat-expansion-panel-header\n >\n <cadmus-refs-asserted-composite-id\n [idScopeEntries]=\"idScopeEntries\"\n [idTagEntries]=\"idTagEntries\"\n [assTagEntries]=\"assTagEntries\"\n [refTypeEntries]=\"refTypeEntries\"\n [refTagEntries]=\"refTagEntries\"\n [hasSubmit]=\"true\"\n [pinByTypeMode]=\"pinByTypeMode\"\n [canSwitchMode]=\"canSwitchMode\"\n [canEditTarget]=\"canEditTarget\"\n [lookupDefinitions]=\"lookupDefinitions\"\n [defaultPartTypeKey]=\"defaultPartTypeKey\"\n [internalDefault]=\"internalDefault\"\n [id]=\"edited\"\n (idChange)=\"onIdChange($event)\"\n (editorClose)=\"closeId()\"\n ></cadmus-refs-asserted-composite-id>\n </mat-expansion-panel>\n</form>\n", styles: ["th{font-weight:400;color:silver;text-align:left}td{padding-right:4px}td.fit-width{width:1px;white-space:nowrap;padding:0}\n"] }]
|
|
1286
1290
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: i2.DialogService }], propDecorators: { ids: [{
|
|
1287
1291
|
type: Input
|
|
1288
1292
|
}], idScopeEntries: [{
|