var __runInitializers=this&&this.__runInitializers||function(thisArg,initializers,value){for(var useValue=arguments.length>2,i=0;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";export var AdsState;!function(AdsState){AdsState[AdsState.Invalid=0]="Invalid",AdsState[AdsState.Idle=1]="Idle",AdsState[AdsState.Reset=2]="Reset",AdsState[AdsState.Init=3]="Init",AdsState[AdsState.Start=4]="Start",AdsState[AdsState.Run=5]="Run",AdsState[AdsState.Stop=6]="Stop",AdsState[AdsState.SaveCfg=7]="SaveCfg",AdsState[AdsState.LoadCfg=8]="LoadCfg",AdsState[AdsState.PowerFailure=9]="PowerFailure",AdsState[AdsState.PowerGood=10]="PowerGood",AdsState[AdsState.Error=11]="Error",AdsState[AdsState.Shutdown=12]="Shutdown",AdsState[AdsState.Suspend=13]="Suspend",AdsState[AdsState.Resume=14]="Resume",AdsState[AdsState.Config=15]="Config",AdsState[AdsState.Reconfig=16]="Reconfig",AdsState[AdsState.Stopping=17]="Stopping",AdsState[AdsState.Incompatible=18]="Incompatible",AdsState[AdsState.Exception=19]="Exception"}(AdsState||(AdsState={}));let TcHmiAdsState=(()=>{var _a,_b;let ___serverResponseHandler_decorators,___onResolverForStateImagesWatchCallback_decorators,_classSuper=TcHmiControl.Control,_instanceExtraInitializers=[];return class TcHmiAdsState extends _classSuper{static{const _metadata="function"==typeof Symbol&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;___serverResponseHandler_decorators=[(_a=TcHmi).CallbackMethod.bind(_a)],___onResolverForStateImagesWatchCallback_decorators=[(_b=TcHmi).CallbackMethod.bind(_b)],__esDecorate(this,null,___serverResponseHandler_decorators,{kind:"method",name:"__serverResponseHandler",static:!1,private:!1,access:{has:obj=>"__serverResponseHandler"in obj,get:obj=>obj.__serverResponseHandler},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForStateImagesWatchCallback_decorators,{kind:"method",name:"__onResolverForStateImagesWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForStateImagesWatchCallback"in obj,get:obj=>obj.__onResolverForStateImagesWatchCallback},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);__serverDomain;__serverInterval;__adsRuntime;__stateImages;__subscriptionId=null;__localizedElements=new Map;__localizationReader=void 0;__previnit(){if(super.__previnit(),this.__elementTemplateRoot=this.__element[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiAdsState-template")[0],!this.__elementTemplateRoot)throw new Error("Invalid Template.html");this.__destroyOnDestroy.push(this.__localization.watch(data=>{if(data.error===TcHmi.Errors.NONE&&data.reader&&(this.__localizationReader=data.reader,!this.__tooltip))for(const[element,info]of this.__localizedElements){let localizedText=data.reader.get(info.key);info.parameters&&(localizedText=tchmi_format_string(localizedText,...info.parameters)),element.setAttribute("title",tchmi_decode_control_characters(localizedText))}}))}__init(){super.__init()}__attach(){super.__attach(),this.__updateSubscription()}__detach(){super.__detach(),null!==this.__subscriptionId&&TcHmi.Server.unsubscribeEx(this.__subscriptionId,null,data=>{data.error!==TcHmi.Errors.NONE&&TcHmi.Log.Controls.error(this,TcHmiAdsState.#tchmiFQN,{Symbol:`${this.__serverDomain}.AdsSyncReadStateReq`},TcHmi.Log.buildMessage(data.details))})}destroy(){this.__keepAlive||super.destroy()}__updateSubscription(){!TCHMI_DESIGNER&&this.__isAttached&&(null!==this.__subscriptionId&&TcHmi.Server.unsubscribeEx(this.__subscriptionId,null,data=>{data.error!==TcHmi.Errors.NONE&&TcHmi.Log.Controls.error(this,TcHmiAdsState.#tchmiFQN,{Symbol:`${this.__serverDomain}.AdsSyncReadStateReq`},TcHmi.Log.buildMessage(data.details))}),this.__subscriptionId=TcHmi.Server.subscribeEx([{commandOptions:["SendErrorMessage"],symbol:this.__serverDomain+".AdsSyncReadStateReq",writeValue:this.__adsRuntime}],this.__serverInterval??TcHmi.Config.get().tcHmiServer.websocketIntervalTime??500,null,this.__serverResponseHandler))}__serverResponseHandler(data){if(this.__removeLocalizedElement(this.__elementTemplateRoot),data.error!==TcHmi.Errors.NONE)return TcHmi.Log.Controls.error(this,TcHmiAdsState.#tchmiFQN,{Symbol:`${this.__serverDomain}.AdsSyncReadStateReq`},TcHmi.Log.buildMessage(data.details)),data.details?.message?this.__addLocalizedElement(this.__element[0],"ErrorPlaceholder",data.details.message):this.__addLocalizedElement(this.__element[0],"SubscriptionFailed",this.__serverDomain),void this.__elementTemplateRoot.setAttribute("data-tchmi-runtime-state","ConnectionError");if(!data.response)return TcHmi.Log.Controls.error(this,TcHmiAdsState.#tchmiFQN,{Symbol:`${this.__serverDomain}.AdsSyncReadStateReq`},TcHmi.Log.buildMessage({code:TcHmi.Errors.E_SERVER_RESPONSE_MISSING,message:TcHmi.Errors[TcHmi.Errors.E_SERVER_RESPONSE_MISSING],reason:"Missing response from server.",domain:this.__type})),this.__addLocalizedElement(this.__element[0],"MissingResponse"),void this.__elementTemplateRoot.setAttribute("data-tchmi-runtime-state","ConnectionError");if(data.response.error)return TcHmi.Log.Controls.error(this,TcHmiAdsState.#tchmiFQN,{Symbol:`${this.__serverDomain}.AdsSyncReadStateReq`},TcHmi.Log.buildMessage(data.response.error)),data.response.error.message?this.__addLocalizedElement(this.__element[0],"ErrorPlaceholder",data.response.error.message):this.__addLocalizedElement(this.__element[0],"SubscriptionFailed",this.__serverDomain),void this.__elementTemplateRoot.setAttribute("data-tchmi-runtime-state","ConnectionError");if(!data.response.commands||0===data.response.commands.length)return TcHmi.Log.Controls.error(this,TcHmiAdsState.#tchmiFQN,{Symbol:`${this.__serverDomain}.AdsSyncReadStateReq`},TcHmi.Log.buildMessage({code:TcHmi.Errors.E_SERVER_COMMANDS_MISSING,message:TcHmi.Errors[TcHmi.Errors.E_SERVER_COMMANDS_MISSING],reason:"Missing commands in response from server with id: "+data.response.id,domain:this.__type})),this.__addLocalizedElement(this.__element[0],"MissingCommands",data.response.id),void this.__elementTemplateRoot.setAttribute("data-tchmi-runtime-state","ConnectionError");for(const command of data.response.commands){if(command.error){"HMI_ADS_E_INVALID_RUNTIME"===command.error.message?this.__addLocalizedElement(this.__element[0],"InvalidRuntime",this.__adsRuntime):"HMI_ADS_E_STATE"===command.error.message?this.__addLocalizedElement(this.__element[0],"InvalidRouter"):"HMI_ADS_E_INVALID_SYMBOL"===command.error.message?this.__addLocalizedElement(this.__element[0],"InvalidSymbol"):"HMI_ADS_E_INVALID_PARAMETER"===command.error.message?this.__addLocalizedElement(this.__element[0],"InvalidParameter"):"HMI_ADS_E_TCVERSION"===command.error.message?this.__addLocalizedElement(this.__element[0],"InvalidTwinCATVersion"):"HMI_ADS_E_CONFIGDIR"===command.error.message?this.__addLocalizedElement(this.__element[0],"ConfigDirectory"):"HMI_ADS_E_PARSE_BASETYPES"===command.error.message?this.__addLocalizedElement(this.__element[0],"ParseBaseTypes"):"HMI_ADS_E_PARSE_DATA"===command.error.message?this.__addLocalizedElement(this.__element[0],"ParseAdsDate"):"HMI_ADS_E_INVALID_DATA"===command.error.message?this.__addLocalizedElement(this.__element[0],"InvalidData"):"HMI_ADS_E_MISSING_PARAMETER"===command.error.message?this.__addLocalizedElement(this.__element[0],"MissingParameter"):"HMI_ADS_E_DISABLED"===command.error.message?this.__addLocalizedElement(this.__element[0],"RuntimeDisabled",this.__adsRuntime):command.error.message?this.__addLocalizedElement(this.__element[0],"ErrorPlaceholder",command.error.message):this.__addLocalizedElement(this.__element[0],"SubscriptionFailed",this.__serverDomain),this.__elementTemplateRoot.setAttribute("data-tchmi-runtime-state","ConnectionError");let imgUrl="";this.__stateImages?.Error?imgUrl="url("+this.__stateImages.Error+")":this.__stateImages?.Fallback&&(imgUrl="url("+this.__stateImages.Fallback+")"),TcHmi.StyleProvider.setSimpleElementStyle(this.__elementTemplateRoot,"background-image",imgUrl);continue}let adsState=command?.readValue?.AdsState??AdsState.Error,state=AdsState[adsState]??"Unknown";this.__addLocalizedElement(this.__element[0],"State",this.__serverDomain,this.__adsRuntime,state),this.__elementTemplateRoot.setAttribute("data-tchmi-runtime-state",state);let imgUrl="";"Unknown"!==state&&this.__stateImages?.[state]?imgUrl="url("+this.__stateImages[state]+")":this.__stateImages?.Fallback&&(imgUrl="url("+this.__stateImages.Fallback+")"),TcHmi.StyleProvider.setSimpleElementStyle(this.__elementTemplateRoot,"background-image",imgUrl)}}__addLocalizedElement(element,key,...parameters){let info={key};if(0!==parameters.length&&(info.parameters=parameters),this.__localizedElements.set(element,info),!this.__tooltip&&this.__localizationReader){let localizedText=this.__localizationReader.get(key);info.parameters&&(localizedText=tchmi_format_string(localizedText,...info.parameters)),element.setAttribute("title",tchmi_decode_control_characters(localizedText))}}__removeLocalizedElement(element){this.__localizedElements.delete(element)}setAdsRuntime(valueNew){let convertedValue=TcHmi.ValueConverter.toString(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("AdsRuntime")),convertedValue!==this.__adsRuntime&&(this.__adsRuntime=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"AdsRuntime"}),this.__processAdsRuntime())}getAdsRuntime(){return this.__adsRuntime}__processAdsRuntime(){this.__isAttached&&this.__updateSubscription()}setServerInterval(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("ServerInterval")),convertedValue!==this.__serverInterval&&(this.__serverInterval=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"ServerInterval"}),this.__processServerInterval())}getServerInterval(){return this.__serverInterval}__processServerInterval(){this.__isAttached&&this.__updateSubscription()}setServerDomain(valueNew){let convertedValue=TcHmi.ValueConverter.toString(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("ServerDomain")),convertedValue!==this.__serverDomain&&(this.__serverDomain=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"ServerDomain"}),this.__processServerDomain())}getServerDomain(){return this.__serverDomain}__processServerDomain(){this.__isAttached&&this.__updateSubscription()}setStateImages(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("StateImages"));let resolverInfo=this.__objectResolvers.get("stateImages");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("StateImages")?.type});this.__objectResolvers.set("stateImages",{resolver,watchCallback:this.__onResolverForStateImagesWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForStateImagesWatchCallback)})}__onResolverForStateImagesWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("stateImages"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__stateImages)||(this.__stateImages=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"StateImages"}),this.__processStateImages()):TcHmi.Log.Controls.error(this,TcHmiAdsState.#tchmiFQN,{Attribute:"StateImages"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getStateImages(){return this.__stateImages}__processStateImages(){this.__isAttached&&this.__updateSubscription()}__processTooltip(){if(super.__processTooltip(),!this.__tooltip&&this.__localizationReader)for(const[element,info]of this.__localizedElements){let localizedText=this.__localizationReader.get(info.key);info.parameters&&(localizedText=tchmi_format_string(localizedText,...info.parameters)),element.setAttribute("title",tchmi_decode_control_characters(localizedText))}}static AdsState=AdsState}})();TcHmi.Controls.registerEx("TcHmiAdsState","TcHmi.Controls.Beckhoff",TcHmiAdsState,{injectInGlobalObject:!0});export{TcHmiAdsState as Control};