@valtimo/connector-management 4.15.3-next-main.16 → 4.17.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/bundles/valtimo-connector-management.umd.js +2072 -2054
- package/bundles/valtimo-connector-management.umd.js.map +1 -1
- package/bundles/valtimo-connector-management.umd.min.js +2 -2
- package/bundles/valtimo-connector-management.umd.min.js.map +1 -1
- package/esm2015/lib/components/add-connector/add-connector.component.js +83 -83
- package/esm2015/lib/components/connector-link-extension/connector-link-extension.component.js +104 -104
- package/esm2015/lib/components/connector-link-extension-modal/connector-link-extension-modal.component.js +138 -138
- package/esm2015/lib/components/connector-management/connector-management.component.js +103 -103
- package/esm2015/lib/components/connector-modal/connector-modal.component.js +58 -58
- package/esm2015/lib/components/edit-connector-form/edit-connector-form.component.js +42 -42
- package/esm2015/lib/components/edit-connector-properties/edit-connector-properties.component.js +144 -144
- package/esm2015/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.component.js +157 -157
- package/esm2015/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.form.js +500 -500
- package/esm2015/lib/components/modify-connector/modify-connector.component.js +75 -75
- package/esm2015/lib/components/multi-value-connector-property/multi-value-connector-property.component.js +96 -96
- package/esm2015/lib/connector-management-routing.js +41 -41
- package/esm2015/lib/connector-management.module.js +74 -74
- package/esm2015/lib/extension/connector-management.extension.init.js +39 -39
- package/esm2015/lib/models/connector.model.js +1 -0
- package/esm2015/lib/models/index.js +20 -0
- package/esm2015/lib/models/object-sync.js +1 -0
- package/esm2015/lib/services/connector-management/connector-management.service.js +60 -60
- package/esm2015/lib/services/connector-management-state/connector-management-state.service.js +83 -83
- package/esm2015/lib/services/object-api-sync/object-api-sync.service.js +51 -51
- package/esm2015/public-api.js +33 -32
- package/esm2015/valtimo-connector-management.js +8 -8
- package/fesm2015/valtimo-connector-management.js +1747 -1730
- package/fesm2015/valtimo-connector-management.js.map +1 -1
- package/lib/components/add-connector/add-connector.component.d.ts +26 -26
- package/lib/components/connector-link-extension/connector-link-extension.component.d.ts +25 -25
- package/lib/components/connector-link-extension-modal/connector-link-extension-modal.component.d.ts +40 -40
- package/lib/components/connector-management/connector-management.component.d.ts +29 -28
- package/lib/components/connector-modal/connector-modal.component.d.ts +16 -16
- package/lib/components/edit-connector-form/edit-connector-form.component.d.ts +15 -15
- package/lib/components/edit-connector-properties/edit-connector-properties.component.d.ts +35 -35
- package/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.component.d.ts +45 -45
- package/lib/components/edit-product-aanvragen-connector/edit-product-aanvragen-connector.form.d.ts +225 -225
- package/lib/components/modify-connector/modify-connector.component.d.ts +19 -19
- package/lib/components/multi-value-connector-property/multi-value-connector-property.component.d.ts +26 -26
- package/lib/connector-management-routing.d.ts +2 -2
- package/lib/connector-management.module.d.ts +2 -2
- package/lib/extension/connector-management.extension.init.d.ts +2 -2
- package/lib/models/connector.model.d.ts +36 -0
- package/lib/models/index.d.ts +2 -0
- package/lib/models/object-sync.d.ts +19 -0
- package/lib/services/connector-management/connector-management.service.d.ts +18 -17
- package/lib/services/connector-management-state/connector-management-state.service.d.ts +26 -26
- package/lib/services/object-api-sync/object-api-sync.service.d.ts +14 -14
- package/package.json +1 -1
- package/public-api.d.ts +14 -13
- package/valtimo-connector-management.d.ts +7 -7
- package/valtimo-connector-management.metadata.json +1 -1
|
@@ -1,138 +1,138 @@
|
|
|
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 { ModalComponent } from '@valtimo/components';
|
|
18
|
-
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
19
|
-
import { map, switchMap, take, tap } from 'rxjs/operators';
|
|
20
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
21
|
-
import { ActivatedRoute } from '@angular/router';
|
|
22
|
-
import { AlertService } from '@valtimo/components';
|
|
23
|
-
import { ConnectorManagementService } from '../../services/connector-management/connector-management.service';
|
|
24
|
-
import { ConnectorManagementStateService } from '../../services/connector-management-state/connector-management-state.service';
|
|
25
|
-
import { ObjectApiSyncService } from '../../services/object-api-sync/object-api-sync.service';
|
|
26
|
-
export class ConnectorLinkExtensionModalComponent {
|
|
27
|
-
constructor(connectorManagementService, translateService, stateService, objectApiSyncService, route, alertService) {
|
|
28
|
-
this.connectorManagementService = connectorManagementService;
|
|
29
|
-
this.translateService = translateService;
|
|
30
|
-
this.stateService = stateService;
|
|
31
|
-
this.objectApiSyncService = objectApiSyncService;
|
|
32
|
-
this.route = route;
|
|
33
|
-
this.alertService = alertService;
|
|
34
|
-
this.loading$ = new BehaviorSubject(true);
|
|
35
|
-
this.fields$ = new BehaviorSubject([]);
|
|
36
|
-
this.currentPageAndSize$ = new BehaviorSubject({
|
|
37
|
-
page: 0,
|
|
38
|
-
size: 10,
|
|
39
|
-
});
|
|
40
|
-
this.pageSizes$ = new BehaviorSubject({
|
|
41
|
-
collectionSize: 0,
|
|
42
|
-
maxPaginationItemSize: 5,
|
|
43
|
-
});
|
|
44
|
-
this.pagination$ = combineLatest([
|
|
45
|
-
this.currentPageAndSize$,
|
|
46
|
-
this.pageSizes$,
|
|
47
|
-
]).pipe(map(([currentPage, sizes]) => (Object.assign(Object.assign(Object.assign({}, currentPage), sizes), { page: currentPage.page + 1 }))));
|
|
48
|
-
this.connectorInstances$ = combineLatest([
|
|
49
|
-
this.currentPageAndSize$,
|
|
50
|
-
this.connectorManagementService.getConnectorTypes(),
|
|
51
|
-
this.translateService.stream('key'),
|
|
52
|
-
this.stateService.refresh$,
|
|
53
|
-
]).pipe(tap(() => this.setFields()), switchMap(([currentPage, types]) => this.connectorManagementService.getConnectorInstancesByType(types.find(type => type.name.toLowerCase().includes('objectsapi')).id, { page: currentPage.page, size: currentPage.size })), tap(instanceRes => {
|
|
54
|
-
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
55
|
-
this.pageSizes$.next(Object.assign(Object.assign({}, sizes), { collectionSize: instanceRes.totalElements }));
|
|
56
|
-
});
|
|
57
|
-
}), map(res => res.content), tap(() => this.loading$.next(false)));
|
|
58
|
-
this.noObjectsApiConnectors$ = this.connectorInstances$.pipe(map(instances => !instances || instances.length === 0));
|
|
59
|
-
this.disabled$ = this.stateService.inputDisabled$;
|
|
60
|
-
}
|
|
61
|
-
ngAfterViewInit() {
|
|
62
|
-
this.showSubscription = this.stateService.showExtensionModal$.subscribe(show => {
|
|
63
|
-
if (show) {
|
|
64
|
-
this.show();
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.hide();
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
ngOnDestroy() {
|
|
72
|
-
var _a;
|
|
73
|
-
(_a = this.showSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
74
|
-
}
|
|
75
|
-
paginationClicked(newPageNumber) {
|
|
76
|
-
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
77
|
-
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { page: newPageNumber - 1 }));
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
paginationSet(newPageSize) {
|
|
81
|
-
if (newPageSize) {
|
|
82
|
-
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
83
|
-
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { size: newPageSize }));
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
rowClicked(instance) {
|
|
88
|
-
var _a, _b;
|
|
89
|
-
const connectorInstanceId = instance.id;
|
|
90
|
-
const enabled = true;
|
|
91
|
-
const documentDefinitionName = this.route.snapshot.paramMap.get('name');
|
|
92
|
-
const objectTypeUrl = (_b = (_a = instance.properties) === null || _a === void 0 ? void 0 : _a.objectType) === null || _b === void 0 ? void 0 : _b.url;
|
|
93
|
-
const splitObjectTypeUrl = objectTypeUrl === null || objectTypeUrl === void 0 ? void 0 : objectTypeUrl.split('/');
|
|
94
|
-
const objectTypeId = splitObjectTypeUrl[splitObjectTypeUrl.length - 1];
|
|
95
|
-
this.stateService.disableInput();
|
|
96
|
-
this.objectApiSyncService
|
|
97
|
-
.createObjectSyncConfig({ connectorInstanceId, enabled, documentDefinitionName, objectTypeId })
|
|
98
|
-
.subscribe(res => {
|
|
99
|
-
this.alertService.success(this.translateService.instant('connectorManagement.extension.addSyncSuccess'));
|
|
100
|
-
this.stateService.hideExtensionModal();
|
|
101
|
-
this.stateService.enableInput();
|
|
102
|
-
this.stateService.refresh();
|
|
103
|
-
this.stateService.setLastConfigIdAdded(res.objectSyncConfig.id);
|
|
104
|
-
}, () => {
|
|
105
|
-
this.stateService.enableInput();
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
setFields() {
|
|
109
|
-
const getTranslatedLabel = (key) => this.translateService.instant(`connectorManagement.labels.${key}`);
|
|
110
|
-
const keys = ['name'];
|
|
111
|
-
this.fields$.next(keys.map(key => ({ label: getTranslatedLabel(key), key })));
|
|
112
|
-
}
|
|
113
|
-
show() {
|
|
114
|
-
this.modal.show();
|
|
115
|
-
}
|
|
116
|
-
hide() {
|
|
117
|
-
this.modal.hide();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
ConnectorLinkExtensionModalComponent.decorators = [
|
|
121
|
-
{ type: Component, args: [{
|
|
122
|
-
selector: 'valtimo-connector-link-extension-modal',
|
|
123
|
-
template: "<valtimo-modal #modal [title]=\"'connectorManagement.extension.buttonText' | translate\">\n <div\n class=\"mt-2\"\n body\n *ngIf=\"{\n connectorInstances: connectorInstances$ | async,\n fields: fields$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async,\n noConnectors: noObjectsApiConnectors$ | async\n } as obs\"\n >\n <div *ngIf=\"obs.loading === false; else loading\" [ngClass]=\"{disabled: obs.disabled}\">\n <ng-container *ngIf=\"!obs.noConnectors; else noConnectors\">\n <p class=\"lead\">{{ 'connectorManagement.extension.clickToSync' | translate }}</p>\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.connectorInstances\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [viewMode]=\"false\"\n [isSearchable]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"connectorManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowClicked($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'connectorManagement.title' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'connectorManagement.subtitle' | translate }}\n </h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </ng-container>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #noConnectors>\n <p class=\"lead\">{{ 'connectorManagement.extension.noConnectors' | translate }}</p>\n</ng-template>\n",
|
|
124
|
-
styles: [".disabled{filter:grayscale(1);opacity:.8;pointer-events:none}"]
|
|
125
|
-
},] }
|
|
126
|
-
];
|
|
127
|
-
ConnectorLinkExtensionModalComponent.ctorParameters = () => [
|
|
128
|
-
{ type: ConnectorManagementService },
|
|
129
|
-
{ type: TranslateService },
|
|
130
|
-
{ type: ConnectorManagementStateService },
|
|
131
|
-
{ type: ObjectApiSyncService },
|
|
132
|
-
{ type: ActivatedRoute },
|
|
133
|
-
{ type: AlertService }
|
|
134
|
-
];
|
|
135
|
-
ConnectorLinkExtensionModalComponent.propDecorators = {
|
|
136
|
-
modal: [{ type: ViewChild, args: ['modal',] }]
|
|
137
|
-
};
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLWxpbmstZXh0ZW5zaW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3Jrc3BhY2UvdmFsdGltby92YWx0aW1vLWZyb250ZW5kLWxpYnJhcmllcy9wcm9qZWN0cy92YWx0aW1vL2Nvbm5lY3Rvci1tYW5hZ2VtZW50L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Nvbm5lY3Rvci1saW5rLWV4dGVuc2lvbi1tb2RhbC9jb25uZWN0b3ItbGluay1leHRlbnNpb24tbW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFnQixTQUFTLEVBQWEsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBK0IsTUFBTSxNQUFNLENBQUM7QUFDbEYsT0FBTyxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDNUcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDN0gsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFPNUYsTUFBTSxPQUFPLG9DQUFvQztJQXlEL0MsWUFDbUIsMEJBQXNELEVBQ3RELGdCQUFrQyxFQUNsQyxZQUE2QyxFQUM3QyxvQkFBMEMsRUFDMUMsS0FBcUIs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LElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsOEJBQThCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckUsTUFBTSxJQUFJLEdBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7WUE5SUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3Q0FBd0M7Z0JBQ2xELHV5REFBOEQ7O2FBRS9EOzs7WUFSTywwQkFBMEI7WUFIMUIsZ0JBQWdCO1lBSWhCLCtCQUErQjtZQUMvQixvQkFBb0I7WUFKcEIsY0FBYztZQUNkLFlBQVk7OztvQkFXakIsU0FBUyxTQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNb2RhbENvbXBvbmVudH0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UGFnaW5hdGlvbiwgQ29ubmVjdG9ySW5zdGFuY2V9IGZyb20gJ0B2YWx0aW1vL2NvbnRyYWN0JztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBbGVydFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29ubmVjdG9yLW1hbmFnZW1lbnQvY29ubmVjdG9yLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQge0Nvbm5lY3Rvck1hbmFnZW1lbnRTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nvbm5lY3Rvci1tYW5hZ2VtZW50LXN0YXRlL2Nvbm5lY3Rvci1tYW5hZ2VtZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RBcGlTeW5jU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LWFwaS1zeW5jL29iamVjdC1hcGktc3luYy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1jb25uZWN0b3ItbGluay1leHRlbnNpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29ubmVjdG9yLWxpbmstZXh0ZW5zaW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29ubmVjdG9yLWxpbmstZXh0ZW5zaW9uLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RvckxpbmtFeHRlbnNpb25Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ21vZGFsJykgbW9kYWw6IE1vZGFsQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgc2hvd1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgZmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8e2tleTogc3RyaW5nOyBsYWJlbDogc3RyaW5nfT4+KFtdKTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZUFuZFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgcGFnZTogMCxcbiAgICBzaXplOiAxMCxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZVNpemVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIGNvbGxlY3Rpb25TaXplOiAwLFxuICAgIG1heFBhZ2luYXRpb25JdGVtU2l6ZTogNSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5wYWdlU2l6ZXMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY3VycmVudFBhZ2UsIHNpemVzXSkgPT5cbiAgICAgICAgKHsuLi5jdXJyZW50UGFnZSwgLi4uc2l6ZXMsIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UgKyAxfSBhcyBQYWdpbmF0aW9uKVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSBjb25uZWN0b3JJbnN0YW5jZXMkOiBPYnNlcnZhYmxlPEFycmF5PENvbm5lY3Rvckluc3RhbmNlPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5jb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZS5nZXRDb25uZWN0b3JUeXBlcygpLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlZnJlc2gkLFxuICBdKS5waXBlKFxuICAgIHRhcCgoKSA9PiB0aGlzLnNldEZpZWxkcygpKSxcbiAgICBzd2l0Y2hNYXAoKFtjdXJyZW50UGFnZSwgdHlwZXNdKSA9PlxuICAgICAgdGhpcy5jb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZS5nZXRDb25uZWN0b3JJbnN0YW5jZXNCeVR5cGUoXG4gICAgICAgIHR5cGVzLmZpbmQodHlwZSA9PiB0eXBlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnb2JqZWN0c2FwaScpKS5pZCxcbiAgICAgICAge3BhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UsIHNpemU6IGN1cnJlbnRQYWdlLnNpemV9XG4gICAgICApXG4gICAgKSxcbiAgICB0YXAoaW5zdGFuY2VSZXMgPT4ge1xuICAgICAgdGhpcy5wYWdlU2l6ZXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNpemVzID0+IHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZXMkLm5leHQoey4uLnNpemVzLCBjb2xsZWN0aW9uU2l6ZTogaW5zdGFuY2VSZXMudG90YWxFbGVtZW50c30pO1xuICAgICAgfSk7XG4gICAgfSksXG4gICAgbWFwKHJlcyA9PiByZXMuY29udGVudCksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcmVhZG9ubHkgbm9PYmplY3RzQXBpQ29ubmVjdG9ycyQgPSB0aGlzLmNvbm5lY3Rvckluc3RhbmNlcyQucGlwZShcbiAgICBtYXAoaW5zdGFuY2VzID0+ICFpbnN0YW5jZXMgfHwgaW5zdGFuY2VzLmxlbmd0aCA9PT0gMClcbiAgKTtcblxuICByZWFkb25seSBkaXNhYmxlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdG9yTWFuYWdlbWVudFNlcnZpY2U6IENvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ29ubmVjdG9yTWFuYWdlbWVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdEFwaVN5bmNTZXJ2aWNlOiBPYmplY3RBcGlTeW5jU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZGlzYWJsZWQkID0gdGhpcy5zdGF0ZVNlcnZpY2UuaW5wdXREaXNhYmxlZCQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3Vic2NyaXB0aW9uID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd0V4dGVuc2lvbk1vZGFsJC5zdWJzY3JpYmUoc2hvdyA9PiB7XG4gICAgICBpZiAoc2hvdykge1xuICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcGFnaW5hdGlvbkNsaWNrZWQobmV3UGFnZU51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHBhZ2U6IG5ld1BhZ2VOdW1iZXIgLSAxfSk7XG4gICAgfSk7XG4gIH1cblxuICBwYWdpbmF0aW9uU2V0KG5ld1BhZ2VTaXplKTogdm9pZCB7XG4gICAgaWYgKG5ld1BhZ2VTaXplKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoY3VycmVudFBhZ2UgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHNpemU6IG5ld1BhZ2VTaXplfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByb3dDbGlja2VkKGluc3RhbmNlOiBDb25uZWN0b3JJbnN0YW5jZSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbm5lY3Rvckluc3RhbmNlSWQgPSBpbnN0YW5jZS5pZDtcbiAgICBjb25zdCBlbmFibGVkID0gdHJ1ZTtcbiAgICBjb25zdCBkb2N1bWVudERlZmluaXRpb25OYW1lID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ25hbWUnKTtcbiAgICBjb25zdCBvYmplY3RUeXBlVXJsID0gKGluc3RhbmNlIGFzIGFueSkucHJvcGVydGllcz8ub2JqZWN0VHlwZT8udXJsO1xuICAgIGNvbnN0IHNwbGl0T2JqZWN0VHlwZVVybCA9IG9iamVjdFR5cGVVcmw/LnNwbGl0KCcvJyk7XG4gICAgY29uc3Qgb2JqZWN0VHlwZUlkID0gc3BsaXRPYmplY3RUeXBlVXJsW3NwbGl0T2JqZWN0VHlwZVVybC5sZW5ndGggLSAxXTtcblxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmRpc2FibGVJbnB1dCgpO1xuXG4gICAgdGhpcy5vYmplY3RBcGlTeW5jU2VydmljZVxuICAgICAgLmNyZWF0ZU9iamVjdFN5bmNDb25maWcoe2Nvbm5lY3Rvckluc3RhbmNlSWQsIGVuYWJsZWQsIGRvY3VtZW50RGVmaW5pdGlvbk5hbWUsIG9iamVjdFR5cGVJZH0pXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29ubmVjdG9yTWFuYWdlbWVudC5leHRlbnNpb24uYWRkU3luY1N1Y2Nlc3MnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZUV4dGVuc2lvbk1vZGFsKCk7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0TGFzdENvbmZpZ0lkQWRkZWQocmVzLm9iamVjdFN5bmNDb25maWcuaWQpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RmllbGRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGdldFRyYW5zbGF0ZWRMYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBjb25uZWN0b3JNYW5hZ2VtZW50LmxhYmVscy4ke2tleX1gKTtcbiAgICBjb25zdCBrZXlzOiBBcnJheTxzdHJpbmc+ID0gWyduYW1lJ107XG4gICAgdGhpcy5maWVsZHMkLm5leHQoa2V5cy5tYXAoa2V5ID0+ICh7bGFiZWw6IGdldFRyYW5zbGF0ZWRMYWJlbChrZXkpLCBrZXl9KSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICB9XG59XG4iXX0=
|
|
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 { ModalComponent } from '@valtimo/components';
|
|
18
|
+
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
19
|
+
import { map, switchMap, take, tap } from 'rxjs/operators';
|
|
20
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
21
|
+
import { ActivatedRoute } from '@angular/router';
|
|
22
|
+
import { AlertService } from '@valtimo/components';
|
|
23
|
+
import { ConnectorManagementService } from '../../services/connector-management/connector-management.service';
|
|
24
|
+
import { ConnectorManagementStateService } from '../../services/connector-management-state/connector-management-state.service';
|
|
25
|
+
import { ObjectApiSyncService } from '../../services/object-api-sync/object-api-sync.service';
|
|
26
|
+
export class ConnectorLinkExtensionModalComponent {
|
|
27
|
+
constructor(connectorManagementService, translateService, stateService, objectApiSyncService, route, alertService) {
|
|
28
|
+
this.connectorManagementService = connectorManagementService;
|
|
29
|
+
this.translateService = translateService;
|
|
30
|
+
this.stateService = stateService;
|
|
31
|
+
this.objectApiSyncService = objectApiSyncService;
|
|
32
|
+
this.route = route;
|
|
33
|
+
this.alertService = alertService;
|
|
34
|
+
this.loading$ = new BehaviorSubject(true);
|
|
35
|
+
this.fields$ = new BehaviorSubject([]);
|
|
36
|
+
this.currentPageAndSize$ = new BehaviorSubject({
|
|
37
|
+
page: 0,
|
|
38
|
+
size: 10,
|
|
39
|
+
});
|
|
40
|
+
this.pageSizes$ = new BehaviorSubject({
|
|
41
|
+
collectionSize: 0,
|
|
42
|
+
maxPaginationItemSize: 5,
|
|
43
|
+
});
|
|
44
|
+
this.pagination$ = combineLatest([
|
|
45
|
+
this.currentPageAndSize$,
|
|
46
|
+
this.pageSizes$,
|
|
47
|
+
]).pipe(map(([currentPage, sizes]) => (Object.assign(Object.assign(Object.assign({}, currentPage), sizes), { page: currentPage.page + 1 }))));
|
|
48
|
+
this.connectorInstances$ = combineLatest([
|
|
49
|
+
this.currentPageAndSize$,
|
|
50
|
+
this.connectorManagementService.getConnectorTypes(),
|
|
51
|
+
this.translateService.stream('key'),
|
|
52
|
+
this.stateService.refresh$,
|
|
53
|
+
]).pipe(tap(() => this.setFields()), switchMap(([currentPage, types]) => this.connectorManagementService.getConnectorInstancesByType(types.find(type => type.name.toLowerCase().includes('objectsapi')).id, { page: currentPage.page, size: currentPage.size })), tap(instanceRes => {
|
|
54
|
+
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
55
|
+
this.pageSizes$.next(Object.assign(Object.assign({}, sizes), { collectionSize: instanceRes.totalElements }));
|
|
56
|
+
});
|
|
57
|
+
}), map(res => res.content), tap(() => this.loading$.next(false)));
|
|
58
|
+
this.noObjectsApiConnectors$ = this.connectorInstances$.pipe(map(instances => !instances || instances.length === 0));
|
|
59
|
+
this.disabled$ = this.stateService.inputDisabled$;
|
|
60
|
+
}
|
|
61
|
+
ngAfterViewInit() {
|
|
62
|
+
this.showSubscription = this.stateService.showExtensionModal$.subscribe(show => {
|
|
63
|
+
if (show) {
|
|
64
|
+
this.show();
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.hide();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
ngOnDestroy() {
|
|
72
|
+
var _a;
|
|
73
|
+
(_a = this.showSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
74
|
+
}
|
|
75
|
+
paginationClicked(newPageNumber) {
|
|
76
|
+
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
77
|
+
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { page: newPageNumber - 1 }));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
paginationSet(newPageSize) {
|
|
81
|
+
if (newPageSize) {
|
|
82
|
+
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
83
|
+
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { size: newPageSize }));
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
rowClicked(instance) {
|
|
88
|
+
var _a, _b;
|
|
89
|
+
const connectorInstanceId = instance.id;
|
|
90
|
+
const enabled = true;
|
|
91
|
+
const documentDefinitionName = this.route.snapshot.paramMap.get('name');
|
|
92
|
+
const objectTypeUrl = (_b = (_a = instance.properties) === null || _a === void 0 ? void 0 : _a.objectType) === null || _b === void 0 ? void 0 : _b.url;
|
|
93
|
+
const splitObjectTypeUrl = objectTypeUrl === null || objectTypeUrl === void 0 ? void 0 : objectTypeUrl.split('/');
|
|
94
|
+
const objectTypeId = splitObjectTypeUrl[splitObjectTypeUrl.length - 1];
|
|
95
|
+
this.stateService.disableInput();
|
|
96
|
+
this.objectApiSyncService
|
|
97
|
+
.createObjectSyncConfig({ connectorInstanceId, enabled, documentDefinitionName, objectTypeId })
|
|
98
|
+
.subscribe(res => {
|
|
99
|
+
this.alertService.success(this.translateService.instant('connectorManagement.extension.addSyncSuccess'));
|
|
100
|
+
this.stateService.hideExtensionModal();
|
|
101
|
+
this.stateService.enableInput();
|
|
102
|
+
this.stateService.refresh();
|
|
103
|
+
this.stateService.setLastConfigIdAdded(res.objectSyncConfig.id);
|
|
104
|
+
}, () => {
|
|
105
|
+
this.stateService.enableInput();
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
setFields() {
|
|
109
|
+
const getTranslatedLabel = (key) => this.translateService.instant(`connectorManagement.labels.${key}`);
|
|
110
|
+
const keys = ['name'];
|
|
111
|
+
this.fields$.next(keys.map(key => ({ label: getTranslatedLabel(key), key })));
|
|
112
|
+
}
|
|
113
|
+
show() {
|
|
114
|
+
this.modal.show();
|
|
115
|
+
}
|
|
116
|
+
hide() {
|
|
117
|
+
this.modal.hide();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
ConnectorLinkExtensionModalComponent.decorators = [
|
|
121
|
+
{ type: Component, args: [{
|
|
122
|
+
selector: 'valtimo-connector-link-extension-modal',
|
|
123
|
+
template: "<valtimo-modal #modal [title]=\"'connectorManagement.extension.buttonText' | translate\">\n <div\n class=\"mt-2\"\n body\n *ngIf=\"{\n connectorInstances: connectorInstances$ | async,\n fields: fields$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async,\n noConnectors: noObjectsApiConnectors$ | async\n } as obs\"\n >\n <div *ngIf=\"obs.loading === false; else loading\" [ngClass]=\"{disabled: obs.disabled}\">\n <ng-container *ngIf=\"!obs.noConnectors; else noConnectors\">\n <p class=\"lead\">{{ 'connectorManagement.extension.clickToSync' | translate }}</p>\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.connectorInstances\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [viewMode]=\"false\"\n [isSearchable]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"connectorManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowClicked($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'connectorManagement.title' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'connectorManagement.subtitle' | translate }}\n </h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </ng-container>\n </div>\n </div>\n</valtimo-modal>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #noConnectors>\n <p class=\"lead\">{{ 'connectorManagement.extension.noConnectors' | translate }}</p>\n</ng-template>\n",
|
|
124
|
+
styles: [".disabled{filter:grayscale(1);opacity:.8;pointer-events:none}"]
|
|
125
|
+
},] }
|
|
126
|
+
];
|
|
127
|
+
ConnectorLinkExtensionModalComponent.ctorParameters = () => [
|
|
128
|
+
{ type: ConnectorManagementService },
|
|
129
|
+
{ type: TranslateService },
|
|
130
|
+
{ type: ConnectorManagementStateService },
|
|
131
|
+
{ type: ObjectApiSyncService },
|
|
132
|
+
{ type: ActivatedRoute },
|
|
133
|
+
{ type: AlertService }
|
|
134
|
+
];
|
|
135
|
+
ConnectorLinkExtensionModalComponent.propDecorators = {
|
|
136
|
+
modal: [{ type: ViewChild, args: ['modal',] }]
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLWxpbmstZXh0ZW5zaW9uLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvdG1wL2plbmtpbnMtM2ZmM2ExOWEvd29ya3NwYWNlL3JvbnRlbmRfbGlicmFyaWVzXy1fcmVsZWFzZV9tYWluL3Byb2plY3RzL3ZhbHRpbW8vY29ubmVjdG9yLW1hbmFnZW1lbnQvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29ubmVjdG9yLWxpbmstZXh0ZW5zaW9uLW1vZGFsL2Nvbm5lY3Rvci1saW5rLWV4dGVuc2lvbi1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQWdCLFNBQVMsRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUErQixNQUFNLE1BQU0sQ0FBQztBQUNsRixPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxZQUFZLEVBQWEsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUM3SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQU81RixNQUFNLE9BQU8sb0NBQW9DO0lBeUQvQyxZQUNtQiwwQkFBc0QsRUFDdEQsZ0JBQWtDLEVBQ2xDLFlBQTZDLEVBQzdDLG9C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VyxFQUFFLEVBQUUsQ0FDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRSxNQUFNLElBQUksR0FBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sSUFBSTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7OztZQTlJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdDQUF3QztnQkFDbEQsdXlEQUE4RDs7YUFFL0Q7OztZQVJPLDBCQUEwQjtZQUgxQixnQkFBZ0I7WUFJaEIsK0JBQStCO1lBQy9CLG9CQUFvQjtZQUpwQixjQUFjO1lBQ2QsWUFBWTs7O29CQVdqQixTQUFTLFNBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50fSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDb25uZWN0b3JJbnN0YW5jZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBbGVydFNlcnZpY2UsIFBhZ2luYXRpb259IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtDb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29ubmVjdG9yLW1hbmFnZW1lbnQvY29ubmVjdG9yLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQge0Nvbm5lY3Rvck1hbmFnZW1lbnRTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nvbm5lY3Rvci1tYW5hZ2VtZW50LXN0YXRlL2Nvbm5lY3Rvci1tYW5hZ2VtZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RBcGlTeW5jU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2JqZWN0LWFwaS1zeW5jL29iamVjdC1hcGktc3luYy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1jb25uZWN0b3ItbGluay1leHRlbnNpb24tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29ubmVjdG9yLWxpbmstZXh0ZW5zaW9uLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29ubmVjdG9yLWxpbmstZXh0ZW5zaW9uLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RvckxpbmtFeHRlbnNpb25Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ21vZGFsJykgbW9kYWw6IE1vZGFsQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgc2hvd1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgZmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8e2tleTogc3RyaW5nOyBsYWJlbDogc3RyaW5nfT4+KFtdKTtcblxuICByZWFkb25seSBjdXJyZW50UGFnZUFuZFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgcGFnZTogMCxcbiAgICBzaXplOiAxMCxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnZVNpemVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIGNvbGxlY3Rpb25TaXplOiAwLFxuICAgIG1heFBhZ2luYXRpb25JdGVtU2l6ZTogNSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5wYWdlU2l6ZXMkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY3VycmVudFBhZ2UsIHNpemVzXSkgPT5cbiAgICAgICAgKHsuLi5jdXJyZW50UGFnZSwgLi4uc2l6ZXMsIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UgKyAxfSBhcyBQYWdpbmF0aW9uKVxuICAgIClcbiAgKTtcblxuICByZWFkb25seSBjb25uZWN0b3JJbnN0YW5jZXMkOiBPYnNlcnZhYmxlPEFycmF5PENvbm5lY3Rvckluc3RhbmNlPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5jb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZS5nZXRDb25uZWN0b3JUeXBlcygpLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlZnJlc2gkLFxuICBdKS5waXBlKFxuICAgIHRhcCgoKSA9PiB0aGlzLnNldEZpZWxkcygpKSxcbiAgICBzd2l0Y2hNYXAoKFtjdXJyZW50UGFnZSwgdHlwZXNdKSA9PlxuICAgICAgdGhpcy5jb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZS5nZXRDb25uZWN0b3JJbnN0YW5jZXNCeVR5cGUoXG4gICAgICAgIHR5cGVzLmZpbmQodHlwZSA9PiB0eXBlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnb2JqZWN0c2FwaScpKS5pZCxcbiAgICAgICAge3BhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UsIHNpemU6IGN1cnJlbnRQYWdlLnNpemV9XG4gICAgICApXG4gICAgKSxcbiAgICB0YXAoaW5zdGFuY2VSZXMgPT4ge1xuICAgICAgdGhpcy5wYWdlU2l6ZXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHNpemVzID0+IHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZXMkLm5leHQoey4uLnNpemVzLCBjb2xsZWN0aW9uU2l6ZTogaW5zdGFuY2VSZXMudG90YWxFbGVtZW50c30pO1xuICAgICAgfSk7XG4gICAgfSksXG4gICAgbWFwKHJlcyA9PiByZXMuY29udGVudCksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcmVhZG9ubHkgbm9PYmplY3RzQXBpQ29ubmVjdG9ycyQgPSB0aGlzLmNvbm5lY3Rvckluc3RhbmNlcyQucGlwZShcbiAgICBtYXAoaW5zdGFuY2VzID0+ICFpbnN0YW5jZXMgfHwgaW5zdGFuY2VzLmxlbmd0aCA9PT0gMClcbiAgKTtcblxuICByZWFkb25seSBkaXNhYmxlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdG9yTWFuYWdlbWVudFNlcnZpY2U6IENvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ29ubmVjdG9yTWFuYWdlbWVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdEFwaVN5bmNTZXJ2aWNlOiBPYmplY3RBcGlTeW5jU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZGlzYWJsZWQkID0gdGhpcy5zdGF0ZVNlcnZpY2UuaW5wdXREaXNhYmxlZCQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3Vic2NyaXB0aW9uID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd0V4dGVuc2lvbk1vZGFsJC5zdWJzY3JpYmUoc2hvdyA9PiB7XG4gICAgICBpZiAoc2hvdykge1xuICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcGFnaW5hdGlvbkNsaWNrZWQobmV3UGFnZU51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHBhZ2U6IG5ld1BhZ2VOdW1iZXIgLSAxfSk7XG4gICAgfSk7XG4gIH1cblxuICBwYWdpbmF0aW9uU2V0KG5ld1BhZ2VTaXplKTogdm9pZCB7XG4gICAgaWYgKG5ld1BhZ2VTaXplKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoY3VycmVudFBhZ2UgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHNpemU6IG5ld1BhZ2VTaXplfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByb3dDbGlja2VkKGluc3RhbmNlOiBDb25uZWN0b3JJbnN0YW5jZSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbm5lY3Rvckluc3RhbmNlSWQgPSBpbnN0YW5jZS5pZDtcbiAgICBjb25zdCBlbmFibGVkID0gdHJ1ZTtcbiAgICBjb25zdCBkb2N1bWVudERlZmluaXRpb25OYW1lID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ25hbWUnKTtcbiAgICBjb25zdCBvYmplY3RUeXBlVXJsID0gKGluc3RhbmNlIGFzIGFueSkucHJvcGVydGllcz8ub2JqZWN0VHlwZT8udXJsO1xuICAgIGNvbnN0IHNwbGl0T2JqZWN0VHlwZVVybCA9IG9iamVjdFR5cGVVcmw/LnNwbGl0KCcvJyk7XG4gICAgY29uc3Qgb2JqZWN0VHlwZUlkID0gc3BsaXRPYmplY3RUeXBlVXJsW3NwbGl0T2JqZWN0VHlwZVVybC5sZW5ndGggLSAxXTtcblxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLmRpc2FibGVJbnB1dCgpO1xuXG4gICAgdGhpcy5vYmplY3RBcGlTeW5jU2VydmljZVxuICAgICAgLmNyZWF0ZU9iamVjdFN5bmNDb25maWcoe2Nvbm5lY3Rvckluc3RhbmNlSWQsIGVuYWJsZWQsIGRvY3VtZW50RGVmaW5pdGlvbk5hbWUsIG9iamVjdFR5cGVJZH0pXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29ubmVjdG9yTWFuYWdlbWVudC5leHRlbnNpb24uYWRkU3luY1N1Y2Nlc3MnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZUV4dGVuc2lvbk1vZGFsKCk7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0TGFzdENvbmZpZ0lkQWRkZWQocmVzLm9iamVjdFN5bmNDb25maWcuaWQpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RmllbGRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGdldFRyYW5zbGF0ZWRMYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBjb25uZWN0b3JNYW5hZ2VtZW50LmxhYmVscy4ke2tleX1gKTtcbiAgICBjb25zdCBrZXlzOiBBcnJheTxzdHJpbmc+ID0gWyduYW1lJ107XG4gICAgdGhpcy5maWVsZHMkLm5leHQoa2V5cy5tYXAoa2V5ID0+ICh7bGFiZWw6IGdldFRyYW5zbGF0ZWRMYWJlbChrZXkpLCBrZXl9KSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,103 +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 { TranslateService } from '@ngx-translate/core';
|
|
20
|
-
import { ConnectorManagementService } from '../../services/connector-management/connector-management.service';
|
|
21
|
-
import { ConnectorManagementStateService } from '../../services/connector-management-state/connector-management-state.service';
|
|
22
|
-
export class ConnectorManagementComponent {
|
|
23
|
-
constructor(connectorManagementService, translateService, stateService) {
|
|
24
|
-
this.connectorManagementService = connectorManagementService;
|
|
25
|
-
this.translateService = translateService;
|
|
26
|
-
this.stateService = stateService;
|
|
27
|
-
this.loading$ = new BehaviorSubject(true);
|
|
28
|
-
this.fields$ = new BehaviorSubject([]);
|
|
29
|
-
this.currentPageAndSize$ = new BehaviorSubject({
|
|
30
|
-
page: 0,
|
|
31
|
-
size: 10,
|
|
32
|
-
});
|
|
33
|
-
this.pageSizes$ = new BehaviorSubject({
|
|
34
|
-
collectionSize: 0,
|
|
35
|
-
maxPaginationItemSize: 5,
|
|
36
|
-
});
|
|
37
|
-
this.pagination$ = combineLatest([
|
|
38
|
-
this.currentPageAndSize$,
|
|
39
|
-
this.pageSizes$,
|
|
40
|
-
]).pipe(map(([currentPage, sizes]) => (Object.assign(Object.assign(Object.assign({}, currentPage), sizes), { page: currentPage.page + 1 }))));
|
|
41
|
-
this.connectorInstances$ = combineLatest([
|
|
42
|
-
this.currentPageAndSize$,
|
|
43
|
-
this.translateService.stream('key'),
|
|
44
|
-
this.stateService.refresh$,
|
|
45
|
-
]).pipe(tap(() => this.setFields()), switchMap(([currentPage]) => combineLatest([
|
|
46
|
-
this.connectorManagementService.getConnectorInstances({
|
|
47
|
-
page: currentPage.page,
|
|
48
|
-
size: currentPage.size,
|
|
49
|
-
}),
|
|
50
|
-
this.connectorManagementService.getConnectorTypes(),
|
|
51
|
-
])), tap(([instanceRes]) => {
|
|
52
|
-
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
53
|
-
this.pageSizes$.next(Object.assign(Object.assign({}, sizes), { collectionSize: instanceRes.totalElements }));
|
|
54
|
-
});
|
|
55
|
-
}), map(([instanceRes, typesRes]) => instanceRes.content.map(instance => {
|
|
56
|
-
var _a;
|
|
57
|
-
return Object.assign(Object.assign({}, instance), { typeName: (_a = typesRes.find(type => type.id === instance.type.id)) === null || _a === void 0 ? void 0 : _a.name });
|
|
58
|
-
})), tap(() => this.loading$.next(false)));
|
|
59
|
-
this.modalType$ = new BehaviorSubject('add');
|
|
60
|
-
}
|
|
61
|
-
ngOnDestroy() {
|
|
62
|
-
this.stateService.hideModal();
|
|
63
|
-
}
|
|
64
|
-
paginationClicked(newPageNumber) {
|
|
65
|
-
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
66
|
-
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { page: newPageNumber - 1 }));
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
paginationSet(newPageSize) {
|
|
70
|
-
if (newPageSize) {
|
|
71
|
-
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
72
|
-
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { size: newPageSize }));
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
rowClicked(instance) {
|
|
77
|
-
this.modalType$.next('modify');
|
|
78
|
-
this.stateService.setConnectorInstance(instance);
|
|
79
|
-
this.stateService.showModal();
|
|
80
|
-
}
|
|
81
|
-
showAddModal() {
|
|
82
|
-
this.modalType$.next('add');
|
|
83
|
-
this.stateService.showModal();
|
|
84
|
-
}
|
|
85
|
-
setFields() {
|
|
86
|
-
const getTranslatedLabel = (key) => this.translateService.instant(`connectorManagement.labels.${key}`);
|
|
87
|
-
const keys = ['name', 'typeName'];
|
|
88
|
-
this.fields$.next(keys.map(key => ({ label: getTranslatedLabel(key), key })));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
ConnectorManagementComponent.decorators = [
|
|
92
|
-
{ type: Component, args: [{
|
|
93
|
-
selector: 'valtimo-connector-management',
|
|
94
|
-
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<div\n class=\"main-content pt-0\"\n *ngIf=\"{\n connectorInstances: connectorInstances$ | async,\n fields: fields$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {loading: obs.loading}\"></ng-container>\n <valtimo-widget *ngIf=\"obs.loading === false; else loading\">\n <valtimo-list\n [items]=\"obs.connectorInstances\"\n [fields]=\"obs.fields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"connectorManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowClicked($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'connectorManagement.title' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'connectorManagement.subtitle' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-connector-modal [modalType]=\"modalType$ | async\"> </valtimo-connector-modal>\n\n<ng-template #buttons let-loading=\"loading\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-primary btn-space mr-0\" [disabled]=\"loading\" (click)=\"showAddModal()\">\n <i class=\"icon mdi mdi-plus\"></i> \n {{ 'connectorManagement.add' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n",
|
|
95
|
-
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 */"]
|
|
96
|
-
},] }
|
|
97
|
-
];
|
|
98
|
-
ConnectorManagementComponent.ctorParameters = () => [
|
|
99
|
-
{ type: ConnectorManagementService },
|
|
100
|
-
{ type: TranslateService },
|
|
101
|
-
{ type: ConnectorManagementStateService }
|
|
102
|
-
];
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1dvcmtzcGFjZS92YWx0aW1vL3ZhbHRpbW8tZnJvbnRlbmQtbGlicmFyaWVzL3Byb2plY3RzL3ZhbHRpbW8vY29ubmVjdG9yLW1hbmFnZW1lbnQvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29ubmVjdG9yLW1hbmFnZW1lbnQvY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVoRSxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDNUcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFPN0gsTUFBTSxPQUFPLDRCQUE0QjtJQXVEdkMsWUFDbUIsMEJBQXNELEVBQ3RELGdCQUFrQyxFQUNsQyxZQUE2QztRQUY3QywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWlDO1FBekR2RCxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFOUMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFzQyxFQUFFLENBQUMsQ0FBQztRQUV2RSx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBc0I7WUFDdEUsSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLEVBQUUsRUFBRTtTQUNULENBQUMsQ0FBQztRQUVNLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBc0I7WUFDN0QsY0FBYyxFQUFFLENBQUM7WUFDakIscUJBQXFCLEVBQUUsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFTSxnQkFBVyxHQUEyQixhQUFhLENBQUM7WUFDM0QsSUFBSSxDQUFDLG1CQUFtQjtZQUN4QixJQUFJLENBQUMsVUFBVTtTQUNoQixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FDRCxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FDdkIsQ0FBQyw4Q0FBSSxXQUFXLEdBQUssS0FBSyxLQUFFLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBZ0IsQ0FBQSxDQUN6RSxDQUNGLENBQUM7UUFFTyx3QkFBbUIsR0FBeUMsYUFBYSxDQUFDO1lBQ2pGLElBQUksQ0FBQyxtQkFBbUI7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRO1NBQzNCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUMzQixTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FDMUIsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLDBCQUEwQixDQUFDLHFCQUFxQixDQUFDO2dCQUNwRCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTthQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixFQUFFO1NBQ3BELENBQUMsQ0FDSCxFQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxpQ0FBSyxLQUFLLEtBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxhQUFhLElBQUUsQ0FBQztZQUM5RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FDOUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7O1lBQ2pDLHVDQUFXLFFBQVEsS0FBRSxRQUFRLFFBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsMENBQUUsSUFBSSxJQUFFO1FBQzVGLENBQUMsQ0FBQyxDQUNILEVBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3JDLENBQUM7UUFFTyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQWlCLEtBQUssQ0FBQyxDQUFDO0lBTTlELENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsYUFBYTtRQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxpQ0FBSyxXQUFXLEtBQUUsSUFBSSxFQUFFLGFBQWEsR0FBRyxDQUFDLElBQUUsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsV0FBVztRQUN2QixJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxpQ0FBSyxXQUFXLEtBQUUsSUFBSSxFQUFFLFdBQVcsSUFBRSxDQUFDO1lBQ3JFLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQTJCO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRSxNQUFNLElBQUksR0FBa0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQzs7O1lBcEdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4QywyMUVBQW9EOzthQUVyRDs7O1lBUE8sMEJBQTBCO1lBRDFCLGdCQUFnQjtZQUVoQiwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29ubmVjdG9ySW5zdGFuY2UsIFBhZ2luYXRpb24sIENvbm5lY3Rvck1vZGFsfSBmcm9tICdAdmFsdGltby9jb250cmFjdCc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Nvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25uZWN0b3ItbWFuYWdlbWVudC9jb25uZWN0b3ItbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q29ubmVjdG9yTWFuYWdlbWVudFN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29ubmVjdG9yLW1hbmFnZW1lbnQtc3RhdGUvY29ubmVjdG9yLW1hbmFnZW1lbnQtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tY29ubmVjdG9yLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25uZWN0b3ItbWFuYWdlbWVudC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0b3JNYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHJlYWRvbmx5IGZpZWxkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PHtrZXk6IHN0cmluZzsgbGFiZWw6IHN0cmluZ30+PihbXSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2VBbmRTaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFydGlhbDxQYWdpbmF0aW9uPj4oe1xuICAgIHBhZ2U6IDAsXG4gICAgc2l6ZTogMTAsXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2VTaXplcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8UGFnaW5hdGlvbj4+KHtcbiAgICBjb2xsZWN0aW9uU2l6ZTogMCxcbiAgICBtYXhQYWdpbmF0aW9uSXRlbVNpemU6IDUsXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHBhZ2luYXRpb24kOiBPYnNlcnZhYmxlPFBhZ2luYXRpb24+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMucGFnZVNpemVzJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW2N1cnJlbnRQYWdlLCBzaXplc10pID0+XG4gICAgICAgICh7Li4uY3VycmVudFBhZ2UsIC4uLnNpemVzLCBwYWdlOiBjdXJyZW50UGFnZS5wYWdlICsgMX0gYXMgUGFnaW5hdGlvbilcbiAgICApXG4gICk7XG5cbiAgcmVhZG9ubHkgY29ubmVjdG9ySW5zdGFuY2VzJDogT2JzZXJ2YWJsZTxBcnJheTxDb25uZWN0b3JJbnN0YW5jZT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleScpLFxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlZnJlc2gkLFxuICBdKS5waXBlKFxuICAgIHRhcCgoKSA9PiB0aGlzLnNldEZpZWxkcygpKSxcbiAgICBzd2l0Y2hNYXAoKFtjdXJyZW50UGFnZV0pID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5jb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZS5nZXRDb25uZWN0b3JJbnN0YW5jZXMoe1xuICAgICAgICAgIHBhZ2U6IGN1cnJlbnRQYWdlLnBhZ2UsXG4gICAgICAgICAgc2l6ZTogY3VycmVudFBhZ2Uuc2l6ZSxcbiAgICAgICAgfSksXG4gICAgICAgIHRoaXMuY29ubmVjdG9yTWFuYWdlbWVudFNlcnZpY2UuZ2V0Q29ubmVjdG9yVHlwZXMoKSxcbiAgICAgIF0pXG4gICAgKSxcbiAgICB0YXAoKFtpbnN0YW5jZVJlc10pID0+IHtcbiAgICAgIHRoaXMucGFnZVNpemVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzaXplcyA9PiB7XG4gICAgICAgIHRoaXMucGFnZVNpemVzJC5uZXh0KHsuLi5zaXplcywgY29sbGVjdGlvblNpemU6IGluc3RhbmNlUmVzLnRvdGFsRWxlbWVudHN9KTtcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIG1hcCgoW2luc3RhbmNlUmVzLCB0eXBlc1Jlc10pID0+XG4gICAgICBpbnN0YW5jZVJlcy5jb250ZW50Lm1hcChpbnN0YW5jZSA9PiB7XG4gICAgICAgIHJldHVybiB7Li4uaW5zdGFuY2UsIHR5cGVOYW1lOiB0eXBlc1Jlcy5maW5kKHR5cGUgPT4gdHlwZS5pZCA9PT0gaW5zdGFuY2UudHlwZS5pZCk/Lm5hbWV9O1xuICAgICAgfSlcbiAgICApLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHJlYWRvbmx5IG1vZGFsVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbm5lY3Rvck1vZGFsPignYWRkJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0b3JNYW5hZ2VtZW50U2VydmljZTogQ29ubmVjdG9yTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBDb25uZWN0b3JNYW5hZ2VtZW50U3RhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5oaWRlTW9kYWwoKTtcbiAgfVxuXG4gIHBhZ2luYXRpb25DbGlja2VkKG5ld1BhZ2VOdW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoY3VycmVudFBhZ2UgPT4ge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLm5leHQoey4uLmN1cnJlbnRQYWdlLCBwYWdlOiBuZXdQYWdlTnVtYmVyIC0gMX0pO1xuICAgIH0pO1xuICB9XG5cbiAgcGFnaW5hdGlvblNldChuZXdQYWdlU2l6ZSk6IHZvaWQge1xuICAgIGlmIChuZXdQYWdlU2l6ZSkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGN1cnJlbnRQYWdlID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLm5leHQoey4uLmN1cnJlbnRQYWdlLCBzaXplOiBuZXdQYWdlU2l6ZX0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcm93Q2xpY2tlZChpbnN0YW5jZTogQ29ubmVjdG9ySW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsVHlwZSQubmV4dCgnbW9kaWZ5Jyk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q29ubmVjdG9ySW5zdGFuY2UoaW5zdGFuY2UpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNob3dNb2RhbCgpO1xuICB9XG5cbiAgc2hvd0FkZE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxUeXBlJC5uZXh0KCdhZGQnKTtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zaG93TW9kYWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RmllbGRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGdldFRyYW5zbGF0ZWRMYWJlbCA9IChrZXk6IHN0cmluZykgPT5cbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBjb25uZWN0b3JNYW5hZ2VtZW50LmxhYmVscy4ke2tleX1gKTtcbiAgICBjb25zdCBrZXlzOiBBcnJheTxzdHJpbmc+ID0gWyduYW1lJywgJ3R5cGVOYW1lJ107XG4gICAgdGhpcy5maWVsZHMkLm5leHQoa2V5cy5tYXAoa2V5ID0+ICh7bGFiZWw6IGdldFRyYW5zbGF0ZWRMYWJlbChrZXkpLCBrZXl9KSkpO1xuICB9XG59XG4iXX0=
|
|
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 { TranslateService } from '@ngx-translate/core';
|
|
20
|
+
import { ConnectorManagementService } from '../../services/connector-management/connector-management.service';
|
|
21
|
+
import { ConnectorManagementStateService } from '../../services/connector-management-state/connector-management-state.service';
|
|
22
|
+
export class ConnectorManagementComponent {
|
|
23
|
+
constructor(connectorManagementService, translateService, stateService) {
|
|
24
|
+
this.connectorManagementService = connectorManagementService;
|
|
25
|
+
this.translateService = translateService;
|
|
26
|
+
this.stateService = stateService;
|
|
27
|
+
this.loading$ = new BehaviorSubject(true);
|
|
28
|
+
this.fields$ = new BehaviorSubject([]);
|
|
29
|
+
this.currentPageAndSize$ = new BehaviorSubject({
|
|
30
|
+
page: 0,
|
|
31
|
+
size: 10,
|
|
32
|
+
});
|
|
33
|
+
this.pageSizes$ = new BehaviorSubject({
|
|
34
|
+
collectionSize: 0,
|
|
35
|
+
maxPaginationItemSize: 5,
|
|
36
|
+
});
|
|
37
|
+
this.pagination$ = combineLatest([
|
|
38
|
+
this.currentPageAndSize$,
|
|
39
|
+
this.pageSizes$,
|
|
40
|
+
]).pipe(map(([currentPage, sizes]) => (Object.assign(Object.assign(Object.assign({}, currentPage), sizes), { page: currentPage.page + 1 }))));
|
|
41
|
+
this.connectorInstances$ = combineLatest([
|
|
42
|
+
this.currentPageAndSize$,
|
|
43
|
+
this.translateService.stream('key'),
|
|
44
|
+
this.stateService.refresh$,
|
|
45
|
+
]).pipe(tap(() => this.setFields()), switchMap(([currentPage]) => combineLatest([
|
|
46
|
+
this.connectorManagementService.getConnectorInstances({
|
|
47
|
+
page: currentPage.page,
|
|
48
|
+
size: currentPage.size,
|
|
49
|
+
}),
|
|
50
|
+
this.connectorManagementService.getConnectorTypes(),
|
|
51
|
+
])), tap(([instanceRes]) => {
|
|
52
|
+
this.pageSizes$.pipe(take(1)).subscribe(sizes => {
|
|
53
|
+
this.pageSizes$.next(Object.assign(Object.assign({}, sizes), { collectionSize: instanceRes.totalElements }));
|
|
54
|
+
});
|
|
55
|
+
}), map(([instanceRes, typesRes]) => instanceRes.content.map(instance => {
|
|
56
|
+
var _a;
|
|
57
|
+
return Object.assign(Object.assign({}, instance), { typeName: (_a = typesRes.find(type => type.id === instance.type.id)) === null || _a === void 0 ? void 0 : _a.name });
|
|
58
|
+
})), tap(() => this.loading$.next(false)));
|
|
59
|
+
this.modalType$ = new BehaviorSubject('add');
|
|
60
|
+
}
|
|
61
|
+
ngOnDestroy() {
|
|
62
|
+
this.stateService.hideModal();
|
|
63
|
+
}
|
|
64
|
+
paginationClicked(newPageNumber) {
|
|
65
|
+
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
66
|
+
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { page: newPageNumber - 1 }));
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
paginationSet(newPageSize) {
|
|
70
|
+
if (newPageSize) {
|
|
71
|
+
this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {
|
|
72
|
+
this.currentPageAndSize$.next(Object.assign(Object.assign({}, currentPage), { size: newPageSize }));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
rowClicked(instance) {
|
|
77
|
+
this.modalType$.next('modify');
|
|
78
|
+
this.stateService.setConnectorInstance(instance);
|
|
79
|
+
this.stateService.showModal();
|
|
80
|
+
}
|
|
81
|
+
showAddModal() {
|
|
82
|
+
this.modalType$.next('add');
|
|
83
|
+
this.stateService.showModal();
|
|
84
|
+
}
|
|
85
|
+
setFields() {
|
|
86
|
+
const getTranslatedLabel = (key) => this.translateService.instant(`connectorManagement.labels.${key}`);
|
|
87
|
+
const keys = ['name', 'typeName'];
|
|
88
|
+
this.fields$.next(keys.map(key => ({ label: getTranslatedLabel(key), key })));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
ConnectorManagementComponent.decorators = [
|
|
92
|
+
{ type: Component, args: [{
|
|
93
|
+
selector: 'valtimo-connector-management',
|
|
94
|
+
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<div\n class=\"main-content pt-0\"\n *ngIf=\"{\n connectorInstances: connectorInstances$ | async,\n fields: fields$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {loading: obs.loading}\"></ng-container>\n <valtimo-widget *ngIf=\"obs.loading === false; else loading\">\n <valtimo-list\n [items]=\"obs.connectorInstances\"\n [fields]=\"obs.fields\"\n [header]=\"true\"\n [viewMode]=\"true\"\n [isSearchable]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"connectorManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"rowClicked($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'connectorManagement.title' | translate }}</h3>\n <h5 class=\"list-header-description\">{{ 'connectorManagement.subtitle' | translate }}</h5>\n </div>\n </valtimo-list>\n </valtimo-widget>\n </div>\n</div>\n\n<valtimo-connector-modal [modalType]=\"modalType$ | async\"> </valtimo-connector-modal>\n\n<ng-template #buttons let-loading=\"loading\">\n <div class=\"btn-group mt-m3px mb-3 float-right\">\n <button class=\"btn btn-primary btn-space mr-0\" [disabled]=\"loading\" (click)=\"showAddModal()\">\n <i class=\"icon mdi mdi-plus\"></i> \n {{ 'connectorManagement.add' | translate }}\n </button>\n </div>\n <div class=\"clearfix\"></div>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n",
|
|
95
|
+
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 */"]
|
|
96
|
+
},] }
|
|
97
|
+
];
|
|
98
|
+
ConnectorManagementComponent.ctorParameters = () => [
|
|
99
|
+
{ type: ConnectorManagementService },
|
|
100
|
+
{ type: TranslateService },
|
|
101
|
+
{ type: ConnectorManagementStateService }
|
|
102
|
+
];
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii90bXAvamVua2lucy0zZmYzYTE5YS93b3Jrc3BhY2Uvcm9udGVuZF9saWJyYXJpZXNfLV9yZWxlYXNlX21haW4vcHJvamVjdHMvdmFsdGltby9jb25uZWN0b3ItbWFuYWdlbWVudC9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jb25uZWN0b3ItbWFuYWdlbWVudC9jb25uZWN0b3ItbWFuYWdlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUM1RyxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQVE3SCxNQUFNLE9BQU8sNEJBQTRCO0lBdUR2QyxZQUNtQiwwQkFBc0QsRUFDdEQsZ0JBQWtDLEVBQ2xDLFlBQTZDO1FBRjdDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBNEI7UUFDdEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBaUM7UUF6RHZELGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUU5QyxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQXNDLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFzQjtZQUN0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b0Q7O2FBRXJEOzs7WUFSTywwQkFBMEI7WUFEMUIsZ0JBQWdCO1lBRWhCLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIwIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb25uZWN0b3JJbnN0YW5jZSwgQ29ubmVjdG9yTW9kYWx9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Nvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25uZWN0b3ItbWFuYWdlbWVudC9jb25uZWN0b3ItbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q29ubmVjdG9yTWFuYWdlbWVudFN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29ubmVjdG9yLW1hbmFnZW1lbnQtc3RhdGUvY29ubmVjdG9yLW1hbmFnZW1lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge1BhZ2luYXRpb259IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWNvbm5lY3Rvci1tYW5hZ2VtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nvbm5lY3Rvci1tYW5hZ2VtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29ubmVjdG9yLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29ubmVjdG9yTWFuYWdlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICByZWFkb25seSBmaWVsZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTx7a2V5OiBzdHJpbmc7IGxhYmVsOiBzdHJpbmd9Pj4oW10pO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlQW5kU2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8UGFnaW5hdGlvbj4+KHtcbiAgICBwYWdlOiAwLFxuICAgIHNpemU6IDEwLFxuICB9KTtcblxuICByZWFkb25seSBwYWdlU2l6ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgY29sbGVjdGlvblNpemU6IDAsXG4gICAgbWF4UGFnaW5hdGlvbkl0ZW1TaXplOiA1LFxuICB9KTtcblxuICByZWFkb25seSBwYWdpbmF0aW9uJDogT2JzZXJ2YWJsZTxQYWdpbmF0aW9uPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJCxcbiAgICB0aGlzLnBhZ2VTaXplcyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKFxuICAgICAgKFtjdXJyZW50UGFnZSwgc2l6ZXNdKSA9PlxuICAgICAgICAoey4uLmN1cnJlbnRQYWdlLCAuLi5zaXplcywgcGFnZTogY3VycmVudFBhZ2UucGFnZSArIDF9IGFzIFBhZ2luYXRpb24pXG4gICAgKVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbm5lY3Rvckluc3RhbmNlcyQ6IE9ic2VydmFibGU8QXJyYXk8Q29ubmVjdG9ySW5zdGFuY2U+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgICB0aGlzLnN0YXRlU2VydmljZS5yZWZyZXNoJCxcbiAgXSkucGlwZShcbiAgICB0YXAoKCkgPT4gdGhpcy5zZXRGaWVsZHMoKSksXG4gICAgc3dpdGNoTWFwKChbY3VycmVudFBhZ2VdKSA9PlxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuY29ubmVjdG9yTWFuYWdlbWVudFNlcnZpY2UuZ2V0Q29ubmVjdG9ySW5zdGFuY2VzKHtcbiAgICAgICAgICBwYWdlOiBjdXJyZW50UGFnZS5wYWdlLFxuICAgICAgICAgIHNpemU6IGN1cnJlbnRQYWdlLnNpemUsXG4gICAgICAgIH0pLFxuICAgICAgICB0aGlzLmNvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlLmdldENvbm5lY3RvclR5cGVzKCksXG4gICAgICBdKVxuICAgICksXG4gICAgdGFwKChbaW5zdGFuY2VSZXNdKSA9PiB7XG4gICAgICB0aGlzLnBhZ2VTaXplcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc2l6ZXMgPT4ge1xuICAgICAgICB0aGlzLnBhZ2VTaXplcyQubmV4dCh7Li4uc2l6ZXMsIGNvbGxlY3Rpb25TaXplOiBpbnN0YW5jZVJlcy50b3RhbEVsZW1lbnRzfSk7XG4gICAgICB9KTtcbiAgICB9KSxcbiAgICBtYXAoKFtpbnN0YW5jZVJlcywgdHlwZXNSZXNdKSA9PlxuICAgICAgaW5zdGFuY2VSZXMuY29udGVudC5tYXAoaW5zdGFuY2UgPT4ge1xuICAgICAgICByZXR1cm4gey4uLmluc3RhbmNlLCB0eXBlTmFtZTogdHlwZXNSZXMuZmluZCh0eXBlID0+IHR5cGUuaWQgPT09IGluc3RhbmNlLnR5cGUuaWQpPy5uYW1lfTtcbiAgICAgIH0pXG4gICAgKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKSlcbiAgKTtcblxuICByZWFkb25seSBtb2RhbFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25uZWN0b3JNb2RhbD4oJ2FkZCcpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdG9yTWFuYWdlbWVudFNlcnZpY2U6IENvbm5lY3Rvck1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ29ubmVjdG9yTWFuYWdlbWVudFN0YXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuaGlkZU1vZGFsKCk7XG4gIH1cblxuICBwYWdpbmF0aW9uQ2xpY2tlZChuZXdQYWdlTnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGN1cnJlbnRQYWdlID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgcGFnZTogbmV3UGFnZU51bWJlciAtIDF9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhZ2luYXRpb25TZXQobmV3UGFnZVNpemUpOiB2b2lkIHtcbiAgICBpZiAobmV3UGFnZVNpemUpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5uZXh0KHsuLi5jdXJyZW50UGFnZSwgc2l6ZTogbmV3UGFnZVNpemV9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJvd0NsaWNrZWQoaW5zdGFuY2U6IENvbm5lY3Rvckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbFR5cGUkLm5leHQoJ21vZGlmeScpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldENvbm5lY3Rvckluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5zaG93TW9kYWwoKTtcbiAgfVxuXG4gIHNob3dBZGRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsVHlwZSQubmV4dCgnYWRkJyk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2hvd01vZGFsKCk7XG4gIH1cblxuICBwcml2YXRlIHNldEZpZWxkcygpOiB2b2lkIHtcbiAgICBjb25zdCBnZXRUcmFuc2xhdGVkTGFiZWwgPSAoa2V5OiBzdHJpbmcpID0+XG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgY29ubmVjdG9yTWFuYWdlbWVudC5sYWJlbHMuJHtrZXl9YCk7XG4gICAgY29uc3Qga2V5czogQXJyYXk8c3RyaW5nPiA9IFsnbmFtZScsICd0eXBlTmFtZSddO1xuICAgIHRoaXMuZmllbGRzJC5uZXh0KGtleXMubWFwKGtleSA9PiAoe2xhYmVsOiBnZXRUcmFuc2xhdGVkTGFiZWwoa2V5KSwga2V5fSkpKTtcbiAgfVxufVxuIl19
|