@c8y/ngx-components 1011.0.25 → 1011.0.28
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/binary-file-download/binary-file-download.service.d.ts +3 -3
- package/binary-file-download/c8y-ngx-components-binary-file-download.metadata.json +1 -1
- package/bundles/c8y-ngx-components-binary-file-download.umd.js +17 -14
- package/bundles/c8y-ngx-components-binary-file-download.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-binary-file-download.umd.min.js +2 -2
- package/bundles/c8y-ngx-components-binary-file-download.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-protocol-lpwan.umd.js +15 -7
- package/bundles/c8y-ngx-components-protocol-lpwan.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-protocol-lpwan.umd.min.js +2 -2
- package/bundles/c8y-ngx-components-protocol-lpwan.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +1 -1
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +1 -1
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.metadata.json +1 -1
- package/esm2015/binary-file-download/binary-file-download.service.js +15 -13
- package/esm2015/core/select/typeahead.component.js +2 -2
- package/esm2015/protocol-lpwan/lpwan-set-device-protocol.component.js +10 -3
- package/esm2015/protocol-lpwan/lpwan-set-device-protocol.service.js +6 -5
- package/fesm2015/c8y-ngx-components-binary-file-download.js +14 -12
- package/fesm2015/c8y-ngx-components-binary-file-download.js.map +1 -1
- package/fesm2015/c8y-ngx-components-protocol-lpwan.js +14 -6
- package/fesm2015/c8y-ngx-components-protocol-lpwan.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +1 -1
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/locales/locales.pot +6 -3
- package/package.json +2 -2
- package/protocol-lpwan/c8y-ngx-components-protocol-lpwan.metadata.json +1 -1
- package/protocol-lpwan/lpwan-set-device-protocol.component.d.ts +3 -1
|
@@ -19,9 +19,8 @@ export class BinaryFileDownloadService {
|
|
|
19
19
|
}
|
|
20
20
|
run() {
|
|
21
21
|
this.router.events
|
|
22
|
-
.pipe(filter(
|
|
23
|
-
return event instanceof NavigationEnd
|
|
24
|
-
&& this.route.snapshot.queryParams.download;
|
|
22
|
+
.pipe(filter(event => {
|
|
23
|
+
return event instanceof NavigationEnd && this.route.snapshot.queryParams.download;
|
|
25
24
|
}), map(() => this.route.snapshot.queryParams.download))
|
|
26
25
|
.subscribe((downloadId) => __awaiter(this, void 0, void 0, function* () {
|
|
27
26
|
try {
|
|
@@ -39,32 +38,35 @@ export class BinaryFileDownloadService {
|
|
|
39
38
|
}
|
|
40
39
|
}));
|
|
41
40
|
}
|
|
42
|
-
showDownloadModal(
|
|
41
|
+
showDownloadModal(binaryMo) {
|
|
43
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
43
|
try {
|
|
45
|
-
const modalBody = this.translate.instant(gettext('You are about to download file "{{ fileName }}". Do you want to proceed?'), { fileName:
|
|
46
|
-
yield this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
const modalBody = this.translate.instant(gettext('You are about to download file "{{ fileName }}". Do you want to proceed?'), { fileName: binaryMo.name });
|
|
45
|
+
yield this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {
|
|
46
|
+
ok: gettext('Download')
|
|
47
|
+
});
|
|
48
|
+
const arrayBuffer = yield this.getArrayBuffer(binaryMo.id);
|
|
49
|
+
const fileBinary = new File([arrayBuffer], binaryMo.name, { type: binaryMo.contentType });
|
|
49
50
|
saveAs(fileBinary);
|
|
50
51
|
}
|
|
51
52
|
catch (e) {
|
|
52
53
|
// empty body :(
|
|
54
|
+
console.log({ e });
|
|
53
55
|
}
|
|
54
56
|
});
|
|
55
57
|
}
|
|
56
|
-
|
|
58
|
+
getArrayBuffer(binaryId) {
|
|
57
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
-
let
|
|
60
|
+
let arrayBuffer;
|
|
59
61
|
try {
|
|
60
62
|
const res = yield this.inventoryBinary.download(binaryId);
|
|
61
|
-
|
|
63
|
+
arrayBuffer = yield res.arrayBuffer();
|
|
62
64
|
}
|
|
63
65
|
catch (ex) {
|
|
64
66
|
const msg = gettext('Could not get the binary.');
|
|
65
67
|
this.alertService.danger(msg);
|
|
66
68
|
}
|
|
67
|
-
return
|
|
69
|
+
return arrayBuffer;
|
|
68
70
|
});
|
|
69
71
|
}
|
|
70
72
|
}
|
|
@@ -80,4 +82,4 @@ BinaryFileDownloadService.ctorParameters = () => [
|
|
|
80
82
|
{ type: TranslateService },
|
|
81
83
|
{ type: InventoryBinaryService }
|
|
82
84
|
];
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LWZpbGUtZG93bmxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2JpbmFyeS1maWxlLWRvd25sb2FkL2JpbmFyeS1maWxlLWRvd25sb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQWtCLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUNVLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsZUFBdUM7UUFOdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQXdCO0lBQzlDLENBQUM7SUFF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Ozs7WUFSRixNQUFNO1lBQWlCLGNBQWM7WUFFRyxnQkFBZ0I7WUFDeEQsWUFBWTtZQUFXLFlBQVk7WUFHbkMsZ0JBQWdCO1lBSkEsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlCaW5hcnlTZXJ2aWNlLCBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0LCBNb2RhbFNlcnZpY2UsIFN0YXR1cyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCaW5hcnlGaWxlRG93bmxvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW52ZW50b3J5QmluYXJ5OiBJbnZlbnRvcnlCaW5hcnlTZXJ2aWNlXG4gICkge31cblxuICBydW4oKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICByZXR1cm4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kICYmIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMuZG93bmxvYWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5kb3dubG9hZClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgZG93bmxvYWRJZCA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKGRvd25sb2FkSWQpO1xuICAgICAgICAgIGlmICghaXNVbmRlZmluZWQoZGF0YS5jOHlfSXNCaW5hcnkpKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dEb3dubG9hZE1vZGFsKGRhdGEpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhbGVydE1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICAgICAgICdDb3VsZCBub3QgZG93bmxvYWQgdGhlIGZpbGU6IG9iamVjdCB3aXRoIElEIFwie3sgaWQgfX1cIiBpcyBub3QgYSB2YWxpZCBiaW5hcnkuJ1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB7IGlkOiBkYXRhLmlkIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoYWxlcnRNZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc2hvd0Rvd25sb2FkTW9kYWwoYmluYXJ5TW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vZGFsQm9keSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgIGdldHRleHQoJ1lvdSBhcmUgYWJvdXQgdG8gZG93bmxvYWQgZmlsZSBcInt7IGZpbGVOYW1lIH19XCIuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/JyksXG4gICAgICAgIHsgZmlsZU5hbWU6IGJpbmFyeU1vLm5hbWUgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm0oZ2V0dGV4dCgnRmlsZSBkb3dubG9hZCcpLCBtb2RhbEJvZHksIFN0YXR1cy5JTkZPLCB7XG4gICAgICAgIG9rOiBnZXR0ZXh0KCdEb3dubG9hZCcpXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgdGhpcy5nZXRBcnJheUJ1ZmZlcihiaW5hcnlNby5pZCk7XG4gICAgICBjb25zdCBmaWxlQmluYXJ5ID0gbmV3IEZpbGUoW2FycmF5QnVmZmVyXSwgYmluYXJ5TW8ubmFtZSwgeyB0eXBlOiBiaW5hcnlNby5jb250ZW50VHlwZSB9KTtcbiAgICAgIHNhdmVBcyhmaWxlQmluYXJ5KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBlbXB0eSBib2R5IDooXG4gICAgICBjb25zb2xlLmxvZyh7IGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBcnJheUJ1ZmZlcihiaW5hcnlJZCk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgICBsZXQgYXJyYXlCdWZmZXI6IEFycmF5QnVmZmVyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmludmVudG9yeUJpbmFyeS5kb3dubG9hZChiaW5hcnlJZCk7XG4gICAgICBhcnJheUJ1ZmZlciA9IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBjb25zdCBtc2cgPSBnZXR0ZXh0KCdDb3VsZCBub3QgZ2V0IHRoZSBiaW5hcnkuJyk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIobXNnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlCdWZmZXI7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -119,7 +119,7 @@ export class TypeaheadComponent {
|
|
|
119
119
|
TypeaheadComponent.decorators = [
|
|
120
120
|
{ type: Component, args: [{
|
|
121
121
|
selector: 'c8y-typeahead',
|
|
122
|
-
template: "<div\n class=\"c8y-child-assets-selector dropdown\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
|
|
122
|
+
template: "<div\n class=\"c8y-child-assets-selector dropdown fit-w\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
|
|
123
123
|
providers: [
|
|
124
124
|
{
|
|
125
125
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -151,4 +151,4 @@ TypeaheadComponent.propDecorators = {
|
|
|
151
151
|
onSearch: [{ type: Output }],
|
|
152
152
|
onIconClick: [{ type: Output }]
|
|
153
153
|
};
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VsZWN0L3R5cGVhaGVhZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUdULFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpFLE1BQU0sT0FBTyxrQkFBa0I7SUFoQi9CO1FBc0JFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFNakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFHakMsU0FBSSxHQUFXLFlBQVksQ0FBQztRQUc1QixTQUFJLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUdwQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBRzVCLGFBQVEsR0FBZ0I7WUFDdEIsRUFBRSxFQUFFLElBQUk7U0FDVCxDQUFDO1FBR0YsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHdEMs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O3VCQUM1QyxTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTttQkFDdkMsZUFBZSxTQUFDLGlCQUFpQjt1QkFFakMsS0FBSzt1QkFHTCxLQUFLOytCQUdMLEtBQUs7MEJBR0wsS0FBSzs4QkFHTCxLQUFLO21CQUdMLEtBQUs7bUJBR0wsS0FBSzt3QkFHTCxLQUFLO3dCQUdMLEtBQUs7dUJBR0wsS0FBSzt1QkFLTCxNQUFNOzBCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUlkZW50aWZpZWQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBmaW5kSW5kZXgsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXR5cGVhaGVhZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90eXBlYWhlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHlwZWFoZWFkQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR5cGVhaGVhZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUeXBlYWhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWFyY2hDb250cm9sOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbUNvbXBvbmVudCkgbGlzdDogUXVlcnlMaXN0PExpc3RJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWxsb3dGcmVlRW50cmllczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5UHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcblxuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmcgPSAnY2FyZXQtZG93bic7XG5cbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nID0gdGhpcy5kaXNwbGF5UHJvcGVydHk7XG5cbiAgQElucHV0KClcbiAgYXV0b0Nsb3NlOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBjb250YWluZXI6ICcnIHwgJ2JvZHknID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0ZWQ6IElJZGVudGlmaWVkID0ge1xuICAgIGlkOiBudWxsXG4gIH07XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvbkNoYW5nZTogKG5hbWUpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9VUCA9IDM4O1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfRE9XTiA9IDQwO1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfVEFCID0gOTtcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VOVEVSID0gMTM7XG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9FU0MgPSAyNztcblxuICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBkb0JsdXIoKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldERpc3BsYXlQcm9wZXJ0eSgpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMuc2VsZWN0ZWQsIHRoaXMuZGlzcGxheVByb3BlcnR5LCAnJyk7XG4gIH1cblxuICBvblNob3duKCkge1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChlOiBhbnkpID0+IHRoaXMuaGFuZGxlS2V5Ym9hcmQoZSkpLFxuICAgICAgICBmaWx0ZXIoKGU6IGFueSkgPT4gZSksXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICBtYXAoKGU6IGFueSkgPT4gZS50YXJnZXQudmFsdWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHtcbiAgICAgICAgICBpZDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBzZXQodGhpcy5zZWxlY3RlZCwgdGhpcy5kaXNwbGF5UHJvcGVydHksIHZhbHVlIHx8ICcnKTtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVLZXlib2FyZChldmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGlmIChcbiAgICAgIFt0aGlzLktFWUNPREVfRU5URVIsIHRoaXMuS0VZQ09ERV9ET1dOLCB0aGlzLktFWUNPREVfVEFCLCB0aGlzLktFWUNPREVfVVBdLmluY2x1ZGVzKGtleUNvZGUpXG4gICAgKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubGlzdC50b0FycmF5KCk7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleChpdGVtcywgaXRlbSA9PiBpdGVtLmFjdGl2ZSk7XG4gICAgICBpZiAoa2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0VOVEVSIHx8IGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9UQUIpIHtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGl0ZW1zW2luZGV4XS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5zaG93KCk7XG4gICAgICAgIGNvbnN0IHVwT3JEb3duID0ga2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0RPV04gPyAxIDogLTE7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgaXRlbXNbaW5kZXhdLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0TmV4dEl0ZW1PbktleWJvYXJkTW92ZShpdGVtcywgaW5kZXgsIHVwT3JEb3duKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9FU0MgJiYgdGhpcy5hdXRvQ2xvc2UpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5kcm9wZG93bi5oaWRlKCk7XG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2wubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd24uc2hvdygpO1xuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cblxuICB2YWxpZGF0ZShjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5nZXREaXNwbGF5UHJvcGVydHkoKSkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWxsb3dGcmVlRW50cmllcyAmJiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaWQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IG5vdEV4aXN0aW5nOiB0cnVlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXM6IExpc3RJdGVtQ29tcG9uZW50W10sIGluZGV4OiBhbnksIHVwT3JEb3duOiBudW1iZXIpIHtcbiAgICBpZiAoaXRlbXNbaW5kZXggKyB1cE9yRG93bl0pIHtcbiAgICAgIGlmICghaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uc2VsZWN0YWJsZSkge1xuICAgICAgICB0aGlzLnNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXMsIGluZGV4ICsgdXBPckRvd24sIHVwT3JEb3duKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VsZWN0L3R5cGVhaGVhZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUdULFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpFLE1BQU0sT0FBTyxrQkFBa0I7SUFoQi9CO1FBc0JFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFNakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFHakMsU0FBSSxHQUFXLFlBQVksQ0FBQztRQUc1QixTQUFJLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUdwQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBRzVCLGFBQVEsR0FBZ0I7WUFDdEIsRUFBRSxFQUFFLElBQUk7U0FDVCxDQUFDO1FBR0YsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHdEMs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O3VCQUM1QyxTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTttQkFDdkMsZUFBZSxTQUFDLGlCQUFpQjt1QkFFakMsS0FBSzt1QkFHTCxLQUFLOytCQUdMLEtBQUs7MEJBR0wsS0FBSzs4QkFHTCxLQUFLO21CQUdMLEtBQUs7bUJBR0wsS0FBSzt3QkFHTCxLQUFLO3dCQUdMLEtBQUs7dUJBR0wsS0FBSzt1QkFLTCxNQUFNOzBCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUlkZW50aWZpZWQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBmaW5kSW5kZXgsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXR5cGVhaGVhZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90eXBlYWhlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHlwZWFoZWFkQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR5cGVhaGVhZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUeXBlYWhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWFyY2hDb250cm9sOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbUNvbXBvbmVudCkgbGlzdDogUXVlcnlMaXN0PExpc3RJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWxsb3dGcmVlRW50cmllczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5UHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcblxuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmcgPSAnY2FyZXQtZG93bic7XG5cbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nID0gdGhpcy5kaXNwbGF5UHJvcGVydHk7XG5cbiAgQElucHV0KClcbiAgYXV0b0Nsb3NlOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBjb250YWluZXI6ICcnIHwgJ2JvZHknID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0ZWQ6IElJZGVudGlmaWVkID0ge1xuICAgIGlkOiBudWxsXG4gIH07XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvbkNoYW5nZTogKG5hbWUpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9VUCA9IDM4O1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfRE9XTiA9IDQwO1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfVEFCID0gOTtcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VOVEVSID0gMTM7XG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9FU0MgPSAyNztcblxuICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBkb0JsdXIoKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldERpc3BsYXlQcm9wZXJ0eSgpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMuc2VsZWN0ZWQsIHRoaXMuZGlzcGxheVByb3BlcnR5LCAnJyk7XG4gIH1cblxuICBvblNob3duKCkge1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChlOiBhbnkpID0+IHRoaXMuaGFuZGxlS2V5Ym9hcmQoZSkpLFxuICAgICAgICBmaWx0ZXIoKGU6IGFueSkgPT4gZSksXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICBtYXAoKGU6IGFueSkgPT4gZS50YXJnZXQudmFsdWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHtcbiAgICAgICAgICBpZDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBzZXQodGhpcy5zZWxlY3RlZCwgdGhpcy5kaXNwbGF5UHJvcGVydHksIHZhbHVlIHx8ICcnKTtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVLZXlib2FyZChldmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGlmIChcbiAgICAgIFt0aGlzLktFWUNPREVfRU5URVIsIHRoaXMuS0VZQ09ERV9ET1dOLCB0aGlzLktFWUNPREVfVEFCLCB0aGlzLktFWUNPREVfVVBdLmluY2x1ZGVzKGtleUNvZGUpXG4gICAgKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubGlzdC50b0FycmF5KCk7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleChpdGVtcywgaXRlbSA9PiBpdGVtLmFjdGl2ZSk7XG4gICAgICBpZiAoa2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0VOVEVSIHx8IGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9UQUIpIHtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGl0ZW1zW2luZGV4XS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5zaG93KCk7XG4gICAgICAgIGNvbnN0IHVwT3JEb3duID0ga2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0RPV04gPyAxIDogLTE7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgaXRlbXNbaW5kZXhdLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0TmV4dEl0ZW1PbktleWJvYXJkTW92ZShpdGVtcywgaW5kZXgsIHVwT3JEb3duKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9FU0MgJiYgdGhpcy5hdXRvQ2xvc2UpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5kcm9wZG93bi5oaWRlKCk7XG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2wubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd24uc2hvdygpO1xuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cblxuICB2YWxpZGF0ZShjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5nZXREaXNwbGF5UHJvcGVydHkoKSkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWxsb3dGcmVlRW50cmllcyAmJiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaWQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IG5vdEV4aXN0aW5nOiB0cnVlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXM6IExpc3RJdGVtQ29tcG9uZW50W10sIGluZGV4OiBhbnksIHVwT3JEb3duOiBudW1iZXIpIHtcbiAgICBpZiAoaXRlbXNbaW5kZXggKyB1cE9yRG93bl0pIHtcbiAgICAgIGlmICghaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uc2VsZWN0YWJsZSkge1xuICAgICAgICB0aGlzLnNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXMsIGluZGV4ICsgdXBPckRvd24sIHVwT3JEb3duKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -12,13 +12,20 @@ export class LpwanAssignDeviceProtocolComponent {
|
|
|
12
12
|
this.alertService = alertService;
|
|
13
13
|
this.router = router;
|
|
14
14
|
this.inventoryService = inventoryService;
|
|
15
|
-
this.
|
|
15
|
+
this.filterProtocols = pipe();
|
|
16
|
+
this.pattern = '';
|
|
16
17
|
}
|
|
17
18
|
ngOnInit() {
|
|
18
19
|
return __awaiter(this, void 0, void 0, function* () {
|
|
19
20
|
yield this.reload();
|
|
21
|
+
this.setPipe('');
|
|
20
22
|
});
|
|
21
23
|
}
|
|
24
|
+
setPipe(filterStr) {
|
|
25
|
+
this.pattern = filterStr;
|
|
26
|
+
this.filterProtocols = pipe(map((protocols) => protocols.filter(protocol => (!this.currentProtocol || this.currentProtocol.id !== protocol.id) &&
|
|
27
|
+
(!filterStr || protocol.name.toLowerCase().indexOf(filterStr.toLowerCase()) > -1))));
|
|
28
|
+
}
|
|
22
29
|
reload() {
|
|
23
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
31
|
this.loading = true;
|
|
@@ -73,7 +80,7 @@ export class LpwanAssignDeviceProtocolComponent {
|
|
|
73
80
|
LpwanAssignDeviceProtocolComponent.decorators = [
|
|
74
81
|
{ type: Component, args: [{
|
|
75
82
|
selector: 'set-device-protocol',
|
|
76
|
-
template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\" class=\"row\">\n
|
|
83
|
+
template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"card card--fullpage\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\">\n {{ 'LPWAN device protocol' | translate }}\n </h4>\n </div>\n <div class=\"p-16\">\n <div *ngIf=\"loading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!loading\">\n <div class=\"form-group\">\n <label translate>Current device protocol</label>\n <p class=\"form-control-static\" *ngIf=\"!currentProtocol\">\n {{ device.type }}\n </p>\n <p class=\"form-control-static\" *ngIf=\"currentProtocol\">\n {{ currentProtocol.name }}\n </p>\n </div>\n <c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"newProtocol\"\n placeholder=\"{{ 'Select new device protocol' | translate }}\"\n (onSearch)=\"setPipe($event)\"\n name=\"newProtocol\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n *c8yFor=\"\n let protocol of availableProtocols;\n loadMore: 'hidden';\n pipe: filterProtocols\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"newProtocol = protocol; setPipe('')\"\n >\n <c8y-highlight [text]=\"protocol.name\" [pattern]=\"pattern\"></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the protocols.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"apply(newProtocol)\"\n [disabled]=\"!newProtocol\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</form>\n"
|
|
77
84
|
},] }
|
|
78
85
|
];
|
|
79
86
|
LpwanAssignDeviceProtocolComponent.ctorParameters = () => [
|
|
@@ -85,4 +92,4 @@ LpwanAssignDeviceProtocolComponent.ctorParameters = () => [
|
|
|
85
92
|
LpwanAssignDeviceProtocolComponent.propDecorators = {
|
|
86
93
|
lpwanSetDeviceProtocolForm: [{ type: ViewChild, args: ['lpwanSetDeviceProtocolForm', { static: false },] }]
|
|
87
94
|
};
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm90b2NvbC1scHdhbi9scHdhbi1zZXQtZGV2aWNlLXByb3RvY29sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQWtCLGdCQUFnQixFQUFlLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9yQyxNQUFNLE9BQU8sa0NBQWtDO0lBWTdDLFlBQ1UsWUFBMkMsRUFDM0MsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLGdCQUFrQztRQUhsQyxpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0MsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFUNUMsb0JBQWUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQUcsRUFBRSxDQUFDO0lBU1QsQ0FBQztJQUNDLFFBQVE7O1lBQ1osTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQixDQUFDO0tBQUE7SUFFRCxPQUFPLENBQUMsU0FBaUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FB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WTtZQUVaLE1BQU07WUFEVSxnQkFBZ0I7Ozt5Q0FvQnRDLFNBQVMsU0FBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMcHdhblNldERldmljZVByb3RvY29sU2VydmljZSB9IGZyb20gJy4vbHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2V0LWRldmljZS1wcm90b2NvbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9scHdhbi1zZXQtZGV2aWNlLXByb3RvY29sLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIExwd2FuQXNzaWduRGV2aWNlUHJvdG9jb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuICBjdXJyZW50UHJvdG9jb2w6IElNYW5hZ2VkT2JqZWN0O1xuICBhdmFpbGFibGVQcm90b2NvbHM6IElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0PjtcbiAgbmV3UHJvdG9jb2w6IElNYW5hZ2VkT2JqZWN0O1xuXG4gIGZpbHRlclByb3RvY29scyA9IHBpcGUoKTtcbiAgcGF0dGVybiA9ICcnO1xuXG4gIEBWaWV3Q2hpbGQoJ2xwd2FuU2V0RGV2aWNlUHJvdG9jb2xGb3JtJywgeyBzdGF0aWM6IGZhbHNlIH0pIGxwd2FuU2V0RGV2aWNlUHJvdG9jb2xGb3JtOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBscHdhblNlcnZpY2U6IExwd2FuU2V0RGV2aWNlUHJvdG9jb2xTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2VcbiAgKSB7IH1cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICB9XG5cbiAgc2V0UGlwZShmaWx0ZXJTdHI6IHN0cmluZykge1xuICAgIHRoaXMucGF0dGVybiA9IGZpbHRlclN0cjtcbiAgICB0aGlzLmZpbHRlclByb3RvY29scyA9IHBpcGUoXG4gICAgICBtYXAoKHByb3RvY29sczogSU1hbmFnZWRPYmplY3RbXSkgPT5cbiAgICAgICAgcHJvdG9jb2xzLmZpbHRlcihcbiAgICAgICAgICBwcm90b2NvbCA9PlxuICAgICAgICAgICAgKCF0aGlzLmN1cnJlbnRQcm90b2NvbCB8fCB0aGlzLmN1cnJlbnRQcm90b2NvbC5pZCAhPT0gcHJvdG9jb2wuaWQpICYmXG4gICAgICAgICAgICAoIWZpbHRlclN0ciB8fCBwcm90b2NvbC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJTdHIudG9Mb3dlckNhc2UoKSkgPiAtMSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZWxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5ld1Byb3RvY29sID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkRGV2aWNlKCk7XG4gICAgICB0aGlzLmF2YWlsYWJsZVByb3RvY29scyA9IGF3YWl0IHRoaXMubHB3YW5TZXJ2aWNlLmdldEF2YWlsYWJsZVByb3RvY29scyh0aGlzLmRldmljZSk7XG4gICAgICB0aGlzLmN1cnJlbnRQcm90b2NvbCA9IGF3YWl0IHRoaXMubHB3YW5TZXJ2aWNlLmdldEN1cnJlbnRQcm90b2NvbCh0aGlzLmRldmljZSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkRGV2aWNlKCkge1xuICAgIGNvbnN0IGRldmljZUlkID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLm1hdGNoKC9cXGQrLylbMF07XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKGRldmljZUlkKTtcbiAgICB0aGlzLmRldmljZSA9IGRhdGE7XG4gIH1cblxuICBhc3luYyBhcHBseShzZWxlY3RlZFByb3RvY29sKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vVXBkYXRlZCA9IChhd2FpdCB0aGlzLmxwd2FuU2VydmljZS5hcHBseVByb3RvY29sKHRoaXMuZGV2aWNlLCBzZWxlY3RlZFByb3RvY29sKSkucmVzLnN0YXR1cyA9PT0gMjAwO1xuICAgICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnRGV2aWNlIHByb3RvY29sIHNldC4nKSk7XG4gICAgICB0aGlzLmxwd2FuU2V0RGV2aWNlUHJvdG9jb2xGb3JtLnJlc2V0KCdkaXJ0eScpO1xuICAgICAgaWYgKG1vVXBkYXRlZCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoZ2V0dGV4dCgnQ291bGQgbm90IHNldCBkZXZpY2UgcHJvdG9jb2wuJykpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hDYWNoZSgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5scHdhblNlcnZpY2UucmVmcmVzaENhY2hlKHRoaXMuZGV2aWNlKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZG8gbm90aGluZyAocmVmcmVzaGluZyBpcyBhbiBvcHRpb25hbCBzdGVwKVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -61,11 +61,12 @@ export class LpwanSetDeviceProtocolService {
|
|
|
61
61
|
getAvailableProtocols(device) {
|
|
62
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
63
|
const query = {
|
|
64
|
-
|
|
65
|
-
__in: this.getProtocolTypesMatchingDevice(device)
|
|
66
|
-
}
|
|
64
|
+
__filter: {
|
|
65
|
+
type: { __in: this.getProtocolTypesMatchingDevice(device) }
|
|
66
|
+
},
|
|
67
|
+
__orderby: [{ name: 1 }]
|
|
67
68
|
};
|
|
68
|
-
return this.inventoryService.listQuery(query);
|
|
69
|
+
return this.inventoryService.listQuery(query, { withTotalPages: true, pageSize: 5 });
|
|
69
70
|
});
|
|
70
71
|
}
|
|
71
72
|
getProtocolTypesMatchingDevice(device) {
|
|
@@ -88,4 +89,4 @@ LpwanSetDeviceProtocolService.ctorParameters = () => [
|
|
|
88
89
|
{ type: FetchClient },
|
|
89
90
|
{ type: IdentityService }
|
|
90
91
|
];
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvdG9jb2wtbHB3YW4vbHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQWUsV0FBVyxFQUFpQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUdoQyxNQUFNLE9BQU8sNkJBQTZCO0lBaUJ4QyxZQUNVLGdCQUFrQyxFQUNsQyxNQUFtQixFQUNuQixlQUFnQztRQUZoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBbkIxQyx5QkFBb0IsR0FBRztZQUNyQjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEtBQUssTUFBTTtnQkFDMUUsYUFBYSxFQUFFLENBQUMsd0JBQXdCLEVBQUUsb0JBQW9CLENBQUM7YUFDaEU7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEtBQUssUUFBUTtnQkFDNUUsYUFBYSxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDeEM7U0FDRixDQUFDO1FBRWUsV0FBTSxHQUFRLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7UUFDckQsb0JBQWUsR0FBVyxpQkFBaUIsQ0FBQztJQU16RCxDQUFDO0lBRUMsWUFBWSxD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QUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFDO1lBQ2hHLE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3JFLENBQUM7S0FBQTs7O1lBN0VGLFVBQVU7OztZQUhjLGdCQUFnQjtZQUFlLFdBQVc7WUFBaUIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJUmVzdWx0TGlzdCwgRmV0Y2hDbGllbnQsIElGZXRjaE9wdGlvbnMsIElkZW50aXR5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMcHdhblNldERldmljZVByb3RvY29sU2VydmljZSB7XG4gIHN1cHBvcnRlZERldmljZXNDZmdzID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdsb3JhJyxcbiAgICAgIG1hdGNoOiBkZXZpY2UgPT4gZ2V0KGRldmljZSwgJ2M4eV9McHdhbkRldmljZS5scHdhbkRldmljZVR5cGUnKSA9PT0gJ0xvcmEnLFxuICAgICAgcHJvdG9jb2xUeXBlczogWydjOHlfQWN0aWxpdHlEZXZpY2VUeXBlJywgJ2M4eV9Mb3JhRGV2aWNlVHlwZSddXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2lnZm94JyxcbiAgICAgIG1hdGNoOiBkZXZpY2UgPT4gZ2V0KGRldmljZSwgJ2M4eV9McHdhbkRldmljZS5zZXJ2aWNlUHJvdmlkZXInKSA9PT0gJ1NpZ2ZveCcsXG4gICAgICBwcm90b2NvbFR5cGVzOiBbJ2M4eV9TaWdmb3hEZXZpY2VUeXBlJ11cbiAgICB9LFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGVyOiBhbnkgPSB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBtaWNyb3NlcnZpY2VVcmw6IHN0cmluZyA9ICcvc2VydmljZS9sb3Jpb3QnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW52ZW50b3J5U2VydmljZTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGNsaWVudDogRmV0Y2hDbGllbnQsXG4gICAgcHJpdmF0ZSBpZGVudGl0eVNlcnZpY2U6IElkZW50aXR5U2VydmljZVxuICApIHsgfVxuXG4gIGFzeW5jIHJlZnJlc2hDYWNoZShkZXZpY2UpIHtcbiAgICBjb25zdCBleHRlcm5hbElkID0gYXdhaXQgdGhpcy5nZXRFeHRlcm5hbElkKGRldmljZSk7XG4gICAgaWYgKGV4dGVybmFsSWQpIHtcbiAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWljcm9zZXJ2aWNlVXJsfS9yZWZyZXNoQ2FjaGUvJHtleHRlcm5hbElkfWA7XG4gICAgICBjb25zdCBvcHRpb25zOiBJRmV0Y2hPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXIsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHt9KVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC5mZXRjaCh1cmwsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGlzU3VwcG9ydGVkRGV2aWNlKGRldmljZTogSU1hbmFnZWRPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3J0ZWREZXZpY2VzQ2Zncy5zb21lKCh7IG1hdGNoIH0pID0+IG1hdGNoKGRldmljZSkpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q3VycmVudFByb3RvY29sKGRldmljZTogSU1hbmFnZWRPYmplY3QpIHtcbiAgICBjb25zdCBwcm90b2NvbElkID0gZGV2aWNlLmM4eV9McHdhbkRldmljZS50eXBlXG4gICAgICA/IGRldmljZS5jOHlfTHB3YW5EZXZpY2UudHlwZS5zcGxpdCgnLycpWzJdXG4gICAgICA6IG51bGw7XG4gICAgaWYgKCFwcm90b2NvbElkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKHByb3RvY29sSWQpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlQcm90b2NvbChkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LCBzZWxlY3RlZFByb3RvY29sOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGRldmljZS5jOHlfTHB3YW5EZXZpY2UudHlwZSA9ICdpbnZlbnRvcnkvbWFuYWdlZE9iamVjdHMvJyArIHNlbGVjdGVkUHJvdG9jb2wuaWQ7XG4gICAgZGV2aWNlLnR5cGUgPSBzZWxlY3RlZFByb3RvY29sLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5U2VydmljZS51cGRhdGUoZGV2aWNlKTtcbiAgfVxuXG4gIGFzeW5jIGdldEF2YWlsYWJsZVByb3RvY29scyhkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogUHJvbWlzZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+IHtcbiAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIHR5cGU6IHsgX19pbjogdGhpcy5nZXRQcm90b2NvbFR5cGVzTWF0Y2hpbmdEZXZpY2UoZGV2aWNlKSB9XG4gICAgICB9LFxuICAgICAgX19vcmRlcmJ5OiBbeyBuYW1lOiAxIH1dXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmxpc3RRdWVyeShxdWVyeSwgeyB3aXRoVG90YWxQYWdlczogdHJ1ZSwgcGFnZVNpemU6IDUgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByb3RvY29sVHlwZXNNYXRjaGluZ0RldmljZShkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG1hdGNoaW5nQ2ZnID0gdGhpcy5zdXBwb3J0ZWREZXZpY2VzQ2Zncy5maW5kKCh7IG1hdGNoIH0pID0+IG1hdGNoKGRldmljZSkpO1xuICAgIHJldHVybiBtYXRjaGluZ0NmZyA/IG1hdGNoaW5nQ2ZnLnByb3RvY29sVHlwZXMgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RXh0ZXJuYWxJZChkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBleHRlcm5hbElkcyA9IChhd2FpdCB0aGlzLmlkZW50aXR5U2VydmljZS5saXN0KGRldmljZS5pZCkpLmRhdGE7XG4gICAgY29uc3QgbG9yaW90RXVpRXh0ZXJuYWxJZCA9IGV4dGVybmFsSWRzLmZpbmQoZXh0ZXJuYWxJZCA9PiBleHRlcm5hbElkLnR5cGUgPT09ICdjOHlfTG9yaW90RVVJJyk7XG4gICAgcmV0dXJuIGxvcmlvdEV1aUV4dGVybmFsSWQgPyBsb3Jpb3RFdWlFeHRlcm5hbElkLmV4dGVybmFsSWQgOiBudWxsO1xuICB9XG59XG4iXX0=
|
|
@@ -20,9 +20,8 @@ class BinaryFileDownloadService {
|
|
|
20
20
|
}
|
|
21
21
|
run() {
|
|
22
22
|
this.router.events
|
|
23
|
-
.pipe(filter(
|
|
24
|
-
return event instanceof NavigationEnd
|
|
25
|
-
&& this.route.snapshot.queryParams.download;
|
|
23
|
+
.pipe(filter(event => {
|
|
24
|
+
return event instanceof NavigationEnd && this.route.snapshot.queryParams.download;
|
|
26
25
|
}), map(() => this.route.snapshot.queryParams.download))
|
|
27
26
|
.subscribe((downloadId) => __awaiter(this, void 0, void 0, function* () {
|
|
28
27
|
try {
|
|
@@ -40,32 +39,35 @@ class BinaryFileDownloadService {
|
|
|
40
39
|
}
|
|
41
40
|
}));
|
|
42
41
|
}
|
|
43
|
-
showDownloadModal(
|
|
42
|
+
showDownloadModal(binaryMo) {
|
|
44
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
44
|
try {
|
|
46
|
-
const modalBody = this.translate.instant(gettext('You are about to download file "{{ fileName }}". Do you want to proceed?'), { fileName:
|
|
47
|
-
yield this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
const modalBody = this.translate.instant(gettext('You are about to download file "{{ fileName }}". Do you want to proceed?'), { fileName: binaryMo.name });
|
|
46
|
+
yield this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {
|
|
47
|
+
ok: gettext('Download')
|
|
48
|
+
});
|
|
49
|
+
const arrayBuffer = yield this.getArrayBuffer(binaryMo.id);
|
|
50
|
+
const fileBinary = new File([arrayBuffer], binaryMo.name, { type: binaryMo.contentType });
|
|
50
51
|
saveAs(fileBinary);
|
|
51
52
|
}
|
|
52
53
|
catch (e) {
|
|
53
54
|
// empty body :(
|
|
55
|
+
console.log({ e });
|
|
54
56
|
}
|
|
55
57
|
});
|
|
56
58
|
}
|
|
57
|
-
|
|
59
|
+
getArrayBuffer(binaryId) {
|
|
58
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
let
|
|
61
|
+
let arrayBuffer;
|
|
60
62
|
try {
|
|
61
63
|
const res = yield this.inventoryBinary.download(binaryId);
|
|
62
|
-
|
|
64
|
+
arrayBuffer = yield res.arrayBuffer();
|
|
63
65
|
}
|
|
64
66
|
catch (ex) {
|
|
65
67
|
const msg = gettext('Could not get the binary.');
|
|
66
68
|
this.alertService.danger(msg);
|
|
67
69
|
}
|
|
68
|
-
return
|
|
70
|
+
return arrayBuffer;
|
|
69
71
|
});
|
|
70
72
|
}
|
|
71
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-binary-file-download.js","sources":["../../binary-file-download/binary-file-download.service.ts","../../binary-file-download/binary-file-download.module.ts","../../binary-file-download/c8y-ngx-components-binary-file-download.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { InventoryBinaryService, InventoryService } from '@c8y/client';\nimport { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';\nimport { saveAs } from 'file-saver';\nimport { isUndefined } from 'lodash-es';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class BinaryFileDownloadService {\n
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-binary-file-download.js","sources":["../../binary-file-download/binary-file-download.service.ts","../../binary-file-download/binary-file-download.module.ts","../../binary-file-download/c8y-ngx-components-binary-file-download.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { IManagedObject, InventoryBinaryService, InventoryService } from '@c8y/client';\nimport { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';\nimport { saveAs } from 'file-saver';\nimport { isUndefined } from 'lodash-es';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class BinaryFileDownloadService {\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private inventoryService: InventoryService,\n private alertService: AlertService,\n private modalService: ModalService,\n private translate: TranslateService,\n private inventoryBinary: InventoryBinaryService\n ) {}\n\n run() {\n this.router.events\n .pipe(\n filter(event => {\n return event instanceof NavigationEnd && this.route.snapshot.queryParams.download;\n }),\n map(() => this.route.snapshot.queryParams.download)\n )\n .subscribe(async downloadId => {\n try {\n const { data } = await this.inventoryService.detail(downloadId);\n if (!isUndefined(data.c8y_IsBinary)) {\n this.showDownloadModal(data);\n } else {\n const alertMessage = this.translate.instant(\n gettext(\n 'Could not download the file: object with ID \"{{ id }}\" is not a valid binary.'\n ),\n { id: data.id }\n );\n this.alertService.danger(alertMessage);\n }\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n });\n }\n\n async showDownloadModal(binaryMo: IManagedObject) {\n try {\n const modalBody = this.translate.instant(\n gettext('You are about to download file \"{{ fileName }}\". Do you want to proceed?'),\n { fileName: binaryMo.name }\n );\n await this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {\n ok: gettext('Download')\n });\n const arrayBuffer = await this.getArrayBuffer(binaryMo.id);\n const fileBinary = new File([arrayBuffer], binaryMo.name, { type: binaryMo.contentType });\n saveAs(fileBinary);\n } catch (e) {\n // empty body :(\n console.log({ e });\n }\n }\n\n private async getArrayBuffer(binaryId): Promise<ArrayBuffer> {\n let arrayBuffer: ArrayBuffer;\n try {\n const res = await this.inventoryBinary.download(binaryId);\n arrayBuffer = await res.arrayBuffer();\n } catch (ex) {\n const msg = gettext('Could not get the binary.');\n this.alertService.danger(msg);\n }\n\n return arrayBuffer;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@c8y/ngx-components';\nimport { BinaryFileDownloadService } from './binary-file-download.service';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n providers: [BinaryFileDownloadService]\n})\nexport class BinaryFileDownloadModule {\n constructor(binaryFileDownloadService: BinaryFileDownloadService) {\n binaryFileDownloadService.run();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -66,11 +66,12 @@ class LpwanSetDeviceProtocolService {
|
|
|
66
66
|
getAvailableProtocols(device) {
|
|
67
67
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
68
|
const query = {
|
|
69
|
-
|
|
70
|
-
__in: this.getProtocolTypesMatchingDevice(device)
|
|
71
|
-
}
|
|
69
|
+
__filter: {
|
|
70
|
+
type: { __in: this.getProtocolTypesMatchingDevice(device) }
|
|
71
|
+
},
|
|
72
|
+
__orderby: [{ name: 1 }]
|
|
72
73
|
};
|
|
73
|
-
return this.inventoryService.listQuery(query);
|
|
74
|
+
return this.inventoryService.listQuery(query, { withTotalPages: true, pageSize: 5 });
|
|
74
75
|
});
|
|
75
76
|
}
|
|
76
77
|
getProtocolTypesMatchingDevice(device) {
|
|
@@ -100,13 +101,20 @@ class LpwanAssignDeviceProtocolComponent {
|
|
|
100
101
|
this.alertService = alertService;
|
|
101
102
|
this.router = router;
|
|
102
103
|
this.inventoryService = inventoryService;
|
|
103
|
-
this.
|
|
104
|
+
this.filterProtocols = pipe();
|
|
105
|
+
this.pattern = '';
|
|
104
106
|
}
|
|
105
107
|
ngOnInit() {
|
|
106
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
107
109
|
yield this.reload();
|
|
110
|
+
this.setPipe('');
|
|
108
111
|
});
|
|
109
112
|
}
|
|
113
|
+
setPipe(filterStr) {
|
|
114
|
+
this.pattern = filterStr;
|
|
115
|
+
this.filterProtocols = pipe(map((protocols) => protocols.filter(protocol => (!this.currentProtocol || this.currentProtocol.id !== protocol.id) &&
|
|
116
|
+
(!filterStr || protocol.name.toLowerCase().indexOf(filterStr.toLowerCase()) > -1))));
|
|
117
|
+
}
|
|
110
118
|
reload() {
|
|
111
119
|
return __awaiter(this, void 0, void 0, function* () {
|
|
112
120
|
this.loading = true;
|
|
@@ -161,7 +169,7 @@ class LpwanAssignDeviceProtocolComponent {
|
|
|
161
169
|
LpwanAssignDeviceProtocolComponent.decorators = [
|
|
162
170
|
{ type: Component, args: [{
|
|
163
171
|
selector: 'set-device-protocol',
|
|
164
|
-
template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\" class=\"row\">\n
|
|
172
|
+
template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"card card--fullpage\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\">\n {{ 'LPWAN device protocol' | translate }}\n </h4>\n </div>\n <div class=\"p-16\">\n <div *ngIf=\"loading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!loading\">\n <div class=\"form-group\">\n <label translate>Current device protocol</label>\n <p class=\"form-control-static\" *ngIf=\"!currentProtocol\">\n {{ device.type }}\n </p>\n <p class=\"form-control-static\" *ngIf=\"currentProtocol\">\n {{ currentProtocol.name }}\n </p>\n </div>\n <c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"newProtocol\"\n placeholder=\"{{ 'Select new device protocol' | translate }}\"\n (onSearch)=\"setPipe($event)\"\n name=\"newProtocol\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n *c8yFor=\"\n let protocol of availableProtocols;\n loadMore: 'hidden';\n pipe: filterProtocols\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"newProtocol = protocol; setPipe('')\"\n >\n <c8y-highlight [text]=\"protocol.name\" [pattern]=\"pattern\"></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the protocols.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"apply(newProtocol)\"\n [disabled]=\"!newProtocol\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</form>\n"
|
|
165
173
|
},] }
|
|
166
174
|
];
|
|
167
175
|
LpwanAssignDeviceProtocolComponent.ctorParameters = () => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-protocol-lpwan.js","sources":["../../protocol-lpwan/lpwan-set-device-protocol.service.ts","../../protocol-lpwan/lpwan-set-device-protocol.component.ts","../../protocol-lpwan/lpwan-agent.guard.ts","../../protocol-lpwan/lpwan-protocol.module.ts","../../protocol-lpwan/c8y-ngx-components-protocol-lpwan.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList, FetchClient, IFetchOptions, IdentityService } from '@c8y/client';\nimport { get } from 'lodash-es';\n\n@Injectable()\nexport class LpwanSetDeviceProtocolService {\n supportedDevicesCfgs = [\n {\n name: 'lora',\n match: device => get(device, 'c8y_LpwanDevice.lpwanDeviceType') === 'Lora',\n protocolTypes: ['c8y_ActilityDeviceType', 'c8y_LoraDeviceType']\n },\n {\n name: 'sigfox',\n match: device => get(device, 'c8y_LpwanDevice.serviceProvider') === 'Sigfox',\n protocolTypes: ['c8y_SigfoxDeviceType']\n },\n ];\n\n private readonly header: any = { 'Content-Type': 'application/json' };\n private readonly microserviceUrl: string = '/service/loriot';\n\n constructor(\n private inventoryService: InventoryService,\n private client: FetchClient,\n private identityService: IdentityService\n ) { }\n\n async refreshCache(device) {\n const externalId = await this.getExternalId(device);\n if (externalId) {\n const url = `${this.microserviceUrl}/refreshCache/${externalId}`;\n const options: IFetchOptions = {\n method: 'POST',\n headers: this.header,\n body: JSON.stringify({})\n };\n return this.client.fetch(url, options);\n }\n }\n\n isSupportedDevice(device: IManagedObject): boolean {\n return this.supportedDevicesCfgs.some(({ match }) => match(device));\n }\n\n async getCurrentProtocol(device: IManagedObject) {\n const protocolId = device.c8y_LpwanDevice.type\n ? device.c8y_LpwanDevice.type.split('/')[2]\n : null;\n if (!protocolId) {\n return null;\n }\n const { data } = await this.inventoryService.detail(protocolId);\n return data;\n }\n\n async applyProtocol(device: IManagedObject, selectedProtocol: IManagedObject) {\n device.c8y_LpwanDevice.type = 'inventory/managedObjects/' + selectedProtocol.id;\n device.type = selectedProtocol.name;\n return this.inventoryService.update(device);\n }\n\n async getAvailableProtocols(device: IManagedObject): Promise<IResultList<IManagedObject>> {\n const query = {\n type: {\n __in: this.getProtocolTypesMatchingDevice(device)\n }\n };\n return this.inventoryService.listQuery(query);\n }\n\n private getProtocolTypesMatchingDevice(device: IManagedObject): string[] {\n const matchingCfg = this.supportedDevicesCfgs.find(({ match }) => match(device));\n return matchingCfg ? matchingCfg.protocolTypes : [];\n }\n\n private async getExternalId(device: IManagedObject): Promise<string> {\n const externalIds = (await this.identityService.list(device.id)).data;\n const loriotEuiExternalId = externalIds.find(externalId => externalId.type === 'c8y_LoriotEUI');\n return loriotEuiExternalId ? loriotEuiExternalId.externalId : null;\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { IManagedObject, InventoryService, IResultList } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { pipe } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'set-device-protocol',\n templateUrl: './lpwan-set-device-protocol.component.html'\n})\n\nexport class LpwanAssignDeviceProtocolComponent implements OnInit {\n loading: boolean;\n device: IManagedObject;\n currentProtocol: IManagedObject;\n availableProtocols: IResultList<IManagedObject>;\n newProtocol: IManagedObject;\n\n filterCurrentProtocol = pipe(\n map((protocols: IManagedObject[]) =>\n protocols.filter(protocol => !this.currentProtocol || this.currentProtocol.id !== protocol.id)\n )\n );\n @ViewChild('lpwanSetDeviceProtocolForm', { static: false }) lpwanSetDeviceProtocolForm: any;\n\n constructor(\n private lpwanService: LpwanSetDeviceProtocolService,\n private alertService: AlertService,\n private router: Router,\n private inventoryService: InventoryService\n ) { }\n async ngOnInit() {\n await this.reload();\n }\n\n async reload() {\n this.loading = true;\n this.newProtocol = null;\n try {\n await this.loadDevice();\n this.availableProtocols = await this.lpwanService.getAvailableProtocols(this.device);\n this.currentProtocol = await this.lpwanService.getCurrentProtocol(this.device);\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n } finally {\n this.loading = false;\n }\n }\n\n async loadDevice() {\n const deviceId = this.router.routerState.snapshot.url.match(/\\d+/)[0];\n const { data } = await this.inventoryService.detail(deviceId);\n this.device = data;\n }\n\n async apply(selectedProtocol) {\n try {\n const moUpdated = (await this.lpwanService.applyProtocol(this.device, selectedProtocol)).res.status === 200;\n await this.reload();\n this.alertService.success(gettext('Device protocol set.'));\n this.lpwanSetDeviceProtocolForm.reset('dirty');\n if (moUpdated) {\n this.refreshCache();\n }\n } catch (ex) {\n this.alertService.danger(gettext('Could not set device protocol.'));\n }\n }\n\n async refreshCache() {\n try {\n await this.lpwanService.refreshCache(this.device);\n } catch (ex) {\n // do nothing (refreshing is an optional step)\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n@Injectable()\nexport class LpwanAgentGuard implements CanActivate {\n constructor(private lpwanService: LpwanSetDeviceProtocolService) {}\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n const device = route.data.contextData || route.parent.data.contextData;\n return this.lpwanService.isSupportedDevice(device);\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n FormsModule,\n gettext,\n HOOK_ONCE_ROUTE,\n Route,\n ViewContext\n} from '@c8y/ngx-components';\nimport { LpwanAssignDeviceProtocolComponent } from './lpwan-set-device-protocol.component';\nimport { LpwanAgentGuard } from './lpwan-agent.guard';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n\nconst routes: Route[] = [\n {\n context: ViewContext.Device,\n path: 'assign-protocol',\n component: LpwanAssignDeviceProtocolComponent,\n label: gettext('LPWAN'),\n icon: 'c8y-device-protocols',\n canActivate: [LpwanAgentGuard]\n }\n];\n\n@NgModule({\n declarations: [\n LpwanAssignDeviceProtocolComponent\n ],\n imports: [\n CoreModule,\n FormsModule\n ],\n entryComponents: [LpwanAssignDeviceProtocolComponent],\n providers: [\n LpwanAgentGuard,\n LpwanSetDeviceProtocolService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: routes,\n multi: true\n }\n ]\n})\nexport class LpwanProtocolModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {LpwanAgentGuard as ɵb} from './lpwan-agent.guard';\nexport {LpwanSetDeviceProtocolService as ɵa} from './lpwan-set-device-protocol.service';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-protocol-lpwan.js","sources":["../../protocol-lpwan/lpwan-set-device-protocol.service.ts","../../protocol-lpwan/lpwan-set-device-protocol.component.ts","../../protocol-lpwan/lpwan-agent.guard.ts","../../protocol-lpwan/lpwan-protocol.module.ts","../../protocol-lpwan/c8y-ngx-components-protocol-lpwan.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList, FetchClient, IFetchOptions, IdentityService } from '@c8y/client';\nimport { get } from 'lodash-es';\n\n@Injectable()\nexport class LpwanSetDeviceProtocolService {\n supportedDevicesCfgs = [\n {\n name: 'lora',\n match: device => get(device, 'c8y_LpwanDevice.lpwanDeviceType') === 'Lora',\n protocolTypes: ['c8y_ActilityDeviceType', 'c8y_LoraDeviceType']\n },\n {\n name: 'sigfox',\n match: device => get(device, 'c8y_LpwanDevice.serviceProvider') === 'Sigfox',\n protocolTypes: ['c8y_SigfoxDeviceType']\n },\n ];\n\n private readonly header: any = { 'Content-Type': 'application/json' };\n private readonly microserviceUrl: string = '/service/loriot';\n\n constructor(\n private inventoryService: InventoryService,\n private client: FetchClient,\n private identityService: IdentityService\n ) { }\n\n async refreshCache(device) {\n const externalId = await this.getExternalId(device);\n if (externalId) {\n const url = `${this.microserviceUrl}/refreshCache/${externalId}`;\n const options: IFetchOptions = {\n method: 'POST',\n headers: this.header,\n body: JSON.stringify({})\n };\n return this.client.fetch(url, options);\n }\n }\n\n isSupportedDevice(device: IManagedObject): boolean {\n return this.supportedDevicesCfgs.some(({ match }) => match(device));\n }\n\n async getCurrentProtocol(device: IManagedObject) {\n const protocolId = device.c8y_LpwanDevice.type\n ? device.c8y_LpwanDevice.type.split('/')[2]\n : null;\n if (!protocolId) {\n return null;\n }\n const { data } = await this.inventoryService.detail(protocolId);\n return data;\n }\n\n async applyProtocol(device: IManagedObject, selectedProtocol: IManagedObject) {\n device.c8y_LpwanDevice.type = 'inventory/managedObjects/' + selectedProtocol.id;\n device.type = selectedProtocol.name;\n return this.inventoryService.update(device);\n }\n\n async getAvailableProtocols(device: IManagedObject): Promise<IResultList<IManagedObject>> {\n const query = {\n __filter: {\n type: { __in: this.getProtocolTypesMatchingDevice(device) }\n },\n __orderby: [{ name: 1 }]\n };\n return this.inventoryService.listQuery(query, { withTotalPages: true, pageSize: 5 });\n }\n\n private getProtocolTypesMatchingDevice(device: IManagedObject): string[] {\n const matchingCfg = this.supportedDevicesCfgs.find(({ match }) => match(device));\n return matchingCfg ? matchingCfg.protocolTypes : [];\n }\n\n private async getExternalId(device: IManagedObject): Promise<string> {\n const externalIds = (await this.identityService.list(device.id)).data;\n const loriotEuiExternalId = externalIds.find(externalId => externalId.type === 'c8y_LoriotEUI');\n return loriotEuiExternalId ? loriotEuiExternalId.externalId : null;\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { IManagedObject, InventoryService, IResultList } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { pipe } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'set-device-protocol',\n templateUrl: './lpwan-set-device-protocol.component.html'\n})\n\nexport class LpwanAssignDeviceProtocolComponent implements OnInit {\n loading: boolean;\n device: IManagedObject;\n currentProtocol: IManagedObject;\n availableProtocols: IResultList<IManagedObject>;\n newProtocol: IManagedObject;\n\n filterProtocols = pipe();\n pattern = '';\n\n @ViewChild('lpwanSetDeviceProtocolForm', { static: false }) lpwanSetDeviceProtocolForm: any;\n\n constructor(\n private lpwanService: LpwanSetDeviceProtocolService,\n private alertService: AlertService,\n private router: Router,\n private inventoryService: InventoryService\n ) { }\n async ngOnInit() {\n await this.reload();\n this.setPipe('');\n }\n\n setPipe(filterStr: string) {\n this.pattern = filterStr;\n this.filterProtocols = pipe(\n map((protocols: IManagedObject[]) =>\n protocols.filter(\n protocol =>\n (!this.currentProtocol || this.currentProtocol.id !== protocol.id) &&\n (!filterStr || protocol.name.toLowerCase().indexOf(filterStr.toLowerCase()) > -1)\n )\n )\n );\n }\n\n async reload() {\n this.loading = true;\n this.newProtocol = null;\n try {\n await this.loadDevice();\n this.availableProtocols = await this.lpwanService.getAvailableProtocols(this.device);\n this.currentProtocol = await this.lpwanService.getCurrentProtocol(this.device);\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n } finally {\n this.loading = false;\n }\n }\n\n async loadDevice() {\n const deviceId = this.router.routerState.snapshot.url.match(/\\d+/)[0];\n const { data } = await this.inventoryService.detail(deviceId);\n this.device = data;\n }\n\n async apply(selectedProtocol) {\n try {\n const moUpdated = (await this.lpwanService.applyProtocol(this.device, selectedProtocol)).res.status === 200;\n await this.reload();\n this.alertService.success(gettext('Device protocol set.'));\n this.lpwanSetDeviceProtocolForm.reset('dirty');\n if (moUpdated) {\n this.refreshCache();\n }\n } catch (ex) {\n this.alertService.danger(gettext('Could not set device protocol.'));\n }\n }\n\n async refreshCache() {\n try {\n await this.lpwanService.refreshCache(this.device);\n } catch (ex) {\n // do nothing (refreshing is an optional step)\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n@Injectable()\nexport class LpwanAgentGuard implements CanActivate {\n constructor(private lpwanService: LpwanSetDeviceProtocolService) {}\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n const device = route.data.contextData || route.parent.data.contextData;\n return this.lpwanService.isSupportedDevice(device);\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n FormsModule,\n gettext,\n HOOK_ONCE_ROUTE,\n Route,\n ViewContext\n} from '@c8y/ngx-components';\nimport { LpwanAssignDeviceProtocolComponent } from './lpwan-set-device-protocol.component';\nimport { LpwanAgentGuard } from './lpwan-agent.guard';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n\nconst routes: Route[] = [\n {\n context: ViewContext.Device,\n path: 'assign-protocol',\n component: LpwanAssignDeviceProtocolComponent,\n label: gettext('LPWAN'),\n icon: 'c8y-device-protocols',\n canActivate: [LpwanAgentGuard]\n }\n];\n\n@NgModule({\n declarations: [\n LpwanAssignDeviceProtocolComponent\n ],\n imports: [\n CoreModule,\n FormsModule\n ],\n entryComponents: [LpwanAssignDeviceProtocolComponent],\n providers: [\n LpwanAgentGuard,\n LpwanSetDeviceProtocolService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: routes,\n multi: true\n }\n ]\n})\nexport class LpwanProtocolModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {LpwanAgentGuard as ɵb} from './lpwan-agent.guard';\nexport {LpwanSetDeviceProtocolService as ɵa} from './lpwan-set-device-protocol.service';"],"names":[],"mappings":"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"}
|
|
@@ -16247,7 +16247,7 @@ class TypeaheadComponent {
|
|
|
16247
16247
|
TypeaheadComponent.decorators = [
|
|
16248
16248
|
{ type: Component, args: [{
|
|
16249
16249
|
selector: 'c8y-typeahead',
|
|
16250
|
-
template: "<div\n class=\"c8y-child-assets-selector dropdown\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
|
|
16250
|
+
template: "<div\n class=\"c8y-child-assets-selector dropdown fit-w\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
|
|
16251
16251
|
providers: [
|
|
16252
16252
|
{
|
|
16253
16253
|
provide: NG_VALUE_ACCESSOR,
|