@c8y/ngx-components 1010.0.33 → 1010.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-operations-bulk-operations-list.js","sources":["ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-wrapper.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-details.service.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/modals/bulk-operations-modal.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/modals/bulk-operation-modals.service.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/modals/bulk-operations-reschedule-modal.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-list-item.model.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-list-item.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operations-list.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-details-tabs.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-details.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/single-operation-item.model.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/single-operations-list.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/single-operation-item.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/type-list/bulk-operation-type-list.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operations-list.module.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/c8y-ngx-components-operations-bulk-operations-list.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { BulkOperationDetailsService } from './bulk-operation-details.service';\n\n@Component({\n selector: 'c8y-bulk-operations-wrapper',\n templateUrl: './bulk-operation-wrapper.component.html'\n})\nexport class BulkOperationWrapperComponent {\n @Input() bulkOperation: Partial<IOperationBulk>;\n\n constructor(\n public bulkOperationDetailsService: BulkOperationDetailsService,\n public modalRef: BsModalRef\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\n\n@Injectable()\nexport class BulkOperationDetailsService {\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private modalService: BsModalService\n ) {}\n\n async openDetails(bulkOperationId) {\n const bulkOperation: IOperationBulk = (await this.bulkOperationsService.getBulkOperationById(\n bulkOperationId\n )).data;\n const initialState = { bulkOperation };\n this.modalService.show(BulkOperationWrapperComponent, {\n initialState,\n class: 'modal-lg'\n });\n }\n}\n","import { Component, ViewContainerRef, ViewChild, ComponentFactoryResolver } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { OperationType } from '@c8y/ngx-components/operations/bulk-operations-service';\n\n@Component({\n selector: 'c8y-bulk-operations-modal',\n templateUrl: 'bulk-operations-modal.component.html'\n})\nexport class BulkOperationsModalComponent {\n @ViewChild('container', { static: false, read: ViewContainerRef }) container;\n showComponent: boolean = false;\n constructor(private bsModalRef: BsModalRef, private resolver: ComponentFactoryResolver) {}\n\n cancel() {\n this.bsModalRef.hide();\n }\n\n createComponent(item: OperationType) {\n if (item && item.component) {\n this.showComponent = true;\n const factory = this.resolver.resolveComponentFactory(item.component);\n this.container.createComponent(factory);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { BulkOperationsModalComponent } from './bulk-operations-modal.component';\n\n@Injectable()\nexport class BulkOperationModalsService {\n private bsModalRef: BsModalRef;\n\n constructor(private bsModalService: BsModalService) {}\n\n showNewBulkOperationModal() {\n this.bsModalRef = this.bsModalService.show(BulkOperationsModalComponent, {\n backdrop: 'static',\n class: 'modal-sm'\n });\n }\n\n hideNewBulkOperationModal() {\n if (this.bsModalRef) {\n this.bsModalRef.hide();\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { OperationSchedule } from '@c8y/ngx-components/operations/bulk-operation-scheduler';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\n\n@Component({\n selector: 'c8y-bulk-operations-reschedule-modal',\n templateUrl: 'bulk-operations-reschedule-modal.component.html'\n})\nexport class BulkOperationsRescheduleModalComponent implements OnInit {\n closeSubject: Subject<IOperationBulk> = new Subject();\n dateAndDelay: OperationSchedule;\n bulkOperation: Partial<IOperationBulk>;\n isRetryOperation: boolean;\n modalTitle: string;\n\n constructor(\n public bsModalRef: BsModalRef,\n private bulkOperationsService: BulkOperationsService,\n private alert: AlertService\n ) {}\n\n ngOnInit() {\n this.modalTitle = this.getTitle();\n }\n\n onDateAndDelaySelect($event) {\n this.dateAndDelay = $event;\n }\n\n getTitle() {\n return this.isRetryOperation ? gettext('Retry operation') : gettext('Edit schedule');\n }\n\n onCancel() {\n this.bsModalRef.hide();\n }\n\n async onSave() {\n let newBulkOperation;\n this.bulkOperation.startDate = this.dateAndDelay.scheduledDate.toISOString();\n this.bulkOperation.creationRamp = this.dateAndDelay.delayInSeconds;\n\n if (this.isRetryOperation) {\n try {\n newBulkOperation = await this.bulkOperationsService.createBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled for a retry.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n } else {\n try {\n newBulkOperation = await this.bulkOperationsService.updateBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n // send back to component from which modal was called\n this.closeSubject.next(newBulkOperation.data);\n this.bsModalRef.hide();\n }\n}\n","import { OperationBulkGeneralStatus } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components';\nimport { IStatusOption } from '@c8y/ngx-components/operations/status-filter';\n\nexport const BULK_OPERATION_STATUS_LABELS = {\n SCHEDULED: gettext('Scheduled'),\n EXECUTING: gettext('Executing'),\n CANCELED: gettext('Canceled'),\n FAILED: gettext('Completed with failures'),\n SUCCESSFUL: gettext('Completed successfully')\n};\n\nexport const BULK_OPERATION_STATUS_OPTIONS: IStatusOption[] = [\n {\n label: BULK_OPERATION_STATUS_LABELS.SCHEDULED,\n generalStatus: [OperationBulkGeneralStatus.SCHEDULED],\n iconClass: 'dlt-c8y-icon-calendar text-info'\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.EXECUTING,\n generalStatus: [\n OperationBulkGeneralStatus.EXECUTING,\n OperationBulkGeneralStatus.EXECUTING_WITH_ERROR\n ],\n iconClass: 'dlt-c8y-icon-refresh text-primary'\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.CANCELED,\n generalStatus: [OperationBulkGeneralStatus.CANCELED],\n iconClass: 'dlt-c8y-icon-ban text-muted'\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.FAILED,\n generalStatus: [OperationBulkGeneralStatus.FAILED],\n iconClass: 'dlt-c8y-icon-exclamation-triangle text-danger'\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.SUCCESSFUL,\n generalStatus: [OperationBulkGeneralStatus.SUCCESSFUL],\n iconClass: 'dlt-c8y-icon-check-circle text-success'\n }\n];\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IOperationBulk, OperationBulkGeneralStatus } from '@c8y/client';\nimport {\n AlertService,\n gettext,\n ListItemComponent,\n ModalService,\n Status\n} from '@c8y/ngx-components';\nimport { assign, cloneDeep } from 'lodash-es';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { IStatusOption } from '@c8y/ngx-components/operations/status-filter';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\nimport { BULK_OPERATION_STATUS_OPTIONS } from './bulk-operation-list-item.model';\n\n@Component({\n selector: 'c8y-bulk-operation-list-item',\n templateUrl: './bulk-operation-list-item.component.html'\n})\nexport class BulkOperationListItemComponent implements OnInit, OnChanges {\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n detailsCollapsed: boolean = true;\n @Input()\n readOnly: boolean = false;\n @Output() showFailedOperation = new EventEmitter();\n @Output() reload: EventEmitter<any> = new EventEmitter();\n @ViewChild('listItem', { static: true }) listItem: ListItemComponent;\n iconClass: string;\n finishDate: number;\n refreshLoading = false;\n bulkOperationGeneralStatus = OperationBulkGeneralStatus;\n bulkOperationStatusOptions: IStatusOption[] = BULK_OPERATION_STATUS_OPTIONS;\n bsModalRef: BsModalRef;\n finishDatePopoverText: string = gettext(\n 'Approximate date, estimated based on the bulk operation settings.'\n );\n progressBarClass: string = 'progress';\n progressBarColor: string;\n progressBarStatus: number = 0;\n\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private modal: ModalService,\n private alert: AlertService,\n private bsModalService: BsModalService\n ) {}\n\n ngOnInit() {\n this.iconClass = this.getIconClass();\n this.finishDate = this.calculateFinishDateMs();\n this.setProgressBar();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.bulkOperation && !changes.bulkOperation.firstChange) {\n this.iconClass = this.getIconClass();\n this.setProgressBar();\n }\n }\n\n getIconClass() {\n return this.bulkOperationStatusOptions.find(statusOption =>\n statusOption.generalStatus.includes(this.bulkOperation.generalStatus)\n ).iconClass;\n }\n\n calculateFinishDateMs(): number {\n const startDateMs: number = new Date(this.bulkOperation.startDate).getTime();\n const creationRampMs: number = this.bulkOperation.creationRamp * 1000;\n\n return startDateMs + creationRampMs * this.bulkOperation.progress.all;\n }\n\n progressBarProgressFn() {\n return (\n ((this.bulkOperation.progress.successful + this.bulkOperation.progress.failed) /\n this.bulkOperation.progress.all) *\n 100\n );\n }\n\n setProgressBar() {\n const staticContentOfClass = 'progress-bar progress-striped active progress-bar';\n\n const progressBarState = {\n EXECUTING: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-primary`,\n progressBarStatus: this.progressBarProgressFn()\n },\n EXECUTING_WITH_ERROR: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: this.progressBarProgressFn()\n },\n FAILED: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: 100\n },\n SUCCESSFUL: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-success`,\n progressBarStatus: 100\n }\n };\n\n assign(this, progressBarState[this.bulkOperation.generalStatus]);\n }\n\n editSchedule() {\n const rescheduledOperation = cloneDeep(this.bulkOperation);\n const initialState = {\n bulkOperation: rescheduledOperation\n };\n const modalOptions = { initialState, class: 'modal-sm', backdrop: 'static' } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n }\n\n async cancelBulkOperation() {\n try {\n await this.modal.confirm(\n gettext('Cancel bulk operation'),\n gettext('You are about to cancel the bulk operation. Do you want to proceed?'),\n Status.DANGER\n );\n await this.bulkOperationsService.deleteBulkOperation(this.bulkOperation.id);\n this.reload.emit();\n this.alert.success(gettext('Operation canceled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n retryFailedOperation() {\n const clonedBulk = cloneDeep(this.bulkOperation);\n\n // change the id to failedparentId similar to the logic in deviceBulkControl.service.js\n delete clonedBulk.groupId;\n clonedBulk.failedParentId = this.bulkOperation.id;\n\n // show reschdedule modal:\n const initialState = {\n bulkOperation: clonedBulk,\n isRetryOperation: true\n };\n const modalOptions = { initialState, class: 'modal-sm', backdrop: 'static' } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n this.bsModalRef.content.closeSubject.subscribe(() => {\n this.reload.emit();\n });\n }\n\n async setToSuccessful() {\n try {\n await this.modal.confirm(\n gettext('Set manually bulk operation to SUCCESSFUL'),\n gettext(\n 'You are about to change the bulk operation status to SUCCESSFUL. Do you want to proceed?'\n ),\n Status.DANGER\n );\n\n await this.bulkOperationsService.updateBulkOperation({\n id: this.bulkOperation.id,\n generalStatus: OperationBulkGeneralStatus.SUCCESSFUL\n });\n this.reload.emit();\n this.alert.success(gettext('Operation status changed to SUCCESSFUL.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n openFailedOperation(failedParentId) {\n this.showFailedOperation.emit(failedParentId);\n }\n\n isStatusScheduled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.SCHEDULED;\n }\n\n isStatusExecutingOrExecutingWithError() {\n return (\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING ||\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING_WITH_ERROR\n );\n }\n\n allOperationsCreated() {\n return (\n this.bulkOperation.progress.all ===\n this.bulkOperation.progress.executing +\n this.bulkOperation.progress.failed +\n this.bulkOperation.progress.pending +\n this.bulkOperation.progress.successful\n );\n }\n\n isStatusCanceled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.CANCELED;\n }\n\n isStatusFailed() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.FAILED;\n }\n}\n","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { IOperationBulk, IResultList } from '@c8y/client';\nimport { OperationBulkRealtimeService, DatePickerComponent } from '@c8y/ngx-components';\nimport { flatten } from 'lodash-es';\nimport { BehaviorSubject, Observable, combineLatest, pipe } from 'rxjs';\nimport { map, tap, switchMap, withLatestFrom, shareReplay } from 'rxjs/operators';\nimport { StatusFilterComponent, IStatusOption } from '@c8y/ngx-components/operations/status-filter';\nimport {\n BulkOperationsService,\n OperationType\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationModalsService } from './modals/bulk-operation-modals.service';\nimport { BulkOperationListItemComponent } from './bulk-operation-list-item.component';\nimport { BULK_OPERATION_STATUS_OPTIONS } from './bulk-operation-list-item.model';\n@Component({\n selector: 'c8y-bulk-operations',\n templateUrl: './bulk-operations-list.component.html',\n providers: [OperationBulkRealtimeService]\n})\nexport class BulkOperationsListComponent implements OnInit {\n bulkTypes: OperationType[] = [];\n selectedTypeFilters = this.getTypeFilters();\n bulkOperationStatusOptions: IStatusOption[] = BULK_OPERATION_STATUS_OPTIONS;\n\n filterPipe;\n refreshLoading: boolean = false;\n statusFilter$: BehaviorSubject<IStatusOption[]> = new BehaviorSubject(null);\n typeFilter$: BehaviorSubject<OperationType[]> = new BehaviorSubject(null);\n timeFilter$: BehaviorSubject<any> = new BehaviorSubject(null);\n reload$: BehaviorSubject<void> = new BehaviorSubject(null);\n @ViewChildren(BulkOperationListItemComponent) listItems: QueryList<\n BulkOperationListItemComponent\n >;\n @ViewChild('statusFilter', { static: true }) statusFilter: StatusFilterComponent;\n @ViewChild(DatePickerComponent, { static: true }) datePicker: DatePickerComponent;\n\n bulkOperations$: Observable<IResultList<IOperationBulk>> = combineLatest(\n this.statusFilter$,\n this.timeFilter$,\n this.typeFilter$,\n this.reload$\n ).pipe(\n tap(() => {\n this.refreshLoading = true;\n }),\n switchMap(([statusFilters, timeFilters]) => this.filter(statusFilters, timeFilters)),\n withLatestFrom(this.typeFilter$),\n map(([result, typeFilter]: [IResultList<IOperationBulk>, OperationType[]]) => {\n this.filterPipe = pipe(map((data: []) => this.filterByType(data, typeFilter)));\n return { ...result, data: this.filterByType(result.data, typeFilter) };\n }),\n tap(() => {\n this.refreshLoading = false;\n }),\n shareReplay(1)\n );\n\n private allFilterFragments: string[];\n\n constructor(\n public realtime: OperationBulkRealtimeService,\n private bulkOperationsService: BulkOperationsService,\n private bulkOperationModalsService: BulkOperationModalsService\n ) {\n this.allFilterFragments = this.flattenFilterFragments(this.getTypeFilters());\n }\n\n ngOnInit() {\n this.bulkTypes = this.bulkOperationsService.getBulkTypes();\n }\n\n filterByType(bulkOperations: IOperationBulk[], typeFilter) {\n const flattenedFragments: string[] = this.flattenFilterFragments(typeFilter);\n if (\n // return data unfiltered if no filters selected...\n !flattenedFragments.length ||\n // ...or when all filters are selected\n this.allFilterFragments.every(fragment => flattenedFragments.includes(fragment))\n ) {\n return bulkOperations;\n }\n\n const filteredData = bulkOperations.filter(item => {\n return Object.keys(item.operationPrototype).some(key => flattenedFragments.includes(key));\n });\n\n return filteredData;\n }\n\n resetFilter() {\n this.statusFilter$.next(null);\n this.timeFilter$.next(null);\n this.typeFilter$.next(null);\n\n this.datePicker.clearFilter();\n this.selectedTypeFilters = this.getTypeFilters();\n this.statusFilter.reset();\n }\n\n isFilterApplied() {\n return (\n this.statusFilter$.getValue() || this.typeFilter$.getValue() || this.timeFilter$.getValue()\n );\n }\n\n filter(statusFilters, timeFilter) {\n const status =\n statusFilters && statusFilters.length > 0\n ? {\n generalStatus: flatten(statusFilters.map(statusFilter => statusFilter.generalStatus))\n }\n : {};\n\n const time = timeFilter\n ? {\n ...(timeFilter.dateFrom && {\n dateFrom: timeFilter.dateFrom.toISOString()\n }),\n ...(timeFilter.dateTo && {\n dateTo: timeFilter.dateTo.toISOString()\n })\n }\n : {};\n return this.getBulkOperations({ ...status, ...time });\n }\n\n getBulkOperations(filter?) {\n return this.bulkOperationsService.getBulkOperations(filter);\n }\n\n getTypeFilters() {\n return this.bulkOperationsService.getBulkTypes();\n }\n\n addBulkOperation() {\n this.bulkOperationModalsService.showNewBulkOperationModal();\n }\n\n openFailedOperation(failedParentId) {\n this.listItems.forEach(item => {\n if (item.bulkOperation.id === failedParentId) {\n item.listItem.collapsed = false;\n item.listItem.element.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n });\n }\n\n compareOperations(operationA: IOperationBulk, operationB: IOperationBulk): number {\n return new Date(operationA.startDate).getTime() - new Date(operationB.startDate).getTime();\n }\n\n private flattenFilterFragments(filters: OperationType[]): string[] {\n return (filters || []).reduce((flattened, current) => flattened.concat(current.fragments), []);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { gettext, Tab } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-bulk-operation-details-tabs',\n templateUrl: './bulk-operation-details-tabs.component.html'\n})\nexport class BulkOperationDetailsTabsComponent implements OnInit {\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n readOnly: boolean = false;\n @Output() onRetryFailedOperations: EventEmitter<Partial<IOperationBulk>> = new EventEmitter();\n @Output() showFailedOperation: EventEmitter<number> = new EventEmitter();\n\n @ViewChild('details', { static: true }) detailsTemplate: any;\n @ViewChild('audit', { static: true }) auditTemplate: any;\n\n tabs: Tab[] = [];\n template: ViewContainerRef;\n\n ngOnInit(): void {\n this.template = this.detailsTemplate;\n\n this.tabs = [\n {\n label: gettext('Details'),\n path: null,\n icon: 'asterisk',\n template: this.detailsTemplate\n },\n {\n label: gettext('History of changes'),\n path: null,\n icon: 'archive',\n template: this.auditTemplate\n }\n ];\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IManagedObject, IOperationBulk } from '@c8y/client';\n\n@Component({\n selector: 'c8y-bulk-operation-details',\n templateUrl: './bulk-operation-details.component.html'\n})\nexport class BulkOperationDetailsComponent {\n allFilterIsSelected: boolean = false;\n collapsed: boolean;\n device: IManagedObject;\n\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n readOnly: boolean = false;\n @Output() showFailedOperation: EventEmitter<number> = new EventEmitter();\n\n scrollToRetriedFromOperation(failedOperationId) {\n this.showFailedOperation.emit(failedOperationId);\n }\n}\n","import { gettext } from '@c8y/ngx-components';\n\nexport const SINGLE_OP_STATUS_NAMES = {\n PENDING: gettext('Pending'),\n EXECUTING: gettext('Executing'),\n FAILED: gettext('Failed'),\n SUCCESSFUL: gettext('Successful'),\n ALL: gettext('All')\n};\n\nexport const SINGLE_OP_STATUS_PROPERTIES = [\n {\n label: SINGLE_OP_STATUS_NAMES.PENDING,\n iconClass: 'dlt-c8y-icon-clock-o text-info',\n selected: false\n },\n {\n label: SINGLE_OP_STATUS_NAMES.EXECUTING,\n iconClass: 'dlt-c8y-icon-refresh text-info',\n selected: false\n },\n {\n label: SINGLE_OP_STATUS_NAMES.SUCCESSFUL,\n iconClass: 'dlt-c8y-icon-check-circle text-success',\n selected: false\n },\n {\n label: SINGLE_OP_STATUS_NAMES.FAILED,\n iconClass: 'dlt-c8y-icon-exclamation-circle text-danger',\n selected: false\n }\n];\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IOperation, IOperationBulk, IResultList } from '@c8y/client';\nimport { StatusFilterComponent, IStatusOption } from '@c8y/ngx-components/operations/status-filter';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { SINGLE_OP_STATUS_NAMES, SINGLE_OP_STATUS_PROPERTIES } from './single-operation-item.model';\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: boolean = false;\n @Output() onRetryFailedOperations: EventEmitter<Partial<IOperationBulk>> = new EventEmitter();\n\n @ViewChild(StatusFilterComponent, { static: false })\n statusFilter: StatusFilterComponent;\n\n singleOperationStatusProperties = SINGLE_OP_STATUS_PROPERTIES;\n singleOperationStatusNames = SINGLE_OP_STATUS_NAMES;\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\n this.statusFilter.preset(\n typeFilter === this.singleOperationStatusNames.ALL\n ? []\n : [{ label: typeFilter } as IStatusOption]\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.singleOperationStatusNames.FAILED;\n } else if (progress.failed === 0 && progress.successful === 0 && progress.pending === 0) {\n return this.singleOperationStatusNames.EXECUTING;\n } else if (progress.failed === 0 && progress.successful === 0 && progress.executing === 0) {\n return this.singleOperationStatusNames.PENDING;\n } else if (progress.failed === 0 && progress.pending === 0 && progress.executing === 0) {\n return this.singleOperationStatusNames.SUCCESSFUL;\n }\n\n return this.singleOperationStatusNames.ALL;\n }\n\n async getOperationsByStatus(filter: IStatusOption[]) {\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","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { IOperation } from '@c8y/client';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { omit } from 'lodash-es';\nimport { SINGLE_OP_STATUS_NAMES, SINGLE_OP_STATUS_PROPERTIES } from './single-operation-item.model';\n\n@Component({\n selector: 'c8y-single-operation-item',\n templateUrl: './single-operation-item.component.html'\n})\nexport class SingleOperationItemComponent {\n device = {};\n showIfTextTruncated = false;\n singleOperationStatusNames = SINGLE_OP_STATUS_NAMES;\n singleOperationsStatusProperties = SINGLE_OP_STATUS_PROPERTIES;\n iconClass: string;\n @Input()\n operation: IOperation;\n @Input()\n readOnly: boolean = false;\n @ViewChild('failureReason', { static: true }) failureReasonRef: ElementRef;\n\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private alertService: AlertService\n ) {}\n\n async ngOnInit() {\n this.iconClass = this.getIconClass();\n this.device = await this.getDeviceMO(this.operation.deviceId);\n }\n\n ngAfterViewInit() {\n this.isTextTruncated();\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.bulkOperationsService.createSingleOperation(operationToCreate);\n this.alertService.success(gettext('Operation created.'));\n } catch (er) {\n this.alertService.addServerFailure(er);\n }\n }\n\n getIconClass() {\n return this.singleOperationsStatusProperties.find(\n operationProperties => operationProperties.label.toUpperCase() === this.operation.status\n ).iconClass;\n }\n\n private async getDeviceMO(deviceId) {\n const inventoryMO = await this.bulkOperationsService.getManagedObject(deviceId);\n if (inventoryMO) {\n return inventoryMO.data;\n }\n }\n\n private isTextTruncated() {\n if (this.operation.failureReason) {\n const el = this.failureReasonRef.nativeElement;\n this.showIfTextTruncated = el.offsetWidth < el.scrollWidth ? true : false;\n }\n }\n}\n","import { Component, EventEmitter, Output, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n BulkOperationsService,\n OperationType\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationModalsService } from '../modals/bulk-operation-modals.service';\n\n@Component({\n selector: 'c8y-bulk-operation-type-list',\n templateUrl: './bulk-operation-type-list.component.html'\n})\nexport class BulkOperationTypeListComponent implements OnInit {\n @Output() onCustomType: EventEmitter<OperationType> = new EventEmitter();\n bulkList: OperationType[] = [];\n\n constructor(\n private router: Router,\n private bulkOperationsService: BulkOperationsService,\n private bulkOperationModalsService: BulkOperationModalsService\n ) {}\n\n ngOnInit() {\n this.bulkList = this.bulkOperationsService.getBulkTypes();\n }\n\n handleClick(item: OperationType) {\n if (item.path) {\n this.bulkOperationModalsService.hideNewBulkOperationModal();\n this.router.navigateByUrl(item.path);\n } else if (item.component) {\n this.onCustomType.emit(item);\n }\n }\n}\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, Route } from '@c8y/ngx-components';\nimport { StatusFilterModule } from '@c8y/ngx-components/operations/status-filter';\nimport { OperationSummaryModule } from '@c8y/ngx-components/operations/operation-summary';\nimport { BulkOperationSchedulerModule } from '@c8y/ngx-components/operations/bulk-operation-scheduler';\n\nimport { BulkOperationDetailsService } from './bulk-operation-details.service';\nimport { BulkOperationsListComponent } from './bulk-operations-list.component';\nimport { BulkOperationListItemComponent } from './bulk-operation-list-item.component';\nimport { BulkOperationDetailsTabsComponent } from './bulk-operation-details-tabs.component';\nimport { BulkOperationDetailsComponent } from './bulk-operation-details.component';\nimport { SingleOperationsListComponent } from './single-operations-list.component';\nimport { SingleOperationItemComponent } from './single-operation-item.component';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\nimport { BulkOperationTypeListComponent } from './type-list/bulk-operation-type-list.component';\nimport { BulkOperationModalsService } from './modals/bulk-operation-modals.service';\nimport { BulkOperationsModalComponent } from './modals/bulk-operations-modal.component';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\n\nexport const bulkOperationListRoutes: Route[] = [\n {\n path: 'devicecontrol/bulk',\n component: BulkOperationsListComponent\n }\n];\n\n/**\n * This module allows for displaying the list of bulk operations and their details.\n */\n@NgModule({\n imports: [\n CoreModule,\n PopoverModule,\n TooltipModule,\n StatusFilterModule,\n OperationSummaryModule,\n BulkOperationSchedulerModule,\n RouterModule.forChild(bulkOperationListRoutes)\n ],\n providers: [BulkOperationDetailsService, BulkOperationModalsService],\n declarations: [\n BulkOperationsListComponent,\n BulkOperationListItemComponent,\n BulkOperationDetailsTabsComponent,\n BulkOperationDetailsComponent,\n SingleOperationsListComponent,\n SingleOperationItemComponent,\n BulkOperationWrapperComponent,\n BulkOperationTypeListComponent,\n BulkOperationsModalComponent,\n BulkOperationsRescheduleModalComponent\n ],\n entryComponents: [\n BulkOperationsListComponent,\n BulkOperationListItemComponent,\n BulkOperationDetailsTabsComponent,\n BulkOperationDetailsComponent,\n SingleOperationsListComponent,\n SingleOperationItemComponent,\n BulkOperationWrapperComponent,\n BulkOperationTypeListComponent,\n BulkOperationsModalComponent,\n BulkOperationsRescheduleModalComponent\n ],\n exports: [\n BulkOperationsListComponent,\n BulkOperationListItemComponent,\n BulkOperationDetailsTabsComponent,\n BulkOperationDetailsComponent,\n SingleOperationsListComponent,\n SingleOperationItemComponent,\n BulkOperationWrapperComponent,\n BulkOperationTypeListComponent,\n BulkOperationsModalComponent,\n BulkOperationsRescheduleModalComponent\n ]\n})\nexport class BulkOperationsListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tslib_1.__decorate"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-operations-bulk-operations-list.js","sources":["ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-wrapper.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-details.service.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/modals/bulk-operations-modal.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/modals/bulk-operation-modals.service.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/modals/bulk-operations-reschedule-modal.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-list-item.model.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-list-item.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operations-list.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-details-tabs.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operation-details.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/single-operation-item.model.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/single-operations-list.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/single-operation-item.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/type-list/bulk-operation-type-list.component.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/bulk-operations-list.module.ts","ng://@c8y/ngx-components/operations/bulk-operations-list/c8y-ngx-components-operations-bulk-operations-list.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { BulkOperationDetailsService } from './bulk-operation-details.service';\n\n@Component({\n selector: 'c8y-bulk-operations-wrapper',\n templateUrl: './bulk-operation-wrapper.component.html'\n})\nexport class BulkOperationWrapperComponent {\n @Input() bulkOperation: Partial<IOperationBulk>;\n\n constructor(\n public bulkOperationDetailsService: BulkOperationDetailsService,\n public modalRef: BsModalRef\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\n\n@Injectable()\nexport class BulkOperationDetailsService {\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private modalService: BsModalService\n ) {}\n\n async openDetails(bulkOperationId) {\n const bulkOperation: IOperationBulk = (await this.bulkOperationsService.getBulkOperationById(\n bulkOperationId\n )).data;\n const initialState = { bulkOperation };\n this.modalService.show(BulkOperationWrapperComponent, {\n initialState,\n class: 'modal-lg'\n });\n }\n}\n","import { Component, ViewContainerRef, ViewChild, ComponentFactoryResolver } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { OperationType } from '@c8y/ngx-components/operations/bulk-operations-service';\n\n@Component({\n selector: 'c8y-bulk-operations-modal',\n templateUrl: 'bulk-operations-modal.component.html'\n})\nexport class BulkOperationsModalComponent {\n @ViewChild('container', { static: false, read: ViewContainerRef }) container;\n showComponent: boolean = false;\n constructor(private bsModalRef: BsModalRef, private resolver: ComponentFactoryResolver) {}\n\n cancel() {\n this.bsModalRef.hide();\n }\n\n createComponent(item: OperationType) {\n if (item && item.component) {\n this.showComponent = true;\n const factory = this.resolver.resolveComponentFactory(item.component);\n this.container.createComponent(factory);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { BulkOperationsModalComponent } from './bulk-operations-modal.component';\n\n@Injectable()\nexport class BulkOperationModalsService {\n private bsModalRef: BsModalRef;\n\n constructor(private bsModalService: BsModalService) {}\n\n showNewBulkOperationModal() {\n this.bsModalRef = this.bsModalService.show(BulkOperationsModalComponent, {\n backdrop: 'static',\n class: 'modal-sm'\n });\n }\n\n hideNewBulkOperationModal() {\n if (this.bsModalRef) {\n this.bsModalRef.hide();\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Subject } from 'rxjs';\nimport { OperationSchedule } from '@c8y/ngx-components/operations/bulk-operation-scheduler';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\n\n@Component({\n selector: 'c8y-bulk-operations-reschedule-modal',\n templateUrl: 'bulk-operations-reschedule-modal.component.html'\n})\nexport class BulkOperationsRescheduleModalComponent implements OnInit {\n closeSubject: Subject<IOperationBulk> = new Subject();\n dateAndDelay: OperationSchedule;\n bulkOperation: Partial<IOperationBulk>;\n isRetryOperation: boolean;\n modalTitle: string;\n\n constructor(\n public bsModalRef: BsModalRef,\n private bulkOperationsService: BulkOperationsService,\n private alert: AlertService\n ) {}\n\n ngOnInit() {\n this.modalTitle = this.getTitle();\n }\n\n onDateAndDelaySelect($event) {\n this.dateAndDelay = $event;\n }\n\n getTitle() {\n return this.isRetryOperation ? gettext('Retry operation') : gettext('Edit schedule');\n }\n\n onCancel() {\n this.bsModalRef.hide();\n }\n\n async onSave() {\n let newBulkOperation;\n this.bulkOperation.startDate = this.dateAndDelay.scheduledDate.toISOString();\n this.bulkOperation.creationRamp = this.dateAndDelay.delayInSeconds;\n\n if (this.isRetryOperation) {\n try {\n newBulkOperation = await this.bulkOperationsService.createBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled for a retry.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n } else {\n try {\n newBulkOperation = await this.bulkOperationsService.updateBulkOperation(this.bulkOperation);\n this.alert.success(gettext('Successfully rescheduled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n // send back to component from which modal was called\n this.closeSubject.next(newBulkOperation.data);\n this.bsModalRef.hide();\n }\n}\n","import { OperationBulkGeneralStatus } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components';\nimport { IStatusOption } from '@c8y/ngx-components/operations/status-filter';\n\nexport const BULK_OPERATION_STATUS_LABELS = {\n SCHEDULED: gettext('Scheduled'),\n EXECUTING: gettext('Executing'),\n CANCELED: gettext('Canceled'),\n FAILED: gettext('Completed with failures'),\n SUCCESSFUL: gettext('Completed successfully'),\n DELETED: gettext('Deleted'),\n};\n\nexport const BULK_OPERATION_STATUS_OPTIONS: IStatusOption[] = [\n {\n label: BULK_OPERATION_STATUS_LABELS.SCHEDULED,\n generalStatus: [OperationBulkGeneralStatus.SCHEDULED],\n iconClass: 'dlt-c8y-icon-calendar text-info',\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.EXECUTING,\n generalStatus: [\n OperationBulkGeneralStatus.EXECUTING,\n OperationBulkGeneralStatus.EXECUTING_WITH_ERROR,\n ],\n iconClass: 'dlt-c8y-icon-refresh text-primary',\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.DELETED,\n generalStatus: [OperationBulkGeneralStatus.DELETED],\n iconClass: 'dlt-c8y-icon-delete-document text-muted',\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.CANCELED,\n generalStatus: [OperationBulkGeneralStatus.CANCELED],\n iconClass: 'dlt-c8y-icon-ban text-muted',\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.FAILED,\n generalStatus: [OperationBulkGeneralStatus.FAILED],\n iconClass: 'dlt-c8y-icon-exclamation-triangle text-danger',\n },\n {\n label: BULK_OPERATION_STATUS_LABELS.SUCCESSFUL,\n generalStatus: [OperationBulkGeneralStatus.SUCCESSFUL],\n iconClass: 'dlt-c8y-icon-check-circle text-success',\n },\n];\n\nexport const BULK_OPERATION_FALLBACK_STATUS_ICON = 'dlt-c8y-icon-ask-question text-muted';\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IOperationBulk, OperationBulkGeneralStatus } from '@c8y/client';\nimport {\n AlertService,\n gettext,\n ListItemComponent,\n ModalService,\n Status\n} from '@c8y/ngx-components';\nimport { assign, cloneDeep } from 'lodash-es';\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { IStatusOption } from '@c8y/ngx-components/operations/status-filter';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\nimport { BULK_OPERATION_FALLBACK_STATUS_ICON, BULK_OPERATION_STATUS_OPTIONS } from './bulk-operation-list-item.model';\n\n@Component({\n selector: 'c8y-bulk-operation-list-item',\n templateUrl: './bulk-operation-list-item.component.html'\n})\nexport class BulkOperationListItemComponent implements OnInit, OnChanges {\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n detailsCollapsed: boolean = true;\n @Input()\n readOnly: boolean = false;\n @Output() showFailedOperation = new EventEmitter();\n @Output() reload: EventEmitter<any> = new EventEmitter();\n @ViewChild('listItem', { static: true }) listItem: ListItemComponent;\n iconClass: string;\n finishDate: number;\n refreshLoading = false;\n bulkOperationGeneralStatus = OperationBulkGeneralStatus;\n bulkOperationStatusOptions: IStatusOption[] = BULK_OPERATION_STATUS_OPTIONS;\n bsModalRef: BsModalRef;\n finishDatePopoverText: string = gettext(\n 'Approximate date, estimated based on the bulk operation settings.'\n );\n progressBarClass: string = 'progress';\n progressBarColor: string;\n progressBarStatus: number = 0;\n\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private modal: ModalService,\n private alert: AlertService,\n private bsModalService: BsModalService\n ) {}\n\n ngOnInit() {\n this.iconClass = this.getIconClass();\n this.finishDate = this.calculateFinishDateMs();\n this.setProgressBar();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.bulkOperation && !changes.bulkOperation.firstChange) {\n this.iconClass = this.getIconClass();\n this.setProgressBar();\n }\n }\n\n getIconClass() {\n const statusOptions = this.bulkOperationStatusOptions.find(statusOption =>\n statusOption.generalStatus.includes(this.bulkOperation.generalStatus)\n );\n return statusOptions ? statusOptions.iconClass : BULK_OPERATION_FALLBACK_STATUS_ICON;\n }\n\n calculateFinishDateMs(): number {\n const startDateMs: number = new Date(this.bulkOperation.startDate).getTime();\n const creationRampMs: number = this.bulkOperation.creationRamp * 1000;\n\n return startDateMs + creationRampMs * this.bulkOperation.progress.all;\n }\n\n progressBarProgressFn() {\n return (\n ((this.bulkOperation.progress.successful + this.bulkOperation.progress.failed) /\n this.bulkOperation.progress.all) *\n 100\n );\n }\n\n setProgressBar() {\n const staticContentOfClass = 'progress-bar progress-striped active progress-bar';\n\n const progressBarState = {\n EXECUTING: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-primary`,\n progressBarStatus: this.progressBarProgressFn()\n },\n EXECUTING_WITH_ERROR: {\n progressBarClass: 'progress progress-striped active',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: this.progressBarProgressFn()\n },\n FAILED: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-danger`,\n progressBarStatus: 100\n },\n SUCCESSFUL: {\n progressBarClass: 'progress',\n progressBarColor: `${staticContentOfClass}-success`,\n progressBarStatus: 100\n }\n };\n\n assign(this, progressBarState[this.bulkOperation.generalStatus]);\n }\n\n editSchedule() {\n const rescheduledOperation = cloneDeep(this.bulkOperation);\n const initialState = {\n bulkOperation: rescheduledOperation\n };\n const modalOptions = { initialState, class: 'modal-sm', backdrop: 'static' } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n }\n\n async cancelBulkOperation() {\n try {\n await this.modal.confirm(\n gettext('Cancel bulk operation'),\n gettext('You are about to cancel the bulk operation. Do you want to proceed?'),\n Status.DANGER\n );\n await this.bulkOperationsService.deleteBulkOperation(this.bulkOperation.id);\n this.reload.emit();\n this.alert.success(gettext('Operation canceled.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n retryFailedOperation() {\n const clonedBulk = cloneDeep(this.bulkOperation);\n\n // change the id to failedparentId similar to the logic in deviceBulkControl.service.js\n delete clonedBulk.groupId;\n clonedBulk.failedParentId = this.bulkOperation.id;\n\n // show reschdedule modal:\n const initialState = {\n bulkOperation: clonedBulk,\n isRetryOperation: true\n };\n const modalOptions = { initialState, class: 'modal-sm', backdrop: 'static' } as ModalOptions;\n this.bsModalRef = this.bsModalService.show(\n BulkOperationsRescheduleModalComponent,\n modalOptions\n );\n this.bsModalRef.content.closeSubject.subscribe(() => {\n this.reload.emit();\n });\n }\n\n async setToSuccessful() {\n try {\n await this.modal.confirm(\n gettext('Set manually bulk operation to SUCCESSFUL'),\n gettext(\n 'You are about to change the bulk operation status to SUCCESSFUL. Do you want to proceed?'\n ),\n Status.DANGER\n );\n\n await this.bulkOperationsService.updateBulkOperation({\n id: this.bulkOperation.id,\n generalStatus: OperationBulkGeneralStatus.SUCCESSFUL\n });\n this.reload.emit();\n this.alert.success(gettext('Operation status changed to SUCCESSFUL.'));\n } catch (er) {\n this.alert.addServerFailure(er);\n }\n }\n\n openFailedOperation(failedParentId) {\n this.showFailedOperation.emit(failedParentId);\n }\n\n isStatusScheduled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.SCHEDULED;\n }\n\n isStatusExecutingOrExecutingWithError() {\n return (\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING ||\n this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.EXECUTING_WITH_ERROR\n );\n }\n\n allOperationsCreated() {\n return (\n this.bulkOperation.progress.all ===\n this.bulkOperation.progress.executing +\n this.bulkOperation.progress.failed +\n this.bulkOperation.progress.pending +\n this.bulkOperation.progress.successful\n );\n }\n\n isStatusCanceled() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.CANCELED;\n }\n\n isStatusFailed() {\n return this.bulkOperation.generalStatus === this.bulkOperationGeneralStatus.FAILED;\n }\n}\n","import { Component, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { IOperationBulk, IResultList } from '@c8y/client';\nimport { OperationBulkRealtimeService, DatePickerComponent } from '@c8y/ngx-components';\nimport { flatten } from 'lodash-es';\nimport { BehaviorSubject, Observable, combineLatest, pipe } from 'rxjs';\nimport { map, tap, switchMap, withLatestFrom, shareReplay } from 'rxjs/operators';\nimport { StatusFilterComponent, IStatusOption } from '@c8y/ngx-components/operations/status-filter';\nimport {\n BulkOperationsService,\n OperationType\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationModalsService } from './modals/bulk-operation-modals.service';\nimport { BulkOperationListItemComponent } from './bulk-operation-list-item.component';\nimport { BULK_OPERATION_STATUS_OPTIONS } from './bulk-operation-list-item.model';\n@Component({\n selector: 'c8y-bulk-operations',\n templateUrl: './bulk-operations-list.component.html',\n providers: [OperationBulkRealtimeService]\n})\nexport class BulkOperationsListComponent implements OnInit {\n bulkTypes: OperationType[] = [];\n selectedTypeFilters = this.getTypeFilters();\n bulkOperationStatusOptions: IStatusOption[] = BULK_OPERATION_STATUS_OPTIONS;\n\n filterPipe;\n refreshLoading: boolean = false;\n statusFilter$: BehaviorSubject<IStatusOption[]> = new BehaviorSubject(null);\n typeFilter$: BehaviorSubject<OperationType[]> = new BehaviorSubject(null);\n timeFilter$: BehaviorSubject<any> = new BehaviorSubject(null);\n reload$: BehaviorSubject<void> = new BehaviorSubject(null);\n @ViewChildren(BulkOperationListItemComponent) listItems: QueryList<\n BulkOperationListItemComponent\n >;\n @ViewChild('statusFilter', { static: true }) statusFilter: StatusFilterComponent;\n @ViewChild(DatePickerComponent, { static: true }) datePicker: DatePickerComponent;\n\n bulkOperations$: Observable<IResultList<IOperationBulk>> = combineLatest(\n this.statusFilter$,\n this.timeFilter$,\n this.typeFilter$,\n this.reload$\n ).pipe(\n tap(() => {\n this.refreshLoading = true;\n }),\n switchMap(([statusFilters, timeFilters]) => this.filter(statusFilters, timeFilters)),\n withLatestFrom(this.typeFilter$),\n map(([result, typeFilter]: [IResultList<IOperationBulk>, OperationType[]]) => {\n this.filterPipe = pipe(map((data: []) => this.filterByType(data, typeFilter)));\n return { ...result, data: this.filterByType(result.data, typeFilter) };\n }),\n tap(() => {\n this.refreshLoading = false;\n }),\n shareReplay(1)\n );\n\n private allFilterFragments: string[];\n\n constructor(\n public realtime: OperationBulkRealtimeService,\n private bulkOperationsService: BulkOperationsService,\n private bulkOperationModalsService: BulkOperationModalsService\n ) {\n this.allFilterFragments = this.flattenFilterFragments(this.getTypeFilters());\n }\n\n ngOnInit() {\n this.bulkTypes = this.bulkOperationsService.getBulkTypes();\n }\n\n filterByType(bulkOperations: IOperationBulk[], typeFilter) {\n const flattenedFragments: string[] = this.flattenFilterFragments(typeFilter);\n if (\n // return data unfiltered if no filters selected...\n !flattenedFragments.length ||\n // ...or when all filters are selected\n this.allFilterFragments.every(fragment => flattenedFragments.includes(fragment))\n ) {\n return bulkOperations;\n }\n\n const filteredData = bulkOperations.filter(item => {\n return Object.keys(item.operationPrototype).some(key => flattenedFragments.includes(key));\n });\n\n return filteredData;\n }\n\n resetFilter() {\n this.statusFilter$.next(null);\n this.timeFilter$.next(null);\n this.typeFilter$.next(null);\n\n this.datePicker.clearFilter();\n this.selectedTypeFilters = this.getTypeFilters();\n this.statusFilter.reset();\n }\n\n isFilterApplied() {\n return (\n this.statusFilter$.getValue() || this.typeFilter$.getValue() || this.timeFilter$.getValue()\n );\n }\n\n filter(statusFilters, timeFilter) {\n const status =\n statusFilters && statusFilters.length > 0\n ? {\n generalStatus: flatten(statusFilters.map(statusFilter => statusFilter.generalStatus))\n }\n : {};\n\n const time = timeFilter\n ? {\n ...(timeFilter.dateFrom && {\n dateFrom: timeFilter.dateFrom.toISOString()\n }),\n ...(timeFilter.dateTo && {\n dateTo: timeFilter.dateTo.toISOString()\n })\n }\n : {};\n return this.getBulkOperations({ ...status, ...time });\n }\n\n getBulkOperations(filter?) {\n return this.bulkOperationsService.getBulkOperations(filter);\n }\n\n getTypeFilters() {\n return this.bulkOperationsService.getBulkTypes();\n }\n\n addBulkOperation() {\n this.bulkOperationModalsService.showNewBulkOperationModal();\n }\n\n openFailedOperation(failedParentId) {\n this.listItems.forEach(item => {\n if (item.bulkOperation.id === failedParentId) {\n item.listItem.collapsed = false;\n item.listItem.element.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n });\n }\n\n compareOperations(operationA: IOperationBulk, operationB: IOperationBulk): number {\n return new Date(operationA.startDate).getTime() - new Date(operationB.startDate).getTime();\n }\n\n private flattenFilterFragments(filters: OperationType[]): string[] {\n return (filters || []).reduce((flattened, current) => flattened.concat(current.fragments), []);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { IOperationBulk } from '@c8y/client';\nimport { gettext, Tab } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-bulk-operation-details-tabs',\n templateUrl: './bulk-operation-details-tabs.component.html'\n})\nexport class BulkOperationDetailsTabsComponent implements OnInit {\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n readOnly: boolean = false;\n @Output() onRetryFailedOperations: EventEmitter<Partial<IOperationBulk>> = new EventEmitter();\n @Output() showFailedOperation: EventEmitter<number> = new EventEmitter();\n\n @ViewChild('details', { static: true }) detailsTemplate: any;\n @ViewChild('audit', { static: true }) auditTemplate: any;\n\n tabs: Tab[] = [];\n template: ViewContainerRef;\n\n ngOnInit(): void {\n this.template = this.detailsTemplate;\n\n this.tabs = [\n {\n label: gettext('Details'),\n path: null,\n icon: 'asterisk',\n template: this.detailsTemplate\n },\n {\n label: gettext('History of changes'),\n path: null,\n icon: 'archive',\n template: this.auditTemplate\n }\n ];\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IManagedObject, IOperationBulk } from '@c8y/client';\n\n@Component({\n selector: 'c8y-bulk-operation-details',\n templateUrl: './bulk-operation-details.component.html'\n})\nexport class BulkOperationDetailsComponent {\n allFilterIsSelected: boolean = false;\n collapsed: boolean;\n device: IManagedObject;\n\n @Input()\n bulkOperation: Partial<IOperationBulk>;\n @Input()\n readOnly: boolean = false;\n @Output() showFailedOperation: EventEmitter<number> = new EventEmitter();\n\n scrollToRetriedFromOperation(failedOperationId) {\n this.showFailedOperation.emit(failedOperationId);\n }\n}\n","import { gettext } from '@c8y/ngx-components';\n\nexport const SINGLE_OP_STATUS_NAMES = {\n PENDING: gettext('Pending'),\n EXECUTING: gettext('Executing'),\n FAILED: gettext('Failed'),\n SUCCESSFUL: gettext('Successful'),\n ALL: gettext('All')\n};\n\nexport const SINGLE_OP_STATUS_PROPERTIES = [\n {\n label: SINGLE_OP_STATUS_NAMES.PENDING,\n iconClass: 'dlt-c8y-icon-clock-o text-info',\n selected: false\n },\n {\n label: SINGLE_OP_STATUS_NAMES.EXECUTING,\n iconClass: 'dlt-c8y-icon-refresh text-info',\n selected: false\n },\n {\n label: SINGLE_OP_STATUS_NAMES.SUCCESSFUL,\n iconClass: 'dlt-c8y-icon-check-circle text-success',\n selected: false\n },\n {\n label: SINGLE_OP_STATUS_NAMES.FAILED,\n iconClass: 'dlt-c8y-icon-exclamation-circle text-danger',\n selected: false\n }\n];\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { IOperation, IOperationBulk, IResultList } from '@c8y/client';\nimport { StatusFilterComponent, IStatusOption } from '@c8y/ngx-components/operations/status-filter';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { SINGLE_OP_STATUS_NAMES, SINGLE_OP_STATUS_PROPERTIES } from './single-operation-item.model';\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: boolean = false;\n @Output() onRetryFailedOperations: EventEmitter<Partial<IOperationBulk>> = new EventEmitter();\n\n @ViewChild(StatusFilterComponent, { static: false })\n statusFilter: StatusFilterComponent;\n\n singleOperationStatusProperties = SINGLE_OP_STATUS_PROPERTIES;\n singleOperationStatusNames = SINGLE_OP_STATUS_NAMES;\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\n this.statusFilter.preset(\n typeFilter === this.singleOperationStatusNames.ALL\n ? []\n : [{ label: typeFilter } as IStatusOption]\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.singleOperationStatusNames.FAILED;\n } else if (progress.failed === 0 && progress.successful === 0 && progress.pending === 0) {\n return this.singleOperationStatusNames.EXECUTING;\n } else if (progress.failed === 0 && progress.successful === 0 && progress.executing === 0) {\n return this.singleOperationStatusNames.PENDING;\n } else if (progress.failed === 0 && progress.pending === 0 && progress.executing === 0) {\n return this.singleOperationStatusNames.SUCCESSFUL;\n }\n\n return this.singleOperationStatusNames.ALL;\n }\n\n async getOperationsByStatus(filter: IStatusOption[]) {\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","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { IOperation } from '@c8y/client';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { BulkOperationsService } from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { omit } from 'lodash-es';\nimport { SINGLE_OP_STATUS_NAMES, SINGLE_OP_STATUS_PROPERTIES } from './single-operation-item.model';\n\n@Component({\n selector: 'c8y-single-operation-item',\n templateUrl: './single-operation-item.component.html'\n})\nexport class SingleOperationItemComponent {\n device = {};\n showIfTextTruncated = false;\n singleOperationStatusNames = SINGLE_OP_STATUS_NAMES;\n singleOperationsStatusProperties = SINGLE_OP_STATUS_PROPERTIES;\n iconClass: string;\n @Input()\n operation: IOperation;\n @Input()\n readOnly: boolean = false;\n @ViewChild('failureReason', { static: true }) failureReasonRef: ElementRef;\n\n constructor(\n private bulkOperationsService: BulkOperationsService,\n private alertService: AlertService\n ) {}\n\n async ngOnInit() {\n this.iconClass = this.getIconClass();\n this.device = await this.getDeviceMO(this.operation.deviceId);\n }\n\n ngAfterViewInit() {\n this.isTextTruncated();\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.bulkOperationsService.createSingleOperation(operationToCreate);\n this.alertService.success(gettext('Operation created.'));\n } catch (er) {\n this.alertService.addServerFailure(er);\n }\n }\n\n getIconClass() {\n return this.singleOperationsStatusProperties.find(\n operationProperties => operationProperties.label.toUpperCase() === this.operation.status\n ).iconClass;\n }\n\n private async getDeviceMO(deviceId) {\n const inventoryMO = await this.bulkOperationsService.getManagedObject(deviceId);\n if (inventoryMO) {\n return inventoryMO.data;\n }\n }\n\n private isTextTruncated() {\n if (this.operation.failureReason) {\n const el = this.failureReasonRef.nativeElement;\n this.showIfTextTruncated = el.offsetWidth < el.scrollWidth ? true : false;\n }\n }\n}\n","import { Component, EventEmitter, Output, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n BulkOperationsService,\n OperationType\n} from '@c8y/ngx-components/operations/bulk-operations-service';\nimport { BulkOperationModalsService } from '../modals/bulk-operation-modals.service';\n\n@Component({\n selector: 'c8y-bulk-operation-type-list',\n templateUrl: './bulk-operation-type-list.component.html'\n})\nexport class BulkOperationTypeListComponent implements OnInit {\n @Output() onCustomType: EventEmitter<OperationType> = new EventEmitter();\n bulkList: OperationType[] = [];\n\n constructor(\n private router: Router,\n private bulkOperationsService: BulkOperationsService,\n private bulkOperationModalsService: BulkOperationModalsService\n ) {}\n\n ngOnInit() {\n this.bulkList = this.bulkOperationsService.getBulkTypes();\n }\n\n handleClick(item: OperationType) {\n if (item.path) {\n this.bulkOperationModalsService.hideNewBulkOperationModal();\n this.router.navigateByUrl(item.path);\n } else if (item.component) {\n this.onCustomType.emit(item);\n }\n }\n}\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, Route } from '@c8y/ngx-components';\nimport { StatusFilterModule } from '@c8y/ngx-components/operations/status-filter';\nimport { OperationSummaryModule } from '@c8y/ngx-components/operations/operation-summary';\nimport { BulkOperationSchedulerModule } from '@c8y/ngx-components/operations/bulk-operation-scheduler';\n\nimport { BulkOperationDetailsService } from './bulk-operation-details.service';\nimport { BulkOperationsListComponent } from './bulk-operations-list.component';\nimport { BulkOperationListItemComponent } from './bulk-operation-list-item.component';\nimport { BulkOperationDetailsTabsComponent } from './bulk-operation-details-tabs.component';\nimport { BulkOperationDetailsComponent } from './bulk-operation-details.component';\nimport { SingleOperationsListComponent } from './single-operations-list.component';\nimport { SingleOperationItemComponent } from './single-operation-item.component';\nimport { BulkOperationWrapperComponent } from './bulk-operation-wrapper.component';\nimport { BulkOperationTypeListComponent } from './type-list/bulk-operation-type-list.component';\nimport { BulkOperationModalsService } from './modals/bulk-operation-modals.service';\nimport { BulkOperationsModalComponent } from './modals/bulk-operations-modal.component';\nimport { BulkOperationsRescheduleModalComponent } from './modals/bulk-operations-reschedule-modal.component';\n\nexport const bulkOperationListRoutes: Route[] = [\n {\n path: 'devicecontrol/bulk',\n component: BulkOperationsListComponent\n }\n];\n\n/**\n * This module allows for displaying the list of bulk operations and their details.\n */\n@NgModule({\n imports: [\n CoreModule,\n PopoverModule,\n TooltipModule,\n StatusFilterModule,\n OperationSummaryModule,\n BulkOperationSchedulerModule,\n RouterModule.forChild(bulkOperationListRoutes)\n ],\n providers: [BulkOperationDetailsService, BulkOperationModalsService],\n declarations: [\n BulkOperationsListComponent,\n BulkOperationListItemComponent,\n BulkOperationDetailsTabsComponent,\n BulkOperationDetailsComponent,\n SingleOperationsListComponent,\n SingleOperationItemComponent,\n BulkOperationWrapperComponent,\n BulkOperationTypeListComponent,\n BulkOperationsModalComponent,\n BulkOperationsRescheduleModalComponent\n ],\n entryComponents: [\n BulkOperationsListComponent,\n BulkOperationListItemComponent,\n BulkOperationDetailsTabsComponent,\n BulkOperationDetailsComponent,\n SingleOperationsListComponent,\n SingleOperationItemComponent,\n BulkOperationWrapperComponent,\n BulkOperationTypeListComponent,\n BulkOperationsModalComponent,\n BulkOperationsRescheduleModalComponent\n ],\n exports: [\n BulkOperationsListComponent,\n BulkOperationListItemComponent,\n BulkOperationDetailsTabsComponent,\n BulkOperationDetailsComponent,\n SingleOperationsListComponent,\n SingleOperationItemComponent,\n BulkOperationWrapperComponent,\n BulkOperationTypeListComponent,\n BulkOperationsModalComponent,\n BulkOperationsRescheduleModalComponent\n ]\n})\nexport class BulkOperationsListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tslib_1.__decorate"],"mappings":";;;;;;;;;;;;;;;;;IAYE,uCACS,2BAAwD,EACxD,QAAoB;QADpB,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,aAAQ,GAAR,QAAQ,CAAY;KACzB;;gBAFkC,2BAA2B;gBAC9C,UAAU;;IAJpBA;QAAR,KAAK,EAAE;wEAAwC;IADrC,6BAA6B;QAJzC,SAAS,CAAC;YACT,QAAQ,EAAE,6BAA6B;YACvC,+oBAAsD;SACvD,CAAC;OACW,6BAA6B,CAOzC;IAAD,oCAAC;CAPD;;;ICDE,qCACU,qBAA4C,EAC5C,YAA4B;QAD5B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,iBAAY,GAAZ,YAAY,CAAgB;KAClC;IAEE,iDAAW,GAAjB,UAAkB,eAAe;;;;;4BACQ,qBAAM,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CAC1F,eAAe,CAChB,EAAA;;wBAFK,aAAa,GAAmB,CAAC,SAEtC,EAAE,IAAI;wBACD,YAAY,GAAG,EAAE,aAAa,eAAA,EAAE,CAAC;wBACvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,6BAA6B,EAAE;4BACpD,YAAY,cAAA;4BACZ,KAAK,EAAE,UAAU;yBAClB,CAAC,CAAC;;;;;KACJ;;gBAbgC,qBAAqB;gBAC9B,cAAc;;IAH3B,2BAA2B;QADvC,UAAU,EAAE;OACA,2BAA2B,CAgBvC;IAAD,kCAAC;CAhBD;;;ICIE,sCAAoB,UAAsB,EAAU,QAAkC;QAAlE,eAAU,GAAV,UAAU,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAA0B;QADtF,kBAAa,GAAY,KAAK,CAAC;KAC2D;IAE1F,6CAAM,GAAN;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAED,sDAAe,GAAf,UAAgB,IAAmB;QACjC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;SACzC;KACF;;gBAZ+B,UAAU;gBAAoB,wBAAwB;;IAFnBA;QAAlE,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;mEAAW;IADlE,4BAA4B;QAJxC,SAAS,CAAC;YACT,QAAQ,EAAE,2BAA2B;YACrC,2lCAAmD;SACpD,CAAC;OACW,4BAA4B,CAgBxC;IAAD,mCAAC;CAhBD;;;ICAE,oCAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;KAAI;IAEtD,8DAAyB,GAAzB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACvE,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;KACJ;IAED,8DAAyB,GAAzB;QACE,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SACxB;KACF;;gBAbmC,cAAc;;IAHvC,0BAA0B;QADtC,UAAU,EAAE;OACA,0BAA0B,CAiBtC;IAAD,iCAAC;CAjBD;;;ICcE,gDACS,UAAsB,EACrB,qBAA4C,EAC5C,KAAmB;QAFpB,eAAU,GAAV,UAAU,CAAY;QACrB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,UAAK,GAAL,KAAK,CAAc;QAT7B,iBAAY,GAA4B,IAAI,OAAO,EAAE,CAAC;KAUlD;IAEJ,yDAAQ,GAAR;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnC;IAED,qEAAoB,GAApB,UAAqB,MAAM;QACzB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;KAC5B;IAED,yDAAQ,GAAR;QACE,OAAO,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;KACtF;IAED,yDAAQ,GAAR;QACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAEK,uDAAM,GAAZ;;;;;;wBAEE,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;wBAC7E,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;6BAE/D,IAAI,CAAC,gBAAgB,EAArB,wBAAqB;;;;wBAEF,qBAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAA;;wBAA3F,gBAAgB,GAAG,SAAwE,CAAC;wBAC5F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,CAAC;;;;wBAErE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC;;;;;wBAIb,qBAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAA;;wBAA3F,gBAAgB,GAAG,SAAwE,CAAC;wBAC5F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;;;;wBAEzD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC;;;;wBAKpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;wBAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;;;;;KACxB;;gBA7CoB,UAAU;gBACE,qBAAqB;gBACrC,YAAY;;IAVlB,sCAAsC;QAJlD,SAAS,CAAC;YACT,QAAQ,EAAE,sCAAsC;YAChD,ysCAA8D;SAC/D,CAAC;OACW,sCAAsC,CAsDlD;IAAD,6CAAC;CAtDD;;ACRO,IAAM,4BAA4B,GAAG;IAC1C,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAC1C,UAAU,EAAE,OAAO,CAAC,wBAAwB,CAAC;IAC7C,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,AAAO,IAAM,6BAA6B,GAAoB;IAC5D;QACE,KAAK,EAAE,4BAA4B,CAAC,SAAS;QAC7C,aAAa,EAAE,CAAC,0BAA0B,CAAC,SAAS,CAAC;QACrD,SAAS,EAAE,iCAAiC;KAC7C;IACD;QACE,KAAK,EAAE,4BAA4B,CAAC,SAAS;QAC7C,aAAa,EAAE;YACb,0BAA0B,CAAC,SAAS;YACpC,0BAA0B,CAAC,oBAAoB;SAChD;QACD,SAAS,EAAE,mCAAmC;KAC/C;IACD;QACE,KAAK,EAAE,4BAA4B,CAAC,OAAO;QAC3C,aAAa,EAAE,CAAC,0BAA0B,CAAC,OAAO,CAAC;QACnD,SAAS,EAAE,yCAAyC;KACrD;IACD;QACE,KAAK,EAAE,4BAA4B,CAAC,QAAQ;QAC5C,aAAa,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC;QACpD,SAAS,EAAE,6BAA6B;KACzC;IACD;QACE,KAAK,EAAE,4BAA4B,CAAC,MAAM;QAC1C,aAAa,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC;QAClD,SAAS,EAAE,+CAA+C;KAC3D;IACD;QACE,KAAK,EAAE,4BAA4B,CAAC,UAAU;QAC9C,aAAa,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC;QACtD,SAAS,EAAE,wCAAwC;KACpD;CACF,CAAC;AAEF,AAAO,IAAM,mCAAmC,GAAG,sCAAsC,CAAC;;;ICGxF,wCACU,qBAA4C,EAC5C,KAAmB,EACnB,KAAmB,EACnB,cAA8B;QAH9B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,UAAK,GAAL,KAAK,CAAc;QACnB,UAAK,GAAL,KAAK,CAAc;QACnB,mBAAc,GAAd,cAAc,CAAgB;QAvBxC,qBAAgB,GAAY,IAAI,CAAC;QAEjC,aAAQ,GAAY,KAAK,CAAC;QAChB,wBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;QACzC,WAAM,GAAsB,IAAI,YAAY,EAAE,CAAC;QAIzD,mBAAc,GAAG,KAAK,CAAC;QACvB,+BAA0B,GAAG,0BAA0B,CAAC;QACxD,+BAA0B,GAAoB,6BAA6B,CAAC;QAE5E,0BAAqB,GAAW,OAAO,CACrC,mEAAmE,CACpE,CAAC;QACF,qBAAgB,GAAW,UAAU,CAAC;QAEtC,sBAAiB,GAAW,CAAC,CAAC;KAO1B;IAEJ,iDAAQ,GAAR;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,oDAAW,GAAX,UAAY,OAAsB;QAChC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE;YAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;KACF;IAED,qDAAY,GAAZ;QAAA,iBAKC;QAJC,IAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAA,YAAY;YACrE,OAAA,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAI,CAAC,aAAa,CAAC,aAAa,CAAC;SAAA,CACtE,CAAC;QACF,OAAO,aAAa,GAAG,aAAa,CAAC,SAAS,GAAG,mCAAmC,CAAC;KACtF;IAED,8DAAqB,GAArB;QACE,IAAM,WAAW,GAAW,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7E,IAAM,cAAc,GAAW,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC;QAEtE,OAAO,WAAW,GAAG,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;KACvE;IAED,8DAAqB,GAArB;QACE,QACE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;YAC3E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG;YACjC,GAAG,EACH;KACH;IAED,uDAAc,GAAd;QACE,IAAM,oBAAoB,GAAG,mDAAmD,CAAC;QAEjF,IAAM,gBAAgB,GAAG;YACvB,SAAS,EAAE;gBACT,gBAAgB,EAAE,kCAAkC;gBACpD,gBAAgB,EAAK,oBAAoB,aAAU;gBACnD,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE;aAChD;YACD,oBAAoB,EAAE;gBACpB,gBAAgB,EAAE,kCAAkC;gBACpD,gBAAgB,EAAK,oBAAoB,YAAS;gBAClD,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE;aAChD;YACD,MAAM,EAAE;gBACN,gBAAgB,EAAE,UAAU;gBAC5B,gBAAgB,EAAK,oBAAoB,YAAS;gBAClD,iBAAiB,EAAE,GAAG;aACvB;YACD,UAAU,EAAE;gBACV,gBAAgB,EAAE,UAAU;gBAC5B,gBAAgB,EAAK,oBAAoB,aAAU;gBACnD,iBAAiB,EAAE,GAAG;aACvB;SACF,CAAC;QAEF,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;KAClE;IAED,qDAAY,GAAZ;QACE,IAAM,oBAAoB,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAM,YAAY,GAAG;YACnB,aAAa,EAAE,oBAAoB;SACpC,CAAC;QACF,IAAM,YAAY,GAAG,EAAE,YAAY,cAAA,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAkB,CAAC;QAC7F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACxC,sCAAsC,EACtC,YAAY,CACb,CAAC;KACH;IAEK,4DAAmB,GAAzB;;;;;;;wBAEI,qBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CACtB,OAAO,CAAC,uBAAuB,CAAC,EAChC,OAAO,CAAC,qEAAqE,CAAC,EAC9E,MAAM,CAAC,MAAM,CACd,EAAA;;wBAJD,SAIC,CAAC;wBACF,qBAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAA;;wBAA3E,SAA2E,CAAC;wBAC5E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;;;;wBAEnD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC;;;;;;KAEnC;IAED,6DAAoB,GAApB;QAAA,iBAoBC;QAnBC,IAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;QAGjD,OAAO,UAAU,CAAC,OAAO,CAAC;QAC1B,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;;QAGlD,IAAM,YAAY,GAAG;YACnB,aAAa,EAAE,UAAU;YACzB,gBAAgB,EAAE,IAAI;SACvB,CAAC;QACF,IAAM,YAAY,GAAG,EAAE,YAAY,cAAA,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAkB,CAAC;QAC7F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACxC,sCAAsC,EACtC,YAAY,CACb,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;YAC7C,KAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACpB,CAAC,CAAC;KACJ;IAEK,wDAAe,GAArB;;;;;;;wBAEI,qBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CACtB,OAAO,CAAC,2CAA2C,CAAC,EACpD,OAAO,CACL,0FAA0F,CAC3F,EACD,MAAM,CAAC,MAAM,CACd,EAAA;;wBAND,SAMC,CAAC;wBAEF,qBAAM,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;gCACnD,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;gCACzB,aAAa,EAAE,0BAA0B,CAAC,UAAU;6BACrD,CAAC,EAAA;;wBAHF,SAGE,CAAC;wBACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,CAAC;;;;wBAEvE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC;;;;;;KAEnC;IAED,4DAAmB,GAAnB,UAAoB,cAAc;QAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC/C;IAED,0DAAiB,GAAjB;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC;KACvF;IAED,8EAAqC,GAArC;QACE,QACE,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,SAAS;YAC9E,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,oBAAoB,EACzF;KACH;IAED,6DAAoB,GAApB;QACE,QACE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG;YAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM;gBAClC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO;gBACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EACxC;KACH;IAED,yDAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC;KACtF;IAED,uDAAc,GAAd;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;KACpF;;gBA3KgC,qBAAqB;gBACrC,YAAY;gBACZ,YAAY;gBACH,cAAc;;IAzBxCA;QADC,KAAK,EAAE;yEAC+B;IAEvCA;QADC,KAAK,EAAE;4EACyB;IAEjCA;QADC,KAAK,EAAE;oEACkB;IAChBA;QAAT,MAAM,EAAE;+EAA0C;IACzCA;QAAT,MAAM,EAAE;kEAAgD;IAChBA;QAAxC,SAAS,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oEAA6B;IAT1D,8BAA8B;QAJ1C,SAAS,CAAC;YACT,QAAQ,EAAE,8BAA8B;YACxC,umKAAwD;SACzD,CAAC;OACW,8BAA8B,CAoM1C;IAAD,qCAAC;CApMD;;;IC8BE,qCACS,QAAsC,EACrC,qBAA4C,EAC5C,0BAAsD;QAHhE,iBAMC;QALQ,aAAQ,GAAR,QAAQ,CAA8B;QACrC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,+BAA0B,GAA1B,0BAA0B,CAA4B;QA1ChE,cAAS,GAAoB,EAAE,CAAC;QAChC,wBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,+BAA0B,GAAoB,6BAA6B,CAAC;QAG5E,mBAAc,GAAY,KAAK,CAAC;QAChC,kBAAa,GAAqC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5E,gBAAW,GAAqC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1E,gBAAW,GAAyB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9D,YAAO,GAA0B,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAO3D,oBAAe,GAA4C,aAAa,CACtE,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,OAAO,CACb,CAAC,IAAI,CACJ,GAAG,CAAC;YACF,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B,CAAC,EACF,SAAS,CAAC,UAAC,EAA4B;gBAA5B,kBAA4B,EAA3B,qBAAa,EAAE,mBAAW;YAAM,OAAA,KAAI,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC;SAAA,CAAC,EACpF,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAChC,GAAG,CAAC,UAAC,EAAoE;gBAApE,kBAAoE,EAAnE,cAAM,EAAE,kBAAU;YACtB,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,IAAQ,IAAK,OAAA,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,GAAA,CAAC,CAAC,CAAC;YAC/E,oBAAY,MAAM,IAAE,IAAI,EAAE,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAG;SACxE,CAAC,EACF,GAAG,CAAC;YACF,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B,CAAC,EACF,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;QASA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;KAC9E;IAED,8CAAQ,GAAR;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;KAC5D;IAED,kDAAY,GAAZ,UAAa,cAAgC,EAAE,UAAU;QACvD,IAAM,kBAAkB,GAAa,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC7E;;QAEE,CAAC,kBAAkB,CAAC,MAAM;;YAE1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAA,QAAQ,IAAI,OAAA,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAA,CAAC,EAChF;YACA,OAAO,cAAc,CAAC;SACvB;QAED,IAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,UAAA,IAAI;YAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAA,CAAC,CAAC;SAC3F,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;KACrB;IAED,iDAAW,GAAX;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;KAC3B;IAED,qDAAe,GAAf;QACE,QACE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAC3F;KACH;IAED,4CAAM,GAAN,UAAO,aAAa,EAAE,UAAU;QAC9B,IAAM,MAAM,GACV,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;cACrC;gBACE,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,UAAA,YAAY,IAAI,OAAA,YAAY,CAAC,aAAa,GAAA,CAAC,CAAC;aACtF;cACD,EAAE,CAAC;QAET,IAAM,IAAI,GAAG,UAAU;4BAEb,UAAU,CAAC,QAAQ,IAAI;gBACzB,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE;aAC5C,IACG,UAAU,CAAC,MAAM,IAAI;gBACvB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;aACxC,KAEH,EAAE,CAAC;QACP,OAAO,IAAI,CAAC,iBAAiB,cAAM,MAAM,EAAK,IAAI,EAAG,CAAC;KACvD;IAED,uDAAiB,GAAjB,UAAkB,MAAO;QACvB,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;KAC7D;IAED,oDAAc,GAAd;QACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;KAClD;IAED,sDAAgB,GAAhB;QACE,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,EAAE,CAAC;KAC7D;IAED,yDAAmB,GAAnB,UAAoB,cAAc;QAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,IAAI;YACzB,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,cAAc,EAAE;gBAC5C,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC7F;SACF,CAAC,CAAC;KACJ;IAED,uDAAiB,GAAjB,UAAkB,UAA0B,EAAE,UAA0B;QACtE,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;KAC5F;IAEO,4DAAsB,GAA9B,UAA+B,OAAwB;QACrD,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,UAAC,SAAS,EAAE,OAAO,IAAK,OAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAA,EAAE,EAAE,CAAC,CAAC;KAChG;;gBA7FkB,4BAA4B;gBACd,qBAAqB;gBAChB,0BAA0B;;IAhClBA;QAA7C,YAAY,CAAC,8BAA8B,CAAC;kEAE3C;IAC2CA;QAA5C,SAAS,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;qEAAqC;IAC/BA;QAAjD,SAAS,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;mEAAiC;IAfvE,2BAA2B;QALvC,SAAS,CAAC;YACT,QAAQ,EAAE,qBAAqB;YAC/B,+3IAAoD;YACpD,SAAS,EAAE,CAAC,4BAA4B,CAAC;SAC1C,CAAC;OACW,2BAA2B,CAuIvC;IAAD,kCAAC;CAvID;;;ICPA;QAQE,aAAQ,GAAY,KAAK,CAAC;QAChB,4BAAuB,GAA0C,IAAI,YAAY,EAAE,CAAC;QACpF,wBAAmB,GAAyB,IAAI,YAAY,EAAE,CAAC;QAKzE,SAAI,GAAU,EAAE,CAAC;KAqBlB;IAlBC,oDAAQ,GAAR;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QAErC,IAAI,CAAC,IAAI,GAAG;YACV;gBACE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;gBACzB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,IAAI,CAAC,eAAe;aAC/B;YACD;gBACE,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC;gBACpC,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI,CAAC,aAAa;aAC7B;SACF,CAAC;KACH;IA7BDA;QADC,KAAK,EAAE;4EAC+B;IAEvCA;QADC,KAAK,EAAE;uEACkB;IAChBA;QAAT,MAAM,EAAE;sFAAqF;IACpFA;QAAT,MAAM,EAAE;kFAAgE;IAEjCA;QAAvC,SAAS,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;8EAAsB;IACvBA;QAArC,SAAS,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;4EAAoB;IAT9C,iCAAiC;QAJ7C,SAAS,CAAC;YACT,QAAQ,EAAE,iCAAiC;YAC3C,mjCAA2D;SAC5D,CAAC;OACW,iCAAiC,CAgC7C;IAAD,wCAAC;CAhCD;;;ICbA;QAKE,wBAAmB,GAAY,KAAK,CAAC;QAOrC,aAAQ,GAAY,KAAK,CAAC;QAChB,wBAAmB,GAAyB,IAAI,YAAY,EAAE,CAAC;KAK1E;IAHC,oEAA4B,GAA5B,UAA6B,iBAAiB;QAC5C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAClD;IAPDA;QADC,KAAK,EAAE;wEAC+B;IAEvCA;QADC,KAAK,EAAE;mEACkB;IAChBA;QAAT,MAAM,EAAE;8EAAgE;IAT9D,6BAA6B;QAJzC,SAAS,CAAC;YACT,QAAQ,EAAE,4BAA4B;YACtC,syIAAsD;SACvD,CAAC;OACW,6BAA6B,CAczC;IAAD,oCAAC;CAdD;;ACLO,IAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC;IACjC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;CACpB,CAAC;AAEF,AAAO,IAAM,2BAA2B,GAAG;IACzC;QACE,KAAK,EAAE,sBAAsB,CAAC,OAAO;QACrC,SAAS,EAAE,gCAAgC;QAC3C,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,KAAK,EAAE,sBAAsB,CAAC,SAAS;QACvC,SAAS,EAAE,gCAAgC;QAC3C,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,KAAK,EAAE,sBAAsB,CAAC,UAAU;QACxC,SAAS,EAAE,wCAAwC;QACnD,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,KAAK,EAAE,sBAAsB,CAAC,MAAM;QACpC,SAAS,EAAE,6CAA6C;QACxD,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;;;ICEA,uCAAoB,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;QAVhE,aAAQ,GAAY,KAAK,CAAC;QAChB,4BAAuB,GAA0C,IAAI,YAAY,EAAE,CAAC;QAK9F,oCAA+B,GAAG,2BAA2B,CAAC;QAC9D,+BAA0B,GAAG,sBAAsB,CAAC;KAGgB;IAE9D,uDAAe,GAArB;;;gBACE,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,IAAI,CAAC,sBAAsB,EAAE,CAAC;iBAC/B;;;;KACF;IAED,mDAAW,GAAX,UAAY,OAAsB;QAChC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE;YAC/D,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;KACF;IAED,8DAAsB,GAAtB;QACE,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAM,UAAU,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAC;YAE1D,IAAI,CAAC,YAAY,CAAC,MAAM,CACtB,UAAU,KAAK,IAAI,CAAC,0BAA0B,CAAC,GAAG;kBAC9C,EAAE;kBACF,CAAC,EAAE,KAAK,EAAE,UAAU,EAAmB,CAAC,CAC7C,CAAC;SACH;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACpD;KACF;IAED,uEAA+B,GAA/B;QACE,IAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAE7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;SAC/C;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;YACvF,OAAO,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC;SAClD;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,KAAK,CAAC,EAAE;YACzF,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;SAChD;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,KAAK,CAAC,EAAE;YACtF,OAAO,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC;SACnD;QAED,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC;KAC5C;IAEK,6DAAqB,GAA3B,UAA4B,MAAuB;;;;;;wBACjD,KAAA,IAAI,CAAA;wBAAoB,qBAAM,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAClF,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAC5B,IAAI,CAAC,aAAa,CAAC,EAAE,CACtB,EAAA;;wBAHD,GAAK,gBAAgB,GAAG,SAGvB,CAAC;;;;;KACH;IAED,0DAAkB,GAAlB;QACE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACvD;;gBArD0C,qBAAqB;;IAZhEA;QADC,KAAK,EAAE;wEAC+B;IAEvCA;QADC,KAAK,EAAE;mEACkB;IAChBA;QAAT,MAAM,EAAE;kFAAqF;IAG9FA;QADC,SAAS,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;uEAChB;IARzB,6BAA6B;QAJzC,SAAS,CAAC;YACT,QAAQ,EAAE,4BAA4B;YACtC,q4DAAsD;SACvD,CAAC;OACW,6BAA6B,CAoEzC;IAAD,oCAAC;CApED;;;ICIE,sCACU,qBAA4C,EAC5C,YAA0B;QAD1B,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,iBAAY,GAAZ,YAAY,CAAc;QAbpC,WAAM,GAAG,EAAE,CAAC;QACZ,wBAAmB,GAAG,KAAK,CAAC;QAC5B,+BAA0B,GAAG,sBAAsB,CAAC;QACpD,qCAAgC,GAAG,2BAA2B,CAAC;QAK/D,aAAQ,GAAY,KAAK,CAAC;KAMtB;IAEE,+CAAQ,GAAd;;;;;;wBACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;wBACrC,KAAA,IAAI,CAAA;wBAAU,qBAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA;;wBAA7D,GAAK,MAAM,GAAG,SAA+C,CAAC;;;;;KAC/D;IAED,sDAAe,GAAf;QACE,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEK,2DAAoB,GAA1B,UAA2B,eAAe;;;;;;wBAClC,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE;4BAC9C,IAAI;4BACJ,MAAM;4BACN,QAAQ;4BACR,eAAe;4BACf,cAAc;4BACd,UAAU;yBACX,CAAC,CAAC;;;;wBAGD,qBAAM,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAA;;wBAAzE,SAAyE,CAAC;wBAC1E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;;;;wBAEzD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC;;;;;;KAE1C;IAED,mDAAY,GAAZ;QAAA,iBAIC;QAHC,OAAO,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAC/C,UAAA,mBAAmB,IAAI,OAAA,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAI,CAAC,SAAS,CAAC,MAAM,GAAA,CACzF,CAAC,SAAS,CAAC;KACb;IAEa,kDAAW,GAAzB,UAA0B,QAAQ;;;;;4BACZ,qBAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAA;;wBAAzE,WAAW,GAAG,SAA2D;wBAC/E,IAAI,WAAW,EAAE;4BACf,sBAAO,WAAW,CAAC,IAAI,EAAC;yBACzB;;;;;KACF;IAEO,sDAAe,GAAvB;QACE,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;YAChC,IAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YAC/C,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC;SAC3E;KACF;;gBAjDgC,qBAAqB;gBAC9B,YAAY;;IAPpCA;QADC,KAAK,EAAE;mEACc;IAEtBA;QADC,KAAK,EAAE;kEACkB;IACoBA;QAA7C,SAAS,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;0EAA8B;IAVhE,4BAA4B;QAJxC,SAAS,CAAC;YACT,QAAQ,EAAE,2BAA2B;YACrC,utDAAqD;SACtD,CAAC;OACW,4BAA4B,CA+DxC;IAAD,mCAAC;CA/DD;;;ICKE,wCACU,MAAc,EACd,qBAA4C,EAC5C,0BAAsD;QAFtD,WAAM,GAAN,MAAM,CAAQ;QACd,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,+BAA0B,GAA1B,0BAA0B,CAA4B;QANtD,iBAAY,GAAgC,IAAI,YAAY,EAAE,CAAC;QACzE,aAAQ,GAAoB,EAAE,CAAC;KAM3B;IAEJ,iDAAQ,GAAR;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;KAC3D;IAED,oDAAW,GAAX,UAAY,IAAmB;QAC7B,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,EAAE,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B;KACF;;gBAhBiB,MAAM;gBACS,qBAAqB;gBAChB,0BAA0B;;IANtDA;QAAT,MAAM,EAAE;wEAAgE;IAD9D,8BAA8B;QAJ1C,SAAS,CAAC;YACT,QAAQ,EAAE,8BAA8B;YACxC,ymBAAwD;SACzD,CAAC;OACW,8BAA8B,CAsB1C;IAAD,qCAAC;CAtBD;;ICWa,uBAAuB,GAAY;IAC9C;QACE,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,2BAA2B;KACvC;CACF,CAAC;;;;AAqDF;IAAA;KAAwC;IAA3B,wBAAwB;QAhDpC,QAAQ,CAAC;YACR,OAAO,EAAE;gBACP,UAAU;gBACV,aAAa;gBACb,aAAa;gBACb,kBAAkB;gBAClB,sBAAsB;gBACtB,4BAA4B;gBAC5B,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC;aAC/C;YACD,SAAS,EAAE,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;YACpE,YAAY,EAAE;gBACZ,2BAA2B;gBAC3B,8BAA8B;gBAC9B,iCAAiC;gBACjC,6BAA6B;gBAC7B,6BAA6B;gBAC7B,4BAA4B;gBAC5B,6BAA6B;gBAC7B,8BAA8B;gBAC9B,4BAA4B;gBAC5B,sCAAsC;aACvC;YACD,eAAe,EAAE;gBACf,2BAA2B;gBAC3B,8BAA8B;gBAC9B,iCAAiC;gBACjC,6BAA6B;gBAC7B,6BAA6B;gBAC7B,4BAA4B;gBAC5B,6BAA6B;gBAC7B,8BAA8B;gBAC9B,4BAA4B;gBAC5B,sCAAsC;aACvC;YACD,OAAO,EAAE;gBACP,2BAA2B;gBAC3B,8BAA8B;gBAC9B,iCAAiC;gBACjC,6BAA6B;gBAC7B,6BAA6B;gBAC7B,4BAA4B;gBAC5B,6BAA6B;gBAC7B,8BAA8B;gBAC9B,4BAA4B;gBAC5B,sCAAsC;aACvC;SACF,CAAC;OACW,wBAAwB,CAAG;IAAD,+BAAC;CAAxC;;ACjFA;;GAEG;;;;"}
@@ -3797,6 +3797,9 @@ msgstr ""
3797
3797
  msgid "Delete`tenant`"
3798
3798
  msgstr ""
3799
3799
 
3800
+ msgid "Deleted"
3801
+ msgstr ""
3802
+
3800
3803
  msgid "Delivered"
3801
3804
  msgstr ""
3802
3805
 
@@ -5,5 +5,7 @@ export declare const BULK_OPERATION_STATUS_LABELS: {
5
5
  CANCELED: any;
6
6
  FAILED: any;
7
7
  SUCCESSFUL: any;
8
+ DELETED: any;
8
9
  };
9
10
  export declare const BULK_OPERATION_STATUS_OPTIONS: IStatusOption[];
11
+ export declare const BULK_OPERATION_FALLBACK_STATUS_ICON = "dlt-c8y-icon-ask-question text-muted";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ngx-components",
3
- "version": "1010.0.33",
3
+ "version": "1010.0.35",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "Angular modules for Cumulocity IoT applications",
@@ -23,7 +23,7 @@
23
23
  "rxjs": "~6.4.0"
24
24
  },
25
25
  "dependencies": {
26
- "@c8y/client": "1010.0.33",
26
+ "@c8y/client": "1010.0.35",
27
27
  "@ngx-translate/core": "12.1.1",
28
28
  "@ngx-translate/http-loader": "4.0.0",
29
29
  "@ngx-formly/core": "5.10.6",