{"version":3,"file":"5905.27d094a68dc37994.js","mappings":"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","names":["Floorplan","constructor","dimensionsInPx","machines","this","_dimensionsInPx","_machines","addMachine","machine","push","HttpMachineOverviewService","_HttpMachineOverviewService","httpClient","backendConfiguration","getListOfCustomSettings","get","getMachineOverviewEndpoint","pipe","rxjsMap","result","saveCustomSettings","chosenSettings","put","updateMachinePosition","coordinatesInPx","x","Math","round","y","newPositionObject","machineId","id","addMachineToFloorplan","post","getFloorplan","map","OverviewMachine","fromJSON","heightInPx","widthInPx","hasAlreadyAdjustedCustomSettings","alreadyAdjustedCustomSettings","getMessages","start","count","filter","messages","message","Message","saveMachineFiles","files","deleteMachineFiles","options","headers","body","delete","getRemoteAccessUrl","getRootGroup","machineGroupJSON","OverviewMachineGroup","i0","i1","i2","factory","ɵfac","Schedule","IdName","name","patterns","super","_patterns","value","ScheduleStubFactory","getRandomSchedule","StubSchedulesService","_StubSchedulesService","schedules","previousScheduleId","length","getAll","of","schedule","getById","find","save","item","update","findIndex","deleteMulti","ids","includes","MultiDeleteResponse","HttpStatusCode","Ok","isIdentifierAvailable","identifier","isAvailable","some","toLowerCase","CheckName","ScheduleModule","_ScheduleModule","provide","HttpScheduleService","useClass","MACHINE_OVERVIEW","ScheduleOverviewService","imports","scheduleRouting","CommonModule","SharedModule","CrudOverviewDataModule","EditorHeaderModule","CustomSettingsDialogHeaderComponent","SplitButtonModule","MatchingCriteriaModule","AddSchedulePageComponent","i3","OverviewMachineColoredYarnSet","startDent","_id","_name","_startDent","coloredYarnSetJSON","OverviewMachineCreel","creelColoredYarnSets","_creelColoredYarnSets","creelJSON","coloredYarnSet","coloredYarnSetId","coloredYarnSetName","floorplanId","groups","machineIds","reportItems","_floorplanId","_groups","_machineIds","_reportItems","subMachineGroupJSON","reportItemJSON","ReportItem","getReportItem","reportItemTemplateField","reportItem","field","addOrUpdateReportItem","reportItemToAddOrUpdate","getNestedChildMachineIds","nestedChildMachineIds","AssertionUtils","isNullOrUndefined","flatMap","group","ArrayUtils","distinctBy","getNestedChildGroupIds","nestedChildGroupIds","groupId","fromMachineGroupOverviewList","machineGroupOverviewList","_machineGroupOverview","_machineGroupOverview2","OverviewMachineProductionOrder","progress","_progress","BaseOverviewMachineGroup","efficiency","machineType","status","queue","activeQuality","activeCreel","productionOrder","orderId","rotationsPerMinute","amountOfWarningMessages","roleCode","stopReason","machineGroups","remoteMachine","endTime","speed","_coordinatesInPx","_machineType","_status","_queue","_efficiency","_activeQuality","_activeCreel","_messages","_productionOrder","_orderId","_rotationsPerMinute","_amountOfWarningMessages","_roleCode","_stopReason","_machineGroups","_remoteMachine","_endTime","_speed","machineJSON","_machineJSON$reportIt","isNil","activeMachineQuality","OverviewListMachineQuality","level","MachineType","MachineStatus","currentPick","totalNumberOfPicks","timeSpentInSeconds","durationInSeconds","currentStopReason","abbreviation","pattern","Pattern","color","machineGroup","StringUtils","toDate","amountOfJobsOnQueue","amount","queueRemainingTimeInMs","duration","isStopped","isEqual","STOPPED_MANUAL","STOPPED_CRITICAL","isDisconnected","DISCONNECTED","isPremium","getReportItemValue","_this$reportItems","updateMachineReportItems","data","_this$reportItems2","updatedReportItem","ReportItemTemplateField","updateMachineEfficiency","currentEfficiency","updateMachineStatus","getMachineStatusByLabel","currentStatus","updateMachineMessage","unshift","updateMachineProductionOrder","order","orderProgressChange","updateMachineSpeed","calculateCachedMachineIcon","highestSeverityContextService","getHighestSeverityDataForMachine","cachedMachineIcon","getIconNameForMachineType","highestPriorityLevel"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./apps/texconnect/src/app/domain/machine/floorplan.ts","./apps/texconnect/src/app/infrastructure/http/machine-overview/http-machine-overview.service.ts","./apps/texconnect/src/app/domain/calendar/schedule/schedule.ts","./apps/texconnect/src/app/application/helper/calendar/schedule/schedule-stub-factory.ts","./apps/texconnect/src/app/infrastructure/http/calendar/schedule/stub-schedules.service.ts","./apps/texconnect/src/app/presentation/pages/calendar/schedule/schedule.module.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/overview-machine-colored-yarn-set.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/overview-machine-creel.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/overview-machine-group.ts","./apps/texconnect/src/app/domain/machine/overview-machine-production-order.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/base-overview-machine-group.ts","./apps/texconnect/src/app/presentation/pages/machine-overview/overview-machine.ts"],"sourcesContent":["import {DimensionsInPx} from '@domain/dimensions-in-px';\nimport {OverviewMachine} from '@presentation/pages/machine-overview/overview-machine';\n\nexport class Floorplan {\n private _machines: OverviewMachine[];\n private _dimensionsInPx: DimensionsInPx;\n\n public constructor(dimensionsInPx: DimensionsInPx, machines: OverviewMachine[]) {\n this._dimensionsInPx = dimensionsInPx;\n this._machines = machines;\n }\n\n public get dimensionsInPx(): DimensionsInPx {\n return this._dimensionsInPx;\n }\n\n public set dimensionsInPx(dimensionsInPx: DimensionsInPx) {\n this._dimensionsInPx = dimensionsInPx;\n }\n\n public get machines(): OverviewMachine[] {\n return this._machines;\n }\n\n public set machines(machines: OverviewMachine[]) {\n this._machines = machines;\n }\n\n public addMachine(machine: OverviewMachine): void {\n this._machines.push(machine);\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BackendConfiguration} from '@application/configuration/backend-configuration';\nimport {Floorplan} from '@domain/machine/floorplan';\nimport {MachineFile} from '@domain/machine/machine-file';\nimport {PropertyValue} from '@domain/property-value';\nimport {OverviewMachine} from '@presentation/pages/machine-overview/overview-machine';\nimport {OverviewMachineGroup} from '@presentation/pages/machine-overview/overview-machine-group';\nimport {MachineOverviewMessageFilter} from '@presentation/pages/machine-overview/sidebar/machine-overview-message-filter';\nimport {Message} from '@vdw/angular-component-library';\nimport {map} from 'lodash-es';\nimport {Observable} from 'rxjs';\nimport {map as rxjsMap} from 'rxjs/operators';\nimport {MachineOverview} from './machine-overview';\n\n@Injectable()\nexport class HttpMachineOverviewService implements MachineOverview {\n private httpClient: HttpClient;\n private backendConfiguration: BackendConfiguration;\n\n public constructor(httpClient: HttpClient, backendConfiguration: BackendConfiguration) {\n this.httpClient = httpClient;\n this.backendConfiguration = backendConfiguration;\n }\n\n public getListOfCustomSettings(): Observable {\n return this.httpClient.get(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/custom-settings`).pipe(\n rxjsMap((result: PropertyValue[]) => {\n return result;\n })\n );\n }\n\n public saveCustomSettings(chosenSettings: PropertyValue[]): Observable {\n return this.httpClient.put(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/custom-settings`, chosenSettings);\n }\n\n public updateMachinePosition(machine: OverviewMachine): Observable {\n machine.coordinatesInPx.x = Math.round(machine.coordinatesInPx.x);\n machine.coordinatesInPx.y = Math.round(machine.coordinatesInPx.y);\n const newPositionObject = {\n machineId: machine.id,\n coordinatesInPx: machine.coordinatesInPx\n };\n return this.httpClient.put(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/floorplan/machineposition`, newPositionObject);\n }\n\n public addMachineToFloorplan(machine: OverviewMachine): Observable {\n machine.coordinatesInPx.x = Math.round(machine.coordinatesInPx.x);\n machine.coordinatesInPx.y = Math.round(machine.coordinatesInPx.y);\n const newPositionObject = {\n machineId: machine.id,\n coordinatesInPx: machine.coordinatesInPx\n };\n return this.httpClient.post(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/floorplan/machine`, newPositionObject);\n }\n\n public getFloorplan(): Observable {\n return this.httpClient.get(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/floorplan`).pipe(\n rxjsMap((result: {machines}) => {\n const machines = map(result.machines, (machine: any) => {\n return OverviewMachine.fromJSON(machine);\n });\n\n return new Floorplan({heightInPx: null, widthInPx: null}, machines);\n })\n );\n }\n\n public hasAlreadyAdjustedCustomSettings(): Observable {\n return this.httpClient.get(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/custom-settings/already-adjusted`).pipe(\n rxjsMap((result: {alreadyAdjustedCustomSettings}) => {\n return result.alreadyAdjustedCustomSettings;\n })\n );\n }\n\n public getMessages(start: number, count: number, filter: MachineOverviewMessageFilter): Observable {\n return this.httpClient.post(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/messages?count=${count}&start=${start}`, filter).pipe(\n rxjsMap((messages: any[]) => {\n return map(messages, (message: any) => Message.fromJSON(message));\n })\n );\n }\n\n public saveMachineFiles(machineId: number, files: MachineFile[]): Observable {\n return this.httpClient.post(`${this.backendConfiguration.getMachineOverviewEndpoint()}machinefiles/machine/${machineId}`, files);\n }\n\n public deleteMachineFiles(machineId: number, files: MachineFile[]): Observable {\n const options = {\n headers: {},\n body: map(files, 'name')\n };\n\n return this.httpClient.delete(`${this.backendConfiguration.getMachineOverviewEndpoint()}machinefiles/machine/${machineId}`, options);\n }\n\n public getRemoteAccessUrl(machineId: number): Observable {\n return this.httpClient.get(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/${machineId}/remote-access-url`);\n }\n\n public getRootGroup(): Observable {\n return this.httpClient\n .get(`${this.backendConfiguration.getMachineOverviewEndpoint()}machineoverview/machine-groups`)\n .pipe(rxjsMap((machineGroupJSON: any) => OverviewMachineGroup.fromJSON(machineGroupJSON)));\n }\n}\n","import {IdName} from '@domain/id-name';\n\nexport class Schedule extends IdName {\n private _patterns: IdName[];\n\n public constructor(id: number, name: string, patterns: IdName[]) {\n super(id, name);\n this._patterns = patterns;\n }\n\n public get patterns(): IdName[] {\n return this._patterns;\n }\n\n public set patterns(value: IdName[]) {\n this._patterns = value;\n }\n}\n","import {Schedule} from '@domain/calendar/schedule/schedule';\nimport {IdName} from '@domain/id-name';\n\nexport class ScheduleStubFactory {\n public static getRandomSchedule(id: number = 1): Schedule {\n return new Schedule(id, `Schedule ${id}`, [new IdName(id, `Pattern ${id}`)]);\n }\n}\n","import {HttpStatusCode} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ScheduleStubFactory} from '@application/helper/calendar/schedule/schedule-stub-factory';\nimport {Schedule} from '@domain/calendar/schedule/schedule';\nimport {MultiDeleteResponse} from '@domain/textile-data/multi-delete-reponse';\nimport {CheckName, InterfaceOf} from '@vdw/angular-component-library';\nimport {Observable, of} from 'rxjs';\nimport {HttpScheduleService} from './http-schedules.service';\n\n@Injectable()\nexport class StubSchedulesService implements InterfaceOf {\n private schedules: Schedule[] = [ScheduleStubFactory.getRandomSchedule(1), ScheduleStubFactory.getRandomSchedule(2), ScheduleStubFactory.getRandomSchedule(15)];\n private previousScheduleId = this.schedules[this.schedules.length - 1].id;\n\n public getAll(): Observable {\n return of(this.schedules);\n }\n\n public delete(id: number | string): Observable {\n this.schedules = this.schedules.filter((schedule: Schedule) => schedule.id !== id);\n return of(null);\n }\n\n public getById(id: number | string): Observable {\n return of(this.schedules.find((schedule: Schedule) => schedule.id === id));\n }\n\n public save(item: Schedule): Observable {\n item.id = ++this.previousScheduleId;\n this.schedules.push(item);\n return of(item.id);\n }\n\n public update(item: Schedule): Observable {\n this.schedules[this.schedules.findIndex((schedule: Schedule) => schedule.id === item.id)] = item;\n return of(null);\n }\n\n public deleteMulti(ids: number[]): Observable {\n this.schedules = this.schedules.filter((schedule: Schedule) => !ids.includes(schedule.id));\n return of(ids.map((id: number) => new MultiDeleteResponse(id, HttpStatusCode.Ok)));\n }\n\n public isIdentifierAvailable(identifier: string): Observable {\n const isAvailable = !this.schedules.some((schedule: Schedule) => schedule.name.toLowerCase() === identifier);\n return of(new CheckName(isAvailable, isAvailable ? 0 : this.schedules.find((schedule: Schedule) => schedule.name.toLowerCase() === identifier).id));\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {HttpScheduleService} from '@infrastructure/http/calendar/schedule/http-schedules.service';\nimport {StubSchedulesService} from '@infrastructure/http/calendar/schedule/stub-schedules.service';\nimport {HttpMachineOverviewService} from '@infrastructure/http/machine-overview/http-machine-overview.service';\nimport {MACHINE_OVERVIEW} from '@infrastructure/http/machine-overview/machine-overview';\nimport {CustomSettingsDialogHeaderComponent} from '@presentation/components/custom-settings-dialog/custom-settings-dialog-header.component';\nimport {MatchingCriteriaModule} from '@presentation/pages/utilities/tool/add/matching-criteria/matching-criteria.module';\nimport {SharedModule} from '@shared/shared.module';\nimport {CrudOverviewDataModule, EditorHeaderModule, SplitButtonModule} from '@vdw/angular-component-library';\nimport {AddSchedulePageComponent} from './add/add-schedule-page.component';\nimport {ScheduleOverviewPageComponent} from './overview/schedule-overview-page.component';\nimport {ScheduleOverviewService} from './overview/schedule-overview.service';\nimport {scheduleRouting} from './schedule.routing';\nimport {ScheduleCustomSettingsComponent} from './settings/schedule-custom-settings.component';\n\n@NgModule({\n imports: [scheduleRouting, CommonModule, SharedModule, CrudOverviewDataModule, EditorHeaderModule, CustomSettingsDialogHeaderComponent, SplitButtonModule, MatchingCriteriaModule],\n declarations: [ScheduleOverviewPageComponent, AddSchedulePageComponent, ScheduleCustomSettingsComponent],\n providers: [{provide: HttpScheduleService, useClass: StubSchedulesService}, {provide: MACHINE_OVERVIEW, useClass: HttpMachineOverviewService}, ScheduleOverviewService]\n})\nexport class ScheduleModule {}\n","export class OverviewMachineColoredYarnSet {\n private _id: number;\n private _name: string;\n private _startDent: number;\n\n public constructor(id: number = null, name: string = null, startDent: number = null) {\n this._id = id;\n this._name = name;\n this._startDent = startDent;\n }\n\n public static fromJSON(coloredYarnSetJSON: any): OverviewMachineColoredYarnSet {\n return new OverviewMachineColoredYarnSet(coloredYarnSetJSON.id, coloredYarnSetJSON.name, coloredYarnSetJSON.startDent);\n }\n\n public get id(): number {\n return this._id;\n }\n\n public set id(id: number) {\n this._id = id;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public set name(name: string) {\n this._name = name;\n }\n\n public get startDent(): number {\n return this._startDent;\n }\n\n public set startDent(startDent: number) {\n this._startDent = startDent;\n }\n}\n","import {map} from 'lodash-es';\nimport {OverviewMachineColoredYarnSet} from './overview-machine-colored-yarn-set';\n\nexport class OverviewMachineCreel {\n public _id: number;\n public _name: string;\n public _creelColoredYarnSets: OverviewMachineColoredYarnSet[];\n\n public constructor(id: number = null, name: string = null, creelColoredYarnSets: OverviewMachineColoredYarnSet[] = []) {\n this._id = id;\n this._name = name;\n this._creelColoredYarnSets = creelColoredYarnSets;\n }\n\n public static fromJSON(creelJSON: any): OverviewMachineCreel {\n return new OverviewMachineCreel(\n creelJSON.id,\n creelJSON.name,\n map(creelJSON.creelColoredYarnSets, (coloredYarnSet: any) => new OverviewMachineColoredYarnSet(coloredYarnSet.coloredYarnSetId, coloredYarnSet.coloredYarnSetName, coloredYarnSet.startDent))\n );\n }\n\n public get id(): number {\n return this._id;\n }\n\n public set id(id: number) {\n this._id = id;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public set name(name: string) {\n this._name = name;\n }\n\n public get creelColoredYarnSets(): OverviewMachineColoredYarnSet[] {\n return this._creelColoredYarnSets;\n }\n\n public set creelColoredYarnSets(creelColoredYarnSets: OverviewMachineColoredYarnSet[]) {\n this._creelColoredYarnSets = creelColoredYarnSets;\n }\n}\n","import {ReportItemTemplateField} from '@domain/report-data-set/report-item-template-field.enum';\nimport {OverviewMachine} from '@presentation/pages/machine-overview/overview-machine';\nimport {ReportItem} from '@presentation/pages/machine-overview/report-item';\nimport {ArrayUtils, AssertionUtils} from '@vdw/angular-component-library';\nimport {MachineGroupOverviewList} from './sidebar/group-editor/machine-group-overview-list';\nimport {MachineOverviewList} from './sidebar/group-editor/machine-overview-list';\n\nexport class OverviewMachineGroup {\n private _id: number;\n private _name: string;\n private _floorplanId: number;\n private _groups: OverviewMachineGroup[];\n private _machineIds: number[];\n private _machines: OverviewMachine[];\n private _reportItems: ReportItem[];\n\n public constructor(id: number, name: string, floorplanId: number, groups: OverviewMachineGroup[], machineIds: number[], reportItems: ReportItem[]) {\n this._id = id;\n this._name = name;\n this._floorplanId = floorplanId;\n this._groups = groups;\n this._machineIds = machineIds;\n this._reportItems = reportItems;\n }\n\n public static fromJSON(machineGroupJSON: any): OverviewMachineGroup {\n return new OverviewMachineGroup(\n machineGroupJSON.id,\n machineGroupJSON.name,\n machineGroupJSON.floorplanId,\n machineGroupJSON.groups.map((subMachineGroupJSON: any) => OverviewMachineGroup.fromJSON(subMachineGroupJSON)),\n machineGroupJSON.machineIds,\n machineGroupJSON.reportItems.map((reportItemJSON: any) => ReportItem.fromJSON(reportItemJSON))\n );\n }\n\n public get id(): number {\n return this._id;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public set name(value: string) {\n this._name = value;\n }\n\n public get floorplanId(): number {\n return this._floorplanId;\n }\n\n public set floorplanId(value: number) {\n this._floorplanId = value;\n }\n\n public get groups(): OverviewMachineGroup[] {\n return this._groups;\n }\n\n public set groups(value: OverviewMachineGroup[]) {\n this._groups = value;\n }\n\n public get machineIds(): number[] {\n return this._machineIds;\n }\n\n public set machineIds(value: number[]) {\n this._machineIds = value;\n }\n\n public get machines(): OverviewMachine[] {\n return this._machines;\n }\n\n public set machines(value: OverviewMachine[]) {\n this._machines = value;\n }\n\n public get reportItems(): ReportItem[] {\n return this._reportItems;\n }\n\n public set reportItems(value: ReportItem[]) {\n this._reportItems = value;\n }\n\n public getReportItem(reportItemTemplateField: ReportItemTemplateField): ReportItem {\n return this._reportItems.find((reportItem: ReportItem) => reportItem.field === reportItemTemplateField);\n }\n\n public addOrUpdateReportItem(reportItemToAddOrUpdate: ReportItem): void {\n this._reportItems = this._reportItems.filter((reportItem: ReportItem) => reportItem.field !== reportItemToAddOrUpdate.field);\n this._reportItems.push(reportItemToAddOrUpdate);\n }\n\n public getNestedChildMachineIds(): number[] {\n const nestedChildMachineIds: number[] = [];\n\n if (!AssertionUtils.isNullOrUndefined(this._machineIds)) {\n nestedChildMachineIds.push(...this._machineIds);\n }\n\n if (!AssertionUtils.isNullOrUndefined(this._groups)) {\n nestedChildMachineIds.push(...this._groups.flatMap((group: OverviewMachineGroup) => group.getNestedChildMachineIds()));\n }\n\n return ArrayUtils.distinctBy([...nestedChildMachineIds], (machineId: number) => machineId);\n }\n\n public getNestedChildGroupIds(): number[] {\n const nestedChildGroupIds: number[] = [];\n\n if (!AssertionUtils.isNullOrUndefined(this._groups)) {\n nestedChildGroupIds.push(...this._groups.map((group: OverviewMachineGroup) => group.id), this.id);\n }\n\n if (!AssertionUtils.isNullOrUndefined(this._groups)) {\n nestedChildGroupIds.push(...this._groups.flatMap((group: OverviewMachineGroup) => group.getNestedChildGroupIds()));\n }\n\n return ArrayUtils.distinctBy([...nestedChildGroupIds], (groupId: number) => groupId);\n }\n\n public static fromMachineGroupOverviewList(machineGroupOverviewList: MachineGroupOverviewList): OverviewMachineGroup {\n return new OverviewMachineGroup(\n machineGroupOverviewList.id,\n machineGroupOverviewList.name,\n null,\n machineGroupOverviewList.groups?.map((group: MachineGroupOverviewList) => OverviewMachineGroup.fromMachineGroupOverviewList(group)),\n machineGroupOverviewList.machines?.map((machine: MachineOverviewList) => machine.id),\n []\n );\n }\n}\n","import {ProductionOrderProgress} from './production-order-progress';\n\nexport class OverviewMachineProductionOrder {\n private _name: string;\n private _progress: ProductionOrderProgress;\n\n public constructor(name: string, progress: ProductionOrderProgress) {\n this._name = name;\n this._progress = progress;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get progress(): ProductionOrderProgress {\n return this._progress;\n }\n}\n","export class BaseOverviewMachineGroup {\n private _id: number;\n private _name: string;\n\n public constructor(id: number, name: string) {\n this._id = id;\n this._name = name;\n }\n\n public static fromJSON(machineGroupJSON: any): BaseOverviewMachineGroup {\n return new BaseOverviewMachineGroup(machineGroupJSON.id, machineGroupJSON.name);\n }\n\n public get id(): number {\n return this._id;\n }\n\n public get name(): string {\n return this._name;\n }\n}\n","import {Coordinates} from '@domain/coordinates';\nimport {MachineEfficiency} from '@domain/machine/machine-efficiency';\nimport {MachineEfficiencyLevel} from '@domain/machine/machine-efficiency-level.enum';\nimport {MachineEfficiencyUpdate} from '@domain/machine/machine-information-update/machine-efficiency-update.interface';\nimport {MachineProductionOrderUpdate} from '@domain/machine/machine-information-update/machine-production-order-update.interface';\nimport {MachineReportItemUpdate} from '@domain/machine/machine-information-update/machine-report-item-update.interface';\nimport {MachineSpeedUpdate} from '@domain/machine/machine-information-update/machine-speed-update.interface';\nimport {MachineStatusUpdate} from '@domain/machine/machine-information-update/machine-status-update.interface';\nimport {MachineQueue} from '@domain/machine/machine-queue';\nimport {MachineStatus} from '@domain/machine/machine-status.enum';\nimport {MachineType} from '@domain/machine/machine-type.enum';\nimport {OverviewMachineProductionOrder} from '@domain/machine/overview-machine-production-order';\nimport {StopReason} from '@domain/machine/stop-reason.interface';\nimport {ReportItemTemplateField} from '@domain/report-data-set/report-item-template-field.enum';\nimport {OverviewListMachineQuality} from '@presentation/pages/textile-data/machine-quality/overview/overview-list-machine-quality';\nimport {AssertionUtils, Message, Pattern, StringUtils} from '@vdw/angular-component-library';\nimport {isEqual, isNil} from 'lodash-es';\nimport {BaseOverviewMachineGroup} from './base-overview-machine-group';\nimport {OverviewMachineCreel} from './overview-machine-creel';\nimport {ReportItem} from './report-item';\nimport {HighestSeverityNotificationContextService} from '@presentation/pages/machine-overview/highest-severity-notification-context/highest-severity-notification-context.service';\n\nexport class OverviewMachine {\n private _id: number;\n private _name: string;\n private _machineType: MachineType;\n private _coordinatesInPx: Coordinates;\n private _status: MachineStatus;\n private _queue: MachineQueue;\n private _efficiency: MachineEfficiency;\n private _activeQuality: OverviewListMachineQuality;\n private _activeCreel: OverviewMachineCreel;\n private _messages: Message[];\n private _productionOrder: OverviewMachineProductionOrder;\n private _orderId: string;\n private _rotationsPerMinute: number;\n private _amountOfWarningMessages: number;\n private _roleCode: string;\n private _stopReason: StopReason;\n private _machineGroups: BaseOverviewMachineGroup[];\n private _reportItems: ReportItem[];\n private _remoteMachine: boolean;\n private _endTime: Date;\n private _speed: number;\n\n public cachedMachineIcon: string;\n\n public constructor(\n id: number = null,\n name: string = null,\n efficiency: MachineEfficiency = null,\n coordinatesInPx: Coordinates = null,\n machineType: MachineType = null,\n status: MachineStatus = null,\n queue: MachineQueue = null,\n activeQuality: OverviewListMachineQuality = null,\n activeCreel: OverviewMachineCreel = null,\n messages: Message[] = [],\n productionOrder: OverviewMachineProductionOrder = null,\n orderId: string = null,\n rotationsPerMinute: number = null,\n amountOfWarningMessages: number = null,\n roleCode: string = null,\n stopReason: StopReason = null,\n machineGroups: BaseOverviewMachineGroup[] = [],\n reportItems: ReportItem[] = [],\n remoteMachine: boolean = false,\n endTime: Date = null,\n speed: number = null\n ) {\n this._id = id;\n this._name = name;\n this._coordinatesInPx = coordinatesInPx;\n this._machineType = machineType;\n this._status = status;\n this._queue = queue;\n this._efficiency = efficiency;\n this._activeQuality = activeQuality;\n this._activeCreel = activeCreel;\n this._messages = messages;\n this._productionOrder = productionOrder;\n this._orderId = orderId;\n this._rotationsPerMinute = rotationsPerMinute;\n this._amountOfWarningMessages = amountOfWarningMessages;\n this._roleCode = roleCode;\n this._stopReason = stopReason;\n this._machineGroups = machineGroups;\n this._reportItems = reportItems;\n this._remoteMachine = remoteMachine;\n this._endTime = endTime;\n this._speed = speed;\n }\n\n public static fromJSON(machineJSON: any): OverviewMachine {\n const activeQuality: OverviewListMachineQuality = isNil(machineJSON.activeMachineQuality) ? null : OverviewListMachineQuality.fromJSON(machineJSON.activeMachineQuality);\n\n const activeCreel: OverviewMachineCreel = isNil(machineJSON.activeCreel) ? null : OverviewMachineCreel.fromJSON(machineJSON.activeCreel);\n\n return new OverviewMachine(\n machineJSON.id,\n machineJSON.name,\n isNil(machineJSON.efficiency) ? machineJSON.efficiency : {value: machineJSON.efficiency.value, level: machineJSON.efficiency.level},\n machineJSON.coordinatesInPx,\n MachineType[`${machineJSON.machineType}`],\n isNil(machineJSON.status) ? machineJSON.status : MachineStatus[machineJSON.status],\n null,\n activeQuality,\n activeCreel,\n [],\n isNil(machineJSON.productionOrder)\n ? machineJSON.productionOrder\n : new OverviewMachineProductionOrder(machineJSON.productionOrder.name, {\n currentPick: machineJSON.productionOrder.progress.currentPick,\n totalNumberOfPicks: machineJSON.productionOrder.progress.totalNumberOfPicks,\n timeSpentInSeconds: machineJSON.productionOrder.progress.timeSpentInSeconds,\n durationInSeconds: machineJSON.productionOrder.progress.durationInSeconds\n }),\n machineJSON.orderId,\n machineJSON.rotationsPerMinute,\n machineJSON.amountOfWarningMessages,\n machineJSON.roleCode,\n isNil(machineJSON.currentStopReason)\n ? machineJSON.currentStopReason\n : {abbreviation: machineJSON.currentStopReason.abbreviation, pattern: Pattern[machineJSON.currentStopReason.pattern], color: machineJSON.currentStopReason.color},\n machineJSON.machineGroups.map((machineGroup: any) => BaseOverviewMachineGroup.fromJSON(machineGroup)),\n machineJSON.reportItems?.map((reportItem: any) => ReportItem.fromJSON(reportItem)),\n machineJSON.remoteMachine,\n StringUtils.toDate(machineJSON.endTime),\n machineJSON.speed\n );\n }\n\n public get id(): number {\n return this._id;\n }\n\n public set id(id: number) {\n this._id = id;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public set name(name: string) {\n this._name = name;\n }\n\n public get coordinatesInPx(): Coordinates {\n return this._coordinatesInPx;\n }\n\n public set coordinatesInPx(coordinatesInPx: Coordinates) {\n this._coordinatesInPx = coordinatesInPx;\n }\n\n public get machineType(): MachineType {\n return this._machineType;\n }\n\n public set machineType(machineType: MachineType) {\n this._machineType = machineType;\n }\n\n public get status(): MachineStatus {\n return this._status;\n }\n\n public set status(status: MachineStatus) {\n this._status = status;\n }\n\n public get queue(): MachineQueue {\n return this._queue;\n }\n\n public set queue(queue: MachineQueue) {\n this._queue = queue;\n }\n\n public get efficiency(): MachineEfficiency {\n if (!AssertionUtils.isNullOrUndefined(this._efficiency)) {\n this._efficiency.value = this._efficiency.value > 100 ? 100 : Math.round(this._efficiency.value * 100) / 100;\n }\n return this._efficiency;\n }\n\n public set efficiency(efficiency: MachineEfficiency) {\n this._efficiency = efficiency;\n }\n\n public get activeQuality(): OverviewListMachineQuality {\n return this._activeQuality;\n }\n\n public set activeQuality(activeQuality: OverviewListMachineQuality) {\n this._activeQuality = activeQuality;\n }\n\n public get activeCreel(): OverviewMachineCreel {\n return this._activeCreel;\n }\n\n public set activeCreel(activeCreel: OverviewMachineCreel) {\n this._activeCreel = activeCreel;\n }\n\n public get messages(): Message[] {\n return this._messages;\n }\n\n public set messages(messages: Message[]) {\n this._messages = messages;\n }\n\n public get productionOrder(): OverviewMachineProductionOrder {\n return this._productionOrder;\n }\n\n public set productionOrder(productionOrder: OverviewMachineProductionOrder) {\n this._productionOrder = productionOrder;\n }\n\n public get orderId(): string {\n return this._orderId;\n }\n\n public set orderId(orderId: string) {\n this._orderId = orderId;\n }\n\n public get rotationsPerMinute(): number {\n return this._rotationsPerMinute;\n }\n\n public set rotationsPerMinute(rotationsPerMinute: number) {\n this._rotationsPerMinute = rotationsPerMinute;\n }\n\n public get amountOfWarningMessages(): number {\n return this._amountOfWarningMessages;\n }\n\n public set amountOfWarningMessages(amountOfWarningMessages: number) {\n this._amountOfWarningMessages = amountOfWarningMessages;\n }\n\n public get roleCode(): string {\n return this._roleCode;\n }\n\n public set roleCode(roleCode: string) {\n this._roleCode = roleCode;\n }\n\n public get stopReason(): StopReason {\n return this._stopReason;\n }\n\n public set stopReason(stopReason: StopReason) {\n this._stopReason = stopReason;\n }\n\n public get machineGroups(): BaseOverviewMachineGroup[] {\n return this._machineGroups;\n }\n\n public set machineGroups(machineGroups: BaseOverviewMachineGroup[]) {\n this._machineGroups = machineGroups;\n }\n\n public get reportItems(): ReportItem[] {\n return this._reportItems;\n }\n\n public set reportItems(reportItems: ReportItem[]) {\n this._reportItems = reportItems;\n }\n\n public get remoteMachine(): boolean {\n return this._remoteMachine;\n }\n\n public set remoteMachine(remoteMachine: boolean) {\n this._remoteMachine = remoteMachine;\n }\n\n public get endTime(): Date {\n return this._endTime;\n }\n\n public get speed(): number {\n return this._speed;\n }\n\n public get amountOfJobsOnQueue(): number {\n return !isNil(this.queue) ? this.queue.amount : null;\n }\n\n public get queueRemainingTimeInMs(): number {\n return typeof this.queue !== 'undefined' && this.queue !== null ? this.queue.duration : null;\n }\n\n public get isStopped(): boolean {\n return isEqual(this.status, MachineStatus.STOPPED_MANUAL) || isEqual(this.status, MachineStatus.STOPPED_CRITICAL);\n }\n\n public get isDisconnected(): boolean {\n return this.status === MachineStatus.DISCONNECTED;\n }\n\n public isPremium(): boolean {\n return isEqual(this._roleCode, 'M-P');\n }\n\n public getReportItemValue(field: ReportItemTemplateField): any {\n return this.reportItems?.find((reportItem: ReportItem) => reportItem.field === field)?.value;\n }\n\n public updateMachineReportItems(data: MachineReportItemUpdate): void {\n const updatedReportItem = new ReportItem(ReportItemTemplateField[data.field], data.value);\n\n const reportItemExists = this.reportItems?.some((reportItem: ReportItem) => reportItem.field === updatedReportItem.field);\n\n if (reportItemExists) {\n this.reportItems = this.reportItems.map((reportItem: ReportItem) => (reportItem.field === updatedReportItem.field ? updatedReportItem : reportItem));\n } else {\n this.reportItems.push(updatedReportItem);\n }\n }\n\n public updateMachineEfficiency(data: MachineEfficiencyUpdate): void {\n this.efficiency = {\n value: data.currentEfficiency.value,\n level: data.currentEfficiency.level as MachineEfficiencyLevel\n };\n }\n\n public updateMachineStatus(data: MachineStatusUpdate): void {\n this.status = MachineStatus.getMachineStatusByLabel(data.currentStatus);\n this.stopReason = isNil(data.stopReason) ? data.stopReason : {abbreviation: data.stopReason.abbreviation, color: data.stopReason.color, pattern: Pattern[data.stopReason.pattern as any as string]};\n }\n\n public updateMachineMessage(message: Message): void {\n this.messages.unshift(message);\n }\n\n public updateMachineProductionOrder(data: MachineProductionOrderUpdate): void {\n this.productionOrder = new OverviewMachineProductionOrder(data.order.name, data.orderProgressChange);\n }\n\n public updateMachineSpeed(data: MachineSpeedUpdate): void {\n this.rotationsPerMinute = data.rotationsPerMinute;\n }\n\n public calculateCachedMachineIcon(highestSeverityContextService: HighestSeverityNotificationContextService): void {\n const data = highestSeverityContextService?.getHighestSeverityDataForMachine(this.id);\n this.cachedMachineIcon = AssertionUtils.isNullOrUndefined(data) ? MachineType.getIconNameForMachineType(this.machineType) : `${data.highestPriorityLevel.toLowerCase()}-circle`;\n }\n}\n"],"x_google_ignoreList":[]}