@valtimo/plugin-management 5.1.0 → 5.2.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.
Files changed (37) hide show
  1. package/README.md +1 -1
  2. package/esm2020/lib/components/plugin-add-modal/plugin-add-modal.component.mjs +5 -4
  3. package/esm2020/lib/components/plugin-add-select/plugin-add-select.component.mjs +10 -9
  4. package/esm2020/lib/components/plugin-configure/plugin-configure.component.mjs +48 -0
  5. package/esm2020/lib/components/plugin-management/plugin-management.component.mjs +11 -9
  6. package/esm2020/lib/models/plugin.model.mjs +1 -1
  7. package/esm2020/lib/plugin-management.module.mjs +26 -5
  8. package/esm2020/lib/services/index.mjs +2 -2
  9. package/esm2020/lib/services/plugin-management-state.service.mjs +29 -6
  10. package/esm2020/lib/services/plugin-management.service.mjs +105 -0
  11. package/esm2020/public-api.mjs +2 -1
  12. package/fesm2015/valtimo-plugin-management.mjs +136 -38
  13. package/fesm2015/valtimo-plugin-management.mjs.map +1 -1
  14. package/fesm2020/valtimo-plugin-management.mjs +142 -38
  15. package/fesm2020/valtimo-plugin-management.mjs.map +1 -1
  16. package/lib/components/plugin-add-select/plugin-add-select.component.d.ts +4 -4
  17. package/lib/components/plugin-add-select/plugin-add-select.component.d.ts.map +1 -1
  18. package/lib/components/plugin-configure/plugin-configure.component.d.ts +14 -0
  19. package/lib/components/plugin-configure/plugin-configure.component.d.ts.map +1 -0
  20. package/lib/components/plugin-management/plugin-management.component.d.ts +5 -3
  21. package/lib/components/plugin-management/plugin-management.component.d.ts.map +1 -1
  22. package/lib/models/plugin.model.d.ts +8 -1
  23. package/lib/models/plugin.model.d.ts.map +1 -1
  24. package/lib/plugin-management.module.d.ts +8 -6
  25. package/lib/plugin-management.module.d.ts.map +1 -1
  26. package/lib/services/index.d.ts +1 -1
  27. package/lib/services/index.d.ts.map +1 -1
  28. package/lib/services/plugin-management-state.service.d.ts +10 -1
  29. package/lib/services/plugin-management-state.service.d.ts.map +1 -1
  30. package/lib/services/plugin-management.service.d.ts +21 -0
  31. package/lib/services/plugin-management.service.d.ts.map +1 -0
  32. package/package.json +1 -1
  33. package/public-api.d.ts +1 -0
  34. package/public-api.d.ts.map +1 -1
  35. package/esm2020/lib/services/plugin.service.mjs +0 -84
  36. package/lib/services/plugin.service.d.ts +0 -13
  37. package/lib/services/plugin.service.d.ts.map +0 -1
@@ -1,16 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, ViewChild, NgModule } from '@angular/core';
3
- import { of, Subject, BehaviorSubject, combineLatest } from 'rxjs';
4
- import { delay, take, map, tap } from 'rxjs/operators';
5
- import * as i1 from '@angular/router';
2
+ import { Injectable, Component, ViewContainerRef, ViewChild, NgModule } from '@angular/core';
3
+ import { of, combineLatest, Subject, BehaviorSubject } from 'rxjs';
4
+ import { delay, map, take, tap } from 'rxjs/operators';
5
+ import * as i1 from '@valtimo/plugin';
6
+ import { PluginTranslatePipeModule } from '@valtimo/plugin';
7
+ import * as i2 from '@angular/platform-browser';
8
+ import * as i1$1 from '@angular/router';
6
9
  import { RouterModule } from '@angular/router';
7
10
  import * as i4 from '@angular/common';
8
11
  import { CommonModule } from '@angular/common';
9
12
  import { AuthGuardService } from '@valtimo/security';
10
13
  import { ROLE_ADMIN } from '@valtimo/config';
11
- import * as i2 from '@ngx-translate/core';
14
+ import * as i2$1 from '@ngx-translate/core';
12
15
  import { TranslateModule } from '@ngx-translate/core';
13
- import * as i3 from '@valtimo/user-interface';
16
+ import * as i2$2 from '@valtimo/user-interface';
14
17
  import { PageModule, ParagraphModule, TitleModule, TableModule, StepperModule, ModalModule, ButtonModule, CardModule } from '@valtimo/user-interface';
