@valtimo/plugin-management 5.2.0 → 5.3.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 (25) hide show
  1. package/esm2020/lib/components/plugin-add-modal/plugin-add-modal.component.mjs +9 -4
  2. package/esm2020/lib/components/plugin-add-select/plugin-add-select.component.mjs +3 -3
  3. package/esm2020/lib/components/plugin-configure/plugin-configure.component.mjs +13 -21
  4. package/esm2020/lib/components/plugin-management/plugin-management.component.mjs +1 -1
  5. package/esm2020/lib/models/plugin.model.mjs +1 -1
  6. package/esm2020/lib/plugin-management.module.mjs +6 -3
  7. package/esm2020/lib/services/plugin-management-state.service.mjs +11 -12
  8. package/esm2020/lib/services/plugin-management.service.mjs +37 -35
  9. package/fesm2015/valtimo-plugin-management.mjs +75 -75
  10. package/fesm2015/valtimo-plugin-management.mjs.map +1 -1
  11. package/fesm2020/valtimo-plugin-management.mjs +77 -75
  12. package/fesm2020/valtimo-plugin-management.mjs.map +1 -1
  13. package/lib/components/plugin-add-modal/plugin-add-modal.component.d.ts +3 -1
  14. package/lib/components/plugin-add-modal/plugin-add-modal.component.d.ts.map +1 -1
  15. package/lib/components/plugin-configure/plugin-configure.component.d.ts +5 -6
  16. package/lib/components/plugin-configure/plugin-configure.component.d.ts.map +1 -1
  17. package/lib/models/plugin.model.d.ts +2 -0
  18. package/lib/models/plugin.model.d.ts.map +1 -1
  19. package/lib/plugin-management.module.d.ts +1 -1
  20. package/lib/plugin-management.module.d.ts.map +1 -1
  21. package/lib/services/plugin-management-state.service.d.ts +1 -3
  22. package/lib/services/plugin-management-state.service.d.ts.map +1 -1
  23. package/lib/services/plugin-management.service.d.ts +7 -2
  24. package/lib/services/plugin-management.service.d.ts.map +1 -1
  25. package/package.json +1 -1
@@ -17,13 +17,18 @@ import { Injectable } from '@angular/core';
17
17
  import { combineLatest, of } from 'rxjs';
18
18
  import { delay, map } from 'rxjs/operators';
19
19
  import * as i0 from "@angular/core";
20
- import * as i1 from "@valtimo/plugin";
21
- import * as i2 from "@angular/platform-browser";
20
+ import * as i1 from "@valtimo/config";
21
+ import * as i2 from "@valtimo/plugin";
22
+ import * as i3 from "@angular/platform-browser";
23
+ import * as i4 from "@angular/common/http";
22
24
  export class PluginManagementService {
23
- constructor(pluginService, sanitizer) {
25
+ constructor(configService, pluginService, sanitizer, http) {
26
+ this.configService = configService;
24
27
  this.pluginService = pluginService;
25
28
  this.sanitizer = sanitizer;
26
- this.OPEN_ZAAK_CONFIGURATIONS = [
29
+ this.http = http;
30
+ this.VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;
31
+ this.CONFIGURATIONS = [
27
32
  {
28
33
  definitionKey: 'openzaak',
29
34
  key: '1ebdad87-3899-4ab7-b4ad-403237b17dbd',
@@ -35,49 +40,46 @@ export class PluginManagementService {
35
40
  title: 'Den Haag Open Zaak 2',
36
41
  },
37
42
  {
38
- definitionKey: 'openzaak',
39
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbf',
40
- title: 'Den Haag Open Zaak 3',
43
+ definitionKey: 'smartdocuments',
44
+ key: '1ebdad87-3899-4ab7-b4ad-403237b17dbx',
45
+ title: 'Den Haag SmartDocuments 1',
41
46
  },
42
47
  {
43
- definitionKey: 'openzaak',
44
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbg',
45
- title: 'Den Haag Open Zaak 4',
46
- },
47
- {
48
- definitionKey: 'openzaak',
49
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbh',
50
- title: 'Den Haag Open Zaak 5',
48
+ definitionKey: 'smartdocuments',
49
+ key: '1ebdad87-3899-4ab7-b4ad-403237b17dby',
50
+ title: 'Den Haag SmartDocuments 2',
51
51
  },
52
52
  ];
53
53
  }
54
54
  getPluginDefinitions() {
55
- return of([{ key: 'openzaak' }]).pipe(delay(1500));
55
+ return this.http.get(`${this.VALTIMO_API_ENDPOINT_URI}plugin/definition`);
56
56
  }
57
57
  getPluginConfigurations(pluginDefinitionId) {
58
- return of(this.OPEN_ZAAK_CONFIGURATIONS).pipe(delay(1500));
58
+ return of(this.CONFIGURATIONS).pipe(delay(1500));
59
59
  }
60
60
  getPluginConfigurationsWithLogos(pluginDefinitionId) {
61
61
  return this.returnPluginConfigurationsWithLogos(this.getPluginConfigurations(pluginDefinitionId));
62
62
  }
63
63
  getPluginFunctions(pluginDefinitionId) {
64
- return of([
65
- {
66
- key: 'create-zaak',
67
- },
68
- {
69
- key: 'set-status',
70
- },
71
- {
72
- key: 'set-resultaat',
73
- },
74
- {
75
- key: 'set-besluit',
76
- },
77
- ]).pipe(delay(1500));
64
+ return of(pluginDefinitionId === 'openzaak'
65
+ ? [
66
+ {
67
+ key: 'create-zaak',
68
+ },
69
+ {
70
+ key: 'set-status',
71
+ },
72
+ {
73
+ key: 'set-resultaat',
74
+ },
75
+ {
76
+ key: 'set-besluit',
77
+ },
78
+ ]
79
+ : [{ key: 'generate-document' }]).pipe(delay(1500));
78
80
  }
79
81
  getAllPluginConfigurations() {
80
- return of(this.OPEN_ZAAK_CONFIGURATIONS).pipe(delay(1500));
82
+ return of(this.CONFIGURATIONS).pipe(delay(1500));
81
83
  }
82
84
  getAllPluginConfigurationsWithLogos() {
83
85
  return this.returnPluginConfigurationsWithLogos(this.getAllPluginConfigurations());
@@ -94,12 +96,12 @@ export class PluginManagementService {
94
96
  })));
95
97
  }
96
98
  }
