@valtimo/connector-management 4.23.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/esm2020/lib/components/add-connector-configure/add-connector-configure.component.mjs +67 -0
  2. package/esm2020/lib/components/add-connector-select/add-connector-select.component.mjs +67 -0
  3. package/esm2020/lib/components/connector-link-extension/connector-link-extension.component.mjs +98 -0
  4. package/esm2020/lib/components/connector-link-extension-modal/connector-link-extension-modal.component.mjs +129 -0
  5. package/esm2020/lib/components/connector-management/connector-management.component.mjs +103 -0
  6. package/esm2020/lib/components/connector-modal/connector-modal.component.mjs +98 -0
  7. package/esm2020/lib/components/edit-connector-form/edit-connector-form.component.mjs +56 -0
  8. package/esm2020/lib/components/edit-connector-properties/edit-connector-properties.component.mjs +185 -0
  9. package/esm2020/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.component.mjs +169 -0
  10. package/esm2020/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.form.mjs +299 -0
  11. package/esm2020/lib/components/edit-taak-connector/edit-taak-connector.component.mjs +139 -0
  12. package/esm2020/lib/components/edit-taak-connector/edit-taak-connector.form.mjs +61 -0
  13. package/esm2020/lib/components/modify-connector/modify-connector.component.mjs +79 -0
  14. package/esm2020/lib/components/multi-value-connector-property/multi-value-connector-property.component.mjs +102 -0
  15. package/esm2020/lib/connector-management-routing.mjs +45 -0
  16. package/esm2020/lib/connector-management.module.mjs +153 -0
  17. package/esm2020/lib/extension/connector-management.extension.init.mjs +37 -0
  18. package/esm2020/lib/models/index.mjs +19 -0
  19. package/esm2020/lib/models/object-sync.mjs +2 -0
  20. package/esm2020/lib/services/connector-management/connector-management.service.mjs +56 -0
  21. package/esm2020/lib/services/connector-management-state/connector-management-state.service.mjs +152 -0
  22. package/esm2020/lib/services/object-api-sync/object-api-sync.service.mjs +47 -0
  23. package/esm2020/public-api.mjs +36 -0
  24. package/esm2020/valtimo-connector-management.mjs +5 -0
  25. package/fesm2015/valtimo-connector-management.mjs +2044 -0
  26. package/fesm2015/valtimo-connector-management.mjs.map +1 -0
  27. package/fesm2020/valtimo-connector-management.mjs +2041 -0
  28. package/fesm2020/valtimo-connector-management.mjs.map +1 -0
  29. package/lib/components/{add-connector/add-connector.component.d.ts → add-connector-configure/add-connector-configure.component.d.ts} +9 -9
  30. package/lib/components/add-connector-configure/add-connector-configure.component.d.ts.map +1 -0
  31. package/lib/components/add-connector-select/add-connector-select.component.d.ts +26 -0
  32. package/lib/components/add-connector-select/add-connector-select.component.d.ts.map +1 -0
  33. package/lib/components/connector-link-extension/connector-link-extension.component.d.ts +4 -0
  34. package/lib/components/connector-link-extension/connector-link-extension.component.d.ts.map +1 -0
  35. package/lib/components/connector-link-extension-modal/connector-link-extension-modal.component.d.ts +5 -2
  36. package/lib/components/connector-link-extension-modal/connector-link-extension-modal.component.d.ts.map +1 -0
  37. package/lib/components/connector-management/connector-management.component.d.ts +7 -2
  38. package/lib/components/connector-management/connector-management.component.d.ts.map +1 -0
  39. package/lib/components/connector-modal/connector-modal.component.d.ts +23 -7
  40. package/lib/components/connector-modal/connector-modal.component.d.ts.map +1 -0
  41. package/lib/components/edit-connector-form/edit-connector-form.component.d.ts +5 -0
  42. package/lib/components/edit-connector-form/edit-connector-form.component.d.ts.map +1 -0
  43. package/lib/components/edit-connector-properties/edit-connector-properties.component.d.ts +14 -2
  44. package/lib/components/edit-connector-properties/edit-connector-properties.component.d.ts.map +1 -0
  45. package/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.component.d.ts +9 -1
  46. package/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.component.d.ts.map +1 -0
  47. package/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.form.d.ts +1 -0
  48. package/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.form.d.ts.map +1 -0
  49. package/lib/components/edit-taak-connector/edit-taak-connector.component.d.ts +9 -1
  50. package/lib/components/edit-taak-connector/edit-taak-connector.component.d.ts.map +1 -0
  51. package/lib/components/edit-taak-connector/edit-taak-connector.form.d.ts +1 -0
  52. package/lib/components/edit-taak-connector/edit-taak-connector.form.d.ts.map +1 -0
  53. package/lib/components/modify-connector/modify-connector.component.d.ts +6 -0
  54. package/lib/components/modify-connector/modify-connector.component.d.ts.map +1 -0
  55. package/lib/components/multi-value-connector-property/multi-value-connector-property.component.d.ts +4 -0
  56. package/lib/components/multi-value-connector-property/multi-value-connector-property.component.d.ts.map +1 -0
  57. package/lib/connector-management-routing.d.ts +7 -0
  58. package/lib/connector-management-routing.d.ts.map +1 -0
  59. package/lib/connector-management.module.d.ts +23 -0
  60. package/lib/connector-management.module.d.ts.map +1 -0
  61. package/lib/extension/connector-management.extension.init.d.ts +1 -0
  62. package/lib/extension/connector-management.extension.init.d.ts.map +1 -0
  63. package/lib/models/index.d.ts +1 -0
  64. package/lib/models/index.d.ts.map +1 -0
  65. package/lib/models/object-sync.d.ts +1 -0
  66. package/lib/models/object-sync.d.ts.map +1 -0
  67. package/lib/services/connector-management/connector-management.service.d.ts +4 -0
  68. package/lib/services/connector-management/connector-management.service.d.ts.map +1 -0
  69. package/lib/services/connector-management-state/connector-management-state.service.d.ts +32 -2
  70. package/lib/services/connector-management-state/connector-management-state.service.d.ts.map +1 -0
  71. package/lib/services/object-api-sync/object-api-sync.service.d.ts +4 -0
  72. package/lib/services/object-api-sync/object-api-sync.service.d.ts.map +1 -0
  73. package/package.json +23 -10
  74. package/public-api.d.ts +5 -1
  75. package/public-api.d.ts.map +1 -0
  76. package/valtimo-connector-management.d.ts +2 -4
  77. package/valtimo-connector-management.d.ts.map +1 -0
  78. package/bundles/valtimo-connector-management.umd.js +0 -2118
  79. package/bundles/valtimo-connector-management.umd.js.map +0 -1
  80. package/bundles/valtimo-connector-management.umd.min.js +0 -16
  81. package/bundles/valtimo-connector-management.umd.min.js.map +0 -1
  82. package/esm2015/lib/components/add-connector/add-connector.component.js +0 -83
  83. package/esm2015/lib/components/connector-link-extension/connector-link-extension.component.js +0 -104
  84. package/esm2015/lib/components/connector-link-extension-modal/connector-link-extension-modal.component.js +0 -138
  85. package/esm2015/lib/components/connector-management/connector-management.component.js +0 -103
  86. package/esm2015/lib/components/connector-modal/connector-modal.component.js +0 -58
  87. package/esm2015/lib/components/edit-connector-form/edit-connector-form.component.js +0 -44
  88. package/esm2015/lib/components/edit-connector-properties/edit-connector-properties.component.js +0 -144
  89. package/esm2015/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.component.js +0 -160
  90. package/esm2015/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.form.js +0 -301
  91. package/esm2015/lib/components/edit-taak-connector/edit-taak-connector.component.js +0 -129
  92. package/esm2015/lib/components/edit-taak-connector/edit-taak-connector.form.js +0 -63
  93. package/esm2015/lib/components/modify-connector/modify-connector.component.js +0 -75
  94. package/esm2015/lib/components/multi-value-connector-property/multi-value-connector-property.component.js +0 -96
  95. package/esm2015/lib/connector-management-routing.js +0 -41
  96. package/esm2015/lib/connector-management.module.js +0 -77
  97. package/esm2015/lib/extension/connector-management.extension.init.js +0 -39
  98. package/esm2015/lib/models/index.js +0 -19
  99. package/esm2015/lib/models/object-sync.js +0 -1
  100. package/esm2015/lib/services/connector-management/connector-management.service.js +0 -60
  101. package/esm2015/lib/services/connector-management-state/connector-management-state.service.js +0 -83
  102. package/esm2015/lib/services/object-api-sync/object-api-sync.service.js +0 -51
  103. package/esm2015/public-api.js +0 -33
  104. package/esm2015/valtimo-connector-management.js +0 -9
  105. package/fesm2015/valtimo-connector-management.js +0 -1791
  106. package/fesm2015/valtimo-connector-management.js.map +0 -1
  107. package/valtimo-connector-management.metadata.json +0 -1
