@valtimo/plugin-management 12.6.1 → 12.8.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.
@@ -13,11 +13,13 @@ import { AuthGuardService } from '@valtimo/security';
13
13
  import { ROLE_ADMIN } from '@valtimo/config';
14
14
  import * as i4$1 from '@valtimo/components';
15
15
  import { ViewType, PageModule, ParagraphModule, TitleModule, TableModule, StepperModule, VModalModule, ButtonModule, VCardModule, CarbonListModule, ValtimoCdsModalDirectiveModule } from '@valtimo/components';
16
+ import { cloneDeep } from 'lodash';
17
+ import { v4 } from 'uuid';
16
18
  import * as i3$1 from 'ngx-logger';
17
19
  import * as i3 from '@ngx-translate/core';
18
20
  import { TranslateModule } from '@ngx-translate/core';
19
21
  import * as i5 from 'carbon-components-angular';
20
- import { ButtonModule as ButtonModule$1, ModalModule, IconModule } from 'carbon-components-angular';
22
+ import { ButtonModule as ButtonModule$1, ModalModule, IconModule, LayerModule } from 'carbon-components-angular';
21
23
 
22
24
  /*
23
25
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -298,11 +300,11 @@ class PluginConfigureComponent {
298
300
  this.configuration.emit(configuration);
299
301
  }
300
302
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginConfigureComponent, deps: [{ token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component }); }
301
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginConfigureComponent, selector: "valtimo-plugin-configure", outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "selectedPluginConfiguration$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
303
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginConfigureComponent, selector: "valtimo-plugin-configure", outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 [cdsLayer]=\"1\"\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-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "selectedPluginConfiguration$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
302
304
  }
303
305
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginConfigureComponent, decorators: [{
304
306
  type: Component,
305
- args: [{ selector: 'valtimo-plugin-configure', template: "<!--\n ~ Copyright 2015-2024 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-2024 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"] }]
307
+ args: [{ selector: 'valtimo-plugin-configure', template: "<!--\n ~ Copyright 2015-2024 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 [cdsLayer]=\"1\"\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-2024 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"] }]
306
308
  }], ctorParameters: () => [{ type: PluginManagementStateService }], propDecorators: { valid: [{
307
309
  type: Output
308
310
  }], configuration: [{
@@ -425,11 +427,11 @@ class PluginEditComponent {
425
427
  this.configuration.emit(configuration);
426
428
  }
427
429
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginEditComponent, deps: [{ token: PluginManagementStateService }], target: i0.ɵɵFactoryTarget.Component }); }
428
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginEditComponent, selector: "valtimo-plugin-edit", outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "selectedPluginConfiguration$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
430
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginEditComponent, selector: "valtimo-plugin-edit", outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 [cdsLayer]=\"1\"\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-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PluginConfigurationContainerComponent, selector: "valtimo-plugin-configuration-container", inputs: ["type", "pluginDefinitionKey", "functionKey", "save$", "disabled$", "selectedPluginConfiguration$", "prefillConfiguration$"], outputs: ["valid", "configuration"] }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
429
431
  }
430
432
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginEditComponent, decorators: [{
431
433
  type: Component,
432
- args: [{ selector: 'valtimo-plugin-edit', template: "<!--\n ~ Copyright 2015-2024 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-2024 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"] }]
434
+ args: [{ selector: 'valtimo-plugin-edit', template: "<!--\n ~ Copyright 2015-2024 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 [cdsLayer]=\"1\"\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-2024 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"] }]
433
435
  }], ctorParameters: () => [{ type: PluginManagementStateService }], propDecorators: { valid: [{
434
436
  type: Output
435
437
  }], configuration: [{
@@ -457,6 +459,7 @@ class PluginEditModalComponent {
457
459
  this.pluginManagementService = pluginManagementService;
458
460
  this.logger = logger;
459
461
  this.open = false;
462
+ this.saveNewConfiguration = false;
460
463
  this.closeModal = new EventEmitter();
461
464
  this.inputDisabled$ = this.stateService.inputDisabled$;
462
465
  this.selectedPluginConfiguration$ = this.stateService.selectedPluginConfiguration$;
@@ -491,6 +494,10 @@ class PluginEditModalComponent {
491
494
  }
492
495
  onPluginConfiguration(configuration) {
493
496
  this.stateService.disableInput();
497
+ if (this.saveNewConfiguration) {
498
+ this.saveNewPluginConfiguration(configuration);
499
+ return;
500
+ }
494
501
  this.stateService.selectedPluginConfiguration$
495
502
  .pipe(take(1))
496
503
  .subscribe(selectedPluginConfiguration => {
@@ -500,23 +507,48 @@ class PluginEditModalComponent {
500
507
  delete configurationData['configurationTitle'];
501
508
  this.pluginManagementService
502
509
  .updatePluginConfiguration(selectedPluginConfiguration.id, configurationId, configurationTitle, configurationData)
503
- .subscribe(() => {
504
- this.stateService.refresh();
505
- this.hide();
506
- }, () => {
507
- this.logger.error('Something went wrong with updating the plugin configuration.');
508
- this.stateService.enableInput();
510
+ .subscribe({
511
+ next: () => {
512
+ this.stateService.refresh();
513
+ this.hide();
514
+ },
515
+ error: () => {
516
+ this.logger.error('Something went wrong with updating the plugin configuration.');
517
+ this.stateService.enableInput();
518
+ },
519
+ });
520
+ });
521
+ }
522
+ saveNewPluginConfiguration(configuration) {
523
+ this.stateService.selectedPluginConfiguration$
524
+ .pipe(take(1))
525
+ .subscribe(selectedPluginConfiguration => {
526
+ const duplicatedConfiguration = { ...selectedPluginConfiguration, properties: configuration };
527
+ duplicatedConfiguration.title = duplicatedConfiguration.properties.configurationTitle;
528
+ delete duplicatedConfiguration.properties.configurationTitle;
529
+ delete duplicatedConfiguration.properties.configurationId;
530
+ this.pluginManagementService.savePluginConfiguration(duplicatedConfiguration).subscribe({
531
+ next: () => {
532
+ this.stateService.refresh();
533
+ this.hide();
534
+ },
535
+ error: () => {
536
+ this.logger.error('Something went wrong with saving the duplicated plugin configuration.');
537
+ this.stateService.enableInput();
538
+ },
509
539
  });
510
540
  });
511
541
  }
512
542
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginEditModalComponent, deps: [{ token: PluginManagementStateService }, { token: i2.PluginManagementService }, { token: i3$1.NGXLogger }], target: i0.ɵɵFactoryTarget.Component }); }
513
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginEditModalComponent, selector: "valtimo-plugin-edit-modal", inputs: { open: "open" }, outputs: { closeModal: "closeModal" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n #pluginEditModal\n valtimoCdsModal\n [open]=\"open\"\n (close)=\"hide()\"\n *ngIf=\"{selectedConfiguration: selectedPluginConfiguration$ | async} as obs\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"hide()\">\n {{\n obs.selectedConfiguration?.title +\n ' - ' +\n ('title' | pluginTranslate: obs.selectedConfiguration?.pluginDefinition?.key | async)\n }}\n </cds-modal-header>\n <section cdsModalContent>\n <valtimo-plugin-edit\n (valid)=\"onPluginValid($event)\"\n (configuration)=\"onPluginConfiguration($event)\"\n ></valtimo-plugin-edit>\n </section>\n <cds-modal-footer>\n <button cdsButton=\"danger\" (click)=\"delete()\" [disabled]=\"inputDisabled$ | async\">\n {{ 'pluginManagement.remove' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [disabled]=\"(configurationValid$ | async) === false || (inputDisabled$ | async)\"\n (click)=\"save()\"\n >\n {{ 'pluginManagement.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "component", type: PluginEditComponent, selector: "valtimo-plugin-edit", outputs: ["valid", "configuration"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i2.PluginTranslatePipe, name: "pluginTranslate" }] }); }
543
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginEditModalComponent, selector: "valtimo-plugin-edit-modal", inputs: { open: "open", saveNewConfiguration: "saveNewConfiguration" }, outputs: { closeModal: "closeModal" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n #pluginEditModal\n valtimoCdsModal\n [open]=\"open\"\n (close)=\"hide()\"\n *ngIf=\"{selectedConfiguration: selectedPluginConfiguration$ | async} as obs\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"hide()\">\n {{\n obs.selectedConfiguration?.title +\n ' - ' +\n ('title' | pluginTranslate: obs.selectedConfiguration?.pluginDefinition?.key | async)\n }}\n </cds-modal-header>\n <section cdsModalContent>\n <valtimo-plugin-edit\n (valid)=\"onPluginValid($event)\"\n (configuration)=\"onPluginConfiguration($event)\"\n ></valtimo-plugin-edit>\n </section>\n <cds-modal-footer>\n <button cdsButton=\"danger\" (click)=\"delete()\" [disabled]=\"inputDisabled$ | async\">\n {{ 'pluginManagement.remove' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [disabled]=\"(configurationValid$ | async) === false || (inputDisabled$ | async)\"\n (click)=\"save()\"\n >\n {{ 'pluginManagement.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "component", type: PluginEditComponent, selector: "valtimo-plugin-edit", outputs: ["valid", "configuration"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i2.PluginTranslatePipe, name: "pluginTranslate" }] }); }
514
544
  }
515
545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginEditModalComponent, decorators: [{
516
546
  type: Component,
517
547
  args: [{ selector: 'valtimo-plugin-edit-modal', template: "<!--\n ~ Copyright 2015-2024 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<cds-modal\n #pluginEditModal\n valtimoCdsModal\n [open]=\"open\"\n (close)=\"hide()\"\n *ngIf=\"{selectedConfiguration: selectedPluginConfiguration$ | async} as obs\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"hide()\">\n {{\n obs.selectedConfiguration?.title +\n ' - ' +\n ('title' | pluginTranslate: obs.selectedConfiguration?.pluginDefinition?.key | async)\n }}\n </cds-modal-header>\n <section cdsModalContent>\n <valtimo-plugin-edit\n (valid)=\"onPluginValid($event)\"\n (configuration)=\"onPluginConfiguration($event)\"\n ></valtimo-plugin-edit>\n </section>\n <cds-modal-footer>\n <button cdsButton=\"danger\" (click)=\"delete()\" [disabled]=\"inputDisabled$ | async\">\n {{ 'pluginManagement.remove' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [disabled]=\"(configurationValid$ | async) === false || (inputDisabled$ | async)\"\n (click)=\"save()\"\n >\n {{ 'pluginManagement.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
518
548
  }], ctorParameters: () => [{ type: PluginManagementStateService }, { type: i2.PluginManagementService }, { type: i3$1.NGXLogger }], propDecorators: { open: [{
519
549
  type: Input
550
+ }], saveNewConfiguration: [{
551
+ type: Input
520
552
  }], closeModal: [{
521
553
  type: Output
522
554
  }] } });
@@ -565,6 +597,10 @@ class PluginManagementComponent {
565
597
  callback: this.editConfiguration.bind(this),
566
598
  label: 'interface.edit',
567
599
  },
600
+ {
601
+ label: 'interface.duplicate',
602
+ callback: this.duplicateConfiguration.bind(this),
603
+ },
568
604
  {
569
605
  callback: this.deleteConfiguration.bind(this),
570
606
  label: 'interface.delete',
@@ -584,12 +620,14 @@ class PluginManagementComponent {
584
620
  }))), tap(() => {
585
621
  this.loading$.next(false);
586
622
  }))));
623
+ this.saveNewConfiguration$ = new BehaviorSubject(false);
587
624
  }
588
625
  showAddModal() {
589
626
  this.showAddModal$.next(true);
590
627
  }
591
628
  editConfiguration(configuration) {
592
629
  this.showEditModal$.next(true);
630
+ this.saveNewConfiguration$.next(false);
593
631
  this.stateService.selectPluginConfiguration(configuration);
594
632
  }
595
633
  deleteConfiguration(configuration) {
@@ -614,12 +652,19 @@ class PluginManagementComponent {
614
652
  closeAddModal() {
615
653
  this.showAddModal$.next(false);
616
654
  }
655
+ duplicateConfiguration(configuration) {
656
+ const configurationClone = cloneDeep(configuration);
657
+ configurationClone.id = v4();
658
+ this.showEditModal$.next(true);
659
+ this.saveNewConfiguration$.next(true);
660
+ this.stateService.selectPluginConfiguration(configurationClone);
661
+ }
617
662
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginManagementComponent, deps: [{ token: i3$1.NGXLogger }, { token: i2.PluginManagementService }, { token: i2.PluginTranslationService }, { token: PluginManagementStateService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
618
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginManagementComponent, selector: "valtimo-plugin-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [fields]=\"fields\"\n [header]=\"false\"\n (rowClicked)=\"editConfiguration($event)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"configurePluginButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"configurePluginButton\"\n [title]=\"'pages.plugins.noResults' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <ng-template #configurePluginButton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"showAddModal()\">\n {{ 'pluginManagement.add' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<valtimo-plugin-add-modal\n [open]=\"showAddModal$ | async\"\n (closeModal)=\"closeAddModal()\"\n></valtimo-plugin-add-modal>\n\n<valtimo-plugin-edit-modal\n [open]=\"showEditModal$ | async\"\n (closeModal)=\"closeEditModal()\"\n></valtimo-plugin-edit-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4$1.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i4$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal", inputs: ["open"], outputs: ["closeModal"] }, { kind: "component", type: PluginEditModalComponent, selector: "valtimo-plugin-edit-modal", inputs: ["open"], outputs: ["closeModal"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
663
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PluginManagementComponent, selector: "valtimo-plugin-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [fields]=\"fields\"\n [header]=\"false\"\n (rowClicked)=\"editConfiguration($event)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"configurePluginButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"configurePluginButton\"\n [title]=\"'pages.plugins.noResults' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <ng-template #configurePluginButton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"showAddModal()\">\n {{ 'pluginManagement.add' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<valtimo-plugin-add-modal\n [open]=\"showAddModal$ | async\"\n (closeModal)=\"closeAddModal()\"\n></valtimo-plugin-add-modal>\n\n<valtimo-plugin-edit-modal\n [open]=\"showEditModal$ | async\"\n [saveNewConfiguration]=\"saveNewConfiguration$ | async\"\n (closeModal)=\"closeEditModal()\"\n></valtimo-plugin-edit-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i4$1.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i4$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: PluginAddModalComponent, selector: "valtimo-plugin-add-modal", inputs: ["open"], outputs: ["closeModal"] }, { kind: "component", type: PluginEditModalComponent, selector: "valtimo-plugin-edit-modal", inputs: ["open", "saveNewConfiguration"], outputs: ["closeModal"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
619
664
  }
620
665
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginManagementComponent, decorators: [{
621
666
  type: Component,
622
- args: [{ selector: 'valtimo-plugin-management', template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [fields]=\"fields\"\n [header]=\"false\"\n (rowClicked)=\"editConfiguration($event)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"configurePluginButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"configurePluginButton\"\n [title]=\"'pages.plugins.noResults' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <ng-template #configurePluginButton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"showAddModal()\">\n {{ 'pluginManagement.add' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<valtimo-plugin-add-modal\n [open]=\"showAddModal$ | async\"\n (closeModal)=\"closeAddModal()\"\n></valtimo-plugin-add-modal>\n\n<valtimo-plugin-edit-modal\n [open]=\"showEditModal$ | async\"\n (closeModal)=\"closeEditModal()\"\n></valtimo-plugin-edit-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
667
+ args: [{ selector: 'valtimo-plugin-management', template: "<!--\n ~ Copyright 2015-2024 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<ng-container\n *ngIf=\"{\n pluginConfigurations: pluginConfigurations$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [loading]=\"obs.loading\"\n [items]=\"obs.pluginConfigurations\"\n [fields]=\"fields\"\n [header]=\"false\"\n (rowClicked)=\"editConfiguration($event)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"configurePluginButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"configurePluginButton\"\n [title]=\"'pages.plugins.noResults' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <ng-template #configurePluginButton>\n <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"showAddModal()\">\n {{ 'pluginManagement.add' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<valtimo-plugin-add-modal\n [open]=\"showAddModal$ | async\"\n (closeModal)=\"closeAddModal()\"\n></valtimo-plugin-add-modal>\n\n<valtimo-plugin-edit-modal\n [open]=\"showEditModal$ | async\"\n [saveNewConfiguration]=\"saveNewConfiguration$ | async\"\n (closeModal)=\"closeEditModal()\"\n></valtimo-plugin-edit-modal>\n", styles: ["/*!\n * Copyright 2015-2024 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"] }]
623
668
  }], ctorParameters: () => [{ type: i3$1.NGXLogger }, { type: i2.PluginManagementService }, { type: i2.PluginTranslationService }, { type: PluginManagementStateService }, { type: i3.TranslateService }] });
624
669
 
625
670
  /*
@@ -698,7 +743,8 @@ class PluginManagementModule {
698
743
  CarbonListModule,
699
744
  ModalModule,
700
745
  IconModule,
701
- ValtimoCdsModalDirectiveModule], exports: [PluginManagementComponent,
746
+ ValtimoCdsModalDirectiveModule,
747
+ LayerModule], exports: [PluginManagementComponent,
702
748
  PluginAddModalComponent,
703
749
  PluginAddSelectComponent,
704
750
  PluginConfigureComponent,
@@ -721,7 +767,8 @@ class PluginManagementModule {
721
767
  CarbonListModule,
722
768
  ModalModule,
723
769
  IconModule,
724
- ValtimoCdsModalDirectiveModule] }); }
770
+ ValtimoCdsModalDirectiveModule,
771
+ LayerModule] }); }
725
772
  }
726
773
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginManagementModule, decorators: [{
727
774
  type: NgModule,
@@ -754,6 +801,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
754
801
  ModalModule,
755
802
  IconModule,
756
803
  ValtimoCdsModalDirectiveModule,
804
+ LayerModule,
757
805
  ],
758
806
  exports: [
759
807
  PluginManagementComponent,