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";import{PermissionCheckbox}from"./PermissionCheckbox.js";export var Resource;!function(Resource){Resource[Resource.SYMBOL=0]="SYMBOL",Resource[Resource.FILE=1]="FILE"}(Resource||(Resource={}));let TcHmiPermissionManagement=(()=>{var _a,_b,_c;let ___elemScrollHandling_decorators,___subscriptionCallback_decorators,___allSymbolsChangeCallback_decorators,___onInheritCheckboxChange_decorators,_classSuper=TcHmiControl.Control,_instanceExtraInitializers=[];return class TcHmiPermissionManagement extends _classSuper{static{const _metadata="function"==typeof Symbol&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;___elemScrollHandling_decorators=[TcHmi.EventHandler()],___subscriptionCallback_decorators=[(_a=TcHmi).CallbackMethod.bind(_a)],___allSymbolsChangeCallback_decorators=[(_b=TcHmi).CallbackMethod.bind(_b)],___onInheritCheckboxChange_decorators=[(_c=TcHmi).CallbackMethod.bind(_c)],__esDecorate(this,null,___elemScrollHandling_decorators,{kind:"method",name:"__elemScrollHandling",static:!1,private:!1,access:{has:obj=>"__elemScrollHandling"in obj,get:obj=>obj.__elemScrollHandling},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___subscriptionCallback_decorators,{kind:"method",name:"__subscriptionCallback",static:!1,private:!1,access:{has:obj=>"__subscriptionCallback"in obj,get:obj=>obj.__subscriptionCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___allSymbolsChangeCallback_decorators,{kind:"method",name:"__allSymbolsChangeCallback",static:!1,private:!1,access:{has:obj=>"__allSymbolsChangeCallback"in obj,get:obj=>obj.__allSymbolsChangeCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onInheritCheckboxChange_decorators,{kind:"method",name:"__onInheritCheckboxChange",static:!1,private:!1,access:{has:obj=>"__onInheritCheckboxChange"in obj,get:obj=>obj.__onInheritCheckboxChange},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);__table;__tableHead;__tableBody;__filter;__regExForFilter;__resourceSearch;__resourceCount;__shownResourceList=[];__messageNoResourcesFound;__checkboxElements=new Map;__resource=Resource.SYMBOL;__externalResource=!0;__groupAsMuchAsPossible=!0;__subscriptionsToUnsubscribeOnDetach=[];setResources(resourceList){const userGroups=this.__cached_results.get("TcHmiSrv.Config::USERGROUPS");if(null===resourceList)return this.__externalResource=!1,void this.__cached_results.delete("ListSymbols");if(this.__externalResource=!0,this.__resource===Resource.SYMBOL){this.__cached_results.set("ListSymbols",resourceList);const tree=new Map;if(this.__groupAsMuchAsPossible)for(const[symbolName,entry]of resourceList){let subtree=tree,blub=null;for(const symbolPath of symbolName.split("."))blub=subtree.get(symbolPath),void 0===blub&&(blub={children:new Map,data:null},subtree.set(symbolPath,blub)),subtree=blub.children;blub.data=entry}this.__updateTableSymbols(resourceList,userGroups)}else this.__resource===Resource.FILE&&this.__cached_results.set("TODO",resourceList)}__previnit(){this.__elementTemplateRoot=this.__element.find(".TcHmi_Controls_Beckhoff_TcHmiPermissionManagement-template").get(0);const table=this.__elementTemplateRoot.querySelector("table");if(!table)throw new Error("Expected table body element not found in template.");this.__table=table;const tableHead=table.querySelector("thead");if(!tableHead)throw new Error("Expected table body element not found in template.");this.__tableHead=tableHead;const tableBody=table.querySelector("tbody");if(!tableBody)throw new Error("Expected table body element not found in template.");this.__tableBody=tableBody;const resourceSearch=this.__elementTemplateRoot.querySelector(".symbol-search");if(!resourceSearch)throw new Error("Expected input element .symbol-search not found in template.");this.__resourceSearch=resourceSearch;const resourceCount=this.__elementTemplateRoot.querySelector(".symbol-count");if(!resourceCount)throw new Error("Expected element .symbol-count not found in template.");this.__resourceCount=resourceCount;const messageNoResourcesFound=this.__elementTemplateRoot.querySelector(".message-no-symbols-found");if(!messageNoResourcesFound)throw new Error("Expected element .message-no-symbols-found not found in template.");this.__messageNoResourcesFound=messageNoResourcesFound,this.__destroyOnDestroy.push(TcHmi.EventProvider.registerDomEvent(this.__resourceSearch,"input",()=>this.__updateSymbolSearch()),TcHmi.EventProvider.registerDomEvent(this.__element,"scroll",this.__elemScrollHandling)),super.__previnit()}__elemScrollHandling(){this.__element[0].scrollTop>0?this.__element[0].classList.add("scroll-vertical"):this.__element[0].classList.remove("scroll-vertical")}__initialized=!1;__updateSymbolSearch(){if(!this.__initialized)return;this.__shownResourceList=[];const searchTerm=this.__resourceSearch.value,tableRows=this.__tableBody.querySelectorAll("tr");for(const row of tableRows){let texts=row.querySelectorAll('[text-search="true"]');if(0===texts.length||!row.textContent){for(const text of texts)text.innerHTML=text.innerHTML.replace(/(.*?)<\/span>/g,"$1");continue}let symbolName=row.dataset.symbolName;if(!symbolName)continue;if(this.__filter){let hasMatch=!1;if(hasMatch=this.__regExForFilter?new RegExp(this.__filter).test(symbolName):symbolName.toLowerCase().includes(this.__filter.toLowerCase()),!hasMatch){row.style.display="none";continue}}let hasMatch=symbolName.toLowerCase().includes(searchTerm.toLowerCase());if(hasMatch){{const symbolName=row.dataset.symbolName;symbolName&&this.__shownResourceList.push(symbolName),row.style.removeProperty("display")}for(const text of texts)if(text.innerHTML=text.innerHTML.replace(/(.*?)<\/span>/g,"$1"),hasMatch&&text.textContent){let regex=new RegExp(searchTerm,"gi");text.innerHTML=text.textContent.replace(regex,match=>`${match}`)}}else row.style.display="none"}this.__resourceCount.textContent=this.__shownResourceList.length.toString(),this.__messageNoResourcesFound.classList.toggle("hide",0!==this.__shownResourceList.length);for(const[_groupName,groupElements]of this.__checkboxElements){let all_read,all_write,all_inherit;for(const symbolName of this.__shownResourceList){const symbolCheckboxes=groupElements.get(symbolName);if(!symbolCheckboxes){all_read=null,all_write=null,all_inherit=null;break}if(null!==all_read&&(void 0===all_read?all_read=symbolCheckboxes.read.checked:all_read!==symbolCheckboxes.read.checked&&(all_read=null)),null!==all_write&&(void 0===all_write?all_write=symbolCheckboxes.write.checked:all_write!==symbolCheckboxes.write.checked&&(all_write=null)),null!==all_inherit&&(void 0===all_inherit?all_inherit=symbolCheckboxes.inherit.checked:all_inherit!==symbolCheckboxes.inherit.checked&&(all_inherit=null)),null===all_read&&all_write&&null===all_inherit)break}const allSymbolElements=groupElements.get("all symbols");allSymbolElements&&(null==all_read?allSymbolElements.read.unset=!0:(allSymbolElements.read.checked=all_read,all_inherit&&(allSymbolElements.read.disabled=!0)),null==all_write?allSymbolElements.write.unset=!0:(allSymbolElements.write.checked=all_write,all_inherit&&(allSymbolElements.write.disabled=!0)),null==all_inherit?allSymbolElements.inherit.unset=!0:allSymbolElements.inherit.checked=all_inherit)}}__init(){super.__init()}__fetchRecursiveFiles(path,storage,finalCallback,pendingOperations={count:0}){pendingOperations.count++,TcHmi.Server.writeSymbol("ListFiles",path,data=>{const value=data.results?.[0].value;if(value){for(const[fileOrFolderName,fileOrFolder]of Object.entries(value)){if(fileOrFolder?.fileFlags.includes("VirtualDirectory")||void 0===fileOrFolder.access)continue;let properties={ACCESS:fileOrFolder.access};storage.set(fileOrFolderName,properties),fileOrFolder?.fileFlags.includes("Directory")&&(properties.CONTENT=new Map,this.__fetchRecursiveFiles(`${path}${fileOrFolderName}/`,properties.CONTENT,finalCallback,pendingOperations))}pendingOperations.count--,0===pendingOperations.count&&finalCallback()}})}__recordToMap(record){const map=new Map;for(const[key,value]of Object.entries(record))map.set(key,value);return map}__cached_results=new Map;__subscriptionCallback(data){if(data.error||!data.results)return;this.__initialized=!0;for(const result of data.results){if(result.error||!result.symbol)continue;let value=result.value;"ListSymbols"===result.symbol&&(value=this.__recordToMap(value)),this.__cached_results.set(result.symbol,value)}const symbolList=this.__cached_results.get("ListSymbols"),userGroups=this.__cached_results.get("TcHmiSrv.Config::USERGROUPS"),files=new Map;this.__resource===Resource.SYMBOL?this.__updateTableSymbols(symbolList,userGroups):this.__resource===Resource.FILE&&this.__fetchRecursiveFiles("/",files,()=>{this.__updateTableFiles(files,userGroups)})}__removePreviousGenericElements(table){for(const elementToRemove of table.querySelectorAll(".generic"))elementToRemove.remove()}__createGroupHeader(groupName,rowFirstHeader,rowSecondHeader){const th_groupname=document.createElement("th");th_groupname.setAttribute("colspan","3"),th_groupname.classList.add("header","generic"),th_groupname.textContent=groupName,rowFirstHeader.append(th_groupname);const td_read=document.createElement("td");td_read.classList.add("sub-header","symbol-access-read","generic"),td_read.textContent="Read";const td_write=document.createElement("td");td_write.classList.add("sub-header","symbol-access-write","generic"),td_write.textContent="Write";const td_inherit=document.createElement("td");td_inherit.classList.add("sub-header","symbol-access-inherit","generic"),td_inherit.textContent="Inherit",rowSecondHeader.append(td_read,td_write,td_inherit)}__createGroupDefaultAccessElements(userGroupName,userGroupDefaultAccess,row){const td_read=document.createElement("td");td_read.classList.add("symbol-access-read","generic");const checkbox_read=new PermissionCheckbox({initValue:TcHmiPermissionManagement.hasReadAccess(userGroupDefaultAccess),colorCoded:!0});td_read.append(checkbox_read);const td_write=document.createElement("td");td_write.classList.add("symbol-access-write","generic");const checkbox_write=new PermissionCheckbox({initValue:TcHmiPermissionManagement.hasWriteAccess(userGroupDefaultAccess),colorCoded:!0});td_write.append(checkbox_write),checkbox_read.addEventListener("change",()=>{checkbox_read.loading();let accessValue=TcHmiPermissionManagement.getAccessValue(checkbox_read.checked,checkbox_write.checked);TcHmi.Server.writeSymbol(`TcHmiSrv.Config::USERGROUPS::${userGroupName}::SYMBOLACCESS`,accessValue,data=>{})}),checkbox_write.addEventListener("change",()=>{checkbox_write.loading();let accessValue=TcHmiPermissionManagement.getAccessValue(checkbox_read.checked,checkbox_write.checked);TcHmi.Server.writeSymbol(`TcHmiSrv.Config::USERGROUPS::${userGroupName}::SYMBOLACCESS`,accessValue,data=>{})});const td_empty=document.createElement("td");td_empty.classList.add("generic"),row.append(td_read,td_write,td_empty)}__allSymbolsChangeCallback(groupName,checkboxRead,checkboxWrite,targetCheckbox){let writeValue={};const group=this.__checkboxElements.get(groupName);if(group)for(const symbolName of this.__shownResourceList){const symbol=group.get(symbolName);if(!symbol)return void TcHmi.Log.error("Symbol not found.");targetCheckbox===checkboxRead?checkboxWrite=symbol.write:targetCheckbox===checkboxWrite?checkboxRead=symbol.read:TcHmi.Log.error("targetCheckbox does not match with read and write checkbox");const accessValue=TcHmiPermissionManagement.getAccessValue(checkboxRead.checked,checkboxWrite.checked);writeValue[symbolName]=accessValue}else TcHmi.Log.error("Group not found.")}__createGroupAllResourcesElements(groupName,groupElements,rowGroupAllSymbols){const td_read=document.createElement("td");td_read.classList.add("symbol-access-read","generic");const checkbox_read=new PermissionCheckbox({initValue:!1,unset:!0,colorCoded:!0});td_read.append(checkbox_read);const td_write=document.createElement("td");td_write.classList.add("symbol-access-write","generic");const checkbox_write=new PermissionCheckbox({initValue:!1,unset:!0,colorCoded:!0});td_write.append(checkbox_write),checkbox_read.changeCallback=this.__allSymbolsChangeCallback.bind(this,groupName,checkbox_read,checkbox_write),checkbox_write.changeCallback=this.__allSymbolsChangeCallback.bind(this,groupName,checkbox_read,checkbox_write);const td_inherit=document.createElement("td");td_inherit.classList.add("symbol-access-inherit","generic");const checkboxInherit=new PermissionCheckbox({initValue:!1,unset:!0,changeCallback:this.__onInheritCheckboxChange.bind(this,groupName,this.__shownResourceList,this.__allSymbolsChangeCallback.bind(this,groupName,checkbox_read,checkbox_write))});groupElements.set("all symbols",{read:checkbox_read,write:checkbox_write,inherit:checkboxInherit}),td_inherit.append(checkboxInherit),rowGroupAllSymbols.append(td_read,td_write,td_inherit)}__onInheritCheckboxChange(groupName,resourceList,notCheckedFn,inheritCheckbox){inheritCheckbox.checked?this.__removeAccessFromResources(groupName,resourceList):notCheckedFn()}__removeAccessFromResources(groupName,resourceList){let cmds=[];for(const symbolName of resourceList)cmds.push({commandOptions:["Delete"],symbol:"SetConfiguration",writeValue:{domain:"TcHmiSrv",symbol:`USERGROUPS::${groupName}::SYMBOLS::${symbolName}`,name:"default",data:null}});TcHmi.Server.request({requestType:"ReadWrite",commands:cmds},data=>{})}__createResourceRows(parent,resourceList,userGroups,indent=1){let resource="SYMBOLS";this.__resource===Resource.FILE&&(resource="FILES");for(const[resourceName,resourceEntry]of resourceList){const symbolIsReadOnly=resourceEntry?.SCHEMA?.readOnly??!1,tr=document.createElement("tr");tr.dataset.symbolName=resourceName,tr.classList.add("generic");const tdName=document.createElement("td");tdName.style.paddingLeft=8+18*indent+"px";const label=document.createElement("span");label.setAttribute("text-search","true"),label.textContent=resourceName,tdName.append(label);{const symbolAccess=resourceEntry.ACCESS,td_read=document.createElement("td");td_read.classList.add("symbol-access-read");const td_write=document.createElement("td");if(td_write.classList.add("symbol-access-write"),!resourceEntry.CONTENT){const checkbox_read=new PermissionCheckbox({initValue:TcHmiPermissionManagement.hasReadAccess(symbolAccess),colorCoded:!0});td_read.append(checkbox_read);const checkbox_write=new PermissionCheckbox({initValue:TcHmiPermissionManagement.hasWriteAccess(symbolAccess),colorCoded:!0,readOnly:symbolIsReadOnly});td_write.append(checkbox_write)}tr.append(tdName,td_read,td_write)}for(const[usergroupName,groupValue]of Object.entries(userGroups)){if("__SystemAdministrators"===usergroupName)continue;let groupMap=this.__checkboxElements.get(usergroupName);groupMap||(groupMap=new Map,this.__checkboxElements.set(usergroupName,groupMap));let symbolAccess=this.__resource===Resource.FILE?groupValue.FILEACCESS:groupValue.SYMBOLACCESS,inherit=!0;void 0!==groupValue[resource][resourceName]&&(symbolAccess=groupValue[resource][resourceName],inherit=!1);const td_read=document.createElement("td");td_read.classList.add("symbol-access-read");const td_write=document.createElement("td");td_write.classList.add("symbol-access-write");const td_inherit=document.createElement("td");if(td_inherit.classList.add("symbol-access-inherit"),!resourceEntry.CONTENT){const checkbox_read=new PermissionCheckbox({initValue:TcHmiPermissionManagement.hasReadAccess(symbolAccess),colorCoded:!0,disabled:inherit});td_read.append(checkbox_read);const checkbox_change=(usergroupName,symbolName,checkbox_read,checkbox_write,event)=>{let accessValue=TcHmiPermissionManagement.getAccessValue(checkbox_read.checked,checkbox_write.checked);TcHmi.Server.writeSymbol(`TcHmiSrv.Config::USERGROUPS::${usergroupName}::${resource}::${symbolName}`,accessValue)},checkbox_write=new PermissionCheckbox({initValue:TcHmiPermissionManagement.hasWriteAccess(symbolAccess),colorCoded:!0,readOnly:symbolIsReadOnly,disabled:inherit});td_write.append(checkbox_write);const checkbox_inherit=new PermissionCheckbox({initValue:inherit,disabled:!inherit});td_inherit.append(checkbox_inherit),groupMap.set(resourceName,{read:checkbox_read,write:checkbox_write,inherit:checkbox_inherit}),checkbox_read.changeCallback=checkbox_change.bind(this,usergroupName,resourceName,checkbox_read,checkbox_write),checkbox_write.changeCallback=checkbox_change.bind(this,usergroupName,resourceName,checkbox_read,checkbox_write),checkbox_inherit.changeCallback=this.__onInheritCheckboxChange.bind(this,usergroupName,[resourceName],checkbox_change.bind(this,usergroupName,resourceName,checkbox_read,checkbox_write))}tr.append(td_read,td_write,td_inherit)}if(parent.append(tr),resourceEntry.CONTENT){const container=document.createElement("div");container.style.display="contents",parent.append(container);const span=document.createElement("span");span.classList.add("arrow","arrow-down"),tdName.prepend(span);let collapsed=!1;(()=>{collapsed?(span.classList.remove("arrow-down"),span.classList.add("arrow-right")):(span.classList.remove("arrow-right"),span.classList.add("arrow-down")),container.classList.toggle("hide",collapsed),container.toggleAttribute("triggerReflow")})(),tdName.addEventListener("click",()=>{}),this.__createResourceRows(container,resourceEntry.CONTENT,userGroups,indent+3)}}}__updateTableFiles(files,userGroups){if(!files||!userGroups)return;this.__removePreviousGenericElements(this.__table);const rowFirstHeader=this.__tableHead.querySelector("tr.first-header"),rowSecondHeader=this.__tableHead.querySelector("tr.second-header"),rowGroupDefaultAccess=this.__tableHead.querySelector("tr.group-default-access"),rowGroupAllSymbols=this.__tableHead.querySelector("tr.all-symbols");this.__checkboxElements.clear();for(const[groupName,groupValue]of Object.entries(userGroups)){const groupElements=new Map;this.__checkboxElements.set(groupName,groupElements),"__SystemAdministrators"!==groupName&&(this.__createGroupHeader(groupName,rowFirstHeader,rowSecondHeader),this.__createGroupDefaultAccessElements(groupName,groupValue.FILEACCESS,rowGroupDefaultAccess),this.__createGroupAllResourcesElements(groupName,groupElements,rowGroupAllSymbols))}this.__createResourceRows(this.__tableBody,files,userGroups)}__updateTableSymbols(symbolList,userGroups){if(!symbolList||!userGroups)return;this.__removePreviousGenericElements(this.__table);const rowFirstHeader=this.__table.querySelector("tr.first-header"),rowSecondHeader=this.__table.querySelector("tr.second-header"),rowGroupDefaultAccess=this.__table.querySelector("tr.group-default-access"),rowGroupAllSymbols=this.__table.querySelector("tr.all-symbols");this.__checkboxElements.clear();for(const[groupName,groupValue]of Object.entries(userGroups)){const groupElements=new Map;this.__checkboxElements.set(groupName,groupElements),"__SystemAdministrators"!==groupName&&(this.__createGroupHeader(groupName,rowFirstHeader,rowSecondHeader),this.__createGroupDefaultAccessElements(groupName,groupValue.SYMBOLACCESS,rowGroupDefaultAccess),this.__createGroupAllResourcesElements(groupName,groupElements,rowGroupAllSymbols))}this.__createResourceRows(this.__tableBody,symbolList,userGroups),this.__updateSymbolSearch()}static getAccessValue(read_access,write_access){let accessValue=TcHmi.Server.ACCESS.NONE;return read_access&&write_access?accessValue=TcHmi.Server.ACCESS.READWRITE:read_access?accessValue=TcHmi.Server.ACCESS.READ:write_access&&(accessValue=TcHmi.Server.ACCESS.WRITE),accessValue}static hasReadAccess(accessValue){return[TcHmi.Server.ACCESS.READ,TcHmi.Server.ACCESS.READWRITE].includes(accessValue)}static hasWriteAccess(accessValue){return[TcHmi.Server.ACCESS.WRITE,TcHmi.Server.ACCESS.READWRITE].includes(accessValue)}__attach(){super.__attach(),this.__resource!==Resource.SYMBOL||this.__externalResource||this.__subscriptionsToUnsubscribeOnDetach.push(TcHmi.Server.subscribe([{symbol:"ListSymbols"}],2e3,this.__subscriptionCallback)),this.__subscriptionsToUnsubscribeOnDetach.push(TcHmi.Server.subscribe([{symbol:"TcHmiSrv.Config::USERGROUPS"}],2e3,this.__subscriptionCallback))}__detach(){super.__detach();for(const requestId of this.__subscriptionsToUnsubscribeOnDetach)requestId&&TcHmi.Server.unsubscribe(requestId);this.__subscriptionsToUnsubscribeOnDetach=[]}destroy(){this.__keepAlive||super.destroy()}setFilter(valueNew){let convertedValue=TcHmi.ValueConverter.toString(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("Filter")),convertedValue!==this.__filter&&(this.__filter=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Filter"}),!TCHMI_DESIGNER&&this.__isAttached&&this.__updateSymbolSearch())}getFilter(){return this.__filter}setRegExForFilter(valueNew){let convertedValue=TcHmi.ValueConverter.toBoolean(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RegExForFilter")),convertedValue!==this.__regExForFilter&&(this.__regExForFilter=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RegExForFilter"}),!TCHMI_DESIGNER&&this.__isAttached&&this.__updateSymbolSearch())}getRegExForFilter(){return this.__regExForFilter}static Resource=Resource}})();TcHmi.Controls.registerEx("TcHmiPermissionManagement","TcHmi.Controls.Beckhoff",TcHmiPermissionManagement,{injectInGlobalObject:!0});export{TcHmiPermissionManagement as Control};