UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

73 lines 10.6 kB
import { Injectable } from '@angular/core'; import { gettext, hookRoute, hookService, ViewContext } from '@c8y/ngx-components'; import { canActivateRemoteAccess, RemoteAccessService } from '@c8y/ngx-components/remote-access/data'; import { BsModalService } from 'ngx-bootstrap/modal'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/ngx-components/remote-access/data"; import * as i2 from "ngx-bootstrap/modal"; export class VNCRemoteAccessProtocolProviderService { constructor(remoteAccess, bsModalService) { this.remoteAccess = remoteAccess; this.bsModalService = bsModalService; this.protocolName = 'VNC'; this.protocolLabel = gettext('VNC'); this.protocolDescription = gettext('Allows to connect to a VNC service.'); this.protocolIcon = 'laptop'; } async addEndpoint(deviceId) { const modalResult = await this.openVNCEndpointModal({}); if (!modalResult) { return modalResult; } return this.remoteAccess.addConfiguration(deviceId, modalResult); } removeEndpoint(deviceId, currentEndpointConfig) { return this.remoteAccess.deleteConfiguration(deviceId, currentEndpointConfig.id); } async editEndpoint(deviceId, currentEndpointConfig) { const modalResult = await this.openVNCEndpointModal(currentEndpointConfig); if (!modalResult) { return modalResult; } return this.remoteAccess.updateConfiguration(deviceId, modalResult); } async connectEndpointHref(deviceId, configuration) { return `/device/${deviceId}/vnc/${configuration.id}`; } async getDefaultEndpointConfiguration() { return { hostname: '127.0.0.1', port: 5900 }; } async openVNCEndpointModal(currentConfiguration) { const { RemoteAccessVncEndpointModalComponent } = await import('@c8y/ngx-components/remote-access/vnc/remote-access-vnc-endpoint-modal'); try { const modalRef = this.bsModalService.show(RemoteAccessVncEndpointModalComponent, { initialState: { currentValue: currentConfiguration } }); return (await modalRef.content.result); } catch (e) { // modal closed return null; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, deps: [{ token: i1.RemoteAccessService }, { token: i2.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.RemoteAccessService }, { type: i2.BsModalService }] }); export const remoteAccessVNCProviders = [ hookRoute({ loadComponent: () => import('@c8y/ngx-components/remote-access/vnc/vnc-viewer').then(m => m.VncViewerComponent), path: 'vnc/:configurationId', context: ViewContext.Device, tabs: [], canActivate: [canActivateRemoteAccess] }), hookService('remoteAccessProtocolHook', VNCRemoteAccessProtocolProviderService) ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9yZW1vdGUtYWNjZXNzL3ZuYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLG1CQUFtQixFQUNwQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUdyRCxNQUFNLE9BQU8sc0NBQXNDO0lBTWpELFlBQ1ksWUFBaUMsRUFDakMsY0FBOEI7UUFEOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVAxQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUNyRSxpQkFBWSxHQUFHLFFBQWlCLENBQUM7SUFLOUIsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBZ0I7UUFDaEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjLENBQ1osUUFBZ0IsRUFDaEIscUJBQWdEO1FBRWhELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQ2hCLFFBQWdCLEVBQ2hCLHFCQUFnRDtRQUVoRCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixRQUFnQixFQUNoQixhQUF3QztRQUV4QyxPQUFPLFdBQVcsUUFBUSxRQUFRLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLCtCQUErQjtRQUNuQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxvQkFBb0IsQ0FDbEMsb0JBQXdEO1FBRXhELE1BQU0sRUFBRSxxQ0FBcUMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUM1RCx3RUFBd0UsQ0FDekUsQ0FBQztRQUNGLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFO2dCQUMvRSxZQUFZLEVBQUUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7YUFDckQsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQThCLENBQUM7UUFDdEUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxlQUFlO1lBQ2YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzsrR0FwRVUsc0NBQXNDO21IQUF0QyxzQ0FBc0MsY0FEekIsTUFBTTs7NEZBQ25CLHNDQUFzQztrQkFEbEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBd0VsQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxTQUFTLENBQUM7UUFDUixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyxrREFBa0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUM1RixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLE9BQU8sRUFBRSxXQUFXLENBQUMsTUFBTTtRQUMzQixJQUFJLEVBQUUsRUFBRTtRQUNSLFdBQVcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO0tBQ3ZDLENBQUM7SUFDRixXQUFXLENBQUMsMEJBQTBCLEVBQUUsc0NBQXNDLENBQUM7Q0FDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQsIGhvb2tSb3V0ZSwgaG9va1NlcnZpY2UsIFZpZXdDb250ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBjYW5BY3RpdmF0ZVJlbW90ZUFjY2VzcyxcbiAgUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbixcbiAgUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlcixcbiAgUmVtb3RlQWNjZXNzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3JlbW90ZS1hY2Nlc3MvZGF0YSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFZOQ1JlbW90ZUFjY2Vzc1Byb3RvY29sUHJvdmlkZXJTZXJ2aWNlIGltcGxlbWVudHMgUmVtb3RlQWNjZXNzUHJvdG9jb2xQcm92aWRlciB7XG4gIHByb3RvY29sTmFtZSA9ICdWTkMnO1xuICBwcm90b2NvbExhYmVsID0gZ2V0dGV4dCgnVk5DJyk7XG4gIHByb3RvY29sRGVzY3JpcHRpb24gPSBnZXR0ZXh0KCdBbGxvd3MgdG8gY29ubmVjdCB0byBhIFZOQyBzZXJ2aWNlLicpO1xuICBwcm90b2NvbEljb24gPSAnbGFwdG9wJyBhcyBjb25zdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVtb3RlQWNjZXNzOiBSZW1vdGVBY2Nlc3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGFkZEVuZHBvaW50KGRldmljZUlkOiBzdHJpbmcpOiBQcm9taXNlPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zdCBtb2RhbFJlc3VsdCA9IGF3YWl0IHRoaXMub3BlblZOQ0VuZHBvaW50TW9kYWwoe30pO1xuICAgIGlmICghbW9kYWxSZXN1bHQpIHtcbiAgICAgIHJldHVybiBtb2RhbFJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZW1vdGVBY2Nlc3MuYWRkQ29uZmlndXJhdGlvbihkZXZpY2VJZCwgbW9kYWxSZXN1bHQpO1xuICB9XG5cbiAgcmVtb3ZlRW5kcG9pbnQoXG4gICAgZGV2aWNlSWQ6IHN0cmluZyxcbiAgICBjdXJyZW50RW5kcG9pbnRDb25maWc6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb25cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3RlQWNjZXNzLmRlbGV0ZUNvbmZpZ3VyYXRpb24oZGV2aWNlSWQsIGN1cnJlbnRFbmRwb2ludENvbmZpZy5pZCk7XG4gIH1cblxuICBhc3luYyBlZGl0RW5kcG9pbnQoXG4gICAgZGV2aWNlSWQ6IHN0cmluZyxcbiAgICBjdXJyZW50RW5kcG9pbnRDb25maWc6IFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb25cbiAgKTogUHJvbWlzZTxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPiB7XG4gICAgY29uc3QgbW9kYWxSZXN1bHQgPSBhd2FpdCB0aGlzLm9wZW5WTkNFbmRwb2ludE1vZGFsKGN1cnJlbnRFbmRwb2ludENvbmZpZyk7XG4gICAgaWYgKCFtb2RhbFJlc3VsdCkge1xuICAgICAgcmV0dXJuIG1vZGFsUmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlbW90ZUFjY2Vzcy51cGRhdGVDb25maWd1cmF0aW9uKGRldmljZUlkLCBtb2RhbFJlc3VsdCk7XG4gIH1cblxuICBhc3luYyBjb25uZWN0RW5kcG9pbnRIcmVmKFxuICAgIGRldmljZUlkOiBzdHJpbmcsXG4gICAgY29uZmlndXJhdGlvbjogUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvblxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgL2RldmljZS8ke2RldmljZUlkfS92bmMvJHtjb25maWd1cmF0aW9uLmlkfWA7XG4gIH1cblxuICBhc3luYyBnZXREZWZhdWx0RW5kcG9pbnRDb25maWd1cmF0aW9uKCk6IFByb21pc2U8UGFydGlhbDxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPj4ge1xuICAgIHJldHVybiB7XG4gICAgICBob3N0bmFtZTogJzEyNy4wLjAuMScsXG4gICAgICBwb3J0OiA1OTAwXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBvcGVuVk5DRW5kcG9pbnRNb2RhbChcbiAgICBjdXJyZW50Q29uZmlndXJhdGlvbjogUGFydGlhbDxSZW1vdGVBY2Nlc3NDb25maWd1cmF0aW9uPlxuICApOiBQcm9taXNlPFJlbW90ZUFjY2Vzc0NvbmZpZ3VyYXRpb24gfCBudWxsPiB7XG4gICAgY29uc3QgeyBSZW1vdGVBY2Nlc3NWbmNFbmRwb2ludE1vZGFsQ29tcG9uZW50IH0gPSBhd2FpdCBpbXBvcnQoXG4gICAgICAnQGM4eS9uZ3gtY29tcG9uZW50cy9yZW1vdGUtYWNjZXNzL3ZuYy9yZW1vdGUtYWNjZXNzLXZuYy1lbmRwb2ludC1tb2RhbCdcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhSZW1vdGVBY2Nlc3NWbmNFbmRwb2ludE1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgIGluaXRpYWxTdGF0ZTogeyBjdXJyZW50VmFsdWU6IGN1cnJlbnRDb25maWd1cmF0aW9uIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChhd2FpdCBtb2RhbFJlZi5jb250ZW50LnJlc3VsdCkgYXMgUmVtb3RlQWNjZXNzQ29uZmlndXJhdGlvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBtb2RhbCBjbG9zZWRcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVtb3RlQWNjZXNzVk5DUHJvdmlkZXJzID0gW1xuICBob29rUm91dGUoe1xuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICBpbXBvcnQoJ0BjOHkvbmd4LWNvbXBvbmVudHMvcmVtb3RlLWFjY2Vzcy92bmMvdm5jLXZpZXdlcicpLnRoZW4obSA9PiBtLlZuY1ZpZXdlckNvbXBvbmVudCksXG4gICAgcGF0aDogJ3ZuYy86Y29uZmlndXJhdGlvbklkJyxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5EZXZpY2UsXG4gICAgdGFiczogW10sXG4gICAgY2FuQWN0aXZhdGU6IFtjYW5BY3RpdmF0ZVJlbW90ZUFjY2Vzc11cbiAgfSksXG4gIGhvb2tTZXJ2aWNlKCdyZW1vdGVBY2Nlc3NQcm90b2NvbEhvb2snLCBWTkNSZW1vdGVBY2Nlc3NQcm90b2NvbFByb3ZpZGVyU2VydmljZSlcbl07XG4iXX0=