UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

1 lines 9.29 kB
{"version":3,"file":"c8y-ngx-components-replace-device.mjs","sources":["../../replace-device/replace-device.service.ts","../../replace-device/replace-device-grid-action.factory.ts","../../replace-device/replace-device.module.ts","../../replace-device/c8y-ngx-components-replace-device.ts"],"sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { BottomDrawerService, BreadcrumbService, Permissions, gettext } from '@c8y/ngx-components';\nimport { isNil } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport const REQUIRED_IDENTITY_ROLES = [\n Permissions.ROLE_IDENTITY_READ,\n Permissions.ROLE_IDENTITY_ADMIN\n];\nexport const REQUIRED_INVENTORY_ROLES = [\n Permissions.ROLE_INVENTORY_READ,\n Permissions.ROLE_INVENTORY_ADMIN\n];\nexport const REQUIRED_MANAGED_OBJECT_ROLES = [\n Permissions.ROLE_MANAGED_OBJECT_READ,\n Permissions.ROLE_MANAGED_OBJECT_ADMIN\n];\n\n@Injectable({ providedIn: 'root' })\nexport class ReplaceDeviceService\n implements OnDestroy, CumulocityServiceRegistry.AdditionalDeviceStatusButtonProvider\n{\n private destroyed$ = new Subject<void>();\n\n constructor(\n private permissions: Permissions,\n private breadcrumbService: BreadcrumbService,\n private drawerService: BottomDrawerService\n ) {}\n\n getButtonInfo() {\n return {\n title: gettext('Replace device'),\n icon: 'replace',\n label: gettext('Replace'),\n action: device => this.openDrawer(device)\n };\n }\n\n canShowButton(device: IManagedObject): boolean {\n return (\n (this.permissions.hasAllRoles(REQUIRED_INVENTORY_ROLES) ||\n this.permissions.hasAllRoles(REQUIRED_MANAGED_OBJECT_ROLES)) &&\n this.permissions.hasAllRoles(REQUIRED_IDENTITY_ROLES) &&\n !isNil(device.c8y_IsDevice) &&\n isNil(device.c8y_IsLwm2mDevice)\n );\n }\n\n async openDrawer(deviceToReplace: IManagedObject, closeCallback?: () => void) {\n const { ReplaceDeviceWizardComponent } = await import(\n '@c8y/ngx-components/replace-device/replace-device-wizard'\n );\n\n const drawerRef = this.drawerService.openDrawer(ReplaceDeviceWizardComponent, {\n initialState: { deviceToReplace }\n });\n this.appendBreadcrumbs();\n drawerRef.onClosed$.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.removeBreadcrumbs();\n if (typeof closeCallback === 'function') {\n closeCallback();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private appendBreadcrumbs(): void {\n this.breadcrumbService.state.forEach(\n bc => (bc.items = [...bc.items, { label: gettext('Replace device'), path: undefined }])\n );\n this.breadcrumbService.refresh();\n }\n\n private removeBreadcrumbs(): void {\n this.breadcrumbService.state.forEach(bc => bc.items?.pop());\n this.breadcrumbService.refresh();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { ActionControlFactory, ActionControlHook, gettext } from '@c8y/ngx-components';\nimport { ReplaceDeviceService } from './replace-device.service';\n\n@Injectable()\nexport class ReplaceDeviceGridActionFactory implements ActionControlFactory {\n constructor(private replaceDeviceService: ReplaceDeviceService) {}\n\n get(): ActionControlHook {\n return {\n actionControls: {\n type: 'replace',\n icon: 'replace',\n showOnHover: true,\n text: gettext('Replace device'),\n priority: 500,\n callback: (mo: IManagedObject, reload) => {\n this.replaceDeviceService.openDrawer(mo, reload);\n },\n showIf: (mo: IManagedObject) => this.replaceDeviceService.canShowButton(mo)\n },\n matchesGrid(_, context) {\n return ['sub-assets-grid', 'device-grid-all'].indexOf(context?.key) !== -1;\n }\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n DocLink,\n gettext,\n hookDataGridActionControls,\n hookDocs,\n hookService\n} from '@c8y/ngx-components';\nimport { ReplaceDeviceGridActionFactory } from './replace-device-grid-action.factory';\nimport { ReplaceDeviceService } from './replace-device.service';\n\n@NgModule({\n imports: [CoreModule],\n providers: [\n hookService('additionalDeviceStatusButtons', ReplaceDeviceService),\n hookDataGridActionControls(ReplaceDeviceGridActionFactory),\n hookDocs({\n icon: 'c8y-icon c8y-icon-mobile-add',\n type: 'quicklink',\n target: null,\n priority: 123123123,\n label: gettext('Connect smartphone'),\n url: '?showConnectSmartphone=true'\n } as DocLink)\n ]\n})\nexport class ReplaceDeviceModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ReplaceDeviceService"],"mappings":"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"}