@valtimo/plugin-management 5.3.0 → 5.7.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 (49) hide show
  1. package/README.md +2 -2
  2. package/esm2020/lib/components/plugin-add-modal/plugin-add-modal.component.mjs +38 -18
  3. package/esm2020/lib/components/plugin-add-select/plugin-add-select.component.mjs +11 -11
  4. package/esm2020/lib/components/plugin-configure/plugin-configure.component.mjs +15 -5
  5. package/esm2020/lib/components/plugin-edit/plugin-edit.component.mjs +51 -0
  6. package/esm2020/lib/components/plugin-edit-modal/plugin-edit-modal.component.mjs +113 -0
  7. package/esm2020/lib/components/plugin-management/plugin-management.component.mjs +22 -16
  8. package/esm2020/lib/models/index.mjs +6 -3
  9. package/esm2020/lib/models/plugin-modal.model.mjs +6 -2
  10. package/esm2020/lib/plugin-management-routing.mjs +10 -6
  11. package/esm2020/lib/plugin-management.module.mjs +22 -8
  12. package/esm2020/lib/services/index.mjs +6 -3
  13. package/esm2020/lib/services/plugin-management-state.service.mjs +28 -20
  14. package/esm2020/public-api.mjs +8 -2
  15. package/fesm2015/valtimo-plugin-management.mjs +286 -170
  16. package/fesm2015/valtimo-plugin-management.mjs.map +1 -1
  17. package/fesm2020/valtimo-plugin-management.mjs +293 -186
  18. package/fesm2020/valtimo-plugin-management.mjs.map +1 -1
  19. package/lib/components/plugin-add-modal/plugin-add-modal.component.d.ts +7 -2
  20. package/lib/components/plugin-add-modal/plugin-add-modal.component.d.ts.map +1 -1
  21. package/lib/components/plugin-add-select/plugin-add-select.component.d.ts +3 -3
  22. package/lib/components/plugin-add-select/plugin-add-select.component.d.ts.map +1 -1
  23. package/lib/components/plugin-configure/plugin-configure.component.d.ts +7 -1
  24. package/lib/components/plugin-configure/plugin-configure.component.d.ts.map +1 -1
  25. package/lib/components/plugin-edit/plugin-edit.component.d.ts +21 -0
  26. package/lib/components/plugin-edit/plugin-edit.component.d.ts.map +1 -0
  27. package/lib/components/plugin-edit-modal/plugin-edit-modal.component.d.ts +32 -0
  28. package/lib/components/plugin-edit-modal/plugin-edit-modal.component.d.ts.map +1 -0
  29. package/lib/components/plugin-management/plugin-management.component.d.ts +8 -5
  30. package/lib/components/plugin-management/plugin-management.component.d.ts.map +1 -1
  31. package/lib/models/index.d.ts +0 -1
  32. package/lib/models/index.d.ts.map +1 -1
  33. package/lib/models/plugin-modal.model.d.ts.map +1 -1
  34. package/lib/plugin-management-routing.d.ts.map +1 -1
  35. package/lib/plugin-management.module.d.ts +9 -7
  36. package/lib/plugin-management.module.d.ts.map +1 -1
  37. package/lib/services/index.d.ts +0 -1
  38. package/lib/services/index.d.ts.map +1 -1
  39. package/lib/services/plugin-management-state.service.d.ts +9 -6
  40. package/lib/services/plugin-management-state.service.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/public-api.d.ts +2 -0
  43. package/public-api.d.ts.map +1 -1
  44. package/esm2020/lib/models/plugin.model.mjs +0 -13
  45. package/esm2020/lib/services/plugin-management.service.mjs +0 -107
  46. package/lib/models/plugin.model.d.ts +0 -22
  47. package/lib/models/plugin.model.d.ts.map +0 -1
  48. package/lib/services/plugin-management.service.d.ts +0 -26
  49. package/lib/services/plugin-management.service.d.ts.map +0 -1
@@ -1,23 +1,22 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, EventEmitter, Output, 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/config';
6
- import { ROLE_ADMIN } from '@valtimo/config';
7
- import * as i2 from '@valtimo/plugin';
3
+ import { Subject, BehaviorSubject, combineLatest, of } from 'rxjs';
4
+ import { map, take, switchMap, tap } from 'rxjs/operators';
5
+ import * as i1 from '@valtimo/plugin';
8
6
  import { PluginTranslatePipeModule, PluginConfigurationContainerModule } from '@valtimo/plugin';
9
- import * as i3 from '@angular/platform-browser';
10
- import * as i4 from '@angular/common/http';
7
+ import * as i2 from '@angular/platform-browser';
11
8
  import * as i1$1 from '@angular/router';
12
9
  import { RouterModule } from '@angular/router';
13
- import * as i4$1 from '@angular/common';
10
+ import * as i5 from '@angular/common';
14
11
  import { CommonModule } from '@angular/common';
15
12
  import { AuthGuardService } from '@valtimo/security';
16
- import * as i2$1 from '@ngx-translate/core';
13
+ import { ROLE_ADMIN } from '@valtimo/config';
14
+ import * as i3 from '@ngx-translate/core';
17
15
  import { TranslateModule } from '@ngx-translate/core';
18
- import * as i2$2 from '@valtimo/user-interface';
16
+ import * as i2$1 from '@valtimo/user-interface';
19
17
  import { PageModule, ParagraphModule, TitleModule, TableModule, StepperModule, ModalModule, ButtonModule, CardModule } from '@valtimo/user-interface';
20
- import * as i5 from '@angular/flex-layout/flex';
18
+ import * as i4 from 'ngx-logger';
19
+ import * as i6 from '@angular/flex-layout/flex';
21
20
  import { FlexLayoutModule } from '@angular/flex-layout';
22
21
 
