{"version":3,"file":"c8y-ngx-components-operations.mjs","sources":["../../operations/factories/nav.factory.ts","../../operations/factories/tabs.factory.ts","../../operations/operations.module.ts","../../operations/c8y-ngx-components-operations.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext, NavigatorNode, NavigatorNodeFactory } from '@c8y/ngx-components';\n\n@Injectable()\nexport class OperationsNavigationFactory implements NavigatorNodeFactory {\n  navs: NavigatorNode[] = [];\n\n  async get() {\n    if (this.navs.length === 0) {\n      this.navs.push(\n        new NavigatorNode({\n          label: gettext('Device control'),\n          path: 'devicecontrol/single',\n          icon: 'c8y-icon c8y-icon-device-control',\n          parent: gettext('Overviews'),\n          priority: 1360\n        })\n      );\n    }\n    return this.navs;\n  }\n}\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { gettext, Tab, TabFactory } from '@c8y/ngx-components';\r\n\r\n@Injectable()\r\nexport class OperationsTabsFactory implements TabFactory {\r\n  constructor(public router: Router) {}\r\n  get() {\r\n    const tabs: Tab[] = [];\r\n    if (this.router.url.match(/devicecontrol/g)) {\r\n      tabs.push({\r\n        path: 'devicecontrol/single',\r\n        label: gettext('Single operations'),\r\n        icon: 'c8y-icon c8y-icon-device-control',\r\n        priority: 1100,\r\n        orientation: 'horizontal'\r\n      } as Tab);\r\n      tabs.push({\r\n        path: 'devicecontrol/bulk',\r\n        label: gettext('Bulk operations'),\r\n        icon: 'c8y-icon c8y-icon-energy',\r\n        priority: 1050,\r\n        orientation: 'horizontal'\r\n      } as Tab);\r\n    }\r\n\r\n    return tabs;\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { CoreModule, hookNavigator, hookTab, Route } from '@c8y/ngx-components';\nimport { BulkOperationFromSingleModule } from '@c8y/ngx-components/operations/bulk-operation-from-single';\nimport { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\nimport { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationsStepperContainerModule } from '@c8y/ngx-components/operations/bulk-operations-stepper-container';\nimport { StepperBulkTypeConfigurationModule } from '@c8y/ngx-components/operations/stepper-bulk-type-configuration';\nimport { StepperBulkTypeDeviceProfileModule } from '@c8y/ngx-components/operations/stepper-bulk-type-device-profile';\nimport { StepperBulkTypeFirmwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-firmware';\nimport { StepperBulkTypeSoftwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-software';\n\nimport {\n  deviceControlOverviewFeatureProvider,\n  deviceControlTabFeatureProvider\n} from '@c8y/ngx-components/operations/operations-list';\nimport { OperationsNavigationFactory } from './factories/nav.factory';\nimport { OperationsTabsFactory } from './factories/tabs.factory';\n\nexport const operationsRoutes: Route[] = [\n  {\n    path: 'devicecontrol',\n    redirectTo: 'devicecontrol/single',\n    pathMatch: 'full'\n  }\n];\n\n/**\n * This module sets up the 'Device control' view. By importing it in your custom application you will have:\n * - a 'Device control' tab in device details view\n * - a 'Device control' entry in the 'Overviews' section of navigator\n * - 'Bulk operations' tab on the 'Device control' page\n * - list view of existing bulk operations with expandable details and options to filter\n * - guided stepper dialogs to schedule new bulk operations of supported types\n * (Configuration update, Firmware update, Software update, Apply device profile).\n *\n * Additionaly you can use the modules imported by {@link OperationsModule} separately to achieve\n * the results you wish to have in your application, e.g.:\n * - import {@link BulkOperationsListModule} and {@link BulkOperationsServiceModule}\n * to have an overview of existing bulk operation with expandable details\n * - additionaly import {@link BulkOperationsStepperContainerModule} and any of the existing\n * `StepperBulkType*Module` modules ({@link StepperBulkTypeConfigurationModule},\n * {@link StepperBulkTypeFirmwareModule}, {@link StepperBulkTypeSoftwareModule},\n * {@link StepperBulkTypeDeviceProfileModule}) to have the option\n * to create new bulk operation in a guided stepper dialog.\n *\n * ```typescript\n * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\n * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\n *\n * @NgModule({\n *   imports: [\n *     [...]\n *     BulkOperationsServiceModule,\n *     BulkOperationsListModule\n *   ],\n *   [...]\n * })\n * export class CustomOperationsModule {}```\n * respectively\n * ```typescript\n * import { BulkOperationsStepperContainerModule } from '@c8y/ngx-components/operations/bulk-operations-stepper-container';\n * import { BulkOperationsServiceModule } from '@c8y/ngx-components/operations/bulk-operations-service';\n * import { BulkOperationsListModule } from '@c8y/ngx-components/operations/bulk-operations-list';\n * import { StepperBulkTypeSoftwareModule } from '@c8y/ngx-components/operations/stepper-bulk-type-software';\n *\n * @NgModule({\n *   imports: [\n *     [...]\n *     BulkOperationsServiceModule,\n *     BulkOperationsListModule,\n *     BulkOperationsStepperContainerModule,\n *     StepperBulkTypeSoftwareModule\n *   ],\n *   [...]\n * })\n * export class CustomOperationsModule {}```\n * You can provide your own bulk operation stepper by registering a component via the `hookListBulkType`:\n *\n * ```typescript\n * import {\n *   hookListBulkType,\n *   baseUrl\n * } from '@c8y/ngx-components/operations/bulk-operations-service';\n *\n * [...]\n *\n * providers: [\n *   hookListBulkType({\n *     type: 'my-bulk-op-type',\n *     c8yIcon: 'c8y-tools',\n *     name: 'My bulk op type',\n *     path: `${baseUrl}my-type`,\n *     component: StepperMyBulkTypeComponent,\n *     fragments: ['c8y_MyType'],\n *     selected: false\n *   })\n * ]```\n */\n@NgModule({\n  imports: [\n    CoreModule,\n    RouterModule.forChild(operationsRoutes),\n    BulkOperationFromSingleModule,\n    BulkOperationsListModule,\n    BulkOperationsServiceModule,\n    BulkOperationsStepperContainerModule,\n    StepperBulkTypeConfigurationModule,\n    StepperBulkTypeFirmwareModule,\n    StepperBulkTypeSoftwareModule,\n    StepperBulkTypeDeviceProfileModule\n  ],\n  providers: [\n    hookTab(OperationsTabsFactory),\n    hookNavigator(OperationsNavigationFactory),\n    deviceControlOverviewFeatureProvider,\n    deviceControlTabFeatureProvider\n  ]\n})\nexport class OperationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}