/*-------------------------------------------------------------------------------------------------------------- * Copyright (c) insite-gmbh. All rights reserved. * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------------------------*/ import { Pipe, PipeTransform } from '@angular/core'; import { Map } from '../../../@inax/common'; import { InaxMotionTextsService } from './motionTexts'; import { IMotionEx } from './domain/motion'; import { IFinalPositionEx } from './domain/finalPosition'; import { ViewMode } from './domain/viewMode'; @Pipe({ name: 'motionTexts' }) export class InaxMotionTextsPipe implements PipeTransform { constructor(private _inaxMotionTexts: InaxMotionTextsService) { } transform(value: string, ...options: any[]): string { try{ if (options.length > 0) { let motion = options[0] as IMotionEx; if (motion != null) { switch (value) { case "DisplayName": if(this.getViewMode(options) == ViewMode.Symbolic) return this._inaxMotionTexts.getSymbolicName(motion); else return "DB" + motion.BlockNum + ".DBB" + motion.BlockOffset; case "Direction1Text": return this._inaxMotionTexts.getDirection1Text(motion); case "Direction2Text": return this._inaxMotionTexts.getDirection2Text(motion); case "FinalPositionText": { let finalPosition = options[1] as IFinalPositionEx; if (finalPosition != null) { if(this.getViewMode(options) == ViewMode.Symbolic) return this._inaxMotionTexts.getFinalPositionText(motion, finalPosition); else return finalPosition.AbsoluteAddress; } } } } } }catch(error){ console.log(error); } return value; } private getViewMode(options: any[]){ let vm = options[options.length-1] as ViewMode if(vm != null) return vm; return ViewMode.Symbolic; } }