23
22
  /*
@@ -29,31 +28,11 @@ import { FlexLayoutModule } from '@angular/flex-layout';
29
28
  *
30
29
  * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
31
30
  *
32
- * 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.
33
- */
34
-
35
- /*
36
- * Copyright 2015-2020 Ritense BV, the Netherlands.
37
- *
38
- * Licensed under EUPL, Version 1.2 (the "License");
39
- * you may not use this file except in compliance with the License.
40
- * You may obtain a copy of the License at
41
- *
42
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
43
- *
44
- * 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.
45
- */
46
-
47
- /*
48
- * Copyright 2015-2020 Ritense BV, the Netherlands.
49
- *
50
- * Licensed under EUPL, Version 1.2 (the "License");
51
- * you may not use this file except in compliance with the License.
52
- * You may obtain a copy of the License at
53
- *
54
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
55
- *
56
- * 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.
31
+ * Unless required by applicable law or agreed to in writing, software
32
+ * distributed under the License is distributed on an "AS IS" basis,
33
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
34
+ * See the License for the specific language governing permissions and
35
+ * limitations under the License.
57
36
  */
58
37
 
59
38
  /*
@@ -71,89 +50,6 @@ import { FlexLayoutModule } from '@angular/flex-layout';
71
50
  * See the License for the specific language governing permissions and
72
51
  * limitations under the License.
73
52
  */
74
- class PluginManagementService {
75
- constructor(configService, pluginService, sanitizer, http) {
76
- this.configService = configService;
77
- this.pluginService = pluginService;
78
- this.sanitizer = sanitizer;
79
- this.http = http;
80
- this.VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;
81
- this.CONFIGURATIONS = [
82
- {
83
- definitionKey: 'openzaak',
84
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbd',
85
- title: 'Den Haag Open Zaak 1',
86
- },
87
- {
88
- definitionKey: 'openzaak',
89
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbe',
90
- title: 'Den Haag Open Zaak 2',
91
- },
92
- {
93
- definitionKey: 'smartdocuments',
94
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbx',
95
- title: 'Den Haag SmartDocuments 1',
96
- },
97
- {
98
- definitionKey: 'smartdocuments',
99
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dby',
100
- title: 'Den Haag SmartDocuments 2',
101
- },
102
- ];
103
- }
104
- getPluginDefinitions() {
105
- return this.http.get(`${this.VALTIMO_API_ENDPOINT_URI}plugin/definition`);
106
- }
107
- getPluginConfigurations(pluginDefinitionId) {
108
- return of(this.CONFIGURATIONS).pipe(delay(1500));
109
- }
110
- getPluginConfigurationsWithLogos(pluginDefinitionId) {
111
- return this.returnPluginConfigurationsWithLogos(this.getPluginConfigurations(pluginDefinitionId));
112
- }
113
- getPluginFunctions(pluginDefinitionId) {
114
- return of(pluginDefinitionId === 'openzaak'
115
- ? [
116
- {
117
- key: 'create-zaak',
118
- },
119
- {
120
- key: 'set-status',
121
- },
122
- {
123
- key: 'set-resultaat',
124
- },
125
- {
126
- key: 'set-besluit',
127
- },
128
- ]
129
- : [{ key: 'generate-document' }]).pipe(delay(1500));
130
- }
131
- getAllPluginConfigurations() {
132
- return of(this.CONFIGURATIONS).pipe(delay(1500));
133
- }
134
- getAllPluginConfigurationsWithLogos() {
135
- return this.returnPluginConfigurationsWithLogos(this.getAllPluginConfigurations());
136
- }
137
- returnPluginConfigurationsWithLogos(pluginConfigurations$) {
138
- return combineLatest([pluginConfigurations$, this.pluginService.pluginSpecifications$]).pipe(map(([pluginConfigurations, pluginSpecifications]) => pluginConfigurations?.map(pluginConfiguration => {
139
- const pluginSpecification = pluginSpecifications.find(specification => specification.pluginId === pluginConfiguration.definitionKey);
140
- return {
141
- ...pluginConfiguration,
142
- ...(pluginSpecification?.pluginLogoBase64 && {
143
- pluginLogoBase64: this.sanitizer.bypassSecurityTrustResourceUrl(pluginSpecification?.pluginLogoBase64),
144
- }),
145
- };
146
- })));
147
- }
148
- }
149
- PluginManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, deps: [{ token: i1.ConfigService }, { token: i2.PluginService }, { token: i3.DomSanitizer }, { token: i4.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
150
- PluginManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, providedIn: 'root' });
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, decorators: [{
152
- type: Injectable,
153
- args: [{
154
- providedIn: 'root',
155
- }]
156
- }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.PluginService }, { type: i3.DomSanitizer }, { type: i4.HttpClient }]; } });
157
53
 
158
54
  /*
159
55
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -164,7 +60,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
164
60
  *
165
61
  * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
166
62
  *
167
- * 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.
63
+ * Unless required by applicable law or agreed to in writing, software
64
+ * distributed under the License is distributed on an "AS IS" basis,
65
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
66
+ * See the License for the specific language governing permissions and
67
+ * limitations under the License.
168
68
  */
169
69
  class PluginManagementStateService {
170
70
  constructor(pluginService, sanitizer) {
@@ -173,9 +73,9 @@ class PluginManagementStateService {
173
73
  this._showModal$ = new Subject();
174
74
  this._hideModal$ = new Subject();
175
75
  this._inputDisabled$ = new BehaviorSubject(false);
176
- this._saveButtonDisabled$ = new BehaviorSubject(true);
177
76
  this._refresh$ = new BehaviorSubject(null);
178
77
  this._save$ = new Subject();
78
+ this._saveEdit$ = new Subject();
179
79
  this._delete$ = new Subject();
180
80
  this._hideModalSaveButton$ = new BehaviorSubject(false);
181
81
  this._pluginDefinitions$ = new BehaviorSubject(undefined);
@@ -195,6 +95,7 @@ class PluginManagementStateService {
195
95
  };
196
96
  })));
197
97
  this._selectedPluginDefinition$ = new BehaviorSubject(undefined);
