@valtimo/plugin-management 12.7.0 → 12.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/plugin-edit-modal/plugin-edit-modal.component.mjs +38 -8
- package/esm2022/lib/components/plugin-management/plugin-management.component.mjs +18 -3
- package/fesm2022/valtimo-plugin-management.mjs +54 -9
- package/fesm2022/valtimo-plugin-management.mjs.map +1 -1
- package/lib/components/plugin-edit-modal/plugin-edit-modal.component.d.ts +5 -3
- package/lib/components/plugin-edit-modal/plugin-edit-modal.component.d.ts.map +1 -1
- package/lib/components/plugin-management/plugin-management.component.d.ts +4 -10
- package/lib/components/plugin-management/plugin-management.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -31,6 +31,7 @@ export class PluginEditModalComponent {
|
|
|
31
31
|
this.pluginManagementService = pluginManagementService;
|
|
32
32
|
this.logger = logger;
|
|
33
33
|
this.open = false;
|
|
34
|
+
this.saveNewConfiguration = false;
|
|
34
35
|
this.closeModal = new EventEmitter();
|
|
35
36
|
this.inputDisabled$ = this.stateService.inputDisabled$;
|
|
36
37
|
this.selectedPluginConfiguration$ = this.stateService.selectedPluginConfiguration$;
|
|
@@ -65,6 +66,10 @@ export class PluginEditModalComponent {
|
|
|
65
66
|
}
|
|
66
67
|
onPluginConfiguration(configuration) {
|
|
67
68
|
this.stateService.disableInput();
|
|
69
|
+
if (this.saveNewConfiguration) {
|
|
70
|
+
this.saveNewPluginConfiguration(configuration);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
68
73
|
this.stateService.selectedPluginConfiguration$
|
|
69
74
|
.pipe(take(1))
|
|
70
75
|
.subscribe(selectedPluginConfiguration => {
|
|
@@ -74,24 +79,49 @@ export class PluginEditModalComponent {
|
|
|
74
79
|
delete configurationData['configurationTitle'];
|
|
75
80
|
this.pluginManagementService
|
|
76
81
|
.updatePluginConfiguration(selectedPluginConfiguration.id, configurationId, configurationTitle, configurationData)
|
|
77
|
-
.subscribe(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
.subscribe({
|
|
83
|
+
next: () => {
|
|
84
|
+
this.stateService.refresh();
|
|
85
|
+
this.hide();
|
|
86
|
+
},
|
|
87
|
+
error: () => {
|
|
88
|
+
this.logger.error('Something went wrong with updating the plugin configuration.');
|
|
89
|
+
this.stateService.enableInput();
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
saveNewPluginConfiguration(configuration) {
|
|
95
|
+
this.stateService.selectedPluginConfiguration$
|
|
96
|
+
.pipe(take(1))
|
|
97
|
+
.subscribe(selectedPluginConfiguration => {
|
|
98
|
+
const duplicatedConfiguration = { ...selectedPluginConfiguration, properties: configuration };
|
|
99
|
+
duplicatedConfiguration.title = duplicatedConfiguration.properties.configurationTitle;
|
|
100
|
+
delete duplicatedConfiguration.properties.configurationTitle;
|
|
101
|
+
delete duplicatedConfiguration.properties.configurationId;
|
|
102
|
+
this.pluginManagementService.savePluginConfiguration(duplicatedConfiguration).subscribe({
|
|
103
|
+
next: () => {
|
|
104
|
+
this.stateService.refresh();
|
|
105
|
+
this.hide();
|
|
106
|
+
},
|
|
107
|
+
error: () => {
|
|
108
|
+
this.logger.error('Something went wrong with saving the duplicated plugin configuration.');
|
|
109
|
+
this.stateService.enableInput();
|
|
110
|
+
},
|
|
83
111
|
});
|
|
84
112
|
});
|
|
85
113
|
}
|
|
86
114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginEditModalComponent, deps: [{ token: i1.PluginManagementStateService }, { token: i2.PluginManagementService }, { token: i3.NGXLogger }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
-
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: i6.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "component", type: i7.PluginEditComponent, selector: "valtimo-plugin-edit", outputs: ["valid", "configuration"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i2.PluginTranslatePipe, name: "pluginTranslate" }] }); }
|
|
115
|
+
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: i6.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "component", type: i7.PluginEditComponent, selector: "valtimo-plugin-edit", outputs: ["valid", "configuration"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "pipe", type: i2.PluginTranslatePipe, name: "pluginTranslate" }] }); }
|
|
88
116
|
}
|
|
89
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginEditModalComponent, decorators: [{
|
|
90
118
|
type: Component,
|
|
91
119
|
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"] }]
|
|
92
120
|
}], ctorParameters: () => [{ type: i1.PluginManagementStateService }, { type: i2.PluginManagementService }, { type: i3.NGXLogger }], propDecorators: { open: [{
|
|
93
121
|
type: Input
|
|
122
|
+
}], saveNewConfiguration: [{
|
|
123
|
+
type: Input
|
|
94
124
|
}], closeModal: [{
|
|
95
125
|
type: Output
|
|
96
126
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWVkaXQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLWVkaXQtbW9kYWwvcGx1Z2luLWVkaXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLWVkaXQtbW9kYWwvcGx1Z2luLWVkaXQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBYWpELE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsWUFDbUIsWUFBMEMsRUFDMUMsdUJBQWdELEVBQ2hELE1BQWlCO1FBRmpCLGlCQUFZLEdBQVosWUFBWSxDQUE4QjtRQUMxQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQVc7UUFaM0IsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUVaLGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQ2xELGlDQUE0QixHQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBTWhFLENBQUM7SUFFSixJQUFJO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QjthQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLDJCQUEyQixDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLHVCQUF1QjtpQkFDekIseUJBQXlCLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO2lCQUN6RCxTQUFTLENBQ1IsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLENBQUMsRUFDRCxHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztnQkFDbEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFjO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGFBQXNDO1FBQ2pFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLFlBQVksQ0FBQyw0QkFBNEI7YUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUM7WUFDdEQsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsa0JBQWtCLENBQUM7WUFDNUQsTUFBTSxpQkFBaUIsR0FBRyxFQUFDLEdBQUcsYUFBYSxFQUFDLENBQUM7WUFDN0MsT0FBTyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBRS9DLElBQUksQ0FBQyx1QkFBdUI7aUJBQ3pCLHlCQUF5QixDQUN4QiwyQkFBMkIsQ0FBQyxFQUFFLEVBQzlCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLENBQ2xCO2lCQUNBLFNBQVMsQ0FDUixHQUFHLEVBQUU7Z0JBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsQ0FBQyxFQUNELEdBQUcsRUFBRTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLENBQUMsQ0FDRixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQWhGVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixrSUNoQ3JDLGt0REFpREE7OzRGRGpCYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMkJBQTJCOytKQUs1QixJQUFJO3NCQUFaLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtQbHVnaW5NYW5hZ2VtZW50U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhLFxuICBQbHVnaW5Db25maWd1cmF0aW9uLFxuICBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vcGx1Z2luJztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1wbHVnaW4tZWRpdC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbHVnaW4tZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsdWdpbi1lZGl0LW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBsdWdpbkVkaXRNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG9wZW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgY2xvc2VNb2RhbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlYWRvbmx5IGlucHV0RGlzYWJsZWQkID0gdGhpcy5zdGF0ZVNlcnZpY2UuaW5wdXREaXNhYmxlZCQ7XG4gIHJlYWRvbmx5IHNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQ6IE9ic2VydmFibGU8UGx1Z2luQ29uZmlndXJhdGlvbj4gPVxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQ7XG4gIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb25WYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogUGx1Z2luTWFuYWdlbWVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlOiBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTkdYTG9nZ2VyXG4gICkge31cblxuICBzYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmVFZGl0KCk7XG4gIH1cblxuICBkZWxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuZGVsZXRlKCk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuZGlzYWJsZUlucHV0KCk7XG5cbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgICB0aGlzLnBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlXG4gICAgICAgICAgLmRlbGV0ZVBsdWdpbkNvbmZpZ3VyYXRpb24oc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uLmlkKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlZnJlc2goKTtcbiAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBkZWxldGluZyB0aGUgcGx1Z2luIGNvbmZpZ3VyYXRpb24uJyk7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmVuYWJsZUlucHV0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGhpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5lbmFibGVJbnB1dCgpO1xuICB9XG5cbiAgcHVibGljIG9uUGx1Z2luVmFsaWQodmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25WYWxpZCQubmV4dCh2YWxpZCk7XG4gIH1cblxuICBwdWJsaWMgb25QbHVnaW5Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuZGlzYWJsZUlucHV0KCk7XG5cbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uSWQgPSBjb25maWd1cmF0aW9uLmNvbmZpZ3VyYXRpb25JZDtcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvblRpdGxlID0gY29uZmlndXJhdGlvbi5jb25maWd1cmF0aW9uVGl0bGU7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25EYXRhID0gey4uLmNvbmZpZ3VyYXRpb259O1xuICAgICAgICBkZWxldGUgY29uZmlndXJhdGlvbkRhdGFbJ2NvbmZpZ3VyYXRpb25UaXRsZSddO1xuXG4gICAgICAgIHRoaXMucGx1Z2luTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgICAgICAudXBkYXRlUGx1Z2luQ29uZmlndXJhdGlvbihcbiAgICAgICAgICAgIHNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbi5pZCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25JZCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25UaXRsZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25EYXRhXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlZnJlc2goKTtcbiAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB1cGRhdGluZyB0aGUgcGx1Z2luIGNvbmZpZ3VyYXRpb24uJyk7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmVuYWJsZUlucHV0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxjZHMtbW9kYWxcbiAgI3BsdWdpbkVkaXRNb2RhbFxuICB2YWx0aW1vQ2RzTW9kYWxcbiAgW29wZW5dPVwib3BlblwiXG4gIChjbG9zZSk9XCJoaWRlKClcIlxuICAqbmdJZj1cIntzZWxlY3RlZENvbmZpZ3VyYXRpb246IHNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQgfCBhc3luY30gYXMgb2JzXCJcbj5cbiAgPGNkcy1tb2RhbC1oZWFkZXIgW3Nob3dDbG9zZUJ1dHRvbl09XCJ0cnVlXCIgKGNsb3NlU2VsZWN0KT1cImhpZGUoKVwiPlxuICAgIHt7XG4gICAgICBvYnMuc2VsZWN0ZWRDb25maWd1cmF0aW9uPy50aXRsZSArXG4gICAgICAgICcgLSAnICtcbiAgICAgICAgKCd0aXRsZScgfCBwbHVnaW5UcmFuc2xhdGU6IG9icy5zZWxlY3RlZENvbmZpZ3VyYXRpb24/LnBsdWdpbkRlZmluaXRpb24/LmtleSB8IGFzeW5jKVxuICAgIH19XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cbiAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgIDx2YWx0aW1vLXBsdWdpbi1lZGl0XG4gICAgICAodmFsaWQpPVwib25QbHVnaW5WYWxpZCgkZXZlbnQpXCJcbiAgICAgIChjb25maWd1cmF0aW9uKT1cIm9uUGx1Z2luQ29uZmlndXJhdGlvbigkZXZlbnQpXCJcbiAgICA+PC92YWx0aW1vLXBsdWdpbi1lZGl0PlxuICA8L3NlY3Rpb24+XG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZGFuZ2VyXCIgKGNsaWNrKT1cImRlbGV0ZSgpXCIgW2Rpc2FibGVkXT1cImlucHV0RGlzYWJsZWQkIHwgYXN5bmNcIj5cbiAgICAgIHt7ICdwbHVnaW5NYW5hZ2VtZW50LnJlbW92ZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIoY29uZmlndXJhdGlvblZhbGlkJCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgKGlucHV0RGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdwbHVnaW5NYW5hZ2VtZW50LnNhdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvY2RzLW1vZGFsLWZvb3Rlcj5cbjwvY2RzLW1vZGFsPlxuIl19
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWVkaXQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLWVkaXQtbW9kYWwvcGx1Z2luLWVkaXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLWVkaXQtbW9kYWwvcGx1Z2luLWVkaXQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwQyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBYWpELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkMsWUFDbUIsWUFBMEMsRUFDMUMsdUJBQWdELEVBQ2hELE1BQWlCO1FBRmpCLGlCQUFZLEdBQVosWUFBWSxDQUE4QjtRQUMxQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELFdBQU0sR0FBTixNQUFNLENBQVc7UUFiWCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRTVDLGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQ2xELGlDQUE0QixHQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDO1FBQ3hDLHdCQUFtQixHQUFH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O1lBQ3ZDLE1BQU0sdUJBQXVCLEdBQUcsRUFBQyxHQUFHLDJCQUEyQixFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUMsQ0FBQztZQUU1Rix1QkFBdUIsQ0FBQyxLQUFLLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDO1lBRXRGLE9BQU8sdUJBQXVCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDO1lBQzdELE9BQU8sdUJBQXVCLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQztZQUUxRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3RGLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtvQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZix1RUFBdUUsQ0FDeEUsQ0FBQztvQkFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQWhIVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixnTENoQ3JDLGt0REFpREE7OzRGRGpCYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMkJBQTJCOytKQUtaLElBQUk7c0JBQTVCLEtBQUs7Z0JBQ21CLG9CQUFvQjtzQkFBNUMsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsdWdpbk1hbmFnZW1lbnRTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUGx1Z2luQ29uZmlndXJhdGlvbixcbiAgUGx1Z2luQ29uZmlndXJhdGlvbkRhdGEsXG4gIFBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9wbHVnaW4nO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXBsdWdpbi1lZGl0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsdWdpbi1lZGl0LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGx1Z2luLWVkaXQtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGx1Z2luRWRpdE1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5IG9wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5IHNhdmVOZXdDb25maWd1cmF0aW9uID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsb3NlTW9kYWw6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBpbnB1dERpc2FibGVkJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLmlucHV0RGlzYWJsZWQkO1xuICByZWFkb25seSBzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kOiBPYnNlcnZhYmxlPFBsdWdpbkNvbmZpZ3VyYXRpb24+ID1cbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24kO1xuICByZWFkb25seSBjb25maWd1cmF0aW9uVmFsaWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IFBsdWdpbk1hbmFnZW1lbnRTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5NYW5hZ2VtZW50U2VydmljZTogUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IE5HWExvZ2dlclxuICApIHt9XG5cbiAgc2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zYXZlRWRpdCgpO1xuICB9XG5cbiAgZGVsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmRlbGV0ZSgpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmRpc2FibGVJbnB1dCgpO1xuXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJFxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgdGhpcy5wbHVnaW5NYW5hZ2VtZW50U2VydmljZVxuICAgICAgICAgIC5kZWxldGVQbHVnaW5Db25maWd1cmF0aW9uKHNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbi5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ1NvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggZGVsZXRpbmcgdGhlIHBsdWdpbiBjb25maWd1cmF0aW9uLicpO1xuICAgICAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5lbmFibGVJbnB1dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VNb2RhbC5lbWl0KCk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuZW5hYmxlSW5wdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBsdWdpblZhbGlkKHZhbGlkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uVmFsaWQkLm5leHQodmFsaWQpO1xuICB9XG5cbiAgcHVibGljIG9uUGx1Z2luQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBQbHVnaW5Db25maWd1cmF0aW9uRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmRpc2FibGVJbnB1dCgpO1xuXG4gICAgaWYgKHRoaXMuc2F2ZU5ld0NvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMuc2F2ZU5ld1BsdWdpbkNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJFxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbklkID0gY29uZmlndXJhdGlvbi5jb25maWd1cmF0aW9uSWQ7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25UaXRsZSA9IGNvbmZpZ3VyYXRpb24uY29uZmlndXJhdGlvblRpdGxlO1xuICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uRGF0YSA9IHsuLi5jb25maWd1cmF0aW9ufTtcbiAgICAgICAgZGVsZXRlIGNvbmZpZ3VyYXRpb25EYXRhWydjb25maWd1cmF0aW9uVGl0bGUnXTtcblxuICAgICAgICB0aGlzLnBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlXG4gICAgICAgICAgLnVwZGF0ZVBsdWdpbkNvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICBzZWxlY3RlZFBsdWdpbkNvbmZpZ3VyYXRpb24uaWQsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uSWQsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uVGl0bGUsXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uRGF0YVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVmcmVzaCgpO1xuICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCB1cGRhdGluZyB0aGUgcGx1Z2luIGNvbmZpZ3VyYXRpb24uJyk7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmVuYWJsZUlucHV0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVOZXdQbHVnaW5Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uJFxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgY29uc3QgZHVwbGljYXRlZENvbmZpZ3VyYXRpb24gPSB7Li4uc2VsZWN0ZWRQbHVnaW5Db25maWd1cmF0aW9uLCBwcm9wZXJ0aWVzOiBjb25maWd1cmF0aW9ufTtcblxuICAgICAgICBkdXBsaWNhdGVkQ29uZmlndXJhdGlvbi50aXRsZSA9IGR1cGxpY2F0ZWRDb25maWd1cmF0aW9uLnByb3BlcnRpZXMuY29uZmlndXJhdGlvblRpdGxlO1xuXG4gICAgICAgIGRlbGV0ZSBkdXBsaWNhdGVkQ29uZmlndXJhdGlvbi5wcm9wZXJ0aWVzLmNvbmZpZ3VyYXRpb25UaXRsZTtcbiAgICAgICAgZGVsZXRlIGR1cGxpY2F0ZWRDb25maWd1cmF0aW9uLnByb3BlcnRpZXMuY29uZmlndXJhdGlvbklkO1xuXG4gICAgICAgIHRoaXMucGx1Z2luTWFuYWdlbWVudFNlcnZpY2Uuc2F2ZVBsdWdpbkNvbmZpZ3VyYXRpb24oZHVwbGljYXRlZENvbmZpZ3VyYXRpb24pLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVmcmVzaCgpO1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICdTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIHNhdmluZyB0aGUgZHVwbGljYXRlZCBwbHVnaW4gY29uZmlndXJhdGlvbi4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxjZHMtbW9kYWxcbiAgI3BsdWdpbkVkaXRNb2RhbFxuICB2YWx0aW1vQ2RzTW9kYWxcbiAgW29wZW5dPVwib3BlblwiXG4gIChjbG9zZSk9XCJoaWRlKClcIlxuICAqbmdJZj1cIntzZWxlY3RlZENvbmZpZ3VyYXRpb246IHNlbGVjdGVkUGx1Z2luQ29uZmlndXJhdGlvbiQgfCBhc3luY30gYXMgb2JzXCJcbj5cbiAgPGNkcy1tb2RhbC1oZWFkZXIgW3Nob3dDbG9zZUJ1dHRvbl09XCJ0cnVlXCIgKGNsb3NlU2VsZWN0KT1cImhpZGUoKVwiPlxuICAgIHt7XG4gICAgICBvYnMuc2VsZWN0ZWRDb25maWd1cmF0aW9uPy50aXRsZSArXG4gICAgICAgICcgLSAnICtcbiAgICAgICAgKCd0aXRsZScgfCBwbHVnaW5UcmFuc2xhdGU6IG9icy5zZWxlY3RlZENvbmZpZ3VyYXRpb24/LnBsdWdpbkRlZmluaXRpb24/LmtleSB8IGFzeW5jKVxuICAgIH19XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cbiAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgIDx2YWx0aW1vLXBsdWdpbi1lZGl0XG4gICAgICAodmFsaWQpPVwib25QbHVnaW5WYWxpZCgkZXZlbnQpXCJcbiAgICAgIChjb25maWd1cmF0aW9uKT1cIm9uUGx1Z2luQ29uZmlndXJhdGlvbigkZXZlbnQpXCJcbiAgICA+PC92YWx0aW1vLXBsdWdpbi1lZGl0PlxuICA8L3NlY3Rpb24+XG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZGFuZ2VyXCIgKGNsaWNrKT1cImRlbGV0ZSgpXCIgW2Rpc2FibGVkXT1cImlucHV0RGlzYWJsZWQkIHwgYXN5bmNcIj5cbiAgICAgIHt7ICdwbHVnaW5NYW5hZ2VtZW50LnJlbW92ZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIoY29uZmlndXJhdGlvblZhbGlkJCB8IGFzeW5jKSA9PT0gZmFsc2UgfHwgKGlucHV0RGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdwbHVnaW5NYW5hZ2VtZW50LnNhdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvY2RzLW1vZGFsLWZvb3Rlcj5cbjwvY2RzLW1vZGFsPlxuIl19
|
|
@@ -17,6 +17,8 @@ import { Component } from '@angular/core';
|
|
|
17
17
|
import { ViewType } from '@valtimo/components';
|
|
18
18
|
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
19
19
|
import { map, switchMap, take, tap } from 'rxjs/operators';
|
|
20
|
+
import { cloneDeep } from 'lodash';
|
|
21
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
20
22
|
import * as i0 from "@angular/core";
|
|
21
23
|
import * as i1 from "ngx-logger";
|
|
22
24
|
import * as i2 from "@valtimo/plugin";
|
|
@@ -56,6 +58,10 @@ export class PluginManagementComponent {
|
|
|
56
58
|
callback: this.editConfiguration.bind(this),
|
|
57
59
|
label: 'interface.edit',
|
|
58
60
|
},
|
|
61
|
+
{
|
|
62
|
+
label: 'interface.duplicate',
|
|
63
|
+
callback: this.duplicateConfiguration.bind(this),
|
|
64
|
+
},
|
|
59
65
|
{
|
|
60
66
|
callback: this.deleteConfiguration.bind(this),
|
|
61
67
|
label: 'interface.delete',
|
|
@@ -75,12 +81,14 @@ export class PluginManagementComponent {
|
|
|
75
81
|
}))), tap(() => {
|
|
76
82
|
this.loading$.next(false);
|
|
77
83
|
}))));
|
|
84
|
+
this.saveNewConfiguration$ = new BehaviorSubject(false);
|
|
78
85
|
}
|
|
79
86
|
showAddModal() {
|
|
80
87
|
this.showAddModal$.next(true);
|
|
81
88
|
}
|
|
82
89
|
editConfiguration(configuration) {
|
|
83
90
|
this.showEditModal$.next(true);
|
|
91
|
+
this.saveNewConfiguration$.next(false);
|
|
84
92
|
this.stateService.selectPluginConfiguration(configuration);
|
|
85
93
|
}
|
|
86
94
|
deleteConfiguration(configuration) {
|
|
@@ -105,11 +113,18 @@ export class PluginManagementComponent {
|
|
|
105
113
|
closeAddModal() {
|
|
106
114
|
this.showAddModal$.next(false);
|
|
107
115
|
}
|
|
116
|
+
duplicateConfiguration(configuration) {
|
|
117
|
+
const configurationClone = cloneDeep(configuration);
|
|
118
|
+
configurationClone.id = uuidv4();
|
|
119
|
+
this.showEditModal$.next(true);
|
|
120
|
+
this.saveNewConfiguration$.next(true);
|
|
121
|
+
this.stateService.selectPluginConfiguration(configurationClone);
|
|
122
|
+
}
|
|
108
123
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginManagementComponent, deps: [{ token: i1.NGXLogger }, { token: i2.PluginManagementService }, { token: i2.PluginTranslationService }, { token: i3.PluginManagementStateService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
-
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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i7.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: i7.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i8.PluginAddModalComponent, selector: "valtimo-plugin-add-modal", inputs: ["open"], outputs: ["closeModal"] }, { kind: "component", type: i9.PluginEditModalComponent, selector: "valtimo-plugin-edit-modal", inputs: ["open"], outputs: ["closeModal"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
124
|
+
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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i7.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: i7.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i8.PluginAddModalComponent, selector: "valtimo-plugin-add-modal", inputs: ["open"], outputs: ["closeModal"] }, { kind: "component", type: i9.PluginEditModalComponent, selector: "valtimo-plugin-edit-modal", inputs: ["open", "saveNewConfiguration"], outputs: ["closeModal"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
110
125
|
}
|
|
111
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PluginManagementComponent, decorators: [{
|
|
112
127
|
type: Component,
|
|
113
|
-
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"] }]
|
|
128
|
+
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"] }]
|
|
114
129
|
}], ctorParameters: () => [{ type: i1.NGXLogger }, { type: i2.PluginManagementService }, { type: i2.PluginTranslationService }, { type: i3.PluginManagementStateService }, { type: i4.TranslateService }] });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLW1hbmFnZW1lbnQvcGx1Z2luLW1hbmFnZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLW1hbmFnZW1lbnQvcGx1Z2luLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE9BQU8sRUFBMkIsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFPdkUsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQVF6RCxNQUFNLE9BQU8seUJBQXlCO0lBdURwQyxZQUNtQixNQUFpQixFQUNqQix1QkFBZ0QsRUFDaEQsd0JBQWtELEVBQ2xELFlBQTBDLEVBQzFDLGdCQUFrQztRQUpsQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxpQkFBWSxHQUFaLFlBQVksQ0FBOEI7UUFDMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTNEckMsV0FBTSxHQUFtQjtZQUN2QztnQkFDRSxHQUFHLEVBQUUsWUFBWTtnQkFDakIsS0FBSyxF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QUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBaEdVLHlCQUF5QjttR0FBekIseUJBQXlCLGlFQ2pDdEMsbzFEQXVEQTs7NEZEdEJhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWN0aW9uSXRlbSwgQ29sdW1uQ29uZmlnLCBWaWV3VHlwZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBQbHVnaW5Db25maWd1cmF0aW9uLFxuICBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSxcbiAgUGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9wbHVnaW4nO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BsdWdpbk1hbmFnZW1lbnRTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1wbHVnaW4tbWFuYWdlbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbHVnaW4tbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsdWdpbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBsdWdpbk1hbmFnZW1lbnRDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzOiBDb2x1bW5Db25maWdbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdwbHVnaW5OYW1lJyxcbiAgICAgIGxhYmVsOiAncGx1Z2luTWFuYWdlbWVudC5sYWJlbHMucGx1Z2luTmFtZScsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2RlZmluaXRpb25LZXknLFxuICAgICAgbGFiZWw6ICdwbHVnaW5NYW5hZ2VtZW50LmxhYmVscy5pZGVudGlmaWVyJyxcbiAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URVhULFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndGl0bGUnLFxuICAgICAgbGFiZWw6ICdwbHVnaW5NYW5hZ2VtZW50LmxhYmVscy5jb25maWd1cmF0aW9uTmFtZScsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICB9LFxuICBdO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uSXRlbXM6IEFjdGlvbkl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICBjYWxsYmFjazogdGhpcy5lZGl0Q29uZmlndXJhdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgbGFiZWw6ICdpbnRlcmZhY2UuZWRpdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBjYWxsYmFjazogdGhpcy5kZWxldGVDb25maWd1cmF0aW9uLmJpbmQodGhpcyksXG4gICAgICBsYWJlbDogJ2ludGVyZmFjZS5kZWxldGUnLFxuICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgfSxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0VkaXRNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dBZGRNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHBsdWdpbkNvbmZpZ3VyYXRpb25zJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnJlZnJlc2gkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5wbHVnaW5NYW5hZ2VtZW50U2VydmljZS5nZXRBbGxQbHVnaW5Db25maWd1cmF0aW9ucygpLFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3BsdWdpbkNvbmZpZ3VyYXRpb25zXSkgPT5cbiAgICAgICAgICBwbHVnaW5Db25maWd1cmF0aW9ucy5tYXAoY29uZmlndXJhdGlvbiA9PiAoe1xuICAgICAgICAgICAgLi4uY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIHBsdWdpbk5hbWU6IHRoaXMucGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICd0aXRsZScsXG4gICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24ucGx1Z2luRGVmaW5pdGlvbj8ua2V5ID8/ICcnXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVmaW5pdGlvbktleTogY29uZmlndXJhdGlvbi5wbHVnaW5EZWZpbml0aW9uPy5rZXkgPz8gJycsXG4gICAgICAgICAgfSkpXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gICk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5NYW5hZ2VtZW50U2VydmljZTogUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwbHVnaW5UcmFuc2xhdGlvblNlcnZpY2U6IFBsdWdpblRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogUGx1Z2luTWFuYWdlbWVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBzaG93QWRkTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93QWRkTW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogUGx1Z2luQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd0VkaXRNb2RhbCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RQbHVnaW5Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogUGx1Z2luQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgIGlmICghY29uZmlndXJhdGlvbi5pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGx1Z2luTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC5kZWxldGVQbHVnaW5Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24uaWQpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ1NvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggZGVsZXRpbmcgdGhlIHBsdWdpbiBjb25maWd1cmF0aW9uLicpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VFZGl0TW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RWRpdE1vZGFsJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUFkZE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0FkZE1vZGFsJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBwbHVnaW5Db25maWd1cmF0aW9uczogcGx1Z2luQ29uZmlndXJhdGlvbnMkIHwgYXN5bmMsXG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICA8dmFsdGltby1jYXJib24tbGlzdFxuICAgIFthY3Rpb25JdGVtc109XCJhY3Rpb25JdGVtc1wiXG4gICAgW2xvYWRpbmddPVwib2JzLmxvYWRpbmdcIlxuICAgIFtpdGVtc109XCJvYnMucGx1Z2luQ29uZmlndXJhdGlvbnNcIlxuICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgICAocm93Q2xpY2tlZCk9XCJlZGl0Q29uZmlndXJhdGlvbigkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgY2FyYm9uVG9vbGJhckNvbnRlbnQgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29uZmlndXJlUGx1Z2luQnV0dG9uXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbYWN0aW9uXT1cImNvbmZpZ3VyZVBsdWdpbkJ1dHRvblwiXG4gICAgICBbdGl0bGVdPVwiJ3BhZ2VzLnBsdWdpbnMubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuICA8L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG5cbiAgPG5nLXRlbXBsYXRlICNjb25maWd1cmVQbHVnaW5CdXR0b24+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIm9icy5sb2FkaW5nXCIgKGNsaWNrKT1cInNob3dBZGRNb2RhbCgpXCI+XG4gICAgICB7eyAncGx1Z2luTWFuYWdlbWVudC5hZGQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgIDxzdmcgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48dmFsdGltby1wbHVnaW4tYWRkLW1vZGFsXG4gIFtvcGVuXT1cInNob3dBZGRNb2RhbCQgfCBhc3luY1wiXG4gIChjbG9zZU1vZGFsKT1cImNsb3NlQWRkTW9kYWwoKVwiXG4+PC92YWx0aW1vLXBsdWdpbi1hZGQtbW9kYWw+XG5cbjx2YWx0aW1vLXBsdWdpbi1lZGl0LW1vZGFsXG4gIFtvcGVuXT1cInNob3dFZGl0TW9kYWwkIHwgYXN5bmNcIlxuICAoY2xvc2VNb2RhbCk9XCJjbG9zZUVkaXRNb2RhbCgpXCJcbj48L3ZhbHRpbW8tcGx1Z2luLWVkaXQtbW9kYWw+XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLW1hbmFnZW1lbnQvcGx1Z2luLW1hbmFnZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9wbHVnaW4tbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvcGx1Z2luLW1hbmFnZW1lbnQvcGx1Z2luLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE9BQU8sRUFBMkIsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFPdkUsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFDLEVBQUUsSUFBSSxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBT2xDLE1BQU0sT0FBTyx5QkFBeUI7SUErRHBDLFlBQ21CLE1BQWlCLEVBQ2pCLHVCQUFnRCxFQUNoRCx3QkFBa0QsRUFDbEQsWUFBMEMsRUFDMUMsZ0JBQWtDO1FBSmxDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGlCQUFZLEdBQVosWUFBWSxDQUE4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QUFDO1FBRUQsSUFBSSxDQUFDLHVCQUF1QjthQUN6Qix5QkFBeUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztZQUNwRixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLHNCQUFzQixDQUFDLGFBQWtDO1FBQzlELE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BELGtCQUFrQixDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNsRSxDQUFDOytHQWpIVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixpRUNuQ3RDLGc1REF3REE7OzRGRHJCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0FjdGlvbkl0ZW0sIENvbHVtbkNvbmZpZywgVmlld1R5cGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgUGx1Z2luQ29uZmlndXJhdGlvbixcbiAgUGx1Z2luTWFuYWdlbWVudFNlcnZpY2UsXG4gIFBsdWdpblRyYW5zbGF0aW9uU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vcGx1Z2luJztcbmltcG9ydCB7TkdYTG9nZ2VyfSBmcm9tICduZ3gtbG9nZ2VyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQbHVnaW5NYW5hZ2VtZW50U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge2Nsb25lRGVlcH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7djQgYXMgdXVpZHY0fSBmcm9tICd1dWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1wbHVnaW4tbWFuYWdlbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbHVnaW4tbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsdWdpbi1tYW5hZ2VtZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBsdWdpbk1hbmFnZW1lbnRDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzOiBDb2x1bW5Db25maWdbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdwbHVnaW5OYW1lJyxcbiAgICAgIGxhYmVsOiAncGx1Z2luTWFuYWdlbWVudC5sYWJlbHMucGx1Z2luTmFtZScsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2RlZmluaXRpb25LZXknLFxuICAgICAgbGFiZWw6ICdwbHVnaW5NYW5hZ2VtZW50LmxhYmVscy5pZGVudGlmaWVyJyxcbiAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5URVhULFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndGl0bGUnLFxuICAgICAgbGFiZWw6ICdwbHVnaW5NYW5hZ2VtZW50LmxhYmVscy5jb25maWd1cmF0aW9uTmFtZScsXG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICB9LFxuICBdO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uSXRlbXM6IEFjdGlvbkl0ZW1bXSA9IFtcbiAgICB7XG4gICAgICBjYWxsYmFjazogdGhpcy5lZGl0Q29uZmlndXJhdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgbGFiZWw6ICdpbnRlcmZhY2UuZWRpdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ2ludGVyZmFjZS5kdXBsaWNhdGUnLFxuICAgICAgY2FsbGJhY2s6IHRoaXMuZHVwbGljYXRlQ29uZmlndXJhdGlvbi5iaW5kKHRoaXMpLFxuICAgIH0sXG4gICAge1xuICAgICAgY2FsbGJhY2s6IHRoaXMuZGVsZXRlQ29uZmlndXJhdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgbGFiZWw6ICdpbnRlcmZhY2UuZGVsZXRlJyxcbiAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgIH0sXG4gIF07XG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dFZGl0TW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93QWRkTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBwbHVnaW5Db25maWd1cmF0aW9ucyQ6IE9ic2VydmFibGU8UGx1Z2luQ29uZmlndXJhdGlvbltdPiA9XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVmcmVzaCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLnBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlLmdldEFsbFBsdWdpbkNvbmZpZ3VyYXRpb25zKCksXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgbWFwKChbcGx1Z2luQ29uZmlndXJhdGlvbnNdKSA9PlxuICAgICAgICAgICAgcGx1Z2luQ29uZmlndXJhdGlvbnMubWFwKGNvbmZpZ3VyYXRpb24gPT4gKHtcbiAgICAgICAgICAgICAgLi4uY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5wbHVnaW5UcmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICAndGl0bGUnLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24ucGx1Z2luRGVmaW5pdGlvbj8ua2V5ID8/ICcnXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGRlZmluaXRpb25LZXk6IGNvbmZpZ3VyYXRpb24ucGx1Z2luRGVmaW5pdGlvbj8ua2V5ID8/ICcnLFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2F2ZU5ld0NvbmZpZ3VyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IE5HWExvZ2dlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpbk1hbmFnZW1lbnRTZXJ2aWNlOiBQbHVnaW5NYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsdWdpblRyYW5zbGF0aW9uU2VydmljZTogUGx1Z2luVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBQbHVnaW5NYW5hZ2VtZW50U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIHNob3dBZGRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBZGRNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBQbHVnaW5Db25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RWRpdE1vZGFsJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuc2F2ZU5ld0NvbmZpZ3VyYXRpb24kLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdFBsdWdpbkNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBQbHVnaW5Db25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgaWYgKCFjb25maWd1cmF0aW9uLmlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wbHVnaW5NYW5hZ2VtZW50U2VydmljZVxuICAgICAgLmRlbGV0ZVBsdWdpbkNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbi5pZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlZnJlc2goKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBkZWxldGluZyB0aGUgcGx1Z2luIGNvbmZpZ3VyYXRpb24uJyk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUVkaXRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dFZGl0TW9kYWwkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlQWRkTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93QWRkTW9kYWwkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGR1cGxpY2F0ZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogUGx1Z2luQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25DbG9uZSA9IGNsb25lRGVlcChjb25maWd1cmF0aW9uKTtcbiAgICBjb25maWd1cmF0aW9uQ2xvbmUuaWQgPSB1dWlkdjQoKTtcbiAgICB0aGlzLnNob3dFZGl0TW9kYWwkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5zYXZlTmV3Q29uZmlndXJhdGlvbiQubmV4dCh0cnVlKTtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZWxlY3RQbHVnaW5Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25DbG9uZSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgcGx1Z2luQ29uZmlndXJhdGlvbnM6IHBsdWdpbkNvbmZpZ3VyYXRpb25zJCB8IGFzeW5jLFxuICAgIGxvYWRpbmc6IGxvYWRpbmckIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHZhbHRpbW8tY2FyYm9uLWxpc3RcbiAgICBbYWN0aW9uSXRlbXNdPVwiYWN0aW9uSXRlbXNcIlxuICAgIFtsb2FkaW5nXT1cIm9icy5sb2FkaW5nXCJcbiAgICBbaXRlbXNdPVwib2JzLnBsdWdpbkNvbmZpZ3VyYXRpb25zXCJcbiAgICBbZmllbGRzXT1cImZpZWxkc1wiXG4gICAgW2hlYWRlcl09XCJmYWxzZVwiXG4gICAgKHJvd0NsaWNrZWQpPVwiZWRpdENvbmZpZ3VyYXRpb24oJGV2ZW50KVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyIGNhcmJvblRvb2xiYXJDb250ZW50IFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbmZpZ3VyZVBsdWdpbkJ1dHRvblwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2FjdGlvbl09XCJjb25maWd1cmVQbHVnaW5CdXR0b25cIlxuICAgICAgW3RpdGxlXT1cIidwYWdlcy5wbHVnaW5zLm5vUmVzdWx0cycgfCB0cmFuc2xhdGVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgPC92YWx0aW1vLWNhcmJvbi1saXN0PlxuXG4gIDxuZy10ZW1wbGF0ZSAjY29uZmlndXJlUGx1Z2luQnV0dG9uPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJvYnMubG9hZGluZ1wiIChjbGljayk9XCJzaG93QWRkTW9kYWwoKVwiPlxuICAgICAge3sgJ3BsdWdpbk1hbmFnZW1lbnQuYWRkJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPHZhbHRpbW8tcGx1Z2luLWFkZC1tb2RhbFxuICBbb3Blbl09XCJzaG93QWRkTW9kYWwkIHwgYXN5bmNcIlxuICAoY2xvc2VNb2RhbCk9XCJjbG9zZUFkZE1vZGFsKClcIlxuPjwvdmFsdGltby1wbHVnaW4tYWRkLW1vZGFsPlxuXG48dmFsdGltby1wbHVnaW4tZWRpdC1tb2RhbFxuICBbb3Blbl09XCJzaG93RWRpdE1vZGFsJCB8IGFzeW5jXCJcbiAgW3NhdmVOZXdDb25maWd1cmF0aW9uXT1cInNhdmVOZXdDb25maWd1cmF0aW9uJCB8IGFzeW5jXCJcbiAgKGNsb3NlTW9kYWwpPVwiY2xvc2VFZGl0TW9kYWwoKVwiXG4+PC92YWx0aW1vLXBsdWdpbi1lZGl0LW1vZGFsPlxuIl19
|
|
@@ -13,6 +13,8 @@ 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';
|
|
@@ -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
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
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
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-plugin-management.mjs","sources":["../../../../projects/valtimo/plugin-management/src/lib/models/plugin-modal.model.ts","../../../../projects/valtimo/plugin-management/src/lib/models/index.ts","../../../../projects/valtimo/plugin-management/src/lib/services/plugin-management-state.service.ts","../../../../projects/valtimo/plugin-management/src/lib/services/index.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-select/plugin-add-select.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-select/plugin-add-select.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-configure/plugin-configure.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-configure/plugin-configure.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-modal/plugin-add-modal.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-modal/plugin-add-modal.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit/plugin-edit.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit/plugin-edit.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.html","../../../../projects/valtimo/plugin-management/src/lib/plugin-management-routing.ts","../../../../projects/valtimo/plugin-management/src/lib/plugin-management.module.ts","../../../../projects/valtimo/plugin-management/src/public-api.ts","../../../../projects/valtimo/plugin-management/src/valtimo-plugin-management.ts"],"sourcesContent":["/*\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\ntype PluginModal = 'add' | 'edit';\n\nexport {PluginModal};\n","/*\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\nexport * from './plugin-modal.model';\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {PluginModal} from '../models';\nimport {\n PluginService,\n PluginSpecification,\n PluginConfiguration,\n PluginDefinition,\n PluginDefinitionWithLogo,\n} from '@valtimo/plugin';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginManagementStateService {\n private readonly _showModal$ = new Subject<PluginModal>();\n private readonly _hideModal$ = new Subject();\n private readonly _inputDisabled$ = new BehaviorSubject<boolean>(false);\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _save$ = new Subject<null>();\n private readonly _saveEdit$ = new Subject<null>();\n private readonly _delete$ = new Subject<null>();\n private readonly _hideModalSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _pluginDefinitions$ = new BehaviorSubject<Array<PluginDefinition> | undefined>(\n undefined\n );\n private readonly _pluginDefinitionsWithLogos$: Observable<\n Array<PluginDefinitionWithLogo> | undefined\n > = combineLatest([\n this._pluginDefinitions$,\n this.pluginService.pluginSpecifications$,\n this.pluginService.availablePluginIds$,\n ]).pipe(\n map(([pluginDefinitions, pluginSpecifications, availablePluginIds]) =>\n pluginDefinitions\n ?.filter(pluginDefinition => availablePluginIds.includes(pluginDefinition.key))\n .map(pluginDefinition => {\n const pluginSpecification = pluginSpecifications.find(\n specification => specification.pluginId === pluginDefinition.key\n );\n\n return {\n ...pluginDefinition,\n ...(pluginSpecification?.pluginLogoBase64 && {\n pluginLogoBase64: this.sanitizer.bypassSecurityTrustResourceUrl(\n pluginSpecification?.pluginLogoBase64\n ),\n }),\n };\n })\n )\n );\n private readonly _selectedPluginDefinition$ = new BehaviorSubject<PluginDefinition | undefined>(\n undefined\n );\n\n private readonly _selectedPluginConfiguration$ = new BehaviorSubject<\n PluginConfiguration | undefined\n >(undefined);\n\n constructor(\n private readonly pluginService: PluginService,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n get showModal$(): Observable<PluginModal> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get inputDisabled$(): Observable<boolean> {\n return this._inputDisabled$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get pluginDefinitions$(): Observable<Array<PluginDefinition> | undefined> {\n return this._pluginDefinitions$.asObservable();\n }\n\n get pluginDefinitionsWithLogos$(): Observable<Array<PluginDefinitionWithLogo> | undefined> {\n return this._pluginDefinitionsWithLogos$;\n }\n\n get selectedPluginDefinition$(): Observable<PluginDefinition | undefined> {\n return this._selectedPluginDefinition$.asObservable();\n }\n\n get selectedPluginConfiguration$(): Observable<PluginConfiguration | undefined> {\n return this._selectedPluginConfiguration$.asObservable();\n }\n\n get save$(): Observable<any> {\n return this._save$.asObservable();\n }\n\n get saveEdit$(): Observable<any> {\n return this._saveEdit$.asObservable();\n }\n\n get delete$(): Observable<any> {\n return this._delete$.asObservable();\n }\n\n get hideModalSaveButton$(): Observable<boolean> {\n return this._hideModalSaveButton$.asObservable();\n }\n\n showModal(modalType: PluginModal): void {\n this._showModal$.next(modalType);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n disableInput(): void {\n this._inputDisabled$.next(true);\n }\n\n enableInput(): void {\n this._inputDisabled$.next(false);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setPluginDefinitions(definitions: Array<PluginDefinition>): void {\n this._pluginDefinitions$.next(definitions);\n }\n\n selectPluginDefinition(definition: PluginDefinition): void {\n this._selectedPluginDefinition$.next(definition);\n }\n\n selectPluginConfiguration(configuration: PluginConfiguration): void {\n this._selectedPluginConfiguration$.next(configuration);\n }\n\n clearSelectedPluginDefinition(): void {\n this._selectedPluginDefinition$.next(undefined);\n }\n\n clearSelectedPluginConfiguration(): void {\n this._selectedPluginConfiguration$.next(undefined);\n }\n\n save(): void {\n this._save$.next(null);\n }\n\n saveEdit(): void {\n this._saveEdit$.next(null);\n }\n\n delete(): void {\n this._delete$.next(null);\n }\n\n hideModalSaveButton(): void {\n this._hideModalSaveButton$.next(true);\n }\n\n showModalSaveButton(): void {\n this._hideModalSaveButton$.next(false);\n }\n\n clear(): void {\n this.clearSelectedPluginDefinition();\n this.clearSelectedPluginConfiguration();\n }\n}\n","/*\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\nexport * from './plugin-management-state.service';\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {ConnectorProperties, ConnectorType} from '@valtimo/config';\nimport {take, map} from 'rxjs/operators';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginManagementService, PluginDefinition} from '@valtimo/plugin';\n\n@Component({\n selector: 'valtimo-plugin-add-select',\n templateUrl: './plugin-add-select.component.html',\n styleUrls: ['./plugin-add-select.component.scss'],\n})\nexport class PluginAddSelectComponent implements OnInit, OnDestroy {\n readonly selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;\n readonly disabled$ = this.stateService.inputDisabled$;\n readonly pluginDefinitionsWithLogos$ = this.stateService.pluginDefinitionsWithLogos$;\n\n private refreshSubscription!: Subscription;\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly stateService: PluginManagementStateService,\n private readonly translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.openRefreshSubscription();\n this.getPluginDefinitions();\n }\n\n ngOnDestroy(): void {\n this.refreshSubscription?.unsubscribe();\n }\n\n selectPluginDefinition(pluginDefinition: PluginDefinition): void {\n this.stateService.selectPluginDefinition(pluginDefinition);\n }\n\n deselectPluginDefinition(): void {\n this.stateService.clearSelectedPluginDefinition();\n }\n\n private getPluginDefinitions(): void {\n this.pluginManagementService.getPluginDefinitions().subscribe(pluginDefinitions => {\n this.stateService.setPluginDefinitions(pluginDefinitions);\n });\n }\n\n private openRefreshSubscription(): void {\n this.refreshSubscription = combineLatest([\n this.stateService.showModal$,\n this.stateService.refresh$,\n ]).subscribe(() => {\n this.stateService.clearSelectedPluginDefinition();\n });\n }\n}\n","<!--\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<ng-container *ngIf=\"pluginDefinitionsWithLogos$ | async as pluginDefinitions; else loading\">\n <div class=\"plugin-definition__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 *ngIf=\"pluginDefinitions?.length === 0\" class=\"plugin-definition__no-results\">\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 *ngFor=\"let pluginDefinition of pluginDefinitions\" class=\"plugin-definition__item\">\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 class=\"plugin-definition__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 class=\"plugin-definition__item\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginConfigurationData} from '@valtimo/plugin';\nimport {of} from 'rxjs';\n\n@Component({\n selector: 'valtimo-plugin-configure',\n templateUrl: './plugin-configure.component.html',\n styleUrls: ['./plugin-configure.component.scss'],\n})\nexport class PluginConfigureComponent {\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n readonly save$ = this.stateService.save$;\n\n readonly pluginDefinitionKey$ = this.stateService.selectedPluginDefinition$.pipe(\n map(definition => definition?.key)\n );\n\n readonly prefillConfiguration$ = of(undefined);\n\n readonly disabled$ = this.stateService.inputDisabled$;\n\n constructor(private readonly stateService: PluginManagementStateService) {}\n\n onValid(valid: boolean): void {\n this.valid.emit(valid);\n }\n\n onFunctionConfiguration(configuration: PluginConfigurationData) {\n this.configuration.emit(configuration);\n }\n}\n","<!--\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","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {PluginManagementStateService} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {PluginConfigurationData, PluginManagementService} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-plugin-add-modal',\n templateUrl: './plugin-add-modal.component.html',\n styleUrls: ['./plugin-add-modal.component.scss'],\n})\nexport class PluginAddModalComponent {\n @Input() open = false;\n\n @Output() closeModal: EventEmitter<boolean> = new EventEmitter();\n\n readonly inputDisabled$ = this.stateService.inputDisabled$;\n readonly selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;\n readonly configurationValid$ = new BehaviorSubject<boolean>(false);\n readonly returnToFirstStepSubject$ = new Subject<boolean>();\n\n constructor(\n private readonly stateService: PluginManagementStateService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly logger: NGXLogger\n ) {}\n\n complete(): void {\n this.stateService.save();\n }\n\n hide(): void {\n this.closeModal.emit();\n this.returnToFirstStep();\n this.stateService.enableInput();\n this.stateService.clear();\n }\n\n onValid(valid: boolean): void {\n this.configurationValid$.next(valid);\n }\n\n onConfiguration(configuration: PluginConfigurationData): void {\n const pluginConfiguration = {...configuration};\n delete pluginConfiguration['configurationId'];\n delete pluginConfiguration['configurationTitle'];\n\n this.stateService.disableInput();\n\n this.stateService.selectedPluginDefinition$.pipe(take(1)).subscribe(selectedDefinition => {\n this.pluginManagementService\n .savePluginConfiguration({\n id: configuration.configurationId,\n definitionKey: selectedDefinition.key,\n title: configuration.configurationTitle,\n properties: pluginConfiguration,\n })\n .subscribe({\n next: () => {\n this.stateService.refresh();\n this.hide();\n },\n error: () => {\n this.logger.error('Something went wrong with saving the plugin configuration.');\n },\n });\n });\n }\n\n private returnToFirstStep(): void {\n this.returnToFirstStepSubject$.next(true);\n }\n}\n","<!--\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<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <cds-modal valtimoCdsModal #pluginAddModal [open]=\"open\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"hide()\">\n <v-stepper-header></v-stepper-header>\n </cds-modal-header>\n <section cdsModalContent>\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n <valtimo-plugin-configure\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n ></valtimo-plugin-configure>\n </v-stepper-step>\n </v-stepper-content>\n </section>\n <cds-modal-footer>\n <v-stepper-footer class=\"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 </cds-modal-footer>\n </cds-modal>\n</v-stepper-container>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginConfigurationData} from '@valtimo/plugin';\n\n@Component({\n selector: 'valtimo-plugin-edit',\n templateUrl: './plugin-edit.component.html',\n styleUrls: ['./plugin-edit.component.scss'],\n})\nexport class PluginEditComponent {\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n readonly saveEdit$ = this.stateService.saveEdit$;\n\n readonly pluginDefinitionKey$ = this.stateService.selectedPluginConfiguration$.pipe(\n map(configuration => configuration?.pluginDefinition?.key)\n );\n\n readonly prefillConfiguration$ = this.stateService.selectedPluginConfiguration$.pipe(\n map(configuration =>\n configuration\n ? {\n ...configuration.properties,\n configurationId: configuration.id,\n configurationTitle: configuration.title,\n }\n : undefined\n )\n );\n\n readonly disabled$ = this.stateService.inputDisabled$;\n\n constructor(private readonly stateService: PluginManagementStateService) {}\n\n onValid(valid: boolean): void {\n this.valid.emit(valid);\n }\n\n onFunctionConfiguration(configuration: PluginConfigurationData) {\n this.configuration.emit(configuration);\n }\n}\n","<!--\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","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {PluginManagementStateService} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {\n PluginConfigurationData,\n PluginConfiguration,\n PluginManagementService,\n} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-plugin-edit-modal',\n templateUrl: './plugin-edit-modal.component.html',\n styleUrls: ['./plugin-edit-modal.component.scss'],\n})\nexport class PluginEditModalComponent {\n @Input() open = false;\n\n @Output() closeModal: EventEmitter<boolean> = new EventEmitter();\n\n readonly inputDisabled$ = this.stateService.inputDisabled$;\n readonly selectedPluginConfiguration$: Observable<PluginConfiguration> =\n this.stateService.selectedPluginConfiguration$;\n readonly configurationValid$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly stateService: PluginManagementStateService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly logger: NGXLogger\n ) {}\n\n save(): void {\n this.stateService.saveEdit();\n }\n\n delete(): void {\n this.stateService.delete();\n this.stateService.disableInput();\n\n this.stateService.selectedPluginConfiguration$\n .pipe(take(1))\n .subscribe(selectedPluginConfiguration => {\n this.pluginManagementService\n .deletePluginConfiguration(selectedPluginConfiguration.id)\n .subscribe(\n () => {\n this.stateService.refresh();\n this.hide();\n },\n () => {\n this.logger.error('Something went wrong with deleting the plugin configuration.');\n this.stateService.enableInput();\n }\n );\n });\n }\n\n public hide(): void {\n this.closeModal.emit();\n this.stateService.enableInput();\n }\n\n public onPluginValid(valid: boolean): void {\n this.configurationValid$.next(valid);\n }\n\n public onPluginConfiguration(configuration: PluginConfigurationData): void {\n this.stateService.disableInput();\n\n this.stateService.selectedPluginConfiguration$\n .pipe(take(1))\n .subscribe(selectedPluginConfiguration => {\n const configurationId = configuration.configurationId;\n const configurationTitle = configuration.configurationTitle;\n const configurationData = {...configuration};\n delete configurationData['configurationTitle'];\n\n this.pluginManagementService\n .updatePluginConfiguration(\n selectedPluginConfiguration.id,\n configurationId,\n configurationTitle,\n configurationData\n )\n .subscribe(\n () => {\n this.stateService.refresh();\n this.hide();\n },\n () => {\n this.logger.error('Something went wrong with updating the plugin configuration.');\n this.stateService.enableInput();\n }\n );\n });\n }\n}\n","<!--\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","/*\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 */\nimport {Component} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActionItem, ColumnConfig, ViewType} from '@valtimo/components';\nimport {\n PluginConfiguration,\n PluginManagementService,\n PluginTranslationService,\n} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, combineLatest} from 'rxjs';\nimport {map, switchMap, take, tap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\n\n@Component({\n selector: 'valtimo-plugin-management',\n templateUrl: './plugin-management.component.html',\n styleUrls: ['./plugin-management.component.scss'],\n})\nexport class PluginManagementComponent {\n public readonly fields: ColumnConfig[] = [\n {\n key: 'pluginName',\n label: 'pluginManagement.labels.pluginName',\n viewType: ViewType.TEXT,\n },\n {\n key: 'definitionKey',\n label: 'pluginManagement.labels.identifier',\n viewType: ViewType.TEXT,\n },\n {\n key: 'title',\n label: 'pluginManagement.labels.configurationName',\n viewType: ViewType.TEXT,\n },\n ];\n public readonly actionItems: ActionItem[] = [\n {\n callback: this.editConfiguration.bind(this),\n label: 'interface.edit',\n },\n {\n callback: this.deleteConfiguration.bind(this),\n label: 'interface.delete',\n type: 'danger',\n },\n ];\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly showEditModal$ = new BehaviorSubject<boolean>(false);\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n public readonly pluginConfigurations$ = this.stateService.refresh$.pipe(\n switchMap(() =>\n combineLatest([\n this.pluginManagementService.getAllPluginConfigurations(),\n this.translateService.stream('key'),\n ]).pipe(\n map(([pluginConfigurations]) =>\n pluginConfigurations.map(configuration => ({\n ...configuration,\n pluginName: this.pluginTranslationService.instant(\n 'title',\n configuration.pluginDefinition?.key ?? ''\n ),\n definitionKey: configuration.pluginDefinition?.key ?? '',\n }))\n ),\n tap(() => {\n this.loading$.next(false);\n })\n )\n )\n );\n constructor(\n private readonly logger: NGXLogger,\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginTranslationService: PluginTranslationService,\n private readonly stateService: PluginManagementStateService,\n private readonly translateService: TranslateService\n ) {}\n\n public showAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public editConfiguration(configuration: PluginConfiguration): void {\n this.showEditModal$.next(true);\n this.stateService.selectPluginConfiguration(configuration);\n }\n\n public deleteConfiguration(configuration: PluginConfiguration): void {\n if (!configuration.id) {\n return;\n }\n\n this.pluginManagementService\n .deletePluginConfiguration(configuration.id)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.stateService.refresh();\n },\n error: () => {\n this.logger.error('Something went wrong with deleting the plugin configuration.');\n },\n });\n }\n\n public closeEditModal(): void {\n this.showEditModal$.next(false);\n }\n\n public closeAddModal(): void {\n this.showAddModal$.next(false);\n }\n}\n","<!--\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","/*\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {PluginManagementComponent} from './components/plugin-management/plugin-management.component';\n\nconst routes: Routes = [\n {\n path: 'plugins',\n component: PluginManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Plugins', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PluginManagementRoutingModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {PluginManagementRoutingModule} from './plugin-management-routing';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {PluginManagementComponent} from './components/plugin-management/plugin-management.component';\nimport {PluginAddModalComponent} from './components/plugin-add-modal/plugin-add-modal.component';\nimport {PluginManagementStateService} from './services';\nimport {PluginAddSelectComponent} from './components/plugin-add-select/plugin-add-select.component';\nimport {PluginConfigureComponent} from './components/plugin-configure/plugin-configure.component';\nimport {PluginConfigurationContainerModule, PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {PluginEditModalComponent} from './components/plugin-edit-modal/plugin-edit-modal.component';\nimport {PluginEditComponent} from './components/plugin-edit/plugin-edit.component';\nimport {\n ButtonModule,\n CarbonListModule,\n PageModule,\n ParagraphModule,\n StepperModule,\n TableModule,\n TitleModule,\n ValtimoCdsModalDirectiveModule,\n VCardModule,\n VModalModule,\n} from '@valtimo/components';\nimport {\n ButtonModule as CarbonButtonModule,\n IconModule,\n LayerModule,\n ModalModule as CarbonModalModule,\n} from 'carbon-components-angular';\n\n@NgModule({\n providers: [PluginManagementStateService],\n declarations: [\n PluginManagementComponent,\n PluginAddModalComponent,\n PluginAddSelectComponent,\n PluginConfigureComponent,\n PluginEditModalComponent,\n PluginEditComponent,\n ],\n imports: [\n CommonModule,\n PluginManagementRoutingModule,\n TranslateModule,\n PageModule,\n ParagraphModule,\n TitleModule,\n TableModule,\n StepperModule,\n VModalModule,\n ButtonModule,\n VCardModule,\n PluginTranslatePipeModule,\n PluginConfigurationContainerModule,\n CarbonButtonModule,\n CarbonListModule,\n CarbonModalModule,\n IconModule,\n ValtimoCdsModalDirectiveModule,\n LayerModule,\n ],\n exports: [\n PluginManagementComponent,\n PluginAddModalComponent,\n PluginAddSelectComponent,\n PluginConfigureComponent,\n PluginEditModalComponent,\n PluginEditComponent,\n ],\n})\nexport class PluginManagementModule {}\n","/*\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/*\n * Public API Surface of plugin-management\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/plugin-management.module';\nexport * from './lib/components/plugin-management/plugin-management.component';\nexport * from './lib/components/plugin-add-modal/plugin-add-modal.component';\nexport * from './lib/components/plugin-add-select/plugin-add-select.component';\nexport * from './lib/components/plugin-configure/plugin-configure.component';\nexport * from './lib/components/plugin-edit-modal/plugin-edit-modal.component';\nexport * from './lib/components/plugin-edit/plugin-edit.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.PluginManagementStateService","i5","i1.PluginManagementStateService","i3","i4","i6.PluginAddSelectComponent","i7.PluginConfigureComponent","i8","i6","i7.PluginEditComponent","i3.PluginManagementStateService","i7","i8.PluginAddModalComponent","i9.PluginEditModalComponent","CarbonButtonModule","CarbonModalModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-plugin-management.mjs","sources":["../../../../projects/valtimo/plugin-management/src/lib/models/plugin-modal.model.ts","../../../../projects/valtimo/plugin-management/src/lib/models/index.ts","../../../../projects/valtimo/plugin-management/src/lib/services/plugin-management-state.service.ts","../../../../projects/valtimo/plugin-management/src/lib/services/index.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-select/plugin-add-select.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-select/plugin-add-select.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-configure/plugin-configure.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-configure/plugin-configure.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-modal/plugin-add-modal.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-modal/plugin-add-modal.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit/plugin-edit.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit/plugin-edit.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.html","../../../../projects/valtimo/plugin-management/src/lib/plugin-management-routing.ts","../../../../projects/valtimo/plugin-management/src/lib/plugin-management.module.ts","../../../../projects/valtimo/plugin-management/src/public-api.ts","../../../../projects/valtimo/plugin-management/src/valtimo-plugin-management.ts"],"sourcesContent":["/*\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\ntype PluginModal = 'add' | 'edit';\n\nexport {PluginModal};\n","/*\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\nexport * from './plugin-modal.model';\n","/*\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\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {PluginModal} from '../models';\nimport {\n PluginService,\n PluginSpecification,\n PluginConfiguration,\n PluginDefinition,\n PluginDefinitionWithLogo,\n} from '@valtimo/plugin';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PluginManagementStateService {\n private readonly _showModal$ = new Subject<PluginModal>();\n private readonly _hideModal$ = new Subject();\n private readonly _inputDisabled$ = new BehaviorSubject<boolean>(false);\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _save$ = new Subject<null>();\n private readonly _saveEdit$ = new Subject<null>();\n private readonly _delete$ = new Subject<null>();\n private readonly _hideModalSaveButton$ = new BehaviorSubject<boolean>(false);\n private readonly _pluginDefinitions$ = new BehaviorSubject<Array<PluginDefinition> | undefined>(\n undefined\n );\n private readonly _pluginDefinitionsWithLogos$: Observable<\n Array<PluginDefinitionWithLogo> | undefined\n > = combineLatest([\n this._pluginDefinitions$,\n this.pluginService.pluginSpecifications$,\n this.pluginService.availablePluginIds$,\n ]).pipe(\n map(([pluginDefinitions, pluginSpecifications, availablePluginIds]) =>\n pluginDefinitions\n ?.filter(pluginDefinition => availablePluginIds.includes(pluginDefinition.key))\n .map(pluginDefinition => {\n const pluginSpecification = pluginSpecifications.find(\n specification => specification.pluginId === pluginDefinition.key\n );\n\n return {\n ...pluginDefinition,\n ...(pluginSpecification?.pluginLogoBase64 && {\n pluginLogoBase64: this.sanitizer.bypassSecurityTrustResourceUrl(\n pluginSpecification?.pluginLogoBase64\n ),\n }),\n };\n })\n )\n );\n private readonly _selectedPluginDefinition$ = new BehaviorSubject<PluginDefinition | undefined>(\n undefined\n );\n\n private readonly _selectedPluginConfiguration$ = new BehaviorSubject<\n PluginConfiguration | undefined\n >(undefined);\n\n constructor(\n private readonly pluginService: PluginService,\n private readonly sanitizer: DomSanitizer\n ) {}\n\n get showModal$(): Observable<PluginModal> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get inputDisabled$(): Observable<boolean> {\n return this._inputDisabled$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get pluginDefinitions$(): Observable<Array<PluginDefinition> | undefined> {\n return this._pluginDefinitions$.asObservable();\n }\n\n get pluginDefinitionsWithLogos$(): Observable<Array<PluginDefinitionWithLogo> | undefined> {\n return this._pluginDefinitionsWithLogos$;\n }\n\n get selectedPluginDefinition$(): Observable<PluginDefinition | undefined> {\n return this._selectedPluginDefinition$.asObservable();\n }\n\n get selectedPluginConfiguration$(): Observable<PluginConfiguration | undefined> {\n return this._selectedPluginConfiguration$.asObservable();\n }\n\n get save$(): Observable<any> {\n return this._save$.asObservable();\n }\n\n get saveEdit$(): Observable<any> {\n return this._saveEdit$.asObservable();\n }\n\n get delete$(): Observable<any> {\n return this._delete$.asObservable();\n }\n\n get hideModalSaveButton$(): Observable<boolean> {\n return this._hideModalSaveButton$.asObservable();\n }\n\n showModal(modalType: PluginModal): void {\n this._showModal$.next(modalType);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n disableInput(): void {\n this._inputDisabled$.next(true);\n }\n\n enableInput(): void {\n this._inputDisabled$.next(false);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setPluginDefinitions(definitions: Array<PluginDefinition>): void {\n this._pluginDefinitions$.next(definitions);\n }\n\n selectPluginDefinition(definition: PluginDefinition): void {\n this._selectedPluginDefinition$.next(definition);\n }\n\n selectPluginConfiguration(configuration: PluginConfiguration): void {\n this._selectedPluginConfiguration$.next(configuration);\n }\n\n clearSelectedPluginDefinition(): void {\n this._selectedPluginDefinition$.next(undefined);\n }\n\n clearSelectedPluginConfiguration(): void {\n this._selectedPluginConfiguration$.next(undefined);\n }\n\n save(): void {\n this._save$.next(null);\n }\n\n saveEdit(): void {\n this._saveEdit$.next(null);\n }\n\n delete(): void {\n this._delete$.next(null);\n }\n\n hideModalSaveButton(): void {\n this._hideModalSaveButton$.next(true);\n }\n\n showModalSaveButton(): void {\n this._hideModalSaveButton$.next(false);\n }\n\n clear(): void {\n this.clearSelectedPluginDefinition();\n this.clearSelectedPluginConfiguration();\n }\n}\n","/*\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\nexport * from './plugin-management-state.service';\n","/*\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\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {ConnectorProperties, ConnectorType} from '@valtimo/config';\nimport {take, map} from 'rxjs/operators';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginManagementService, PluginDefinition} from '@valtimo/plugin';\n\n@Component({\n selector: 'valtimo-plugin-add-select',\n templateUrl: './plugin-add-select.component.html',\n styleUrls: ['./plugin-add-select.component.scss'],\n})\nexport class PluginAddSelectComponent implements OnInit, OnDestroy {\n readonly selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;\n readonly disabled$ = this.stateService.inputDisabled$;\n readonly pluginDefinitionsWithLogos$ = this.stateService.pluginDefinitionsWithLogos$;\n\n private refreshSubscription!: Subscription;\n\n constructor(\n private readonly pluginManagementService: PluginManagementService,\n private readonly stateService: PluginManagementStateService,\n private readonly translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.openRefreshSubscription();\n this.getPluginDefinitions();\n }\n\n ngOnDestroy(): void {\n this.refreshSubscription?.unsubscribe();\n }\n\n selectPluginDefinition(pluginDefinition: PluginDefinition): void {\n this.stateService.selectPluginDefinition(pluginDefinition);\n }\n\n deselectPluginDefinition(): void {\n this.stateService.clearSelectedPluginDefinition();\n }\n\n private getPluginDefinitions(): void {\n this.pluginManagementService.getPluginDefinitions().subscribe(pluginDefinitions => {\n this.stateService.setPluginDefinitions(pluginDefinitions);\n });\n }\n\n private openRefreshSubscription(): void {\n this.refreshSubscription = combineLatest([\n this.stateService.showModal$,\n this.stateService.refresh$,\n ]).subscribe(() => {\n this.stateService.clearSelectedPluginDefinition();\n });\n }\n}\n","<!--\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<ng-container *ngIf=\"pluginDefinitionsWithLogos$ | async as pluginDefinitions; else loading\">\n <div class=\"plugin-definition__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 *ngIf=\"pluginDefinitions?.length === 0\" class=\"plugin-definition__no-results\">\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 *ngFor=\"let pluginDefinition of pluginDefinitions\" class=\"plugin-definition__item\">\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 class=\"plugin-definition__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 class=\"plugin-definition__item\">\n <v-card [loading]=\"true\" [loadingDescription]=\"true\" [loadingTitle]=\"true\"></v-card>\n </div>\n</ng-template>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginConfigurationData} from '@valtimo/plugin';\nimport {of} from 'rxjs';\n\n@Component({\n selector: 'valtimo-plugin-configure',\n templateUrl: './plugin-configure.component.html',\n styleUrls: ['./plugin-configure.component.scss'],\n})\nexport class PluginConfigureComponent {\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n readonly save$ = this.stateService.save$;\n\n readonly pluginDefinitionKey$ = this.stateService.selectedPluginDefinition$.pipe(\n map(definition => definition?.key)\n );\n\n readonly prefillConfiguration$ = of(undefined);\n\n readonly disabled$ = this.stateService.inputDisabled$;\n\n constructor(private readonly stateService: PluginManagementStateService) {}\n\n onValid(valid: boolean): void {\n this.valid.emit(valid);\n }\n\n onFunctionConfiguration(configuration: PluginConfigurationData) {\n this.configuration.emit(configuration);\n }\n}\n","<!--\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","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {PluginManagementStateService} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {PluginConfigurationData, PluginManagementService} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-plugin-add-modal',\n templateUrl: './plugin-add-modal.component.html',\n styleUrls: ['./plugin-add-modal.component.scss'],\n})\nexport class PluginAddModalComponent {\n @Input() open = false;\n\n @Output() closeModal: EventEmitter<boolean> = new EventEmitter();\n\n readonly inputDisabled$ = this.stateService.inputDisabled$;\n readonly selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;\n readonly configurationValid$ = new BehaviorSubject<boolean>(false);\n readonly returnToFirstStepSubject$ = new Subject<boolean>();\n\n constructor(\n private readonly stateService: PluginManagementStateService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly logger: NGXLogger\n ) {}\n\n complete(): void {\n this.stateService.save();\n }\n\n hide(): void {\n this.closeModal.emit();\n this.returnToFirstStep();\n this.stateService.enableInput();\n this.stateService.clear();\n }\n\n onValid(valid: boolean): void {\n this.configurationValid$.next(valid);\n }\n\n onConfiguration(configuration: PluginConfigurationData): void {\n const pluginConfiguration = {...configuration};\n delete pluginConfiguration['configurationId'];\n delete pluginConfiguration['configurationTitle'];\n\n this.stateService.disableInput();\n\n this.stateService.selectedPluginDefinition$.pipe(take(1)).subscribe(selectedDefinition => {\n this.pluginManagementService\n .savePluginConfiguration({\n id: configuration.configurationId,\n definitionKey: selectedDefinition.key,\n title: configuration.configurationTitle,\n properties: pluginConfiguration,\n })\n .subscribe({\n next: () => {\n this.stateService.refresh();\n this.hide();\n },\n error: () => {\n this.logger.error('Something went wrong with saving the plugin configuration.');\n },\n });\n });\n }\n\n private returnToFirstStep(): void {\n this.returnToFirstStepSubject$.next(true);\n }\n}\n","<!--\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<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <cds-modal valtimoCdsModal #pluginAddModal [open]=\"open\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"hide()\">\n <v-stepper-header></v-stepper-header>\n </cds-modal-header>\n <section cdsModalContent>\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n <valtimo-plugin-add-select></valtimo-plugin-add-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n <valtimo-plugin-configure\n (valid)=\"onValid($event)\"\n (configuration)=\"onConfiguration($event)\"\n ></valtimo-plugin-configure>\n </v-stepper-step>\n </v-stepper-content>\n </section>\n <cds-modal-footer>\n <v-stepper-footer class=\"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 </cds-modal-footer>\n </cds-modal>\n</v-stepper-container>\n","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginConfigurationData} from '@valtimo/plugin';\n\n@Component({\n selector: 'valtimo-plugin-edit',\n templateUrl: './plugin-edit.component.html',\n styleUrls: ['./plugin-edit.component.scss'],\n})\nexport class PluginEditComponent {\n @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() configuration: EventEmitter<PluginConfigurationData> =\n new EventEmitter<PluginConfigurationData>();\n\n readonly saveEdit$ = this.stateService.saveEdit$;\n\n readonly pluginDefinitionKey$ = this.stateService.selectedPluginConfiguration$.pipe(\n map(configuration => configuration?.pluginDefinition?.key)\n );\n\n readonly prefillConfiguration$ = this.stateService.selectedPluginConfiguration$.pipe(\n map(configuration =>\n configuration\n ? {\n ...configuration.properties,\n configurationId: configuration.id,\n configurationTitle: configuration.title,\n }\n : undefined\n )\n );\n\n readonly disabled$ = this.stateService.inputDisabled$;\n\n constructor(private readonly stateService: PluginManagementStateService) {}\n\n onValid(valid: boolean): void {\n this.valid.emit(valid);\n }\n\n onFunctionConfiguration(configuration: PluginConfigurationData) {\n this.configuration.emit(configuration);\n }\n}\n","<!--\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","/*\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\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {PluginManagementStateService} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {\n PluginConfiguration,\n PluginConfigurationData,\n PluginManagementService,\n} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n selector: 'valtimo-plugin-edit-modal',\n templateUrl: './plugin-edit-modal.component.html',\n styleUrls: ['./plugin-edit-modal.component.scss'],\n})\nexport class PluginEditModalComponent {\n @Input() public readonly open = false;\n @Input() public readonly saveNewConfiguration = false;\n\n @Output() closeModal: EventEmitter<boolean> = new EventEmitter();\n\n readonly inputDisabled$ = this.stateService.inputDisabled$;\n readonly selectedPluginConfiguration$: Observable<PluginConfiguration> =\n this.stateService.selectedPluginConfiguration$;\n readonly configurationValid$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly stateService: PluginManagementStateService,\n private readonly pluginManagementService: PluginManagementService,\n private readonly logger: NGXLogger\n ) {}\n\n save(): void {\n this.stateService.saveEdit();\n }\n\n delete(): void {\n this.stateService.delete();\n this.stateService.disableInput();\n\n this.stateService.selectedPluginConfiguration$\n .pipe(take(1))\n .subscribe(selectedPluginConfiguration => {\n this.pluginManagementService\n .deletePluginConfiguration(selectedPluginConfiguration.id)\n .subscribe(\n () => {\n this.stateService.refresh();\n this.hide();\n },\n () => {\n this.logger.error('Something went wrong with deleting the plugin configuration.');\n this.stateService.enableInput();\n }\n );\n });\n }\n\n public hide(): void {\n this.closeModal.emit();\n this.stateService.enableInput();\n }\n\n public onPluginValid(valid: boolean): void {\n this.configurationValid$.next(valid);\n }\n\n public onPluginConfiguration(configuration: PluginConfigurationData): void {\n this.stateService.disableInput();\n\n if (this.saveNewConfiguration) {\n this.saveNewPluginConfiguration(configuration);\n return;\n }\n\n this.stateService.selectedPluginConfiguration$\n .pipe(take(1))\n .subscribe(selectedPluginConfiguration => {\n const configurationId = configuration.configurationId;\n const configurationTitle = configuration.configurationTitle;\n const configurationData = {...configuration};\n delete configurationData['configurationTitle'];\n\n this.pluginManagementService\n .updatePluginConfiguration(\n selectedPluginConfiguration.id,\n configurationId,\n configurationTitle,\n configurationData\n )\n .subscribe({\n next: () => {\n this.stateService.refresh();\n this.hide();\n },\n error: () => {\n this.logger.error('Something went wrong with updating the plugin configuration.');\n this.stateService.enableInput();\n },\n });\n });\n }\n\n private saveNewPluginConfiguration(configuration: PluginConfigurationData): void {\n this.stateService.selectedPluginConfiguration$\n .pipe(take(1))\n .subscribe(selectedPluginConfiguration => {\n const duplicatedConfiguration = {...selectedPluginConfiguration, properties: configuration};\n\n duplicatedConfiguration.title = duplicatedConfiguration.properties.configurationTitle;\n\n delete duplicatedConfiguration.properties.configurationTitle;\n delete duplicatedConfiguration.properties.configurationId;\n\n this.pluginManagementService.savePluginConfiguration(duplicatedConfiguration).subscribe({\n next: () => {\n this.stateService.refresh();\n this.hide();\n },\n error: () => {\n this.logger.error(\n 'Something went wrong with saving the duplicated plugin configuration.'\n );\n this.stateService.enableInput();\n },\n });\n });\n }\n}\n","<!--\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","/*\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 */\nimport {Component} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActionItem, ColumnConfig, ViewType} from '@valtimo/components';\nimport {\n PluginConfiguration,\n PluginManagementService,\n PluginTranslationService,\n} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {map, switchMap, take, tap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {cloneDeep} from 'lodash';\nimport {v4 as uuidv4} from 'uuid';\n\n@Component({\n selector: 'valtimo-plugin-management',\n templateUrl: './plugin-management.component.html',\n styleUrls: ['./plugin-management.component.scss'],\n})\nexport class PluginManagementComponent {\n public readonly fields: ColumnConfig[] = [\n {\n key: 'pluginName',\n label: 'pluginManagement.labels.pluginName',\n viewType: ViewType.TEXT,\n },\n {\n key: 'definitionKey',\n label: 'pluginManagement.labels.identifier',\n viewType: ViewType.TEXT,\n },\n {\n key: 'title',\n label: 'pluginManagement.labels.configurationName',\n viewType: ViewType.TEXT,\n },\n ];\n public readonly actionItems: ActionItem[] = [\n {\n callback: this.editConfiguration.bind(this),\n label: 'interface.edit',\n },\n {\n label: 'interface.duplicate',\n callback: this.duplicateConfiguration.bind(this),\n },\n {\n callback: this.deleteConfiguration.bind(this),\n label: 'interface.delete',\n type: 'danger',\n },\n ];\n\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly showEditModal$ = new BehaviorSubject<boolean>(false);\n public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n public readonly pluginConfigurations$: Observable<PluginConfiguration[]> =\n this.stateService.refresh$.pipe(\n switchMap(() =>\n combineLatest([\n this.pluginManagementService.getAllPluginConfigurations(),\n this.translateService.stream('key'),\n ]).pipe(\n map(([pluginConfigurations]) =>\n pluginConfigurations.map(configuration => ({\n ...configuration,\n pluginName: this.pluginTranslationService.instant(\n 'title',\n configuration.pluginDefinition?.key ?? ''\n ),\n definitionKey: configuration.pluginDefinition?.key ?? '',\n }))\n ),\n tap(() => {\n this.loading$.next(false);\n })\n )\n )\n );\n\n public readonly saveNewConfiguration$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly logger: NGXLogger,\n private readonly pluginManagementService: PluginManagementService,\n private readonly pluginTranslationService: PluginTranslationService,\n private readonly stateService: PluginManagementStateService,\n private readonly translateService: TranslateService\n ) {}\n\n public showAddModal(): void {\n this.showAddModal$.next(true);\n }\n\n public editConfiguration(configuration: PluginConfiguration): void {\n this.showEditModal$.next(true);\n this.saveNewConfiguration$.next(false);\n this.stateService.selectPluginConfiguration(configuration);\n }\n\n public deleteConfiguration(configuration: PluginConfiguration): void {\n if (!configuration.id) {\n return;\n }\n\n this.pluginManagementService\n .deletePluginConfiguration(configuration.id)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.stateService.refresh();\n },\n error: () => {\n this.logger.error('Something went wrong with deleting the plugin configuration.');\n },\n });\n }\n\n public closeEditModal(): void {\n this.showEditModal$.next(false);\n }\n\n public closeAddModal(): void {\n this.showAddModal$.next(false);\n }\n\n public duplicateConfiguration(configuration: PluginConfiguration): void {\n const configurationClone = cloneDeep(configuration);\n configurationClone.id = uuidv4();\n this.showEditModal$.next(true);\n this.saveNewConfiguration$.next(true);\n this.stateService.selectPluginConfiguration(configurationClone);\n }\n}\n","<!--\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","/*\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\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {PluginManagementComponent} from './components/plugin-management/plugin-management.component';\n\nconst routes: Routes = [\n {\n path: 'plugins',\n component: PluginManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Plugins', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PluginManagementRoutingModule {}\n","/*\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\nimport {NgModule} from '@angular/core';\nimport {PluginManagementRoutingModule} from './plugin-management-routing';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {PluginManagementComponent} from './components/plugin-management/plugin-management.component';\nimport {PluginAddModalComponent} from './components/plugin-add-modal/plugin-add-modal.component';\nimport {PluginManagementStateService} from './services';\nimport {PluginAddSelectComponent} from './components/plugin-add-select/plugin-add-select.component';\nimport {PluginConfigureComponent} from './components/plugin-configure/plugin-configure.component';\nimport {PluginConfigurationContainerModule, PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {PluginEditModalComponent} from './components/plugin-edit-modal/plugin-edit-modal.component';\nimport {PluginEditComponent} from './components/plugin-edit/plugin-edit.component';\nimport {\n ButtonModule,\n CarbonListModule,\n PageModule,\n ParagraphModule,\n StepperModule,\n TableModule,\n TitleModule,\n ValtimoCdsModalDirectiveModule,\n VCardModule,\n VModalModule,\n} from '@valtimo/components';\nimport {\n ButtonModule as CarbonButtonModule,\n IconModule,\n LayerModule,\n ModalModule as CarbonModalModule,\n} from 'carbon-components-angular';\n\n@NgModule({\n providers: [PluginManagementStateService],\n declarations: [\n PluginManagementComponent,\n PluginAddModalComponent,\n PluginAddSelectComponent,\n PluginConfigureComponent,\n PluginEditModalComponent,\n PluginEditComponent,\n ],\n imports: [\n CommonModule,\n PluginManagementRoutingModule,\n TranslateModule,\n PageModule,\n ParagraphModule,\n TitleModule,\n TableModule,\n StepperModule,\n VModalModule,\n ButtonModule,\n VCardModule,\n PluginTranslatePipeModule,\n PluginConfigurationContainerModule,\n CarbonButtonModule,\n CarbonListModule,\n CarbonModalModule,\n IconModule,\n ValtimoCdsModalDirectiveModule,\n LayerModule,\n ],\n exports: [\n PluginManagementComponent,\n PluginAddModalComponent,\n PluginAddSelectComponent,\n PluginConfigureComponent,\n PluginEditModalComponent,\n PluginEditComponent,\n ],\n})\nexport class PluginManagementModule {}\n","/*\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/*\n * Public API Surface of plugin-management\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/plugin-management.module';\nexport * from './lib/components/plugin-management/plugin-management.component';\nexport * from './lib/components/plugin-add-modal/plugin-add-modal.component';\nexport * from './lib/components/plugin-add-select/plugin-add-select.component';\nexport * from './lib/components/plugin-configure/plugin-configure.component';\nexport * from './lib/components/plugin-edit-modal/plugin-edit-modal.component';\nexport * from './lib/components/plugin-edit/plugin-edit.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.PluginManagementStateService","i5","i1.PluginManagementStateService","i3","i4","i6.PluginAddSelectComponent","i7.PluginConfigureComponent","i8","i6","i7.PluginEditComponent","uuidv4","i3.PluginManagementStateService","i7","i8.PluginAddModalComponent","i9.PluginEditModalComponent","CarbonButtonModule","CarbonModalModule"],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { PluginManagementStateService } from '../../services';
|
|
3
3
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
4
|
-
import {
|
|
4
|
+
import { PluginConfiguration, PluginConfigurationData, PluginManagementService } from '@valtimo/plugin';
|
|
5
5
|
import { NGXLogger } from 'ngx-logger';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class PluginEditModalComponent {
|
|
8
8
|
private readonly stateService;
|
|
9
9
|
private readonly pluginManagementService;
|
|
10
10
|
private readonly logger;
|
|
11
|
-
open
|
|
11
|
+
readonly open = false;
|
|
12
|
+
readonly saveNewConfiguration = false;
|
|
12
13
|
closeModal: EventEmitter<boolean>;
|
|
13
14
|
readonly inputDisabled$: Observable<boolean>;
|
|
14
15
|
readonly selectedPluginConfiguration$: Observable<PluginConfiguration>;
|
|
@@ -19,7 +20,8 @@ export declare class PluginEditModalComponent {
|
|
|
19
20
|
hide(): void;
|
|
20
21
|
onPluginValid(valid: boolean): void;
|
|
21
22
|
onPluginConfiguration(configuration: PluginConfigurationData): void;
|
|
23
|
+
private saveNewPluginConfiguration;
|
|
22
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<PluginEditModalComponent, never>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PluginEditModalComponent, "valtimo-plugin-edit-modal", never, { "open": { "alias": "open"; "required": false; }; }, { "closeModal": "closeModal"; }, never, never, false, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PluginEditModalComponent, "valtimo-plugin-edit-modal", never, { "open": { "alias": "open"; "required": false; }; "saveNewConfiguration": { "alias": "saveNewConfiguration"; "required": false; }; }, { "closeModal": "closeModal"; }, never, never, false, never>;
|
|
24
26
|
}
|
|
25
27
|
//# sourceMappingURL=plugin-edit-modal.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-edit-modal.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,YAAY,EAAgB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAC,4BAA4B,EAAC,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,MAAM,CAAC;AACjD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"plugin-edit-modal.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,YAAY,EAAgB,MAAM,eAAe,CAAC;AACrE,OAAO,EAAC,4BAA4B,EAAC,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,MAAM,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;;AAErC,qBAKa,wBAAwB;IAYjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbzB,SAAyB,IAAI,SAAS;IACtC,SAAyB,oBAAoB,SAAS;IAE5C,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,CAAsB;IAEjE,QAAQ,CAAC,cAAc,sBAAoC;IAC3D,QAAQ,CAAC,4BAA4B,EAAE,UAAU,CAAC,mBAAmB,CAAC,CACrB;IACjD,QAAQ,CAAC,mBAAmB,2BAAuC;gBAGhD,YAAY,EAAE,4BAA4B,EAC1C,uBAAuB,EAAE,uBAAuB,EAChD,MAAM,EAAE,SAAS;IAGpC,IAAI,IAAI,IAAI;IAIZ,MAAM,IAAI,IAAI;IAsBP,IAAI,IAAI,IAAI;IAKZ,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAInC,qBAAqB,CAAC,aAAa,EAAE,uBAAuB,GAAG,IAAI;IAoC1E,OAAO,CAAC,0BAA0B;yCAxFvB,wBAAwB;2CAAxB,wBAAwB;CAiHpC"}
|
|
@@ -2,7 +2,7 @@ import { TranslateService } from '@ngx-translate/core';
|
|
|
2
2
|
import { ActionItem, ColumnConfig } from '@valtimo/components';
|
|
3
3
|
import { PluginConfiguration, PluginManagementService, PluginTranslationService } from '@valtimo/plugin';
|
|
4
4
|
import { NGXLogger } from 'ngx-logger';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
6
6
|
import { PluginManagementStateService } from '../../services';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class PluginManagementComponent {
|
|
@@ -16,21 +16,15 @@ export declare class PluginManagementComponent {
|
|
|
16
16
|
readonly loading$: BehaviorSubject<boolean>;
|
|
17
17
|
readonly showEditModal$: BehaviorSubject<boolean>;
|
|
18
18
|
readonly showAddModal$: BehaviorSubject<boolean>;
|
|
19
|
-
readonly pluginConfigurations$:
|
|
20
|
-
|
|
21
|
-
definitionKey: string;
|
|
22
|
-
pluginDefinition?: import("@valtimo/plugin").PluginDefinition;
|
|
23
|
-
id?: string;
|
|
24
|
-
newId?: string;
|
|
25
|
-
title: string;
|
|
26
|
-
properties: object;
|
|
27
|
-
}[]>;
|
|
19
|
+
readonly pluginConfigurations$: Observable<PluginConfiguration[]>;
|
|
20
|
+
readonly saveNewConfiguration$: BehaviorSubject<boolean>;
|
|
28
21
|
constructor(logger: NGXLogger, pluginManagementService: PluginManagementService, pluginTranslationService: PluginTranslationService, stateService: PluginManagementStateService, translateService: TranslateService);
|
|
29
22
|
showAddModal(): void;
|
|
30
23
|
editConfiguration(configuration: PluginConfiguration): void;
|
|
31
24
|
deleteConfiguration(configuration: PluginConfiguration): void;
|
|
32
25
|
closeEditModal(): void;
|
|
33
26
|
closeAddModal(): void;
|
|
27
|
+
duplicateConfiguration(configuration: PluginConfiguration): void;
|
|
34
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<PluginManagementComponent, never>;
|
|
35
29
|
static ɵcmp: i0.ɵɵComponentDeclaration<PluginManagementComponent, "valtimo-plugin-management", never, {}, {}, never, never, false, never>;
|
|
36
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-management.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAE,YAAY,EAAW,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"plugin-management.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,UAAU,EAAE,YAAY,EAAW,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAC,eAAe,EAAiB,UAAU,EAAC,MAAM,MAAM,CAAC;AAEhE,OAAO,EAAC,4BAA4B,EAAC,MAAM,gBAAgB,CAAC;;AAI5D,qBAKa,yBAAyB;IAgElC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAnEnC,SAAgB,MAAM,EAAE,YAAY,EAAE,CAgBpC;IACF,SAAgB,WAAW,EAAE,UAAU,EAAE,CAcvC;IAEF,SAAgB,QAAQ,2BAAsC;IAC9D,SAAgB,cAAc,2BAAuC;IACrE,SAAgB,aAAa,2BAAuC;IACpE,SAAgB,qBAAqB,EAAE,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAsBpE;IAEJ,SAAgB,qBAAqB,2BAAuC;gBAGzD,MAAM,EAAE,SAAS,EACjB,uBAAuB,EAAE,uBAAuB,EAChD,wBAAwB,EAAE,wBAAwB,EAClD,YAAY,EAAE,4BAA4B,EAC1C,gBAAgB,EAAE,gBAAgB;IAG9C,YAAY,IAAI,IAAI;IAIpB,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAM3D,mBAAmB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAkB7D,cAAc,IAAI,IAAI;IAItB,aAAa,IAAI,IAAI;IAIrB,sBAAsB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;yCA3G5D,yBAAyB;2CAAzB,yBAAyB;CAkHrC"}
|