1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
var __runInitializers=this&&this.__runInitializers||function(thisArg,initializers,value){for(var useValue=arguments.length>2,i=0;i<initializers.length;i++)value=useValue?initializers[i].call(thisArg,value):initializers[i].call(thisArg);return useValue?value:void 0},__esDecorate=this&&this.__esDecorate||function(ctor,descriptorIn,decorators,contextIn,initializers,extraInitializers){function accept(f){if(void 0!==f&&"function"!=typeof f)throw new TypeError("Function expected");return f}for(var _,kind=contextIn.kind,key="getter"===kind?"get":"setter"===kind?"set":"value",target=!descriptorIn&&ctor?contextIn.static?ctor:ctor.prototype:null,descriptor=descriptorIn||(target?Object.getOwnPropertyDescriptor(target,contextIn.name):{}),done=!1,i=decorators.length-1;i>=0;i--){var context={};for(var p in contextIn)context[p]="access"===p?{}:contextIn[p];for(var p in contextIn.access)context.access[p]=contextIn.access[p];context.addInitializer=function(f){if(done)throw new TypeError("Cannot add initializers after decoration has completed");extraInitializers.push(accept(f||null))};var result=(0,decorators[i])("accessor"===kind?{get:descriptor.get,set:descriptor.set}:descriptor[key],context);if("accessor"===kind){if(void 0===result)continue;if(null===result||"object"!=typeof result)throw new TypeError("Object expected");(_=accept(result.get))&&(descriptor.get=_),(_=accept(result.set))&&(descriptor.set=_),(_=accept(result.init))&&initializers.unshift(_)}else(_=accept(result))&&("field"===kind?initializers.unshift(_):descriptor[key]=_)}target&&Object.defineProperty(target,contextIn.name,descriptor),done=!0};import{TcHmiControl}from"Beckhoff.TwinCAT.HMI.Framework/index.esm.js";let TcHmiLine=(()=>{var _a;let ___onResized_decorators,___onResolverForStrokeColorWatchCallback_decorators,_classSuper=TcHmiControl.Control,_instanceExtraInitializers=[];return class TcHmiLine extends _classSuper{static{const _metadata="function"==typeof Symbol&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;___onResized_decorators=[TcHmi.EventHandler()],___onResolverForStrokeColorWatchCallback_decorators=[(_a=TcHmi).CallbackMethod.bind(_a)],__esDecorate(this,null,___onResized_decorators,{kind:"method",name:"__onResized",static:!1,private:!1,access:{has:obj=>"__onResized"in obj,get:obj=>obj.__onResized},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForStrokeColorWatchCallback_decorators,{kind:"method",name:"__onResolverForStrokeColorWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForStrokeColorWatchCallback"in obj,get:obj=>obj.__onResolverForStrokeColorWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),_metadata&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:_metadata})}static#tchmiFQN="TcHmi.Controls.Beckhoff."+this.name;constructor(element,pcElement,attrs){super(element,pcElement,attrs)}__elementTemplateRoot=__runInitializers(this,_instanceExtraInitializers);__elementSvg;__elementSvgLine;__strokeColor;__strokeThickness;__strokeStyle;__x1;__y1;__x2;__y2;__scaleMode;__previnit(){if(this.__elementTemplateRoot=this.__element.find(".TcHmi_Controls_Beckhoff_TcHmiLine-template"),0===this.__elementTemplateRoot.length&&(this.__elementTemplateRoot=this.__element.find(".tchmi-line-template")),this.__elementSvg=this.__elementTemplateRoot.find(".TcHmi_Controls_Beckhoff_TcHmiLine-template-svg"),0===this.__elementSvg.length&&(this.__elementSvg=this.__elementTemplateRoot.find(".tchmi-line-template-svg")),this.__elementSvgLine=this.__elementTemplateRoot.find(".TcHmi_Controls_Beckhoff_TcHmiLine-template-svg-line"),0===this.__elementSvgLine.length&&(this.__elementSvgLine=this.__elementTemplateRoot.find(".tchmi-line-template-svg-line")),0===this.__elementTemplateRoot.length||0===this.__elementSvg.length||0===this.__elementSvgLine.length)throw new Error("Invalid Template.html");super.__previnit()}__init(){super.__init()}__attach(){super.__attach(),this.__destroyOnDetach.push(TcHmi.EventProvider.register(this.__id+".onResized",this.__onResized))}__detach(){super.__detach()}destroy(){this.__keepAlive||super.destroy()}__onResized(_event,_control){this.__drawLine()}setStrokeColor(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("StrokeColor"));const resolverInfo=this.__objectResolvers.get("strokeColor");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());const resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("StrokeColor")?.type});this.__objectResolvers.set("strokeColor",{resolver,watchCallback:this.__onResolverForStrokeColorWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForStrokeColorWatchCallback)})}__onResolverForStrokeColorWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("strokeColor"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__strokeColor)||(this.__strokeColor=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"StrokeColor"}),this.__processStrokeColor()):TcHmi.Log.Controls.error(this,TcHmiLine.#tchmiFQN,{Attribute:"StrokeColor"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getStrokeColor(){return this.__strokeColor}__processStrokeColor(){TcHmi.StyleProvider.processStrokeColor(this.__elementSvgLine,this.__strokeColor)}setStrokeStyle(valueNew){let convertedValue=TcHmi.ValueConverter.toString(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("StrokeStyle")),convertedValue!==this.__strokeStyle&&(this.__strokeStyle=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"StrokeStyle"}),this.__processStrokeStyle())}getStrokeStyle(){return this.__strokeStyle}__processStrokeStyle(){TcHmi.StyleProvider.setSimpleElementStyle(this.__elementSvgLine,"stroke-dasharray",this.__strokeStyle)}setStrokeThickness(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("StrokeThickness")),convertedValue!==this.__strokeThickness&&(this.__strokeThickness=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"StrokeThickness"}),this.__processStrokeThickness())}getStrokeThickness(){return this.__strokeThickness}__processStrokeThickness(){"number"!=typeof this.__strokeThickness?TcHmi.StyleProvider.setSimpleElementStyle(this.__elementSvgLine,"stroke-width",null):(TcHmi.StyleProvider.setSimpleElementStyle(this.__elementSvgLine,"stroke-width",this.__strokeThickness.toString()),this.__drawLine())}getStrokeThicknessUnit(){return"px"}__processStrokeThicknessUnit(){}setX1(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("X1")),convertedValue!==this.__x1&&(this.__x1=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"X1"}),this.__processX1())}getX1(){return this.__x1}__processX1(){this.__drawLine()}getX1Unit(){return"px"}__processX1Unit(){}setY1(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("Y1")),convertedValue!==this.__y1&&(this.__y1=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Y1"}),this.__processY1())}getY1(){return this.__y1}__processY1(){this.__drawLine()}getY1Unit(){return"px"}__processY1Unit(){}setX2(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("X2")),convertedValue!==this.__x2&&(this.__x2=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"X2"}),this.__processX2())}getX2(){return this.__x2}__processX2(){this.__drawLine()}getX2Unit(){return"px"}__processX2Unit(){}setY2(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("Y2")),convertedValue!==this.__y2&&(this.__y2=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Y2"}),this.__processY2())}getY2(){return this.__y2}__processY2(){this.__drawLine()}getY2Unit(){return"px"}__processY2Unit(){}__drawLine(){if(void 0===this.__x1||null===this.__x1||void 0===this.__y1||null===this.__y1||void 0===this.__x2||null===this.__x2||void 0===this.__y2||null===this.__y2)return;const points=[this.__x1,this.__y1,this.__x2,this.__y2];if("None"===this.__scaleMode||!this.__scaleMode)return this.__elementSvgLine[0].setAttribute("x1",points[0].toString()),this.__elementSvgLine[0].setAttribute("y1",points[1].toString()),this.__elementSvgLine[0].setAttribute("x2",points[2].toString()),void this.__elementSvgLine[0].setAttribute("y2",points[3].toString());const controlWidth=this.getRenderedWidth();if(!controlWidth)return;const controlHeight=this.getRenderedHeight();if(!controlHeight)return;if(void 0===this.__strokeThickness)return;let activeStrokeThickness=this.__strokeThickness;if(null===activeStrokeThickness){const renderedStrokeWidth=TcHmi.StyleProvider.getComputedElementStyle(this.__elementSvgLine,"stroke-width"),renderedStrokeWidthFloat=parseFloat(renderedStrokeWidth["stroke-width"]);if(isNaN(renderedStrokeWidthFloat))return;activeStrokeThickness=renderedStrokeWidthFloat}const width=controlWidth-activeStrokeThickness,height=controlHeight-activeStrokeThickness;let minX=null,minY=null,maxX=null,maxY=null;for(let i=0,ii=points.length;i<ii;i++)i%2==0?((null===minX||points[i]<minX)&&(minX=points[i]),(null===maxX||points[i]>maxX)&&(maxX=points[i])):((null===minY||points[i]<minY)&&(minY=points[i]),(null===maxY||points[i]>maxY)&&(maxY=points[i]));let polygonWidth=maxX-minX,polygonHeight=maxY-minY;polygonWidth=0!==polygonWidth?polygonWidth:width,polygonHeight=0!==polygonHeight?polygonHeight:height;const scaleX=width/polygonWidth,scaleY=height/polygonHeight;switch(this.__scaleMode){case"ScaleToFill":for(let i=0,ii=points.length;i<ii;i++)points[i]=i%2==0?(points[i]-minX)*scaleX:(points[i]-minY)*scaleY;break;case"ScaleToFit":const scale=scaleX<scaleY?scaleX:scaleY;for(let i=0,ii=points.length;i<ii;i++)points[i]=i%2==0?(points[i]-minX)*scale:(points[i]-minY)*scale;break;case"ScaleToFitWidth":for(let i=0,ii=points.length;i<ii;i++)points[i]=i%2==0?(points[i]-minX)*scaleX:(points[i]-minY)*scaleX;break;case"ScaleToFitHeight":for(let i=0,ii=points.length;i<ii;i++)points[i]=i%2==0?(points[i]-minX)*scaleY:(points[i]-minY)*scaleY}const correctedPoints=points.map(point=>point+this.__strokeThickness/2);this.__elementSvgLine[0].setAttribute("x1",correctedPoints[0].toString()),this.__elementSvgLine[0].setAttribute("y1",correctedPoints[1].toString()),this.__elementSvgLine[0].setAttribute("x2",correctedPoints[2].toString()),this.__elementSvgLine[0].setAttribute("y2",correctedPoints[3].toString())}setScaleMode(valueNew){let convertedValue=TcHmi.ValueConverter.toScaleModeString(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("ScaleMode")),convertedValue!==this.__scaleMode&&(this.__scaleMode=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"ScaleMode"}),this.__processScaleMode())}getScaleMode(){return this.__scaleMode}__processScaleMode(){this.__drawLine()}}})();TcHmi.Controls.registerEx("TcHmiLine","TcHmi.Controls.Beckhoff",TcHmiLine,{injectInGlobalObject:!0});export{TcHmiLine as Control}; |