@@ -0,0 +1,103 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component } from '@angular/core';
17
+ import { BehaviorSubject, combineLatest } from 'rxjs';
18
+ import { map, switchMap, take, tap } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "../../services/connector-management/connector-management.service";
21
+ import * as i2 from "@ngx-translate/core";
22
+ import * as i3 from "../../services/connector-management-state/connector-management-state.service";
23
+ import * as i4 from "@valtimo/user-interface";
24
+ import * as i5 from "../connector-modal/connector-modal.component";
25
+ import * as i6 from "@angular/common";
26
+ export class ConnectorManagementComponent {
27
+ constructor(connectorManagementService, translateService, stateService) {
28
+ this.connectorManagementService = connectorManagementService;
29
+ this.translateService = translateService;
30
+ this.stateService = stateService;
31
+ this.loading$ = new BehaviorSubject(true);
32
+ this.fields$ = new BehaviorSubject([]);
33
+ this.columns$ = this.fields$.pipe(map(fields => fields.map(field => ({
34
+ dataKey: field.key,
35
+ labelTranslationKey: field.label,
36
+ }))));
37
+ this.currentPageAndSize$ = new BehaviorSubject({
38
+ page: 0,
39
+ size: 10,
40
+ });
41
+ this.pageSizes$ = new BehaviorSubject({
42
+ collectionSize: 0,
43
+ maxPaginationItemSize: 5,
44
+ });
45
+ this.pagination$ = combineLatest([
46
+ this.currentPageAndSize$,
47
+ this.pageSizes$,
48
+ ]).pipe(map(([currentPage, sizes]) => ({ ...currentPage, ...sizes, page: currentPage.page + 1 })));
49
+ this.connectorInstances$ = combineLatest([
50
+ this.currentPageAndSize$,
51
+ this.translateService.stream('key'),
52
+ this.stateService.refresh$,
53
+ ]).pipe(tap(() => this.setFields()), switchMap(([currentPage]) => combineLatest([
54
+ this.connectorManagementService.getConnectorInstances({
55
+ page: currentPage.page,
56
+ size: currentPage.size,
57
+ }),
58
+ this.connectorManagementService.getConnectorTypes(),
59
+ ])), tap(([instanceRes]) => {
60
+ this.pageSizes$.pipe(take(1)).subscribe(sizes => {
61
+ this.pageSizes$.next({ ...sizes, collectionSize: instanceRes.totalElements });
62
+ });
63
+ }), map(([instanceRes, typesRes]) => instanceRes.content.map(instance => ({
64
+ ...instance,
65
+ typeName: typesRes.find(type => type.id === instance.type.id)?.name,
66
+ }))), tap(() => this.loading$.next(false)));
67
+ }
68
+ ngOnDestroy() {
69
+ this.stateService.hideModal();
70
+ }
71
+ paginationClicked(newPageNumber) {
72
+ this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
73
+ this.currentPageAndSize$.next({ ...currentPage, page: newPageNumber - 1 });
74
+ });
75
+ }
76
+ paginationSet(newPageSize) {
77
+ if (newPageSize) {
78
+ this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
79
+ this.currentPageAndSize$.next({ ...currentPage, size: newPageSize });
80
+ });
81
+ }
82
+ }
83
+ rowClicked(instance) {
84
+ this.stateService.setModalType('modify');
85
+ this.stateService.setConnectorInstance(instance);
86
+ this.stateService.showModal();
87
+ }
88
+ showAddModal() {
89
+ this.stateService.setModalType('add');
90
+ this.stateService.showModal();
91
+ }
92
+ setFields() {
93
+ const keys = ['name', 'typeName'];
94
+ this.fields$.next(keys.map(key => ({ label: `connectorManagement.labels.${key}`, key })));
95
+ }
96
+ }
97
+ ConnectorManagementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ConnectorManagementComponent, deps: [{ token: i1.ConnectorManagementService }, { token: i2.TranslateService }, { token: i3.ConnectorManagementStateService }], target: i0.ɵɵFactoryTarget.Component });
98
+ ConnectorManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ConnectorManagementComponent, selector: "valtimo-connector-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n connectorInstances: connectorInstances$ | async,\n fields: fields$ | async,\n columns: columns$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.connectors.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.connectors.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n <v-page-header-actions>\n <v-button\n (clickEvent)=\"showAddModal()\"\n type=\"primary\"\n mdiIcon=\"plus\"\n [disabled]=\"obs.loading\"\n >\n {{ 'connectorManagement.add' | translate }}\n </v-button>\n </v-page-header-actions>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.connectorInstances\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxPaginationItemSize]=\"obs.pagination.maxPaginationItemSize\"\n [page]=\"obs.pagination.page\"\n [size]=\"obs.pagination.size\"\n [itemsTranslationKey]=\"'connectorManagement.tableItemsText'\"\n (editButtonClicked)=\"rowClicked($event)\"\n (paginationSizeSet)=\"paginationSet($event)\"\n (paginationPageSet)=\"paginationClicked($event)\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-connector-modal></valtimo-connector-modal>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i4.PageContainerComponent, selector: "v-page-container" }, { type: i4.PageHeaderComponent, selector: "v-page-header" }, { type: i4.PageHeaderIntroductionComponent, selector: "v-page-header-introduction" }, { type: i4.TitleComponent, selector: "v-title", inputs: ["type", "margin"] }, { type: i4.ParagraphComponent, selector: "v-paragraph" }, { type: i4.PageHeaderActionsComponent, selector: "v-page-header-actions" }, { type: i4.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled"], outputs: ["clickEvent"] }, { type: i4.PageContentComponent, selector: "v-page-content" }, { type: i4.TableComponent, selector: "v-table", inputs: ["items", "columns", "loading", "showEditButtons", "showPagination", "editButtonTranslationKey", "itemsTranslationKey", "mobileBreakpointPx", "amountOfLoadingRows", "collectionSize", "maxPaginationItemSize", "page", "size"], outputs: ["editButtonClicked", "paginationSizeSet", "paginationPageSet"] }, { type: i5.ConnectorModalComponent, selector: "valtimo-connector-modal" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i6.AsyncPipe, "translate": i2.TranslatePipe } });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ConnectorManagementComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'valtimo-connector-management', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-page-container\n *ngIf=\"{\n connectorInstances: connectorInstances$ | async,\n fields: fields$ | async,\n columns: columns$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <v-page-header>\n <v-page-header-introduction>\n <v-title>{{ 'pages.connectors.title' | translate }}</v-title>\n <v-paragraph>{{ 'pages.connectors.description' | translate }}</v-paragraph>\n </v-page-header-introduction>\n <v-page-header-actions>\n <v-button\n (clickEvent)=\"showAddModal()\"\n type=\"primary\"\n mdiIcon=\"plus\"\n [disabled]=\"obs.loading\"\n >\n {{ 'connectorManagement.add' | translate }}\n </v-button>\n </v-page-header-actions>\n </v-page-header>\n <v-page-content>\n <v-table\n [loading]=\"obs.loading\"\n [items]=\"obs.connectorInstances\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxPaginationItemSize]=\"obs.pagination.maxPaginationItemSize\"\n [page]=\"obs.pagination.page\"\n [size]=\"obs.pagination.size\"\n [itemsTranslationKey]=\"'connectorManagement.tableItemsText'\"\n (editButtonClicked)=\"rowClicked($event)\"\n (paginationSizeSet)=\"paginationSet($event)\"\n (paginationPageSet)=\"paginationClicked($event)\"\n ></v-table>\n </v-page-content>\n</v-page-container>\n\n<valtimo-connector-modal></valtimo-connector-modal>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
102
+ }], ctorParameters: function () { return [{ type: i1.ConnectorManagementService }, { type: i2.TranslateService }, { type: i3.ConnectorManagementStateService }]; } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb25uZWN0b3ItbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvY29ubmVjdG9yLW1hbmFnZW1lbnQvY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb25uZWN0b3ItbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvY29ubmVjdG9yLW1hbmFnZW1lbnQvY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFZekQsTUFBTSxPQUFPLDRCQUE0QjtJQStEdkMsWUFDbUIsMEJBQXNELEVBQ3RELGdCQUFrQyxFQUNsQyxZQUE2QztRQUY3QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWlDO1FBakV2RCxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFOUMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFzQyxFQUFFLENBQUMsQ0FBQztRQUV2RSxhQUFRLEdBQW1DLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNuRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUs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LENBQUMsQ0FBQztJQUMxRixDQUFDOzt5SEFyR1UsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsb0VDL0J6Qyx1cEVBNkRBOzJGRDlCYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Nvbm5lY3Rvckluc3RhbmNlLCBDb25uZWN0b3JNb2RhbH0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q29ubmVjdG9yTWFuYWdlbWVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nvbm5lY3Rvci1tYW5hZ2VtZW50L2Nvbm5lY3Rvci1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtDb25uZWN0b3JNYW5hZ2VtZW50U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25uZWN0b3ItbWFuYWdlbWVudC1zdGF0ZS9jb25uZWN0b3ItbWFuYWdlbWVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7UGFnaW5hdGlvbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICdAdmFsdGltby91c2VyLWludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tY29ubmVjdG9yLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25uZWN0b3ItbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0b3JNYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHJlYWRvbmx5IGZpZWxkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PHtrZXk6IHN0cmluZzsgbGFiZWw6IHN0cmluZ30+PihbXSk7XG5cbiAgcmVhZG9ubHkgY29sdW1ucyQ6IE9ic2VydmFibGU8QXJyYXk8VGFibGVDb2x1bW4+PiA9IHRoaXMuZmllbGRzJC5waXBlKFxuICAgIG1hcChmaWVsZHMgPT5cbiAgICAgIGZpZWxkcy5tYXAoZmllbGQgPT4gKHtcbiAgICAgICAgZGF0YUtleTogZmllbGQua2V5LFxuICAgICAgICBsYWJlbFRyYW5zbGF0aW9uS2V5OiBmaWVsZC5sYWJlbCxcbiAgICAgIH0pKVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZUFuZFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgcGFnZTogMCxcbiAgICBzaXplOiAxMCxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZVNpemVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIGNvbGxlY3Rpb25TaXplOiAwLFxuICAgIG1heFBhZ2luYXRpb25JdGVtU2l6ZTogNSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5wYWdlU2l6ZXMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY3VycmVudFBhZ2UsIHNpemVzXSkgPT5cbiAgICAgICAgKHsuLi5jdXJyZW50UGFnZSwgLi4uc2l6ZXMsIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UgKyAxfSBhcyBQYWdpbmF0aW9uKVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSBjb25uZWN0b3JJbnN0YW5jZXMkOiBPYnNlcnZhYmxlPEFycmF5PENvbm5lY3Rvckluc3RhbmNlPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVmcmVzaCQsXG4gIF0pLnBpcGUoXG4gICAgdGFwKCgpID0+IHRoaXMuc2V0RmllbGRzKCkpLFxuICAgIHN3aXRjaE1hcCgoW2N1cnJlbnRQYWdlXSkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmNvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlLmdldENvbm5lY3Rvckluc3RhbmNlcyh7XG4gICAgICAgICAgcGFnZTogY3VycmVudFBhZ2UucGFnZSxcbiAgICAgICAgICBzaXplOiBjdXJyZW50UGFnZS5zaXplLFxuICAgICAgICB9KSxcbiAgICAgICAgdGhpcy5jb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZS5nZXRDb25uZWN0b3JUeXBlcygpLFxuICAgICAgXSlcbiAgICApLFxuICAgIHRhcCgoW2luc3RhbmNlUmVzXSkgPT4ge1xuICAgICAgdGhpcy5wYWdlU2l6ZXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNpemVzID0+IHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZXMkLm5leHQoey4uLnNpemVzLCBjb2xsZWN0aW9uU2l6ZTogaW5zdGFuY2VSZXMudG90YWxFbGVtZW50c30pO1xuICAgICAgfSk7XG4gICAgfSksXG4gICAgbWFwKChbaW5zdGFuY2VSZXMsIHR5cGVzUmVzXSkgPT5cbiAgICAgIGluc3RhbmNlUmVzLmNvbnRlbnQubWFwKGluc3RhbmNlID0+ICh7XG4gICAgICAgIC4uLmluc3RhbmNlLFxuICAgICAgICB0eXBlTmFtZTogdHlwZXNSZXMuZmluZCh0eXBlID0+IHR5cGUuaWQgPT09IGluc3RhbmNlLnR5cGUuaWQpPy5uYW1lLFxuICAgICAgfSkpXG4gICAgKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlOiBDb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENvbm5lY3Rvck1hbmFnZW1lbnRTdGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmhpZGVNb2RhbCgpO1xuICB9XG5cbiAgcGFnaW5hdGlvbkNsaWNrZWQobmV3UGFnZU51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHBhZ2U6IG5ld1BhZ2VOdW1iZXIgLSAxfSk7XG4gICAgfSk7XG4gIH1cblxuICBwYWdpbmF0aW9uU2V0KG5ld1BhZ2VTaXplKTogdm9pZCB7XG4gICAgaWYgKG5ld1BhZ2VTaXplKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoY3VycmVudFBhZ2UgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHNpemU6IG5ld1BhZ2VTaXplfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByb3dDbGlja2VkKGluc3RhbmNlOiBDb25uZWN0b3JJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldE1vZGFsVHlwZSgnbW9kaWZ5Jyk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q29ubmVjdG9ySW5zdGFuY2UoaW5zdGFuY2UpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNob3dNb2RhbCgpO1xuICB9XG5cbiAgc2hvd0FkZE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldE1vZGFsVHlwZSgnYWRkJyk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd01vZGFsKCk7XG4gIH1cblxuICBwcml2YXRlIHNldEZpZWxkcygpOiB2b2lkIHtcbiAgICBjb25zdCBrZXlzOiBBcnJheTxzdHJpbmc+ID0gWyduYW1lJywgJ3R5cGVOYW1lJ107XG4gICAgdGhpcy5maWVsZHMkLm5leHQoa2V5cy5tYXAoa2V5ID0+ICh7bGFiZWw6IGBjb25uZWN0b3JNYW5hZ2VtZW50LmxhYmVscy4ke2tleX1gLCBrZXl9KSkpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2LXBhZ2UtY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIGNvbm5lY3Rvckluc3RhbmNlczogY29ubmVjdG9ySW5zdGFuY2VzJCB8IGFzeW5jLFxuICAgIGZpZWxkczogZmllbGRzJCB8IGFzeW5jLFxuICAgIGNvbHVtbnM6IGNvbHVtbnMkIHwgYXN5bmMsXG4gICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbiQgfCBhc3luYyxcbiAgICBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHYtcGFnZS1oZWFkZXI+XG4gICAgPHYtcGFnZS1oZWFkZXItaW50cm9kdWN0aW9uPlxuICAgICAgPHYtdGl0bGU+e3sgJ3BhZ2VzLmNvbm5lY3RvcnMudGl0bGUnIHwgdHJhbnNsYXRlIH19PC92LXRpdGxlPlxuICAgICAgPHYtcGFyYWdyYXBoPnt7ICdwYWdlcy5jb25uZWN0b3JzLmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvdi1wYXJhZ3JhcGg+XG4gICAgPC92LXBhZ2UtaGVhZGVyLWludHJvZHVjdGlvbj5cbiAgICA8di1wYWdlLWhlYWRlci1hY3Rpb25zPlxuICAgICAgPHYtYnV0dG9uXG4gICAgICAgIChjbGlja0V2ZW50KT1cInNob3dBZGRNb2RhbCgpXCJcbiAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICBtZGlJY29uPVwicGx1c1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMubG9hZGluZ1wiXG4gICAgICA+XG4gICAgICAgIHt7ICdjb25uZWN0b3JNYW5hZ2VtZW50LmFkZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvdi1idXR0b24+XG4gICAgPC92LXBhZ2UtaGVhZGVyLWFjdGlvbnM+XG4gIDwvdi1wYWdlLWhlYWRlcj5cbiAgPHYtcGFnZS1jb250ZW50PlxuICAgIDx2LXRhYmxlXG4gICAgICBbbG9hZGluZ109XCJvYnMubG9hZGluZ1wiXG4gICAgICBbaXRlbXNdPVwib2JzLmNvbm5lY3Rvckluc3RhbmNlc1wiXG4gICAgICBbY29sdW1uc109XCJvYnMuY29sdW1uc1wiXG4gICAgICBbc2hvd0VkaXRCdXR0b25zXT1cInRydWVcIlxuICAgICAgW2Ftb3VudE9mTG9hZGluZ1Jvd3NdPVwiMlwiXG4gICAgICBbY29sbGVjdGlvblNpemVdPVwib2JzLnBhZ2luYXRpb24uY29sbGVjdGlvblNpemVcIlxuICAgICAgW21heFBhZ2luYXRpb25JdGVtU2l6ZV09XCJvYnMucGFnaW5hdGlvbi5tYXhQYWdpbmF0aW9uSXRlbVNpemVcIlxuICAgICAgW3BhZ2VdPVwib2JzLnBhZ2luYXRpb24ucGFnZVwiXG4gICAgICBbc2l6ZV09XCJvYnMucGFnaW5hdGlvbi5zaXplXCJcbiAgICAgIFtpdGVtc1RyYW5zbGF0aW9uS2V5XT1cIidjb25uZWN0b3JNYW5hZ2VtZW50LnRhYmxlSXRlbXNUZXh0J1wiXG4gICAgICAoZWRpdEJ1dHRvbkNsaWNrZWQpPVwicm93Q2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgIChwYWdpbmF0aW9uU2l6ZVNldCk9XCJwYWdpbmF0aW9uU2V0KCRldmVudClcIlxuICAgICAgKHBhZ2luYXRpb25QYWdlU2V0KT1cInBhZ2luYXRpb25DbGlja2VkKCRldmVudClcIlxuICAgID48L3YtdGFibGU+XG4gIDwvdi1wYWdlLWNvbnRlbnQ+XG48L3YtcGFnZS1jb250YWluZXI+XG5cbjx2YWx0aW1vLWNvbm5lY3Rvci1tb2RhbD48L3ZhbHRpbW8tY29ubmVjdG9yLW1vZGFsPlxuIl19
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, ViewChild } from '@angular/core';
17
+ import { Subject } from 'rxjs';
18
+ import { take } from 'rxjs/operators';
19
+ import * as i0 from "@angular/core";
20
+ import * as i1 from "../../services/connector-management-state/connector-management-state.service";
21
+ import * as i2 from "@valtimo/user-interface";
22
+ import * as i3 from "../modify-connector/modify-connector.component";
23
+ import * as i4 from "../add-connector-select/add-connector-select.component";
24
+ import * as i5 from "../add-connector-configure/add-connector-configure.component";
25
+ import * as i6 from "@angular/common";
26
+ import * as i7 from "@ngx-translate/core";
27
+ export class ConnectorModalComponent {
28
+ constructor(stateService, modalService) {
29
+ this.stateService = stateService;
30
+ this.modalService = modalService;
31
+ this.connectorTypeSelected$ = this.stateService.selectedConnector$;
32
+ this.saveButtonDisabled$ = this.stateService.saveButtonDisabled$;
33
+ this.inputDisabled$ = this.stateService.inputDisabled$;
34
+ this.hideModalSaveButton$ = this.stateService.hideModalSaveButton$;
35
+ this.returnToFirstStepSubject$ = new Subject();
36
+ }
37
+ ngAfterViewInit() {
38
+ this.openShowSubscription();
39
+ this.openHideSubscription();
40
+ }
41
+ ngOnDestroy() {
42
+ this.showSubscription?.unsubscribe();
43
+ this.hideSubscription?.unsubscribe();
44
+ }
45
+ hide() {
46
+ this.stateService.disableInput();
47
+ this.modalService.closeModal();
48
+ this.modalService.appearingDelayMs$.pipe(take(1)).subscribe(appearingDelay => {
49
+ setTimeout(() => {
50
+ this.returnToFirstStep();
51
+ this.stateService.enableInput();
52
+ this.stateService.clearSelectedConnector();
53
+ }, appearingDelay);
54
+ });
55
+ }
56
+ complete() {
57
+ this.stateService.save();
58
+ }
59
+ delete() {
60
+ this.stateService.delete();
61
+ }
62
+ openShowSubscription() {
63
+ this.showSubscription = this.stateService.showModal$.subscribe(() => {
64
+ this.show();
65
+ });
66
+ }
67
+ openHideSubscription() {
68
+ this.hideSubscription = this.stateService.hideModal$.subscribe(() => {
69
+ this.hide();
70
+ });
71
+ }
72
+ returnToFirstStep() {
73
+ this.returnToFirstStepSubject$.next(true);
74
+ }
75
+ show() {
76
+ this.stateService.modalType$.pipe(take(1)).subscribe(modalType => {
77
+ if (modalType === 'add') {
78
+ this.modalService.openModal(this.connectorCreateModal);
79
+ }
80
+ else if (modalType === 'modify') {
81
+ this.modalService.openModal(this.connectorEditModal);
82
+ }
83
+ });
84
+ }
85
+ }
86
+ ConnectorModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ConnectorModalComponent, deps: [{ token: i1.ConnectorManagementStateService }, { token: i2.ModalService }], target: i0.ɵɵFactoryTarget.Component });
87
+ ConnectorModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ConnectorModalComponent, selector: "valtimo-connector-modal", viewQueries: [{ propertyName: "connectorCreateModal", first: true, predicate: ["connectorCreateModal"], descendants: true }, { propertyName: "connectorEditModal", first: true, predicate: ["connectorEditModal"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal #connectorEditModal>\n <div role=\"header\">\n <div class=\"edit-connector-title\">\n <v-title [margin]=\"false\">{{ 'connectorManagement.modify' | translate }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <valtimo-modify-connector\n [showSaveButton]=\"false\"\n [showDeleteButton]=\"false\"\n ></valtimo-modify-connector>\n </div>\n <div role=\"footer\">\n <div class=\"edit-connector-buttons\">\n <v-button\n [disabled]=\"inputDisabled$ | async\"\n (clickEvent)=\"delete()\"\n [mdiIcon]=\"'delete'\"\n type=\"danger\"\n >{{ 'connectorManagement.remove' | translate }}</v-button\n >\n <v-button\n *ngIf=\"(hideModalSaveButton$ | async) === false\"\n [disabled]=\"(saveButtonDisabled$ | async) || (inputDisabled$ | async)\"\n (clickEvent)=\"complete()\"\n [mdiIcon]=\"'check'\"\n type=\"success\"\n >{{ 'connectorManagement.save' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #connectorCreateModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"addConnectorSteps.step0\">\n <valtimo-add-connector-select></valtimo-add-connector-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"addConnectorSteps.step1\">\n <valtimo-add-connector-configure\n [showSaveButton]=\"false\"\n ></valtimo-add-connector-configure>\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"addConnectorSteps.step1\"\n [nextButtonEnabled]=\"connectorTypeSelected$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n completeButtonTranslationKey=\"addConnectorSteps.complete\"\n [completeButtonEnabled]=\"(saveButtonDisabled$ | async) === false\"\n [showCompleteButton]=\"(hideModalSaveButton$ | async) === false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.edit-connector-buttons,.edit-connector-title{width:100%;display:flex;flex-direction:row;justify-content:space-between}.edit-connector-title{justify-content:center}\n"], components: [{ type: i2.ModalComponent, selector: "v-modal", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { type: i2.TitleComponent, selector: "v-title", inputs: ["type", "margin"] }, { type: i3.ModifyConnectorComponent, selector: "valtimo-modify-connector", inputs: ["showSaveButton", "showDeleteButton"] }, { type: i2.ButtonComponent, selector: "v-button", inputs: ["type", "mdiIcon", "disabled"], outputs: ["clickEvent"] }, { type: i2.StepperContainerComponent, selector: "v-stepper-container", inputs: ["returnToFirstStepSubject$", "disabled"], outputs: ["cancelClickEvent", "completeEvent", "nextStepEvent"] }, { type: i2.StepperHeaderComponent, selector: "v-stepper-header" }, { type: i2.StepperContentComponent, selector: "v-stepper-content" }, { type: i2.StepperStepComponent, selector: "v-stepper-step", inputs: ["titleTranslationKey"] }, { type: i4.AddConnectorSelectComponent, selector: "valtimo-add-connector-select" }, { type: i5.AddConnectorConfigureComponent, selector: "valtimo-add-connector-configure", inputs: ["showSaveButton"] }, { type: i2.StepperFooterComponent, selector: "v-stepper-footer" }, { type: i2.StepperFooterStepComponent, selector: "v-stepper-footer-step", inputs: ["nextButtonEnabled", "completeButtonEnabled", "nextButtonTranslationKey", "cancelButtonTranslationKey", "completeButtonTranslationKey", "completeButtonMdiIcon", "showCompleteButton"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i7.TranslatePipe, "async": i6.AsyncPipe } });
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ConnectorModalComponent, decorators: [{
89
+ type: Component,
90
+ args: [{ selector: 'valtimo-connector-modal', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal #connectorEditModal>\n <div role=\"header\">\n <div class=\"edit-connector-title\">\n <v-title [margin]=\"false\">{{ 'connectorManagement.modify' | translate }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <valtimo-modify-connector\n [showSaveButton]=\"false\"\n [showDeleteButton]=\"false\"\n ></valtimo-modify-connector>\n </div>\n <div role=\"footer\">\n <div class=\"edit-connector-buttons\">\n <v-button\n [disabled]=\"inputDisabled$ | async\"\n (clickEvent)=\"delete()\"\n [mdiIcon]=\"'delete'\"\n type=\"danger\"\n >{{ 'connectorManagement.remove' | translate }}</v-button\n >\n <v-button\n *ngIf=\"(hideModalSaveButton$ | async) === false\"\n [disabled]=\"(saveButtonDisabled$ | async) || (inputDisabled$ | async)\"\n (clickEvent)=\"complete()\"\n [mdiIcon]=\"'check'\"\n type=\"success\"\n >{{ 'connectorManagement.save' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<v-stepper-container\n (completeEvent)=\"complete()\"\n (cancelClickEvent)=\"hide()\"\n [disabled]=\"inputDisabled$ | async\"\n [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n <v-modal #connectorCreateModal (closeEvent)=\"hide()\">\n <div role=\"header\">\n <v-stepper-header></v-stepper-header>\n </div>\n <div role=\"content\">\n <v-stepper-content>\n <v-stepper-step titleTranslationKey=\"addConnectorSteps.step0\">\n <valtimo-add-connector-select></valtimo-add-connector-select>\n </v-stepper-step>\n <v-stepper-step titleTranslationKey=\"addConnectorSteps.step1\">\n <valtimo-add-connector-configure\n [showSaveButton]=\"false\"\n ></valtimo-add-connector-configure>\n </v-stepper-step>\n </v-stepper-content>\n </div>\n <div role=\"footer\">\n <v-stepper-footer>\n <v-stepper-footer-step\n nextButtonTranslationKey=\"addConnectorSteps.step1\"\n [nextButtonEnabled]=\"connectorTypeSelected$ | async\"\n ></v-stepper-footer-step>\n <v-stepper-footer-step\n completeButtonTranslationKey=\"addConnectorSteps.complete\"\n [completeButtonEnabled]=\"(saveButtonDisabled$ | async) === false\"\n [showCompleteButton]=\"(hideModalSaveButton$ | async) === false\"\n ></v-stepper-footer-step>\n </v-stepper-footer>\n </div>\n </v-modal>\n</v-stepper-container>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.edit-connector-buttons,.edit-connector-title{width:100%;display:flex;flex-direction:row;justify-content:space-between}.edit-connector-title{justify-content:center}\n"] }]
91
+ }], ctorParameters: function () { return [{ type: i1.ConnectorManagementStateService }, { type: i2.ModalService }]; }, propDecorators: { connectorCreateModal: [{
92
+ type: ViewChild,
93
+ args: ['connectorCreateModal']
94
+ }], connectorEditModal: [{
95
+ type: ViewChild,
96
+ args: ['connectorEditModal']
97
+ }] } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vY29ubmVjdG9yLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2Nvbm5lY3Rvci1tb2RhbC9jb25uZWN0b3ItbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb25uZWN0b3ItbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvY29ubmVjdG9yLW1vZGFsL2Nvbm5lY3Rvci1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBZ0IsU0FBUyxFQUFvQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHcEYsT0FBTyxFQUE4QixPQUFPLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFHeEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFPcEMsTUFBTSxPQUFPLHVCQUF1QjtJQWFsQyxZQUNtQixZQUE2QyxFQUM3QyxZQUEwQjtRQUQxQixpQkFBWSxHQUFaLFlBQVksQ0FBaUM7UUFDN0MsaUJBQVksR0FBWixZQUFZLENBQWM7UUFScEMsMkJBQXNCLEdBQThCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFDekYsd0JBQW1CLEdBQXdCLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUM7UUFDakYsbUJBQWMsR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7UUFDdkUseUJBQW9CLEdBQXdCLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUM7UUFDbkYsOEJBQXlCLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUt6RCxDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDM0UsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzdDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQy9ELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDeEQ7aUJBQU0sSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUN0RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBekVVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHdTQzdCcEMsNGxHQXNGQTsyRkR6RGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHlCQUF5QjtpSkFLQSxvQkFBb0I7c0JBQXRELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNBLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtNb2RhbENvbXBvbmVudCBhcyB2TW9kYWxDb21wb25lbnQsIE1vZGFsU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vdXNlci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Nvbm5lY3Rvck1vZGFsLCBDb25uZWN0b3JUeXBlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtDb25uZWN0b3JNYW5hZ2VtZW50U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25uZWN0b3ItbWFuYWdlbWVudC1zdGF0ZS9jb25uZWN0b3ItbWFuYWdlbWVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWNvbm5lY3Rvci1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25uZWN0b3ItbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25uZWN0b3ItbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29ubmVjdG9yTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjb25uZWN0b3JDcmVhdGVNb2RhbCcpIGNvbm5lY3RvckNyZWF0ZU1vZGFsOiB2TW9kYWxDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Nvbm5lY3RvckVkaXRNb2RhbCcpIGNvbm5lY3RvckVkaXRNb2RhbDogdk1vZGFsQ29tcG9uZW50O1xuXG4gIHNob3dTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIGhpZGVTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcmVhZG9ubHkgY29ubmVjdG9yVHlwZVNlbGVjdGVkJDogT2JzZXJ2YWJsZTxDb25uZWN0b3JUeXBlPiA9IHRoaXMuc3RhdGVTZXJ2aWNlLnNlbGVjdGVkQ29ubmVjdG9yJDtcbiAgcmVhZG9ubHkgc2F2ZUJ1dHRvbkRpc2FibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmVCdXR0b25EaXNhYmxlZCQ7XG4gIHJlYWRvbmx5IGlucHV0RGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zdGF0ZVNlcnZpY2UuaW5wdXREaXNhYmxlZCQ7XG4gIHJlYWRvbmx5IGhpZGVNb2RhbFNhdmVCdXR0b24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZU1vZGFsU2F2ZUJ1dHRvbiQ7XG4gIHJlYWRvbmx5IHJldHVyblRvRmlyc3RTdGVwU3ViamVjdCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBDb25uZWN0b3JNYW5hZ2VtZW50U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5TaG93U3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuSGlkZVN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaGlkZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGhpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuZGlzYWJsZUlucHV0KCk7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2VNb2RhbCgpO1xuXG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuYXBwZWFyaW5nRGVsYXlNcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoYXBwZWFyaW5nRGVsYXkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmV0dXJuVG9GaXJzdFN0ZXAoKTtcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuY2xlYXJTZWxlY3RlZENvbm5lY3RvcigpO1xuICAgICAgfSwgYXBwZWFyaW5nRGVsYXkpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2F2ZSgpO1xuICB9XG5cbiAgZGVsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmRlbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2hvd1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dTdWJzY3JpcHRpb24gPSB0aGlzLnN0YXRlU2VydmljZS5zaG93TW9kYWwkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkhpZGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlU3Vic2NyaXB0aW9uID0gdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZU1vZGFsJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJldHVyblRvRmlyc3RTdGVwKCk6IHZvaWQge1xuICAgIHRoaXMucmV0dXJuVG9GaXJzdFN0ZXBTdWJqZWN0JC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLm1vZGFsVHlwZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUobW9kYWxUeXBlID0+IHtcbiAgICAgIGlmIChtb2RhbFR5cGUgPT09ICdhZGQnKSB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5Nb2RhbCh0aGlzLmNvbm5lY3RvckNyZWF0ZU1vZGFsKTtcbiAgICAgIH0gZWxzZSBpZiAobW9kYWxUeXBlID09PSAnbW9kaWZ5Jykge1xuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuTW9kYWwodGhpcy5jb25uZWN0b3JFZGl0TW9kYWwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjx2LW1vZGFsICNjb25uZWN0b3JFZGl0TW9kYWw+XG4gIDxkaXYgcm9sZT1cImhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0LWNvbm5lY3Rvci10aXRsZVwiPlxuICAgICAgPHYtdGl0bGUgW21hcmdpbl09XCJmYWxzZVwiPnt7ICdjb25uZWN0b3JNYW5hZ2VtZW50Lm1vZGlmeScgfCB0cmFuc2xhdGUgfX08L3YtdGl0bGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IHJvbGU9XCJjb250ZW50XCI+XG4gICAgPHZhbHRpbW8tbW9kaWZ5LWNvbm5lY3RvclxuICAgICAgW3Nob3dTYXZlQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgIFtzaG93RGVsZXRlQnV0dG9uXT1cImZhbHNlXCJcbiAgICA+PC92YWx0aW1vLW1vZGlmeS1jb25uZWN0b3I+XG4gIDwvZGl2PlxuICA8ZGl2IHJvbGU9XCJmb290ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZWRpdC1jb25uZWN0b3ItYnV0dG9uc1wiPlxuICAgICAgPHYtYnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJpbnB1dERpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgKGNsaWNrRXZlbnQpPVwiZGVsZXRlKClcIlxuICAgICAgICBbbWRpSWNvbl09XCInZGVsZXRlJ1wiXG4gICAgICAgIHR5cGU9XCJkYW5nZXJcIlxuICAgICAgICA+e3sgJ2Nvbm5lY3Rvck1hbmFnZW1lbnQucmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fTwvdi1idXR0b25cbiAgICAgID5cbiAgICAgIDx2LWJ1dHRvblxuICAgICAgICAqbmdJZj1cIihoaWRlTW9kYWxTYXZlQnV0dG9uJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiKHNhdmVCdXR0b25EaXNhYmxlZCQgfCBhc3luYykgfHwgKGlucHV0RGlzYWJsZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgKGNsaWNrRXZlbnQpPVwiY29tcGxldGUoKVwiXG4gICAgICAgIFttZGlJY29uXT1cIidjaGVjaydcIlxuICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICAgID57eyAnY29ubmVjdG9yTWFuYWdlbWVudC5zYXZlJyB8IHRyYW5zbGF0ZSB9fTwvdi1idXR0b25cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3YtbW9kYWw+XG5cbjx2LXN0ZXBwZXItY29udGFpbmVyXG4gIChjb21wbGV0ZUV2ZW50KT1cImNvbXBsZXRlKClcIlxuICAoY2FuY2VsQ2xpY2tFdmVudCk9XCJoaWRlKClcIlxuICBbZGlzYWJsZWRdPVwiaW5wdXREaXNhYmxlZCQgfCBhc3luY1wiXG4gIFtyZXR1cm5Ub0ZpcnN0U3RlcFN1YmplY3QkXT1cInJldHVyblRvRmlyc3RTdGVwU3ViamVjdCRcIlxuPlxuICA8di1tb2RhbCAjY29ubmVjdG9yQ3JlYXRlTW9kYWwgKGNsb3NlRXZlbnQpPVwiaGlkZSgpXCI+XG4gICAgPGRpdiByb2xlPVwiaGVhZGVyXCI+XG4gICAgICA8di1zdGVwcGVyLWhlYWRlcj48L3Ytc3RlcHBlci1oZWFkZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiByb2xlPVwiY29udGVudFwiPlxuICAgICAgPHYtc3RlcHBlci1jb250ZW50PlxuICAgICAgICA8di1zdGVwcGVyLXN0ZXAgdGl0bGVUcmFuc2xhdGlvbktleT1cImFkZENvbm5lY3RvclN0ZXBzLnN0ZXAwXCI+XG4gICAgICAgICAgPHZhbHRpbW8tYWRkLWNvbm5lY3Rvci1zZWxlY3Q+PC92YWx0aW1vLWFkZC1jb25uZWN0b3Itc2VsZWN0PlxuICAgICAgICA8L3Ytc3RlcHBlci1zdGVwPlxuICAgICAgICA8di1zdGVwcGVyLXN0ZXAgdGl0bGVUcmFuc2xhdGlvbktleT1cImFkZENvbm5lY3RvclN0ZXBzLnN0ZXAxXCI+XG4gICAgICAgICAgPHZhbHRpbW8tYWRkLWNvbm5lY3Rvci1jb25maWd1cmVcbiAgICAgICAgICAgIFtzaG93U2F2ZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgPjwvdmFsdGltby1hZGQtY29ubmVjdG9yLWNvbmZpZ3VyZT5cbiAgICAgICAgPC92LXN0ZXBwZXItc3RlcD5cbiAgICAgIDwvdi1zdGVwcGVyLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiByb2xlPVwiZm9vdGVyXCI+XG4gICAgICA8di1zdGVwcGVyLWZvb3Rlcj5cbiAgICAgICAgPHYtc3RlcHBlci1mb290ZXItc3RlcFxuICAgICAgICAgIG5leHRCdXR0b25UcmFuc2xhdGlvbktleT1cImFkZENvbm5lY3RvclN0ZXBzLnN0ZXAxXCJcbiAgICAgICAgICBbbmV4dEJ1dHRvbkVuYWJsZWRdPVwiY29ubmVjdG9yVHlwZVNlbGVjdGVkJCB8IGFzeW5jXCJcbiAgICAgICAgPjwvdi1zdGVwcGVyLWZvb3Rlci1zdGVwPlxuICAgICAgICA8di1zdGVwcGVyLWZvb3Rlci1zdGVwXG4gICAgICAgICAgY29tcGxldGVCdXR0b25UcmFuc2xhdGlvbktleT1cImFkZENvbm5lY3RvclN0ZXBzLmNvbXBsZXRlXCJcbiAgICAgICAgICBbY29tcGxldGVCdXR0b25FbmFibGVkXT1cIihzYXZlQnV0dG9uRGlzYWJsZWQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgW3Nob3dDb21wbGV0ZUJ1dHRvbl09XCIoaGlkZU1vZGFsU2F2ZUJ1dHRvbiQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgPjwvdi1zdGVwcGVyLWZvb3Rlci1zdGVwPlxuICAgICAgPC92LXN0ZXBwZXItZm9vdGVyPlxuICAgIDwvZGl2PlxuICA8L3YtbW9kYWw+XG48L3Ytc3RlcHBlci1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Copyright 2015-2020 Ritense BV, the Netherlands.
3
+ *
4
+ * Licensed under EUPL, Version 1.2 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" basis,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../edit-connector-properties/edit-connector-properties.component";
19
+ import * as i2 from "../edit-product-aanvragen-connector/edit-product-aanvragen-connector.component";
20
+ import * as i3 from "../edit-taak-connector/edit-taak-connector.component";
21
+ import * as i4 from "@angular/common";
22
+ export class EditConnectorFormComponent {
23
+ constructor() {
24
+ this.withDefaults = false;
25
+ this.showDeleteButton = false;
26
+ this.showSaveButton = true;
27
+ this.propertiesSave = new EventEmitter();
28
+ this.connectorDelete = new EventEmitter();
29
+ this.productAanvragenName = 'ProductAanvragen';
30
+ this.taakName = 'Taak';
31
+ this.customConnectorNames = [this.productAanvragenName, this.taakName];
32
+ }
33
+ }
34
+ EditConnectorFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: EditConnectorFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ EditConnectorFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: EditConnectorFormComponent, selector: "valtimo-edit-connector-form", inputs: { properties: "properties", withDefaults: "withDefaults", showDeleteButton: "showDeleteButton", showSaveButton: "showSaveButton", defaultName: "defaultName", connectorName: "connectorName" }, outputs: { propertiesSave: "propertiesSave", connectorDelete: "connectorDelete" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-edit-connector-properties\n *ngIf=\"!customConnectorNames.includes(connectorName)\"\n [properties]=\"properties\"\n [withDefaults]=\"withDefaults\"\n [defaultName]=\"defaultName\"\n [showDeleteButton]=\"showDeleteButton\"\n (propertiesSave)=\"propertiesSave.emit($event)\"\n (connectorDelete)=\"connectorDelete.emit()\"\n [showSaveButton]=\"showSaveButton\"\n>\n</valtimo-edit-connector-properties>\n\n<valtimo-edit-product-aanvragen-connector\n *ngIf=\"connectorName === productAanvragenName\"\n [defaultName]=\"defaultName\"\n [properties]=\"properties\"\n [showDeleteButton]=\"showDeleteButton\"\n (propertiesSave)=\"propertiesSave.emit($event)\"\n (connectorDelete)=\"connectorDelete.emit()\"\n>\n</valtimo-edit-product-aanvragen-connector>\n\n<valtimo-edit-taak-connector\n *ngIf=\"connectorName === taakName\"\n [defaultName]=\"defaultName\"\n [properties]=\"properties\"\n [showDeleteButton]=\"showDeleteButton\"\n (propertiesSave)=\"propertiesSave.emit($event)\"\n (connectorDelete)=\"connectorDelete.emit()\"\n>\n</valtimo-edit-taak-connector>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], components: [{ type: i1.EditConnectorPropertiesComponent, selector: "valtimo-edit-connector-properties", inputs: ["properties", "withDefaults", "showDeleteButton", "showSaveButton", "defaultName"], outputs: ["propertiesSave", "connectorDelete"] }, { type: i2.EditProductAanvragenConnectorComponent, selector: "valtimo-edit-product-aanvragen-connector", inputs: ["properties", "defaultName", "showDeleteButton"], outputs: ["propertiesSave", "connectorDelete"] }, { type: i3.EditTaakConnectorComponent, selector: "valtimo-edit-taak-connector", inputs: ["properties", "defaultName", "showDeleteButton"], outputs: ["propertiesSave", "connectorDelete"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: EditConnectorFormComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'valtimo-edit-connector-form', template: "<!--\n ~ Copyright 2015-2020 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-edit-connector-properties\n *ngIf=\"!customConnectorNames.includes(connectorName)\"\n [properties]=\"properties\"\n [withDefaults]=\"withDefaults\"\n [defaultName]=\"defaultName\"\n [showDeleteButton]=\"showDeleteButton\"\n (propertiesSave)=\"propertiesSave.emit($event)\"\n (connectorDelete)=\"connectorDelete.emit()\"\n [showSaveButton]=\"showSaveButton\"\n>\n</valtimo-edit-connector-properties>\n\n<valtimo-edit-product-aanvragen-connector\n *ngIf=\"connectorName === productAanvragenName\"\n [defaultName]=\"defaultName\"\n [properties]=\"properties\"\n [showDeleteButton]=\"showDeleteButton\"\n (propertiesSave)=\"propertiesSave.emit($event)\"\n (connectorDelete)=\"connectorDelete.emit()\"\n>\n</valtimo-edit-product-aanvragen-connector>\n\n<valtimo-edit-taak-connector\n *ngIf=\"connectorName === taakName\"\n [defaultName]=\"defaultName\"\n [properties]=\"properties\"\n [showDeleteButton]=\"showDeleteButton\"\n (propertiesSave)=\"propertiesSave.emit($event)\"\n (connectorDelete)=\"connectorDelete.emit()\"\n>\n</valtimo-edit-taak-connector>\n", styles: ["/*!\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
39
+ }], propDecorators: { properties: [{
40
+ type: Input
41
+ }], withDefaults: [{
42
+ type: Input
43
+ }], showDeleteButton: [{
44
+ type: Input
45
+ }], showSaveButton: [{
46
+ type: Input
47
+ }], defaultName: [{
48
+ type: Input
49
+ }], connectorName: [{
50
+ type: Input
51
+ }], propertiesSave: [{
52
+ type: Output
53
+ }], connectorDelete: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1jb25uZWN0b3ItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Nvbm5lY3Rvci1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWNvbm5lY3Rvci1mb3JtL2VkaXQtY29ubmVjdG9yLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb25uZWN0b3ItbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdC1jb25uZWN0b3ItZm9ybS9lZGl0LWNvbm5lY3Rvci1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUXJFLE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFPVyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFJckIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBbUQsQ0FBQztRQUNyRixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFM0MseUJBQW9CLEdBQUcsa0JBQWtCLENBQUM7UUFDMUMsYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNsQix5QkFBb0IsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDNUU7O3VIQWRZLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDhWQ3hCdkMsNnNEQStDQTsyRkR2QmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLDZCQUE2Qjs4QkFLOUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29ubmVjdG9yUHJvcGVydGllc30gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1lZGl0LWNvbm5lY3Rvci1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtY29ubmVjdG9yLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0LWNvbm5lY3Rvci1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRDb25uZWN0b3JGb3JtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHJvcGVydGllczogQ29ubmVjdG9yUHJvcGVydGllcztcbiAgQElucHV0KCkgd2l0aERlZmF1bHRzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dEZWxldGVCdXR0b24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1NhdmVCdXR0b24gPSB0cnVlO1xuICBASW5wdXQoKSBkZWZhdWx0TmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgY29ubmVjdG9yTmFtZTogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBwcm9wZXJ0aWVzU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e3Byb3BlcnRpZXM6IENvbm5lY3RvclByb3BlcnRpZXM7IG5hbWU6IHN0cmluZ30+KCk7XG4gIEBPdXRwdXQoKSBjb25uZWN0b3JEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICByZWFkb25seSBwcm9kdWN0QWFudnJhZ2VuTmFtZSA9ICdQcm9kdWN0QWFudnJhZ2VuJztcbiAgcmVhZG9ubHkgdGFha05hbWUgPSAnVGFhayc7XG4gIHJlYWRvbmx5IGN1c3RvbUNvbm5lY3Rvck5hbWVzID0gW3RoaXMucHJvZHVjdEFhbnZyYWdlbk5hbWUsIHRoaXMudGFha05hbWVdO1xufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjAgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1lZGl0LWNvbm5lY3Rvci1wcm9wZXJ0aWVzXG4gICpuZ0lmPVwiIWN1c3RvbUNvbm5lY3Rvck5hbWVzLmluY2x1ZGVzKGNvbm5lY3Rvck5hbWUpXCJcbiAgW3Byb3BlcnRpZXNdPVwicHJvcGVydGllc1wiXG4gIFt3aXRoRGVmYXVsdHNdPVwid2l0aERlZmF1bHRzXCJcbiAgW2RlZmF1bHROYW1lXT1cImRlZmF1bHROYW1lXCJcbiAgW3Nob3dEZWxldGVCdXR0b25dPVwic2hvd0RlbGV0ZUJ1dHRvblwiXG4gIChwcm9wZXJ0aWVzU2F2ZSk9XCJwcm9wZXJ0aWVzU2F2ZS5lbWl0KCRldmVudClcIlxuICAoY29ubmVjdG9yRGVsZXRlKT1cImNvbm5lY3RvckRlbGV0ZS5lbWl0KClcIlxuICBbc2hvd1NhdmVCdXR0b25dPVwic2hvd1NhdmVCdXR0b25cIlxuPlxuPC92YWx0aW1vLWVkaXQtY29ubmVjdG9yLXByb3BlcnRpZXM+XG5cbjx2YWx0aW1vLWVkaXQtcHJvZHVjdC1hYW52cmFnZW4tY29ubmVjdG9yXG4gICpuZ0lmPVwiY29ubmVjdG9yTmFtZSA9PT0gcHJvZHVjdEFhbnZyYWdlbk5hbWVcIlxuICBbZGVmYXVsdE5hbWVdPVwiZGVmYXVsdE5hbWVcIlxuICBbcHJvcGVydGllc109XCJwcm9wZXJ0aWVzXCJcbiAgW3Nob3dEZWxldGVCdXR0b25dPVwic2hvd0RlbGV0ZUJ1dHRvblwiXG4gIChwcm9wZXJ0aWVzU2F2ZSk9XCJwcm9wZXJ0aWVzU2F2ZS5lbWl0KCRldmVudClcIlxuICAoY29ubmVjdG9yRGVsZXRlKT1cImNvbm5lY3RvckRlbGV0ZS5lbWl0KClcIlxuPlxuPC92YWx0aW1vLWVkaXQtcHJvZHVjdC1hYW52cmFnZW4tY29ubmVjdG9yPlxuXG48dmFsdGltby1lZGl0LXRhYWstY29ubmVjdG9yXG4gICpuZ0lmPVwiY29ubmVjdG9yTmFtZSA9PT0gdGFha05hbWVcIlxuICBbZGVmYXVsdE5hbWVdPVwiZGVmYXVsdE5hbWVcIlxuICBbcHJvcGVydGllc109XCJwcm9wZXJ0aWVzXCJcbiAgW3Nob3dEZWxldGVCdXR0b25dPVwic2hvd0RlbGV0ZUJ1dHRvblwiXG4gIChwcm9wZXJ0aWVzU2F2ZSk9XCJwcm9wZXJ0aWVzU2F2ZS5lbWl0KCRldmVudClcIlxuICAoY29ubmVjdG9yRGVsZXRlKT1cImNvbm5lY3RvckRlbGV0ZS5lbWl0KClcIlxuPlxuPC92YWx0aW1vLWVkaXQtdGFhay1jb25uZWN0b3I+XG4iXX0=