{"version":3,"file":"c8y-ngx-components-operations-bulk-single-operations-list.mjs","sources":["../../operations/bulk-single-operations-list/single-operation-item.component.ts","../../operations/bulk-single-operations-list/single-operation-item.component.html","../../operations/bulk-single-operations-list/single-operations-list.component.ts","../../operations/bulk-single-operations-list/single-operations-list.component.html","../../operations/bulk-single-operations-list/bulk-single-operations-list.module.ts","../../operations/bulk-single-operations-list/c8y-ngx-components-operations-bulk-single-operations-list.ts"],"sourcesContent":["import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { InventoryService, IOperation, OperationService } from '@c8y/client';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport {\n  ACTIONS_OPERATIONS,\n  BULK_OPERATION_EVENT,\n  COMPONENTS\n} from '@c8y/ngx-components/operations/product-experience';\nimport {\n  OperationStatusOptionsMapShared,\n  OPERATION_STATUS_LABELS,\n  OPERATION_STATUS_OPTIONS_MAP\n} from '@c8y/ngx-components/operations/shared';\nimport { omit } from 'lodash-es';\n\n@Component({\n  selector: 'c8y-single-operation-item',\n  templateUrl: './single-operation-item.component.html'\n})\nexport class SingleOperationItemComponent {\n  BULK_OPERATION_EVENT = BULK_OPERATION_EVENT;\n  ACTIONS = ACTIONS_OPERATIONS;\n  COMPONENTS = COMPONENTS;\n  device = {};\n  OPERATION_STATUS_LABELS = OPERATION_STATUS_LABELS;\n  OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared = OPERATION_STATUS_OPTIONS_MAP;\n  @Input()\n  operation: IOperation;\n  @Input()\n  readOnly = false;\n  @ViewChild('failureReason', { static: true }) failureReasonRef: ElementRef;\n\n  constructor(\n    private alertService: AlertService,\n    private inventoryService: InventoryService,\n    private operationService: OperationService\n  ) {}\n\n  async ngOnInit() {\n    this.device = (await this.inventoryService.detail(this.operation.deviceId))?.data;\n  }\n\n  async retrySingleOperation(singleOperation) {\n    const operationToCreate = omit(singleOperation, [\n      'id',\n      'self',\n      'status',\n      'failureReason',\n      'creationTime',\n      'delivery'\n    ]);\n\n    try {\n      await this.operationService.create(operationToCreate);\n      this.alertService.success(gettext('Operation created.'));\n    } catch (er) {\n      this.alertService.addServerFailure(er);\n    }\n  }\n}\n","<c8y-li class=\"c8y-list__item--double-actions\">\n  <c8y-li-icon>\n    <i\n      [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].icon\"\n      [tooltip]=\"operation.status.toString() | translate\"\n      [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[operation.status].styleClass\"\n    ></i>\n  </c8y-li-icon>\n  <div [ngClass]=\"{ 'content-flex-80': !readOnly, 'content-flex-50': readOnly }\">\n    <div class=\"col-4\">\n      <span class=\"m-r-4\">\n        <device-status [mo]=\"device\"></device-status>\n      </span>\n      <a\n        [routerLink]=\"['/device', operation.deviceId, 'device-info']\"\n        routerLinkActive=\"active\"\n      >\n        {{ operation.deviceName }}\n      </a>\n    </div>\n    <div class=\"col-3\">\n      <small class=\"icon-flex text-muted\">\n        <i\n          class=\"m-r-4\"\n          c8yIcon=\"calendar\"\n        ></i>\n        {{ operation.creationTime | c8yDate }}\n      </small>\n    </div>\n    <div class=\"col-5\">\n      <div class=\"d-flex a-i-center\">\n        <span\n          class=\"text-truncate\"\n          #failureReason\n        >\n          {{ operation.failureReason | translate }}\n        </span>\n        <button\n          class=\"btn-help btn-help--sm\"\n          [attr.aria-label]=\"'Help' | translate\"\n          popover=\"{{ operation.failureReason | translate }}\"\n          placement=\"left\"\n          triggers=\"focus\"\n          type=\"button\"\n          *ngIf=\"failureReason.offsetWidth < failureReason.scrollWidth\"\n        >\n          <i [c8yIcon]=\"'info-circle'\"></i>\n        </button>\n        <div\n          class=\"showOnHover p-l-8 p-r-8 fit-h-20 m-l-auto\"\n          *ngIf=\"\n            !readOnly &&\n            operation.status.toString() == OPERATION_STATUS_OPTIONS_MAP.FAILED.status.toString()\n          \"\n        >\n          <button\n            class=\"btn btn-default btn-xs\"\n            title=\"{{ 'Retry operation' | translate }}\"\n            type=\"button\"\n            (click)=\"retrySingleOperation(operation)\"\n            c8yProductExperience\n            [actionName]=\"BULK_OPERATION_EVENT\"\n            [actionData]=\"{ action: ACTIONS.RETRY, component: COMPONENTS.SINGLE_OPERATION_ITEM }\"\n          >\n            <i [c8yIcon]=\"'repeat m-r-4'\"></i>\n            {{ 'Retry operation' | translate }}\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</c8y-li>\n","import {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  ViewChild\n} from '@angular/core';\nimport { gettext } from '@c8y/ngx-components';\nimport { IOperation, IOperationBulk, IResultList, OperationStatus } from '@c8y/client';\nimport { StatusFilterComponent } from '@c8y/ngx-components/operations/status-filter';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport {\n  OperationStatusOption,\n  OperationStatusOptionsMapShared,\n  OPERATION_STATUS_LABELS,\n  OPERATION_STATUS_OPTIONS_MAP\n} from '@c8y/ngx-components/operations/shared';\n\n@Component({\n  selector: 'c8y-single-operations-list',\n  templateUrl: './single-operations-list.component.html'\n})\nexport class SingleOperationsListComponent implements AfterViewInit, OnChanges {\n  @Input()\n  bulkOperation: Partial<IOperationBulk>;\n  @Input()\n  readOnly = false;\n  @Output() onRetryFailedOperations: EventEmitter<Partial<IOperationBulk>> = new EventEmitter();\n\n  @ViewChild(StatusFilterComponent, { static: false })\n  statusFilter: StatusFilterComponent;\n\n  OPERATION_STATUS = { ...OperationStatus, ALL: gettext('ALL') };\n  OPERATION_STATUS_LABELS = OPERATION_STATUS_LABELS;\n  OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared = OPERATION_STATUS_OPTIONS_MAP;\n  singleOperations: IResultList<IOperation>;\n\n  constructor(private bulkOperationsService: BulkOperationsService) {}\n\n  async ngAfterViewInit() {\n    if (this.statusFilter) {\n      this.filterOperationsByType();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.bulkOperation && !changes.bulkOperation.firstChange) {\n      this.filterOperationsByType();\n    }\n  }\n\n  filterOperationsByType() {\n    if (this.statusFilter) {\n      const typeFilter = this.getFilterTypeOfSingleOperations();\n      this.statusFilter.preset(\n        typeFilter === this.OPERATION_STATUS.ALL\n          ? []\n          : [{ label: this.OPERATION_STATUS_LABELS[typeFilter] }]\n      );\n    } else {\n      setTimeout(this.filterOperationsByType.bind(this));\n    }\n  }\n\n  getFilterTypeOfSingleOperations() {\n    const progress = this.bulkOperation.progress;\n\n    if (progress.failed > 0) {\n      return this.OPERATION_STATUS.FAILED;\n    } else if (progress.failed === 0 && progress.successful === 0 && progress.pending === 0) {\n      return this.OPERATION_STATUS.EXECUTING;\n    } else if (progress.failed === 0 && progress.successful === 0 && progress.executing === 0) {\n      return this.OPERATION_STATUS.PENDING;\n    } else if (progress.failed === 0 && progress.pending === 0 && progress.executing === 0) {\n      return this.OPERATION_STATUS.SUCCESSFUL;\n    }\n\n    return this.OPERATION_STATUS.ALL;\n  }\n\n  async getOperationsByStatus(filter: OperationStatusOption[]) {\n    this.singleOperations = await this.bulkOperationsService.getSingleOperationsByStatus(\n      filter[0] && filter[0].label,\n      this.bulkOperation.id\n    );\n  }\n\n  retryBulkOperation() {\n    this.onRetryFailedOperations.emit(this.bulkOperation);\n  }\n}\n","<ng-container\n  *ngIf=\"\n    bulkOperation.progress.failed ||\n    bulkOperation.progress.executing ||\n    bulkOperation.progress.pending ||\n    bulkOperation.progress.successful\n  \"\n>\n  <div class=\"legend form-block p-t-16 m-b-0\" translate>Operations</div>\n  <div class=\"d-flex a-i-center\">\n    <div class=\"d-flex a-i-center p-b-8\">\n      <span class=\"m-r-4 text-medium\" translate>Filter by status</span>\n      <c8y-status-filter\n        small\n        [options]=\"OPERATION_STATUS_OPTIONS_MAP\"\n        (onFilterChanged)=\"getOperationsByStatus($event)\"\n      ></c8y-status-filter>\n    </div>\n    <div class=\"m-l-auto p-b-8\" *ngIf=\"!readOnly && bulkOperation.progress.failed > 0\">\n      <button\n        class=\"btn btn-navbar\"\n        (click)=\"retryBulkOperation()\"\n        title=\"{{ 'Retry failed operations' | translate }}\"\n      >\n        <i c8yIcon=\"repeat\" class=\"m-r-4\"></i> <span translate>Retry failed operations</span>\n      </button>\n    </div>\n  </div>\n  <div class=\"inner-scroll\">\n    <c8y-list-group>\n      <div class=\"d-contents\" *c8yFor=\"let operation of singleOperations; loadMore: 'auto'\">\n        <c8y-single-operation-item [operation]=\"operation\" [readOnly]=\"readOnly\" class=\"d-contents\">\n        </c8y-single-operation-item>\n      </div>\n\n      <c8y-li *ngIf=\"singleOperations && singleOperations.data.length === 0\">\n        <c8y-li-body>\n          <div class=\"c8y-empty-state text-center\">\n            <h2 class=\"c8y-icon c8y-icon-energy c8y-icon-duocolor m-b-16\"></h2>\n            <div>\n              <h3 translate>No single operations of the selected status to display.</h3>\n              <p class=\"m-b-16\" translate>Single operations will be displayed here</p>\n            </div>\n          </div>\n        </c8y-li-body>\n      </c8y-li>\n    </c8y-list-group>\n  </div>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\n\nimport { CoreModule } from '@c8y/ngx-components';\nimport { StatusFilterModule } from '@c8y/ngx-components/operations/status-filter';\n\nimport { SingleOperationItemComponent } from './single-operation-item.component';\nimport { SingleOperationsListComponent } from './single-operations-list.component';\n\n/**\n * This module allows for displaying the list of single operations in a bulk operations details.\n */\n@NgModule({\n  imports: [CoreModule, PopoverModule, RouterModule, TooltipModule, StatusFilterModule],\n  declarations: [SingleOperationsListComponent, SingleOperationItemComponent],\n  exports: [SingleOperationsListComponent, SingleOperationItemComponent]\n})\nexport class BulkSingleOperationsListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4","i5.SingleOperationItemComponent"],"mappings":"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"}