{"version":3,"file":"c8y-ngx-components-operations-operations-timeline.mjs","sources":["../../operations/operations-timeline/operations-timeline.component.ts","../../operations/operations-timeline/operations-timeline.component.html","../../operations/operations-timeline/operations-timeline.module.ts","../../operations/operations-timeline/c8y-ngx-components-operations-operations-timeline.ts"],"sourcesContent":["import { Component, Input, TemplateRef } from '@angular/core';\nimport { IOperation, IResultList } from '@c8y/client';\nimport { ForOfFilterPipe, OperationRealtimeService } from '@c8y/ngx-components';\nimport {\n  OperationsService,\n  OperationStatusOptionsMapShared,\n  OPERATION_STATUS_OPTIONS_MAP\n} from '@c8y/ngx-components/operations/shared';\nimport { pipe } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n@Component({\n  selector: 'c8y-operations-timeline',\n  templateUrl: 'operations-timeline.component.html'\n})\nexport class OperationsTimelineComponent {\n  @Input()\n  operations: IResultList<IOperation>;\n\n  @Input()\n  sourceId: string;\n\n  @Input()\n  filterPipe: ForOfFilterPipe<IOperation> = pipe(tap());\n\n  @Input()\n  bodyTemplate: TemplateRef<any>;\n\n  @Input()\n  footerTemplates: Array<TemplateRef<any>> = [];\n\n  @Input()\n  propertiesToHide: string[] = [];\n\n  OPERATION_STATUS_OPTIONS_MAP: OperationStatusOptionsMapShared = OPERATION_STATUS_OPTIONS_MAP;\n\n  constructor(\n    public realtime: OperationRealtimeService,\n    public operationsService: OperationsService\n  ) {}\n}\n","<c8y-ui-empty-state\n  [icon]=\"'c8y-energy'\"\n  [title]=\"'No recent operations found.' | translate\"\n  ng-if=\"!operations?.data || !operations?.data?.length\"\n  [horizontal]=\"true\"\n></c8y-ui-empty-state>\n<c8y-list-group>\n  <c8y-li-timeline\n    *c8yFor=\"\n      let op of operations;\n      pipe: filterPipe;\n      realtime: realtime;\n      realtimeOptions: { entityOrId: sourceId }\n    \"\n  >\n    {{ op.creationTime | date: 'medium' }}\n    <c8y-li\n      #li\n      (click)=\"li.toggleCollapsed()\"\n    >\n      <c8y-li-icon>\n        <i\n          [c8yIcon]=\"OPERATION_STATUS_OPTIONS_MAP[op.status].icon\"\n          [tooltip]=\"op.status | translate\"\n          container=\"body\"\n          [ngClass]=\"OPERATION_STATUS_OPTIONS_MAP[op.status].styleClass\"\n          [delay]=\"500\"\n        ></i>\n      </c8y-li-icon>\n      <c8y-li-body>\n        <div class=\"d-flex text-break-word\">\n          <div>\n            {{ op.status | translate }}\n            <br class=\"visible-xs visible-sm\" />\n            <ng-container\n              *ngIf=\"bodyTemplate; else defaultBody\"\n              [ngTemplateOutlet]=\"bodyTemplate\"\n              [ngTemplateOutletContext]=\"{ $implicit: op }\"\n            ></ng-container>\n            <ng-template #defaultBody>\n              <small>{{ op.description }}</small>\n            </ng-template>\n          </div>\n          <div\n            class=\"m-l-auto showOnHover\"\n            *ngIf=\"op.status === 'PENDING'\"\n          >\n            <button\n              class=\"btn btn-dot btn-dot--danger\"\n              [attr.aria-label]=\"'Cancel operation' | translate\"\n              tooltip=\"{{ 'Cancel operation' | translate }}\"\n              placement=\"left\"\n              type=\"button\"\n              [delay]=\"500\"\n              (click)=\"$event.stopPropagation(); operationsService.cancel(op)\"\n            >\n              <i c8yIcon=\"minus-circle\"></i>\n            </button>\n          </div>\n        </div>\n      </c8y-li-body>\n\n      <c8y-li-collapse>\n        <div\n          class=\"legend form-block\"\n          translate\n        >\n          Details\n        </div>\n        <ul class=\"list-unstyled small\">\n          <li\n            class=\"p-t-4 p-b-4 d-flex separator-bottom\"\n            *ngFor=\"let prop of operationsService.getStandardKeys(op) | keyvalue\"\n          >\n            <label class=\"small m-b-0 m-r-8 a-s-start\">\n              {{ prop.value | translate }}\n            </label>\n            <span class=\"m-l-auto text-break-word\">\n              {{ op[prop.key] | translate }}\n            </span>\n          </li>\n          <li\n            class=\"p-t-4 p-b-4 d-flex separator-bottom\"\n            *ngFor=\"let key of operationsService.getNonStandardKeys(op, propertiesToHide)\"\n          >\n            <label class=\"small m-b-0 m-r-8 a-s-start\">\n              {{ key | humanize | translate }}\n            </label>\n            <span class=\"m-l-auto text-code\">\n              {{ op[key] | json }}\n            </span>\n          </li>\n        </ul>\n        <ng-container\n          *ngFor=\"let footer of footerTemplates\"\n          [ngTemplateOutlet]=\"footer\"\n          [ngTemplateOutletContext]=\"{ $implicit: op }\"\n        ></ng-container>\n      </c8y-li-collapse>\n    </c8y-li>\n  </c8y-li-timeline>\n</c8y-list-group>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@c8y/ngx-components';\nimport { OperationsSharedModule } from '@c8y/ngx-components/operations/shared';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { OperationsTimelineComponent } from './operations-timeline.component';\n\n@NgModule({\n  imports: [CommonModule, CoreModule, CollapseModule, TooltipModule, OperationsSharedModule],\n  declarations: [OperationsTimelineComponent],\n  exports: [OperationsTimelineComponent]\n})\nexport class OperationsTimelineModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}