1 line
38 KiB
JavaScript
1 line
38 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 TcHmiUserGuidance=(()=>{let ___onResized_decorators,___openNextPage_decorators,___openPreviousPage_decorators,___onButtonCancel_decorators,_classSuper=TcHmiControl.Control,_instanceExtraInitializers=[];return class TcHmiUserGuidance extends _classSuper{static{const _metadata="function"==typeof Symbol&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;___onResized_decorators=[TcHmi.EventHandler()],___openNextPage_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___openPreviousPage_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onButtonCancel_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],__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,___openNextPage_decorators,{kind:"method",name:"__openNextPage",static:!1,private:!1,access:{has:obj=>"__openNextPage"in obj,get:obj=>obj.__openNextPage},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___openPreviousPage_decorators,{kind:"method",name:"__openPreviousPage",static:!1,private:!1,access:{has:obj=>"__openPreviousPage"in obj,get:obj=>obj.__openPreviousPage},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onButtonCancel_decorators,{kind:"method",name:"__onButtonCancel",static:!1,private:!1,access:{has:obj=>"__onButtonCancel"in obj,get:obj=>obj.__onButtonCancel},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)}__destroyParamChange=(__runInitializers(this,_instanceExtraInitializers),new Map);__elementTemplateRoot;__elementContentTabs;__elementMessage;__buttonNext;__buttonBack;__buttonCancel;__iconPath=TcHmi.Environment.getControlBasePath("TcHmi.Controls.Beckhoff.TcHmiUserGuidance")+"/StatusCircles/";__pages;__pagesMap=new WeakMap;__oldPages;__oldPagesMap=new WeakMap;__newPagesData=!1;__fileHostAttributesCache=new Map;__activePageName;__progressBarAlignment;__textHorizontalAlignment;__textVerticalAlignment;__textFontSize;__textFontSizeUnit;__textFontFamily;__textFontStyle;__textFontWeight;__textPadding;__guidanceFinished=!1;__maximumNumberOfPages=5;__elementSVG;__localizedElements=new Map;__localizationReader=void 0;__previnit(){if(this.__elementTemplateRoot=this.__element.find(".TcHmi_Controls_Beckhoff_TcHmiUserGuidance-template")[0],this.__elementContentTabs=this.__elementTemplateRoot.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiUserGuidance-content-tabs")[0],this.__elementSVG=this.__elementTemplateRoot.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiUserGuidance-template-svg")[0],this.__elementMessage=this.__elementTemplateRoot.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiUserGuidance-message")[0],!(this.__elementTemplateRoot&&this.__elementContentTabs&&this.__elementSVG&&this.__elementMessage))throw new Error("Invalid Template.html");let buttonCancel=TcHmi.Controls.get(this.__id+"_ButtonCancel"),buttonPrevious=TcHmi.Controls.get(this.__id+"_ButtonPrevious"),buttonNext=TcHmi.Controls.get(this.__id+"_ButtonNext");if(!buttonCancel||!buttonPrevious||!buttonNext)throw new Error("Invalid Button");this.__buttonCancel=buttonCancel,this.__buttonBack=buttonPrevious,this.__buttonNext=buttonNext;let localizedElements=this.__element[0].querySelectorAll("[data-tchmi-localized-content-key]");for(let i=0,ii=localizedElements.length;i<ii;i++){let element=localizedElements[i],localizeKey=element.dataset.tchmiLocalizedContentKey;localizeKey&&this.__localizedElements.set(element,{key:localizeKey})}this.__destroyOnDestroy.push(this.__localization.watch(data=>{if(data.error===TcHmi.Errors.NONE&&data.reader){this.__localizationReader=data.reader;for(const[element,info]of this.__localizedElements){let localizedText=data.reader.get(info.key);info.parameters&&(localizedText=tchmi_format_string(localizedText,...info.parameters)),element.textContent=tchmi_decode_control_characters(localizedText)}}})),super.__previnit()}__init(){super.__init(),this.__buttonBack.setIsEnabled(!1),this.__buttonBack.getElement()[0].classList.add("user-guidance-button"),this.__buttonNext.getElement()[0].classList.add("user-guidance-button"),this.__buttonCancel.getElement()[0].classList.add("user-guidance-button")}__attach(){super.__attach(),this.__destroyOnDetach.push(TcHmi.EventProvider.register(this.__buttonNext.getId()+".onPressed",this.__openNextPage),TcHmi.EventProvider.register(this.__buttonBack.getId()+".onPressed",this.__openPreviousPage),TcHmi.EventProvider.register(this.__buttonCancel.getId()+".onPressed",this.__onButtonCancel),TcHmi.EventProvider.register(this.getId()+".onResized",this.__onResized)),this.__processPages()}__detach(){super.__detach();for(let destroy of this.__destroyParamChange.values())destroy();this.__destroyParamChange.clear()}destroy(){this.__keepAlive||super.destroy()}__doAsyncWork(timestamp){super.__doAsyncWork(timestamp),!this.__isDestroyed&&this.__isAttached&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdatePageLines"]&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdatePageLines"]=!1,this.__updatePageLines()),this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdateMaximumNumberOfPages"]&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdateMaximumNumberOfPages"]=!1,this.__updateMaximumNumberOfPages()))}__onParamChange(page){return(event,data)=>{if(!this.__pages)return;const pageMetadata=this.__pagesMap.get(page);if(pageMetadata&&pageMetadata.allowProceedToNextPage!==data.confirmNext){if(pageMetadata.allowProceedToNextPage=data.confirmNext,page.name!==this.__activePageName||this.__guidanceFinished||this.__buttonNext.setIsEnabled(pageMetadata.allowProceedToNextPage),pageMetadata.linkElement&&page.name===this.__activePageName){let pageIcon=pageMetadata.linkElement.getElementsByClassName("page-icon")[0];if(pageIcon)switch(pageMetadata.icon){case"Active":pageMetadata.icon="Approved",pageIcon.classList.remove("active"),pageIcon.classList.add("approved");break;case"Approved":pageMetadata.icon="Active",pageIcon.classList.remove("approved"),pageIcon.classList.add("active")}}this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdatePageLines"]=!0,this.__requestAsyncWork()}}}__onResized(){this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdateMaximumNumberOfPages"]=!0,this.__requestAsyncWork()}__updateMaximumNumberOfPages(){const contentTabDimensions=this.__elementContentTabs.getBoundingClientRect();if("Left"===this.__progressBarAlignment||"Right"===this.__progressBarAlignment){let newMaximumNumberOfPages=Math.floor(contentTabDimensions.height/50);newMaximumNumberOfPages!==this.__maximumNumberOfPages?(this.__maximumNumberOfPages=newMaximumNumberOfPages,this.__processPages()):this.__updatePageLines()}else{let newMaximumNumberOfPages=Math.floor(contentTabDimensions.width/120);newMaximumNumberOfPages!==this.__maximumNumberOfPages?(this.__maximumNumberOfPages=newMaximumNumberOfPages,this.__processPages()):this.__updatePageLines()}}__updateButtons(activePageIndex){if(!this.__pages||this.__guidanceFinished)return;this.__buttonCancel.setIsEnabled(!0);let foundPreceeding=!1;for(let i=activePageIndex-1;i>=0;i--)if(!this.__pages[i].hidden){foundPreceeding=!0;break}this.__buttonBack.setIsEnabled(foundPreceeding);let foundSucceeding=!1;for(let i=activePageIndex+1;i<this.__pages.length;i++)if(!this.__pages[i].hidden){foundSucceeding=!0;break}foundSucceeding?TcHmi.Binding.createEx2("%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserGuidance::Next%/l%","Text",this.__buttonNext):TcHmi.Binding.createEx2("%l%Control::TcHmi.Controls.Beckhoff.TcHmiUserGuidance::Finish%/l%","Text",this.__buttonNext);const pageMetadata=this.__pagesMap.get(this.__pages[activePageIndex]);pageMetadata&&this.__buttonNext.setIsEnabled(pageMetadata.allowProceedToNextPage)}__openNextPage(event){TcHmi.EventProvider.raise(this.__id+".onNextButtonPress"),this.__processPages(1)}__openPreviousPage(event){TcHmi.EventProvider.raise(this.__id+".onBackButtonPress"),this.__processPages(-1)}__onButtonCancel(event){TcHmi.EventProvider.raise(this.__id+".onCancelButtonPress"),this.__reset()}__updatePageLines(){if(!this.__pages)return;let iconsBCR,nameBCR,lineCollection=this.__elementSVG.getElementsByTagName("line"),lineArray=Array.from(lineCollection);this.__elementSVG.textContent="";let activePageIndex=this.__pages.findIndex(page=>page.name===this.__activePageName);for(let i=0;i<this.__pages.length;i++){const page=this.__pages[i],pageMetadata=this.__pagesMap.get(this.__pages[i]);if(!(pageMetadata&&pageMetadata.iconElement&&pageMetadata.linkElement&&pageMetadata.displayed))continue;let oldIconsBCR=iconsBCR,oldNameBCR=nameBCR;if(iconsBCR=pageMetadata.iconElement.getBoundingClientRect(),nameBCR=pageMetadata.nameElement.getBoundingClientRect(),!oldIconsBCR||!oldNameBCR)continue;let line=lineArray.shift();line||(line=document.createElementNS("http://www.w3.org/2000/svg","line")),this.__elementSVG.append(line),line.style.strokeWidth="2px";let isDone=i<=activePageIndex&&(pageMetadata.allowProceedToNextPage||!page.targetFile||page.targetFile.path.toLowerCase().endsWith(".content"));line.classList.toggle("done",isDone);let isDirectNeighbor=!1;for(let j=i-1;j>=0;j--){if(this.__pages[j].hidden)continue;const tmpIntPage=this.__pagesMap.get(this.__pages[j]);isDirectNeighbor=tmpIntPage?.displayed??!1;break}isDirectNeighbor?(line.style.strokeDasharray="",line.style.strokeLinecap="butt"):(line.style.strokeDasharray="5,5",line.style.strokeLinecap="round"),iconsBCR&&nameBCR&&this.drawSVG(line,iconsBCR,oldIconsBCR,oldNameBCR,nameBCR)}}__buildFileHost(page){const pageMetadata=this.__pagesMap.get(page);if(pageMetadata?.fileHost){pageMetadata.fileHost.destroy(),pageMetadata.fileHost=void 0;let destroyer=this.__destroyParamChange.get(page.name);destroyer?.(),this.__destroyParamChange.delete(page.name)}if(!page.targetFile)return;let path=page.targetFile.path,attributes=page.targetFile.attributes;if(path)if(pageMetadata&&path.toLowerCase().endsWith(".content")){let attributesExtended={"data-tchmi-target-content":path,"data-tchmi-left":0,"data-tchmi-top":0,"data-tchmi-width":100,"data-tchmi-height":100,"data-tchmi-width-unit":"%","data-tchmi-height-unit":"%","data-tchmi-scrolling":page.scrolling??"Auto"};if(pageMetadata.allowProceedToNextPage=!0,page.name!==this.__activePageName||this.__guidanceFinished||this.__buttonNext.setIsEnabled(!0),pageMetadata.fileHost=TcHmi.ControlFactory.createEx("TcHmi.Controls.System.TcHmiRegion",this.getId()+".Region_"+page.name,{...attributesExtended},this),!pageMetadata.fileHost)return void TcHmi.Log.Controls.error(this,TcHmiUserGuidance.#tchmiFQN,"Creating TcHmi.Controls.System.TcHmiRegion failed. Used attribute config: ",{...attributesExtended})}else if(pageMetadata&&path.toLowerCase().endsWith(".usercontrol")){let attributesExtended={"data-tchmi-target-user-control":path,"data-tchmi-left":0,"data-tchmi-top":0,"data-tchmi-width":100,"data-tchmi-height":100,"data-tchmi-width-unit":"%","data-tchmi-height-unit":"%"};if(pageMetadata.allowProceedToNextPage=!0,pageMetadata.fileHost=TcHmi.ControlFactory.createEx("TcHmi.Controls.System.TcHmiUserControlHost",this.getId()+".UserControlHost_"+page.name,{...attributes,...attributesExtended},this),!pageMetadata.fileHost)return void TcHmi.Log.Controls.error(this,TcHmiUserGuidance.#tchmiFQN,"Creating TcHmi.Controls.System.TcHmiUserControlHost failed. Used attribute config: ",{...attributes,...attributesExtended});let name,data=pageMetadata.fileHost;for(let definition of data.getParams().values()){if(!definition.description)continue;const paramSchema=TcHmi.Type.getSchema(definition.description.type);if(paramSchema&&"TcHmi.Controls.Beckhoff.TcHmiUserGuidance.UserControlInterop"===paramSchema.frameworkMetaType){name=definition.description.propertyName,pageMetadata.allowProceedToNextPage=!1,pageMetadata.fileHost&&this.__destroyParamChange.set(page.name,TcHmi.EventProvider.register("%ctrl%"+pageMetadata.fileHost.getId()+"::"+name+"%/ctrl%",this.__onParamChange(page)));break}}}}__attachTargetFileHost(page){const pageMetadata=this.__pagesMap.get(page);pageMetadata?.fileHost&&pageMetadata?.contentElement&&(pageMetadata.contentElement.textContent="",pageMetadata.contentElement.append(pageMetadata.fileHost.getElement()[0]))}__detachTargetFileHost(page){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&pageMetadata.fileHost?.getElement()[0].remove()}__buildLink(page){const pageMetadata=this.__pagesMap.get(page);if(pageMetadata){switch("Right"!==this.__textHorizontalAlignment||"Top"===this.__progressBarAlignment||"Bottom"===this.__progressBarAlignment?(pageMetadata.linkElement=document.createElement("tchmi-tab-link"),pageMetadata.linkElement.textContent="",pageMetadata.linkElement.classList.add("tchmi-user-guidance-tab-link"),pageMetadata.iconElement&&pageMetadata.linkElement.append(pageMetadata.iconElement),pageMetadata.nameElement=document.createElement("div"),pageMetadata.nameElement.classList.add("tab-name"),pageMetadata.nameElement.textContent=page.displayName,pageMetadata.linkElement.appendChild(pageMetadata.nameElement)):(pageMetadata.linkElement=document.createElement("tchmi-tab-link"),pageMetadata.linkElement.textContent="",pageMetadata.linkElement.classList.add("tchmi-user-guidance-tab-link"),pageMetadata.nameElement=document.createElement("div"),pageMetadata.nameElement.textContent=page.displayName,pageMetadata.nameElement.classList.add("page-name"),pageMetadata.linkElement.appendChild(pageMetadata.nameElement),pageMetadata.iconElement&&pageMetadata.linkElement.appendChild(pageMetadata.iconElement)),"Right"===this.__progressBarAlignment||"Left"===this.__progressBarAlignment?"Center"===this.__textHorizontalAlignment?pageMetadata.linkElement.style.flexDirection="column":pageMetadata.linkElement.style.flexDirection="row":pageMetadata.linkElement.style.maxWidth=100/this.__maximumNumberOfPages+"%",page.horizontalAlignment){case"Left":default:pageMetadata.linkElement.style.justifyContent="flex-start";break;case"Center":pageMetadata.linkElement.style.justifyContent="center";break;case"Right":pageMetadata.linkElement.style.justifyContent="flex-end"}switch(page.verticalAlignment){case"Top":pageMetadata.linkElement.style.alignItems="flex-start";break;case"Center":pageMetadata.linkElement.style.alignItems="center";break;case"Bottom":pageMetadata.linkElement.style.alignItems="flex-end";break;default:pageMetadata.linkElement.style.alignItems=""}}}__buildIcon(page){const pageMetadata=this.__pagesMap.get(page);if(pageMetadata&&(pageMetadata.iconElement=document.createElement("div"),pageMetadata.iconElement.classList.add("page-icon"),pageMetadata.icon&&pageMetadata.iconElement.classList.add(pageMetadata.icon.toLowerCase())),!this.__pages)return;let unused=0;for(let i=0;i<this.__pages.length;i++){if(this.__pages[i].name!==page.name){this.__pages[i].hidden&&unused++;continue}const pageNumber=i+1-unused,tmpIntPage=this.__pagesMap.get(this.__pages[i]);tmpIntPage&&tmpIntPage.iconElement&&(tmpIntPage.iconElement.textContent=pageNumber.toString());break}}__removePages(pages,destroy=!1){if(pages){for(const page of pages){const pageMetadata=this.__pagesMap.get(page);if(pageMetadata&&pageMetadata.fileHost&&destroy){this.__detachTargetFileHost(page),pageMetadata.fileHost.destroy(),pageMetadata.fileHost=void 0;let destroyer=this.__destroyParamChange.get(page.name);destroyer?.(),this.__destroyParamChange.delete(page.name)}this.__elementContentTabs.getTab(page.name)&&this.__elementContentTabs.removeContentTab(page.name)}this.__elementSVG.textContent=""}}__reset(){if(this.__pages){this.__removePages(this.__pages,!0);for(let page of this.__pages)if(!page.hidden){this.__activePageName=page.name;break}this.__processPages()}}setPages(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("Pages")),this.__newPagesData=!0;let resolverInfo=this.__objectResolvers.get("page");if(resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy()),this.__fileHostAttributesCache=new Map,null!==convertedValue)for(let value of convertedValue)value.targetFile&&value.targetFile.attributes&&(this.__fileHostAttributesCache.set(value.name,value.targetFile.attributes),"string"!=typeof value.targetFile.attributes&&(value.targetFile.attributes=void 0));let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("Pages")?.type});this.__objectResolvers.set("page",{resolver,watchCallback:this.__onResolverForPagesWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForPagesWatchCallback)})}__onResolverForPagesWatchCallback=data=>{if(this.__isAttached||this.__suspendObjectResolver("Pages"),data.error===TcHmi.Errors.NONE){if(!tchmi_equal(data.value,this.__pages)){if(this.__newPagesData&&(this.__newPagesData=!1,this.__removePages(this.__pages,!0)),this.__oldPages=this.__pages,this.__oldPagesMap=this.__pagesMap,this.__pages=data.value,this.__pages)for(const page of this.__pages)this.__pagesMap.set(page,{fileHost:void 0,displayed:!1,linkElement:void 0,contentElement:void 0,icon:void 0,iconElement:void 0,allowProceedToNextPage:!0,nameElement:document.createElement("div")});this.__fileHostAttributesCache.forEach((fileHostAttributes,name)=>{if(this.__pages)for(const page of this.__pages)page.name===name&&"object"==typeof page.targetFile&&"string"!=typeof fileHostAttributes&&(page.targetFile.attributes=fileHostAttributes)}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Pages"}),this.__processPages()}}else TcHmi.Log.Controls.error(this,TcHmiUserGuidance.#tchmiFQN,{Attribute:"Pages"},"Resolving symbols from object failed with error: "+TcHmi.Log.buildMessage(data.details))};getPages(){return this.__pages}__processPages(direction=0){if(!this.__isAttached||!this.__pages)return;let activePageIndex=0;for(this.__oldPages?(activePageIndex=this.__oldPages?.findIndex(page=>page.name===this.__elementContentTabs.activeTab),this.__removePages(this.__oldPages)):this.__activePageName&&(activePageIndex=this.__pages.findIndex(page=>page.name===this.__activePageName)),this.__removePages(this.__pages),activePageIndex+=direction,-1===activePageIndex&&(activePageIndex=0),0===direction&&(direction=1);activePageIndex<this.__pages.length&&this.__pages[activePageIndex].hidden&&activePageIndex>=0;)activePageIndex+=direction;activePageIndex>=this.__pages.length&&(TcHmi.EventProvider.raise(this.__id+".onFinishButtonPress"),this.__setGuidanceFinished(!0),activePageIndex=0),this.__activePageName=this.__pages[activePageIndex].name,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"ActivePageName"}),this.__selectDisplayedPages(activePageIndex,this.__pages);for(let i=0;i<this.__pages.length;i++){let page=this.__pages[i];const pageMetadata=this.__pagesMap.get(page);if(!pageMetadata)continue;if(!pageMetadata.displayed)continue;let internalOldPage,oldPage=this.__oldPages?.find(current=>current.targetFile&&page.targetFile&¤t.targetFile.path===page.targetFile.path);if(oldPage&&(internalOldPage=this.__oldPagesMap.get(oldPage)),oldPage&&!pageMetadata.fileHost){!!tchmi_equal(page.targetFile.attributes,oldPage.targetFile.attributes)&&internalOldPage?(pageMetadata.fileHost=internalOldPage.fileHost,pageMetadata.contentElement=internalOldPage.contentElement,pageMetadata.linkElement=internalOldPage.linkElement,pageMetadata.iconElement=internalOldPage.iconElement,internalOldPage.fileHost=void 0):internalOldPage&&(internalOldPage.fileHost?.destroy(),internalOldPage.fileHost=void 0)}pageMetadata.contentElement||(pageMetadata.contentElement=document.createElement("tchmi-tab-content")),pageMetadata.fileHost||this.__buildFileHost(page),this.__attachTargetFileHost(page),i<activePageIndex?pageMetadata.icon="Done":page.name===this.__activePageName?pageMetadata.allowProceedToNextPage||!page.targetFile||page.targetFile.path.toLowerCase().endsWith(".content")?pageMetadata.icon="Approved":pageMetadata.icon="Active":pageMetadata.icon=void 0,this.__buildIcon(page),this.__buildLink(page),pageMetadata.contentElement&&pageMetadata.linkElement&&this.__elementContentTabs.addContentTab(page.name,pageMetadata.linkElement,pageMetadata.contentElement),i===activePageIndex&&this.__elementContentTabs.openTab(page.name)}if(this.__updateButtons(activePageIndex),this.__oldPages){for(const oldPage of this.__oldPages){const internalOldPage=this.__oldPagesMap.get(oldPage);internalOldPage&&(internalOldPage.fileHost?.destroy(),internalOldPage.fileHost=void 0)}this.__oldPages=null}this.__isAttached&&(this.__processTextVerticalAlignment(),this.__processTextHorizontalAlignment(),this.__processTextFontSize(),this.__processTextFontFamily(),this.__processTextPadding(),this.__processTextFontWeight(),this.__processTextFontStyle()),this.__isAttached&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdatePageLines"]=!0,this.__requestAsyncWork())}__selectDisplayedPages(activePageIndex,pages){for(const page of pages){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.displayed=!1)}let toDisplay=new Set([activePageIndex]),finish=()=>{if(toDisplay.size<this.__maximumNumberOfPages)for(let j=0;j<pages.length&&toDisplay.size<this.__maximumNumberOfPages;j++)toDisplay.has(j)||pages[j].hidden||toDisplay.add(j);toDisplay.forEach(index=>{const pageMetadata=this.__pagesMap.get(pages[index]);pageMetadata&&(pageMetadata.displayed=!0)})};if(this.__maximumNumberOfPages<2)return void finish();for(let i=pages.length-1;i>=0&&toDisplay.size<2;i--)pages[i].hidden||toDisplay.add(i);if(this.__maximumNumberOfPages<3)return void finish();for(let i=0;i<pages.length&&toDisplay.size<3;i++)pages[i].hidden||toDisplay.add(i);if(this.__maximumNumberOfPages<4)return void finish();let remainingSlots=this.__maximumNumberOfPages-toDisplay.size,succeedingIndex=activePageIndex+1,precedingIndex=activePageIndex-1;for(;remainingSlots>0;){let hitSucceeding=!1;for(;succeedingIndex<pages.length-1&&!hitSucceeding&&remainingSlots>0;)pages[succeedingIndex].hidden||toDisplay.has(succeedingIndex)||(toDisplay.add(succeedingIndex),remainingSlots--,hitSucceeding=!0),succeedingIndex++;let hitPreceeding=!1;for(;precedingIndex>0&&!hitPreceeding&&remainingSlots>0;)pages[precedingIndex].hidden||toDisplay.has(precedingIndex)||(toDisplay.add(precedingIndex),remainingSlots--,hitPreceeding=!0),precedingIndex--;if(succeedingIndex>=pages.length-1&&precedingIndex<=0)break}finish()}__getProportions(oldIconBCR,IconBCR,oldNameBCR,nameBCR,currentBCR){let controlRect=this.__element[0].getBoundingClientRect(),renderedWidth=this.getRenderedWidth()??0,renderedHeight=this.getRenderedHeight()??0,devicePixelRadioWidth=renderedWidth/controlRect.width,devicePixelRadioHeight=renderedHeight/controlRect.height;return{oldIconBCRWidth:oldIconBCR.width*devicePixelRadioWidth,oldIconBCRHeight:oldIconBCR.height*devicePixelRadioHeight,oldIconBCRLeft:oldIconBCR.left*devicePixelRadioWidth,oldIconBCRRight:oldIconBCR.right*devicePixelRadioWidth,oldIconBCRTop:oldIconBCR.top*devicePixelRadioHeight,oldIconBCRBottom:oldIconBCR.bottom*devicePixelRadioHeight,IconBCRWidth:IconBCR.width*devicePixelRadioWidth,IconBCRHeight:IconBCR.height*devicePixelRadioHeight,IconBCRLeft:IconBCR.left*devicePixelRadioWidth,IconBCRRight:IconBCR.right*devicePixelRadioWidth,IconBCRTop:IconBCR.top*devicePixelRadioHeight,IconBCRBottom:IconBCR.bottom*devicePixelRadioHeight,oldNameBCRWidth:oldNameBCR.width*devicePixelRadioWidth,oldNameBCRHeight:oldNameBCR.height*devicePixelRadioHeight,oldNameBCRLeft:oldNameBCR.left*devicePixelRadioWidth,oldNameBCRRight:oldNameBCR.right*devicePixelRadioWidth,oldNameBCRTop:oldNameBCR.top*devicePixelRadioHeight,oldNameBCRBottom:oldNameBCR.bottom*devicePixelRadioHeight,nameBCRWidth:nameBCR.width*devicePixelRadioWidth,nameBCRHeight:nameBCR.height*devicePixelRadioHeight,nameBCRLeft:nameBCR.left*devicePixelRadioWidth,nameBCRRight:nameBCR.right*devicePixelRadioWidth,nameBCRTop:nameBCR.top*devicePixelRadioHeight,nameBCRBottom:nameBCR.bottom*devicePixelRadioHeight,currentBCRWidth:currentBCR.width*devicePixelRadioWidth,currentBCRHeight:currentBCR.height*devicePixelRadioHeight,currentBCRLeft:currentBCR.left*devicePixelRadioWidth,currentBCRRight:currentBCR.right*devicePixelRadioWidth,currentBCRTop:currentBCR.top*devicePixelRadioHeight,currentBCRBottom:currentBCR.bottom*devicePixelRadioHeight}}drawSVG(target,oldIconBCR,IconBCR,oldNameBCR,nameBCR){const proportions=this.__getProportions(oldIconBCR,IconBCR,oldNameBCR,nameBCR,this.__element[0].getBoundingClientRect());let x1,x2,y1,y2;void 0===oldIconBCR||void 0===IconBCR||void 0===oldNameBCR||void 0===nameBCR?(x1="0",x2="0",y1="0",y2="0"):"Left"===this.__progressBarAlignment||"Right"===this.__progressBarAlignment?"Center"===this.__textHorizontalAlignment?(x1=proportions.IconBCRLeft+proportions.IconBCRWidth/2-proportions.currentBCRLeft+"px",y1=proportions.IconBCRBottom+proportions.oldNameBCRHeight-proportions.currentBCRTop+"px",x2=proportions.oldIconBCRLeft+proportions.oldIconBCRWidth/2-proportions.currentBCRLeft+"px",y2=proportions.oldIconBCRTop-proportions.currentBCRTop+"px"):(x1=proportions.IconBCRLeft+proportions.IconBCRWidth/2-proportions.currentBCRLeft+"px",y1=proportions.IconBCRBottom-proportions.currentBCRTop+"px",x2=proportions.oldIconBCRLeft+proportions.oldIconBCRWidth/2-proportions.currentBCRLeft+"px",y2=proportions.oldIconBCRTop-proportions.currentBCRTop+"px"):(x1=proportions.oldIconBCRLeft-proportions.oldIconBCRWidth/2-proportions.currentBCRLeft+"px",y1=proportions.oldIconBCRBottom-proportions.oldIconBCRHeight/2-proportions.currentBCRTop+"px",x2=proportions.IconBCRRight+proportions.IconBCRWidth/2-proportions.currentBCRLeft+oldNameBCR.width+"px",y2=proportions.IconBCRBottom-proportions.IconBCRHeight/2-proportions.currentBCRTop+"px"),target.setAttribute("x1",x1),target.setAttribute("y1",y1),target.setAttribute("x2",x2),target.setAttribute("y2",y2)}setProgressBarAlignment(valueNew){let convertedValue=TcHmi.ValueConverter.toString(valueNew);if(null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("ProgressBarAlignment")),convertedValue!==this.__progressBarAlignment){switch(convertedValue){case"Left":case"Right":case"Bottom":this.__progressBarAlignment=convertedValue;break;default:this.__progressBarAlignment="Top"}TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"ProgressBarAlignment"}),this.__processProgressBarAlignment(),this.__isAttached&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdateMaximumNumberOfPages"]=!0,this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdatePageLines"]=!0,this.__requestAsyncWork())}}getProgressBarAlignment(){return this.__progressBarAlignment}__processProgressBarAlignment(){this.__progressBarAlignment&&this.__elementContentTabs.setTabAlignment(this.__progressBarAlignment)}getActivePageName(){return this.__activePageName}__processBorderRadius(){super.__processBorderRadius(),TcHmi.StyleProvider.processBorderRadius(this.__elementContentTabs,this.__borderRadius)}setTextHorizontalAlignment(valueNew){let convertedValue=TcHmi.ValueConverter.toHorizontalAlignment(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextHorizontalAlignment")),convertedValue!==this.__textHorizontalAlignment&&(this.__textHorizontalAlignment=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextHorizontalAlignment"}),this.__removePages(this.__pages),this.__processPages(),this.__processTextHorizontalAlignment())}getTextHorizontalAlignment(){return this.__textHorizontalAlignment}__processTextHorizontalAlignment(){for(let page of this.__pages??[]){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.linkElement&&TcHmi.StyleProvider.processContentHorizontalAlignment(pageMetadata.linkElement,this.__textHorizontalAlignment))}let selectedOverflowElement=this.__elementContentTabs.querySelector("tchmi-tab-links-overflow tchmi-tab-link");selectedOverflowElement&&TcHmi.StyleProvider.processContentHorizontalAlignment(selectedOverflowElement,this.__textHorizontalAlignment),this.__isAttached&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdatePageLines"]=!0,this.__requestAsyncWork())}setTextVerticalAlignment(valueNew){let convertedValue=TcHmi.ValueConverter.toVerticalAlignment(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextVerticalAlignment")),convertedValue!==this.__textVerticalAlignment&&(this.__textVerticalAlignment=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextVerticalAlignment"}),this.__processTextVerticalAlignment())}getTextVerticalAlignment(){return this.__textVerticalAlignment}__processTextVerticalAlignment(){for(let page of this.__pages??[]){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.linkElement&&TcHmi.StyleProvider.processContentVerticalAlignment(pageMetadata.linkElement,this.__textVerticalAlignment))}let selectedOverflowElement=this.__elementContentTabs.querySelector("tchmi-tab-links-overflow tchmi-tab-link");selectedOverflowElement&&TcHmi.StyleProvider.processContentVerticalAlignment(selectedOverflowElement,this.__textVerticalAlignment),this.__isAttached&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiUserGuidance.triggerUpdatePageLines"]=!0,this.__requestAsyncWork())}setTextFontSize(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextFontSize")),convertedValue!==this.__textFontSize&&(this.__textFontSize=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextFontSize"}),this.__buttonNext.setTextFontSize(valueNew),this.__buttonCancel.setTextFontSize(valueNew),this.__buttonBack.setTextFontSize(valueNew),this.__processTextFontSize())}getTextFontSize(){return this.__textFontSize}__processTextFontSize(){for(let page of this.__pages??[]){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.linkElement&&(this.__textFontSize?pageMetadata.linkElement.style.fontSize=this.__textFontSize+(this.__textFontSizeUnit??"px"):pageMetadata.linkElement.style.fontSize=""))}let selectedOverflowElement=this.__elementContentTabs.querySelector("tchmi-tab-links-overflow tchmi-tab-link");selectedOverflowElement&&(this.__textFontSize?selectedOverflowElement.style.fontSize=this.__textFontSize+(this.__textFontSizeUnit??"px"):selectedOverflowElement.style.fontSize="")}setTextFontSizeUnit(valueNew){let convertedValue=TcHmi.ValueConverter.toFontSizeUnit(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextFontSizeUnit")),convertedValue!==this.__textFontSizeUnit&&(this.__textFontSizeUnit=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextFontSizeUnit"}),this.__processTextFontSizeUnit())}getTextFontSizeUnit(){return this.__textFontSizeUnit}__processTextFontSizeUnit(){this.__processTextFontSize()}setTextFontFamily(valueNew){let convertedValue=TcHmi.ValueConverter.toFontFamily(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextFontFamily")),convertedValue!==this.__textFontFamily&&(this.__textFontFamily=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextFontFamily"}),this.__processTextFontFamily())}getTextFontFamily(){return this.__textFontFamily}__processTextFontFamily(){for(let page of this.__pages??[]){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.linkElement&&(pageMetadata.linkElement.style.fontFamily=this.__textFontFamily??""))}let selectedOverflowElement=this.__elementContentTabs.querySelector("tchmi-tab-links-overflow tchmi-tab-link");selectedOverflowElement&&(selectedOverflowElement.style.fontFamily=this.__textFontFamily??"")}setTextFontStyle(valueNew){let convertedValue=TcHmi.ValueConverter.toFontStyle(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextFontStyle")),convertedValue!==this.__textFontStyle&&(this.__textFontStyle=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextFontStyle"}),this.__processTextFontStyle())}getTextFontStyle(){return this.__textFontStyle}__processTextFontStyle(){for(let page of this.__pages??[]){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.linkElement&&TcHmi.StyleProvider.processFontStyle(pageMetadata.linkElement,this.__textFontStyle))}let selectedOverflowElement=this.__elementContentTabs.querySelector("tchmi-tab-links-overflow tchmi-tab-link");selectedOverflowElement&&TcHmi.StyleProvider.processFontStyle(selectedOverflowElement,this.__textFontStyle)}setTextFontWeight(valueNew){let convertedValue=TcHmi.ValueConverter.toFontWeight(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextFontWeight")),convertedValue!==this.__textFontWeight&&(this.__textFontWeight=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextFontWeight"}),this.__processTextFontWeight())}getTextFontWeight(){return this.__textFontWeight}__processTextFontWeight(){for(let page of this.__pages??[]){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.linkElement&&TcHmi.StyleProvider.processFontWeight(pageMetadata.linkElement,this.__textFontWeight))}let selectedOverflowElement=this.__elementContentTabs.querySelector("tchmi-tab-links-overflow tchmi-tab-link");selectedOverflowElement&&TcHmi.StyleProvider.processFontWeight(selectedOverflowElement,this.__textFontWeight)}setTextPadding(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TextPadding"));let resolverInfo=this.__objectResolvers.get("textPadding");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("TextPadding")?.type});this.__objectResolvers.set("TextPadding",{resolver,watchCallback:this.__onResolverForTextPaddingWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForTextPaddingWatchCallback)})}__onResolverForTextPaddingWatchCallback=data=>{this.__isAttached||this.__suspendObjectResolver("textPadding"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__textPadding)||(this.__textPadding=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TextPadding"}),this.__processTextPadding()):TcHmi.Log.Controls.error(this,TcHmiUserGuidance.#tchmiFQN,{Attribute:"TextPadding"},"Resolving symbols from object failed with error: "+TcHmi.Log.buildMessage(data.details))};getTextPadding(){return this.__textPadding}__processTextPadding(){for(let page of this.__pages??[]){const pageMetadata=this.__pagesMap.get(page);pageMetadata&&(pageMetadata.linkElement&&TcHmi.StyleProvider.processContentPadding(pageMetadata.linkElement,this.__textPadding))}let selectedOverflowElement=this.__elementContentTabs.querySelector("tchmi-tab-links-overflow tchmi-tab-link");selectedOverflowElement&&TcHmi.StyleProvider.processContentPadding(selectedOverflowElement,this.__textPadding)}__setGuidanceFinished(newValue){this.__guidanceFinished!==newValue&&(newValue?(this.__elementContentTabs.style.display="none",this.__elementMessage.style.display="",this.__buttonBack.setIsEnabled(!1),this.__buttonNext.setIsEnabled(!1),this.__buttonCancel.setIsEnabled(!1),TcHmi.EventProvider.raise(this.__id+".onFinished")):(this.__elementContentTabs.style.display="",this.__elementMessage.style.display="none"),this.__guidanceFinished=newValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"GuidanceFinished"}))}getGuidanceFinished(){return this.__guidanceFinished}restartUserGuidance(force=!1){(this.__guidanceFinished||force)&&(this.__setGuidanceFinished(!1),this.__reset())}}})();TcHmi.Controls.registerEx("TcHmiUserGuidance","TcHmi.Controls.Beckhoff",TcHmiUserGuidance,{injectInGlobalObject:!0});export{TcHmiUserGuidance as Control}; |