98
+ this._selectedPluginConfiguration$ = new BehaviorSubject(undefined);
198
99
  }
199
100
  get showModal$() {
200
101
  return this._showModal$.asObservable();
@@ -217,12 +118,15 @@ class PluginManagementStateService {
217
118
  get selectedPluginDefinition$() {
218
119
  return this._selectedPluginDefinition$.asObservable();
219
120
  }
220
- get saveButtonDisabled$() {
221
- return this._saveButtonDisabled$.asObservable();
121
+ get selectedPluginConfiguration$() {
122
+ return this._selectedPluginConfiguration$.asObservable();
222
123
  }
223
124
  get save$() {
224
125
  return this._save$.asObservable();
225
126
  }
127
+ get saveEdit$() {
128
+ return this._saveEdit$.asObservable();
129
+ }
226
130
  get delete$() {
227
131
  return this._delete$.asObservable();
228
132
  }
@@ -250,21 +154,20 @@ class PluginManagementStateService {
250
154
  selectPluginDefinition(definition) {
251
155
  this._selectedPluginDefinition$.next(definition);
252
156
  }
157
+ selectPluginConfiguration(configuration) {
158
+ this._selectedPluginConfiguration$.next(configuration);
159
+ }
253
160
  clearSelectedPluginDefinition() {
254
161
  this._selectedPluginDefinition$.next(undefined);
255
162
  }
256
- enableSaveButton() {
257
- this._saveButtonDisabled$.next(false);
258
- }
259
- disableSaveButton() {
260
- this._saveButtonDisabled$.next(true);
163
+ clearSelectedPluginConfiguration() {
164
+ this._selectedPluginConfiguration$.next(undefined);
261
165
  }
262
166
  save() {
263
- this._saveButtonDisabled$.pipe(take(1)).subscribe(saveButtonDisabled => {
264
- if (!saveButtonDisabled) {
265
- this._save$.next(null);
266
- }
267
- });
167
+ this._save$.next(null);
168
+ }
169
+ saveEdit() {
170
+ this._saveEdit$.next(null);
268
171
  }
269
172
  delete() {
270
173
  this._delete$.next(null);
@@ -276,17 +179,18 @@ class PluginManagementStateService {
276
179
  this._hideModalSaveButton$.next(false);
277
180
  }
278
181
  clear() {
279
- this._selectedPluginDefinition$.next(undefined);
182
+ this.clearSelectedPluginDefinition();
183
+ this.clearSelectedPluginConfiguration();
280
184
  }
281
185
  }
282
- PluginManagementStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, deps: [{ token: i2.PluginService }, { token: i3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
283
- PluginManagementStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, providedIn: 'root' });
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, decorators: [{
186
+ PluginManagementStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementStateService, deps: [{ token: i1.PluginService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
187
+ PluginManagementStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementStateService, providedIn: 'root' });
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementStateService, decorators: [{
285
189
  type: Injectable,
286
190
  args: [{
287
191
  providedIn: 'root',
288
192
  }]
289
- }], ctorParameters: function () { return [{ type: i2.PluginService }, { type: i3.DomSanitizer }]; } });
193
+ }], ctorParameters: function () { return [{ type: i1.PluginService }, { type: i2.DomSanitizer }]; } });
290
194
 
291
195
  /*
292
196
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -297,7 +201,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
297
201
  *
298
202
  * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
299
203
  *
300
- * 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.
204
+ * Unless required by applicable law or agreed to in writing, software
205
+ * distributed under the License is distributed on an "AS IS" basis,
206
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
207
+ * See the License for the specific language governing permissions and
208
+ * limitations under the License.
301
209
  */
302
210
 
303
211
  /*
@@ -351,12 +259,12 @@ class PluginAddSelectComponent {
351
259
  });
352
260
  }
353
261
  }
354
- 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 });
355
- 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 <ng-container\n *ngTemplateOutlet=\"pluginDefinitionsTemplate; context: {pluginDefinitions: pluginDefinitions}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n noPluginDefinitionsTemplate;\n context: {pluginDefinitions: pluginDefinitions}\n \"\n ></ng-container>\n </div>\n</ng-container>\n\n<ng-template #noPluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\n <div fxFlex=\"100%\" *ngIf=\"pluginDefinitions?.length === 0\">\n <v-paragraph [center]=\"true\" [fullWidth]=\"true\">{{\n 'pluginManagement.noDefinitions' | translate\n }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #pluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\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</ng-template>\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{object-fit:contain;height:60px;width:100%}\n"], components: [{ type: i2$2.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth"] }, { type: i2$2.CardComponent, selector: "v-card", inputs: ["titleTranslationKey", "title", "descriptionTranslationKey", "description", "selectable", "selected", "fullHeight", "loading", "loadingTitle", "loadingDescription"], outputs: ["selectEvent", "deselectEvent"] }], directives: [{ type: i4$1.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$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i2$1.TranslatePipe, "pluginTranslate": i2.PluginTranslatePipe } });
356
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddSelectComponent, decorators: [{
262
+ PluginAddSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginAddSelectComponent, deps: [{ token: i1.PluginManagementService }, { token: PluginManagementStateService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
263
+ PluginAddSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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 <ng-container\n *ngTemplateOutlet=\"pluginDefinitionsTemplate; context: {pluginDefinitions: pluginDefinitions}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n noPluginDefinitionsTemplate;\n context: {pluginDefinitions: pluginDefinitions}\n \"\n ></ng-container>\n </div>\n</ng-container>\n\n<ng-template #noPluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\n <div fxFlex=\"100%\" *ngIf=\"pluginDefinitions?.length === 0\">\n <v-paragraph [center]=\"true\" [fullWidth]=\"true\">{{\n 'pluginManagement.noDefinitions' | translate\n }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #pluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\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</ng-template>\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{object-fit:contain;height:60px;width:100%}\n"], components: [{ type: i2$1.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { type: i2$1.CardComponent, selector: "v-card", inputs: ["titleTranslationKey", "title", "descriptionTranslationKey", "description", "selectable", "selected", "fullHeight", "loading", "loadingTitle", "loadingDescription"], outputs: ["selectEvent", "deselectEvent"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.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: i6.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: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.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: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5.AsyncPipe, "translate": i3.TranslatePipe, "pluginTranslate": i1.PluginTranslatePipe } });
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginAddSelectComponent, decorators: [{
357
265
  type: Component,
358
266
  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 <ng-container\n *ngTemplateOutlet=\"pluginDefinitionsTemplate; context: {pluginDefinitions: pluginDefinitions}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n noPluginDefinitionsTemplate;\n context: {pluginDefinitions: pluginDefinitions}\n \"\n ></ng-container>\n </div>\n</ng-container>\n\n<ng-template #noPluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\n <div fxFlex=\"100%\" *ngIf=\"pluginDefinitions?.length === 0\">\n <v-paragraph [center]=\"true\" [fullWidth]=\"true\">{{\n 'pluginManagement.noDefinitions' | translate\n }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #pluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\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</ng-template>\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{object-fit:contain;height:60px;width:100%}\n"] }]
359
- }], ctorParameters: function () { return [{ type: PluginManagementService }, { type: PluginManagementStateService }, { type: i2$1.TranslateService }]; } });
267
+ }], ctorParameters: function () { return [{ type: i1.PluginManagementService }, { type: PluginManagementStateService }, { type: i3.TranslateService }]; } });
360
268
 
361
269
  /*
362
270
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -377,19 +285,28 @@ class PluginConfigureComponent {
377
285
  constructor(stateService) {
378
286
  this.stateService = stateService;
379
287
  this.valid = new EventEmitter();
288
+ this.configuration = new EventEmitter();
289
+ this.save$ = this.stateService.save$;
380
290
  this.pluginDefinitionKey$ = this.stateService.selectedPluginDefinition$.pipe(map(definition => definition?.key));
291
+ this.prefillConfiguration$ = of(undefined);
292
+ this.disabled$ = this.stateService.inputDisabled$;
381
293
  }
382
294
  onValid(valid) {
383
295
  this.valid.emit(valid);
384
296
  }
297
+ onFunctionConfiguration(configuration) {
298
+ this.configuration.emit(configuration);
299
+ }
385
300
  }
386
- PluginConfigureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginConfigureComponent, deps: [{ token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component });
387
- PluginConfigureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginConfigureComponent, selector: "valtimo-plugin-configure", outputs: { valid: "valid" }, 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<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n (valid)=\"onValid($event)\"\n type=\"configuration\"\n></valtimo-plugin-configuration-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.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "clear$", "save$", "disabled", "error"], outputs: ["valid", "configuration"] }], pipes: { "async": i4$1.AsyncPipe } });
388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginConfigureComponent, decorators: [{
301
+ PluginConfigureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginConfigureComponent, deps: [{ token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component });
302
+ PluginConfigureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PluginConfigureComponent, selector: "valtimo-plugin-configure", outputs: { valid: "valid", configuration: "configuration" }, 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<valtimo-plugin-configuration-container\n *ngIf=\"pluginDefinitionKey$ | async as pluginDefinitionKey\"\n [pluginDefinitionKey]=\"pluginDefinitionKey\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n [save$]=\"save$\"\n [disabled$]=\"disabled$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onFunctionConfiguration($event)\"\n type=\"configuration\"\n></valtimo-plugin-configuration-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: i1.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe } });
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginConfigureComponent, decorators: [{
389
304
  type: Component,
390
- 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<valtimo-plugin-configuration-container\n [pluginDefinitionKey]=\"pluginDefinitionKey$ | async\"\n (valid)=\"onValid($event)\"\n type=\"configuration\"\n></valtimo-plugin-configuration-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"] }]
305
+ 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<valtimo-plugin-configuration-container\n *ngIf=\"pluginDefinitionKey$ | async as pluginDefinitionKey\"\n [pluginDefinitionKey]=\"pluginDefinitionKey\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n [save$]=\"save$\"\n [disabled$]=\"disabled$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onFunctionConfiguration($event)\"\n type=\"configuration\"\n></valtimo-plugin-configuration-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"] }]
391
306
  }], ctorParameters: function () { return [{ type: PluginManagementStateService }]; }, propDecorators: { valid: [{
392
307
  type: Output
308
+ }], configuration: [{
309
+ type: Output
393
310
  }] } });
394
311
 
395
312
  /*
@@ -408,9 +325,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
408
325
  * limitations under the License.
409
326
  */
410
327
  class PluginAddModalComponent {
411
- constructor(stateService, modalService) {
328
+ constructor(stateService, modalService, pluginManagementService, logger) {
412
329
  this.stateService = stateService;
413
330
  this.modalService = modalService;
331
+ this.pluginManagementService = pluginManagementService;
332
+ this.logger = logger;
414
333
  this.inputDisabled$ = this.stateService.inputDisabled$;
415
334
  this.selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;
416
335
  this.configurationValid$ = new BehaviorSubject(false);
@@ -422,25 +341,41 @@ class PluginAddModalComponent {
422
341
  }
423
342
  complete() {
424
343
  this.stateService.save();
425
- this.hide();
426
344
  }
427
345
  delete() {
428
346
  this.stateService.delete();
429
347
  }
430
348
  hide() {
431
349
  this.stateService.disableInput();
432
- this.modalService.closeModal();
433
- this.modalService.appearingDelayMs$.pipe(take(1)).subscribe(appearingDelay => {
434
- setTimeout(() => {
435
- this.returnToFirstStep();
436
- this.stateService.enableInput();
437
- this.stateService.clear();
438
- }, appearingDelay);
350
+ this.modalService.closeModal(() => {
351
+ this.returnToFirstStep();
352
+ this.stateService.enableInput();
353
+ this.stateService.clear();
439
354
  });
440
355
  }
441
356
  onValid(valid) {
442
357
  this.configurationValid$.next(valid);
443
358
  }
359
+ onConfiguration(configuration) {
360
+ const pluginConfiguration = { ...configuration };
361
+ delete pluginConfiguration['configurationTitle'];
362
+ this.stateService.disableInput();
363
+ this.stateService.selectedPluginDefinition$.pipe(take(1)).subscribe(selectedDefinition => {
364
+ this.pluginManagementService
365
+ .savePluginConfiguration({
366
+ definitionKey: selectedDefinition.key,
367
+ title: configuration.configurationTitle,
368
+ properties: pluginConfiguration,
369
+ })
370
+ .subscribe(response => {
371
+ this.stateService.refresh();
372
+ this.hide();
373
+ }, () => {
374
+ this.logger.error('Something went wrong with saving the plugin configuration.');
375
+ this.hide();
376
+ });
377
+ });
378
+ }
444
379
  openShowSubscription() {
445
380
  this.showSubscription = this.stateService.showModal$.subscribe(modalType => {
446
381
  if (modalType === 'add') {
@@ -460,16 +395,163 @@ class PluginAddModalComponent {
460
395
  this.modalService.openModal(this.pluginAddModal);
461
396
  }
462
397
  }
463
- 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 });
464
- 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 (valid)=\"onValid($event)\"></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 completeButtonTranslationKey=\"pluginManagement.addSteps.complete\"\n [completeButtonEnabled]=\"configurationValid$ | async\"\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", outputs: ["valid"] }, { 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$1.AsyncPipe } });
465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddModalComponent, decorators: [{
398
+ PluginAddModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginAddModalComponent, deps: [{ token: PluginManagementStateService }, { token: i2$1.ModalService }, { token: i1.PluginManagementService }, { token: i4.NGXLogger }], target: i0.ɵɵFactoryTarget.Component });
399
+ PluginAddModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n ></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 completeButtonTranslationKey=\"pluginManagement.addSteps.complete\"\n [completeButtonEnabled]=\"configurationValid$ | async\"\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$1.StepperContainerComponent, selector: "v-stepper-container", inputs: ["returnToFirstStepSubject$", "disabled"], outputs: ["cancelClickEvent", "completeEvent", "nextStepEvent"] }, { type: i2$1.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { type: i2$1.StepperHeaderComponent, selector: "v-stepper-header" }, { type: i2$1.StepperContentComponent, selector: "v-stepper-content" }, { type: i2$1.StepperStepComponent, selector: "v-stepper-step", inputs: ["titleTranslationKey"] }, { type: PluginAddSelectComponent, selector: "valtimo-plugin-add-select" }, { type: PluginConfigureComponent, selector: "valtimo-plugin-configure", outputs: ["valid", "configuration"] }, { type: i2$1.StepperFooterComponent, selector: "v-stepper-footer" }, { type: i2$1.StepperFooterStepComponent, selector: "v-stepper-footer-step", inputs: ["nextButtonEnabled", "completeButtonEnabled", "nextButtonTranslationKey", "cancelButtonTranslationKey", "completeButtonTranslationKey", "completeButtonMdiIcon", "showCompleteButton"] }], pipes: { "async": i5.AsyncPipe } });
400
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginAddModalComponent, decorators: [{
466
401
  type: Component,
467
- 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 (valid)=\"onValid($event)\"></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 completeButtonTranslationKey=\"pluginManagement.addSteps.complete\"\n [completeButtonEnabled]=\"configurationValid$ | async\"\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"] }]
468
- }], ctorParameters: function () { return [{ type: PluginManagementStateService }, { type: i2$2.ModalService }]; }, propDecorators: { pluginAddModal: [{
402
+ 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\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n ></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 completeButtonTranslationKey=\"pluginManagement.addSteps.complete\"\n [completeButtonEnabled]=\"configurationValid$ | async\"\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"] }]
403
+ }], ctorParameters: function () { return [{ type: PluginManagementStateService }, { type: i2$1.ModalService }, { type: i1.PluginManagementService }, { type: i4.NGXLogger }]; }, propDecorators: { pluginAddModal: [{
469
404
  type: ViewChild,
470
405
  args: ['pluginAddModal']
471
406
  }] } });