97
- PluginManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, deps: [{ token: i1.PluginService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
99
+ 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 });
98
100
  PluginManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, providedIn: 'root' });
99
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, decorators: [{
100
102
  type: Injectable,
101
103
  args: [{
102
104
  providedIn: 'root',
103
105
  }]
104
- }], ctorParameters: function () { return [{ type: i1.PluginService }, { type: i2.DomSanitizer }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcGx1Z2luLW1hbmFnZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9wbHVnaW4tbWFuYWdlbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQVFuRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTzFDLE1BQU0sT0FBTyx1QkFBdUI7SUE2QmxDLFlBQ21CLGFBQTRCLEVBQzVCLFNBQXVCO1FBRHZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUE5QnpCLDZCQUF3QixHQUFHO1lBQzFDO2dCQUNFLGFBQWEsRUFBRSxVQUFVO2dCQUN6QixHQUFHLEVBQUUsc0NBQXNDO2dCQUMzQyxLQUFLLEVBQUUsc0JBQXNCO2FBQzlCO1lBQ0Q7Z0JBQ0UsYUFBYSxFQUFFLFVBQVU7Z0JBQ3pCLEdBQUcsRUFBRSxzQ0FBc0M7Z0JBQzNDLEtBQUssRUFBRSxzQkFBc0I7YUFDOUI7WUFDRDtnQkFDRSxhQUFhLEVBQUUsVUFBVTtnQkFDekIsR0FBRyxFQUFFLHNDQUFzQztnQkFDM0MsS0FBSyxFQUFFLHNCQUFzQjthQUM5QjtZQUNEO2dCQUNFLGFBQWEsRUFBRSxVQUFVO2dCQUN6QixHQUFHLEVBQUUsc0NBQXNDO2dCQUMzQyxLQUFLLEVBQUUsc0JBQXNCO2FBQzlCO1lBQ0Q7Z0JBQ0UsYUFBYSxFQUFFLFVBQVU7Z0JBQ3pCLEdBQUcsRUFBRSxzQ0FBc0M7Z0JBQzNDLEtBQUssRUFBRSxzQkFBc0I7YUFDOUI7U0FDRixDQUFDO0lBS0MsQ0FBQztJQUVKLG9CQUFvQjtRQUNsQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELHVCQUF1QixDQUFDLGtCQUEwQjtRQUNoRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGdDQUFnQyxDQUM5QixrQkFBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQzdDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLGtCQUEwQjtRQUMzQyxPQUFPLEVBQUUsQ0FBQztZQUNSO2dCQUNFLEdBQUcsRUFBRSxhQUFhO2FBQ25CO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLFlBQVk7YUFDbEI7WUFDRDtnQkFDRSxHQUFHLEVBQUUsZUFBZTthQUNyQjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxhQUFhO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsbUNBQW1DO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLG1DQUFtQyxDQUN6QyxxQkFBNkQ7UUFFN0QsT0FBTyxhQUFhLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFGLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFLENBQ25ELG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUNuRCxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEtBQUssbUJBQW1CLENBQUMsYUFBYSxDQUM5RSxDQUFDO1lBRUYsT0FBTztnQkFDTCxHQUFHLG1CQUFtQjtnQkFDdEIsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixJQUFJO29CQUMzQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUM3RCxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FDdEM7aUJBQ0YsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOztvSEFoR1UsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBQbHVnaW5Db25maWd1cmF0aW9uLFxuICBQbHVnaW5Db25maWd1cmF0aW9uV2l0aExvZ28sXG4gIFBsdWdpbkRlZmluaXRpb24sXG4gIFBsdWdpbkZ1bmN0aW9uLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtkZWxheSwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BsdWdpblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3BsdWdpbic7XG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgT1BFTl9aQUFLX0NPTkZJR1VSQVRJT05TID0gW1xuICAgIHtcbiAgICAgIGRlZmluaXRpb25LZXk6ICdvcGVuemFhaycsXG4gICAgICBrZXk6ICcxZWJkYWQ4Ny0zODk5LTRhYjctYjRhZC00MDMyMzdiMTdkYmQnLFxuICAgICAgdGl0bGU6ICdEZW4gSGFhZyBPcGVuIFphYWsgMScsXG4gICAgfSxcbiAgICB7XG4gICAgICBkZWZpbml0aW9uS2V5OiAnb3BlbnphYWsnLFxuICAgICAga2V5OiAnMWViZGFkODctMzg5OS00YWI3LWI0YWQtNDAzMjM3YjE3ZGJlJyxcbiAgICAgIHRpdGxlOiAnRGVuIEhhYWcgT3BlbiBaYWFrIDInLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVmaW5pdGlvbktleTogJ29wZW56YWFrJyxcbiAgICAgIGtleTogJzFlYmRhZDg3LTM4OTktNGFiNy1iNGFkLTQwMzIzN2IxN2RiZicsXG4gICAgICB0aXRsZTogJ0RlbiBIYWFnIE9wZW4gWmFhayAzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlZmluaXRpb25LZXk6ICdvcGVuemFhaycsXG4gICAgICBrZXk6ICcxZWJkYWQ4Ny0zODk5LTRhYjctYjRhZC00MDMyMzdiMTdkYmcnLFxuICAgICAgdGl0bGU6ICdEZW4gSGFhZyBPcGVuIFphYWsgNCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBkZWZpbml0aW9uS2V5OiAnb3BlbnphYWsnLFxuICAgICAga2V5OiAnMWViZGFkODctMzg5OS00YWI3LWI0YWQtNDAzMjM3YjE3ZGJoJyxcbiAgICAgIHRpdGxlOiAnRGVuIEhhYWcgT3BlbiBaYWFrIDUnLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5TZXJ2aWNlOiBQbHVnaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7fVxuXG4gIGdldFBsdWdpbkRlZmluaXRpb25zKCk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luRGVmaW5pdGlvbj4+IHtcbiAgICByZXR1cm4gb2YoW3trZXk6ICdvcGVuemFhayd9XSkucGlwZShkZWxheSgxNTAwKSk7XG4gIH1cblxuICBnZXRQbHVnaW5Db25maWd1cmF0aW9ucyhwbHVnaW5EZWZpbml0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbj4+IHtcbiAgICByZXR1cm4gb2YodGhpcy5PUEVOX1pBQUtfQ09ORklHVVJBVElPTlMpLnBpcGUoZGVsYXkoMTUwMCkpO1xuICB9XG5cbiAgZ2V0UGx1Z2luQ29uZmlndXJhdGlvbnNXaXRoTG9nb3MoXG4gICAgcGx1Z2luRGVmaW5pdGlvbklkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxBcnJheTxQbHVnaW5Db25maWd1cmF0aW9uPj4ge1xuICAgIHJldHVybiB0aGlzLnJldHVyblBsdWdpbkNvbmZpZ3VyYXRpb25zV2l0aExvZ29zKFxuICAgICAgdGhpcy5nZXRQbHVnaW5Db25maWd1cmF0aW9ucyhwbHVnaW5EZWZpbml0aW9uSWQpXG4gICAgKTtcbiAgfVxuXG4gIGdldFBsdWdpbkZ1bmN0aW9ucyhwbHVnaW5EZWZpbml0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luRnVuY3Rpb24+PiB7XG4gICAgcmV0dXJuIG9mKFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnY3JlYXRlLXphYWsnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnc2V0LXN0YXR1cycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzZXQtcmVzdWx0YWF0JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3NldC1iZXNsdWl0JyxcbiAgICAgIH0sXG4gICAgXSkucGlwZShkZWxheSgxNTAwKSk7XG4gIH1cblxuICBnZXRBbGxQbHVnaW5Db25maWd1cmF0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PFBsdWdpbkNvbmZpZ3VyYXRpb24+PiB7XG4gICAgcmV0dXJuIG9mKHRoaXMuT1BFTl9aQUFLX0NPTkZJR1VSQVRJT05TKS5waXBlKGRlbGF5KDE1MDApKTtcbiAgfVxuXG4gIGdldEFsbFBsdWdpbkNvbmZpZ3VyYXRpb25zV2l0aExvZ29zKCk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbj4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5QbHVnaW5Db25maWd1cmF0aW9uc1dpdGhMb2dvcyh0aGlzLmdldEFsbFBsdWdpbkNvbmZpZ3VyYXRpb25zKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXR1cm5QbHVnaW5Db25maWd1cmF0aW9uc1dpdGhMb2dvcyhcbiAgICBwbHVnaW5Db25maWd1cmF0aW9ucyQ6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbj4+XG4gICk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbldpdGhMb2dvPj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtwbHVnaW5Db25maWd1cmF0aW9ucyQsIHRoaXMucGx1Z2luU2VydmljZS5wbHVnaW5TcGVjaWZpY2F0aW9ucyRdKS5waXBlKFxuICAgICAgbWFwKChbcGx1Z2luQ29uZmlndXJhdGlvbnMsIHBsdWdpblNwZWNpZmljYXRpb25zXSkgPT5cbiAgICAgICAgcGx1Z2luQ29uZmlndXJhdGlvbnM/Lm1hcChwbHVnaW5Db25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBwbHVnaW5TcGVjaWZpY2F0aW9uID0gcGx1Z2luU3BlY2lmaWNhdGlvbnMuZmluZChcbiAgICAgICAgICAgIHNwZWNpZmljYXRpb24gPT4gc3BlY2lmaWNhdGlvbi5wbHVnaW5JZCA9PT0gcGx1Z2luQ29uZmlndXJhdGlvbi5kZWZpbml0aW9uS2V5XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5wbHVnaW5Db25maWd1cmF0aW9uLFxuICAgICAgICAgICAgLi4uKHBsdWdpblNwZWNpZmljYXRpb24/LnBsdWdpbkxvZ29CYXNlNjQgJiYge1xuICAgICAgICAgICAgICBwbHVnaW5Mb2dvQmFzZTY0OiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoXG4gICAgICAgICAgICAgICAgcGx1Z2luU3BlY2lmaWNhdGlvbj8ucGx1Z2luTG9nb0Jhc2U2NFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
106
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.PluginService }, { type: i3.DomSanitizer }, { type: i4.HttpClient }]; } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vcGx1Z2luLW1hbmFnZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9wbHVnaW4tbWFuYWdlbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUFjLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQVFuRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFPMUMsTUFBTSxPQUFPLHVCQUF1QjtJQTBCbEMsWUFDbUIsYUFBNEIsRUFDNUIsYUFBNEIsRUFDNUIsU0FBdUIsRUFDdkIsSUFBZ0I7UUFIaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBN0JsQiw2QkFBd0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBRTVFLG1CQUFjLEdBQUc7WUFDaEM7Z0JBQ0UsYUFBYSxFQUFFLFVBQVU7Z0JBQ3pCLEdBQUcsRUFBRSxzQ0FBc0M7Z0JBQzNDLEtBQUssRUFBRSxzQkFBc0I7YUFDOUI7WUFDRDtnQkFDRSxhQUFhLEVBQUUsVUFBVTtnQkFDekIsR0FBRyxFQUFFLHNDQUFzQztnQkFDM0MsS0FBSyxFQUFFLHNCQUFzQjthQUM5QjtZQUNEO2dCQUNFLGFBQWEsRUFBRSxnQkFBZ0I7Z0JBQy9CLEdBQUcsRUFBRSxzQ0FBc0M7Z0JBQzNDLEtBQUssRUFBRSwyQkFBMkI7YUFDbkM7WUFDRDtnQkFDRSxhQUFhLEVBQUUsZ0JBQWdCO2dCQUMvQixHQUFHLEVBQUUsc0NBQXNDO2dCQUMzQyxLQUFLLEVBQUUsMkJBQTJCO2FBQ25DO1NBQ0YsQ0FBQztJQU9DLENBQUM7SUFFSixvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLG1CQUFtQixDQUNwRCxDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QixDQUFDLGtCQUEwQjtRQUNoRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxnQ0FBZ0MsQ0FDOUIsa0JBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUM3QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDM0MsT0FBTyxFQUFFLENBQ1Asa0JBQWtCLEtBQUssVUFBVTtZQUMvQixDQUFDLENBQUM7Z0JBQ0U7b0JBQ0UsR0FBRyxFQUFFLGFBQWE7aUJBQ25CO2dCQUNEO29CQUNFLEdBQUcsRUFBRSxZQUFZO2lCQUNsQjtnQkFDRDtvQkFDRSxHQUFHLEVBQUUsZUFBZTtpQkFDckI7Z0JBQ0Q7b0JBQ0UsR0FBRyxFQUFFLGFBQWE7aUJBQ25CO2FBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBQyxDQUFDLENBQ2pDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsbUNBQW1DO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLG1DQUFtQyxDQUN6QyxxQkFBNkQ7UUFFN0QsT0FBTyxhQUFhLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFGLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFLENBQ25ELG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUNuRCxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEtBQUssbUJBQW1CLENBQUMsYUFBYSxDQUM5RSxDQUFDO1lBRUYsT0FBTztnQkFDTCxHQUFHLG1CQUFtQjtnQkFDdEIsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixJQUFJO29CQUMzQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUM3RCxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FDdEM7aUJBQ0YsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOztvSEFyR1UsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTsyRkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBQbHVnaW5Db25maWd1cmF0aW9uLFxuICBQbHVnaW5Db25maWd1cmF0aW9uV2l0aExvZ28sXG4gIFBsdWdpbkRlZmluaXRpb24sXG4gIFBsdWdpbkZ1bmN0aW9uLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtkZWxheSwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BsdWdpblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3BsdWdpbic7XG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgVkFMVElNT19BUElfRU5EUE9JTlRfVVJJID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy52YWx0aW1vQXBpLmVuZHBvaW50VXJpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgQ09ORklHVVJBVElPTlMgPSBbXG4gICAge1xuICAgICAgZGVmaW5pdGlvbktleTogJ29wZW56YWFrJyxcbiAgICAgIGtleTogJzFlYmRhZDg3LTM4OTktNGFiNy1iNGFkLTQwMzIzN2IxN2RiZCcsXG4gICAgICB0aXRsZTogJ0RlbiBIYWFnIE9wZW4gWmFhayAxJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlZmluaXRpb25LZXk6ICdvcGVuemFhaycsXG4gICAgICBrZXk6ICcxZWJkYWQ4Ny0zODk5LTRhYjctYjRhZC00MDMyMzdiMTdkYmUnLFxuICAgICAgdGl0bGU6ICdEZW4gSGFhZyBPcGVuIFphYWsgMicsXG4gICAgfSxcbiAgICB7XG4gICAgICBkZWZpbml0aW9uS2V5OiAnc21hcnRkb2N1bWVudHMnLFxuICAgICAga2V5OiAnMWViZGFkODctMzg5OS00YWI3LWI0YWQtNDAzMjM3YjE3ZGJ4JyxcbiAgICAgIHRpdGxlOiAnRGVuIEhhYWcgU21hcnREb2N1bWVudHMgMScsXG4gICAgfSxcbiAgICB7XG4gICAgICBkZWZpbml0aW9uS2V5OiAnc21hcnRkb2N1bWVudHMnLFxuICAgICAga2V5OiAnMWViZGFkODctMzg5OS00YWI3LWI0YWQtNDAzMjM3YjE3ZGJ5JyxcbiAgICAgIHRpdGxlOiAnRGVuIEhhYWcgU21hcnREb2N1bWVudHMgMicsXG4gICAgfSxcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5TZXJ2aWNlOiBQbHVnaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50XG4gICkge31cblxuICBnZXRQbHVnaW5EZWZpbml0aW9ucygpOiBPYnNlcnZhYmxlPEFycmF5PFBsdWdpbkRlZmluaXRpb24+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXJyYXk8UGx1Z2luRGVmaW5pdGlvbj4+KFxuICAgICAgYCR7dGhpcy5WQUxUSU1PX0FQSV9FTkRQT0lOVF9VUkl9cGx1Z2luL2RlZmluaXRpb25gXG4gICAgKTtcbiAgfVxuXG4gIGdldFBsdWdpbkNvbmZpZ3VyYXRpb25zKHBsdWdpbkRlZmluaXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcnJheTxQbHVnaW5Db25maWd1cmF0aW9uPj4ge1xuICAgIHJldHVybiBvZih0aGlzLkNPTkZJR1VSQVRJT05TKS5waXBlKGRlbGF5KDE1MDApKTtcbiAgfVxuXG4gIGdldFBsdWdpbkNvbmZpZ3VyYXRpb25zV2l0aExvZ29zKFxuICAgIHBsdWdpbkRlZmluaXRpb25JZDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbj4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5QbHVnaW5Db25maWd1cmF0aW9uc1dpdGhMb2dvcyhcbiAgICAgIHRoaXMuZ2V0UGx1Z2luQ29uZmlndXJhdGlvbnMocGx1Z2luRGVmaW5pdGlvbklkKVxuICAgICk7XG4gIH1cblxuICBnZXRQbHVnaW5GdW5jdGlvbnMocGx1Z2luRGVmaW5pdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5PFBsdWdpbkZ1bmN0aW9uPj4ge1xuICAgIHJldHVybiBvZihcbiAgICAgIHBsdWdpbkRlZmluaXRpb25JZCA9PT0gJ29wZW56YWFrJ1xuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAga2V5OiAnY3JlYXRlLXphYWsnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAga2V5OiAnc2V0LXN0YXR1cycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBrZXk6ICdzZXQtcmVzdWx0YWF0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGtleTogJ3NldC1iZXNsdWl0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFt7a2V5OiAnZ2VuZXJhdGUtZG9jdW1lbnQnfV1cbiAgICApLnBpcGUoZGVsYXkoMTUwMCkpO1xuICB9XG5cbiAgZ2V0QWxsUGx1Z2luQ29uZmlndXJhdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxQbHVnaW5Db25maWd1cmF0aW9uPj4ge1xuICAgIHJldHVybiBvZih0aGlzLkNPTkZJR1VSQVRJT05TKS5waXBlKGRlbGF5KDE1MDApKTtcbiAgfVxuXG4gIGdldEFsbFBsdWdpbkNvbmZpZ3VyYXRpb25zV2l0aExvZ29zKCk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbj4+IHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5QbHVnaW5Db25maWd1cmF0aW9uc1dpdGhMb2dvcyh0aGlzLmdldEFsbFBsdWdpbkNvbmZpZ3VyYXRpb25zKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXR1cm5QbHVnaW5Db25maWd1cmF0aW9uc1dpdGhMb2dvcyhcbiAgICBwbHVnaW5Db25maWd1cmF0aW9ucyQ6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbj4+XG4gICk6IE9ic2VydmFibGU8QXJyYXk8UGx1Z2luQ29uZmlndXJhdGlvbldpdGhMb2dvPj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtwbHVnaW5Db25maWd1cmF0aW9ucyQsIHRoaXMucGx1Z2luU2VydmljZS5wbHVnaW5TcGVjaWZpY2F0aW9ucyRdKS5waXBlKFxuICAgICAgbWFwKChbcGx1Z2luQ29uZmlndXJhdGlvbnMsIHBsdWdpblNwZWNpZmljYXRpb25zXSkgPT5cbiAgICAgICAgcGx1Z2luQ29uZmlndXJhdGlvbnM/Lm1hcChwbHVnaW5Db25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBwbHVnaW5TcGVjaWZpY2F0aW9uID0gcGx1Z2luU3BlY2lmaWNhdGlvbnMuZmluZChcbiAgICAgICAgICAgIHNwZWNpZmljYXRpb24gPT4gc3BlY2lmaWNhdGlvbi5wbHVnaW5JZCA9PT0gcGx1Z2luQ29uZmlndXJhdGlvbi5kZWZpbml0aW9uS2V5XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5wbHVnaW5Db25maWd1cmF0aW9uLFxuICAgICAgICAgICAgLi4uKHBsdWdpblNwZWNpZmljYXRpb24/LnBsdWdpbkxvZ29CYXNlNjQgJiYge1xuICAgICAgICAgICAgICBwbHVnaW5Mb2dvQmFzZTY0OiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoXG4gICAgICAgICAgICAgICAgcGx1Z2luU3BlY2lmaWNhdGlvbj8ucGx1Z2luTG9nb0Jhc2U2NFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,16 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, ViewContainerRef, ViewChild, NgModule } from '@angular/core';
2
+ import { Injectable, Component, EventEmitter, Output, ViewChild, NgModule } from '@angular/core';
3
3
  import { of, combineLatest, Subject, BehaviorSubject } from 'rxjs';
