UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

1 lines 6.84 kB
{"version":3,"file":"c8y-ngx-components-widgets-definitions-image.mjs","sources":["../../widgets/definitions/image/index.ts","../../widgets/definitions/image/c8y-ngx-components-widgets-definitions-image.ts"],"sourcesContent":["import { DashboardDetailService } from '@c8y/ngx-components/context-dashboard';\nimport type { DynamicWidgetDefinition } from '@c8y/ngx-components';\nimport { gettext, hookWidget } from '@c8y/ngx-components';\nimport { defaultWidgetIds } from '@c8y/ngx-components/widgets/definitions';\nimport {\n ImageWidgetConfig,\n ImageWidgetService\n} from '@c8y/ngx-components/widgets/implementations/image';\nimport { inject, Injector } from '@angular/core';\nimport { InventoryService, QueriesUtil } from '@c8y/client';\n\nexport interface ExportedImageWidgetConfig extends ImageWidgetConfig {\n imageDetails: { file: { name: string; type: string }; base64: string; c8y_SHA256: string };\n}\n\nexport const imageWidgetDefinition = {\n id: defaultWidgetIds.IMAGE,\n label: gettext('Image'),\n description: gettext(`Display a single image selected from the user's file system.`),\n loadComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/image').then(\n m => m.ImageWidgetViewComponent\n ),\n loadConfigComponent: () =>\n import('@c8y/ngx-components/widgets/implementations/image').then(\n m => m.ImageWidgetConfigComponent\n ),\n previewImage: 'c8y-style-assets/image-widget.png',\n\n data: {\n schema: () =>\n import(\n 'c8y-schema-loader?interfaceName=ImageWidgetConfig!@c8y/ngx-components/widgets/implementations/image'\n ),\n export: exportImageWidgetConfig,\n import: importImageWidgetConfig,\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 8,\n _height: 4\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n }\n} satisfies DynamicWidgetDefinition;\n\nexport const imageWidgetProviders = [hookWidget(imageWidgetDefinition)];\n\nasync function exportImageWidgetConfig(\n config: ImageWidgetConfig\n): Promise<ExportedImageWidgetConfig> {\n const injector = inject(Injector);\n const imageWidgetService = injector.get(ImageWidgetService);\n const imageDetails = await imageWidgetService.getImageDetails(config.imageBinaryId);\n\n return {\n ...config,\n imageDetails: {\n base64: imageDetails.base64,\n c8y_SHA256: imageDetails.c8y_SHA256,\n file: {\n name: imageDetails.file.name,\n type: imageDetails.file.type\n }\n }\n };\n}\n\nasync function importImageWidgetConfig(\n config: ExportedImageWidgetConfig\n): Promise<ImageWidgetConfig> {\n const injector = inject(Injector);\n const inventoryService = injector.get(InventoryService);\n const dashboardDetailsService = injector.get(DashboardDetailService);\n const dashboardData = dashboardDetailsService.details;\n\n const baseQuery = {\n __filter: { c8y_SHA256: { __eq: config.imageDetails.c8y_SHA256 } }\n };\n const queriesUtil = new QueriesUtil();\n const query = queriesUtil.buildQuery(baseQuery);\n\n // check if image already exists in inventory\n const fileBySha = (await inventoryService.list({ query, pageSize: 1 })).data?.[0];\n if (fileBySha) {\n return {\n imageBinaryId: fileBySha.id,\n styling: config.styling\n };\n }\n\n // create image file from base64\n const url = config.imageDetails.base64;\n const fileName = config.imageDetails.file.name;\n const type = config.imageDetails.file.type;\n const file = await fetch(url)\n .then(res => res.blob())\n .then(blob => {\n return new File([blob], fileName, { type });\n });\n\n const imageWidgetService = injector.get(ImageWidgetService);\n const imageBinaryId = await imageWidgetService.uploadFile(file, {\n dashboardMoId: dashboardData.mo.id,\n isDeviceTypeDashboard:\n !!dashboardData.mo.c8y_Dashboard.deviceType &&\n !!dashboardData.mo.c8y_Dashboard.deviceTypeValue\n });\n\n return {\n imageBinaryId,\n styling: config.styling\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}