472
407
 
408
+ /*
409
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
410
+ *
411
+ * Licensed under EUPL, Version 1.2 (the "License");
412
+ * you may not use this file except in compliance with the License.
413
+ * You may obtain a copy of the License at
414
+ *
415
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
416
+ *
417
+ * Unless required by applicable law or agreed to in writing, software
418
+ * distributed under the License is distributed on an "AS IS" basis,
419
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
420
+ * See the License for the specific language governing permissions and
421
+ * limitations under the License.
422
+ */
423
+ class PluginEditComponent {
424
+ constructor(stateService) {
425
+ this.stateService = stateService;
426
+ this.valid = new EventEmitter();
427
+ this.configuration = new EventEmitter();
428
+ this.saveEdit$ = this.stateService.saveEdit$;
429
+ this.pluginDefinitionKey$ = this.stateService.selectedPluginConfiguration$.pipe(map(configuration => configuration?.pluginDefinition?.key));
430
+ this.prefillConfiguration$ = this.stateService.selectedPluginConfiguration$.pipe(map(configuration => configuration
431
+ ? { ...configuration.properties, configurationTitle: configuration.title }
432
+ : undefined));
433
+ this.disabled$ = this.stateService.inputDisabled$;
434
+ }
435
+ onValid(valid) {
436
+ this.valid.emit(valid);
437
+ }
438
+ onFunctionConfiguration(configuration) {
439
+ this.configuration.emit(configuration);
440
+ }
441
+ }
442
+ PluginEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginEditComponent, deps: [{ token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component });
443
+ PluginEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PluginEditComponent, selector: "valtimo-plugin-edit", outputs: { valid: "valid", configuration: "configuration" }, 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<valtimo-plugin-configuration-container\n *ngIf=\"pluginDefinitionKey$ | async as pluginDefinitionKey\"\n [pluginDefinitionKey]=\"pluginDefinitionKey\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n [save$]=\"saveEdit$\"\n [disabled$]=\"disabled$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onFunctionConfiguration($event)\"\n type=\"configuration\"\n></valtimo-plugin-configuration-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: i1.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe } });
444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginEditComponent, decorators: [{
445
+ type: Component,
446
+ args: [{ selector: 'valtimo-plugin-edit', 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<valtimo-plugin-configuration-container\n *ngIf=\"pluginDefinitionKey$ | async as pluginDefinitionKey\"\n [pluginDefinitionKey]=\"pluginDefinitionKey\"\n [prefillConfiguration$]=\"prefillConfiguration$\"\n [save$]=\"saveEdit$\"\n [disabled$]=\"disabled$\"\n (valid)=\"onValid($event)\"\n (configuration)=\"onFunctionConfiguration($event)\"\n type=\"configuration\"\n></valtimo-plugin-configuration-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"] }]
447
+ }], ctorParameters: function () { return [{ type: PluginManagementStateService }]; }, propDecorators: { valid: [{
448
+ type: Output
449
+ }], configuration: [{
450
+ type: Output
451
+ }] } });
452
+
453
+ /*
454
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
455
+ *
456
+ * Licensed under EUPL, Version 1.2 (the "License");
457
+ * you may not use this file except in compliance with the License.
458
+ * You may obtain a copy of the License at
459
+ *
460
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
461
+ *
462
+ * Unless required by applicable law or agreed to in writing, software
463
+ * distributed under the License is distributed on an "AS IS" basis,
464
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
465
+ * See the License for the specific language governing permissions and
466
+ * limitations under the License.
467
+ */
468
+ class PluginEditModalComponent {
469
+ constructor(stateService, modalService, pluginManagementService, logger) {
470
+ this.stateService = stateService;
471
+ this.modalService = modalService;
472
+ this.pluginManagementService = pluginManagementService;
473
+ this.logger = logger;
474
+ this.inputDisabled$ = this.stateService.inputDisabled$;
475
+ this.selectedPluginConfiguration$ = this.stateService.selectedPluginConfiguration$;
476
+ this.configurationValid$ = new BehaviorSubject(false);
477
+ }
478
+ ngOnInit() {
479
+ this.openShowSubscription();
480
+ this.openHideSubscription();
481
+ }
482
+ save() {
483
+ this.stateService.saveEdit();
484
+ }
485
+ delete() {
486
+ this.stateService.disableInput();
487
+ this.stateService.selectedPluginConfiguration$
488
+ .pipe(take(1))
489
+ .subscribe(selectedPluginConfiguration => {
490
+ this.pluginManagementService
491
+ .deletePluginConfiguration(selectedPluginConfiguration.id)
492
+ .subscribe(() => {
493
+ this.stateService.refresh();
494
+ this.hide();
495
+ }, () => {
496
+ this.logger.error('Something went wrong with deleting the plugin configuration.');
497
+ this.stateService.enableInput();
498
+ });
499
+ });
500
+ }
501
+ hide() {
502
+ this.modalService.closeModal(() => {
503
+ this.stateService.enableInput();
504
+ this.stateService.clear();
505
+ });
506
+ }
507
+ onPluginValid(valid) {
508
+ this.configurationValid$.next(valid);
509
+ }
510
+ onPluginConfiguration(configuration) {
511
+ this.stateService.disableInput();
512
+ this.stateService.selectedPluginConfiguration$
513
+ .pipe(take(1))
514
+ .subscribe(selectedPluginConfiguration => {
515
+ const configurationTitle = configuration.configurationTitle;
516
+ const configurationData = { ...configuration };
517
+ delete configurationData['configurationTitle'];
518
+ this.pluginManagementService
519
+ .updatePluginConfiguration(selectedPluginConfiguration.id, configurationTitle, configurationData)
520
+ .subscribe(() => {
521
+ this.stateService.refresh();
522
+ this.hide();
523
+ }, () => {
524
+ this.logger.error('Something went wrong with updating the plugin configuration.');
525
+ this.stateService.enableInput();
526
+ });
527
+ });
528
+ }
529
+ openShowSubscription() {
530
+ this.showSubscription = this.stateService.showModal$.subscribe(modalType => {
531
+ if (modalType === 'edit') {
532
+ this.show();
533
+ }
534
+ });
535
+ }
536
+ openHideSubscription() {
537
+ this.hideSubscription = this.stateService.hideModal$.subscribe(() => {
538
+ this.hide();
539
+ });
540
+ }
541
+ show() {
542
+ this.modalService.openModal(this.pluginEditModal);
543
+ }
544
+ }
545
+ PluginEditModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginEditModalComponent, deps: [{ token: PluginManagementStateService }, { token: i2$1.ModalService }, { token: i1.PluginManagementService }, { token: i4.NGXLogger }], target: i0.ɵɵFactoryTarget.Component });
546
+ PluginEditModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PluginEditModalComponent, selector: "valtimo-plugin-edit-modal", viewQueries: [{ propertyName: "pluginEditModal", first: true, predicate: ["pluginEditModal"], 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-modal\n #pluginEditModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{selectedConfiguration: selectedPluginConfiguration$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [margin]=\"false\" type=\"h2\">{{\n obs.selectedConfiguration?.title +\n ' - ' +\n ('title' | pluginTranslate: obs.selectedConfiguration?.pluginDefinition?.key | async)\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <valtimo-plugin-edit\n (valid)=\"onPluginValid($event)\"\n (configuration)=\"onPluginConfiguration($event)\"\n ></valtimo-plugin-edit>\n </div>\n <div role=\"footer\">\n <div class=\"edit-plugin-buttons\">\n <v-button\n [disabled]=\"inputDisabled$ | async\"\n (clickEvent)=\"delete()\"\n [mdiIcon]=\"'delete'\"\n type=\"danger\"\n >{{ 'pluginManagement.remove' | translate }}</v-button\n >\n <v-button\n [disabled]=\"(configurationValid$ | async) === false || (inputDisabled$ | async)\"\n (clickEvent)=\"save()\"\n [mdiIcon]=\"'check'\"\n type=\"success\"\n >{{ 'pluginManagement.save' | translate }}</v-button\n >\n </div>\n </div>\n</v-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 */.edit-plugin-buttons{display:flex;width:100%;justify-content:space-between}.edit-configuration-title{display:flex;width:100%;justify-content:center}\n"], components: [{ type: i2$1.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { type: i2$1.TitleComponent, selector: "v-title", inputs: ["type", "margin"] }, { type: PluginEditComponent, selector: "valtimo-plugin-edit", outputs: ["valid", "configuration"] }, { type: i2$1.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe, "pluginTranslate": i1.PluginTranslatePipe, "translate": i3.TranslatePipe } });
547
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginEditModalComponent, decorators: [{
548
+ type: Component,
549
+ args: [{ selector: 'valtimo-plugin-edit-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-modal\n #pluginEditModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{selectedConfiguration: selectedPluginConfiguration$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [margin]=\"false\" type=\"h2\">{{\n obs.selectedConfiguration?.title +\n ' - ' +\n ('title' | pluginTranslate: obs.selectedConfiguration?.pluginDefinition?.key | async)\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <valtimo-plugin-edit\n (valid)=\"onPluginValid($event)\"\n (configuration)=\"onPluginConfiguration($event)\"\n ></valtimo-plugin-edit>\n </div>\n <div role=\"footer\">\n <div class=\"edit-plugin-buttons\">\n <v-button\n [disabled]=\"inputDisabled$ | async\"\n (clickEvent)=\"delete()\"\n [mdiIcon]=\"'delete'\"\n type=\"danger\"\n >{{ 'pluginManagement.remove' | translate }}</v-button\n >\n <v-button\n [disabled]=\"(configurationValid$ | async) === false || (inputDisabled$ | async)\"\n (clickEvent)=\"save()\"\n [mdiIcon]=\"'check'\"\n type=\"success\"\n >{{ 'pluginManagement.save' | translate }}</v-button\n >\n </div>\n </div>\n</v-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 */.edit-plugin-buttons{display:flex;width:100%;justify-content:space-between}.edit-configuration-title{display:flex;width:100%;justify-content:center}\n"] }]
550
+ }], ctorParameters: function () { return [{ type: PluginManagementStateService }, { type: i2$1.ModalService }, { type: i1.PluginManagementService }, { type: i4.NGXLogger }]; }, propDecorators: { pluginEditModal: [{
551
+ type: ViewChild,
552
+ args: ['pluginEditModal']
553
+ }] } });
554
+
473
555
  /*
474
556
  * Copyright 2015-2020 Ritense BV, the Netherlands.
475
557
  *
@@ -486,8 +568,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
486
568
  * limitations under the License.
487
569
  */
488
570
  class PluginManagementComponent {
489
- constructor(pluginService, translateService, stateService, pluginTranslationService) {
490
- this.pluginService = pluginService;
571
+ constructor(pluginManagementService, translateService, stateService, pluginTranslationService) {
572
+ this.pluginManagementService = pluginManagementService;
491
573
  this.translateService = translateService;
492
574
  this.stateService = stateService;
493
575
  this.pluginTranslationService = pluginTranslationService;
@@ -506,26 +588,31 @@ class PluginManagementComponent {
506
588
  dataKey: 'title',
507
589
  },
508
590
  ]);
509
- this.pluginConfigurations$ = combineLatest([
510
- this.pluginService.getAllPluginConfigurations(),
591
+ this.pluginConfigurations$ = this.stateService.refresh$.pipe(switchMap(() => combineLatest([
592
+ this.pluginManagementService.getAllPluginConfigurations(),
511
593
  this.translateService.stream('key'),
512
594
  ]).pipe(map(([pluginConfigurations]) => pluginConfigurations.map(configuration => ({
513
595
  ...configuration,
514
- pluginName: this.pluginTranslationService.instant('title', configuration.definitionKey),
596
+ pluginName: this.pluginTranslationService.instant('title', configuration.pluginDefinition.key),
597
+ definitionKey: configuration.pluginDefinition.key,
515
598
  }))), tap(() => {
516
599
  this.loading$.next(false);
517
- }));
600
+ }))));
518
601
  }
519
602
  showAddModal() {
520
603
  this.stateService.showModal('add');
521
604
  }
605
+ rowClicked(configuration) {
606
+ this.stateService.selectPluginConfiguration(configuration);
607
+ this.stateService.showModal('edit');
608
+ }
522
609
  }