15
18
  import * as i5 from '@angular/flex-layout/flex';
16
19
  import { FlexLayoutModule } from '@angular/flex-layout';
@@ -42,8 +45,10 @@ import { FlexLayoutModule } from '@angular/flex-layout';
42
45
  * See the License for the specific language governing permissions and
43
46
  * limitations under the License.
44
47
  */
45
- class PluginService {
46
- constructor() {
48
+ class PluginManagementService {
49
+ constructor(pluginService, sanitizer) {
50
+ this.pluginService = pluginService;
51
+ this.sanitizer = sanitizer;
47
52
  this.OPEN_ZAAK_CONFIGURATIONS = [
48
53
  {
49
54
  definitionKey: 'openzaak',
@@ -78,6 +83,9 @@ class PluginService {
78
83
  getPluginConfigurations(pluginDefinitionId) {
79
84
  return of(this.OPEN_ZAAK_CONFIGURATIONS).pipe(delay(1500));
80
85
  }
86
+ getPluginConfigurationsWithLogos(pluginDefinitionId) {
87
+ return this.returnPluginConfigurationsWithLogos(this.getPluginConfigurations(pluginDefinitionId));
88
+ }
81
89
  getPluginFunctions(pluginDefinitionId) {
82
90
  return of([
83
91
  {
@@ -97,15 +105,26 @@ class PluginService {
97
105
  getAllPluginConfigurations() {
98
106
  return of(this.OPEN_ZAAK_CONFIGURATIONS).pipe(delay(1500));
99
107
  }
108
+ getAllPluginConfigurationsWithLogos() {
109
+ return this.returnPluginConfigurationsWithLogos(this.getAllPluginConfigurations());
110
+ }
111
+ returnPluginConfigurationsWithLogos(pluginConfigurations$) {
112
+ return combineLatest([pluginConfigurations$, this.pluginService.pluginSpecifications$]).pipe(map(([pluginConfigurations, pluginSpecifications]) => pluginConfigurations === null || pluginConfigurations === void 0 ? void 0 : pluginConfigurations.map(pluginConfiguration => {
113
+ const pluginSpecification = pluginSpecifications.find(specification => specification.pluginId === pluginConfiguration.definitionKey);
114
+ return Object.assign(Object.assign({}, pluginConfiguration), ((pluginSpecification === null || pluginSpecification === void 0 ? void 0 : pluginSpecification.pluginLogoBase64) && {
115
+ pluginLogoBase64: this.sanitizer.bypassSecurityTrustResourceUrl(pluginSpecification === null || pluginSpecification === void 0 ? void 0 : pluginSpecification.pluginLogoBase64),
116
+ }));
117
+ })));
118
+ }
100
119
  }
101
- PluginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
102
- PluginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginService, providedIn: 'root' });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginService, decorators: [{
120
+ PluginManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, deps: [{ token: i1.PluginService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
121
+ PluginManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, providedIn: 'root' });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, decorators: [{
104
123
  type: Injectable,
105
124
  args: [{
106
125
  providedIn: 'root',
107
126
  }]
108
- }] });
127
+ }], ctorParameters: function () { return [{ type: i1.PluginService }, { type: i2.DomSanitizer }]; } });
109
128
 
110
129
  /*
111
130
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -119,7 +138,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
119
138
  * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions and limitations under the License.
120
139
  */
121
140
  class PluginManagementStateService {
122
- constructor() {
141
+ constructor(pluginService, sanitizer) {
142
+ this.pluginService = pluginService;
143
+ this.sanitizer = sanitizer;
123
144
  this._showModal$ = new Subject();
124
145
  this._hideModal$ = new Subject();
125
146
  this._inputDisabled$ = new BehaviorSubject(false);
@@ -129,7 +150,17 @@ class PluginManagementStateService {
129
150
  this._delete$ = new Subject();
130
151
  this._hideModalSaveButton$ = new BehaviorSubject(false);
131
152
  this._pluginDefinitions$ = new BehaviorSubject(undefined);
153
+ this._pluginDefinitionsWithLogos$ = combineLatest([this._pluginDefinitions$, this.pluginService.pluginSpecifications$]).pipe(map(([pluginDefinitions, pluginSpecifications]) => pluginDefinitions === null || pluginDefinitions === void 0 ? void 0 : pluginDefinitions.map(pluginDefinition => {
154
+ const pluginSpecification = pluginSpecifications.find(specification => specification.pluginId === pluginDefinition.key);
155
+ return Object.assign(Object.assign({}, pluginDefinition), ((pluginSpecification === null || pluginSpecification === void 0 ? void 0 : pluginSpecification.pluginLogoBase64) && {
156
+ pluginLogoBase64: this.sanitizer.bypassSecurityTrustResourceUrl(pluginSpecification === null || pluginSpecification === void 0 ? void 0 : pluginSpecification.pluginLogoBase64),
157
+ }));
158
+ })));
132
159
  this._selectedPluginDefinition$ = new BehaviorSubject(undefined);
160
+ this._selectedPluginSpecification$ = combineLatest([this.pluginService.pluginSpecifications$, this.selectedPluginDefinition$]).pipe(map(([pluginSpecifications, selectedPluginDefinition]) => {
161
+ const selectedPluginSpecification = pluginSpecifications === null || pluginSpecifications === void 0 ? void 0 : pluginSpecifications.find(specification => specification.pluginId === (selectedPluginDefinition === null || selectedPluginDefinition === void 0 ? void 0 : selectedPluginDefinition.key));
162
+ return selectedPluginSpecification || null;
163
+ }));
133
164
  }
134
165
  get showModal$() {
135
166
  return this._showModal$.asObservable();
@@ -146,6 +177,9 @@ class PluginManagementStateService {
146
177
  get pluginDefinitions$() {
147
178
  return this._pluginDefinitions$.asObservable();
148
179
  }
180
+ get pluginDefinitionsWithLogos$() {
181
+ return this._pluginDefinitionsWithLogos$;
182
+ }
149
183
  get selectedPluginDefinition$() {
150
184
  return this._selectedPluginDefinition$.asObservable();
151
185
  }
@@ -161,6 +195,9 @@ class PluginManagementStateService {
161
195
  get hideModalSaveButton$() {
162
196
  return this._hideModalSaveButton$.asObservable();
163
197
  }
198
+ get selectedPluginSpecification$() {
199
+ return this._selectedPluginSpecification$;
200
+ }
164
201
  showModal(modalType) {
165
202
  this._showModal$.next(modalType);
166
203
  }
@@ -211,14 +248,14 @@ class PluginManagementStateService {
211
248
  this._selectedPluginDefinition$.next(undefined);
212
249
  }
213
250
  }
214
- PluginManagementStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
251
+ PluginManagementStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, deps: [{ token: i1.PluginService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
215
252
  PluginManagementStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, providedIn: 'root' });
216
253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, decorators: [{
217
254
  type: Injectable,
218
255
  args: [{
219
256
  providedIn: 'root',
220
257
  }]
221
- }] });
258
+ }], ctorParameters: function () { return [{ type: i1.PluginService }, { type: i2.DomSanitizer }]; } });
222
259
 
223
260
  /*
224
261
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -248,13 +285,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
248
285
  * limitations under the License.
249
286
  */
250
287
  class PluginAddSelectComponent {
251
- constructor(pluginService, stateService, translateService) {
252
- this.pluginService = pluginService;
288
+ constructor(pluginManagementService, stateService, translateService) {
289
+ this.pluginManagementService = pluginManagementService;
253
290
  this.stateService = stateService;
254
291
  this.translateService = translateService;
255
292
  this.selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;
256
293
  this.disabled$ = this.stateService.inputDisabled$;
257
- this.pluginDefinitions$ = this.stateService.pluginDefinitions$;
294
+ this.pluginDefinitionsWithLogos$ = this.stateService.pluginDefinitionsWithLogos$;
258
295
  }
259
296
  ngOnInit() {
260
297
  this.openRefreshSubscription();
@@ -271,7 +308,7 @@ class PluginAddSelectComponent {
271
308
  this.stateService.clearSelectedPluginDefinition();
272
309
  }
273
310
  getPluginDefinitions() {
274
- this.pluginService.getPluginDefinitions().subscribe(pluginDefinitions => {
311
+ this.pluginManagementService.getPluginDefinitions().subscribe(pluginDefinitions => {
275
312
  this.stateService.setPluginDefinitions(pluginDefinitions);
276
313
  });
277
314
  }
@@ -284,12 +321,53 @@ class PluginAddSelectComponent {
284
321
  });
285
322
  }
286
323
  }
287
- PluginAddSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddSelectComponent, deps: [{ token: PluginService }, { token: PluginManagementStateService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
288
- PluginAddSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginAddSelectComponent, selector: "valtimo-plugin-add-select", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginDefinitions$ | async as pluginDefinitions; else loading\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <div fxFlex=\"33.3%\" *ngFor=\"let pluginDefinition of pluginDefinitions\">\n <v-card\n [titleTranslationKey]=\"'plugin.' + pluginDefinition.key + '.title'\"\n [descriptionTranslationKey]=\"'plugin.' + pluginDefinition.key + '.description'\"\n [selectable]=\"true\"\n [selected]=\"(selectedPluginDefinition$ | async)?.key === pluginDefinition.key\"\n [fullHeight]=\"true\"\n (selectEvent)=\"selectPluginDefinition(pluginDefinition)\"\n (deselectEvent)=\"deselectPluginDefinition()\"\n ></v-card>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingCard>\n <div fxFlex=\"33.3%\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.btn-back{position:absolute}.cards-container{display:flex;flex-flow:row wrap;width:100%}.card{width:calc(33.3% - 20px);margin-right:30px}.card:nth-child(3n+3){margin-right:0}.card-header{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], components: [{ type: i3.CardComponent, selector: "v-card", inputs: ["titleTranslationKey", "title", "descriptionTranslationKey", "description", "selectable", "selected", "fullHeight", "loading", "loadingTitle", "loadingDescription"], outputs: ["selectEvent", "deselectEvent"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i4.AsyncPipe } });
324
+ PluginAddSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddSelectComponent, deps: [{ token: PluginManagementService }, { token: PluginManagementStateService }, { token: i2$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
325
+ PluginAddSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginAddSelectComponent, selector: "valtimo-plugin-add-select", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginDefinitionsWithLogos$ | async as pluginDefinitions; else loading\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <div fxFlex=\"33.3%\" *ngFor=\"let pluginDefinition of pluginDefinitions\">\n <v-card\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [description]=\"'description' | pluginTranslate: pluginDefinition.key | async\"\n [selectable]=\"true\"\n [selected]=\"(selectedPluginDefinition$ | async)?.key === pluginDefinition.key\"\n [fullHeight]=\"true\"\n (selectEvent)=\"selectPluginDefinition(pluginDefinition)\"\n (deselectEvent)=\"deselectPluginDefinition()\"\n >\n <div *ngIf=\"pluginDefinition.pluginLogoBase64\" role=\"header\">\n <img\n class=\"plugin-definition-logo\"\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [src]=\"pluginDefinition.pluginLogoBase64\"\n />\n </div>\n </v-card>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingCard>\n <div fxFlex=\"33.3%\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.btn-back{position:absolute}.cards-container{display:flex;flex-flow:row wrap;width:100%}.card{width:calc(33.3% - 20px);margin-right:30px}.card:nth-child(3n+3){margin-right:0}.card-header{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plugin-definition-logo{height:60px}\n"], components: [{ type: i2$2.CardComponent, selector: "v-card", inputs: ["titleTranslationKey", "title", "descriptionTranslationKey", "description", "selectable", "selected", "fullHeight", "loading", "loadingTitle", "loadingDescription"], outputs: ["selectEvent", "deselectEvent"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i4.AsyncPipe, "pluginTranslate": i1.PluginTranslatePipe } });
289
326
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddSelectComponent, decorators: [{
290
327
  type: Component,
291
- args: [{ selector: 'valtimo-plugin-add-select', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginDefinitions$ | async as pluginDefinitions; else loading\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <div fxFlex=\"33.3%\" *ngFor=\"let pluginDefinition of pluginDefinitions\">\n <v-card\n [titleTranslationKey]=\"'plugin.' + pluginDefinition.key + '.title'\"\n [descriptionTranslationKey]=\"'plugin.' + pluginDefinition.key + '.description'\"\n [selectable]=\"true\"\n [selected]=\"(selectedPluginDefinition$ | async)?.key === pluginDefinition.key\"\n [fullHeight]=\"true\"\n (selectEvent)=\"selectPluginDefinition(pluginDefinition)\"\n (deselectEvent)=\"deselectPluginDefinition()\"\n ></v-card>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingCard>\n <div fxFlex=\"33.3%\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.btn-back{position:absolute}.cards-container{display:flex;flex-flow:row wrap;width:100%}.card{width:calc(33.3% - 20px);margin-right:30px}.card:nth-child(3n+3){margin-right:0}.card-header{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
292
- }], ctorParameters: function () { return [{ type: PluginService }, { type: PluginManagementStateService }, { type: i2.TranslateService }]; } });
328
+ args: [{ selector: 'valtimo-plugin-add-select', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginDefinitionsWithLogos$ | async as pluginDefinitions; else loading\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <div fxFlex=\"33.3%\" *ngFor=\"let pluginDefinition of pluginDefinitions\">\n <v-card\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [description]=\"'description' | pluginTranslate: pluginDefinition.key | async\"\n [selectable]=\"true\"\n [selected]=\"(selectedPluginDefinition$ | async)?.key === pluginDefinition.key\"\n [fullHeight]=\"true\"\n (selectEvent)=\"selectPluginDefinition(pluginDefinition)\"\n (deselectEvent)=\"deselectPluginDefinition()\"\n >\n <div *ngIf=\"pluginDefinition.pluginLogoBase64\" role=\"header\">\n <img\n class=\"plugin-definition-logo\"\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [src]=\"pluginDefinition.pluginLogoBase64\"\n />\n </div>\n </v-card>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingCard>\n <div fxFlex=\"33.3%\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.btn-back{position:absolute}.cards-container{display:flex;flex-flow:row wrap;width:100%}.card{width:calc(33.3% - 20px);margin-right:30px}.card:nth-child(3n+3){margin-right:0}.card-header{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plugin-definition-logo{height:60px}\n"] }]
329
+ }], ctorParameters: function () { return [{ type: PluginManagementService }, { type: PluginManagementStateService }, { type: i2$1.TranslateService }]; } });
330
+
331
+ /*
332
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
333
+ *
334
+ * Licensed under EUPL, Version 1.2 (the "License");
335
+ * you may not use this file except in compliance with the License.
336
+ * You may obtain a copy of the License at
337
+ *
338
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
339
+ *
340
+ * Unless required by applicable law or agreed to in writing, software
341
+ * distributed under the License is distributed on an "AS IS" basis,
342
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
343
+ * See the License for the specific language governing permissions and
344
+ * limitations under the License.
345
+ */
346
+ class PluginConfigureComponent {
347
+ constructor(stateService) {
348
+ this.stateService = stateService;
349
+ this.noConfigurationComponentAvailable$ = new BehaviorSubject(false);
350
+ this.selectedPluginSpecification$ = this.stateService.selectedPluginSpecification$.pipe(tap(selectedPluginSpecification => {
351
+ this.dynamicContainer.clear();
352
+ if (selectedPluginSpecification) {
353
+ const componentInstance = this.dynamicContainer.createComponent(selectedPluginSpecification.pluginConfigurationComponent);
354
+ this.noConfigurationComponentAvailable$.next(false);
355
+ }
356
+ else {
357
+ this.noConfigurationComponentAvailable$.next(true);
358
+ }
359
+ }));
360
+ }
361
+ }
362
+ PluginConfigureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginConfigureComponent, deps: [{ token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component });
363
+ PluginConfigureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginConfigureComponent, selector: "valtimo-plugin-configure", viewQueries: [{ propertyName: "dynamicContainer", first: true, predicate: ["pluginConfigurationComponent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"selectedPluginSpecification$ | async\"></ng-container>\n<ng-template #pluginConfigurationComponent></ng-template>\n<ng-container *ngIf=\"noConfigurationComponentAvailable$ | async\">\n <v-paragraph>{{ 'plugin.noConfigurationComponent' }}</v-paragraph>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i2$2.ParagraphComponent, selector: "v-paragraph" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe } });
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginConfigureComponent, decorators: [{
365
+ type: Component,
366
+ args: [{ selector: 'valtimo-plugin-configure', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"selectedPluginSpecification$ | async\"></ng-container>\n<ng-template #pluginConfigurationComponent></ng-template>\n<ng-container *ngIf=\"noConfigurationComponentAvailable$ | async\">\n <v-paragraph>{{ 'plugin.noConfigurationComponent' }}</v-paragraph>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
367
+ }], ctorParameters: function () { return [{ type: PluginManagementStateService }]; }, propDecorators: { dynamicContainer: [{
368
+ type: ViewChild,
369
+ args: ['pluginConfigurationComponent', { static: true, read: ViewContainerRef }]
370
+ }] } });
293
371
 
294
372
  /*
295
373
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -354,12 +432,12 @@ class PluginAddModalComponent {
354
432
  this.modalService.openModal(this.pluginAddModal);
355
433
  }
356
434
  }
357
- PluginAddModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddModalComponent, deps: [{ token: PluginManagementStateService }, { token: i3.ModalService }], target: i0.ɵɵFactoryTarget.Component });
358
- PluginAddModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal", viewQueries: [{ propertyName: "pluginAddModal", first: true, predicate: ["pluginAddModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #pluginAddModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n configure plugin\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step1\"\n [nextButtonEnabled]=\"selectedPluginDefinition$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step2\"\n [nextButtonEnabled]=\"false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i3.StepperContainerComponent, selector: "v-stepper-container", inputs: ["returnToFirstStepSubject$", "disabled"], outputs: ["cancelClickEvent", "completeEvent", "nextStepEvent"] }, { type: i3.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { type: i3.StepperHeaderComponent, selector: "v-stepper-header" }, { type: i3.StepperContentComponent, selector: "v-stepper-content" }, { type: i3.StepperStepComponent, selector: "v-stepper-step", inputs: ["titleTranslationKey"] }, { type: PluginAddSelectComponent, selector: "valtimo-plugin-add-select" }, { type: i3.StepperFooterComponent, selector: "v-stepper-footer" }, { type: i3.StepperFooterStepComponent, selector: "v-stepper-footer-step", inputs: ["nextButtonEnabled", "completeButtonEnabled", "nextButtonTranslationKey", "cancelButtonTranslationKey", "completeButtonTranslationKey", "completeButtonMdiIcon", "showCompleteButton"] }], pipes: { "async": i4.AsyncPipe } });
435
+ PluginAddModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddModalComponent, deps: [{ token: PluginManagementStateService }, { token: i2$2.ModalService }], target: i0.ɵɵFactoryTarget.Component });
436
+ PluginAddModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal", viewQueries: [{ propertyName: "pluginAddModal", first: true, predicate: ["pluginAddModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #pluginAddModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n <valtimo-plugin-configure></valtimo-plugin-configure>\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step1\"\n [nextButtonEnabled]=\"selectedPluginDefinition$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step2\"\n [nextButtonEnabled]=\"false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i2$2.StepperContainerComponent, selector: "v-stepper-container", inputs: ["returnToFirstStepSubject$", "disabled"], outputs: ["cancelClickEvent", "completeEvent", "nextStepEvent"] }, { type: i2$2.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { type: i2$2.StepperHeaderComponent, selector: "v-stepper-header" }, { type: i2$2.StepperContentComponent, selector: "v-stepper-content" }, { type: i2$2.StepperStepComponent, selector: "v-stepper-step", inputs: ["titleTranslationKey"] }, { type: PluginAddSelectComponent, selector: "valtimo-plugin-add-select" }, { type: PluginConfigureComponent, selector: "valtimo-plugin-configure" }, { type: i2$2.StepperFooterComponent, selector: "v-stepper-footer" }, { type: i2$2.StepperFooterStepComponent, selector: "v-stepper-footer-step", inputs: ["nextButtonEnabled", "completeButtonEnabled", "nextButtonTranslationKey", "cancelButtonTranslationKey", "completeButtonTranslationKey", "completeButtonMdiIcon", "showCompleteButton"] }], pipes: { "async": i4.AsyncPipe } });
359
437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddModalComponent, decorators: [{
360
438
  type: Component,
361
- args: [{ selector: 'valtimo-plugin-add-modal', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #pluginAddModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n configure plugin\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step1\"\n [nextButtonEnabled]=\"selectedPluginDefinition$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step2\"\n [nextButtonEnabled]=\"false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
362
- }], ctorParameters: function () { return [{ type: PluginManagementStateService }, { type: i3.ModalService }]; }, propDecorators: { pluginAddModal: [{
439
+ args: [{ selector: 'valtimo-plugin-add-modal', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #pluginAddModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n <valtimo-plugin-configure></valtimo-plugin-configure>\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step1\"\n [nextButtonEnabled]=\"selectedPluginDefinition$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step2\"\n [nextButtonEnabled]=\"false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
440
+ }], ctorParameters: function () { return [{ type: PluginManagementStateService }, { type: i2$2.ModalService }]; }, propDecorators: { pluginAddModal: [{
363
441
  type: ViewChild,
364
442
  args: ['pluginAddModal']
365
443
  }] } });
@@ -380,10 +458,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
380
458
  * limitations under the License.
381
459
  */
382
460
  class PluginManagementComponent {
383
- constructor(pluginService, translateService, stateService) {
461
+ constructor(pluginService, translateService, stateService, pluginTranslationService) {
384
462
  this.pluginService = pluginService;
385
463
  this.translateService = translateService;
386
464
  this.stateService = stateService;
465
+ this.pluginTranslationService = pluginTranslationService;
387
466
  this.loading$ = new BehaviorSubject(true);
388
467
  this.columns$ = new BehaviorSubject([
389
468
  {
@@ -402,7 +481,7 @@ class PluginManagementComponent {
402
481
  this.pluginConfigurations$ = combineLatest([
403
482
  this.pluginService.getAllPluginConfigurations(),
404
483
  this.translateService.stream('key'),
405
- ]).pipe(map(([pluginConfigurations]) => pluginConfigurations.map(configuration => (Object.assign(Object.assign({}, configuration), { pluginName: this.translateService.instant(`plugin.${configuration.definitionKey}.title`) })))), tap(() => {
484
+ ]).pipe(map(([pluginConfigurations]) => pluginConfigurations.map(configuration => (Object.assign(Object.assign({}, configuration), { pluginName: this.pluginTranslationService.instant('title', configuration.definitionKey) })))), tap(() => {
406
485
  this.loading$.next(false);
407
486
  }));
408
487
  }
@@ -410,12 +489,12 @@ class PluginManagementComponent {
410
489
  this.stateService.showModal('add');
411
490
  }
412
491
  }
413
- PluginManagementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementComponent, deps: [{ token: PluginService }, { token: i2.TranslateService }, { token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component });
414
- PluginManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginManagementComponent, selector: "valtimo-plugin-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n columns: columns$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.plugins.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.plugins.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n <v-page-header-actions>\n <v-button\n (clickEvent)=\"showAddModal()\"\n type=\"primary\"\n mdiIcon=\"plus\"\n [disabled]=\"obs.loading\"\n >\n {{ 'pluginManagement.add' | translate }}\n </v-button>\n </v-page-header-actions>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-plugin-add-modal></valtimo-plugin-add-modal>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i3.PageContainerComponent, selector: "v-page-container" }, { type: i3.PageHeaderComponent, selector: "v-page-header" }, { type: i3.PageHeaderIntroductionComponent, selector: "v-page-header-introduction" }, { type: i3.TitleComponent, selector: "v-title", inputs: ["type", "margin"] }, { type: i3.ParagraphComponent, selector: "v-paragraph" }, { type: i3.PageHeaderActionsComponent, selector: "v-page-header-actions" }, { type: i3.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled"], outputs: ["clickEvent"] }, { type: i3.PageContentComponent, selector: "v-page-content" }, { type: i3.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "maxPaginationItemSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe, "translate": i2.TranslatePipe } });
492
+ PluginManagementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementComponent, deps: [{ token: PluginManagementService }, { token: i2$1.TranslateService }, { token: PluginManagementStateService }, { token: i1.PluginTranslationService }], target: i0.ɵɵFactoryTarget.Component });
493
+ PluginManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginManagementComponent, selector: "valtimo-plugin-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n columns: columns$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.plugins.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.plugins.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n <v-page-header-actions>\n <v-button\n (clickEvent)=\"showAddModal()\"\n type=\"primary\"\n mdiIcon=\"plus\"\n [disabled]=\"obs.loading\"\n >\n {{ 'pluginManagement.add' | translate }}\n </v-button>\n </v-page-header-actions>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-plugin-add-modal></valtimo-plugin-add-modal>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i2$2.PageContainerComponent, selector: "v-page-container" }, { type: i2$2.PageHeaderComponent, selector: "v-page-header" }, { type: i2$2.PageHeaderIntroductionComponent, selector: "v-page-header-introduction" }, { type: i2$2.TitleComponent, selector: "v-title", inputs: ["type", "margin"] }, { type: i2$2.ParagraphComponent, selector: "v-paragraph" }, { type: i2$2.PageHeaderActionsComponent, selector: "v-page-header-actions" }, { type: i2$2.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled"], outputs: ["clickEvent"] }, { type: i2$2.PageContentComponent, selector: "v-page-content" }, { type: i2$2.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "maxPaginationItemSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe, "translate": i2$1.TranslatePipe } });
415
494
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementComponent, decorators: [{
416
495
  type: Component,
417
496
  args: [{ selector: 'valtimo-plugin-management', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n columns: columns$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.plugins.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.plugins.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n <v-page-header-actions>\n <v-button\n (clickEvent)=\"showAddModal()\"\n type=\"primary\"\n mdiIcon=\"plus\"\n [disabled]=\"obs.loading\"\n >\n {{ 'pluginManagement.add' | translate }}\n </v-button>\n </v-page-header-actions>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-plugin-add-modal></valtimo-plugin-add-modal>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
418
- }], ctorParameters: function () { return [{ type: PluginService }, { type: i2.TranslateService }, { type: PluginManagementStateService }]; } });
497
+ }], ctorParameters: function () { return [{ type: PluginManagementService }, { type: i2$1.TranslateService }, { type: PluginManagementStateService }, { type: i1.PluginTranslationService }]; } });
419
498
 
420
499
  /*
421
500
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -439,7 +518,7 @@ const routes = [
439
518
  class PluginManagementRoutingModule {
440
519
  }
441
520
  PluginManagementRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
442
- PluginManagementRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] });
521
+ PluginManagementRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, imports: [CommonModule, i1$1.RouterModule], exports: [RouterModule] });
443
522
  PluginManagementRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, imports: [[CommonModule, RouterModule.forChild(routes)], RouterModule] });
444
523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, decorators: [{
445
524
  type: NgModule,
@@ -464,7 +543,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
464
543
  class PluginManagementModule {
465
544
  }
466
545
  PluginManagementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
467
- PluginManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, declarations: [PluginManagementComponent, PluginAddModalComponent, PluginAddSelectComponent], imports: [CommonModule,
546
+ PluginManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, declarations: [PluginManagementComponent,
547
+ PluginAddModalComponent,
548
+ PluginAddSelectComponent,
549
+ PluginConfigureComponent], imports: [CommonModule,
468
550
  PluginManagementRoutingModule,
469
551
  TranslateModule,
470
552
  FlexLayoutModule,
@@ -475,7 +557,11 @@ PluginManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
475
557
  StepperModule,
476
558
  ModalModule,
477
559
  ButtonModule,
478
- CardModule], exports: [PluginManagementComponent, PluginAddModalComponent, PluginAddSelectComponent] });
560
+ CardModule,
561
+ PluginTranslatePipeModule], exports: [PluginManagementComponent,
562
+ PluginAddModalComponent,
563
+ PluginAddSelectComponent,
564
+ PluginConfigureComponent] });
479
565
  PluginManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, providers: [PluginManagementStateService], imports: [[
480
566
  CommonModule,
481
567
  PluginManagementRoutingModule,
@@ -489,12 +575,18 @@ PluginManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
489
575
  ModalModule,
490
576
  ButtonModule,
491
577
  CardModule,
578
+ PluginTranslatePipeModule,
492
579
  ]] });
493
580
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, decorators: [{
494
581
  type: NgModule,
495
582
  args: [{
496
583
  providers: [PluginManagementStateService],
497
- declarations: [PluginManagementComponent, PluginAddModalComponent, PluginAddSelectComponent],
584
+ declarations: [
585
+ PluginManagementComponent,
586
+ PluginAddModalComponent,
587
+ PluginAddSelectComponent,
588
+ PluginConfigureComponent,
589
+ ],
498
590
  imports: [
499
591
  CommonModule,
500
592
  PluginManagementRoutingModule,
@@ -508,8 +600,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
508
600
  ModalModule,
509
601
  ButtonModule,
510
602
  CardModule,
603
+ PluginTranslatePipeModule,
604
+ ],
605
+ exports: [
606
+ PluginManagementComponent,
607
+ PluginAddModalComponent,
608
+ PluginAddSelectComponent,
609
+ PluginConfigureComponent,
511
610
  ],
512
- exports: [PluginManagementComponent, PluginAddModalComponent, PluginAddSelectComponent],
513
611
  }]
514
612
  }] });
515
613
 
@@ -529,5 +627,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
529
627
  * Generated bundle index. Do not edit.
530
628
  */
531
629
 
532
- export { PluginAddModalComponent, PluginAddSelectComponent, PluginManagementComponent, PluginManagementModule, PluginManagementStateService, PluginService };
630
+ export { PluginAddModalComponent, PluginAddSelectComponent, PluginConfigureComponent, PluginManagementComponent, PluginManagementModule, PluginManagementService, PluginManagementStateService };
533
631
  //# sourceMappingURL=valtimo-plugin-management.mjs.map