4
4
  import { delay, map, take, tap } from 'rxjs/operators';
5
- import * as i1 from '@valtimo/plugin';
6
- import { PluginTranslatePipeModule } from '@valtimo/plugin';
7
- import * as i2 from '@angular/platform-browser';
5
+ import * as i1 from '@valtimo/config';
6
+ import { ROLE_ADMIN } from '@valtimo/config';
7
+ import * as i2 from '@valtimo/plugin';
8
+ import { PluginTranslatePipeModule, PluginConfigurationContainerModule } from '@valtimo/plugin';
9
+ import * as i3 from '@angular/platform-browser';
10
+ import * as i4 from '@angular/common/http';
8
11
  import * as i1$1 from '@angular/router';
9
12
  import { RouterModule } from '@angular/router';
10
- import * as i4 from '@angular/common';
13
+ import * as i4$1 from '@angular/common';
11
14
  import { CommonModule } from '@angular/common';
12
15
  import { AuthGuardService } from '@valtimo/security';
13
- import { ROLE_ADMIN } from '@valtimo/config';
14
16
  import * as i2$1 from '@ngx-translate/core';
15
17
  import { TranslateModule } from '@ngx-translate/core';
16
18
  import * as i2$2 from '@valtimo/user-interface';
@@ -46,10 +48,13 @@ import { FlexLayoutModule } from '@angular/flex-layout';
46
48
  * limitations under the License.