523
- 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: i2.PluginTranslationService }], target: i0.ɵɵFactoryTarget.Component });
524
- 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", inputs: ["center", "fullWidth"] }, { type: i2$2.PageHeaderActionsComponent, selector: "v-page-header-actions" }, { type: i2$2.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], 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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i2$1.TranslatePipe } });
525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementComponent, decorators: [{
610
+ PluginManagementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementComponent, deps: [{ token: i1.PluginManagementService }, { token: i3.TranslateService }, { token: PluginManagementStateService }, { token: i1.PluginTranslationService }], target: i0.ɵɵFactoryTarget.Component });
611
+ PluginManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-plugin-add-modal></valtimo-plugin-add-modal>\n\n<valtimo-plugin-edit-modal></valtimo-plugin-edit-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$1.PageContainerComponent, selector: "v-page-container" }, { type: i2$1.PageHeaderComponent, selector: "v-page-header" }, { type: i2$1.PageHeaderIntroductionComponent, selector: "v-page-header-introduction" }, { type: i2$1.TitleComponent, selector: "v-title", inputs: ["type", "margin"] }, { type: i2$1.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { type: i2$1.PageHeaderActionsComponent, selector: "v-page-header-actions" }, { type: i2$1.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled", "title", "titleTranslationKey"], outputs: ["clickEvent"] }, { type: i2$1.PageContentComponent, selector: "v-page-content" }, { type: i2$1.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" }, { type: PluginEditModalComponent, selector: "valtimo-plugin-edit-modal" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe, "translate": i3.TranslatePipe } });
612
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementComponent, decorators: [{
526
613
  type: Component,
527
- 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"] }]
528
- }], ctorParameters: function () { return [{ type: PluginManagementService }, { type: i2$1.TranslateService }, { type: PluginManagementStateService }, { type: i2.PluginTranslationService }]; } });
614
+ 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]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-plugin-add-modal></valtimo-plugin-add-modal>\n\n<valtimo-plugin-edit-modal></valtimo-plugin-edit-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"] }]
615
+ }], ctorParameters: function () { return [{ type: i1.PluginManagementService }, { type: i3.TranslateService }, { type: PluginManagementStateService }, { type: i1.PluginTranslationService }]; } });
529
616
 
