@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
1 lines • 5.53 kB
Source Map (JSON)
{"version":3,"file":"c8y-ngx-components-remote-access-vnc.mjs","sources":["../../remote-access/vnc/index.ts","../../remote-access/vnc/c8y-ngx-components-remote-access-vnc.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { hookRoute, hookService, ViewContext } from '@c8y/ngx-components';\nimport {\n canActivateRemoteAccess,\n RemoteAccessConfiguration,\n RemoteAccessProtocolProvider,\n RemoteAccessService\n} from '@c8y/ngx-components/remote-access/data';\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\n@Injectable({ providedIn: 'root' })\nexport class VNCRemoteAccessProtocolProviderService implements RemoteAccessProtocolProvider {\n protocolName = 'VNC';\n protocolLabel = gettext('VNC');\n protocolDescription = gettext('Allows to connect to a VNC service.');\n protocolIcon = 'laptop' as const;\n\n constructor(\n protected remoteAccess: RemoteAccessService,\n protected bsModalService: BsModalService\n ) {}\n\n async addEndpoint(deviceId: string): Promise<RemoteAccessConfiguration> {\n const modalResult = await this.openVNCEndpointModal({});\n if (!modalResult) {\n return modalResult;\n }\n\n return this.remoteAccess.addConfiguration(deviceId, modalResult);\n }\n\n removeEndpoint(\n deviceId: string,\n currentEndpointConfig: RemoteAccessConfiguration\n ): Promise<void> {\n return this.remoteAccess.deleteConfiguration(deviceId, currentEndpointConfig.id);\n }\n\n async editEndpoint(\n deviceId: string,\n currentEndpointConfig: RemoteAccessConfiguration\n ): Promise<RemoteAccessConfiguration> {\n const modalResult = await this.openVNCEndpointModal(currentEndpointConfig);\n if (!modalResult) {\n return modalResult;\n }\n\n return this.remoteAccess.updateConfiguration(deviceId, modalResult);\n }\n\n async connectEndpointHref(\n deviceId: string,\n configuration: RemoteAccessConfiguration\n ): Promise<string> {\n return `/device/${deviceId}/vnc/${configuration.id}`;\n }\n\n async getDefaultEndpointConfiguration(): Promise<Partial<RemoteAccessConfiguration>> {\n return {\n hostname: '127.0.0.1',\n port: 5900\n };\n }\n\n protected async openVNCEndpointModal(\n currentConfiguration: Partial<RemoteAccessConfiguration>\n ): Promise<RemoteAccessConfiguration | null> {\n const { RemoteAccessVncEndpointModalComponent } = await import(\n '@c8y/ngx-components/remote-access/vnc/remote-access-vnc-endpoint-modal'\n );\n try {\n const modalRef = this.bsModalService.show(RemoteAccessVncEndpointModalComponent, {\n initialState: { currentValue: currentConfiguration }\n });\n return (await modalRef.content.result) as RemoteAccessConfiguration;\n } catch (e) {\n // modal closed\n return null;\n }\n }\n}\n\nexport const remoteAccessVNCProviders = [\n hookRoute({\n loadComponent: () =>\n import('@c8y/ngx-components/remote-access/vnc/vnc-viewer').then(m => m.VncViewerComponent),\n path: 'vnc/:configurationId',\n context: ViewContext.Device,\n tabs: [],\n canActivate: [canActivateRemoteAccess]\n }),\n hookService('remoteAccessProtocolHook', VNCRemoteAccessProtocolProviderService)\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}