{"version":3,"file":"c8y-ngx-components-operations-operations-list.mjs","sources":["../../operations/operations-list/single-operations-tab.factory.ts","../../operations/operations-list/device-control.feature.ts","../../operations/operations-list/operations-list.service.ts","../../operations/operations-list/operations-list-item.component.ts","../../operations/operations-list/operations-list-item.component.html","../../operations/operations-list/operations-list.component.ts","../../operations/operations-list/operations-list.component.html","../../operations/operations-list/c8y-ngx-components-operations-operations-list.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { gettext } from '@c8y/ngx-components/gettext';\r\nimport { Tab, TabFactory } from '@c8y/ngx-components';\r\nimport { isNil, omitBy } from 'lodash-es';\r\n\r\nexport const SINGLE_OPERATIONS_TAB_CONFIG = new InjectionToken<Partial<Tab>>(\r\n  'SINGLE_OPERATIONS_TAB_CONFIG'\r\n);\r\n\r\n@Injectable()\r\nexport class SingleOperationsTabsFactory implements TabFactory {\r\n  constructor(\r\n    public router: Router,\r\n    @Optional()\r\n    @Inject(SINGLE_OPERATIONS_TAB_CONFIG)\r\n    private config: Tab\r\n  ) {}\r\n  get() {\r\n    const tabs: Tab[] = [];\r\n    if (this.router.url.match(/devicecontrol/g)) {\r\n      tabs.push(<Tab>{\r\n        ...{\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        },\r\n        ...omitBy(this.config, isNil)\r\n      });\r\n    }\r\n\r\n    return tabs;\r\n  }\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  hookNavigator,\n  hookRoute,\n  hookTab,\n  Route,\n  TabOrientation,\n  ViewContext\n} from '@c8y/ngx-components';\nimport {\n  DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG,\n  OperationsNavigationFactory\n} from '@c8y/ngx-components/operations/shared';\nimport { isNil, omitBy } from 'lodash-es';\nimport {\n  SINGLE_OPERATIONS_TAB_CONFIG,\n  SingleOperationsTabsFactory\n} from './single-operations-tab.factory';\n\nexport interface DeviceControlOverviewFeatureConfig {\n  path?: string;\n  tabLabel?: string;\n  tabIcon?: string;\n  tabPriority?: number;\n  tabOrientation?: TabOrientation;\n  navigatorLabel?: string;\n  navigatorIcon?: string;\n  navigatorPriority?: number;\n  navigatorParent?: string;\n}\n\nexport const deviceControlOverviewFeatureProviderFactory: (\n  config?: DeviceControlOverviewFeatureConfig\n) => EnvironmentProviders = (config?: DeviceControlOverviewFeatureConfig) => {\n  config = {\n    ...{ path: 'devicecontrol/single' },\n    ...omitBy(config, isNil)\n  };\n  return makeEnvironmentProviders([\n    hookRoute({\n      path: config.path,\n      loadComponent: () =>\n        import('./operations-list.component').then(m => m.OperationsListComponent)\n    }),\n    hookRoute({\n      path: config.path,\n      redirectTo: config.path,\n      pathMatch: 'full'\n    }),\n    /* Provide config for SingleOperationsTabsFactory */\n    {\n      provide: SINGLE_OPERATIONS_TAB_CONFIG,\n      useValue: {\n        path: config.path,\n        label: config.tabLabel,\n        icon: config.tabIcon,\n        priority: config.tabPriority,\n        orientation: config.tabOrientation\n      }\n    },\n    hookTab(SingleOperationsTabsFactory),\n    /* Provide config for OperationsNavigationFactory */\n    {\n      provide: DEVICE_CONTROL_NAVIGATOR_NODE_CONFIG,\n      useValue: {\n        path: config.path,\n        label: config.navigatorLabel,\n        icon: config.navigatorIcon,\n        priority: config.navigatorPriority,\n        parent: config.navigatorParent\n      }\n    },\n    hookNavigator(OperationsNavigationFactory)\n  ]);\n};\n\nexport const deviceControlTabFeatureProviderFactory: (\n  route?: Partial<Route>\n) => EnvironmentProviders = (route: Partial<Route>) =>\n  makeEnvironmentProviders([\n    hookRoute({\n      ...{\n        context: ViewContext.Device,\n        path: 'control',\n        loadComponent: () =>\n          import('./operations-list.component').then(m => m.OperationsListComponent),\n        label: gettext('Control'),\n        icon: 'c8y-icon c8y-icon-device-control',\n        priority: 100\n      },\n      ...omitBy(route, isNil)\n    })\n  ]);\n","import { Injectable, Optional } from '@angular/core';\nimport { IOperation, OperationService, SmartRulesService } from '@c8y/client';\nimport { Ng1SmartRulesService } from '@c8y/ngx-components/upgrade/upgraded-services';\n\n@Injectable({ providedIn: 'root' })\nexport class OperationsListService {\n  constructor(\n    private operationService: OperationService,\n    private smartRulesService: SmartRulesService,\n    @Optional() private ng1SmartRulesService: Ng1SmartRulesService\n  ) {}\n\n  getOperations(customFilter = {}) {\n    const filter = {\n      withTotalPages: true,\n      withDeleted: true,\n      pageSize: 50,\n      dateFrom: new Date(0).toISOString(),\n      revert: true,\n      ...customFilter\n    };\n\n    return this.operationService.list(filter);\n  }\n\n  isSmartRulesMicroserviceAvailable() {\n    return this.smartRulesService.isMicroserviceAvailable();\n  }\n\n  getSmartRulesCreatePermissions() {\n    if (this.ng1SmartRulesService && this.ng1SmartRulesService.permissionsCfgs) {\n      return this.ng1SmartRulesService.permissionsCfgs.create;\n    }\n  }\n\n  async createSmartRule(operation: Partial<IOperation>) {\n    if (this.ng1SmartRulesService) {\n      return await this.ng1SmartRulesService.addNewForOutputOperationWithUI(operation);\n    }\n  }\n}\n","import { Component, forwardRef, Input, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router, RouterLink } from '@angular/router';\nimport { IOperation, OperationStatus } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  CoreModule,\n  ListItemComponent,\n  PRODUCT_EXPERIENCE_EVENT_SOURCE,\n  ProductExperienceEvent,\n  ProductExperienceEventSource\n} from '@c8y/ngx-components';\nimport { BulkOperationListItemService } from '@c8y/ngx-components/operations/bulk-operation-list-item';\nimport { OperationsListItemDetailsModule } from '@c8y/ngx-components/operations/operations-list-item-details';\nimport {\n  OPERATION_STATUS_OPTIONS_MAP,\n  OperationsService,\n  OperationStatusOptionsMapShared\n} from '@c8y/ngx-components/operations/shared';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { OperationsListService } from './operations-list.service';\n\n@Component({\n  selector: 'c8y-operations-list-item',\n  templateUrl: './operations-list-item.component.html',\n  imports: [CoreModule, TooltipModule, OperationsListItemDetailsModule, RouterLink],\n  providers: [\n    {\n      provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,\n      useExisting: forwardRef(() => OperationsListItemComponent)\n    }\n  ]\n})\nexport class OperationsListItemComponent implements OnInit, ProductExperienceEventSource {\n  @Input()\n  operation: Partial<IOperation>;\n  @Input()\n  collapsed = true;\n  @Input()\n  readOnly = false;\n  @Input()\n  noExpandToggle = false;\n  @Input()\n  isSmartRulesMicroserviceAvailable: boolean;\n  @ViewChild('listItem', { static: true }) listItem: ListItemComponent;\n  refreshLoading = false;\n  OPERATION_STATUS = OperationStatus;\n  OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared = OPERATION_STATUS_OPTIONS_MAP;\n  deviceId: string | number =\n    this.route.snapshot.parent?.data.contextData?.id ||\n    this.route.snapshot.firstChild?.data.contextData?.id;\n  inventoryPermissions: string[];\n  smartRuleAdminPermissions: string[];\n  operationTitle: string;\n  productExperienceEvent: ProductExperienceEvent;\n\n  constructor(\n    public bulkOperationListItemService: BulkOperationListItemService,\n    public sharedService: OperationsService,\n    public operationsListService: OperationsListService,\n    private route: ActivatedRoute,\n    private router: Router\n  ) {}\n\n  ngOnInit() {\n    this.updateOperationTitle();\n\n    const smartRulesCreatePermissions = this.operationsListService.getSmartRulesCreatePermissions();\n    if (smartRulesCreatePermissions) {\n      this.inventoryPermissions = smartRulesCreatePermissions[0].anyRole;\n      this.smartRuleAdminPermissions = smartRulesCreatePermissions[1].anyRole;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.operation && changes.operation.currentValue) {\n      this.updateOperationTitle();\n    }\n  }\n\n  createCustomizedBulkOperation($event?: Event) {\n    if ($event) {\n      $event.stopPropagation();\n    }\n\n    this.router.navigateByUrl(`/devicecontrol/single/create-bulk/${this.operation.id}`);\n  }\n\n  private updateOperationTitle(): void {\n    this.operationTitle =\n      this.operation?.c8y_Command?.text ||\n      this.operation?.description ||\n      gettext('No command text or description available');\n  }\n}\n","<c8y-li\n  class=\"c8y-list__item--double-actions\"\n  [ngClass]=\"{ 'c8y-list__item--no-expand': noExpandToggle }\"\n  [collapsed]=\"collapsed\"\n  #listItem\n  id=\"{{ operation.id }}\"\n>\n  <c8y-li-icon>\n    <button\n      class=\"btn-clean\"\n      type=\"button\"\n      [attr.aria-label]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n      [tooltip]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].label | translate\"\n      placement=\"right\"\n      container=\"body\"\n      [delay]=\"500\"\n    >\n      <i\n        [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].icon\"\n        [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].styleClass\"\n      ></i>\n    </button>\n  </c8y-li-icon>\n  <div [ngClass]=\"{ 'content-flex-58': !readOnly, 'content-flex-50': readOnly }\">\n    <div class=\"col-5\">\n      <span title=\"{{ operationTitle | translate }}\" class=\"text-truncate\">\n        {{ operationTitle | translate }}\n      </span>\n    </div>\n    <div class=\"col-3\" *ngIf=\"!deviceId\">\n      <a\n        title=\"{{ operation.deviceName }}\"\n        [routerLink]=\"['/device', operation.deviceId, 'device-info']\"\n        routerLinkActive=\"active\"\n        class=\"text-truncate\"\n      >\n        {{ operation.deviceName }}\n      </a>\n    </div>\n    <div class=\"col-3\">\n      <small class=\"icon-flex text-muted\">\n        <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n        {{ operation.creationTime | c8yDate }}\n      </small>\n    </div>\n  </div>\n  <ng-container *ngIf=\"!readOnly\">\n    <c8y-li-action\n      label=\"{{ 'Schedule as bulk operation' | translate }}\"\n      (click)=\"createCustomizedBulkOperation($event)\"\n      icon=\"c8y-icon c8y-icon-energy\"\n      c8yProductExperience\n      inherit\n    ></c8y-li-action>\n    <ng-container *c8yIfAllowed=\"inventoryPermissions; allowAny: true\">\n      <ng-container *c8yIfAllowed=\"smartRuleAdminPermissions; allowAny: true\">\n        <c8y-li-action\n          *ngIf=\"isSmartRulesMicroserviceAvailable\"\n          label=\"{{ 'Create smart rule' | translate }}\"\n          (click)=\"operationsListService.createSmartRule(operation)\"\n          icon=\"sliders\"\n          c8yProductExperience\n          inherit\n        ></c8y-li-action>\n      </ng-container>\n    </ng-container>\n    <c8y-li-action\n      *ngIf=\"operation.status === OPERATION_STATUS.PENDING\"\n      label=\"{{ 'Cancel operation' | translate }}\"\n      (click)=\"$event.stopPropagation(); sharedService.cancel(operation)\"\n      icon=\"times-circle\"\n      c8yProductExperience\n      inherit\n    ></c8y-li-action>\n  </ng-container>\n  <c8y-li-collapse class=\"m-b-16\">\n    <c8y-operation-details-tabs\n      *ngIf=\"!listItem.collapsed\"\n      [operation]=\"operation\"\n      [bulkOperationModalDetailsService]=\"bulkOperationListItemService\"\n    ></c8y-operation-details-tabs>\n  </c8y-li-collapse>\n</c8y-li>\n","import { Component, forwardRef, input, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IOperation, IResultList } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n  CoreModule,\n  OperationRealtimeService,\n  PRODUCT_EXPERIENCE_EVENT_SOURCE,\n  ProductExperienceEvent,\n  ProductExperienceEventSource\n} from '@c8y/ngx-components';\nimport {\n  SINGLE_OPERATION_EVENT_DEVICE_TAB,\n  SINGLE_OPERATION_EVENT_OVERVIEW\n} from '@c8y/ngx-components/operations/product-experience';\nimport {\n  OPERATION_STATUS_OPTIONS_MAP,\n  OperationStatusOption,\n  OperationStatusOptionsMapShared\n} from '@c8y/ngx-components/operations/shared';\nimport {\n  StatusFilterComponent,\n  StatusFilterModule\n} from '@c8y/ngx-components/operations/status-filter';\nimport { flatten } from 'lodash-es';\nimport { BehaviorSubject, combineLatest, Observable, pipe } from 'rxjs';\nimport { map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { OperationsListItemComponent } from './operations-list-item.component';\nimport { OperationsListService } from './operations-list.service';\n\n@Component({\n  selector: 'c8y-operations-list',\n  templateUrl: 'operations-list.component.html',\n  imports: [CoreModule, StatusFilterModule, OperationsListItemComponent],\n  providers: [\n    OperationRealtimeService,\n    {\n      provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,\n      useExisting: forwardRef(() => OperationsListComponent)\n    }\n  ]\n})\nexport class OperationsListComponent implements ProductExperienceEventSource {\n  fragmentType = input<string>();\n  readOnlyItems = input(false);\n  deviceId: string | number = this.route.snapshot.parent.data.contextData?.id;\n  OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared = OPERATION_STATUS_OPTIONS_MAP;\n\n  title: string;\n  refreshLoading = false;\n  isSmartRulesMicroserviceAvailable = false;\n  showOverviewBreadcrumbs = false;\n  statusFilter$: BehaviorSubject<OperationStatusOption[]> = new BehaviorSubject(null);\n  reload$: BehaviorSubject<void> = new BehaviorSubject(null);\n  @ViewChild('statusFilter', { static: true }) statusFilter: StatusFilterComponent;\n\n  operations$: Observable<IResultList<IOperation>> = combineLatest(\n    this.statusFilter$,\n    this.reload$\n  ).pipe(\n    tap(() => {\n      this.refreshLoading = true;\n    }),\n    switchMap(([statusFilters]) => this.filter(statusFilters)),\n    tap(() => {\n      this.refreshLoading = false;\n    }),\n    shareReplay(1)\n  );\n\n  operationsFilterPipe = pipe(\n    map((operations: IOperation[]) => {\n      const statusFilters = this.statusFilter$.getValue();\n      if (!statusFilters || !statusFilters.length) {\n        return operations;\n      }\n      const allowedStatuses = flatten(statusFilters.map(sf => sf.status));\n      return operations.filter(op => allowedStatuses.includes(op.status));\n    })\n  );\n\n  productExperienceEvent: ProductExperienceEvent = {\n    eventName: !!this.deviceId ? SINGLE_OPERATION_EVENT_DEVICE_TAB : SINGLE_OPERATION_EVENT_OVERVIEW\n  };\n\n  constructor(\n    public realtime: OperationRealtimeService,\n    private operationsListService: OperationsListService,\n    private route: ActivatedRoute\n  ) {\n    this.title = this.route.snapshot.parent.data.contextData\n      ? this.route.snapshot.parent.data.contextData.name\n      : gettext('Single operations');\n    this.showOverviewBreadcrumbs = !this.deviceId;\n  }\n\n  async ngOnInit() {\n    this.isSmartRulesMicroserviceAvailable =\n      await this.operationsListService.isSmartRulesMicroserviceAvailable();\n  }\n\n  filter(statusFilters: OperationStatusOption[]) {\n    const status =\n      statusFilters && statusFilters.length > 0\n        ? {\n            status: flatten(statusFilters.map(statusFilter => statusFilter.status))\n          }\n        : {};\n\n    return this.getOperations(status);\n  }\n\n  getOperations(filter?) {\n    let queryFilter = this.deviceId ? { ...filter, deviceId: this.deviceId } : filter;\n    if (this.fragmentType()) {\n      queryFilter = { ...queryFilter, fragmentType: this.fragmentType() };\n    }\n    return this.operationsListService.getOperations(queryFilter);\n  }\n\n  compareOperations(operationA: IOperation, operationB: IOperation): number {\n    return (\n      new Date(operationA.creationTime).getTime() - new Date(operationB.creationTime).getTime()\n    );\n  }\n}\n","<c8y-title>{{ title | translate }}</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"showOverviewBreadcrumbs\">\n  <c8y-breadcrumb-item\n    [icon]=\"'c8y-overviews'\"\n    [label]=\"'Overviews' | translate\"\n  ></c8y-breadcrumb-item>\n  <c8y-breadcrumb-item\n    [icon]=\"'c8y-device-control'\"\n    [label]=\"'Device Control' | translate\"\n    [path]=\"'devicecontrol/single'\"\n  ></c8y-breadcrumb-item>\n  <c8y-breadcrumb-item\n    [icon]=\"'c8y-device-control'\"\n    [label]=\"'Single operations' | translate\"\n  ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n  [placement]=\"'left'\"\n  itemClass=\"navbar-form\"\n>\n  <c8y-status-filter\n    #statusFilter\n    [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n    (onFilterChanged)=\"statusFilter$.next($event)\"\n    c8yProductExperience\n    inherit\n  ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n  <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n  <button\n    class=\"btn btn-link d-flex a-i-center\"\n    title=\"{{ 'Reload' | translate }}\"\n    (click)=\"reload$.next()\"\n  >\n    <i\n      class=\"m-r-4\"\n      c8yIcon=\"refresh\"\n      [ngClass]=\"{ 'icon-spin': refreshLoading }\"\n    ></i>\n    <span class=\"text-truncate\">\n      {{ 'Reload' | translate }}\n    </span>\n  </button>\n</c8y-action-bar-item>\n\n<ng-content select=\"c8y-help\">\n  <c8y-help\n    src=\"/docs/device-management-application/monitoring-and-controlling-devices/#to-view-single-operations\"\n  ></c8y-help>\n</ng-content>\n\n<!-- Empty state  -->\n<c8y-ui-empty-state\n  [icon]=\"'c8y-energy'\"\n  [title]=\"'No items to display.' | translate\"\n  [subtitle]=\"'Operations will be displayed here.' | translate\"\n  *ngIf=\"(operations$ | async)?.data.length === 0 && !(statusFilter$ | async)\"\n></c8y-ui-empty-state>\n<!-- No results empty state -->\n<c8y-ui-empty-state\n  [icon]=\"'search'\"\n  [title]=\"'No results to display.' | translate\"\n  [subtitle]=\"'Adjust or reset the filter.' | translate\"\n  *ngIf=\"(operations$ | async)?.data.length === 0 && (statusFilter$ | async)\"\n>\n  <button\n    class=\"btn btn-primary\"\n    title=\"{{ 'Reset filter' | translate }}\"\n    type=\"button\"\n    (click)=\"statusFilter.reset()\"\n    translate\n  >\n    Reset filter\n  </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group class=\"m-b-24\">\n  <div\n    class=\"page-sticky-header c8y-list__item c8y-list__item--double-actions hidden-xs\"\n    *ngIf=\"(operations$ | async)?.data.length\"\n  >\n    <div class=\"c8y-list__item__block\">\n      <div class=\"c8y-list__item__icon\">\n        <i class=\"p-l-24\"></i>\n      </div>\n      <div class=\"c8y-list__item__body text-truncate-wrap\">\n        <div class=\"content-flex-57\">\n          <div class=\"col-5\">\n            {{ 'Operation' | translate }}\n          </div>\n          <div\n            class=\"flex-grow\"\n            *ngIf=\"!deviceId\"\n          >\n            {{ 'Device' | translate }}\n          </div>\n          <div class=\"col-4\">\n            {{ 'Date created' | translate }}\n          </div>\n        </div>\n      </div>\n      <div class=\"c8y-list__item__actions\"></div>\n    </div>\n  </div>\n  <div\n    class=\"d-contents\"\n    *c8yFor=\"\n      let op of operations$ | async;\n      let i = index;\n      realtime: realtime;\n      realtimeOptions: { entityOrId: deviceId, removeOnUpdate: true, insertOnUpdate: true };\n      comparator: compareOperations.bind(this);\n      loadMore: 'auto';\n      pipe: operationsFilterPipe\n    \"\n  >\n    <c8y-operations-list-item\n      class=\"d-contents\"\n      [operation]=\"op\"\n      [readOnly]=\"readOnlyItems()\"\n      [isSmartRulesMicroserviceAvailable]=\"isSmartRulesMicroserviceAvailable\"\n      (reload)=\"reload$.next()\"\n      c8yProductExperience\n      inherit\n    ></c8y-operations-list-item>\n  </div>\n</c8y-list-group>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.OperationsListService","i5","i6","i2.OperationsListService","i3","i4"],"mappings":"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"}