530
617
  /*
531
618
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -536,7 +623,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
536
623
  *
537
624
  * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
538
625
  *
539
- * 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.
626
+ * Unless required by applicable law or agreed to in writing, software
627
+ * distributed under the License is distributed on an "AS IS" basis,
628
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
629
+ * See the License for the specific language governing permissions and
630
+ * limitations under the License.
540
631
  */
541
632
  const routes = [
542
633
  {
@@ -548,10 +639,10 @@ const routes = [
548
639
  ];
549
640
  class PluginManagementRoutingModule {
550
641
  }
551
- PluginManagementRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
552
- PluginManagementRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, imports: [CommonModule, i1$1.RouterModule], exports: [RouterModule] });
553
- PluginManagementRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, imports: [[CommonModule, RouterModule.forChild(routes)], RouterModule] });
554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementRoutingModule, decorators: [{
642
+ PluginManagementRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
643
+ PluginManagementRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementRoutingModule, imports: [CommonModule, i1$1.RouterModule], exports: [RouterModule] });
644
+ PluginManagementRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementRoutingModule, imports: [[CommonModule, RouterModule.forChild(routes)], RouterModule] });
645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementRoutingModule, decorators: [{
555
646
  type: NgModule,
556
647
  args: [{
557
648
  declarations: [],
@@ -569,15 +660,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
569
660
  *
570
661
  * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
571
662
  *
572
- * 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.
663
+ * Unless required by applicable law or agreed to in writing, software
664
+ * distributed under the License is distributed on an "AS IS" basis,
665
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
666
+ * See the License for the specific language governing permissions and
667
+ * limitations under the License.
573
668
  */
574
669
  class PluginManagementModule {
575
670
  }
576
- PluginManagementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
577
- PluginManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, declarations: [PluginManagementComponent,
671
+ PluginManagementModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
672
+ PluginManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementModule, declarations: [PluginManagementComponent,
578
673
  PluginAddModalComponent,
579
674
  PluginAddSelectComponent,
580
- PluginConfigureComponent], imports: [CommonModule,
675
+ PluginConfigureComponent,
676
+ PluginEditModalComponent,
677
+ PluginEditComponent], imports: [CommonModule,
581
678
  PluginManagementRoutingModule,
582
679
  TranslateModule,
583
680
  FlexLayoutModule,
@@ -593,8 +690,10 @@ PluginManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
593
690
  PluginConfigurationContainerModule], exports: [PluginManagementComponent,
594
691
  PluginAddModalComponent,
595
692
  PluginAddSelectComponent,
596
- PluginConfigureComponent] });
597
- PluginManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, providers: [PluginManagementStateService], imports: [[
693
+ PluginConfigureComponent,
694
+ PluginEditModalComponent,
695
+ PluginEditComponent] });
696
+ PluginManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementModule, providers: [PluginManagementStateService], imports: [[
598
697
  CommonModule,
599
698
  PluginManagementRoutingModule,
600
699
  TranslateModule,
@@ -610,7 +709,7 @@ PluginManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
610
709
  PluginTranslatePipeModule,
611
710
  PluginConfigurationContainerModule,
612
711
  ]] });