47
49
  */
48
50
  class PluginManagementService {
49
- constructor(pluginService, sanitizer) {
51
+ constructor(configService, pluginService, sanitizer, http) {
52
+ this.configService = configService;
50
53
  this.pluginService = pluginService;
51
54
  this.sanitizer = sanitizer;
52
- this.OPEN_ZAAK_CONFIGURATIONS = [
55
+ this.http = http;
56
+ this.VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;
57
+ this.CONFIGURATIONS = [
53
58
  {
54
59
  definitionKey: 'openzaak',
55
60
  key: '1ebdad87-3899-4ab7-b4ad-403237b17dbd',
@@ -61,49 +66,46 @@ class PluginManagementService {
61
66
  title: 'Den Haag Open Zaak 2',
62
67
  },
63
68
  {
64
- definitionKey: 'openzaak',
65
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbf',
66
- title: 'Den Haag Open Zaak 3',
67
- },
68
- {
69
- definitionKey: 'openzaak',
70
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbg',
71
- title: 'Den Haag Open Zaak 4',
69
+ definitionKey: 'smartdocuments',
70
+ key: '1ebdad87-3899-4ab7-b4ad-403237b17dbx',
71
+ title: 'Den Haag SmartDocuments 1',
72
72
  },
73
73
  {
74
- definitionKey: 'openzaak',
75
- key: '1ebdad87-3899-4ab7-b4ad-403237b17dbh',
76
- title: 'Den Haag Open Zaak 5',
74
+ definitionKey: 'smartdocuments',
75
+ key: '1ebdad87-3899-4ab7-b4ad-403237b17dby',
76
+ title: 'Den Haag SmartDocuments 2',
77
77
  },
78
78
  ];
79
79
  }
80
80
  getPluginDefinitions() {
81
- return of([{ key: 'openzaak' }]).pipe(delay(1500));
81
+ return this.http.get(`${this.VALTIMO_API_ENDPOINT_URI}plugin/definition`);
82
82
  }
83
83
  getPluginConfigurations(pluginDefinitionId) {
84
- return of(this.OPEN_ZAAK_CONFIGURATIONS).pipe(delay(1500));
84
+ return of(this.CONFIGURATIONS).pipe(delay(1500));
85
85
  }
86
86
  getPluginConfigurationsWithLogos(pluginDefinitionId) {
87
87
  return this.returnPluginConfigurationsWithLogos(this.getPluginConfigurations(pluginDefinitionId));
88
88
  }
89
89
  getPluginFunctions(pluginDefinitionId) {
90
- return of([
91
- {
92
- key: 'create-zaak',
93
- },
94
- {
95
- key: 'set-status',
96
- },
97
- {
98
- key: 'set-resultaat',
99
- },
100
- {
101
- key: 'set-besluit',
102
- },
103
- ]).pipe(delay(1500));
90
+ return of(pluginDefinitionId === 'openzaak'
91
+ ? [
92
+ {
93
+ key: 'create-zaak',
94
+ },
95
+ {
96
+ key: 'set-status',
97
+ },
98
+ {
99
+ key: 'set-resultaat',
100
+ },
101
+ {
102
+ key: 'set-besluit',
103
+ },
104
+ ]
105
+ : [{ key: 'generate-document' }]).pipe(delay(1500));
104
106
  }
105
107
  getAllPluginConfigurations() {
106
- return of(this.OPEN_ZAAK_CONFIGURATIONS).pipe(delay(1500));
108
+ return of(this.CONFIGURATIONS).pipe(delay(1500));
107
109
  }
108
110
  getAllPluginConfigurationsWithLogos() {
109
111
  return this.returnPluginConfigurationsWithLogos(this.getAllPluginConfigurations());
@@ -117,14 +119,14 @@ class PluginManagementService {
117
119
  })));
118
120
  }
119
121
  }
