@myrmidon/cadmus-ui 0.0.33 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/esm2020/lib/cadmus-ui.module.mjs +148 -0
- package/esm2020/lib/components/close-save-buttons/close-save-buttons.component.mjs +27 -0
- package/esm2020/lib/components/decorated-token-text/decorated-token-text.component.mjs +67 -0
- package/esm2020/lib/components/error-list/error-list.component.mjs +17 -0
- package/esm2020/lib/components/facet-badge/facet-badge.component.mjs +102 -0
- package/esm2020/lib/components/flags-badge/flags-badge.component.mjs +53 -0
- package/esm2020/lib/components/inplace-editor-component-base.mjs +97 -0
- package/esm2020/lib/components/layer-hints/layer-hints.component.mjs +104 -0
- package/esm2020/lib/components/lookup-pin/lookup-pin.component.mjs +135 -0
- package/esm2020/lib/components/model-editor-component-base.mjs +171 -0
- package/esm2020/lib/components/multi-entry-selector/multi-entry-selector.component.mjs +146 -0
- package/esm2020/lib/components/part-badge/part-badge.component.mjs +102 -0
- package/esm2020/lib/components/physical-dimension/physical-dimension.component.mjs +103 -0
- package/esm2020/lib/components/physical-size/physical-size.component.mjs +226 -0
- package/esm2020/lib/components/thesaurus-tree/thesaurus-tree.component.mjs +220 -0
- package/{esm2015/lib/services/color.service.js → esm2020/lib/services/color.service.mjs} +9 -7
- package/{esm2015/lib/utils.js → esm2020/lib/utils.mjs} +0 -0
- package/esm2020/lib/validators/custom-validators.mjs +35 -0
- package/{esm2015/lib/validators/json-validators.js → esm2020/lib/validators/json-validators.mjs} +0 -0
- package/{esm2015/myrmidon-cadmus-ui.js → esm2020/myrmidon-cadmus-ui.mjs} +0 -0
- package/esm2020/public-api.mjs +23 -0
- package/fesm2015/myrmidon-cadmus-ui.mjs +1820 -0
- package/fesm2015/myrmidon-cadmus-ui.mjs.map +1 -0
- package/fesm2020/myrmidon-cadmus-ui.mjs +1803 -0
- package/fesm2020/myrmidon-cadmus-ui.mjs.map +1 -0
- package/lib/cadmus-ui.module.d.ts +30 -0
- package/lib/components/close-save-buttons/close-save-buttons.component.d.ts +5 -2
- package/lib/components/decorated-token-text/decorated-token-text.component.d.ts +8 -5
- package/lib/components/error-list/error-list.component.d.ts +4 -1
- package/lib/components/facet-badge/facet-badge.component.d.ts +4 -1
- package/lib/components/flags-badge/flags-badge.component.d.ts +3 -0
- package/lib/components/inplace-editor-component-base.d.ts +10 -7
- package/lib/components/layer-hints/layer-hints.component.d.ts +8 -5
- package/lib/components/lookup-pin/lookup-pin.component.d.ts +5 -2
- package/lib/components/model-editor-component-base.d.ts +23 -25
- package/lib/components/multi-entry-selector/multi-entry-selector.component.d.ts +4 -1
- package/lib/components/part-badge/part-badge.component.d.ts +12 -9
- package/lib/components/physical-dimension/physical-dimension.component.d.ts +14 -11
- package/lib/components/physical-size/physical-size.component.d.ts +12 -10
- package/lib/components/thesaurus-tree/thesaurus-tree.component.d.ts +7 -4
- package/lib/services/color.service.d.ts +3 -0
- package/myrmidon-cadmus-ui.d.ts +1 -0
- package/package.json +25 -16
- package/public-api.d.ts +2 -11
- package/bundles/myrmidon-cadmus-ui.umd.js +0 -3109
- package/bundles/myrmidon-cadmus-ui.umd.js.map +0 -1
- package/esm2015/lib/cadmus-ui.module.js +0 -93
- package/esm2015/lib/components/close-save-buttons/close-save-buttons.component.js +0 -23
- package/esm2015/lib/components/confirm-dialog/confirm-dialog.component.js +0 -27
- package/esm2015/lib/components/datation-editor/datation-editor.component.js +0 -85
- package/esm2015/lib/components/decorated-token-text/decorated-token-text.component.js +0 -64
- package/esm2015/lib/components/doc-references/doc-references.component.js +0 -188
- package/esm2015/lib/components/error-list/error-list.component.js +0 -18
- package/esm2015/lib/components/external-ids/external-ids.component.js +0 -179
- package/esm2015/lib/components/facet-badge/facet-badge.component.js +0 -102
- package/esm2015/lib/components/flags-badge/flags-badge.component.js +0 -51
- package/esm2015/lib/components/historical-date-editor/historical-date-editor.component.js +0 -141
- package/esm2015/lib/components/inplace-editor-component-base.js +0 -96
- package/esm2015/lib/components/layer-hints/layer-hints.component.js +0 -96
- package/esm2015/lib/components/login/login.component.js +0 -55
- package/esm2015/lib/components/lookup-pin/lookup-pin.component.js +0 -127
- package/esm2015/lib/components/model-editor-component-base.js +0 -151
- package/esm2015/lib/components/multi-entry-selector/multi-entry-selector.component.js +0 -140
- package/esm2015/lib/components/part-badge/part-badge.component.js +0 -103
- package/esm2015/lib/components/password-strength-bar/password-strength-bar.component.js +0 -83
- package/esm2015/lib/components/physical-dimension/physical-dimension.component.js +0 -96
- package/esm2015/lib/components/physical-size/physical-size.component.js +0 -223
- package/esm2015/lib/components/thesaurus-tree/thesaurus-tree.component.js +0 -217
- package/esm2015/lib/pipes/safe-html.pipe.js +0 -33
- package/esm2015/lib/services/dialog.service.js +0 -39
- package/esm2015/lib/validators/custom-validators.js +0 -34
- package/esm2015/public-api.js +0 -34
- package/fesm2015/myrmidon-cadmus-ui.js +0 -2526
- package/fesm2015/myrmidon-cadmus-ui.js.map +0 -1
- package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +0 -12
- package/lib/components/datation-editor/datation-editor.component.d.ts +0 -30
- package/lib/components/doc-references/doc-references.component.d.ts +0 -53
- package/lib/components/external-ids/external-ids.component.d.ts +0 -51
- package/lib/components/historical-date-editor/historical-date-editor.component.d.ts +0 -33
- package/lib/components/login/login.component.d.ts +0 -21
- package/lib/components/password-strength-bar/password-strength-bar.component.d.ts +0 -21
- package/lib/pipes/safe-html.pipe.d.ts +0 -7
- package/lib/services/dialog.service.d.ts +0 -16
- package/myrmidon-cadmus-ui.metadata.json +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CadmusUi
|
|
2
2
|
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.0.0.
|
|
4
4
|
|
|
5
5
|
## Code scaffolding
|
|
6
6
|
|
|
@@ -21,4 +21,4 @@ Run `ng test cadmus-ui` to execute the unit tests via [Karma](https://karma-runn
|
|
|
21
21
|
|
|
22
22
|
## Further help
|
|
23
23
|
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
// material
|
|
6
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
7
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
8
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
9
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
10
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
11
|
+
import { MatInputModule } from '@angular/material/input';
|
|
12
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
13
|
+
import { MatTreeModule } from '@angular/material/tree';
|
|
14
|
+
// Monaco
|
|
15
|
+
import { MonacoEditorModule } from 'ngx-monaco-editor';
|
|
16
|
+
// Cadmus
|
|
17
|
+
import { CadmusCoreModule } from '@myrmidon/cadmus-core';
|
|
18
|
+
import { NgToolsModule } from '@myrmidon/ng-tools';
|
|
19
|
+
import { CloseSaveButtonsComponent } from './components/close-save-buttons/close-save-buttons.component';
|
|
20
|
+
import { ErrorListComponent } from './components/error-list/error-list.component';
|
|
21
|
+
import { FacetBadgeComponent } from './components/facet-badge/facet-badge.component';
|
|
22
|
+
import { FlagsBadgeComponent } from './components/flags-badge/flags-badge.component';
|
|
23
|
+
import { DecoratedTokenTextComponent } from './components/decorated-token-text/decorated-token-text.component';
|
|
24
|
+
import { LayerHintsComponent } from './components/layer-hints/layer-hints.component';
|
|
25
|
+
import { LookupPinComponent } from './components/lookup-pin/lookup-pin.component';
|
|
26
|
+
import { MultiEntrySelectorComponent } from './components/multi-entry-selector/multi-entry-selector.component';
|
|
27
|
+
import { PartBadgeComponent } from './components/part-badge/part-badge.component';
|
|
28
|
+
import { PhysicalDimensionComponent } from './components/physical-dimension/physical-dimension.component';
|
|
29
|
+
import { PhysicalSizeComponent } from './components/physical-size/physical-size.component';
|
|
30
|
+
import { ThesaurusTreeComponent } from './components/thesaurus-tree/thesaurus-tree.component';
|
|
31
|
+
import * as i0 from "@angular/core";
|
|
32
|
+
export class CadmusUiModule {
|
|
33
|
+
}
|
|
34
|
+
CadmusUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CadmusUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
35
|
+
CadmusUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CadmusUiModule, declarations: [CloseSaveButtonsComponent,
|
|
36
|
+
DecoratedTokenTextComponent,
|
|
37
|
+
ErrorListComponent,
|
|
38
|
+
FacetBadgeComponent,
|
|
39
|
+
FlagsBadgeComponent,
|
|
40
|
+
LayerHintsComponent,
|
|
41
|
+
LookupPinComponent,
|
|
42
|
+
MultiEntrySelectorComponent,
|
|
43
|
+
PartBadgeComponent,
|
|
44
|
+
PhysicalDimensionComponent,
|
|
45
|
+
PhysicalSizeComponent,
|
|
46
|
+
ThesaurusTreeComponent], imports: [CommonModule,
|
|
47
|
+
FormsModule,
|
|
48
|
+
RouterModule,
|
|
49
|
+
ReactiveFormsModule,
|
|
50
|
+
// material
|
|
51
|
+
MatAutocompleteModule,
|
|
52
|
+
MatButtonModule,
|
|
53
|
+
MatCheckboxModule,
|
|
54
|
+
MatFormFieldModule,
|
|
55
|
+
MatIconModule,
|
|
56
|
+
MatInputModule,
|
|
57
|
+
MatTreeModule,
|
|
58
|
+
MatTooltipModule,
|
|
59
|
+
// monaco
|
|
60
|
+
MonacoEditorModule,
|
|
61
|
+
// cadmus
|
|
62
|
+
NgToolsModule,
|
|
63
|
+
CadmusCoreModule], exports: [CloseSaveButtonsComponent,
|
|
64
|
+
DecoratedTokenTextComponent,
|
|
65
|
+
ErrorListComponent,
|
|
66
|
+
FacetBadgeComponent,
|
|
67
|
+
FlagsBadgeComponent,
|
|
68
|
+
LayerHintsComponent,
|
|
69
|
+
LookupPinComponent,
|
|
70
|
+
MultiEntrySelectorComponent,
|
|
71
|
+
PartBadgeComponent,
|
|
72
|
+
PhysicalDimensionComponent,
|
|
73
|
+
PhysicalSizeComponent,
|
|
74
|
+
ThesaurusTreeComponent] });
|
|
75
|
+
CadmusUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CadmusUiModule, imports: [[
|
|
76
|
+
CommonModule,
|
|
77
|
+
FormsModule,
|
|
78
|
+
RouterModule,
|
|
79
|
+
ReactiveFormsModule,
|
|
80
|
+
// material
|
|
81
|
+
MatAutocompleteModule,
|
|
82
|
+
MatButtonModule,
|
|
83
|
+
MatCheckboxModule,
|
|
84
|
+
MatFormFieldModule,
|
|
85
|
+
MatIconModule,
|
|
86
|
+
MatInputModule,
|
|
87
|
+
MatTreeModule,
|
|
88
|
+
MatTooltipModule,
|
|
89
|
+
// monaco
|
|
90
|
+
MonacoEditorModule,
|
|
91
|
+
// cadmus
|
|
92
|
+
NgToolsModule,
|
|
93
|
+
CadmusCoreModule,
|
|
94
|
+
]] });
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CadmusUiModule, decorators: [{
|
|
96
|
+
type: NgModule,
|
|
97
|
+
args: [{
|
|
98
|
+
imports: [
|
|
99
|
+
CommonModule,
|
|
100
|
+
FormsModule,
|
|
101
|
+
RouterModule,
|
|
102
|
+
ReactiveFormsModule,
|
|
103
|
+
// material
|
|
104
|
+
MatAutocompleteModule,
|
|
105
|
+
MatButtonModule,
|
|
106
|
+
MatCheckboxModule,
|
|
107
|
+
MatFormFieldModule,
|
|
108
|
+
MatIconModule,
|
|
109
|
+
MatInputModule,
|
|
110
|
+
MatTreeModule,
|
|
111
|
+
MatTooltipModule,
|
|
112
|
+
// monaco
|
|
113
|
+
MonacoEditorModule,
|
|
114
|
+
// cadmus
|
|
115
|
+
NgToolsModule,
|
|
116
|
+
CadmusCoreModule,
|
|
117
|
+
],
|
|
118
|
+
declarations: [
|
|
119
|
+
CloseSaveButtonsComponent,
|
|
120
|
+
DecoratedTokenTextComponent,
|
|
121
|
+
ErrorListComponent,
|
|
122
|
+
FacetBadgeComponent,
|
|
123
|
+
FlagsBadgeComponent,
|
|
124
|
+
LayerHintsComponent,
|
|
125
|
+
LookupPinComponent,
|
|
126
|
+
MultiEntrySelectorComponent,
|
|
127
|
+
PartBadgeComponent,
|
|
128
|
+
PhysicalDimensionComponent,
|
|
129
|
+
PhysicalSizeComponent,
|
|
130
|
+
ThesaurusTreeComponent,
|
|
131
|
+
],
|
|
132
|
+
exports: [
|
|
133
|
+
CloseSaveButtonsComponent,
|
|
134
|
+
DecoratedTokenTextComponent,
|
|
135
|
+
ErrorListComponent,
|
|
136
|
+
FacetBadgeComponent,
|
|
137
|
+
FlagsBadgeComponent,
|
|
138
|
+
LayerHintsComponent,
|
|
139
|
+
LookupPinComponent,
|
|
140
|
+
MultiEntrySelectorComponent,
|
|
141
|
+
PartBadgeComponent,
|
|
142
|
+
PhysicalDimensionComponent,
|
|
143
|
+
PhysicalSizeComponent,
|
|
144
|
+
ThesaurusTreeComponent,
|
|
145
|
+
],
|
|
146
|
+
}]
|
|
147
|
+
}] });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FkbXVzLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy11aS9zcmMvbGliL2NhZG11cy11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxXQUFXO0FBQ1gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELFNBQVM7QUFDVCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RCxTQUFTO0FBQ1QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4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LGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQiwyQkFBMkI7d0JBQzNCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbi8vIG1hdGVyaWFsXHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRUcmVlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcblxyXG4vLyBNb25hY29cclxuaW1wb3J0IHsgTW9uYWNvRWRpdG9yTW9kdWxlIH0gZnJvbSAnbmd4LW1vbmFjby1lZGl0b3InO1xyXG5cclxuLy8gQ2FkbXVzXHJcbmltcG9ydCB7IENhZG11c0NvcmVNb2R1bGUgfSBmcm9tICdAbXlybWlkb24vY2FkbXVzLWNvcmUnO1xyXG5pbXBvcnQgeyBOZ1Rvb2xzTW9kdWxlIH0gZnJvbSAnQG15cm1pZG9uL25nLXRvb2xzJztcclxuXHJcbmltcG9ydCB7IENsb3NlU2F2ZUJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2xvc2Utc2F2ZS1idXR0b25zL2Nsb3NlLXNhdmUtYnV0dG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFcnJvckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXJyb3ItbGlzdC9lcnJvci1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhY2V0QmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtYmFkZ2UvZmFjZXQtYmFkZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmxhZ3NCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mbGFncy1iYWRnZS9mbGFncy1iYWRnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWNvcmF0ZWRUb2tlblRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGVjb3JhdGVkLXRva2VuLXRleHQvZGVjb3JhdGVkLXRva2VuLXRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGF5ZXJIaW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sYXllci1oaW50cy9sYXllci1oaW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb29rdXBQaW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9va3VwLXBpbi9sb29rdXAtcGluLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE11bHRpRW50cnlTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tdWx0aS1lbnRyeS1zZWxlY3Rvci9tdWx0aS1lbnRyeS1zZWxlY3Rvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYXJ0QmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFydC1iYWRnZS9wYXJ0LWJhZGdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBoeXNpY2FsRGltZW5zaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BoeXNpY2FsLWRpbWVuc2lvbi9waHlzaWNhbC1kaW1lbnNpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGh5c2ljYWxTaXplQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BoeXNpY2FsLXNpemUvcGh5c2ljYWwtc2l6ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaGVzYXVydXNUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RoZXNhdXJ1cy10cmVlL3RoZXNhdXJ1cy10cmVlLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIC8vIG1hdGVyaWFsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdFRyZWVNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgLy8gbW9uYWNvXHJcbiAgICBNb25hY29FZGl0b3JNb2R1bGUsXHJcbiAgICAvLyBjYWRtdXNcclxuICAgIE5nVG9vbHNNb2R1bGUsXHJcbiAgICBDYWRtdXNDb3JlTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDbG9zZVNhdmVCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgRGVjb3JhdGVkVG9rZW5UZXh0Q29tcG9uZW50LFxyXG4gICAgRXJyb3JMaXN0Q29tcG9uZW50LFxyXG4gICAgRmFjZXRCYWRnZUNvbXBvbmVudCxcclxuICAgIEZsYWdzQmFkZ2VDb21wb25lbnQsXHJcbiAgICBMYXllckhpbnRzQ29tcG9uZW50LFxyXG4gICAgTG9va3VwUGluQ29tcG9uZW50LFxyXG4gICAgTXVsdGlFbnRyeVNlbGVjdG9yQ29tcG9uZW50LFxyXG4gICAgUGFydEJhZGdlQ29tcG9uZW50LFxyXG4gICAgUGh5c2ljYWxEaW1lbnNpb25Db21wb25lbnQsXHJcbiAgICBQaHlzaWNhbFNpemVDb21wb25lbnQsXHJcbiAgICBUaGVzYXVydXNUcmVlQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ2xvc2VTYXZlQnV0dG9uc0NvbXBvbmVudCxcclxuICAgIERlY29yYXRlZFRva2VuVGV4dENvbXBvbmVudCxcclxuICAgIEVycm9yTGlzdENvbXBvbmVudCxcclxuICAgIEZhY2V0QmFkZ2VDb21wb25lbnQsXHJcbiAgICBGbGFnc0JhZGdlQ29tcG9uZW50LFxyXG4gICAgTGF5ZXJIaW50c0NvbXBvbmVudCxcclxuICAgIExvb2t1cFBpbkNvbXBvbmVudCxcclxuICAgIE11bHRpRW50cnlTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIFBhcnRCYWRnZUNvbXBvbmVudCxcclxuICAgIFBoeXNpY2FsRGltZW5zaW9uQ29tcG9uZW50LFxyXG4gICAgUGh5c2ljYWxTaXplQ29tcG9uZW50LFxyXG4gICAgVGhlc2F1cnVzVHJlZUNvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FkbXVzVWlNb2R1bGUge31cclxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/button";
|
|
4
|
+
import * as i2 from "@angular/material/icon";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/material/tooltip";
|
|
7
|
+
export class CloseSaveButtonsComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.closeRequest = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
close() {
|
|
12
|
+
this.closeRequest.emit();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
CloseSaveButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CloseSaveButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
CloseSaveButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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.0.3", ngImport: i0, type: CloseSaveButtonsComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
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
|
+
}], ctorParameters: function () { return []; }, propDecorators: { form: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}], noSave: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], closeRequest: [{
|
|
25
|
+
type: Output
|
|
26
|
+
}] } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2Utc2F2ZS1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2NhZG11cy11aS9zcmMvbGliL2NvbXBvbmVudHMvY2xvc2Utc2F2ZS1idXR0b25zL2Nsb3NlLXNhdmUtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Nsb3NlLXNhdmUtYnV0dG9ucy9jbG9zZS1zYXZlLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyx5QkFBeUI7SUFTcEM7UUFDRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7O3NIQWZVLHlCQUF5QjswR0FBekIseUJBQXlCLHdKQ1J0QywrZ0JBdUJBOzJGRGZhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSwyQkFBMkI7MEVBTTlCLElBQUk7c0JBRFYsS0FBSztnQkFHQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2FkbXVzLWNsb3NlLXNhdmUtYnV0dG9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Nsb3NlLXNhdmUtYnV0dG9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2xvc2Utc2F2ZS1idXR0b25zLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xvc2VTYXZlQnV0dG9uc0NvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZm9ybT86IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBub1NhdmU/OiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VSZXF1ZXN0OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmNsb3NlUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VSZXF1ZXN0LmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1cIj5cclxuICA8YnV0dG9uXHJcbiAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICBjb2xvcj1cIndhcm5cIlxyXG4gICAgbWF0VG9vbHRpcD1cIkNsb3NlIHRoaXMgZWRpdG9yXCJcclxuICAgIChjbGljayk9XCJjbG9zZSgpXCJcclxuICA+XHJcbiAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgIGNsb3NlXHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvblxyXG4gICAgKm5nSWY9XCIhbm9TYXZlXCJcclxuICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXHJcbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgIG1hdFRvb2x0aXA9XCJTYXZlIGRhdGFcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxyXG4gICAgc2F2ZVxyXG4gIDwvYnV0dG9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Component, ViewChild, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@myrmidon/cadmus-core";
|
|
4
|
+
import * as i2 from "@myrmidon/ng-tools";
|
|
5
|
+
/**
|
|
6
|
+
* Decorated token-based text visualizer. This is used when editing
|
|
7
|
+
* token-based text layers.
|
|
8
|
+
*/
|
|
9
|
+
export class DecoratedTokenTextComponent {
|
|
10
|
+
constructor(_textLayerService) {
|
|
11
|
+
this._textLayerService = _textLayerService;
|
|
12
|
+
this._baseText = '';
|
|
13
|
+
this._locations = [];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The base text.
|
|
17
|
+
*/
|
|
18
|
+
get baseText() {
|
|
19
|
+
return this._baseText;
|
|
20
|
+
}
|
|
21
|
+
set baseText(value) {
|
|
22
|
+
this._baseText = value || '';
|
|
23
|
+
this.decorate();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The token-based locations of all the fragments in the layer.
|
|
27
|
+
*/
|
|
28
|
+
get locations() {
|
|
29
|
+
return this._locations;
|
|
30
|
+
}
|
|
31
|
+
set locations(value) {
|
|
32
|
+
this._locations = value || [];
|
|
33
|
+
this.decorate();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A selected token-based location.
|
|
37
|
+
*/
|
|
38
|
+
get selectedLocation() {
|
|
39
|
+
return this._selectedLoc;
|
|
40
|
+
}
|
|
41
|
+
set selectedLocation(value) {
|
|
42
|
+
this._selectedLoc = value;
|
|
43
|
+
this.decorate();
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
this.decorate();
|
|
47
|
+
}
|
|
48
|
+
decorate() {
|
|
49
|
+
this.text = this._textLayerService.render(this._baseText, this._locations, this._selectedLoc);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
DecoratedTokenTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DecoratedTokenTextComponent, deps: [{ token: i1.TextLayerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
DecoratedTokenTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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.0.3", ngImport: i0, type: DecoratedTokenTextComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
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
|
+
}], ctorParameters: function () { return [{ type: i1.TextLayerService }]; }, propDecorators: { _textElement: [{
|
|
58
|
+
type: ViewChild,
|
|
59
|
+
args: ['textElem']
|
|
60
|
+
}], baseText: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], locations: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], selectedLocation: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGVkLXRva2VuLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXVpL3NyYy9saWIvY29tcG9uZW50cy9kZWNvcmF0ZWQtdG9rZW4tdGV4dC9kZWNvcmF0ZWQtdG9rZW4tdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2RlY29yYXRlZC10b2tlbi10ZXh0L2RlY29yYXRlZC10b2tlbi10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUdoRjs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBNEN0QyxZQUFvQixpQkFBbUM7UUFBbkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNyRCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBekNEOztPQUVHO0lBQ0gsSUFDVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQVcsU0FBUyxDQUFDLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLGdCQUFnQixDQUFDLEtBQWdDO1FBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBU00sUUFBUTtRQUNiLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FDdkMsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7SUFDSixDQUFDOzt3SEEzRFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNlFDWnhDLCtFQUNBOzJGRFdhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw2QkFBNkI7dUdBS2hCLFlBQVk7c0JBQWxDLFNBQVM7dUJBQUMsVUFBVTtnQkFTVixRQUFRO3NCQURsQixLQUFLO2dCQWFLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBYUssZ0JBQWdCO3NCQUQxQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9rZW5Mb2NhdGlvbiwgVGV4dExheWVyU2VydmljZSB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcblxyXG4vKipcclxuICogRGVjb3JhdGVkIHRva2VuLWJhc2VkIHRleHQgdmlzdWFsaXplci4gVGhpcyBpcyB1c2VkIHdoZW4gZWRpdGluZ1xyXG4gKiB0b2tlbi1iYXNlZCB0ZXh0IGxheWVycy5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2FkbXVzLWRlY29yYXRlZC10b2tlbi10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVjb3JhdGVkLXRva2VuLXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlY29yYXRlZC10b2tlbi10ZXh0LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlY29yYXRlZFRva2VuVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgndGV4dEVsZW0nKSBfdGV4dEVsZW1lbnQ/OiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgX2Jhc2VUZXh0OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbG9jYXRpb25zOiBUb2tlbkxvY2F0aW9uW107XHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRMb2M/OiBUb2tlbkxvY2F0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgYmFzZSB0ZXh0LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBiYXNlVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VUZXh0O1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGJhc2VUZXh0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2Jhc2VUZXh0ID0gdmFsdWUgfHwgJyc7XHJcbiAgICB0aGlzLmRlY29yYXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgdG9rZW4tYmFzZWQgbG9jYXRpb25zIG9mIGFsbCB0aGUgZnJhZ21lbnRzIGluIHRoZSBsYXllci5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbG9jYXRpb25zKCk6IFRva2VuTG9jYXRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9jYXRpb25zO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGxvY2F0aW9ucyh2YWx1ZTogVG9rZW5Mb2NhdGlvbltdKSB7XHJcbiAgICB0aGlzLl9sb2NhdGlvbnMgPSB2YWx1ZSB8fCBbXTtcclxuICAgIHRoaXMuZGVjb3JhdGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgc2VsZWN0ZWQgdG9rZW4tYmFzZWQgbG9jYXRpb24uXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkTG9jYXRpb24oKTogVG9rZW5Mb2NhdGlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRMb2M7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRMb2NhdGlvbih2YWx1ZTogVG9rZW5Mb2NhdGlvbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRMb2MgPSB2YWx1ZTtcclxuICAgIHRoaXMuZGVjb3JhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0ZXh0Pzogc3RyaW5nOyAvLyByZW5kZXJlZCBIVE1MIHRleHRcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfdGV4dExheWVyU2VydmljZTogVGV4dExheWVyU2VydmljZSkge1xyXG4gICAgdGhpcy5fYmFzZVRleHQgPSAnJztcclxuICAgIHRoaXMuX2xvY2F0aW9ucyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWNvcmF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZWNvcmF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dCA9IHRoaXMuX3RleHRMYXllclNlcnZpY2UucmVuZGVyKFxyXG4gICAgICB0aGlzLl9iYXNlVGV4dCxcclxuICAgICAgdGhpcy5fbG9jYXRpb25zLFxyXG4gICAgICB0aGlzLl9zZWxlY3RlZExvY1xyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbaW5uZXJIdG1sXT1cInRleHQgfCBzYWZlSHRtbDogJ2h0bWwnXCIgaWQ9XCJ0ZXh0XCIgI3RleHRFbGVtPjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class ErrorListComponent {
|
|
5
|
+
constructor() { }
|
|
6
|
+
ngOnInit() {
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
ErrorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ErrorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
ErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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.0.3", ngImport: i0, type: ErrorListComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
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
|
+
}], ctorParameters: function () { return []; }, propDecorators: { errors: [{
|
|
15
|
+
type: Input
|
|
16
|
+
}] } });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Vycm9yLWxpc3QvZXJyb3ItbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Vycm9yLWxpc3QvZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3pELE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsZ0JBQWdCLENBQUM7SUFFVixRQUFRO0lBQ2YsQ0FBQzs7K0dBUFUsa0JBQWtCO21HQUFsQixrQkFBa0IsdUZDUC9CLDJGQUdBOzJGRElhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxtQkFBbUI7MEVBTXRCLE1BQU07c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjYWRtdXMtZXJyb3ItbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Vycm9yLWxpc3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFcnJvckxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVycm9ycz86IHN0cmluZ1tdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG59XHJcbiIsIjx1bCAqbmdJZj1cImVycm9yc1wiPlxyXG4gIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+e3tlcnJvcn19PC9saT5cclxuPC91bD5cclxuIl19
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/color.service";
|
|
4
|
+
import * as i2 from "@angular/material/tooltip";
|
|
5
|
+
export class FacetBadgeComponent {
|
|
6
|
+
constructor(_colorService) {
|
|
7
|
+
this._colorService = _colorService;
|
|
8
|
+
this._facetId = '';
|
|
9
|
+
this._facetDefinitions = [];
|
|
10
|
+
this._facetColors = {};
|
|
11
|
+
this._facetTips = {};
|
|
12
|
+
this.color = 'transparent';
|
|
13
|
+
this.contrastColor = 'black';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The facet ID.
|
|
17
|
+
*/
|
|
18
|
+
get facetId() {
|
|
19
|
+
return this._facetId;
|
|
20
|
+
}
|
|
21
|
+
set facetId(value) {
|
|
22
|
+
if (this._facetId === value) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this._facetId = value;
|
|
26
|
+
this.updateBadge();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The facets definitions.
|
|
30
|
+
*/
|
|
31
|
+
get facetDefinitions() {
|
|
32
|
+
return this._facetDefinitions;
|
|
33
|
+
}
|
|
34
|
+
set facetDefinitions(value) {
|
|
35
|
+
this._facetDefinitions = value;
|
|
36
|
+
this._facetColors = {};
|
|
37
|
+
this._facetTips = {};
|
|
38
|
+
this.updateBadge();
|
|
39
|
+
}
|
|
40
|
+
getFacetColor(facetId) {
|
|
41
|
+
if (this._facetColors[facetId]) {
|
|
42
|
+
return this._facetColors[facetId];
|
|
43
|
+
}
|
|
44
|
+
if (!this._facetDefinitions) {
|
|
45
|
+
return 'transparent';
|
|
46
|
+
}
|
|
47
|
+
const facet = this._facetDefinitions.find((f) => {
|
|
48
|
+
return f.id === facetId;
|
|
49
|
+
});
|
|
50
|
+
if (facet?.colorKey) {
|
|
51
|
+
this._facetColors[facetId] = '#' + facet.colorKey;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this._facetColors[facetId] = 'transparent';
|
|
55
|
+
}
|
|
56
|
+
return this._facetColors[facetId];
|
|
57
|
+
}
|
|
58
|
+
getFacetTip(facetId) {
|
|
59
|
+
if (this._facetTips[facetId]) {
|
|
60
|
+
return this._facetTips[facetId];
|
|
61
|
+
}
|
|
62
|
+
if (!this.facetDefinitions) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const facet = this.facetDefinitions.find((f) => {
|
|
66
|
+
return f.id === facetId;
|
|
67
|
+
});
|
|
68
|
+
if (!facet) {
|
|
69
|
+
this._facetTips[facetId] = facetId;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const sb = [];
|
|
73
|
+
for (let i = 0; i < facet.partDefinitions.length; i++) {
|
|
74
|
+
if (i > 0) {
|
|
75
|
+
sb.push(', ');
|
|
76
|
+
}
|
|
77
|
+
sb.push(facet.partDefinitions[i].name);
|
|
78
|
+
if (facet.partDefinitions[i].isRequired) {
|
|
79
|
+
sb.push('*');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
this._facetTips[facetId] = sb.join('');
|
|
83
|
+
}
|
|
84
|
+
return this._facetTips[facetId];
|
|
85
|
+
}
|
|
86
|
+
updateBadge() {
|
|
87
|
+
this.color = this.getFacetColor(this._facetId);
|
|
88
|
+
this.contrastColor = this._colorService.getContrastColor(this.color);
|
|
89
|
+
this.tip = this.getFacetTip(this._facetId) ?? undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
FacetBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FacetBadgeComponent, deps: [{ token: i1.ColorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
+
FacetBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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.0.3", ngImport: i0, type: FacetBadgeComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
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
|
+
}], ctorParameters: function () { return [{ type: i1.ColorService }]; }, propDecorators: { facetId: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], facetDefinitions: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}] } });
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXVpL3NyYy9saWIvY29tcG9uZW50cy9mYWNldC1iYWRnZS9mYWNldC1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2ZhY2V0LWJhZGdlL2ZhY2V0LWJhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBU2pELE1BQU0sT0FBTyxtQkFBbUI7SUF1QzlCLFlBQW9CLGFBQTJCO1FBQTNCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQXBDRDs7T0FFRztJQUNILElBQ1csT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLEtBQWE7UUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztP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LENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzFELENBQUM7O2dIQXJHVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixnSUNUaEMsK0tBT0E7MkZERWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLG9CQUFvQjttR0FrQm5CLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JLLGdCQUFnQjtzQkFEMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmFjZXREZWZpbml0aW9uIH0gZnJvbSAnQG15cm1pZG9uL2NhZG11cy1jb3JlJztcclxuaW1wb3J0IHsgQ29sb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29sb3Iuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NhZG11cy1mYWNldC1iYWRnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhY2V0LWJhZGdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWNldC1iYWRnZS5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWNldEJhZGdlQ29tcG9uZW50IHtcclxuICBwcml2YXRlIF9mYWNldENvbG9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICBwcml2YXRlIF9mYWNldFRpcHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgcHJpdmF0ZSBfZmFjZXRJZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2ZhY2V0RGVmaW5pdGlvbnM6IEZhY2V0RGVmaW5pdGlvbltdO1xyXG5cclxuICBwdWJsaWMgY29sb3I6IHN0cmluZztcclxuICBwdWJsaWMgY29udHJhc3RDb2xvcjogc3RyaW5nO1xyXG4gIHB1YmxpYyB0aXA/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmYWNldCBJRC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZmFjZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZhY2V0SWQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZmFjZXRJZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5fZmFjZXRJZCA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZmFjZXRJZCA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVCYWRnZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGZhY2V0cyBkZWZpbml0aW9ucy5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZmFjZXREZWZpbml0aW9ucygpOiBGYWNldERlZmluaXRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmFjZXREZWZpbml0aW9ucztcclxuICB9XHJcbiAgcHVibGljIHNldCBmYWNldERlZmluaXRpb25zKHZhbHVlOiBGYWNldERlZmluaXRpb25bXSkge1xyXG4gICAgdGhpcy5fZmFjZXREZWZpbml0aW9ucyA9IHZhbHVlO1xyXG4gICAgdGhpcy5fZmFjZXRDb2xvcnMgPSB7fTtcclxuICAgIHRoaXMuX2ZhY2V0VGlwcyA9IHt9O1xyXG4gICAgdGhpcy51cGRhdGVCYWRnZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29sb3JTZXJ2aWNlOiBDb2xvclNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2ZhY2V0SWQgPSAnJztcclxuICAgIHRoaXMuX2ZhY2V0RGVmaW5pdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuX2ZhY2V0Q29sb3JzID0ge307XHJcbiAgICB0aGlzLl9mYWNldFRpcHMgPSB7fTtcclxuICAgIHRoaXMuY29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgdGhpcy5jb250cmFzdENvbG9yID0gJ2JsYWNrJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmFjZXRDb2xvcihmYWNldElkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuX2ZhY2V0Q29sb3JzW2ZhY2V0SWRdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9mYWNldENvbG9yc1tmYWNldElkXTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5fZmFjZXREZWZpbml0aW9ucykge1xyXG4gICAgICByZXR1cm4gJ3RyYW5zcGFyZW50JztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYWNldCA9IHRoaXMuX2ZhY2V0RGVmaW5pdGlvbnMuZmluZCgoZikgPT4ge1xyXG4gICAgICByZXR1cm4gZi5pZCA9PT0gZmFjZXRJZDtcclxuICAgIH0pO1xyXG4gICAgaWYgKGZhY2V0Py5jb2xvcktleSkge1xyXG4gICAgICB0aGlzLl9mYWNldENvbG9yc1tmYWNldElkXSA9ICcjJyArIGZhY2V0LmNvbG9yS2V5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZmFjZXRDb2xvcnNbZmFjZXRJZF0gPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2ZhY2V0Q29sb3JzW2ZhY2V0SWRdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGYWNldFRpcChmYWNldElkOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmICh0aGlzLl9mYWNldFRpcHNbZmFjZXRJZF0pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2ZhY2V0VGlwc1tmYWNldElkXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZmFjZXREZWZpbml0aW9ucykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYWNldCA9IHRoaXMuZmFjZXREZWZpbml0aW9ucy5maW5kKChmKSA9PiB7XHJcbiAgICAgIHJldHVybiBmLmlkID09PSBmYWNldElkO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIWZhY2V0KSB7XHJcbiAgICAgIHRoaXMuX2ZhY2V0VGlwc1tmYWNldElkXSA9IGZhY2V0SWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzYjogc3RyaW5nW10gPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmYWNldC5wYXJ0RGVmaW5pdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoaSA+IDApIHtcclxuICAgICAgICAgIHNiLnB1c2goJywgJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNiLnB1c2goZmFjZXQucGFydERlZmluaXRpb25zW2ldLm5hbWUpO1xyXG4gICAgICAgIGlmIChmYWNldC5wYXJ0RGVmaW5pdGlvbnNbaV0uaXNSZXF1aXJlZCkge1xyXG4gICAgICAgICAgc2IucHVzaCgnKicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9mYWNldFRpcHNbZmFjZXRJZF0gPSBzYi5qb2luKCcnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9mYWNldFRpcHNbZmFjZXRJZF07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUJhZGdlKCkge1xyXG4gICAgdGhpcy5jb2xvciA9IHRoaXMuZ2V0RmFjZXRDb2xvcih0aGlzLl9mYWNldElkKTtcclxuICAgIHRoaXMuY29udHJhc3RDb2xvciA9IHRoaXMuX2NvbG9yU2VydmljZS5nZXRDb250cmFzdENvbG9yKHRoaXMuY29sb3IpO1xyXG4gICAgdGhpcy50aXAgPSB0aGlzLmdldEZhY2V0VGlwKHRoaXMuX2ZhY2V0SWQpID8/IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIiwiPHNwYW5cclxuICBjbGFzcz1cIm1vZGVsLXR5cGVcIlxyXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbG9yXCJcclxuICBbc3R5bGUuY29sb3JdPVwiY29udHJhc3RDb2xvclwiXHJcbiAgbWF0VG9vbHRpcD1cInt7IHRpcCB9fVwiXHJcbiAgPnt7IGZhY2V0SWQgfX1cclxuPC9zcGFuPlxyXG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/tooltip";
|
|
5
|
+
/**
|
|
6
|
+
* Badge with item's flags. Each flag is represented by a circle filled
|
|
7
|
+
* with the flag's color key.
|
|
8
|
+
*/
|
|
9
|
+
export class FlagsBadgeComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this._flags = 0;
|
|
12
|
+
this._flagDefinitions = [];
|
|
13
|
+
this.badgeFlags = [];
|
|
14
|
+
}
|
|
15
|
+
get flags() {
|
|
16
|
+
return this._flags;
|
|
17
|
+
}
|
|
18
|
+
set flags(value) {
|
|
19
|
+
if (this._flags === value) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
this._flags = value;
|
|
23
|
+
this.updateBadge();
|
|
24
|
+
}
|
|
25
|
+
get flagDefinitions() {
|
|
26
|
+
return this._flagDefinitions;
|
|
27
|
+
}
|
|
28
|
+
set flagDefinitions(value) {
|
|
29
|
+
this._flagDefinitions = value;
|
|
30
|
+
this.updateBadge();
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() { }
|
|
33
|
+
updateBadge() {
|
|
34
|
+
if (!this._flagDefinitions) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.badgeFlags = this._flagDefinitions.filter((def) => {
|
|
38
|
+
// tslint:disable-next-line: no-bitwise
|
|
39
|
+
return def.id & this._flags;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
FlagsBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FlagsBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
FlagsBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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.0.3", ngImport: i0, type: FlagsBadgeComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
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
|
+
}], ctorParameters: function () { return []; }, propDecorators: { flags: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], flagDefinitions: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZ3MtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vY2FkbXVzLXVpL3NyYy9saWIvY29tcG9uZW50cy9mbGFncy1iYWRnZS9mbGFncy1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2ZsYWdzLWJhZGdlL2ZsYWdzLWJhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBR3pEOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxtQkFBbUI7SUEyQjlCO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBekJELElBQ1csS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFDVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLGVBQWUsQ0FBQyxLQUF1QjtRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBUUQsUUFBUSxLQUFVLENBQUM7SUFFWCxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDckQsdUNBQXVDO1lBQ3ZDLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBM0NVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDBIQ1poQyxzTkFVQTsyRkRFYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usb0JBQW9COzBFQVduQixLQUFLO3NCQURmLEtBQUs7Z0JBYUssZUFBZTtzQkFEekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGbGFnRGVmaW5pdGlvbiB9IGZyb20gJ0BteXJtaWRvbi9jYWRtdXMtY29yZSc7XHJcblxyXG4vKipcclxuICogQmFkZ2Ugd2l0aCBpdGVtJ3MgZmxhZ3MuIEVhY2ggZmxhZyBpcyByZXByZXNlbnRlZCBieSBhIGNpcmNsZSBmaWxsZWRcclxuICogd2l0aCB0aGUgZmxhZydzIGNvbG9yIGtleS5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY2FkbXVzLWZsYWdzLWJhZGdlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmxhZ3MtYmFkZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZsYWdzLWJhZGdlLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZsYWdzQmFkZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgX2ZsYWdzOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfZmxhZ0RlZmluaXRpb25zOiBGbGFnRGVmaW5pdGlvbltdO1xyXG5cclxuICBwdWJsaWMgYmFkZ2VGbGFnczogRmxhZ0RlZmluaXRpb25bXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGZsYWdzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhZ3M7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZmxhZ3ModmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuX2ZsYWdzID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9mbGFncyA9IHZhbHVlO1xyXG4gICAgdGhpcy51cGRhdGVCYWRnZSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGZsYWdEZWZpbml0aW9ucygpOiBGbGFnRGVmaW5pdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLl9mbGFnRGVmaW5pdGlvbnM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZmxhZ0RlZmluaXRpb25zKHZhbHVlOiBGbGFnRGVmaW5pdGlvbltdKSB7XHJcbiAgICB0aGlzLl9mbGFnRGVmaW5pdGlvbnMgPSB2YWx1ZTtcclxuICAgIHRoaXMudXBkYXRlQmFkZ2UoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fZmxhZ3MgPSAwO1xyXG4gICAgdGhpcy5fZmxhZ0RlZmluaXRpb25zID0gW107XHJcbiAgICB0aGlzLmJhZGdlRmxhZ3MgPSBbXTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVCYWRnZSgpIHtcclxuICAgIGlmICghdGhpcy5fZmxhZ0RlZmluaXRpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYmFkZ2VGbGFncyA9IHRoaXMuX2ZsYWdEZWZpbml0aW9ucy5maWx0ZXIoKGRlZikgPT4ge1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWJpdHdpc2VcclxuICAgICAgcmV0dXJuIGRlZi5pZCAmIHRoaXMuX2ZsYWdzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPHNwYW5cclxuICAgIGNsYXNzPVwiYmFkZ2UtZmxhZ1wiXHJcbiAgICAqbmdGb3I9XCJsZXQgZGVmIG9mIGJhZGdlRmxhZ3NcIlxyXG4gICAgW3N0eWxlLmNvbG9yXT1cIicjJyArIGRlZi5jb2xvcktleVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJkZWYubGFiZWxcIlxyXG4gID5cclxuICAgICYjeDI1Y2Y7XHJcbiAgPC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { debounceTime } from 'rxjs/operators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
/**
|
|
6
|
+
* Base class for in-place editor components. These components
|
|
7
|
+
* do not require user to press a save button, as any change
|
|
8
|
+
* made is reflected in the parent consumer control. Such editors
|
|
9
|
+
* are fit for editing submodels in part editors.
|
|
10
|
+
* The general architecture for this family of components stores
|
|
11
|
+
* the model in an input model$ property (a BehaviorSubject<T> where
|
|
12
|
+
* T is the model's type), so that the form can be updated whenever
|
|
13
|
+
* the model gets pushed into this component.
|
|
14
|
+
* Also, a parentForm property can be used to add the root form
|
|
15
|
+
* of this component as a child of that form, so that the state
|
|
16
|
+
* of this form can affect that of the parent.
|
|
17
|
+
* When the user edits data, a new model gets built from the form
|
|
18
|
+
* and the modelChange event is fired. The consumer parent component
|
|
19
|
+
* should handle this event to get the updated model.
|
|
20
|
+
*/
|
|
21
|
+
export class InplaceEditorComponentBase {
|
|
22
|
+
constructor(formBuilder) {
|
|
23
|
+
this.formBuilder = formBuilder;
|
|
24
|
+
// events
|
|
25
|
+
this.modelChange = new EventEmitter();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The IDs edited by this component, wrapped in a subject
|
|
29
|
+
* stream. This component updates when the stream updates.
|
|
30
|
+
*/
|
|
31
|
+
get model$() {
|
|
32
|
+
return this.modelSubject;
|
|
33
|
+
}
|
|
34
|
+
set model$(value) {
|
|
35
|
+
this.modelSubject = value;
|
|
36
|
+
// unsubscribe the previous observable if any
|
|
37
|
+
if (this.modelSubscription) {
|
|
38
|
+
this.modelSubscription.unsubscribe();
|
|
39
|
+
}
|
|
40
|
+
// subscribe to the new observable
|
|
41
|
+
if (this.modelSubject) {
|
|
42
|
+
this.modelSubscription = this.modelSubject.subscribe((m) => {
|
|
43
|
+
this.setModel(m);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Initialize the editor. Your implementation MUST call this method
|
|
49
|
+
* in its ngOnInit.
|
|
50
|
+
* @param formName The name to be assigned to the form grouping
|
|
51
|
+
* all the controls of this component (=this.form), when it gets
|
|
52
|
+
* added to a parent form.
|
|
53
|
+
* @param formControls The configuration for the controls of this
|
|
54
|
+
* component.
|
|
55
|
+
*/
|
|
56
|
+
initEditor(formName, formControls) {
|
|
57
|
+
this.form = this.formBuilder.group(formControls);
|
|
58
|
+
// add it as a child form to the parent, if any.
|
|
59
|
+
// This propagates this form's state into it.
|
|
60
|
+
if (this.parentForm) {
|
|
61
|
+
this.parentForm.addControl(formName, this.form);
|
|
62
|
+
}
|
|
63
|
+
// once we are initialized, set the model to the current
|
|
64
|
+
// value, because if it was set meantime it would be lost
|
|
65
|
+
this.setModel(this.modelSubject?.value);
|
|
66
|
+
// react on this form changes
|
|
67
|
+
this.form.valueChanges.pipe(debounceTime(300)).subscribe((_) => {
|
|
68
|
+
const m = this.getModel();
|
|
69
|
+
if (m) {
|
|
70
|
+
this.modelChange.emit(m);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Unsubscribe from the model subscription.
|
|
76
|
+
*/
|
|
77
|
+
ngOnDestroy() {
|
|
78
|
+
if (this.modelSubscription) {
|
|
79
|
+
this.modelSubscription.unsubscribe();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
InplaceEditorComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: InplaceEditorComponentBase, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
InplaceEditorComponentBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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.0.3", ngImport: i0, type: InplaceEditorComponentBase, decorators: [{
|
|
86
|
+
type: Component,
|
|
87
|
+
args: [{
|
|
88
|
+
template: '',
|
|
89
|
+
}]
|
|
90
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { parentForm: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], model$: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], modelChange: [{
|
|
95
|
+
type: Output
|
|
96
|
+
}] } });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wbGFjZS1lZGl0b3ItY29tcG9uZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJtaWRvbi9jYWRtdXMtdWkvc3JjL2xpYi9jb21wb25lbnRzL2lucGxhY2UtZWRpdG9yLWNvbXBvbmVudC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFOUM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBSUgsTUFBTSxPQUFnQiwwQkFBMEI7SUFnRDlDLFlBQXNCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzVDLFNBQVM7UUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFDM0MsQ0FBQztJQXZDRDs7O09BR0c7SUFDSCxJQUNXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLEtBQXFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTFCLDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7UUFDRCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBb0JEOzs7Ozs7OztPQVFHO0lBQ0ksVUFBVSxDQUNmLFFBQWdCLEVBQ2hCLFlBQW9DO1FBRXBDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFakQsZ0RBQWdEO1FBQ2hELDZDQUE2QztRQUM3QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRDtRQUVELHdEQUF3RDtRQUN4RCx5REFBeUQ7UUFDekQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhDLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxFQUFFO2dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBYUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QztJQUNILENBQUM7O3VIQXpHbUIsMEJBQTBCOzJHQUExQiwwQkFBMEIscUpBRnBDLEVBQUU7MkZBRVEsMEJBQTBCO2tCQUgvQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO2tHQVdRLFVBQVU7c0JBRGhCLEtBQUs7Z0JBUUssTUFBTTtzQkFEaEIsS0FBSztnQkF5QkMsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9TdWJzY3JpcHRpb24nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKipcclxuICogQmFzZSBjbGFzcyBmb3IgaW4tcGxhY2UgZWRpdG9yIGNvbXBvbmVudHMuIFRoZXNlIGNvbXBvbmVudHNcclxuICogZG8gbm90IHJlcXVpcmUgdXNlciB0byBwcmVzcyBhIHNhdmUgYnV0dG9uLCBhcyBhbnkgY2hhbmdlXHJcbiAqIG1hZGUgaXMgcmVmbGVjdGVkIGluIHRoZSBwYXJlbnQgY29uc3VtZXIgY29udHJvbC4gU3VjaCBlZGl0b3JzXHJcbiAqIGFyZSBmaXQgZm9yIGVkaXRpbmcgc3VibW9kZWxzIGluIHBhcnQgZWRpdG9ycy5cclxuICogVGhlIGdlbmVyYWwgYXJjaGl0ZWN0dXJlIGZvciB0aGlzIGZhbWlseSBvZiBjb21wb25lbnRzIHN0b3Jlc1xyXG4gKiB0aGUgbW9kZWwgaW4gYW4gaW5wdXQgbW9kZWwkIHByb3BlcnR5IChhIEJlaGF2aW9yU3ViamVjdDxUPiB3aGVyZVxyXG4gKiBUIGlzIHRoZSBtb2RlbCdzIHR5cGUpLCBzbyB0aGF0IHRoZSBmb3JtIGNhbiBiZSB1cGRhdGVkIHdoZW5ldmVyXHJcbiAqIHRoZSBtb2RlbCBnZXRzIHB1c2hlZCBpbnRvIHRoaXMgY29tcG9uZW50LlxyXG4gKiBBbHNvLCBhIHBhcmVudEZvcm0gcHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gYWRkIHRoZSByb290IGZvcm1cclxuICogb2YgdGhpcyBjb21wb25lbnQgYXMgYSBjaGlsZCBvZiB0aGF0IGZvcm0sIHNvIHRoYXQgdGhlIHN0YXRlXHJcbiAqIG9mIHRoaXMgZm9ybSBjYW4gYWZmZWN0IHRoYXQgb2YgdGhlIHBhcmVudC5cclxuICogV2hlbiB0aGUgdXNlciBlZGl0cyBkYXRhLCBhIG5ldyBtb2RlbCBnZXRzIGJ1aWx0IGZyb20gdGhlIGZvcm1cclxuICogYW5kIHRoZSBtb2RlbENoYW5nZSBldmVudCBpcyBmaXJlZC4gVGhlIGNvbnN1bWVyIHBhcmVudCBjb21wb25lbnRcclxuICogc2hvdWxkIGhhbmRsZSB0aGlzIGV2ZW50IHRvIGdldCB0aGUgdXBkYXRlZCBtb2RlbC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIElucGxhY2VFZGl0b3JDb21wb25lbnRCYXNlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcm90ZWN0ZWQgbW9kZWxTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJvdGVjdGVkIG1vZGVsU3ViamVjdD86IEJlaGF2aW9yU3ViamVjdDxUPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG9wdGlvbmFsIHBhcmVudCBmb3JtIHRoaXMgY29tcG9uZW50IHNob3VsZCBhdHRhY2ggdG8uXHJcbiAgICogU2V0IHRoaXMgd2hlbiB0aGUgZm9ybSBpbiB0aGlzIGNvbXBvbmVudCBzaG91bGQgY29udHJpYnV0ZVxyXG4gICAqIHRvIHRoZSBzdGF0ZSBvZiBhIHBhcmVudCBmb3JtIGluIHRoZSBjb25zdW1lciBjb250cm9sLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBhcmVudEZvcm0/OiBGb3JtR3JvdXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBJRHMgZWRpdGVkIGJ5IHRoaXMgY29tcG9uZW50LCB3cmFwcGVkIGluIGEgc3ViamVjdFxyXG4gICAqIHN0cmVhbS4gVGhpcyBjb21wb25lbnQgdXBkYXRlcyB3aGVuIHRoZSBzdHJlYW0gdXBkYXRlcy5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgbW9kZWwkKCk6IEJlaGF2aW9yU3ViamVjdDxUPiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbFN1YmplY3Q7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgbW9kZWwkKHZhbHVlOiBCZWhhdmlvclN1YmplY3Q8VD4gfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMubW9kZWxTdWJqZWN0ID0gdmFsdWU7XHJcblxyXG4gICAgLy8gdW5zdWJzY3JpYmUgdGhlIHByZXZpb3VzIG9ic2VydmFibGUgaWYgYW55XHJcbiAgICBpZiAodGhpcy5tb2RlbFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLm1vZGVsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICAvLyBzdWJzY3JpYmUgdG8gdGhlIG5ldyBvYnNlcnZhYmxlXHJcbiAgICBpZiAodGhpcy5tb2RlbFN1YmplY3QpIHtcclxuICAgICAgdGhpcy5tb2RlbFN1YnNjcmlwdGlvbiA9IHRoaXMubW9kZWxTdWJqZWN0LnN1YnNjcmliZSgobSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0TW9kZWwobSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuZXZlciB0aGUgdXNlciBoYXMgY2hhbmdlZCB0aGUgbW9kZWwuXHJcbiAgICogVGhlIGNvbnN1bWVyIGNvbXBvbmVudCBzaG91bGQgc3Vic2NyaWJlIHRvIHRoaXMgdG8gZ2V0XHJcbiAgICogYSBjb3B5IG9mIHRoZSB1cGRhdGVkIG1vZGVsLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFQ+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgZm9ybSBncm91cGluZyB0aGUgY29udHJvbHMgb2YgdGhpcyBlZGl0b3IuXHJcbiAgICovXHJcbiAgcHVibGljIGZvcm0/OiBGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIC8vIGV2ZW50c1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGVkaXRvci4gWW91ciBpbXBsZW1lbnRhdGlvbiBNVVNUIGNhbGwgdGhpcyBtZXRob2RcclxuICAgKiBpbiBpdHMgbmdPbkluaXQuXHJcbiAgICogQHBhcmFtIGZvcm1OYW1lIFRoZSBuYW1lIHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBmb3JtIGdyb3VwaW5nXHJcbiAgICogYWxsIHRoZSBjb250cm9scyBvZiB0aGlzIGNvbXBvbmVudCAoPXRoaXMuZm9ybSksIHdoZW4gaXQgZ2V0c1xyXG4gICAqIGFkZGVkIHRvIGEgcGFyZW50IGZvcm0uXHJcbiAgICogQHBhcmFtIGZvcm1Db250cm9scyBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbnRyb2xzIG9mIHRoaXNcclxuICAgKiBjb21wb25lbnQuXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRFZGl0b3IoXHJcbiAgICBmb3JtTmFtZTogc3RyaW5nLFxyXG4gICAgZm9ybUNvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9XHJcbiAgKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKGZvcm1Db250cm9scyk7XHJcblxyXG4gICAgLy8gYWRkIGl0IGFzIGEgY2hpbGQgZm9ybSB0byB0aGUgcGFyZW50LCBpZiBhbnkuXHJcbiAgICAvLyBUaGlzIHByb3BhZ2F0ZXMgdGhpcyBmb3JtJ3Mgc3RhdGUgaW50byBpdC5cclxuICAgIGlmICh0aGlzLnBhcmVudEZvcm0pIHtcclxuICAgICAgdGhpcy5wYXJlbnRGb3JtLmFkZENvbnRyb2woZm9ybU5hbWUsIHRoaXMuZm9ybSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gb25jZSB3ZSBhcmUgaW5pdGlhbGl6ZWQsIHNldCB0aGUgbW9kZWwgdG8gdGhlIGN1cnJlbnRcclxuICAgIC8vIHZhbHVlLCBiZWNhdXNlIGlmIGl0IHdhcyBzZXQgbWVhbnRpbWUgaXQgd291bGQgYmUgbG9zdFxyXG4gICAgdGhpcy5zZXRNb2RlbCh0aGlzLm1vZGVsU3ViamVjdD8udmFsdWUpO1xyXG5cclxuICAgIC8vIHJlYWN0IG9uIHRoaXMgZm9ybSBjaGFuZ2VzXHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpLnN1YnNjcmliZSgoXykgPT4ge1xyXG4gICAgICBjb25zdCBtID0gdGhpcy5nZXRNb2RlbCgpO1xyXG4gICAgICBpZiAobSkge1xyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIG1vZGVsIGZvciB0aGlzIGNvbXBvbmVudCwgdXBkYXRpbmcgdGhlIGZvcm0gYWNjb3JkaW5nbHkuXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBtb2RlbC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0TW9kZWwodmFsdWU6IFQgfCB1bmRlZmluZWQpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIG1vZGVsIGZvciB0aGlzIGNvbXBvbmVudCwgZnJvbSB0aGUgZm9ybSBjb250cm9scy5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0TW9kZWwoKTogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgZnJvbSB0aGUgbW9kZWwgc3Vic2NyaXB0aW9uLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZGVsU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMubW9kZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|