613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, decorators: [{
712
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PluginManagementModule, decorators: [{
614
713
  type: NgModule,
615
714
  args: [{
616
715
  providers: [PluginManagementStateService],
@@ -619,6 +718,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
619
718
  PluginAddModalComponent,
620
719
  PluginAddSelectComponent,
621
720
  PluginConfigureComponent,
721
+ PluginEditModalComponent,
722
+ PluginEditComponent,
622
723
  ],
623
724
  imports: [
624
725
  CommonModule,
@@ -641,6 +742,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
641
742
  PluginAddModalComponent,
642
743
  PluginAddSelectComponent,
643
744
  PluginConfigureComponent,
745
+ PluginEditModalComponent,
746
+ PluginEditComponent,
644
747
  ],
645
748
  }]
646
749
  }] });
@@ -654,12 +757,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
654
757
  *
655
758
  * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
656
759
  *
657
- * 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.
760
+ * Unless required by applicable law or agreed to in writing, software
761
+ * distributed under the License is distributed on an "AS IS" basis,
762
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
763
+ * See the License for the specific language governing permissions and
764
+ * limitations under the License.
658
765
  */
659
766
 
660
767
  /**
661
768
  * Generated bundle index. Do not edit.
662
769
  */
663
770
 
664
- export { PluginAddModalComponent, PluginAddSelectComponent, PluginConfigureComponent, PluginManagementComponent, PluginManagementModule, PluginManagementService, PluginManagementStateService };
771
+ export { PluginAddModalComponent, PluginAddSelectComponent, PluginConfigureComponent, PluginEditComponent, PluginEditModalComponent, PluginManagementComponent, PluginManagementModule, PluginManagementStateService };
665
772
  //# sourceMappingURL=valtimo-plugin-management.mjs.map