UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

80 lines (76 loc) 3.63 kB
import * as i0 from '@angular/core'; import { Injectable } from '@angular/core'; import { gettext, hookRoute, hookService, ViewContext } from '@c8y/ngx-components'; import * as i1 from '@c8y/ngx-components/remote-access/data'; import { canActivateRemoteAccess } from '@c8y/ngx-components/remote-access/data'; import * as i2 from 'ngx-bootstrap/modal'; 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: "19.2.14", 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: "19.2.14", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: VNCRemoteAccessProtocolProviderService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.RemoteAccessService }, { type: i2.BsModalService }] }); 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) ]; /** * Generated bundle index. Do not edit. */ export { VNCRemoteAccessProtocolProviderService, remoteAccessVNCProviders }; //# sourceMappingURL=c8y-ngx-components-remote-access-vnc.mjs.map