@myrmidon/cadmus-ui 2.0.0 → 2.0.1
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/esm2020/lib/cadmus-ui.module.mjs +4 -4
- package/esm2020/lib/components/close-save-buttons/close-save-buttons.component.mjs +3 -3
- package/esm2020/lib/components/decorated-token-text/decorated-token-text.component.mjs +3 -3
- package/esm2020/lib/components/error-list/error-list.component.mjs +3 -3
- package/esm2020/lib/components/facet-badge/facet-badge.component.mjs +3 -3
- package/esm2020/lib/components/flags-badge/flags-badge.component.mjs +3 -3
- package/esm2020/lib/components/inplace-editor-component-base.mjs +3 -3
- package/esm2020/lib/components/layer-hints/layer-hints.component.mjs +3 -3
- package/esm2020/lib/components/lookup-pin/lookup-pin.component.mjs +3 -3
- package/esm2020/lib/components/model-editor-component-base.mjs +8 -8
- package/esm2020/lib/components/multi-entry-selector/multi-entry-selector.component.mjs +3 -3
- package/esm2020/lib/components/part-badge/part-badge.component.mjs +3 -3
- package/esm2020/lib/components/thesaurus-tree/thesaurus-tree.component.mjs +3 -3
- package/esm2020/lib/services/color.service.mjs +3 -3
- package/fesm2015/myrmidon-cadmus-ui.mjs +47 -47
- package/fesm2015/myrmidon-cadmus-ui.mjs.map +1 -1
- package/fesm2020/myrmidon-cadmus-ui.mjs +47 -47
- package/fesm2020/myrmidon-cadmus-ui.mjs.map +1 -1
- package/lib/components/model-editor-component-base.d.ts +2 -2
- package/package.json +1 -1
|
@@ -30,8 +30,8 @@ import { ThesaurusTreeComponent } from './components/thesaurus-tree/thesaurus-tr
|
|
|
30
30
|
import * as i0 from "@angular/core";
|
|
31
31
|
export class CadmusUiModule {
|
|
32
32
|
}
|
|
33
|
-
CadmusUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
34
|
-
CadmusUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.
|
|
33
|
+
CadmusUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CadmusUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
34
|
+
CadmusUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CadmusUiModule, declarations: [CloseSaveButtonsComponent,
|
|
35
35
|
DecoratedTokenTextComponent,
|
|
36
36
|
ErrorListComponent,
|
|
37
37
|
FacetBadgeComponent,
|
|
@@ -68,7 +68,7 @@ CadmusUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
68
68
|
MultiEntrySelectorComponent,
|
|
69
69
|
PartBadgeComponent,
|
|
70
70
|
ThesaurusTreeComponent] });
|
|
71
|
-
CadmusUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.
|
|
71
|
+
CadmusUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CadmusUiModule, imports: [[
|
|
72
72
|
CommonModule,
|
|
73
73
|
FormsModule,
|
|
74
74
|
RouterModule,
|
|
@@ -89,7 +89,7 @@ CadmusUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
89
89
|
NgToolsModule,
|
|
90
90
|
CadmusCoreModule,
|
|
91
91
|
]] });
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CadmusUiModule, decorators: [{
|
|
93
93
|
type: NgModule,
|
|
94
94
|
args: [{
|
|
95
95
|
imports: [
|
|
@@ -12,9 +12,9 @@ export class CloseSaveButtonsComponent {
|
|
|
12
12
|
this.closeRequest.emit();
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
CloseSaveButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
16
|
-
CloseSaveButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
15
|
+
CloseSaveButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CloseSaveButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
CloseSaveButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: CloseSaveButtonsComponent, selector: "cadmus-close-save-buttons", inputs: { form: "form", noSave: "noSave" }, outputs: { closeRequest: "closeRequest" }, ngImport: i0, template: "<ng-container *ngIf=\"form\">\r\n <button\r\n type=\"button\"\r\n mat-raised-button\r\n color=\"warn\"\r\n matTooltip=\"Close this editor\"\r\n (click)=\"close()\"\r\n >\r\n <mat-icon>cancel</mat-icon>\r\n close\r\n </button>\r\n <button\r\n *ngIf=\"!noSave\"\r\n type=\"submit\"\r\n [disabled]=\"form.invalid\"\r\n mat-raised-button\r\n color=\"primary\"\r\n matTooltip=\"Save data\"\r\n >\r\n <mat-icon>check_circle</mat-icon>\r\n save\r\n </button>\r\n</ng-container>\r\n", styles: [""], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CloseSaveButtonsComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'cadmus-close-save-buttons', template: "<ng-container *ngIf=\"form\">\r\n <button\r\n type=\"button\"\r\n mat-raised-button\r\n color=\"warn\"\r\n matTooltip=\"Close this editor\"\r\n (click)=\"close()\"\r\n >\r\n <mat-icon>cancel</mat-icon>\r\n close\r\n </button>\r\n <button\r\n *ngIf=\"!noSave\"\r\n type=\"submit\"\r\n [disabled]=\"form.invalid\"\r\n mat-raised-button\r\n color=\"primary\"\r\n matTooltip=\"Save data\"\r\n >\r\n <mat-icon>check_circle</mat-icon>\r\n save\r\n </button>\r\n</ng-container>\r\n", styles: [""] }]
|
|
20
20
|
}], ctorParameters: function () { return []; }, propDecorators: { form: [{
|
|
@@ -49,9 +49,9 @@ export class DecoratedTokenTextComponent {
|
|
|
49
49
|
this.text = this._textLayerService.render(this._baseText, this._locations, this._selectedLoc);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
DecoratedTokenTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
53
|
-
DecoratedTokenTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
52
|
+
DecoratedTokenTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DecoratedTokenTextComponent, deps: [{ token: i1.TextLayerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
DecoratedTokenTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: DecoratedTokenTextComponent, selector: "cadmus-decorated-token-text", inputs: { baseText: "baseText", locations: "locations", selectedLocation: "selectedLocation" }, viewQueries: [{ propertyName: "_textElement", first: true, predicate: ["textElem"], descendants: true }], ngImport: i0, template: "<div [innerHtml]=\"text | safeHtml: 'html'\" id=\"text\" #textElem></div>\r\n", styles: [":host ::ng-deep div#text{counter-reset:text-y-counter}:host ::ng-deep div#text p:before{content:counter(text-y-counter);counter-increment:text-y-counter;margin-right:6px;color:#a0a0a0}:host ::ng-deep span.fr{background-color:#ff0;border:1px solid silver;border-radius:6px;padding:0 4px}:host ::ng-deep span.fr-sel{background-color:orange;font-weight:700;border:1px solid #404040}\n"], pipes: { "safeHtml": i2.SafeHtmlPipe } });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DecoratedTokenTextComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
56
56
|
args: [{ selector: 'cadmus-decorated-token-text', template: "<div [innerHtml]=\"text | safeHtml: 'html'\" id=\"text\" #textElem></div>\r\n", styles: [":host ::ng-deep div#text{counter-reset:text-y-counter}:host ::ng-deep div#text p:before{content:counter(text-y-counter);counter-increment:text-y-counter;margin-right:6px;color:#a0a0a0}:host ::ng-deep span.fr{background-color:#ff0;border:1px solid silver;border-radius:6px;padding:0 4px}:host ::ng-deep span.fr-sel{background-color:orange;font-weight:700;border:1px solid #404040}\n"] }]
|
|
57
57
|
}], ctorParameters: function () { return [{ type: i1.TextLayerService }]; }, propDecorators: { _textElement: [{
|
|
@@ -6,9 +6,9 @@ export class ErrorListComponent {
|
|
|
6
6
|
ngOnInit() {
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
ErrorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
10
|
-
ErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
9
|
+
ErrorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ErrorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
ErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ErrorListComponent, selector: "cadmus-error-list", inputs: { errors: "errors" }, ngImport: i0, template: "<ul *ngIf=\"errors\">\r\n <li *ngFor=\"let error of errors\">{{error}}</li>\r\n</ul>\r\n", styles: [""], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ErrorListComponent, decorators: [{
|
|
12
12
|
type: Component,
|
|
13
13
|
args: [{ selector: 'cadmus-error-list', template: "<ul *ngIf=\"errors\">\r\n <li *ngFor=\"let error of errors\">{{error}}</li>\r\n</ul>\r\n", styles: [""] }]
|
|
14
14
|
}], ctorParameters: function () { return []; }, propDecorators: { errors: [{
|
|
@@ -89,9 +89,9 @@ export class FacetBadgeComponent {
|
|
|
89
89
|
this.tip = this.getFacetTip(this._facetId) ?? undefined;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
FacetBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
93
|
-
FacetBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
92
|
+
FacetBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FacetBadgeComponent, deps: [{ token: i1.ColorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
+
FacetBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FacetBadgeComponent, selector: "cadmus-facet-badge", inputs: { facetId: "facetId", facetDefinitions: "facetDefinitions" }, ngImport: i0, template: "<span\r\n class=\"model-type\"\r\n [style.background-color]=\"color\"\r\n [style.color]=\"contrastColor\"\r\n matTooltip=\"{{ tip }}\"\r\n >{{ facetId }}\r\n</span>\r\n", styles: ["span.model-type{padding:4px;border-radius:6px}\n"], directives: [{ type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FacetBadgeComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
96
96
|
args: [{ selector: 'cadmus-facet-badge', template: "<span\r\n class=\"model-type\"\r\n [style.background-color]=\"color\"\r\n [style.color]=\"contrastColor\"\r\n matTooltip=\"{{ tip }}\"\r\n >{{ facetId }}\r\n</span>\r\n", styles: ["span.model-type{padding:4px;border-radius:6px}\n"] }]
|
|
97
97
|
}], ctorParameters: function () { return [{ type: i1.ColorService }]; }, propDecorators: { facetId: [{
|
|
@@ -40,9 +40,9 @@ export class FlagsBadgeComponent {
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
FlagsBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
44
|
-
FlagsBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
43
|
+
FlagsBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FlagsBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
FlagsBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FlagsBadgeComponent, selector: "cadmus-flags-badge", inputs: { flags: "flags", flagDefinitions: "flagDefinitions" }, ngImport: i0, template: "<div>\r\n <span\r\n class=\"badge-flag\"\r\n *ngFor=\"let def of badgeFlags\"\r\n [style.color]=\"'#' + def.colorKey\"\r\n [matTooltip]=\"def.label\"\r\n >\r\n ●\r\n </span>\r\n</div>\r\n", styles: ["span.badge-flag{margin-right:4px;font-size:24px;cursor:default}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FlagsBadgeComponent, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{ selector: 'cadmus-flags-badge', template: "<div>\r\n <span\r\n class=\"badge-flag\"\r\n *ngFor=\"let def of badgeFlags\"\r\n [style.color]=\"'#' + def.colorKey\"\r\n [matTooltip]=\"def.label\"\r\n >\r\n ●\r\n </span>\r\n</div>\r\n", styles: ["span.badge-flag{margin-right:4px;font-size:24px;cursor:default}\n"] }]
|
|
48
48
|
}], ctorParameters: function () { return []; }, propDecorators: { flags: [{
|
|
@@ -80,9 +80,9 @@ export class InplaceEditorComponentBase {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
InplaceEditorComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
84
|
-
InplaceEditorComponentBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
83
|
+
InplaceEditorComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: InplaceEditorComponentBase, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
InplaceEditorComponentBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: InplaceEditorComponentBase, selector: "ng-component", inputs: { parentForm: "parentForm", model$: "model$" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: '', isInline: true });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: InplaceEditorComponentBase, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
87
|
args: [{
|
|
88
88
|
template: '',
|
|
@@ -79,9 +79,9 @@ export class LayerHintsComponent {
|
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
LayerHintsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
83
|
-
LayerHintsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
82
|
+
LayerHintsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: LayerHintsComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
+
LayerHintsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: LayerHintsComponent, selector: "cadmus-layer-hints", inputs: { hints: "hints", targetLocation: "targetLocation", disabled: "disabled", readonly: "readonly" }, outputs: { requestEdit: "requestEdit", requestDelete: "requestDelete", requestMove: "requestMove", requestPatch: "requestPatch" }, ngImport: i0, template: "<form *ngIf=\"hints\" [formGroup]=\"form\" (submit)=\"emitRequestPatch()\">\r\n <table class=\"patches\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>location</th>\r\n <th>description</th>\r\n <th>patch</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let hint of hints; let i = index\">\r\n <td *ngIf=\"!readonly\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Edit this fragment\"\r\n [disabled]=\"disabled\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this fragment to {{ targetLocation }}\"\r\n [disabled]=\"\r\n disabled || !targetLocation || targetLocation === hint.location\r\n \"\r\n (click)=\"emitRequestMove(hint)\"\r\n >\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Delete this fragment\"\r\n color=\"warn\"\r\n [disabled]=\"disabled\"\r\n (click)=\"emitRequestDelete(hint)\"\r\n >\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ hint.location }}</td>\r\n <td>{{ hint.description }}</td>\r\n <td>\r\n <mat-checkbox\r\n *ngIf=\"hint.patchOperation\"\r\n matTooltip=\"Apply this patch\"\r\n [disabled]=\"disabled\"\r\n [value]=\"(i + 1).toString()\"\r\n >\r\n {{ hint.patchOperation }}\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div *ngIf=\"targetLocation\">move target: {{ targetLocation }}</div>\r\n <button\r\n type=\"submit\"\r\n mat-raised-button\r\n [disabled]=\"readonly || disabled || form.invalid\"\r\n >\r\n apply patches\r\n </button>\r\n</form>\r\n", styles: ["table.patches th{font-weight:400;color:#bdbdbd}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: LayerHintsComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
86
86
|
args: [{ selector: 'cadmus-layer-hints', template: "<form *ngIf=\"hints\" [formGroup]=\"form\" (submit)=\"emitRequestPatch()\">\r\n <table class=\"patches\">\r\n <thead>\r\n <tr>\r\n <th></th>\r\n <th>location</th>\r\n <th>description</th>\r\n <th>patch</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let hint of hints; let i = index\">\r\n <td *ngIf=\"!readonly\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Edit this fragment\"\r\n [disabled]=\"disabled\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Move this fragment to {{ targetLocation }}\"\r\n [disabled]=\"\r\n disabled || !targetLocation || targetLocation === hint.location\r\n \"\r\n (click)=\"emitRequestMove(hint)\"\r\n >\r\n <mat-icon>arrow_forward</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Delete this fragment\"\r\n color=\"warn\"\r\n [disabled]=\"disabled\"\r\n (click)=\"emitRequestDelete(hint)\"\r\n >\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </td>\r\n <td>{{ hint.location }}</td>\r\n <td>{{ hint.description }}</td>\r\n <td>\r\n <mat-checkbox\r\n *ngIf=\"hint.patchOperation\"\r\n matTooltip=\"Apply this patch\"\r\n [disabled]=\"disabled\"\r\n [value]=\"(i + 1).toString()\"\r\n >\r\n {{ hint.patchOperation }}\r\n </mat-checkbox>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <div *ngIf=\"targetLocation\">move target: {{ targetLocation }}</div>\r\n <button\r\n type=\"submit\"\r\n mat-raised-button\r\n [disabled]=\"readonly || disabled || form.invalid\"\r\n >\r\n apply patches\r\n </button>\r\n</form>\r\n", styles: ["table.patches th{font-weight:400;color:#bdbdbd}\n"] }]
|
|
87
87
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.DialogService }]; }, propDecorators: { hints: [{
|
|
@@ -111,9 +111,9 @@ export class LookupPinComponent {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
LookupPinComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
115
|
-
LookupPinComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
114
|
+
LookupPinComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: LookupPinComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ItemService }, { token: 'indexLookupDefinitions' }], target: i0.ɵɵFactoryTarget.Component });
|
|
115
|
+
LookupPinComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: LookupPinComponent, selector: "cadmus-lookup-pin", inputs: { initialValue: "initialValue", label: "label", limit: "limit", resetOnPick: "resetOnPick", lookupKey: "lookupKey" }, outputs: { entryChange: "entryChange" }, ngImport: i0, template: "<form [formGroup]=\"form\">\r\n <mat-autocomplete #lookupAuto=\"matAutocomplete\" [displayWith]=\"entryToName\">\r\n <mat-option\r\n *ngFor=\"let entry of entries$ | async\"\r\n [value]=\"entry\"\r\n (onSelectionChange)=\"pickEntry(entry)\"\r\n >\r\n {{ entry?.value }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-form-field>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"label\"\r\n [formControl]=\"lookup\"\r\n [matAutocomplete]=\"lookupAuto\"\r\n />\r\n </mat-form-field>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"clear()\"\r\n [disabled]=\"!entry\"\r\n matTooltip=\"Clear\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n</form>\r\n", styles: [""], components: [{ type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "async": i8.AsyncPipe } });
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: LookupPinComponent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
118
|
args: [{ selector: 'cadmus-lookup-pin', template: "<form [formGroup]=\"form\">\r\n <mat-autocomplete #lookupAuto=\"matAutocomplete\" [displayWith]=\"entryToName\">\r\n <mat-option\r\n *ngFor=\"let entry of entries$ | async\"\r\n [value]=\"entry\"\r\n (onSelectionChange)=\"pickEntry(entry)\"\r\n >\r\n {{ entry?.value }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n\r\n <mat-form-field>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [placeholder]=\"label\"\r\n [formControl]=\"lookup\"\r\n [matAutocomplete]=\"lookupAuto\"\r\n />\r\n </mat-form-field>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"clear()\"\r\n [disabled]=\"!entry\"\r\n matTooltip=\"Clear\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n</form>\r\n", styles: [""] }]
|
|
119
119
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ItemService }, { type: undefined, decorators: [{
|
|
@@ -100,7 +100,7 @@ export class ModelEditorComponentBase {
|
|
|
100
100
|
*/
|
|
101
101
|
initEditor() {
|
|
102
102
|
this.onThesauriSet();
|
|
103
|
-
this.onModelSet(this.
|
|
103
|
+
this.onModelSet(this._model);
|
|
104
104
|
if (this.form) {
|
|
105
105
|
extractPristineChanges(this.form).subscribe((p) => {
|
|
106
106
|
this.dirtyChange.emit(!p);
|
|
@@ -114,7 +114,7 @@ export class ModelEditorComponentBase {
|
|
|
114
114
|
* @param model The model.
|
|
115
115
|
*/
|
|
116
116
|
updateModel(model) {
|
|
117
|
-
this.
|
|
117
|
+
this._model = model;
|
|
118
118
|
this.modelChange.emit(model);
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
@@ -130,8 +130,8 @@ export class ModelEditorComponentBase {
|
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
132
|
* Save the edited data if valid. This invokes getModelFromForm to get
|
|
133
|
-
* the model from the form's controls,
|
|
134
|
-
*
|
|
133
|
+
* the model from the form's controls, updates the underlying model,
|
|
134
|
+
* marks the root form as pristine, and emits dirtyChange(false).
|
|
135
135
|
*/
|
|
136
136
|
save() {
|
|
137
137
|
if (this.form?.invalid) {
|
|
@@ -144,9 +144,9 @@ export class ModelEditorComponentBase {
|
|
|
144
144
|
this.dirtyChange.emit(false);
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
-
ModelEditorComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
148
|
-
ModelEditorComponentBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
147
|
+
ModelEditorComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ModelEditorComponentBase, deps: [{ token: i1.AuthJwtService }], target: i0.ɵɵFactoryTarget.Component });
|
|
148
|
+
ModelEditorComponentBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ModelEditorComponentBase, selector: "ng-component", inputs: { itemId: "itemId", roleId: "roleId", model: "model", thesauri: "thesauri", disabled: "disabled" }, outputs: { modelChange: "modelChange", editorClose: "editorClose", dirtyChange: "dirtyChange" }, ngImport: i0, template: '', isInline: true });
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ModelEditorComponentBase, decorators: [{
|
|
150
150
|
type: Component,
|
|
151
151
|
args: [{
|
|
152
152
|
template: '',
|
|
@@ -168,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
168
168
|
}], dirtyChange: [{
|
|
169
169
|
type: Output
|
|
170
170
|
}] } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZWRpdG9yLWNvbXBvbmVudC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXVpL3NyYy9saWIvY29tcG9uZW50cy9tb2RlbC1lZGl0b3ItY29tcG9uZW50LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU12RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUVsRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBSUgsTUFBTSxPQUFnQix3QkFBd0I7SUF5RjVDLFlBQW9CLFlBQTRCO1FBQTVCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTVDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFsRkQ7O09BRUc7SUFDSCxJQUNXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLEtBQW9CO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENB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QUFFO1lBQ3RCLE9BQU87U0FDUjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7cUhBMU1tQix3QkFBd0I7eUdBQXhCLHdCQUF3QixpUUFGbEMsRUFBRTsyRkFFUSx3QkFBd0I7a0JBSDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7cUdBU1EsTUFBTTtzQkFEWixLQUFLO2dCQU9DLE1BQU07c0JBRFosS0FBSztnQkFPSyxLQUFLO3NCQURmLEtBQUs7Z0JBYUMsV0FBVztzQkFEakIsTUFBTTtnQkFPSSxRQUFRO3NCQURsQixLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFnQkMsV0FBVztzQkFEakIsTUFBTTtnQkFPQSxXQUFXO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBdXRoSnd0U2VydmljZSwgVXNlciB9IGZyb20gJ0BteXJtaWRvbi9hdXRoLWp3dC1sb2dpbic7XHJcblxyXG5pbXBvcnQgeyBUaGVzYXVyaVNldCB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcblxyXG5pbXBvcnQgeyBleHRyYWN0UHJpc3RpbmVDaGFuZ2VzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY2xhc3MgZm9yIHBhcnQvZnJhZ21lbnQgZWRpdG9ycyBkdW1iIGNvbXBvbmVudHMuXHJcbiAqIFRoZSBtb2RlbCB0eXBlIGlzIHRoZSB0ZW1wbGF0ZWQgYXJndW1lbnQgVC5cclxuICogQSBkdW1iIGNvbXBvbmVudCBnZXRzIGFzIGlucHV0IHRoZSBwYXJ0L2ZyYWdtZW50IG1vZGVsLFxyXG4gKiBhbmQgb3B0aW9uYWxseSBhIHNldCBvZiB0aGVzYXVyaS5cclxuICogSXQgb3V0cHV0cyB0aGUgbW9kZWwgKHdoZW4gc2F2ZWQpLCBhIHJlcXVlc3QgdG8gY2xvc2UgdGhlXHJcbiAqIGVkaXRvciwgYW5kIGEgbm90aWZpY2F0aW9uIGFib3V0IHRoZSBkaXJ0eSBzdGF0ZSBvZiB0aGUgZWRpdG9yXHJcbiAqIGl0c2VsZi5cclxuICogV2hlbiBpbXBsZW1lbnRpbmcgeW91ciBtb2RlbCBlZGl0b3IgZXh0ZW5kaW5nIHRoaXMgY2xhc3M6XHJcbiAqIC0gc2V0IHRoZSBmb3JtIHByb3BlcnR5IHRvIHlvdXIgXCJyb290XCIgZm9ybTtcclxuICogLSBjYWxsIGluaXRFZGl0b3IgaW4geW91ciBPbkluaXQ7XHJcbiAqIC0gb3ZlcnJpZGUgb25Nb2RlbFNldCwgYW5kIGV2ZW50dWFsbHkgT25UaGVzYXVyaVNldDtcclxuICogLSBvdmVycmlkZSBnZXRNb2RlbEZyb21Gb3JtLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kZWxFZGl0b3JDb21wb25lbnRCYXNlPFQ+IHtcclxuICBwcml2YXRlIF90aGVzYXVyaT86IFRoZXNhdXJpU2V0O1xyXG4gIHByaXZhdGUgX21vZGVsPzogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHBhcnQncyBpdGVtIElELlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGl0ZW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcGFydCdzIHJvbGUgSUQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcm9sZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBtb2RlbCBiZWluZyBlZGl0ZWQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1vZGVsKCk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1vZGVsKHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbk1vZGVsU2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZWRpdGVkIG1vZGVsIGlzIHNhdmVkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFQ+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgb3B0aW9uYWwgdGhlc2F1cmkgdG8gYmUgdXNlZCB3aXRoaW4gdGhpcyBlZGl0b3IuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHRoZXNhdXJpKCk6IFRoZXNhdXJpU2V0IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl90aGVzYXVyaTtcclxuICB9XHJcbiAgcHVibGljIHNldCB0aGVzYXVyaSh2YWx1ZTogVGhlc2F1cmlTZXQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3RoZXNhdXJpID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uVGhlc2F1cmlTZXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRydWUgdG8gZGlzYWJsZSB0aGUgZWRpdG9yLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciByZXF1ZXN0cyB0byBjbG9zZSB0aGUgZWRpdG9yLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBlZGl0b3JDbG9zZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlydHkgc3RhdGUgb2YgdGhlIGVkaXRlZCBkYXRhIGNoYW5nZXMuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRpcnR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSByb290IGZvcm0gb2YgdGhlIGVkaXRvci5cclxuICAgKiBZb3UgTVVTVCBpbnN0YW50aWF0ZSB0aGlzIGZvcm0gaW4gdGhlIGN0b3IuXHJcbiAgICovXHJcbiAgcHVibGljIGZvcm0/OiBGb3JtR3JvdXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjdXJyZW50IHVzZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHVzZXI/OiBVc2VyO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgdXNlciBhdXRob3JpemF0aW9uIGxldmVsICgwLTQpLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB1c2VyTGV2ZWw6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhKd3RTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG4gICAgdGhpcy5lZGl0b3JDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgdGhpcy5kaXJ0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAgIHRoaXMudXNlckxldmVsID0gdGhpcy5nZXRDdXJyZW50VXNlckxldmVsKCk7XHJcblxyXG4gICAgX2F1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyJC5zdWJzY3JpYmUoKHVzZXI6IFVzZXIgfCBudWxsKSA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlVXNlclByb3BlcnRpZXModXNlcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgYXV0aG9yaXphdGlvbiBsZXZlbCBvZiB0aGUgY3VycmVudCB1c2VyIGlmIGFueS5cclxuICAgKiBAcmV0dXJucyA0LTEgZm9yIGFkbWluLCBlZGl0b3IsIG9wZXJhdG9yLCB2aXNpdG9yOyBlbHNlIDAuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRDdXJyZW50VXNlckxldmVsKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCB1c2VyID0gdGhpcy5fYXV0aFNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZTtcclxuICAgIGlmICghdXNlciB8fCAhdXNlci5yb2xlcykge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIGlmICh1c2VyLnJvbGVzLmluZGV4T2YoJ2FkbWluJykgPiAtMSkge1xyXG4gICAgICByZXR1cm4gNDtcclxuICAgIH1cclxuICAgIGlmICh1c2VyLnJvbGVzLmluZGV4T2YoJ2VkaXRvcicpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIDM7XHJcbiAgICB9XHJcbiAgICBpZiAodXNlci5yb2xlcy5pbmRleE9mKCdvcGVyYXRvcicpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIDI7XHJcbiAgICB9XHJcbiAgICBpZiAodXNlci5yb2xlcy5pbmRleE9mKCd2aXNpdG9yJykgPiAtMSkge1xyXG4gICAgICByZXR1cm4gMTtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVVc2VyUHJvcGVydGllcyh1c2VyOiBVc2VyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgIHRoaXMudXNlciA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy51c2VyTGV2ZWwgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgICAgdGhpcy51c2VyTGV2ZWwgPSB0aGlzLmdldEN1cnJlbnRVc2VyTGV2ZWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGVkaXRvci4gWW91IE1VU1QgY2FsbCB0aGlzIGluIHlvdXIgT25Jbml0LlxyXG4gICAqIFRoaXMgaW5pdGlhbGl6ZXMgdGhlIHRoZXNhdXJpIGFuZCBzZXRzIHRoZSBkYXRhIG1vZGVsLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpbml0RWRpdG9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRoZXNhdXJpU2V0KCk7XHJcbiAgICB0aGlzLm9uTW9kZWxTZXQodGhpcy5tb2RlbCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9ybSkge1xyXG4gICAgICBleHRyYWN0UHJpc3RpbmVDaGFuZ2VzKHRoaXMuZm9ybSkuc3Vic2NyaWJlKChwKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KCFwKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIG1vZGVsIHByb3BlcnR5IGFuZCBlbWl0IHRoZSBjb3JyZXNwb25kaW5nXHJcbiAgICogbW9kZWxDaGFuZ2UgZXZlbnQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbW9kZWwgVGhlIG1vZGVsLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB1cGRhdGVNb2RlbChtb2RlbDogVCk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEludm9rZWQgd2hlbmV2ZXIgdGhlIG1vZGVsIHByb3BlcnR5IGlzIHNldCAoPWRhdGEgY29tZXMgZnJvbSBpbnB1dCBtb2RlbFxyXG4gICAqIHByb3BlcnR5KSwgdW5sZXNzIHNldHRpbmcgaXQgdmlhIHVwZGF0ZU1vZGVsLiBJbXBsZW1lbnQgdG8gdXBkYXRlIHRoZSBmb3JtXHJcbiAgICogY29udHJvbHMgdG8gcmVmbGVjdCB0aGUgbmV3IG1vZGVsIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbW9kZWwgVGhlIG1vZGVsIHNldCwgb3IgdW5kZWZpbmVkLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvbk1vZGVsU2V0KG1vZGVsPzogVCk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEludm9rZWQgd2hlbmV2ZXIgdGhlIHRoZXNhdXJpIHByb3BlcnR5IGlzIHNldC4gT3ZlcnJpZGUgdG8gdGFrZVxyXG4gICAqIGN1c3RvbSBhY3Rpb25zLCB0eXBpY2FsbHkgdG8gc2V0IHNvbWUgYm91bmQgcHJvcGVydGllcy5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgb25UaGVzYXVyaVNldCgpOiB2b2lkIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudCBpbiBkZXJpdmVkIGNsYXNzZXMgdG8gZ2V0IHRoZSBtb2RlbCBmcm9tIGZvcm0ncyBjb250cm9scy5cclxuICAgKiBUaGlzIGlzIHVzZWQgd2hlbiBzYXZpbmcgKD1kYXRhIGdvZXMgdG8gdGhlIG91dHB1dCBtb2RlbENoYW5nZSBldmVudCkuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldE1vZGVsRnJvbUZvcm0oKTogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdCBhIHJlcXVlc3QgdG8gY2xvc2UgdGhlIGVkaXRvci5cclxuICAgKi9cclxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRvckNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmUgdGhlIGVkaXRlZCBkYXRhIGlmIHZhbGlkLiBUaGlzIGludm9rZXMgZ2V0TW9kZWxGcm9tRm9ybSB0byBnZXRcclxuICAgKiB0aGUgbW9kZWwgZnJvbSB0aGUgZm9ybSdzIGNvbnRyb2xzLCBzZXJpYWxpemVzIGl0IGludG8gSlNPTixcclxuICAgKiB1cGRhdGVzIHRoZSBqc29uIHByb3BlcnR5LCBhbmQgbWFya3MgdGhlIHJvb3QgZm9ybSBhcyBwcmlzdGluZS5cclxuICAgKi9cclxuICBwdWJsaWMgc2F2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm0/LmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0TW9kZWxGcm9tRm9ybSgpO1xyXG4gICAgdGhpcy51cGRhdGVNb2RlbChwYXJ0KTtcclxuICAgIC8vIHRoZSBmb3JtIGlzIG5vIG1vcmUgZGlydHlcclxuICAgIHRoaXMuZm9ybT8ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIHRoaXMuZGlydHlDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZWRpdG9yLWNvbXBvbmVudC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXVpL3NyYy9saWIvY29tcG9uZW50cy9tb2RlbC1lZGl0b3ItY29tcG9uZW50LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU12RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUVsRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBSUgsTUFBTSxPQUFnQix3QkFBd0I7SUF5RjVDLFlBQW9CLFlBQTRCO1FBQTVCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTVDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFsRkQ7O09BRUc7SUFDSCxJQUNXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLEtBQW9CO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENB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QUFFO1lBQ3RCLE9BQU87U0FDUjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7cUhBMU1tQix3QkFBd0I7eUdBQXhCLHdCQUF3QixpUUFGbEMsRUFBRTsyRkFFUSx3QkFBd0I7a0JBSDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7cUdBU1EsTUFBTTtzQkFEWixLQUFLO2dCQU9DLE1BQU07c0JBRFosS0FBSztnQkFPSyxLQUFLO3NCQURmLEtBQUs7Z0JBYUMsV0FBVztzQkFEakIsTUFBTTtnQkFPSSxRQUFRO3NCQURsQixLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFnQkMsV0FBVztzQkFEakIsTUFBTTtnQkFPQSxXQUFXO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBdXRoSnd0U2VydmljZSwgVXNlciB9IGZyb20gJ0BteXJtaWRvbi9hdXRoLWp3dC1sb2dpbic7XHJcblxyXG5pbXBvcnQgeyBUaGVzYXVyaVNldCB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcblxyXG5pbXBvcnQgeyBleHRyYWN0UHJpc3RpbmVDaGFuZ2VzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgY2xhc3MgZm9yIHBhcnQvZnJhZ21lbnQgZWRpdG9ycyBkdW1iIGNvbXBvbmVudHMuXHJcbiAqIFRoZSBtb2RlbCB0eXBlIGlzIHRoZSB0ZW1wbGF0ZWQgYXJndW1lbnQgVC5cclxuICogQSBkdW1iIGNvbXBvbmVudCBnZXRzIGFzIGlucHV0IHRoZSBwYXJ0L2ZyYWdtZW50IG1vZGVsLFxyXG4gKiBhbmQgb3B0aW9uYWxseSBhIHNldCBvZiB0aGVzYXVyaS5cclxuICogSXQgb3V0cHV0cyB0aGUgbW9kZWwgKHdoZW4gc2F2ZWQpLCBhIHJlcXVlc3QgdG8gY2xvc2UgdGhlXHJcbiAqIGVkaXRvciwgYW5kIGEgbm90aWZpY2F0aW9uIGFib3V0IHRoZSBkaXJ0eSBzdGF0ZSBvZiB0aGUgZWRpdG9yXHJcbiAqIGl0c2VsZi5cclxuICogV2hlbiBpbXBsZW1lbnRpbmcgeW91ciBtb2RlbCBlZGl0b3IgZXh0ZW5kaW5nIHRoaXMgY2xhc3M6XHJcbiAqIC0gc2V0IHRoZSBmb3JtIHByb3BlcnR5IHRvIHlvdXIgXCJyb290XCIgZm9ybTtcclxuICogLSBjYWxsIGluaXRFZGl0b3IgaW4geW91ciBPbkluaXQ7XHJcbiAqIC0gb3ZlcnJpZGUgb25Nb2RlbFNldCwgYW5kIGV2ZW50dWFsbHkgT25UaGVzYXVyaVNldDtcclxuICogLSBvdmVycmlkZSBnZXRNb2RlbEZyb21Gb3JtLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTW9kZWxFZGl0b3JDb21wb25lbnRCYXNlPFQ+IHtcclxuICBwcml2YXRlIF90aGVzYXVyaT86IFRoZXNhdXJpU2V0O1xyXG4gIHByaXZhdGUgX21vZGVsPzogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHBhcnQncyBpdGVtIElELlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGl0ZW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcGFydCdzIHJvbGUgSUQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcm9sZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBtb2RlbCBiZWluZyBlZGl0ZWQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IG1vZGVsKCk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IG1vZGVsKHZhbHVlOiBUIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbk1vZGVsU2V0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZWRpdGVkIG1vZGVsIGlzIHNhdmVkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFQ+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgb3B0aW9uYWwgdGhlc2F1cmkgdG8gYmUgdXNlZCB3aXRoaW4gdGhpcyBlZGl0b3IuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHRoZXNhdXJpKCk6IFRoZXNhdXJpU2V0IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl90aGVzYXVyaTtcclxuICB9XHJcbiAgcHVibGljIHNldCB0aGVzYXVyaSh2YWx1ZTogVGhlc2F1cmlTZXQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3RoZXNhdXJpID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uVGhlc2F1cmlTZXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRydWUgdG8gZGlzYWJsZSB0aGUgZWRpdG9yLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciByZXF1ZXN0cyB0byBjbG9zZSB0aGUgZWRpdG9yLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBlZGl0b3JDbG9zZTogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlydHkgc3RhdGUgb2YgdGhlIGVkaXRlZCBkYXRhIGNoYW5nZXMuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRpcnR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSByb290IGZvcm0gb2YgdGhlIGVkaXRvci5cclxuICAgKiBZb3UgTVVTVCBpbnN0YW50aWF0ZSB0aGlzIGZvcm0gaW4gdGhlIGN0b3IuXHJcbiAgICovXHJcbiAgcHVibGljIGZvcm0/OiBGb3JtR3JvdXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBjdXJyZW50IHVzZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHVzZXI/OiBVc2VyO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgdXNlciBhdXRob3JpemF0aW9uIGxldmVsICgwLTQpLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB1c2VyTGV2ZWw6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhKd3RTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG4gICAgdGhpcy5lZGl0b3JDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgdGhpcy5kaXJ0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAgIHRoaXMudXNlckxldmVsID0gdGhpcy5nZXRDdXJyZW50VXNlckxldmVsKCk7XHJcblxyXG4gICAgX2F1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyJC5zdWJzY3JpYmUoKHVzZXI6IFVzZXIgfCBudWxsKSA9PiB7XHJcbiAgICAgIHRoaXMudXBkYXRlVXNlclByb3BlcnRpZXModXNlcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgYXV0aG9yaXphdGlvbiBsZXZlbCBvZiB0aGUgY3VycmVudCB1c2VyIGlmIGFueS5cclxuICAgKiBAcmV0dXJucyA0LTEgZm9yIGFkbWluLCBlZGl0b3IsIG9wZXJhdG9yLCB2aXNpdG9yOyBlbHNlIDAuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRDdXJyZW50VXNlckxldmVsKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCB1c2VyID0gdGhpcy5fYXV0aFNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZTtcclxuICAgIGlmICghdXNlciB8fCAhdXNlci5yb2xlcykge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIGlmICh1c2VyLnJvbGVzLmluZGV4T2YoJ2FkbWluJykgPiAtMSkge1xyXG4gICAgICByZXR1cm4gNDtcclxuICAgIH1cclxuICAgIGlmICh1c2VyLnJvbGVzLmluZGV4T2YoJ2VkaXRvcicpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIDM7XHJcbiAgICB9XHJcbiAgICBpZiAodXNlci5yb2xlcy5pbmRleE9mKCdvcGVyYXRvcicpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIDI7XHJcbiAgICB9XHJcbiAgICBpZiAodXNlci5yb2xlcy5pbmRleE9mKCd2aXNpdG9yJykgPiAtMSkge1xyXG4gICAgICByZXR1cm4gMTtcclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVVc2VyUHJvcGVydGllcyh1c2VyOiBVc2VyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKCF1c2VyKSB7XHJcbiAgICAgIHRoaXMudXNlciA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy51c2VyTGV2ZWwgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgICAgdGhpcy51c2VyTGV2ZWwgPSB0aGlzLmdldEN1cnJlbnRVc2VyTGV2ZWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGVkaXRvci4gWW91IE1VU1QgY2FsbCB0aGlzIGluIHlvdXIgT25Jbml0LlxyXG4gICAqIFRoaXMgaW5pdGlhbGl6ZXMgdGhlIHRoZXNhdXJpIGFuZCBzZXRzIHRoZSBkYXRhIG1vZGVsLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpbml0RWRpdG9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRoZXNhdXJpU2V0KCk7XHJcbiAgICB0aGlzLm9uTW9kZWxTZXQodGhpcy5fbW9kZWwpO1xyXG5cclxuICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgZXh0cmFjdFByaXN0aW5lQ2hhbmdlcyh0aGlzLmZvcm0pLnN1YnNjcmliZSgocCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGlydHlDaGFuZ2UuZW1pdCghcCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBtb2RlbCBwcm9wZXJ0eSBhbmQgZW1pdCB0aGUgY29ycmVzcG9uZGluZ1xyXG4gICAqIG1vZGVsQ2hhbmdlIGV2ZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1vZGVsIFRoZSBtb2RlbC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdXBkYXRlTW9kZWwobW9kZWw6IFQpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gbW9kZWw7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW52b2tlZCB3aGVuZXZlciB0aGUgbW9kZWwgcHJvcGVydHkgaXMgc2V0ICg9ZGF0YSBjb21lcyBmcm9tIGlucHV0IG1vZGVsXHJcbiAgICogcHJvcGVydHkpLCB1bmxlc3Mgc2V0dGluZyBpdCB2aWEgdXBkYXRlTW9kZWwuIEltcGxlbWVudCB0byB1cGRhdGUgdGhlIGZvcm1cclxuICAgKiBjb250cm9scyB0byByZWZsZWN0IHRoZSBuZXcgbW9kZWwgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBtb2RlbCBUaGUgbW9kZWwgc2V0LCBvciB1bmRlZmluZWQuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9uTW9kZWxTZXQobW9kZWw/OiBUKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogSW52b2tlZCB3aGVuZXZlciB0aGUgdGhlc2F1cmkgcHJvcGVydHkgaXMgc2V0LiBPdmVycmlkZSB0byB0YWtlXHJcbiAgICogY3VzdG9tIGFjdGlvbnMsIHR5cGljYWxseSB0byBzZXQgc29tZSBib3VuZCBwcm9wZXJ0aWVzLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvblRoZXNhdXJpU2V0KCk6IHZvaWQge31cclxuXHJcbiAgLyoqXHJcbiAgICogSW1wbGVtZW50IGluIGRlcml2ZWQgY2xhc3NlcyB0byBnZXQgdGhlIG1vZGVsIGZyb20gZm9ybSdzIGNvbnRyb2xzLlxyXG4gICAqIFRoaXMgaXMgdXNlZCB3aGVuIHNhdmluZyAoPWRhdGEgZ29lcyB0byB0aGUgb3V0cHV0IG1vZGVsQ2hhbmdlIGV2ZW50KS5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0TW9kZWxGcm9tRm9ybSgpOiBUO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0IGEgcmVxdWVzdCB0byBjbG9zZSB0aGUgZWRpdG9yLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdG9yQ2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2F2ZSB0aGUgZWRpdGVkIGRhdGEgaWYgdmFsaWQuIFRoaXMgaW52b2tlcyBnZXRNb2RlbEZyb21Gb3JtIHRvIGdldFxyXG4gICAqIHRoZSBtb2RlbCBmcm9tIHRoZSBmb3JtJ3MgY29udHJvbHMsIHVwZGF0ZXMgdGhlIHVuZGVybHlpbmcgbW9kZWwsXHJcbiAgICogbWFya3MgdGhlIHJvb3QgZm9ybSBhcyBwcmlzdGluZSwgYW5kIGVtaXRzIGRpcnR5Q2hhbmdlKGZhbHNlKS5cclxuICAgKi9cclxuICBwdWJsaWMgc2F2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm0/LmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0TW9kZWxGcm9tRm9ybSgpO1xyXG4gICAgdGhpcy51cGRhdGVNb2RlbChwYXJ0KTtcclxuICAgIC8vIHRoZSBmb3JtIGlzIG5vIG1vcmUgZGlydHlcclxuICAgIHRoaXMuZm9ybT8ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIHRoaXMuZGlydHlDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -127,9 +127,9 @@ export class MultiEntrySelectorComponent {
|
|
|
127
127
|
this.selectionChange.emit(this.getSelectedIds());
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
MultiEntrySelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
131
|
-
MultiEntrySelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
130
|
+
MultiEntrySelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MultiEntrySelectorComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
131
|
+
MultiEntrySelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: MultiEntrySelectorComponent, selector: "cadmus-multi-entry-selector", inputs: { selectedIds: "selectedIds", entries: "entries", numbering: "numbering", toolbar: "toolbar" }, outputs: { selectionChange: "selectionChange" }, ngImport: i0, template: "<form [formGroup]=\"form\" *ngIf=\"entries?.length\">\r\n <div *ngIf=\"toolbar\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Toggle all\"\r\n (click)=\"toggleAll()\"\r\n >\r\n <mat-icon>published_with_changes</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n color=\"primary\"\r\n mat-icon-button\r\n matTooltip=\"Select all\"\r\n (click)=\"selectAll()\"\r\n >\r\n <mat-icon>done_all</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Deselect all\"\r\n color=\"warn\"\r\n (click)=\"deselectAll()\"\r\n >\r\n <mat-icon>remove_done</mat-icon>\r\n </button>\r\n </div>\r\n <div formArrayName=\"entriesArr\" class=\"cols\">\r\n <div *ngFor=\"let item of entriesArr.controls; let i = index\">\r\n <!-- child form -->\r\n <div [formGroupName]=\"i\">\r\n <span class=\"numbering\" *ngIf=\"numbering\">{{ i + 1 }}.</span>\r\n <mat-checkbox formControlName=\"entry\">{{\r\n $any(entries)[i].value\r\n }}</mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".numbering{color:silver;margin-right:6px;font-size:95%}.cols{column-count:4;column-width:250px;column-rule:1px solid #ddd}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MultiEntrySelectorComponent, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
134
|
args: [{ selector: 'cadmus-multi-entry-selector', template: "<form [formGroup]=\"form\" *ngIf=\"entries?.length\">\r\n <div *ngIf=\"toolbar\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Toggle all\"\r\n (click)=\"toggleAll()\"\r\n >\r\n <mat-icon>published_with_changes</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n color=\"primary\"\r\n mat-icon-button\r\n matTooltip=\"Select all\"\r\n (click)=\"selectAll()\"\r\n >\r\n <mat-icon>done_all</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Deselect all\"\r\n color=\"warn\"\r\n (click)=\"deselectAll()\"\r\n >\r\n <mat-icon>remove_done</mat-icon>\r\n </button>\r\n </div>\r\n <div formArrayName=\"entriesArr\" class=\"cols\">\r\n <div *ngFor=\"let item of entriesArr.controls; let i = index\">\r\n <!-- child form -->\r\n <div [formGroupName]=\"i\">\r\n <span class=\"numbering\" *ngIf=\"numbering\">{{ i + 1 }}.</span>\r\n <mat-checkbox formControlName=\"entry\">{{\r\n $any(entries)[i].value\r\n }}</mat-checkbox>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".numbering{color:silver;margin-right:6px;font-size:95%}.cols{column-count:4;column-width:250px;column-rule:1px solid #ddd}\n"] }]
|
|
135
135
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { selectedIds: [{
|
|
@@ -85,9 +85,9 @@ export class PartBadgeComponent {
|
|
|
85
85
|
this.contrastColor = this._colorService.getContrastColor(this.color);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
PartBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
89
|
-
PartBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
88
|
+
PartBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: PartBadgeComponent, deps: [{ token: i1.FacetService }, { token: i2.ColorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
PartBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: PartBadgeComponent, selector: "cadmus-part-badge", inputs: { badgeType: "badgeType", typeThesaurus: "typeThesaurus", facetDefinition: "facetDefinition", partTypeIds: "partTypeIds" }, ngImport: i0, template: "<span class=\"part-badge\"\r\n [style.background-color]=\"color\"\r\n [style.color]=\"contrastColor\"\r\n *ngIf=\"badgeType !== 2\"\r\n>\r\n {{ typeName }}\r\n</span>\r\n<span class=\"role-badge\" *ngIf=\"badgeType !== 1 && roleName\">\r\n {{ roleName }}\r\n</span>\r\n", styles: [".part-badge{padding:4px;border-radius:6px}.role-badge{padding:4px;border:1px solid silver;border-radius:6px}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: PartBadgeComponent, decorators: [{
|
|
91
91
|
type: Component,
|
|
92
92
|
args: [{ selector: 'cadmus-part-badge', template: "<span class=\"part-badge\"\r\n [style.background-color]=\"color\"\r\n [style.color]=\"contrastColor\"\r\n *ngIf=\"badgeType !== 2\"\r\n>\r\n {{ typeName }}\r\n</span>\r\n<span class=\"role-badge\" *ngIf=\"badgeType !== 1 && roleName\">\r\n {{ roleName }}\r\n</span>\r\n", styles: [".part-badge{padding:4px;border-radius:6px}.role-badge{padding:4px;border:1px solid silver;border-radius:6px}\n"] }]
|
|
93
93
|
}], ctorParameters: function () { return [{ type: i1.FacetService }, { type: i2.ColorService }]; }, propDecorators: { badgeType: [{
|
|
@@ -203,9 +203,9 @@ export class ThesaurusTreeComponent {
|
|
|
203
203
|
return this.foundNodes?.length > 0 && this.foundNodes.indexOf(node) > -1;
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
|
-
ThesaurusTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
207
|
-
ThesaurusTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
206
|
+
ThesaurusTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ThesaurusTreeComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
207
|
+
ThesaurusTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ThesaurusTreeComponent, selector: "cadmus-thesaurus-tree", inputs: { entries: "entries", rootLabel: "rootLabel", renderLabel: "renderLabel" }, outputs: { entryChange: "entryChange" }, ngImport: i0, template: "<form [formGroup]=\"form\" (submit)=\"find()\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Expand all\"\r\n (click)=\"expandAll()\"\r\n >\r\n <mat-icon>unfold_more</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Collapse all\"\r\n (click)=\"collapseAll()\"\r\n >\r\n <mat-icon>unfold_less</mat-icon>\r\n </button>\r\n <mat-form-field>\r\n <input matInput [formControl]=\"filter\" placeholder=\"find\" />\r\n <button\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"resetFilter()\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n <span\r\n *ngIf=\"foundNodes\"\r\n [ngClass]=\"{\r\n 'found-count': foundNodes?.length,\r\n 'not-found-count': foundNodes?.length === 0\r\n }\"\r\n >{{ foundNodes?.length }}</span\r\n >\r\n</form>\r\n<mat-tree\r\n [dataSource]=\"treeDataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"th-tree\"\r\n>\r\n <!-- leaf node -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\r\n <li>\r\n <div class=\"mat-tree-node\">\r\n <a\r\n mat-button\r\n (click)=\"onTreeNodeClick(node)\"\r\n [class.hilite]=\"isFoundNode(node)\"\r\n >\r\n {{ node.label }}\r\n </a>\r\n </div>\r\n </li>\r\n </mat-tree-node>\r\n\r\n <!-- root node -->\r\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: isRoot\">\r\n <div class=\"mat-tree-node\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.label\"\r\n >\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n {{ node.label }}\r\n </div>\r\n <ul class=\"tree-nested-node\">\r\n <div *ngIf=\"treeControl.isExpanded(node)\">\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </ul>\r\n </mat-nested-tree-node>\r\n\r\n <!-- parent node -->\r\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChildren\">\r\n <li class=\"tree-container\">\r\n <div class=\"mat-tree-node\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.label\"\r\n >\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <a mat-button (click)=\"onTreeNodeClick(node)\">\r\n {{ node.label }}\r\n </a>\r\n </div>\r\n <ul class=\"tree-nested-node\">\r\n <div *ngIf=\"treeControl.isExpanded(node)\">\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </ul>\r\n </li>\r\n </mat-nested-tree-node>\r\n</mat-tree>\r\n", styles: [".th-tree-progress-bar{margin-left:30px}.th-tree-nested-node{padding-left:30px}mat-tree{margin-left:40px}.mat-tree-node{padding:0;background-color:#fff}.mat-nested-tree-node{top:-24px}ul,li{list-style:none;margin:0;padding:0}li.th-tree-container{border-bottom:0}ul{padding-left:40px}li{padding-left:40px;border:1px dotted grey;border-width:0 0 1px 1px;position:relative;top:-24px}li.mat-tree-node,li div{margin:0;position:relative;top:24px}li ul{border-top:1px dotted grey;margin-left:-40px;padding-left:60px}.mat-nested-tree-node:last-child ul{border-left:1px solid white;margin-left:-41px}.mat-icon-button{z-index:100}span.found-count{margin:0 4px;padding:2px 4px;color:#fff;background-color:#0cc078;border-radius:6px}span.not-found-count{margin:0 4px;padding:2px 4px;color:#fff;background-color:#fb6962;border-radius:6px}.hilite{background-color:#fdfd96}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { type: i2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { type: i5.MatTreeNode, selector: "mat-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { type: i5.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { type: i5.MatNestedTreeNode, selector: "mat-nested-tree-node", inputs: ["role", "disabled", "tabIndex", "matNestedTreeNode"], exportAs: ["matNestedTreeNode"] }, { type: i5.MatTreeNodeOutlet, selector: "[matTreeNodeOutlet]" }] });
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ThesaurusTreeComponent, decorators: [{
|
|
209
209
|
type: Component,
|
|
210
210
|
args: [{ selector: 'cadmus-thesaurus-tree', template: "<form [formGroup]=\"form\" (submit)=\"find()\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Expand all\"\r\n (click)=\"expandAll()\"\r\n >\r\n <mat-icon>unfold_more</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTooltip=\"Collapse all\"\r\n (click)=\"collapseAll()\"\r\n >\r\n <mat-icon>unfold_less</mat-icon>\r\n </button>\r\n <mat-form-field>\r\n <input matInput [formControl]=\"filter\" placeholder=\"find\" />\r\n <button\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"resetFilter()\"\r\n >\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n <span\r\n *ngIf=\"foundNodes\"\r\n [ngClass]=\"{\r\n 'found-count': foundNodes?.length,\r\n 'not-found-count': foundNodes?.length === 0\r\n }\"\r\n >{{ foundNodes?.length }}</span\r\n >\r\n</form>\r\n<mat-tree\r\n [dataSource]=\"treeDataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"th-tree\"\r\n>\r\n <!-- leaf node -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle>\r\n <li>\r\n <div class=\"mat-tree-node\">\r\n <a\r\n mat-button\r\n (click)=\"onTreeNodeClick(node)\"\r\n [class.hilite]=\"isFoundNode(node)\"\r\n >\r\n {{ node.label }}\r\n </a>\r\n </div>\r\n </li>\r\n </mat-tree-node>\r\n\r\n <!-- root node -->\r\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: isRoot\">\r\n <div class=\"mat-tree-node\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.label\"\r\n >\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n {{ node.label }}\r\n </div>\r\n <ul class=\"tree-nested-node\">\r\n <div *ngIf=\"treeControl.isExpanded(node)\">\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </ul>\r\n </mat-nested-tree-node>\r\n\r\n <!-- parent node -->\r\n <mat-nested-tree-node *matTreeNodeDef=\"let node; when: hasChildren\">\r\n <li class=\"tree-container\">\r\n <div class=\"mat-tree-node\">\r\n <button\r\n type=\"button\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [attr.aria-label]=\"'Toggle ' + node.label\"\r\n >\r\n <mat-icon>\r\n {{ treeControl.isExpanded(node) ? \"expand_more\" : \"chevron_right\" }}\r\n </mat-icon>\r\n </button>\r\n <a mat-button (click)=\"onTreeNodeClick(node)\">\r\n {{ node.label }}\r\n </a>\r\n </div>\r\n <ul class=\"tree-nested-node\">\r\n <div *ngIf=\"treeControl.isExpanded(node)\">\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </ul>\r\n </li>\r\n </mat-nested-tree-node>\r\n</mat-tree>\r\n", styles: [".th-tree-progress-bar{margin-left:30px}.th-tree-nested-node{padding-left:30px}mat-tree{margin-left:40px}.mat-tree-node{padding:0;background-color:#fff}.mat-nested-tree-node{top:-24px}ul,li{list-style:none;margin:0;padding:0}li.th-tree-container{border-bottom:0}ul{padding-left:40px}li{padding-left:40px;border:1px dotted grey;border-width:0 0 1px 1px;position:relative;top:-24px}li.mat-tree-node,li div{margin:0;position:relative;top:24px}li ul{border-top:1px dotted grey;margin-left:-40px;padding-left:60px}.mat-nested-tree-node:last-child ul{border-left:1px solid white;margin-left:-41px}.mat-icon-button{z-index:100}span.found-count{margin:0 4px;padding:2px 4px;color:#fff;background-color:#0cc078;border-radius:6px}span.not-found-count{margin:0 4px;padding:2px 4px;color:#fff;background-color:#fb6962;border-radius:6px}.hilite{background-color:#fdfd96}\n"] }]
|
|
211
211
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { entries: [{
|
|
@@ -56,9 +56,9 @@ export class ColorService {
|
|
|
56
56
|
: 'white';
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
ColorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
60
|
-
ColorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
59
|
+
ColorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ColorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
ColorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ColorService, providedIn: 'root' });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ColorService, decorators: [{
|
|
62
62
|
type: Injectable,
|
|
63
63
|
args: [{
|
|
64
64
|
providedIn: 'root',
|