{"version":3,"file":"c8y-ngx-components-child-devices.mjs","sources":["../../child-devices/child-devices.component.ts","../../child-devices/child-devices.component.html","../../child-devices/action-controls.factory.ts","../../child-devices/child-devices.guard.ts","../../child-devices/child-devices.module.ts","../../child-devices/c8y-ngx-components-child-devices.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n  Column,\n  ManagedObjectRealtimeService,\n  ProductExperienceDirective,\n  C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { DeviceGridService, DeviceGridComponent } from '@c8y/ngx-components/device-grid';\n\n@Component({\n  selector: 'c8y-child-devices',\n  templateUrl: './child-devices.component.html',\n  providers: [ManagedObjectRealtimeService],\n  imports: [DeviceGridComponent, ProductExperienceDirective, C8yTranslatePipe]\n})\nexport class ChildDevicesComponent implements OnInit {\n  id: string;\n  columns: Column[];\n\n  constructor(\n    private route: ActivatedRoute,\n    private deviceGridService: DeviceGridService\n  ) {}\n\n  async ngOnInit() {\n    await this.getAllDevices();\n    this.columns = this.deviceGridService.getChildDeviceGridColumns();\n  }\n\n  async getAllDevices() {\n    this.id = this.route.snapshot.parent.data.contextData;\n  }\n}\n","<div class=\"content-fullpage border-top border-bottom\">\n  <c8y-device-grid\n    [title]=\"'Child devices' | translate\"\n    [childDeviceGrid]=\"true\"\n    [columns]=\"columns\"\n    [parentDeviceId]=\"id\"\n    c8yProductExperience\n    [actionName]=\"'childDevices'\"\n  ></c8y-device-grid>\n</div>\n","import { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n  ActionControlFactory,\n  ActionControlHook,\n  BuiltInActionType,\n  Row\n} from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\n\n@Injectable({ providedIn: 'root' })\nexport class ChildDevicesActionControlsFactory implements ActionControlFactory {\n  constructor(private deviceGridService: DeviceGridService) {}\n\n  get(): ActionControlHook {\n    return {\n      actionControls: [\n        {\n          type: BuiltInActionType.Delete,\n          priority: -Infinity,\n          callback: async (item: Row, reload) => {\n            await this.deviceGridService.delete(item as IManagedObject);\n            reload();\n          }\n        }\n      ],\n      matchesGrid(route) {\n        return route.snapshot.routeConfig?.path === 'child-devices';\n      }\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { InventoryService } from '@c8y/client';\nimport { isEmpty } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class ChildDevicesTabGuard {\n  constructor(private inventory: InventoryService) {}\n\n  async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\n    const contextData = route.data.contextData;\n\n    const filter: object = {\n      pageSize: 1\n    };\n\n    if (isEmpty(contextData)) {\n      return true;\n    }\n    const device = await this.inventory.childDevicesList(contextData.id, filter);\n    const hasChildren = device.data.length;\n    return !!hasChildren;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  CoreModule,\n  hookDataGridActionControls,\n  hookRoute,\n  ViewContext\n} from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { ChildDevicesActionControlsFactory } from './action-controls.factory';\nimport { ChildDevicesComponent } from './child-devices.component';\nimport { ChildDevicesTabGuard } from './child-devices.guard';\n\n@NgModule({\n  imports: [CoreModule, DeviceGridModule, PopoverModule, ChildDevicesComponent],\n  providers: [\n    hookRoute({\n      context: ViewContext.Device,\n      path: 'child-devices',\n      priority: 1000,\n      icon: 'code-fork',\n      label: gettext('Child devices'),\n      component: ChildDevicesComponent,\n      canActivate: [ChildDevicesTabGuard]\n    }),\n    hookDataGridActionControls(ChildDevicesActionControlsFactory)\n  ]\n})\nexport class ChildDevicesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}