{"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 {\n  ForOfFilterPipe,\n  OperationRealtimeService,\n  EmptyStateComponent,\n  ListGroupComponent,\n  ForOfDirective,\n  ListItemTimelineComponent,\n  ListItemComponent,\n  ListItemIconComponent,\n  IconDirective,\n  ListItemBodyComponent,\n  ListItemCollapseComponent,\n  C8yTranslateDirective,\n  C8yTranslatePipe,\n  DatePipe,\n  HumanizePipe\n} from '@c8y/ngx-components';\nimport {\n  OPERATION_STATUS_OPTIONS_MAP,\n  OperationsService,\n  OperationStatusOptionsMapShared\n} from '@c8y/ngx-components/operations/shared';\nimport { pipe } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\nimport { NgClass, NgIf, NgTemplateOutlet, NgFor, JsonPipe, KeyValuePipe } from '@angular/common';\n\n@Component({\n  selector: 'c8y-operations-timeline',\n  templateUrl: 'operations-timeline.component.html',\n  imports: [\n    EmptyStateComponent,\n    ListGroupComponent,\n    ForOfDirective,\n    ListItemTimelineComponent,\n    ListItemComponent,\n    ListItemIconComponent,\n    IconDirective,\n    TooltipDirective,\n    NgClass,\n    ListItemBodyComponent,\n    NgIf,\n    NgTemplateOutlet,\n    ListItemCollapseComponent,\n    C8yTranslateDirective,\n    NgFor,\n    JsonPipe,\n    DatePipe,\n    KeyValuePipe,\n    C8yTranslatePipe,\n    HumanizePipe\n  ]\n})\nexport class OperationsTimelineComponent<B, F> {\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<B>;\n\n  @Input()\n  footerTemplates: Array<TemplateRef<F>> = [];\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  *ngIf=\"!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 | c8yDate: '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 { NgModule } from '@angular/core';\nimport { OperationsTimelineComponent } from './operations-timeline.component';\n\n/**\n * @deprecated Use `OperationsTimelineComponent` as a standalone component instead.\n */\n@NgModule({\n  imports: [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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"}