120
- PluginManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, deps: [{ token: i1.PluginService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
122
+ 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 });
121
123
  PluginManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, providedIn: 'root' });
122
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementService, decorators: [{
123
125
  type: Injectable,
124
126
  args: [{
125
127
  providedIn: 'root',
126
128
  }]
127
- }], ctorParameters: function () { return [{ type: i1.PluginService }, { type: i2.DomSanitizer }]; } });
129
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.PluginService }, { type: i3.DomSanitizer }, { type: i4.HttpClient }]; } });
128
130
 
129
131
  /*
130
132
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -150,17 +152,17 @@ class PluginManagementStateService {
150
152
  this._delete$ = new Subject();
151
153
  this._hideModalSaveButton$ = new BehaviorSubject(false);
152
154
  this._pluginDefinitions$ = new BehaviorSubject(undefined);
153
- this._pluginDefinitionsWithLogos$ = combineLatest([this._pluginDefinitions$, this.pluginService.pluginSpecifications$]).pipe(map(([pluginDefinitions, pluginSpecifications]) => pluginDefinitions === null || pluginDefinitions === void 0 ? void 0 : pluginDefinitions.map(pluginDefinition => {
155
+ this._pluginDefinitionsWithLogos$ = combineLatest([
156
+ this._pluginDefinitions$,
157
+ this.pluginService.pluginSpecifications$,
158
+ this.pluginService.availablePluginIds$,
159
+ ]).pipe(map(([pluginDefinitions, pluginSpecifications, availablePluginIds]) => pluginDefinitions === null || pluginDefinitions === void 0 ? void 0 : pluginDefinitions.filter(pluginDefinition => availablePluginIds.includes(pluginDefinition.key)).map(pluginDefinition => {
154
160
  const pluginSpecification = pluginSpecifications.find(specification => specification.pluginId === pluginDefinition.key);
155
161
  return Object.assign(Object.assign({}, pluginDefinition), ((pluginSpecification === null || pluginSpecification === void 0 ? void 0 : pluginSpecification.pluginLogoBase64) && {
156
162
  pluginLogoBase64: this.sanitizer.bypassSecurityTrustResourceUrl(pluginSpecification === null || pluginSpecification === void 0 ? void 0 : pluginSpecification.pluginLogoBase64),
157
163
  }));
158
164
  })));
159
165
  this._selectedPluginDefinition$ = new BehaviorSubject(undefined);
160
- this._selectedPluginSpecification$ = combineLatest([this.pluginService.pluginSpecifications$, this.selectedPluginDefinition$]).pipe(map(([pluginSpecifications, selectedPluginDefinition]) => {
161
- const selectedPluginSpecification = pluginSpecifications === null || pluginSpecifications === void 0 ? void 0 : pluginSpecifications.find(specification => specification.pluginId === (selectedPluginDefinition === null || selectedPluginDefinition === void 0 ? void 0 : selectedPluginDefinition.key));
162
- return selectedPluginSpecification || null;
163
- }));
164
166
  }
165
167
  get showModal$() {
166
168
  return this._showModal$.asObservable();
@@ -195,14 +197,11 @@ class PluginManagementStateService {
195
197
  get hideModalSaveButton$() {
196
198
  return this._hideModalSaveButton$.asObservable();
197
199
  }
198
- get selectedPluginSpecification$() {
199
- return this._selectedPluginSpecification$;
200
- }
201
200
  showModal(modalType) {
202
201
  this._showModal$.next(modalType);
203
202
  }
204
203
  hideModal() {
205
- this._hideModal$.next();
204
+ this._hideModal$.next(null);
206
205
  }
207
206
  disableInput() {
208
207
  this._inputDisabled$.next(true);
@@ -231,12 +230,12 @@ class PluginManagementStateService {
231
230
  save() {
232
231
  this._saveButtonDisabled$.pipe(take(1)).subscribe(saveButtonDisabled => {
233
232
  if (!saveButtonDisabled) {
234
- this._save$.next();
233
+ this._save$.next(null);
235
234
  }
236
235
  });
237
236
  }
238
237
  delete() {
239
- this._delete$.next();
238
+ this._delete$.next(null);
240
239
  }
241
240
  hideModalSaveButton() {
242
241
  this._hideModalSaveButton$.next(true);
@@ -248,14 +247,14 @@ class PluginManagementStateService {
248
247
  this._selectedPluginDefinition$.next(undefined);
249
248
  }
250
249
  }
251
- PluginManagementStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, deps: [{ token: i1.PluginService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
250
+ 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 });
252
251
  PluginManagementStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, providedIn: 'root' });
253
252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementStateService, decorators: [{
254
253
  type: Injectable,
255
254
  args: [{
256
255
  providedIn: 'root',
257
256
  }]
258
- }], ctorParameters: function () { return [{ type: i1.PluginService }, { type: i2.DomSanitizer }]; } });
257
+ }], ctorParameters: function () { return [{ type: i2.PluginService }, { type: i3.DomSanitizer }]; } });
259
258
 
260
259
  /*
261
260
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -322,10 +321,10 @@ class PluginAddSelectComponent {
322
321
  }
323
322
  }
324
323
  PluginAddSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddSelectComponent, deps: [{ token: PluginManagementService }, { token: PluginManagementStateService }, { token: i2$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
325
- PluginAddSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginAddSelectComponent, selector: "valtimo-plugin-add-select", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginDefinitionsWithLogos$ | async as pluginDefinitions; else loading\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <div fxFlex=\"33.3%\" *ngFor=\"let pluginDefinition of pluginDefinitions\">\n <v-card\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [description]=\"'description' | pluginTranslate: pluginDefinition.key | async\"\n [selectable]=\"true\"\n [selected]=\"(selectedPluginDefinition$ | async)?.key === pluginDefinition.key\"\n [fullHeight]=\"true\"\n (selectEvent)=\"selectPluginDefinition(pluginDefinition)\"\n (deselectEvent)=\"deselectPluginDefinition()\"\n >\n <div *ngIf=\"pluginDefinition.pluginLogoBase64\" role=\"header\">\n <img\n class=\"plugin-definition-logo\"\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [src]=\"pluginDefinition.pluginLogoBase64\"\n />\n </div>\n </v-card>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingCard>\n <div fxFlex=\"33.3%\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.btn-back{position:absolute}.cards-container{display:flex;flex-flow:row wrap;width:100%}.card{width:calc(33.3% - 20px);margin-right:30px}.card:nth-child(3n+3){margin-right:0}.card-header{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plugin-definition-logo{height:60px}\n"], components: [{ type: i2$2.CardComponent, selector: "v-card", inputs: ["titleTranslationKey", "title", "descriptionTranslationKey", "description", "selectable", "selected", "fullHeight", "loading", "loadingTitle", "loadingDescription"], outputs: ["selectEvent", "deselectEvent"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i4.AsyncPipe, "pluginTranslate": i1.PluginTranslatePipe } });
324
+ 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 } });
326
325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddSelectComponent, decorators: [{
327
326
  type: Component,
328
- args: [{ selector: 'valtimo-plugin-add-select', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"pluginDefinitionsWithLogos$ | async as pluginDefinitions; else loading\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <div fxFlex=\"33.3%\" *ngFor=\"let pluginDefinition of pluginDefinitions\">\n <v-card\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [description]=\"'description' | pluginTranslate: pluginDefinition.key | async\"\n [selectable]=\"true\"\n [selected]=\"(selectedPluginDefinition$ | async)?.key === pluginDefinition.key\"\n [fullHeight]=\"true\"\n (selectEvent)=\"selectPluginDefinition(pluginDefinition)\"\n (deselectEvent)=\"deselectPluginDefinition()\"\n >\n <div *ngIf=\"pluginDefinition.pluginLogoBase64\" role=\"header\">\n <img\n class=\"plugin-definition-logo\"\n [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n [src]=\"pluginDefinition.pluginLogoBase64\"\n />\n </div>\n </v-card>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"22px grid\">\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #loadingCard>\n <div fxFlex=\"33.3%\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.btn-back{position:absolute}.cards-container{display:flex;flex-flow:row wrap;width:100%}.card{width:calc(33.3% - 20px);margin-right:30px}.card:nth-child(3n+3){margin-right:0}.card-header{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plugin-definition-logo{height:60px}\n"] }]
327
+ 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"] }]
329
328
  }], ctorParameters: function () { return [{ type: PluginManagementService }, { type: PluginManagementStateService }, { type: i2$1.TranslateService }]; } });
330
329
 
331
330
  /*
@@ -346,27 +345,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
346
345
  class PluginConfigureComponent {
347
346
  constructor(stateService) {
348
347
  this.stateService = stateService;
349
- this.noConfigurationComponentAvailable$ = new BehaviorSubject(false);
350
- this.selectedPluginSpecification$ = this.stateService.selectedPluginSpecification$.pipe(tap(selectedPluginSpecification => {
351
- this.dynamicContainer.clear();
352
- if (selectedPluginSpecification) {
353
- const componentInstance = this.dynamicContainer.createComponent(selectedPluginSpecification.pluginConfigurationComponent);
354
- this.noConfigurationComponentAvailable$.next(false);
355
- }
356
- else {
357
- this.noConfigurationComponentAvailable$.next(true);
358
- }
359
- }));
348
+ this.valid = new EventEmitter();
349
+ this.pluginDefinitionKey$ = this.stateService.selectedPluginDefinition$.pipe(map(definition => definition === null || definition === void 0 ? void 0 : definition.key));
350
+ }
351
+ onValid(valid) {
352
+ this.valid.emit(valid);
360
353
  }
361
354
  }
362
355
  PluginConfigureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginConfigureComponent, deps: [{ token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component });
363
- PluginConfigureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginConfigureComponent, selector: "valtimo-plugin-configure", viewQueries: [{ propertyName: "dynamicContainer", first: true, predicate: ["pluginConfigurationComponent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"selectedPluginSpecification$ | async\"></ng-container>\n<ng-template #pluginConfigurationComponent></ng-template>\n<ng-container *ngIf=\"noConfigurationComponentAvailable$ | async\">\n <v-paragraph>{{ 'plugin.noConfigurationComponent' }}</v-paragraph>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i2$2.ParagraphComponent, selector: "v-paragraph" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe } });
356
+ 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 } });
364
357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginConfigureComponent, decorators: [{
365
358
  type: Component,
366
- args: [{ selector: 'valtimo-plugin-configure', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"selectedPluginSpecification$ | async\"></ng-container>\n<ng-template #pluginConfigurationComponent></ng-template>\n<ng-container *ngIf=\"noConfigurationComponentAvailable$ | async\">\n <v-paragraph>{{ 'plugin.noConfigurationComponent' }}</v-paragraph>\n</ng-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
367
- }], ctorParameters: function () { return [{ type: PluginManagementStateService }]; }, propDecorators: { dynamicContainer: [{
368
- type: ViewChild,
369
- args: ['pluginConfigurationComponent', { static: true, read: ViewContainerRef }]
359
+ 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"] }]
360
+ }], ctorParameters: function () { return [{ type: PluginManagementStateService }]; }, propDecorators: { valid: [{
361
+ type: Output
370
362
  }] } });
371
363
 
372
364
  /*
@@ -390,6 +382,7 @@ class PluginAddModalComponent {
390
382
  this.modalService = modalService;
391
383
  this.inputDisabled$ = this.stateService.inputDisabled$;
392
384
  this.selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;
385
+ this.configurationValid$ = new BehaviorSubject(false);
393
386
  this.returnToFirstStepSubject$ = new Subject();
394
387
  }
395
388
  ngOnInit() {
@@ -398,6 +391,7 @@ class PluginAddModalComponent {
398
391
  }
399
392
  complete() {
400
393
  this.stateService.save();
394
+ this.hide();
401
395
  }
402
396
  delete() {
403
397
  this.stateService.delete();
@@ -413,6 +407,9 @@ class PluginAddModalComponent {
413
407
  }, appearingDelay);
414
408
  });
415
409
  }
410
+ onValid(valid) {
411
+ this.configurationValid$.next(valid);
412
+ }
416
413
  openShowSubscription() {
417
414
  this.showSubscription = this.stateService.showModal$.subscribe(modalType => {
418
415
  if (modalType === 'add') {
@@ -433,10 +430,10 @@ class PluginAddModalComponent {
433
430
  }
434
431
  }
435
432
  PluginAddModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddModalComponent, deps: [{ token: PluginManagementStateService }, { token: i2$2.ModalService }], target: i0.ɵɵFactoryTarget.Component });
436
- PluginAddModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal", viewQueries: [{ propertyName: "pluginAddModal", first: true, predicate: ["pluginAddModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #pluginAddModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n <valtimo-plugin-configure></valtimo-plugin-configure>\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step1\"\n [nextButtonEnabled]=\"selectedPluginDefinition$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step2\"\n [nextButtonEnabled]=\"false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i2$2.StepperContainerComponent, selector: "v-stepper-container", inputs: ["returnToFirstStepSubject$", "disabled"], outputs: ["cancelClickEvent", "completeEvent", "nextStepEvent"] }, { type: i2$2.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { type: i2$2.StepperHeaderComponent, selector: "v-stepper-header" }, { type: i2$2.StepperContentComponent, selector: "v-stepper-content" }, { type: i2$2.StepperStepComponent, selector: "v-stepper-step", inputs: ["titleTranslationKey"] }, { type: PluginAddSelectComponent, selector: "valtimo-plugin-add-select" }, { type: PluginConfigureComponent, selector: "valtimo-plugin-configure" }, { type: i2$2.StepperFooterComponent, selector: "v-stepper-footer" }, { type: i2$2.StepperFooterStepComponent, selector: "v-stepper-footer-step", inputs: ["nextButtonEnabled", "completeButtonEnabled", "nextButtonTranslationKey", "cancelButtonTranslationKey", "completeButtonTranslationKey", "completeButtonMdiIcon", "showCompleteButton"] }], pipes: { "async": i4.AsyncPipe } });
433
+ 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 } });
437
434
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginAddModalComponent, decorators: [{
438
435
  type: Component,
439
- args: [{ selector: 'valtimo-plugin-add-modal', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #pluginAddModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n <valtimo-plugin-configure></valtimo-plugin-configure>\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step1\"\n [nextButtonEnabled]=\"selectedPluginDefinition$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"pluginManagement.addSteps.step2\"\n [nextButtonEnabled]=\"false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
436
+ 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"] }]
440
437
  }], ctorParameters: function () { return [{ type: PluginManagementStateService }, { type: i2$2.ModalService }]; }, propDecorators: { pluginAddModal: [{
441
438
  type: ViewChild,
442
439
  args: ['pluginAddModal']
@@ -489,12 +486,12 @@ class PluginManagementComponent {
489
486
  this.stateService.showModal('add');
490
487
  }
491
488
  }
492
- PluginManagementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementComponent, deps: [{ token: PluginManagementService }, { token: i2$1.TranslateService }, { token: PluginManagementStateService }, { token: i1.PluginTranslationService }], target: i0.ɵɵFactoryTarget.Component });
493
- PluginManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: PluginManagementComponent, selector: "valtimo-plugin-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n columns: columns$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.plugins.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.plugins.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n <v-page-header-actions>\n <v-button\n (clickEvent)=\"showAddModal()\"\n type=\"primary\"\n mdiIcon=\"plus\"\n [disabled]=\"obs.loading\"\n >\n {{ 'pluginManagement.add' | translate }}\n </v-button>\n </v-page-header-actions>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"false\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-plugin-add-modal></valtimo-plugin-add-modal>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i2$2.PageContainerComponent, selector: "v-page-container" }, { type: i2$2.PageHeaderComponent, selector: "v-page-header" }, { type: i2$2.PageHeaderIntroductionComponent, selector: "v-page-header-introduction" }, { type: i2$2.TitleComponent, selector: "v-title", inputs: ["type", "margin"] }, { type: i2$2.ParagraphComponent, selector: "v-paragraph" }, { type: i2$2.PageHeaderActionsComponent, selector: "v-page-header-actions" }, { type: i2$2.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled"], outputs: ["clickEvent"] }, { type: i2$2.PageContentComponent, selector: "v-page-content" }, { type: i2$2.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "noResultsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "maxPaginationItemSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4.AsyncPipe, "translate": i2$1.TranslatePipe } });
489
+ 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 });
490
+ 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 } });
494
491
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementComponent, decorators: [{
495
492
  type: Component,
496
493
  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"] }]
497
- }], ctorParameters: function () { return [{ type: PluginManagementService }, { type: i2$1.TranslateService }, { type: PluginManagementStateService }, { type: i1.PluginTranslationService }]; } });
494
+ }], ctorParameters: function () { return [{ type: PluginManagementService }, { type: i2$1.TranslateService }, { type: PluginManagementStateService }, { type: i2.PluginTranslationService }]; } });
498
495
 
499
496
  /*
500
497
  * Copyright 2015-2020 Ritense BV, the Netherlands.
@@ -558,7 +555,8 @@ PluginManagementModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
558
555
  ModalModule,
559
556
  ButtonModule,
560
557
  CardModule,
561
- PluginTranslatePipeModule], exports: [PluginManagementComponent,
558
+ PluginTranslatePipeModule,
559
+ PluginConfigurationContainerModule], exports: [PluginManagementComponent,
562
560
  PluginAddModalComponent,
563
561
  PluginAddSelectComponent,
564
562
  PluginConfigureComponent] });
@@ -576,6 +574,7 @@ PluginManagementModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
576
574
  ButtonModule,
577
575
  CardModule,
578
576
  PluginTranslatePipeModule,
577
+ PluginConfigurationContainerModule,
579
578
  ]] });
580
579
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: PluginManagementModule, decorators: [{
581
580
  type: NgModule,
@@ -601,6 +600,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
601
600
  ButtonModule,
602
601
  CardModule,
603
602
  PluginTranslatePipeModule,
603
+ PluginConfigurationContainerModule,
604
604
  ],
605
605
  exports: [
606
606
  PluginManagementComponent,