Files
m.heisig 2d11c43579 Added minimal functionality for Robot teaching
- Added minimal HMI
- Added possibility to open and close all chamber doors
2026-01-17 09:20:39 +01:00

5 lines
255 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";import*as TcHmiDatagrid from"../TcHmiDatagrid/TcHmiDatagrid.esm.js";import*as SchemaParser from"../Helpers/TcHmiJsonEditors/SchemaParser.js";let TcHmiTreeView=(()=>{var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m,_o,_p,_q,_r,_s;let ___onResized_decorators,___onMousedown_decorators,___onItemClick_decorators,___resizeDropdownBoxCb_decorators,___onRowClick_decorators,___onColumnMouseDown_decorators,___onColumnMouseMove_decorators,___onColumnMouseUp_decorators,___onColumnMouseDblClick_decorators,___onSortClick_decorators,___onSortTouchStart_decorators,___onSortTouchMove_decorators,___onSortTouchEnd_decorators,___onSortTouchCancel_decorators,___onScroll_decorators,___onFocusElement_decorators,___onFocusElementOut_decorators,___onIndirectInputAccepted_decorators,___onIndirectInputCanceled_decorators,___onEmptyAreaClick_decorators,___onKeydown_decorators,___onBeforeinput_decorators,___onInput_decorators,___onCheckboxMouseDown_decorators,___onValueChange_decorators,___onButtonMousedown_decorators,___onButtonMouseup_decorators,___onButtonMouseleave_decorators,___onButtonMouseenter_decorators,___onButtonTouchstart_decorators,___onButtonTouchend_decorators,___onResolverForColumnsWatchCallback_decorators,___onResolverForDataWatchCallback_decorators,___onResolverForDataSchemaWatchCallback_decorators,___onDataSymbolPage_decorators,___onDataSymbolWatch_decorators,___onResolverForSortingWatchCallback_decorators,___onResolverForFilterWatchCallback_decorators,___onResolverForHeaderCellPaddingWatchCallback_decorators,___onResolverForTableBorderColorWatchCallback_decorators,___onResolverForTableBorderStyleWatchCallback_decorators,___onResolverForRowNumbersCellPaddingWatchCallback_decorators,___onResolverForCellContentPaddingWatchCallback_decorators,___onResolverForHeaderBackgroundColorWatchCallback_decorators,___onResolverForHeaderTextColorWatchCallback_decorators,___onResolverForRowNumbersTextColorWatchCallback_decorators,___onResolverForRowNumbersBackgroundColorWatchCallback_decorators,___onResolverForSelectedRowIndexWatchCallback_decorators,_classSuper=TcHmiControl.Control,_instanceExtraInitializers=[];return class TcHmiTreeView extends _classSuper{static{const _metadata="function"==typeof Symbol&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;___onResized_decorators=[TcHmi.EventHandler()],___onMousedown_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onItemClick_decorators=[TcHmi.EventHandler()],___resizeDropdownBoxCb_decorators=[TcHmi.EventHandler()],___onRowClick_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onColumnMouseDown_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onColumnMouseMove_decorators=[TcHmi.EventHandler()],___onColumnMouseUp_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onColumnMouseDblClick_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onSortClick_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onSortTouchStart_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onSortTouchMove_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onSortTouchEnd_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onSortTouchCancel_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onScroll_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onFocusElement_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onFocusElementOut_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onIndirectInputAccepted_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onIndirectInputCanceled_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onEmptyAreaClick_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate"})],___onKeydown_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onBeforeinput_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkAccess:"operate",checkIsReadOnly:!0})],___onInput_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onCheckboxMouseDown_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onValueChange_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onButtonMousedown_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onButtonMouseup_decorators=[TcHmi.EventHandler()],___onButtonMouseleave_decorators=[TcHmi.EventHandler()],___onButtonMouseenter_decorators=[TcHmi.EventHandler()],___onButtonTouchstart_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onButtonTouchend_decorators=[TcHmi.EventHandler({checkIsEnabled:!0,checkIsReadOnly:!0,checkAccess:"operate"})],___onResolverForColumnsWatchCallback_decorators=[(_a=TcHmi).CallbackMethod.bind(_a)],___onResolverForDataWatchCallback_decorators=[(_b=TcHmi).CallbackMethod.bind(_b)],___onResolverForDataSchemaWatchCallback_decorators=[(_c=TcHmi).CallbackMethod.bind(_c)],___onDataSymbolPage_decorators=[(_d=TcHmi).CallbackMethod.bind(_d)],___onDataSymbolWatch_decorators=[(_e=TcHmi).CallbackMethod.bind(_e)],___onResolverForSortingWatchCallback_decorators=[(_f=TcHmi).CallbackMethod.bind(_f)],___onResolverForFilterWatchCallback_decorators=[(_g=TcHmi).CallbackMethod.bind(_g)],___onResolverForHeaderCellPaddingWatchCallback_decorators=[(_h=TcHmi).CallbackMethod.bind(_h)],___onResolverForTableBorderColorWatchCallback_decorators=[(_j=TcHmi).CallbackMethod.bind(_j)],___onResolverForTableBorderStyleWatchCallback_decorators=[(_k=TcHmi).CallbackMethod.bind(_k)],___onResolverForRowNumbersCellPaddingWatchCallback_decorators=[(_l=TcHmi).CallbackMethod.bind(_l)],___onResolverForCellContentPaddingWatchCallback_decorators=[(_m=TcHmi).CallbackMethod.bind(_m)],___onResolverForHeaderBackgroundColorWatchCallback_decorators=[(_o=TcHmi).CallbackMethod.bind(_o)],___onResolverForHeaderTextColorWatchCallback_decorators=[(_p=TcHmi).CallbackMethod.bind(_p)],___onResolverForRowNumbersTextColorWatchCallback_decorators=[(_q=TcHmi).CallbackMethod.bind(_q)],___onResolverForRowNumbersBackgroundColorWatchCallback_decorators=[(_r=TcHmi).CallbackMethod.bind(_r)],___onResolverForSelectedRowIndexWatchCallback_decorators=[(_s=TcHmi).CallbackMethod.bind(_s)],__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,___onMousedown_decorators,{kind:"method",name:"__onMousedown",static:!1,private:!1,access:{has:obj=>"__onMousedown"in obj,get:obj=>obj.__onMousedown},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onItemClick_decorators,{kind:"method",name:"__onItemClick",static:!1,private:!1,access:{has:obj=>"__onItemClick"in obj,get:obj=>obj.__onItemClick},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___resizeDropdownBoxCb_decorators,{kind:"method",name:"__resizeDropdownBoxCb",static:!1,private:!1,access:{has:obj=>"__resizeDropdownBoxCb"in obj,get:obj=>obj.__resizeDropdownBoxCb},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onRowClick_decorators,{kind:"method",name:"__onRowClick",static:!1,private:!1,access:{has:obj=>"__onRowClick"in obj,get:obj=>obj.__onRowClick},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onColumnMouseDown_decorators,{kind:"method",name:"__onColumnMouseDown",static:!1,private:!1,access:{has:obj=>"__onColumnMouseDown"in obj,get:obj=>obj.__onColumnMouseDown},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onColumnMouseMove_decorators,{kind:"method",name:"__onColumnMouseMove",static:!1,private:!1,access:{has:obj=>"__onColumnMouseMove"in obj,get:obj=>obj.__onColumnMouseMove},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onColumnMouseUp_decorators,{kind:"method",name:"__onColumnMouseUp",static:!1,private:!1,access:{has:obj=>"__onColumnMouseUp"in obj,get:obj=>obj.__onColumnMouseUp},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onColumnMouseDblClick_decorators,{kind:"method",name:"__onColumnMouseDblClick",static:!1,private:!1,access:{has:obj=>"__onColumnMouseDblClick"in obj,get:obj=>obj.__onColumnMouseDblClick},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onSortClick_decorators,{kind:"method",name:"__onSortClick",static:!1,private:!1,access:{has:obj=>"__onSortClick"in obj,get:obj=>obj.__onSortClick},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onSortTouchStart_decorators,{kind:"method",name:"__onSortTouchStart",static:!1,private:!1,access:{has:obj=>"__onSortTouchStart"in obj,get:obj=>obj.__onSortTouchStart},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onSortTouchMove_decorators,{kind:"method",name:"__onSortTouchMove",static:!1,private:!1,access:{has:obj=>"__onSortTouchMove"in obj,get:obj=>obj.__onSortTouchMove},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onSortTouchEnd_decorators,{kind:"method",name:"__onSortTouchEnd",static:!1,private:!1,access:{has:obj=>"__onSortTouchEnd"in obj,get:obj=>obj.__onSortTouchEnd},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onSortTouchCancel_decorators,{kind:"method",name:"__onSortTouchCancel",static:!1,private:!1,access:{has:obj=>"__onSortTouchCancel"in obj,get:obj=>obj.__onSortTouchCancel},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onScroll_decorators,{kind:"method",name:"__onScroll",static:!1,private:!1,access:{has:obj=>"__onScroll"in obj,get:obj=>obj.__onScroll},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onFocusElement_decorators,{kind:"method",name:"__onFocusElement",static:!1,private:!1,access:{has:obj=>"__onFocusElement"in obj,get:obj=>obj.__onFocusElement},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onFocusElementOut_decorators,{kind:"method",name:"__onFocusElementOut",static:!1,private:!1,access:{has:obj=>"__onFocusElementOut"in obj,get:obj=>obj.__onFocusElementOut},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onIndirectInputAccepted_decorators,{kind:"method",name:"__onIndirectInputAccepted",static:!1,private:!1,access:{has:obj=>"__onIndirectInputAccepted"in obj,get:obj=>obj.__onIndirectInputAccepted},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onIndirectInputCanceled_decorators,{kind:"method",name:"__onIndirectInputCanceled",static:!1,private:!1,access:{has:obj=>"__onIndirectInputCanceled"in obj,get:obj=>obj.__onIndirectInputCanceled},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onEmptyAreaClick_decorators,{kind:"method",name:"__onEmptyAreaClick",static:!1,private:!1,access:{has:obj=>"__onEmptyAreaClick"in obj,get:obj=>obj.__onEmptyAreaClick},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onKeydown_decorators,{kind:"method",name:"__onKeydown",static:!1,private:!1,access:{has:obj=>"__onKeydown"in obj,get:obj=>obj.__onKeydown},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onBeforeinput_decorators,{kind:"method",name:"__onBeforeinput",static:!1,private:!1,access:{has:obj=>"__onBeforeinput"in obj,get:obj=>obj.__onBeforeinput},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onInput_decorators,{kind:"method",name:"__onInput",static:!1,private:!1,access:{has:obj=>"__onInput"in obj,get:obj=>obj.__onInput},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onCheckboxMouseDown_decorators,{kind:"method",name:"__onCheckboxMouseDown",static:!1,private:!1,access:{has:obj=>"__onCheckboxMouseDown"in obj,get:obj=>obj.__onCheckboxMouseDown},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onValueChange_decorators,{kind:"method",name:"__onValueChange",static:!1,private:!1,access:{has:obj=>"__onValueChange"in obj,get:obj=>obj.__onValueChange},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onButtonMousedown_decorators,{kind:"method",name:"__onButtonMousedown",static:!1,private:!1,access:{has:obj=>"__onButtonMousedown"in obj,get:obj=>obj.__onButtonMousedown},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onButtonMouseup_decorators,{kind:"method",name:"__onButtonMouseup",static:!1,private:!1,access:{has:obj=>"__onButtonMouseup"in obj,get:obj=>obj.__onButtonMouseup},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onButtonMouseleave_decorators,{kind:"method",name:"__onButtonMouseleave",static:!1,private:!1,access:{has:obj=>"__onButtonMouseleave"in obj,get:obj=>obj.__onButtonMouseleave},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onButtonMouseenter_decorators,{kind:"method",name:"__onButtonMouseenter",static:!1,private:!1,access:{has:obj=>"__onButtonMouseenter"in obj,get:obj=>obj.__onButtonMouseenter},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onButtonTouchstart_decorators,{kind:"method",name:"__onButtonTouchstart",static:!1,private:!1,access:{has:obj=>"__onButtonTouchstart"in obj,get:obj=>obj.__onButtonTouchstart},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onButtonTouchend_decorators,{kind:"method",name:"__onButtonTouchend",static:!1,private:!1,access:{has:obj=>"__onButtonTouchend"in obj,get:obj=>obj.__onButtonTouchend},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForColumnsWatchCallback_decorators,{kind:"method",name:"__onResolverForColumnsWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForColumnsWatchCallback"in obj,get:obj=>obj.__onResolverForColumnsWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForDataWatchCallback_decorators,{kind:"method",name:"__onResolverForDataWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForDataWatchCallback"in obj,get:obj=>obj.__onResolverForDataWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForDataSchemaWatchCallback_decorators,{kind:"method",name:"__onResolverForDataSchemaWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForDataSchemaWatchCallback"in obj,get:obj=>obj.__onResolverForDataSchemaWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onDataSymbolPage_decorators,{kind:"method",name:"__onDataSymbolPage",static:!1,private:!1,access:{has:obj=>"__onDataSymbolPage"in obj,get:obj=>obj.__onDataSymbolPage},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onDataSymbolWatch_decorators,{kind:"method",name:"__onDataSymbolWatch",static:!1,private:!1,access:{has:obj=>"__onDataSymbolWatch"in obj,get:obj=>obj.__onDataSymbolWatch},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForSortingWatchCallback_decorators,{kind:"method",name:"__onResolverForSortingWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForSortingWatchCallback"in obj,get:obj=>obj.__onResolverForSortingWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForFilterWatchCallback_decorators,{kind:"method",name:"__onResolverForFilterWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForFilterWatchCallback"in obj,get:obj=>obj.__onResolverForFilterWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForHeaderCellPaddingWatchCallback_decorators,{kind:"method",name:"__onResolverForHeaderCellPaddingWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForHeaderCellPaddingWatchCallback"in obj,get:obj=>obj.__onResolverForHeaderCellPaddingWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForTableBorderColorWatchCallback_decorators,{kind:"method",name:"__onResolverForTableBorderColorWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForTableBorderColorWatchCallback"in obj,get:obj=>obj.__onResolverForTableBorderColorWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForTableBorderStyleWatchCallback_decorators,{kind:"method",name:"__onResolverForTableBorderStyleWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForTableBorderStyleWatchCallback"in obj,get:obj=>obj.__onResolverForTableBorderStyleWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForRowNumbersCellPaddingWatchCallback_decorators,{kind:"method",name:"__onResolverForRowNumbersCellPaddingWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForRowNumbersCellPaddingWatchCallback"in obj,get:obj=>obj.__onResolverForRowNumbersCellPaddingWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForCellContentPaddingWatchCallback_decorators,{kind:"method",name:"__onResolverForCellContentPaddingWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForCellContentPaddingWatchCallback"in obj,get:obj=>obj.__onResolverForCellContentPaddingWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForHeaderBackgroundColorWatchCallback_decorators,{kind:"method",name:"__onResolverForHeaderBackgroundColorWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForHeaderBackgroundColorWatchCallback"in obj,get:obj=>obj.__onResolverForHeaderBackgroundColorWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForHeaderTextColorWatchCallback_decorators,{kind:"method",name:"__onResolverForHeaderTextColorWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForHeaderTextColorWatchCallback"in obj,get:obj=>obj.__onResolverForHeaderTextColorWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForRowNumbersTextColorWatchCallback_decorators,{kind:"method",name:"__onResolverForRowNumbersTextColorWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForRowNumbersTextColorWatchCallback"in obj,get:obj=>obj.__onResolverForRowNumbersTextColorWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForRowNumbersBackgroundColorWatchCallback_decorators,{kind:"method",name:"__onResolverForRowNumbersBackgroundColorWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForRowNumbersBackgroundColorWatchCallback"in obj,get:obj=>obj.__onResolverForRowNumbersBackgroundColorWatchCallback},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onResolverForSelectedRowIndexWatchCallback_decorators,{kind:"method",name:"__onResolverForSelectedRowIndexWatchCallback",static:!1,private:!1,access:{has:obj=>"__onResolverForSelectedRowIndexWatchCallback"in obj,get:obj=>obj.__onResolverForSelectedRowIndexWatchCallback},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),this.__asyncWorkData["Controls.Beckhoff.TcHmiTreeView.triggerProcessUnitSize"]=!1;let loadingSpinnerDivTempDiv=document.createElement("div");loadingSpinnerDivTempDiv.innerHTML='<div\n class="TcHmi_Controls_Beckhoff_TcHmiTreeview-loading-spinner-container"\n >\n <div class="TcHmi_Controls_Beckhoff_TcHmiTreeview-loading-spinner">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>',this.__elementLoadingSpinner=loadingSpinnerDivTempDiv.firstElementChild}__elementTemplateRoot=__runInitializers(this,_instanceExtraInitializers);__elementOuter;__elementHeaderScroll;__elementHeaderTable;__elementDataScroll;__elementDataTableBody;__elementLoadingSpinner;__elementMessage;__elementSentinelTop;__elementSentinelBottom;__data;__oldData;__overriddenData;__dataSchema;__overriddenDataSchema;__editorInfo;__hierarchicalDataProperty;__dataSymbol;__formatMax=null;__dataSymbolSchema;__destroyDataSymbolWatch=null;__pagingInfo={usePaging:!1,subscriptionId:null,buffer:30,theoreticalOffset:0,actualOffset:0,maxEntries:0,arrayStart:0,arrayEnd:null,filterMap:[],timing:{isScrolling:!1,timeoutID:null,lastRequestTime:0,lastUpdateTime:0,minTimeout:100,responseLatencies:[],updateTimings:[],firstResponsePending:!1}};__dataSymbolTransform=null;__dataSymbolExpressionWatchDestroyer=null;__dataSymbolExpression=null;__subscriptionData=new Map;__columns;__sorting;__internalSorting=[];__filter;__filterInstance=null;__filterStrategy;__rowClassesProvider;__indirectWrite;__internalColumns=[];__headerHeight;__headerHeightUnit;__headerCellPadding;__rowHeight;__headerTextColor;__rowNumbersTextColor;__tableBorderColor;__tableBorderWidth;__tableBorderStyle;__headerBackgroundColor;__rowNumbersBackgroundColor;__cellContentPadding;__showHeader;__showRowNumbers;__rowNumbersResizable;__rowNumbersStartNumber;__rowNumbersWidth;__rowNumbersWidthUnit;__rowNumbersHorizontalAlignment;__rowNumbersVerticalAlignment;__rowNumbersCellPadding;__headerFontFamily;__headerFontSize;__headerFontSizeUnit;__headerFontStyle;__headerFontWeight;__gridFontFamily;__gridFontSize;__gridFontSizeUnit;__gridFontStyle;__gridFontWeight;__rowNumbersFontFamily;__rowNumbersFontSize;__rowNumbersFontSizeUnit;__rowNumbersFontStyle;__rowNumbersFontWeight;__isReadOnly;__dateTimePickerInstance;__timespanPickerInstance;__timePickerConfirmedEventDestroyer=null;__timePickerCanceledEventDestroyer=null;__REGEX_ISO_8601_DATETIME=/^\d{4}-(?:0\d|1[0-2])-(?:[0-2]\d|3[01])[Tt\s](?:[01]\d|2[0-3]):[0-5]\d:(?:[0-5]\d|60)(?:.\d+)?(?:[Zz]|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;__REGEX_ISO_8601_TIMESPAN=/^P(?=.{2,})(?:\d+Y|\d+[.,]\d+Y$)?(?:\d+M|\d+[.,]\d+M$)?(?:\d+W|\d+[.,]\d+W$)?(?:\d+D|\d+[.,]\d+D$)?(?:T(?:\d+H|\d+[.,]\d+H$)?(?:\d+M|\d+[.,]\d+M$)?(?:\d+S|\d+[.,]\d+S$)?)?$/;__numericInputResetState={value:"",selectionStart:null,selectionEnd:null,selectionDirection:null};__lockState=null;__lastSorting;__columnWidths=[{width:0,widthUnit:"px",pixelWidth:0,minWidth:6,minWidthUnit:"px",resizable:!0}];__draggingInfo={isDragging:!1,columnIndex:null,startingPoint:null,offset:null};__lastRemovedSorting=null;__filterSortMap=null;__dataLength=0;__dataCount=0;__flatData=[];__expandedElements=[];__lastExpandedOrCollapsed=null;__sortTouches=[];__dataHasChanged=!1;__selectedCell=null;__scrollInfo={scrollTop:0,scrollLeft:0,updateScrollPosition:!1,firstIndex:0,oldFirstIndex:0,rowCount:0,oldRowCount:0,buffer:10};__resizedEventDestroyEvent=null;__movedEventDestroyEvent=null;__visibilityChangedDestroyEvent=null;__comboboxDropdowns={};__selectedCombobox=null;__resizeElementMinWidth=8;__contentWidth=null;__contentHeight=null;__preparedValues=[];__storage;__buttonLeaveDestroyer=null;__buttonEnterDestroyer=null;__lastReportedErrorDetail;__comparisonOptions={compareDates:!0,compareMaps:{deepCompareKeys:!0,deepCompareValues:!0},compareSets:{deepCompareValues:!0}};__localizedElements=new Map;__localizedValidityElements=new Map;__localizationReader=void 0;__previnit(){if(this.__elementTemplateRoot=this.__element.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template"),this.__elementOuter=this.__elementTemplateRoot.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-outer"),this.__elementHeaderScroll=this.__elementTemplateRoot.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-border"),this.__elementHeaderTable=this.__elementHeaderScroll.find("table"),this.__elementDataScroll=this.__elementTemplateRoot.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-data-scroll"),this.__elementDataTableBody=this.__elementDataScroll.find("table tbody"),this.__elementSentinelTop=this.__elementDataScroll.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-scroll-sentinel-top")[0],this.__elementSentinelBottom=this.__elementDataScroll.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-scroll-sentinel-bottom")[0],!(this.__elementTemplateRoot&&this.__elementOuter&&this.__elementHeaderScroll&&this.__elementHeaderTable&&this.__elementDataScroll&&this.__elementDataTableBody&&this.__elementSentinelTop&&this.__elementSentinelBottom))throw new Error("Invalid Template.html");this.__elementMessage=document.createElement("div"),this.__elementMessage.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-Message");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)}for(const[element,info]of this.__localizedValidityElements){let localizedText=data.reader.get(info.key);info.parameters&&(localizedText=tchmi_format_string(localizedText,...info.parameters)),element instanceof HTMLInputElement&&element.setCustomValidity(localizedText)}}})),super.__previnit()}__init(){super.__init();const defaultColunmWidths=this.__internalColumns.map(column=>column.width+column.widthUnit);defaultColunmWidths.unshift((this.__rowNumbersWidth??0)+(this.__rowNumbersWidthUnit??"px")),this.__storage=new TcHmi.LocalStorage(this,{sorting:this.getSorting(),columnWidths:defaultColunmWidths});const passiveEventOptions={passive:!0,capture:!1},activeEventOptions={passive:!1};this.__destroyOnDestroy.push(TcHmi.EventProvider.registerDomEvent(this.__elementHeaderTable[0],"mousedown",this.__onColumnMouseDown,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementHeaderTable[0],"dblclick",this.__onColumnMouseDblClick,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementHeaderTable[0],"click",this.__onSortClick,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementHeaderTable[0],"touchstart",this.__onSortTouchStart,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementHeaderTable[0],"touchmove",this.__onSortTouchMove,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementHeaderTable[0],"touchend",this.__onSortTouchEnd,activeEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementHeaderTable[0],"touchcancel",this.__onSortTouchCancel,activeEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataScroll[0],"scroll",this.__onScroll,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataScroll[0],"click",this.__onEmptyAreaClick,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"mousedown",this.__onCheckboxMouseDown,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"change",this.__onValueChange,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"focusin",this.__onFocusElement,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"focusout",this.__onFocusElementOut,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"indirectinputfinished",this.__onIndirectInputAccepted,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"indirectinputcanceled",this.__onIndirectInputCanceled,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"keydown",this.__onKeydown,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody,"beforeinput",this.__onBeforeinput),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"input",this.__onInput,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"mousedown",this.__onMousedown,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"mousedown",this.__onButtonMousedown,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"touchstart",this.__onButtonTouchstart,activeEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"click",this.__onRowClick,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(this.__elementDataTableBody[0],"click",this.__onFocusElement,passiveEventOptions))}__attach(){super.__attach();const passiveEventOptions={passive:!0,capture:!1};this.__destroyOnDetach.push(TcHmi.EventProvider.register(this.__id+".onResized",this.__onResized),TcHmi.EventProvider.registerDomEvent(document,"mouseup",this.__onColumnMouseUp,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(document,"mousemove",this.__onColumnMouseMove,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(document,"click",this.__onItemClick,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(document,"mouseup",this.__onButtonMouseup,passiveEventOptions),TcHmi.EventProvider.registerDomEvent(document,"touchend",this.__onButtonTouchend,{passive:!1}));let columnWidths=this.__storage?.get("columnWidths");if(columnWidths)for(let i=0,ii=Math.min(columnWidths.length,this.__columnWidths.length);i<ii;i++)this.__columnWidths[i].width=columnWidths[i];this.__recalcAllColumnWidths();let sorting=this.__storage?.get("sorting");sorting&&(this.__internalSorting=sorting,this.__processSorting()),sorting&&this.__pagingInfo.usePaging||this.__processDataSymbol(),0===this.__scrollInfo.scrollTop&&0===this.__scrollInfo.scrollLeft||(this.__scrollInfo.updateScrollPosition=!0),this.__updateTable(1),"Content"===this.getWidthMode()&&this.__processWidth(),"Content"===this.getHeightMode()&&this.__processHeight()}__detach(){super.__detach(),this.__selectedCombobox=null,this.__timePickerConfirmedEventDestroyer?.(),this.__timePickerConfirmedEventDestroyer=null,this.__timePickerCanceledEventDestroyer?.(),this.__timePickerCanceledEventDestroyer=null,this.__buttonLeaveDestroyer?.(),this.__buttonLeaveDestroyer=null,this.__buttonEnterDestroyer?.(),this.__buttonEnterDestroyer=null,this.__visibilityChangedDestroyEvent?.(),this.__visibilityChangedDestroyEvent=null,this.__processDataSymbol(!0)}destroy(){this.__keepAlive||(this.__dataSymbolExpressionWatchDestroyer?.(),this.__dataSymbolExpressionWatchDestroyer=null,this.__destroyDataSymbolWatch?.(),this.__destroyDataSymbolWatch=null,this.__dataSymbol&&(this.__dataSymbol.destroy(),this.__dataSymbol=null),this.__dateTimePickerInstance?.destroy(),this.__dateTimePickerInstance=void 0,this.__timespanPickerInstance?.destroy(),this.__timespanPickerInstance=void 0,super.destroy())}__addLocalizedElement(element,key,...parameters){let info={key};if(0!==parameters.length&&(info.parameters=parameters),this.__localizedElements.set(element,info),this.__localizationReader){let localizedText=this.__localizationReader.get(key);info.parameters&&(localizedText=tchmi_format_string(localizedText,...info.parameters)),element.textContent=tchmi_decode_control_characters(localizedText)}}__addLocalizedValidityElement(element,key,...parameters){let info={key};if(0!==parameters.length&&(info.parameters=parameters),this.__localizedValidityElements.set(element,info),this.__localizationReader){let localizedText=this.__localizationReader.get(key);info.parameters&&(localizedText=tchmi_format_string(localizedText,...info.parameters)),element.setCustomValidity(localizedText)}}__removeLocalizedElement(element){this.__localizedElements.delete(element)}__removeLocalizedValidityElement(element){element.setCustomValidity(""),this.__localizedValidityElements.delete(element)}selectParentRow(){if(this.__selectedCell?.rowIndex&&this.__selectedCell?.rowIndex.length>1){let index=[...this.__selectedCell.rowIndex];index.pop(),this.setSelectedRowIndex(index)}}collapseAll(){this.__expandedElements=[],this.__pagingInfo.usePaging&&this.__updatePaging(!0);let rows=this.__elementDataTableBody[0].getElementsByClassName("expanded");for(let i=0;i<rows.length;i++)rows[i].classList.remove("expanded");this.__updateTable(0)}expandElement(index,expandParents){let dataIndex=this.__originalIndexToDataIndex(index);if(this.__compareIndices(dataIndex,[-1]))return;let update=!1;for(;index.length>0;){const index_string=index.join(":");if(-1===this.__expandedElements.findIndex(x=>x.index===index_string)){this.__expandedElements.push({index:index_string});const dataIndex_string=dataIndex.join(":"),row=this.__elementDataTableBody.find('tr[data-row="'+dataIndex_string+'"]');row.length&&row[0].classList.add("expanded"),update=!0}if(!expandParents)break;index.pop(),dataIndex=this.__originalIndexToDataIndex(index)}update&&(this.__pagingInfo.usePaging&&this.__updatePaging(!0),this.__updateTable(0))}collapseElement(index){let dataIndex=this.__originalIndexToDataIndex(index),index_string=index.join(":"),dataIndex_string=dataIndex.join(":"),expendedElementsIndex=this.__expandedElements.findIndex(x=>x.index===index_string);-1!==expendedElementsIndex&&this.__expandedElements.splice(expendedElementsIndex,1);let row=this.__elementDataTableBody.find('tr[data-row="'+dataIndex_string+'"]');row.length&&row[0].classList.remove("expanded"),this.__pagingInfo.usePaging&&this.__updatePaging(!0),this.__updateTable(0)}scrollTo(index,expandParents){if(index.length>1&&expandParents){let copy=[...index];copy.pop(),this.expandElement(copy,!0)}let dataIndex=[...index];this.__pagingInfo&&(dataIndex=this.__originalIndexToDataIndex(index));let flatIndex=this.__flatData.findIndex(x=>this.__compareIndices(x.index,dataIndex));if(-1!==flatIndex){if(this.__rowHeight){let end=Math.floor(this.__elementDataScroll[0].clientHeight/this.__rowHeight);this.__flatData.length-end<flatIndex?this.__elementDataScroll[0].scrollTop=this.__flatData.length*this.__rowHeight-this.__elementDataScroll[0].clientHeight:this.__elementDataScroll[0].scrollTop=flatIndex*this.__rowHeight}}else index.length>1&&(dataIndex=[...index],dataIndex.pop(),this.scrollTo(dataIndex,!1))}getIndexOfPath(pathString,columnName,allowIncompletePath=!1){const data=this.__data?.data;if(!data)return null;const path=new TcHmi.ObjectPath(pathString),pathIndices=[];return this.__getIndicesOfPathRecursive(data,path,pathIndices,columnName)||allowIncompletePath?pathIndices:null}__getIndicesOfPathRecursive(children,path,pathIndices,columnName){const pathHead=path.shift();if(void 0===pathHead)return!1;for(const[index,row]of children.entries())if(row[columnName]===pathHead)return pathIndices.push(index),0===path.length||!!this.__hierarchicalDataProperty&&this.__getIndicesOfPathRecursive(row[this.__hierarchicalDataProperty],path,pathIndices,columnName);return!1}__dataIndexToOriginalIndex(index){let index_2=[...index];if(this.__pagingInfo.usePaging){let filterMap=this.__pagingInfo.filterMap;for(let i=0;i<index.length;i++){let dataIndex=index[i];0===i&&(dataIndex=dataIndex-this.__pagingInfo.actualOffset+this.__pagingInfo.arrayStart);let j=filterMap[dataIndex]?.index[i]??void 0;if(filterMap[dataIndex]?.children&&(filterMap=filterMap[dataIndex].children),index_2[i]=j,!filterMap)break}}return index_2}__originalIndexToDataIndex(index){let index_2=[...index];if(this.__pagingInfo.usePaging){let filterMap=this.__pagingInfo.filterMap;for(let i=0;i<index.length;i++){let j=filterMap.findIndex(x=>x?.index[i]===index[i]);if(index_2[i]=-1!==j&&0===i?j+this.__pagingInfo.actualOffset-this.__pagingInfo.arrayStart:j,!filterMap[j]?.children)break;filterMap=filterMap[j].children}}return index_2}__originalIndexToDataElement(index,data){if(!this.__hierarchicalDataProperty&&index.length>1)return;let element;for(let i=0;i<index.length;i++)if(element=0===i?data.get(index[i]):element?.[this.__hierarchicalDataProperty]?.[index[i]],!element)return;return element}__writeDateElementByOriginalIndex(index,data,valueNew){if(!this.__hierarchicalDataProperty&&index.length>1||0===index.length)return;if(1===index.length)return void data.set(index[0],valueNew);let element;for(let i=0;i<index.length;i++)if(0===i?element=data.get(index[i]):i===index.length-1&&element?(element=element[this.__hierarchicalDataProperty],element&&(element[index[i]]=valueNew)):element=element?.[this.__hierarchicalDataProperty]?.[index[i]],!element)return}__originalIndexToFilterMapElement(index,filterSortMap){for(let i=0;i<filterSortMap.length;i++){if(this.__compareIndices(filterSortMap[i].index,index))return[i];if(void 0!==filterSortMap[i].children){let tempIndex=this.__originalIndexToFilterMapElement(index,filterSortMap[i].children);if(!this.__compareIndices(tempIndex,[-1])){return[i].concat(tempIndex)}}}return[-1]}__dataToFilteredSortMap(data,index){let filteredSortMap=[];for(let i=0;i<data.length;i++){let newElement={index:[i]};if(void 0!==index&&(newElement.index=[...index],newElement.index.push(i)),void 0!==this.__hierarchicalDataProperty){let childElement=data?.get?.(i)?.[this.__hierarchicalDataProperty]??data[i]?.[this.__hierarchicalDataProperty];void 0!==childElement&&(newElement.children=this.__dataToFilteredSortMap(childElement,index?newElement.index:[i]))}filteredSortMap.push(newElement)}return filteredSortMap}__symbolNameToOriginalIndex(symbolName){if(!this.__dataSymbol||!this.__dataSymbolExpression||!this.__hierarchicalDataProperty)return null;let originalIndex=[],symbol=this.__dataSymbolExpression.getName()??"",strIndices=symbolName.replace(symbol,"").split(this.__hierarchicalDataProperty);for(let strIndex of strIndices)strIndex=strIndex.replace("[","").replace("]","").replace("::",""),""!==strIndex&&originalIndex.push(Number(strIndex));return originalIndex}__compareIndices(index_1,index_2){if(index_1.length!==index_2.length)return!1;for(let i=0;i<index_1.length;i++)if(index_1[i]!==index_2[i])return!1;return!0}__filterSortMapIncludesIndex(filterSortMap,rowIndex,arrayPosition=0){let result=!1;for(let i=0;i<filterSortMap.length;i++)if(filterSortMap[i].index[arrayPosition]===rowIndex[arrayPosition]){result=!(rowIndex.length>arrayPosition+1&&filterSortMap[i].children)||this.__filterSortMapIncludesIndex(filterSortMap[i].children,rowIndex,++arrayPosition);break}return result}__fillFlatData(){void 0!==this.__data&&(this.__flatData=[],this.__expandedElements.forEach(x=>{x.used=!1}),null!==this.__filterSortMap?this.__fillFlatDataWithFilterSortMap(this.__filterSortMap,this.__flatData):this.__fillFlatDataWithData(this.__data,this.__flatData),this.__insertHiddenChildDummiesInFlatData(),this.__dataCount!==this.__flatData.length&&(this.__dataCount=this.__flatData.length,this.__updateSentinels(),"Content"===this.getHeightMode()&&this.__processHeight()))}__fillFlatDataWithFilterSortMap(data,flatData){if(void 0!==this.__hierarchicalDataProperty&&this.__data)for(let i=0;i<data.length;i++){flatData.push({index:data[i].index});let convertedIndex=data[i].index.length>1?data[i].index.join(":"):data[i].index[0].toString();-1!==this.__expandedElements.findIndex(expandedElement=>expandedElement.index===convertedIndex)&&void 0!==data[i].children&&this.__fillFlatDataWithFilterSortMap(data[i].children,flatData)}}__fillFlatDataWithData(data,flatData,previousIndex){for(let i=0;i<data.length;i++){let index=[];void 0!==previousIndex&&(index=[...previousIndex]),index.push(i);let convertedIndex=index.length>1?index.join(":"):index[0].toString();if(flatData.push({index}),void 0!==this.__hierarchicalDataProperty){let childElement=data?.get?.(i)?.[this.__hierarchicalDataProperty]??data[i]?.[this.__hierarchicalDataProperty];if(void 0!==childElement)if(this.__pagingInfo.usePaging){let expandedIndex=this.__expandedElements.findIndex(expandedElement=>this.__originalIndexToDataIndex(expandedElement.index.split(":").map(Number)).join(":")===convertedIndex);-1!==expandedIndex&&Array.isArray(childElement)&&(this.__fillFlatDataWithData(childElement,flatData,index),this.__expandedElements[expandedIndex].childCount=childElement.length,this.__expandedElements[expandedIndex].oldDisplayedIndex=index,this.__expandedElements[expandedIndex].used=!0)}else{let expandedIndex=this.__expandedElements.findIndex(expandedElement=>expandedElement.index===convertedIndex);-1!==expandedIndex&&Array.isArray(childElement)&&(this.__fillFlatDataWithData(childElement,flatData,index),this.__expandedElements[expandedIndex].childCount=childElement.length,this.__expandedElements[expandedIndex].oldDisplayedIndex=index,this.__expandedElements[expandedIndex].used=!0)}}}}__insertHiddenChildDummiesInFlatData(){if(this.__pagingInfo.usePaging&&this.__expandedElements.length){let elements=this.__expandedElements.filter(x=>x.oldDisplayedIndex&&!x.used&&x.childCount);if(!elements.length)return;elements.sort((x,y)=>x.oldDisplayedIndex.length-y.oldDisplayedIndex.length),elements.forEach(element=>{let flatDataIndex=this.__flatData.findIndex(x=>this.__compareIndices(x.index,element.oldDisplayedIndex));if(-1!==flatDataIndex){flatDataIndex++;for(let i=element.childCount-1;i>=0;i--){let newIndex=[...element.oldDisplayedIndex];newIndex.push(i),this.__flatData.splice(flatDataIndex,0,{index:newIndex})}}})}}__getEditorInfoByOriginalIndexAndPropertyName(editorInfo,index,propertyName){if(editorInfo=this.__getEditorInfoByOriginalIndex(editorInfo,index))return editorInfo=this.__removeOptionalEditorLayer(editorInfo.properties.get(propertyName))}__getEditorInfoByOriginalIndex(editorInfo,index){const indexCopy=[...index];if(void 0===(editorInfo=this.__removeOptionalEditorLayer(editorInfo)))return;const subIndex=indexCopy.shift();let subEditorInfo;if(void 0!==subIndex){switch(editorInfo.type){case"tuple":subEditorInfo=this.__removeOptionalEditorLayer(editorInfo.items[subIndex]);break;case"array":subEditorInfo=this.__removeOptionalEditorLayer(editorInfo.items)}if(void 0!==subEditorInfo){if(indexCopy.length>0){if(!this.__hierarchicalDataProperty||"object"!==subEditorInfo.type)return;editorInfo=this.__getEditorInfoByOriginalIndex(subEditorInfo.properties.get(this.__hierarchicalDataProperty),indexCopy)}else if(editorInfo=this.__removeOptionalEditorLayer(subEditorInfo),"object"!==editorInfo?.type)return;return editorInfo}}}__removeOptionalEditorLayer(editorInfo){return"optional"===editorInfo?.type&&(editorInfo=editorInfo.editorInfo),editorInfo}__getColumnControlInfoByEditorInfo(editorInfo){let dataDefinitions,columnControl="TextBlock";switch(editorInfo?.type){case"boolean":columnControl="CheckBox";break;case"number":columnControl="NumericInput",dataDefinitions={text:""};for(let restriction of editorInfo.restrictions)restriction.isInteger&&(columnControl="SpinboxInput",dataDefinitions.step=1,dataDefinitions.decimalDigits=0),void 0!==restriction.maximum&&(dataDefinitions.maxValue=restriction.maximum.exclusive?restriction.maximum.value-1:restriction.maximum.value),void 0!==restriction.minimum&&(dataDefinitions.minValue=restriction.minimum.exclusive?restriction.minimum.value+1:restriction.minimum.value);break;case"string":columnControl="TextBox";break;case"time":columnControl="DateTimeInput",editorInfo.formats.has("timespan")&&!editorInfo.formats.has("date-time")&&(columnControl="TimespanInput");break;case"enum":columnControl="ComboBox";let comboboxentries=[];function stringify(value){return"string"==typeof value?value:JSON.stringify(value)}editorInfo.members.forEach((label,value)=>{comboboxentries.push({value,text:label??stringify(value)})}),dataDefinitions=comboboxentries;break;case"object":case"array":columnControl="HTMLElement";break;default:columnControl="TextBlock"}return{columnControl,dataDefinitions,editable:!editorInfo?.schema?.readOnly,schema:editorInfo?.schema}}__recalcRowCount(){if(!this.getRenderedHeight())return;let rowCount=0;this.__rowHeight&&(rowCount=Math.ceil(this.__elementDataScroll[0].clientHeight/this.__rowHeight)),this.__scrollInfo.rowCount!==rowCount&&(this.__scrollInfo.rowCount=rowCount,this.__pagingInfo.usePaging&&this.__updatePaging(!0),this.__updateTable(2),this.__updateSentinels())}__onResized(_event){this.__recalcRowCount(),this.__recalcAllColumnWidths(),this.__selectedCombobox&&this.__resizeDropdownBoxCb(),this.__scrollInfo.updateScrollPosition&&this.__updateScrollPosition()}__doAsyncWork(timestamp){super.__doAsyncWork(timestamp),!this.__isDestroyed&&this.__isAttached&&this.__asyncWorkData["Controls.Beckhoff.TcHmiTreeView.triggerProcessUnitSize"]&&(this.__asyncWorkData["Controls.Beckhoff.TcHmiTreeView.triggerProcessUnitSize"]=!1,this.__updateUnitPadding())}__updateUnitPadding(){let unitElements=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeview-input-unit"),unitWidths=[];for(const unitElement of unitElements)unitWidths.push(unitElement.getBoundingClientRect().width);for(const unitElement of unitElements){let unitWidth=unitWidths.shift(),inputElement=unitElement.previousSibling;for(;null!==inputElement&&!(inputElement instanceof HTMLInputElement);)inputElement=inputElement?.previousSibling;if(!inputElement||!unitWidth)continue;let padding=tchmi_clone_object(this.__cellContentPadding)??{bottom:0,left:0,right:0,top:0,bottomUnit:"px",leftUnit:"px",rightUnit:"px",topUnit:"px"};"%"!==padding.rightUnit?padding.right+=unitWidth:padding.right+=this.__elementTemplateRoot[0].getBoundingClientRect().width/unitWidth,TcHmi.StyleProvider.processContentPadding(inputElement,padding)}}__applyDecimalDigits(value,decimalDigits,decimalPrecisionMode){if(null==decimalDigits||isNaN(value))return"";if("Round"===decimalPrecisionMode){return value.toFixed(decimalDigits).split(".").join(".")}{const factor=Math.pow(10,decimalDigits);return(Math.trunc(value*factor)/factor).toFixed(decimalDigits)}}__floorToDecimals(value,decimals){const factor=Math.pow(10,decimals);return(Math.floor(value*factor)/factor).toFixed(decimals)}__ceilToDecimals(value,decimals){const factor=Math.pow(10,decimals);return(Math.ceil(value*factor)/factor).toFixed(decimals)}__recalcAllColumnWidths(force=!1){if(!this.__isAttached)return;if("Collapsed"===this.__visibility)return void(this.__visibilityChangedDestroyEvent=TcHmi.EventProvider.register(this.__id+".onPropertyChanged<Visibility>",event=>{event.destroy(),this.__visibilityChangedDestroyEvent=null,requestAnimationFrame(()=>{this.__recalcAllColumnWidths(force)})}));let elementWidth=this.__element[0].clientWidth,innerElementWidth=this.__elementDataScroll[0].clientWidth;function percentToPixel(value){return elementWidth*(.01*value)}function pixelToPercent(value){return value/elementWidth*100}if(elementWidth>0){let pixelSum=0,frSum=0;const newPixelWidths=new Array(this.__columnWidths.length).fill(0),frWidths=new Map;for(const[columnIndex,width]of this.__columnWidths.entries()){if("factor"===width.widthUnit){frSum+=width.width,frWidths.set(columnIndex,width);continue}let minWidth=width.minWidth;"%"===width.widthUnit&&"px"===width.minWidthUnit?minWidth=pixelToPercent(minWidth):"px"===width.widthUnit&&"%"===width.minWidthUnit&&(minWidth=percentToPixel(minWidth));let newWidth=width.width<minWidth?minWidth:width.width,pixelWidth="%"===width.widthUnit?percentToPixel(newWidth):newWidth;0!==columnIndex?pixelSum+=pixelWidth:this.__showRowNumbers&&(elementWidth-=Math.floor(pixelWidth),innerElementWidth-=Math.floor(pixelWidth)),newPixelWidths[columnIndex]=pixelWidth}let done=!1,availableWidth=innerElementWidth-pixelSum;for(;frWidths.size>0&&!done;){done=!0;for(const[columnIndex,width]of frWidths){const pixelWidth=availableWidth*(width.width/frSum),minWidth="px"===width.minWidthUnit?width.minWidth:percentToPixel(width.minWidth);pixelWidth>=minWidth?newPixelWidths[columnIndex]=pixelWidth:(done=!1,frWidths.delete(columnIndex),frSum-=width.width,availableWidth-=minWidth,newPixelWidths[columnIndex]=minWidth)}}let remainder=0;for(const[columnIndex,width]of this.__columnWidths.entries()){let flooredPixelWidth=Math.floor(newPixelWidths[columnIndex]);if(remainder+=newPixelWidths[columnIndex]-flooredPixelWidth,remainder>=1&&(flooredPixelWidth++,remainder--),width.pixelWidth!==flooredPixelWidth||force){width.pixelWidth=flooredPixelWidth;const newCss={"min-width":width.pixelWidth+"px","max-width":width.pixelWidth+"px"};TcHmi.StyleProvider.setSimpleElementStyle(this.__elementHeaderScroll[0].querySelectorAll(`th:nth-child(${columnIndex+1})`),newCss),TcHmi.StyleProvider.setSimpleElementStyle(this.__elementDataScroll[0].querySelectorAll(`td:nth-child(${columnIndex+1})`),newCss)}}}this.__setCheckboxRadioButtonSize(),"Content"===this.getWidthMode()&&this.__processWidth()}__setCheckboxRadioButtonSize(){let checkboxes=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td input[type=checkbox] + label"),checkboxSizes=new Array(checkboxes.length);for(let i=0,ii=checkboxes.length;i<ii;i++){let columnIndex=checkboxes[i].parentElement.cellIndex;if(columnIndex>=this.__columnWidths.length)continue;let borderHorizontal=0,borderVertical=0,compStyles=window.getComputedStyle(checkboxes[i]);if(compStyles.borderTopStyle&&"none"!==compStyles.borderTopStyle){borderHorizontal+=Number(compStyles.borderTopWidth.replace("px",""))??0}if(compStyles.borderBottomStyle&&"none"!==compStyles.borderBottomStyle){borderHorizontal+=Number(compStyles.borderBottomWidth.replace("px",""))??0}if(compStyles.borderLeftStyle&&"none"!==compStyles.borderLeftStyle){borderVertical+=Number(compStyles.borderLeftWidth.replace("px",""))??0}if(compStyles.borderRightStyle&&"none"!==compStyles.borderRightStyle){borderVertical+=Number(compStyles.borderRightWidth.replace("px",""))??0}checkboxSizes[i]={size:Math.min((this.__rowHeight||0)-borderHorizontal,this.__columnWidths[columnIndex].pixelWidth-borderVertical)-(this.__tableBorderWidth||0),columnIndex}}let radiobuttons=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td input[type=radio] + label"),radiobuttonSizes=new Array(radiobuttons.length);for(let i=0,ii=radiobuttons.length;i<ii;i++){let columnIndex=radiobuttons[i].parentElement.cellIndex;if(columnIndex>=this.__columnWidths.length)continue;let borderHorizontal=0,borderVertical=0,compStyles=window.getComputedStyle(radiobuttons[i]);if(compStyles.borderTopStyle&&"none"!==compStyles.borderTopStyle){borderHorizontal+=Number(compStyles.borderTopWidth.replace("px",""))??0}if(compStyles.borderBottomStyle&&"none"!==compStyles.borderBottomStyle){borderHorizontal+=Number(compStyles.borderBottomWidth.replace("px",""))??0}if(compStyles.borderLeftStyle&&"none"!==compStyles.borderLeftStyle){borderVertical+=Number(compStyles.borderLeftWidth.replace("px",""))??0}if(compStyles.borderRightStyle&&"none"!==compStyles.borderRightStyle){borderVertical+=Number(compStyles.borderRightWidth.replace("px",""))??0}radiobuttonSizes[i]=Math.min((this.__rowHeight||0)-borderHorizontal,this.__columnWidths[columnIndex].pixelWidth-borderVertical)-(this.__tableBorderWidth||0)}for(let i=0,ii=checkboxes.length;i<ii;i++){let checkboxInfo=checkboxSizes[i];if(!checkboxInfo)continue;let size=checkboxInfo.size,columnIndex=checkboxInfo.columnIndex,column=this.__internalColumns[columnIndex-1];isNamedColumn(column)&&"ToggleSwitch"===column.control?(size>(this.__columnWidths[columnIndex].pixelWidth-(this.__tableBorderWidth||0))/2&&(size=(this.__columnWidths[columnIndex].pixelWidth-(this.__tableBorderWidth||0))/2),checkboxes[i].style.width=2*size+"px",checkboxes[i].style.height=size+"px",checkboxes[i].style.borderRadius=size/2+"px"):(checkboxes[i].style.width=size+"px",checkboxes[i].style.height=size+"px")}for(let i=0,ii=radiobuttons.length;i<ii;i++){let size=radiobuttonSizes[i];void 0!==size&&(radiobuttons[i].style.width=size+"px",radiobuttons[i].style.height=size+"px",radiobuttons[i].style.borderRadius=size/2+"px")}}__buildHeader(){let headerRow=this.__elementHeaderTable.find("tr");headerRow.find("th[data-column]").remove();let fragment=document.createDocumentFragment();for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let name="",internalColumn=this.__internalColumns[i];isNamedColumn(internalColumn)&&(name=internalColumn.name);let headerCell=document.createElement("th");headerCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header","tchmi-box"),headerCell.dataset.column=i.toString(10),headerCell.dataset.name=name,this.__internalColumns[i].resize&&"factor"!==this.__internalColumns[i].widthUnit&&headerCell.classList.add("resizable");let pixelWidth=this.__columnWidths[i+1].pixelWidth;TcHmi.StyleProvider.setSimpleElementStyle(headerCell,{"min-width":pixelWidth+"px","max-width":pixelWidth+"px"}),TcHmi.StyleProvider.processContentPadding(headerCell,this.__headerCellPadding),TcHmi.StyleProvider.processBorderWidth(headerCell,{right:this.__tableBorderWidth}),TcHmi.StyleProvider.processBorderStyle(headerCell,this.__tableBorderStyle),TcHmi.StyleProvider.processBorderColor(headerCell,this.__tableBorderColor),TcHmi.StyleProvider.processBackgroundColor(headerCell,this.__headerBackgroundColor),TcHmi.StyleProvider.processTextColor(headerCell,this.__headerTextColor),TcHmi.StyleProvider.processFontFamily(headerCell,this.__headerFontFamily),TcHmi.StyleProvider.processFontSize(headerCell,this.__headerFontSize,this.__headerFontSizeUnit),TcHmi.StyleProvider.processFontStyle(headerCell,this.__headerFontStyle),TcHmi.StyleProvider.processFontWeight(headerCell,this.__headerFontWeight);let wrapper=document.createElement("div");wrapper.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-wrapper");let sortElement=document.createElement("div");switch(sortElement.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-sort-element"),internalColumn.headerHorizontalAlignment){case"Left":sortElement.style.justifyContent="flex-start";break;case"Right":sortElement.style.justifyContent="flex-end";break;default:sortElement.style.justifyContent="center"}switch(internalColumn.headerVerticalAlignment){case"Top":sortElement.style.alignItems="flex-start";break;case"Bottom":sortElement.style.alignItems="flex-end";break;default:sortElement.style.alignItems="center"}internalColumn.sortable&&sortElement.classList.add("sortable");let sortElementChild=document.createElement("div");sortElementChild.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-sort-element-child"),sortElementChild.textContent=tchmi_decode_control_characters(this.__internalColumns[i].label);for(let j=0,jj=this.__internalSorting.length;j<jj;j++)if(this.__internalSorting[j].name===name){switch(this.__internalSorting[j].order){case"Ascending":sortElementChild.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-sort-asc");break;case"Descending":sortElementChild.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-sort-desc")}break}let resizeElement=document.createElement("div");resizeElement.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-resize-element"),this.__tableBorderWidth&&this.__tableBorderWidth>this.__resizeElementMinWidth&&TcHmi.StyleProvider.setSimpleElementStyle(resizeElement,{width:this.__tableBorderWidth+"px",right:-this.__tableBorderWidth+"px"}),sortElement.appendChild(sortElementChild),wrapper.appendChild(sortElement),wrapper.appendChild(resizeElement),headerCell.appendChild(wrapper),fragment.appendChild(headerCell)}headerRow[0].appendChild(fragment)}__updateTable(updateType){if(!(this.__data&&this.__rowNumbersHorizontalAlignment&&this.__rowNumbersVerticalAlignment&&void 0!==this.__rowHeight&&void 0!==this.__showRowNumbers&&this.__isAttached))return;this.__elementMessage?.remove(),this.__fillFlatData();let start=this.__scrollInfo.firstIndex-this.__scrollInfo.buffer;start=start>0?start:0;let end=this.__scrollInfo.firstIndex+this.__scrollInfo.rowCount+this.__scrollInfo.buffer;end=end<=this.__dataCount?end:this.__dataCount;let tableBody=this.__elementDataTableBody[0];switch(updateType){case 0:let containsHiddenRow=!1;if(this.__lockState&&!this.__isReadOnly){let lockedDataIndex=this.__originalIndexToDataIndex(this.__lockState.row),lockedRowNumber=this.__flatData.findIndex(element=>this.__compareIndices(element.index,lockedDataIndex));if(-1===lockedRowNumber)this.__lockState.rowElement.classList.add("hidden"),containsHiddenRow=!0;else if(lockedRowNumber<start)this.__lockState.rowElement.classList.add("hidden"),containsHiddenRow=!0,this.__createRow(lockedDataIndex,lockedRowNumber,this.__lockState.rowElement,this.__lockState.column);else if(lockedRowNumber>=end)this.__lockState.rowElement.classList.add("hidden"),containsHiddenRow=!0,this.__createRow(lockedDataIndex,lockedRowNumber,this.__lockState.rowElement,this.__lockState.column);else{let positionDifference=lockedRowNumber-start-this.__lockState.rowElement.rowIndex;if(0!==positionDifference){let referenceElement=this.__lockState.rowElement,elementsToSkip=[];if(positionDifference>0){for(let i=0;i<positionDifference&&referenceElement.nextElementSibling;i++)referenceElement=referenceElement.nextElementSibling,elementsToSkip.push(referenceElement);this.__lockState.rowElement.before(...elementsToSkip)}else{for(let i=0;i<-positionDifference&&referenceElement.previousElementSibling;i++)referenceElement=referenceElement.previousElementSibling,elementsToSkip.push(referenceElement);this.__lockState.rowElement.after(...elementsToSkip)}}this.__lockState.rowElement.classList.remove("hidden")}}let rowsToAdd=null,rowCounter=0;for(let i=start;i<end;i++&rowCounter++){let index=this.__flatData[i].index,existingRow=tableBody.children[rowCounter];existingRow&&existingRow.classList.contains("hidden")&&(existingRow=tableBody.children[++rowCounter]),existingRow?this.__createRow(index,i,existingRow,this.__lockState&&!this.__isReadOnly&&this.__compareIndices(this.__originalIndexToDataIndex(this.__lockState.row),index)?this.__lockState.column:void 0):(rowsToAdd||(rowsToAdd=document.createDocumentFragment()),rowsToAdd.appendChild(this.__createRow(index,i)))}for(rowsToAdd&&tableBody.appendChild(rowsToAdd);tableBody.childElementCount>(containsHiddenRow?rowCounter+1:rowCounter);){let row=tableBody.lastElementChild;if(this.__lockState&&!this.__isReadOnly&&row===this.__lockState.rowElement){if(!row.classList.contains("hidden")){row.classList.add("hidden");continue}row=row.previousElementSibling}if(!row)break;tableBody.removeChild(row)}break;case 1:for(this.__lockState&&this.__unlock();tableBody.lastChild;)tableBody.lastChild.remove();if(start>=end)return;let fragment=document.createDocumentFragment();for(let i=start;i<end;i++)fragment.appendChild(this.__createRow(this.__flatData[i].index,i));tableBody.appendChild(fragment);break;case 2:let oldStart=this.__scrollInfo.oldFirstIndex-this.__scrollInfo.buffer;oldStart=oldStart>0?oldStart:0;let oldEnd=this.__scrollInfo.oldFirstIndex+this.__scrollInfo.oldRowCount+this.__scrollInfo.buffer;oldEnd=oldEnd<=this.__dataCount?oldEnd:this.__dataCount;let discardedRows=[],rowOffset=0;for(let i=oldStart;i<start;i++){let row=tableBody.children[rowOffset];if(!row)break;if(this.__lockState&&row===this.__lockState.rowElement){if(rowOffset=1,!row.classList.contains("hidden")){row.classList.add("hidden");continue}if(row=row.nextElementSibling,!row)break}discardedRows.push(tableBody.removeChild(row))}rowOffset=0;for(let i=oldEnd-1;i>=end;i--){let row=tableBody.children[tableBody.childElementCount-(rowOffset+1)];if(!row)break;if(this.__lockState&&row===this.__lockState.rowElement){if(rowOffset=1,!row.classList.contains("hidden")){row.classList.add("hidden");continue}if(row=row.previousElementSibling,!row)break}discardedRows.push(tableBody.removeChild(row))}let bottomFragment=document.createDocumentFragment(),bottomFragmentStart=Math.max(oldEnd,start);for(let i=bottomFragmentStart;i<end;i++){let index=this.__flatData[i].index;bottomFragment.appendChild(this.__createRow(index,i,discardedRows.pop()))}let topFragment=document.createDocumentFragment(),topFragmentStart=Math.min(oldStart-1,end-1);for(let i=topFragmentStart;i>=start;i--){let index=this.__flatData[i].index;topFragment.insertBefore(this.__createRow(index,i,discardedRows.pop()),topFragment.firstChild)}if(this.__lockState&&!this.__isReadOnly){let lockedRowNumber=this.__flatData.findIndex(element=>this.__compareIndices(element.index,this.__lockState.row));if(lockedRowNumber<start)this.__elementDataTableBody.children().first().after(topFragment),this.__elementDataTableBody.append(bottomFragment);else if(lockedRowNumber>=end)this.__elementDataTableBody.prepend(topFragment),this.__elementDataTableBody.children().last().before(bottomFragment);else{let lockedRowIndexInTopFragment=lockedRowNumber-(topFragmentStart-(topFragment.childNodes.length-1));lockedRowIndexInTopFragment>=0&&lockedRowIndexInTopFragment<topFragment.childNodes.length?(this.__elementDataTableBody.children().first().removeClass("hidden").after(Array.prototype.slice.call(topFragment.childNodes,lockedRowIndexInTopFragment+1)),this.__elementDataTableBody.prepend(Array.prototype.slice.call(topFragment.childNodes,0,lockedRowIndexInTopFragment))):this.__elementDataTableBody.prepend(topFragment);let lockedRowIndexInBottomFragment=lockedRowNumber-bottomFragmentStart;lockedRowIndexInBottomFragment>=0&&lockedRowIndexInBottomFragment<bottomFragment.childNodes.length?(this.__elementDataTableBody.children().last().removeClass("hidden").before(Array.prototype.slice.call(bottomFragment.childNodes,0,lockedRowIndexInBottomFragment)),this.__elementDataTableBody.append(Array.prototype.slice.call(bottomFragment.childNodes,1))):this.__elementDataTableBody.append(bottomFragment)}}else this.__elementDataTableBody.prepend(topFragment),this.__elementDataTableBody.append(bottomFragment)}this.__setCheckboxRadioButtonSize(),0!==this.__data.length||this.__elementLoadingSpinner.isConnected||this.__addNoElementsMessage(),this.__scrollInfo.oldFirstIndex=this.__scrollInfo.firstIndex,this.__scrollInfo.oldRowCount=this.__scrollInfo.rowCount,this.__scrollInfo.updateScrollPosition&&this.__updateScrollPosition(),TcHmi.EventProvider.raise(this.__id+".onTableUpdated",{updateTableType:updateType})}__addNoElementsMessage(){this.__addLocalizedElement(this.__elementMessage,"NoElements"),this.__elementDataScroll.append(this.__elementMessage)}__updateScrollPosition(){this.__scrollInfo.updateScrollPosition&&this.__elementDataScroll[0].scrollHeight>this.__elementDataScroll[0].clientHeight&&(this.__elementDataScroll[0].scrollTop!==this.__scrollInfo.scrollTop&&(this.__elementDataScroll[0].scrollTop=this.__scrollInfo.scrollTop),this.__elementDataScroll[0].scrollLeft!==this.__scrollInfo.scrollLeft&&(this.__elementDataScroll[0].scrollLeft=this.__scrollInfo.scrollLeft,this.__elementHeaderScroll[0].scrollLeft=this.__scrollInfo.scrollLeft),this.__scrollInfo.updateScrollPosition=!1)}__onMousedown(event){if(0!==event.button)return;let combobox=event.target;for(;combobox&&combobox instanceof Element&&!combobox.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template");)combobox=combobox.parentElement;if(!(combobox instanceof HTMLDivElement))return;let cell=combobox.parentElement;cell instanceof HTMLTableCellElement&&this.__openCombobox(cell)}__onItemClick(event){if(!this.__selectedCombobox)return;if(!(event.target instanceof HTMLElement&&event.target.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-dropdown-element")))return;if(!0!==TcHmi.Access.checkAccess(this,"operate"))return;if(!this.getIsEnabled()||this.__isReadOnly)return;let rowElement=this.__selectedCombobox.cell.parentElement;if(!(rowElement instanceof HTMLTableRowElement))return;let index=parseInt(event.target.dataset.index||"",10),column=this.__selectedCombobox.column;if(!isNaN(index)&&column){let dataDefinitions=column.dataDefinitions;if("AutoDetectControl"===column.control&&isNamedColumn(column)&&this.__editorInfo){dataDefinitions=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__dataIndexToOriginalIndex(this.__selectedCombobox.row),column.name)).dataDefinitions}let dataDef=Array.isArray(dataDefinitions)?dataDefinitions[index]:void 0,comboboxContent=this.__selectedCombobox.cell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-select")[0];if(dataDef&&comboboxContent){comboboxContent.textContent=dataDef.text||"";let result=this.__modifyData(dataDef.value,this.__selectedCombobox.row,this.__internalColumns.indexOf(column),rowElement);if(result){if(this.__selectedCombobox.cell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),this.__indirectWrite);else if(result.needSorting)this.__filterAndSort(),this.__updateTable(0);else for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(internalColumn!==column&&internalColumn.name===column.name){let cell=rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}this.__oldData=this.__data?.copy()}}}this.__closeCombobox()}__openCombobox(cell){if(!this.__data)return;let columnIndex=parseInt(cell.dataset.column||"",10),column=this.__internalColumns[columnIndex],row=cell.dataset.row?.split(":").map(Number)??[-1];if(!column||!column.editable||isNaN(columnIndex)||!row)return;const rowElement=cell.parentElement;if(!(rowElement instanceof HTMLTableRowElement))return;let combobox=cell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template")[0],dataDefinitions=column.dataDefinitions;if("AutoDetectControl"===column.control&&isNamedColumn(column)&&this.__editorInfo){dataDefinitions=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__dataIndexToOriginalIndex(row),column.name)).dataDefinitions}let dropdown=this.__comboboxDropdowns[JSON.stringify(dataDefinitions)];if(dropdown||"AutoDetectControl"!==column.control||(this.__createDropDown(dataDefinitions),dropdown=this.__comboboxDropdowns[JSON.stringify(dataDefinitions)]),!combobox||!dropdown)return;let unpagedRow=row;if(row=this.__dataIndexToOriginalIndex(row),this.__compareIndices(row,[-1]))return;setTimeout(()=>{this.__lock(row,columnIndex,rowElement)},0);let value=this.__originalIndexToDataElement(unpagedRow,this.__data);isNamedColumn(column)&&(value=this.__readObjectProperty(value,column.name));for(let i=0,ii=dropdown.children.length;i<ii;i++){let item=dropdown.children[i];tchmi_equal(item.dataset.value,value,{...this.__comparisonOptions,convertPrimitives:!0})?item.classList.add("selected"):item.classList.remove("selected")}combobox.classList.add("active");let topMostLayerOptions={removeCb:data=>{document.removeEventListener("scroll",this.__resizeDropdownBoxCb,{capture:!0}),null!==this.__movedEventDestroyEvent&&(this.__movedEventDestroyEvent(),this.__movedEventDestroyEvent=null),combobox.classList.remove("active"),this.__selectedCombobox=null,this.__unlock()}};dropdown.classList.remove("drop-down-style-mobile"),topMostLayerOptions.dimBackground=!1,topMostLayerOptions.resizeCb=this.__resizeDropdownBoxCb,document.addEventListener("scroll",this.__resizeDropdownBoxCb,{capture:!0,passive:!0}),this.__movedEventDestroyEvent=TcHmi.EventProvider.register(this.__id+".onMoved",this.__resizeDropdownBoxCb),this.__selectedCombobox={cell,column,row:unpagedRow,combobox,dropdown},TcHmi.TopMostLayer.add(this,dropdown,topMostLayerOptions),this.__resizeDropdownBoxCb()}__closeCombobox(){this.__selectedCombobox&&TcHmi.TopMostLayer.remove(this,this.__selectedCombobox.dropdown)}__resizeDropdownBoxCb(){if(!this.__selectedCombobox)return;const viewportHeight=TcHmi.View.getViewportElementDimension()?.height??window.innerHeight,comboboxBCR=this.__selectedCombobox.combobox.getBoundingClientRect(),dropdownBCR=this.__selectedCombobox.dropdown.getBoundingClientRect(),style={top:comboboxBCR.top+comboboxBCR.height+"px",left:comboboxBCR.left+"px",right:null,"min-width":comboboxBCR.width+"px","max-height":viewportHeight-comboboxBCR.bottom+"px"};viewportHeight-comboboxBCR.bottom<dropdownBCR.height&&comboboxBCR.top>=dropdownBCR.height?(style.top=comboboxBCR.top-dropdownBCR.height+"px",style["max-height"]=comboboxBCR.top+"px",this.__selectedCombobox.dropdown.classList.add("above-control")):this.__selectedCombobox.dropdown.classList.remove("above-control"),window.innerWidth-comboboxBCR.left<dropdownBCR.width&&(style.left=comboboxBCR.left+comboboxBCR.width-dropdownBCR.width+"px"),TcHmi.StyleProvider.setSimpleElementStyle(this.__selectedCombobox.dropdown,style)}__createRow(dataIndex,row,rowToRecycle,lockedCell){if(!this.__data)throw new Error("Unable to create row without data");let dataElement=this.__originalIndexToDataElement(dataIndex,this.__data),oldDataIndex=[-1];if(rowToRecycle&&(oldDataIndex=rowToRecycle?.dataset.row?.split(":").map(Number)??[-1],this.__compareIndices(oldDataIndex,dataIndex)&&this.__oldData&&tchmi_equal(this.__originalIndexToDataElement(oldDataIndex,this.__oldData),dataElement,this.__comparisonOptions)))return rowToRecycle;let elementRow=rowToRecycle||document.createElement("tr"),rowData=dataIndex.length>1?dataIndex.join(":"):dataIndex[0].toString();elementRow.setAttribute("data-row",rowData),this.__setRowClasses(elementRow,dataIndex);for(let i=-1,ii=this.__internalColumns.length;i<ii;i++){let elementCell,value;if(rowToRecycle?elementCell=elementRow.getElementsByTagName("td")[i+1]:(elementCell=document.createElement("td"),elementRow.appendChild(elementCell)),elementCell.setAttribute("data-row",dataIndex.join(":")),this.__selectedCell&&this.__selectedCell.columnIndex===i?elementCell.classList.add("focused"):elementCell.classList.remove("focused"),i!==lockedCell){if(-1!==i){let internalColumn=this.__internalColumns[i];if(isNamedColumn(internalColumn)&&dataElement){if(value=this.__readObjectProperty(dataElement,internalColumn.name),this.__oldData){let oldElement=this.__originalIndexToDataElement(oldDataIndex,this.__oldData);if(this.__compareIndices(oldDataIndex,dataIndex)&&oldElement&&tchmi_equal(this.__readObjectProperty(oldElement,internalColumn.name),value,this.__comparisonOptions)&&0!==i)continue}}else if(value=dataElement,this.__compareIndices(oldDataIndex,dataIndex)&&this.__oldData&&tchmi_equal(this.__originalIndexToDataElement(oldDataIndex,this.__oldData),value,this.__comparisonOptions)&&0!==i)continue}if(!rowToRecycle){let pixelWidth=this.__columnWidths[i+1].pixelWidth,newCss={"min-width":pixelWidth+"px","max-width":pixelWidth+"px",height:this.__rowHeight+"px"};if(-1===i){switch(elementCell.setAttribute("class","TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers tchmi-box"),newCss.display=this.__showRowNumbers?"":"none",this.__rowNumbersHorizontalAlignment){case"Left":newCss["justify-content"]="flex-start";break;case"Right":newCss["justify-content"]="flex-end";break;default:newCss["justify-content"]="center"}switch(this.__rowNumbersVerticalAlignment){case"Top":newCss["align-items"]="flex-start";break;case"Bottom":newCss["align-items"]="flex-end";break;default:newCss["align-items"]="center"}TcHmi.StyleProvider.processContentPadding(elementCell,this.__rowNumbersCellPadding),TcHmi.StyleProvider.processTextColor(elementCell,this.__rowNumbersTextColor),TcHmi.StyleProvider.processBackgroundColor(elementCell,this.__rowNumbersBackgroundColor),TcHmi.StyleProvider.processFontFamily(elementCell,this.__rowNumbersFontFamily),TcHmi.StyleProvider.processFontSize(elementCell,this.__rowNumbersFontSize,this.__rowNumbersFontSizeUnit),TcHmi.StyleProvider.processFontStyle(elementCell,this.__rowNumbersFontStyle),TcHmi.StyleProvider.processFontWeight(elementCell,this.__rowNumbersFontWeight)}else{elementCell.setAttribute("class","TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell tchmi-box"),elementCell.setAttribute("data-column",i.toString());let internalColumn=this.__internalColumns[i];switch(isNamedColumn(internalColumn)&&elementCell.setAttribute("data-column-name",internalColumn.name),internalColumn.horizontalAlignment){case"Left":newCss["justify-content"]="flex-start";break;case"Center":newCss["justify-content"]="center";break;case"Right":newCss["justify-content"]="flex-end";break;default:newCss["justify-content"]=""}switch(internalColumn.verticalAlignment){case"Top":newCss["align-items"]="flex-start";break;case"Center":newCss["align-items"]="center";break;case"Bottom":newCss["align-items"]="flex-end";break;default:newCss["align-items"]=""}TcHmi.StyleProvider.processTextColor(elementCell,internalColumn.textColor),TcHmi.StyleProvider.processBackgroundColor(elementCell,internalColumn.cellBackground),TcHmi.StyleProvider.processFontFamily(elementCell,this.__gridFontFamily),TcHmi.StyleProvider.processFontSize(elementCell,this.__gridFontSize,this.__gridFontSizeUnit),TcHmi.StyleProvider.processFontStyle(elementCell,this.__gridFontStyle),TcHmi.StyleProvider.processFontWeight(elementCell,this.__gridFontWeight)}TcHmi.StyleProvider.setSimpleElementStyle(elementCell,newCss),TcHmi.StyleProvider.processBorderWidth(elementCell,{right:this.__tableBorderWidth,rightUnit:"px",bottom:this.__tableBorderWidth,bottomUnit:"px",top:0,left:0}),TcHmi.StyleProvider.processBorderStyle(elementCell,this.__tableBorderStyle),TcHmi.StyleProvider.processBorderColor(elementCell,this.__tableBorderColor)}if(-1!==i){let internalColumn=this.__internalColumns[i],result=this.__checkForIndirectWriteValue(value,dataIndex,i);this.__fillCell(elementCell,internalColumn,result.value,result.isPreparedValue),rowToRecycle||elementCell.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control")||TcHmi.StyleProvider.processContentPadding(elementCell,this.__cellContentPadding)}else{let rowNumber=row+(this.__rowNumbersStartNumber??1);elementCell.firstChild?elementCell.firstChild.nodeValue=rowNumber.toString():elementCell.textContent=rowNumber.toString()}}}return elementRow}__fillCell(elementCell,internalColumn,value,isPreparedValue=!1){elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",isPreparedValue);let editorInfo,columnControl=internalColumn.control,dataDefinitions=internalColumn.dataDefinitions,editable=internalColumn.editable;if("AutoDetectControl"===columnControl&&isNamedColumn(internalColumn)&&this.__editorInfo){let dataIndex=elementCell.dataset.row?.split(":").map(Number)??[-1],originalIndex=this.__dataIndexToOriginalIndex(dataIndex);editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,originalIndex,internalColumn.name);let result=this.__getColumnControlInfoByEditorInfo(editorInfo);dataDefinitions=result.dataDefinitions,columnControl=result.columnControl,editable=!1!==editable&&result.editable}switch(columnControl!==elementCell.getAttribute("control")&&(elementCell.textContent="",elementCell.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control"),TcHmi.StyleProvider.processContentPadding(elementCell,{left:0,right:0,top:0,bottom:0})),elementCell.setAttribute("control",columnControl),columnControl){case"CheckBox":let checkbox=elementCell.getElementsByTagName("input")[0],label=elementCell.getElementsByTagName("label")[0];if(!checkbox||!label){checkbox=document.createElement("input"),checkbox.setAttribute("type","checkbox");const newIdCB="checkbox-"+tchmi_create_guid();checkbox.setAttribute("id",newIdCB),checkbox.readOnly=this.__isReadOnly??!1,label=document.createElement("label"),label.setAttribute("for",newIdCB);let size=Math.min(this.__rowHeight||0,this.__columnWidths[elementCell.cellIndex].pixelWidth)-(this.__tableBorderWidth||0);TcHmi.StyleProvider.setSimpleElementStyle(label,{height:size+"px",width:size+"px"}),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control"),elementCell.textContent="",elementCell.appendChild(checkbox),elementCell.appendChild(label)}checkbox.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),checkbox.checked=TcHmi.ValueConverter.toBoolean(value,!1),elementCell.setAttribute("tabindex","0");break;case"TextBox":let input=elementCell.getElementsByTagName("input")[0];if(!input){input=document.createElement("input"),input.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-textbox","TcHmi_Controls_Beckhoff_TcHmiTreeView-input-field-margin"),input.setAttribute("type","text"),input.readOnly=this.__isReadOnly??!1,TcHmi.StyleProvider.processContentPadding(input,this.__cellContentPadding),elementCell.textContent="",elementCell.appendChild(input),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control");let notif=document.createElement("div");notif.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-input-invalid-notification"),"Right"===internalColumn.horizontalAlignment?notif.classList.add("orientation-left"):notif.classList.remove("orientation-left"),notif.textContent="!",elementCell.appendChild(notif)}TcHmi.StyleProvider.processBackgroundColor(input,internalColumn.cellBackground),TcHmi.StyleProvider.processTextColor(input,internalColumn.textColor),input.style.textAlign=(internalColumn.horizontalAlignment??"").toLowerCase(),input.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),editable||elementCell.setAttribute("tabindex","0");let textboxText=this.__executeFormatFunction(internalColumn.format,value,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(value,internalColumn)})??"";internalColumn.ignoreEscapeSequences||(textboxText=tchmi_decode_control_characters(textboxText,{newlineToSpace:!0})),input.value=textboxText,this.__validateTextValue(input,internalColumn.maxTextLength);break;case"TextBlock":let textblock=elementCell.getElementsByTagName("label")[0];textblock||(textblock=document.createElement("label"),textblock.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-textblock"),elementCell.textContent="",elementCell.appendChild(textblock));let textblockText=this.__executeFormatFunction(internalColumn.format,value,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(value,internalColumn)})??"";internalColumn.ignoreEscapeSequences||(textblockText=tchmi_decode_control_characters(textblockText)),textblock.textContent=tchmi_decode_control_characters(textblockText),elementCell.setAttribute("tabindex","0"),elementCell.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled");break;case"Image":let imageDef,image=elementCell.getElementsByTagName("img")[0];image||(image=document.createElement("img"),elementCell.appendChild(image)),dataDefinitions&&Array.isArray(dataDefinitions)&&(imageDef=dataDefinitions.find(dataDef=>tchmi_equal(dataDef.value,value,{...this.__comparisonOptions,convertPrimitives:!0}))),image.src=tchmi_path(imageDef?.source??""),image.alt=imageDef?.text??"",image.style.width=imageDef&&void 0!==imageDef.width&&null!==imageDef.width?imageDef.width+"px":"",image.style.height=imageDef&&void 0!==imageDef.height&&null!==imageDef.height?imageDef.height+"px":"",elementCell.setAttribute("tabindex","0"),elementCell.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled");break;case"ComboBox":let comboboxDef,divCombobox=elementCell.getElementsByTagName("div")[0],divSelect=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-select")[0];if(!divCombobox||!divSelect){divCombobox=document.createElement("div"),divCombobox.setAttribute("class","TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template tchmi-datagrid-combobox-template tchmi-box"),divSelect=document.createElement("div"),divSelect.setAttribute("class","TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-select tchmi-datagrid-combobox-template-select tchmi-box"),TcHmi.StyleProvider.processContentPadding(divSelect,this.__cellContentPadding);let svg=$('<svg\n class="TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-button tchmi-box"\n version="1.1"\n xmlns="http://www.w3.org/2000/svg"\n x="0px"\n y="0px"\n width="30px"\n height="100%"\n viewBox="0 0 30 30"\n enable-background="new 0 0 30 30"\n xml:space="preserve"\n >\n <polyline\n class="TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-button-arrow"\n stroke-width="2"\n stroke-linecap="round"\n stroke-linejoin="round"\n points="22.865,12.5 15,20.366 7.135,12.5"\n />\n </svg>')[0];divCombobox.appendChild(divSelect),divCombobox.appendChild(svg),elementCell.textContent="",elementCell.appendChild(divCombobox),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control")}switch(internalColumn.horizontalAlignment){case"Left":divSelect.style.justifyContent="flex-start";break;case"Center":divSelect.style.justifyContent="center";break;case"Right":divSelect.style.justifyContent="flex-end";break;default:divSelect.style.justifyContent=""}switch(internalColumn.verticalAlignment){case"Top":divSelect.style.alignItems="flex-start";break;case"Center":divSelect.style.alignItems="center";break;case"Bottom":divSelect.style.alignItems="flex-end";break;default:divSelect.style.alignItems=""}dataDefinitions&&Array.isArray(dataDefinitions)&&(comboboxDef=dataDefinitions.find(dataDef=>tchmi_equal(dataDef.value,value,{...this.__comparisonOptions,convertPrimitives:!0})));let selectedText=this.__executeFormatFunction(internalColumn.format,comboboxDef?.text,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(value,internalColumn)})??"";"string"!=typeof selectedText||internalColumn.ignoreEscapeSequences||(selectedText=tchmi_decode_control_characters(selectedText)),divSelect.textContent=selectedText,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),elementCell.setAttribute("tabindex","0");break;case"PasswordInput":let passwordInput=elementCell.getElementsByTagName("input")[0];if(!passwordInput){passwordInput=document.createElement("input"),passwordInput.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-password-input","TcHmi_Controls_Beckhoff_TcHmiTreeView-input-field-margin"),passwordInput.setAttribute("type","password"),passwordInput.readOnly=this.__isReadOnly??!1,TcHmi.StyleProvider.processContentPadding(passwordInput,this.__cellContentPadding),elementCell.textContent="",elementCell.appendChild(passwordInput),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control");let notif=document.createElement("div");notif.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-input-invalid-notification"),"Right"===internalColumn.horizontalAlignment?notif.classList.add("orientation-left"):notif.classList.remove("orientation-left"),notif.textContent="!",elementCell.appendChild(notif)}TcHmi.StyleProvider.processBackgroundColor(passwordInput,internalColumn.cellBackground),TcHmi.StyleProvider.processTextColor(passwordInput,internalColumn.textColor),passwordInput.style.textAlign=(internalColumn.horizontalAlignment??"").toLowerCase(),passwordInput.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),editable||elementCell.setAttribute("tabindex","0");let passwordText=this.__executeFormatFunction(internalColumn.format,value,{schema:this.__generateSchemaByDataDefintions(value,internalColumn)});passwordInput.value=passwordText??"",this.__validateTextValue(passwordInput,internalColumn.maxTextLength);break;case"NumericInput":let numericInput=elementCell.getElementsByTagName("input")[0],numericUnitElement=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeview-input-unit")[0];numericInput||(numericInput=document.createElement("input"),numericInput.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-numeric-input","TcHmi_Controls_Beckhoff_TcHmiTreeView-input-field-margin"),numericInput.setAttribute("type","text"),numericInput.setAttribute("data-tchmi-input-mode","decimal"),numericInput.readOnly=this.__isReadOnly??!1,TcHmi.StyleProvider.processContentPadding(numericInput,this.__cellContentPadding),elementCell.textContent="",elementCell.appendChild(numericInput),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control")),TcHmi.StyleProvider.processBackgroundColor(numericInput,internalColumn.cellBackground),TcHmi.StyleProvider.processTextColor(numericInput,internalColumn.textColor),numericInput.style.textAlign=(internalColumn.horizontalAlignment??"").toLowerCase(),numericInput.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),editable||elementCell.setAttribute("tabindex","0"),numericInput.setCustomValidity("");let numericValue=Number(value),valueString=null;editorInfo?.schema?numericValue=TcHmi.ValueConverter.toSchemaType(value,editorInfo.schema)??0:dataDefinitions&&!Array.isArray(dataDefinitions)?(isNaN(numericValue)||(void 0!==dataDefinitions.minValue&&numericValue<dataDefinitions.minValue||void 0!==dataDefinitions.maxValue&&numericValue>dataDefinitions.maxValue)&&(TCHMI_DESIGNER||numericInput.setCustomValidity("invalid")),void 0!==dataDefinitions.decimalDigits&&(valueString=this.__applyDecimalDigits(numericValue,dataDefinitions.decimalDigits,dataDefinitions.decimalPrecisionMode)),void 0!==dataDefinitions.minValue?(void 0!==dataDefinitions.decimalDigits?numericInput.setAttribute("data-tchmikeyboard-min",this.__ceilToDecimals(dataDefinitions.minValue,dataDefinitions.decimalDigits)):numericInput.setAttribute("data-tchmikeyboard-min",dataDefinitions.minValue.toString(10)),numericValue<dataDefinitions.minValue&&(TCHMI_DESIGNER||numericInput.setCustomValidity("invalid"))):numericInput.removeAttribute("data-tchmikeyboard-min"),void 0!==dataDefinitions.maxValue?(void 0!==dataDefinitions.decimalDigits?numericInput.setAttribute("data-tchmikeyboard-max",this.__floorToDecimals(dataDefinitions.maxValue,dataDefinitions.decimalDigits)):numericInput.setAttribute("data-tchmikeyboard-max",dataDefinitions.maxValue.toString(10)),numericValue>dataDefinitions.maxValue&&(TCHMI_DESIGNER||numericInput.setCustomValidity("invalid"))):numericInput.removeAttribute("data-tchmikeyboard-max"),void 0!==dataDefinitions.unit?(numericUnitElement||(numericUnitElement=document.createElement("div"),numericUnitElement.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeview-input-unit"),elementCell.append(numericUnitElement)),numericUnitElement.textContent=dataDefinitions.unit,this.__asyncWorkData["Controls.Beckhoff.TcHmiTreeView.triggerProcessUnitSize"]=!0,this.__requestAsyncWork()):numericUnitElement&&numericUnitElement.remove()):(isNaN(numericValue)&&(numericValue=0),numericUnitElement&&numericUnitElement.remove()),valueString||(valueString=this.__executeFormatFunction(internalColumn.format,numericValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(numericValue,internalColumn)})??""),null===value?(valueString="",numericInput.setCustomValidity("")):isNaN(numericValue)&&(valueString="",TCHMI_DESIGNER||numericInput.setCustomValidity("invalid")),numericInput.value=valueString;break;case"SpinboxInput":let spinboxDiv=elementCell.getElementsByTagName("div")[0],spinboxInput=elementCell.getElementsByTagName("input")[0],spinboxUnitElement=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeview-input-unit")[0],spinboxButtonMinus=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-spinbox-button")[0],spinboxButtonPlus=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-spinbox-button")[1];spinboxDiv&&spinboxInput&&spinboxButtonMinus&&spinboxButtonPlus||(spinboxDiv=document.createElement("div"),spinboxDiv.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-spinbox-input"),spinboxDiv.style.gridTemplateColumns="var(--row-height) auto var(--row-height)",spinboxInput=document.createElement("input"),spinboxInput.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-numeric-input"),spinboxInput.setAttribute("type","text"),spinboxInput.style.gridColumn="2",spinboxInput.readOnly=this.__isReadOnly??!1,TcHmi.StyleProvider.processContentPadding(spinboxInput,this.__cellContentPadding),spinboxButtonMinus=document.createElement("button"),spinboxButtonMinus.tabIndex=-1,spinboxButtonMinus.textContent="-",spinboxButtonMinus.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-button","TcHmi_Controls_Beckhoff_TcHmiTreeView-spinbox-button"),spinboxButtonMinus.style.gridColumn="1",spinboxButtonPlus=document.createElement("button"),spinboxButtonPlus.tabIndex=-1,spinboxButtonPlus.textContent="+",spinboxButtonPlus.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-button","TcHmi_Controls_Beckhoff_TcHmiTreeView-spinbox-button"),spinboxButtonPlus.style.gridColumn="3",spinboxDiv.appendChild(spinboxButtonMinus),spinboxDiv.appendChild(spinboxInput),spinboxDiv.appendChild(spinboxButtonPlus),elementCell.textContent="",elementCell.appendChild(spinboxDiv),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control")),TcHmi.StyleProvider.processBackgroundColor(spinboxInput,internalColumn.cellBackground),TcHmi.StyleProvider.processTextColor(spinboxInput,internalColumn.textColor),spinboxInput.style.textAlign=(internalColumn.horizontalAlignment??"").toLowerCase(),spinboxInput.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),editable||elementCell.setAttribute("tabindex","0"),spinboxInput.setCustomValidity("");let spinboxValue=Number(value),spinboxValueString=null;if(dataDefinitions&&!Array.isArray(dataDefinitions))if(void 0!==dataDefinitions.minValue?(void 0!==dataDefinitions.decimalDigits?spinboxInput.setAttribute("data-tchmikeyboard-min",this.__ceilToDecimals(dataDefinitions.minValue,dataDefinitions.decimalDigits)):spinboxInput.setAttribute("data-tchmikeyboard-min",dataDefinitions.minValue.toString(10)),spinboxValue<dataDefinitions.minValue&&(TCHMI_DESIGNER||spinboxInput.setCustomValidity("invalid"))):spinboxInput.removeAttribute("data-tchmikeyboard-min"),void 0!==dataDefinitions.maxValue?(void 0!==dataDefinitions.decimalDigits?spinboxInput.setAttribute("data-tchmikeyboard-max",this.__floorToDecimals(dataDefinitions.maxValue,dataDefinitions.decimalDigits)):spinboxInput.setAttribute("data-tchmikeyboard-max",dataDefinitions.maxValue.toString(10)),spinboxValue>dataDefinitions.maxValue&&(TCHMI_DESIGNER||spinboxInput.setCustomValidity("invalid"))):spinboxInput.removeAttribute("data-tchmikeyboard-max"),void 0!==dataDefinitions.decimalDigits?(spinboxValueString=this.__applyDecimalDigits(spinboxValue,dataDefinitions.decimalDigits,dataDefinitions.decimalPrecisionMode),spinboxInput.setAttribute("data-tchmi-input-mode","decimal")):spinboxInput.setAttribute("data-tchmi-input-mode","numeric"),void 0!==dataDefinitions.unit){const unit=dataDefinitions.unit;spinboxUnitElement||(spinboxUnitElement=document.createElement("div"),spinboxUnitElement.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeview-input-unit"),spinboxDiv.append(spinboxUnitElement)),spinboxUnitElement.style.marginRight=this.__rowHeight+"px",spinboxUnitElement.textContent=unit,this.__asyncWorkData["Controls.Beckhoff.TcHmiTreeView.triggerProcessUnitSize"]=!0,this.__requestAsyncWork()}else spinboxUnitElement&&spinboxUnitElement.remove();else spinboxUnitElement&&spinboxUnitElement.remove(),spinboxInput.setAttribute("data-tchmi-input-mode","decimal");spinboxValueString||(spinboxValueString=this.__executeFormatFunction(internalColumn.format,spinboxValue,{schema:this.__generateSchemaByDataDefintions(spinboxValue,internalColumn)})??""),null===value?(spinboxValueString="",spinboxInput.setCustomValidity("")):isNaN(spinboxValue)&&(spinboxValueString="",TCHMI_DESIGNER||spinboxInput.setCustomValidity("invalid")),spinboxInput.value=spinboxValueString;break;case"DateTimeInput":let dateTimeDiv=elementCell.getElementsByTagName("div")[0],dateTimeInput=elementCell.getElementsByTagName("input")[0],dateTimeButton=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-date-time-button")[0];if(dateTimeDiv&&dateTimeInput&&dateTimeButton||(dateTimeDiv=document.createElement("div"),dateTimeDiv.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-date-time-input"),dateTimeDiv.style.gridTemplateColumns="auto var(--row-height)",dateTimeInput=document.createElement("input"),dateTimeInput.setAttribute("type","text"),dateTimeInput.readOnly=this.__isReadOnly??!1,TcHmi.StyleProvider.processContentPadding(dateTimeInput,this.__cellContentPadding),dateTimeButton=document.createElement("button"),dateTimeButton.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-button","TcHmi_Controls_Beckhoff_TcHmiTreeView-date-time-button"),dateTimeButton.style.gridColumn="2",dateTimeDiv.appendChild(dateTimeInput),dateTimeDiv.appendChild(dateTimeButton),elementCell.textContent="",elementCell.appendChild(dateTimeDiv),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control")),TcHmi.StyleProvider.processBackgroundColor(dateTimeInput,internalColumn.cellBackground),TcHmi.StyleProvider.processTextColor(dateTimeInput,internalColumn.textColor),dateTimeInput.style.textAlign=(internalColumn.horizontalAlignment??"").toLowerCase(),dateTimeInput.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),editable||elementCell.setAttribute("tabindex","0"),this.__REGEX_ISO_8601_DATETIME.test(value)?dateTimeInput.value=this.__executeFormatFunction(internalColumn.format,value,{schema:this.__generateSchemaByDataDefintions(value,internalColumn)})??"":dateTimeInput.value="",!this.__dateTimePickerInstance){let dateTimePicker=TcHmi.Controls.get(this.getId()+".TcHmiDateTimePicker");this.__dateTimePickerInstance=dateTimePicker||TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiDateTimePicker",this.getId()+".TcHmiDateTimePicker",{"data-tchmi-is-read-only":this.__isReadOnly??!1},this)}this.__dateTimePickerInstance?(this.__element[0].append(this.__dateTimePickerInstance.getElement()[0]),this.__lockState?.targetElement&&this.__isReadOnly&&elementCell.contains(this.__lockState.targetElement)&&this.__dateTimePickerInstance.setValue(dateTimeInput.value)):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,"Unable to create TcHmiDateTimePicker instance.");break;case"TimespanInput":let timespanDiv=elementCell.getElementsByTagName("div")[0],timespanInput=elementCell.getElementsByTagName("input")[0],timespanButton=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-timespan-button")[0];if(timespanDiv||(timespanDiv=document.createElement("div"),timespanDiv.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-timespan-input"),timespanDiv.style.gridTemplateColumns="auto var(--row-height)",timespanInput=document.createElement("input"),timespanInput.setAttribute("type","text"),timespanInput.readOnly=this.__isReadOnly??!1,TcHmi.StyleProvider.processContentPadding(timespanInput,this.__cellContentPadding),timespanButton=document.createElement("button"),timespanButton.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-button","TcHmi_Controls_Beckhoff_TcHmiTreeView-timespan-button"),timespanButton.style.gridColumn="2",timespanDiv.appendChild(timespanInput),timespanDiv.appendChild(timespanButton),elementCell.appendChild(timespanDiv),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control")),TcHmi.StyleProvider.processBackgroundColor(timespanInput,internalColumn.cellBackground),TcHmi.StyleProvider.processTextColor(timespanInput,internalColumn.textColor),timespanInput.style.textAlign=(internalColumn.horizontalAlignment??"").toLowerCase(),timespanInput.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),editable||elementCell.setAttribute("tabindex","0"),this.__REGEX_ISO_8601_TIMESPAN.test(value)?timespanInput.value=this.__executeFormatFunction(internalColumn.format,value,{schema:this.__generateSchemaByDataDefintions(value,internalColumn)})??"":timespanInput.value="",!this.__timespanPickerInstance){let timespanPicker=TcHmi.Controls.get(this.getId()+".TcHmiTimespanPicker");this.__timespanPickerInstance=timespanPicker||TcHmi.ControlFactory.createEx("TcHmi.Controls.Beckhoff.TcHmiTimespanPicker",this.getId()+".TcHmiTimespanPicker",{"data-tchmi-is-read-only":this.__isReadOnly??!1},this)}this.__timespanPickerInstance?(this.__element[0].append(this.__timespanPickerInstance.getElement()[0]),this.__lockState?.targetElement&&this.__isReadOnly&&elementCell.contains(this.__lockState.targetElement)&&this.__timespanPickerInstance.setValue(timespanInput.value)):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,"Unable to create TcHmiTimespanPicker instance.");break;case"Button":case"ToggleButton":let button=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-button")[0];switch(button||(button=document.createElement("button"),"Button"===internalColumn.control&&button.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-button","TcHmi_Controls_Beckhoff_TcHmiTreeView-simple-button"),"ToggleButton"===internalColumn.control&&button.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-button","TcHmi_Controls_Beckhoff_TcHmiTreeView-toggle-button"),elementCell.textContent="",elementCell.appendChild(button),TcHmi.StyleProvider.processContentPadding(button,this.__cellContentPadding),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control")),TcHmi.StyleProvider.processBackgroundColor(button,internalColumn.cellBackground),TcHmi.StyleProvider.processTextColor(button,internalColumn.textColor),internalColumn.horizontalAlignment){case"Left":button.style.justifyContent="flex-start";break;case"Center":button.style.justifyContent="center";break;case"Right":button.style.justifyContent="flex-end";break;default:button.style.justifyContent=""}switch(internalColumn.verticalAlignment){case"Top":button.style.alignItems="flex-start";break;case"Center":button.style.alignItems="center";break;case"Bottom":button.style.alignItems="flex-end";break;default:button.style.alignItems=""}elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable);let buttonText="";dataDefinitions&&!Array.isArray(dataDefinitions)&&(buttonText=dataDefinitions.text??""),button.textContent=buttonText,button.classList.toggle("down",TcHmi.ValueConverter.toBoolean(value,!1));break;case"ToggleSwitch":let toggleSwitch=elementCell.getElementsByTagName("input")[0];if(!toggleSwitch){toggleSwitch=document.createElement("input"),toggleSwitch.setAttribute("type","checkbox"),toggleSwitch.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-toggle-switch");const newIdCB="toggleswitch-"+tchmi_create_guid();toggleSwitch.setAttribute("id",newIdCB),toggleSwitch.readOnly=this.__isReadOnly??!1;let label=document.createElement("label");label.setAttribute("for",newIdCB);let stateIndicator=document.createElement("div");label.appendChild(stateIndicator);let size=Math.min(this.__rowHeight||0,this.__columnWidths[elementCell.cellIndex].pixelWidth)-(this.__tableBorderWidth||0);size>(this.__columnWidths[elementCell.cellIndex].pixelWidth-(this.__tableBorderWidth||0))/2&&(size=(this.__columnWidths[elementCell.cellIndex].pixelWidth-(this.__tableBorderWidth||0))/2),TcHmi.StyleProvider.setSimpleElementStyle(label,{height:size+"px",width:2*size+"px"}),label.style.borderRadius=size/2+"px",elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control"),elementCell.textContent="",elementCell.appendChild(toggleSwitch),elementCell.appendChild(label)}toggleSwitch.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),toggleSwitch.checked=TcHmi.ValueConverter.toBoolean(value,!1),elementCell.setAttribute("tabindex","0");break;case"RadioButton":let radioButton=elementCell.getElementsByTagName("input")[0];if(!radioButton){radioButton=document.createElement("input"),radioButton.setAttribute("type","radio");const newIdCB="radio-"+tchmi_create_guid();radioButton.setAttribute("id",newIdCB),radioButton.readOnly=this.__isReadOnly??!1;let label=document.createElement("label");label.setAttribute("for",newIdCB);let size=Math.min(this.__rowHeight||0,this.__columnWidths[elementCell.cellIndex].pixelWidth)-(this.__tableBorderWidth||0);TcHmi.StyleProvider.setSimpleElementStyle(label,{height:size+"px",width:size+"px"}),label.style.borderRadius=size/2+"px",elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control"),elementCell.textContent="",elementCell.appendChild(radioButton),elementCell.appendChild(label)}radioButton.disabled=!editable,elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),radioButton.checked=TcHmi.ValueConverter.toBoolean(value,!1),elementCell.setAttribute("tabindex","0");break;case"HTMLElement":if(!(value instanceof HTMLElement))break;elementCell.textContent="",elementCell.append(value),elementCell.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control"),elementCell.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-cell-disabled",!editable),editable||elementCell.setAttribute("tabindex","0");break;default:this.__type===TcHmiTreeView.#tchmiFQN&&(elementCell.textContent=void 0!==value?value:""),elementCell.setAttribute("tabindex","0")}if(internalColumn===this.__internalColumns[0]&&this.__rowHeight&&this.__hierarchicalDataProperty&&this.__data){let originalIndex=elementCell.dataset.row?.split(":").map(Number)??[-1],expandIcon=elementCell.getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand")[0];expandIcon||(expandIcon=document.createElement("div"),expandIcon.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand"),elementCell.prepend(expandIcon));let oldGroupLines=elementCell.querySelector(".group-lines");oldGroupLines?.remove();const treeviewLevel=originalIndex.length-1;let dataIndex=[...originalIndex];this.__pagingInfo.usePaging?dataIndex=this.__originalIndexToDataIndex(originalIndex):this.__filterSortMap&&(dataIndex=this.__originalIndexToFilterMapElement(originalIndex,this.__filterSortMap));const groupLines=document.createElement("span");groupLines.classList.add("group-lines");for(let level=0;level<treeviewLevel;++level){const groupLine=document.createElement("span");groupLine.classList.add("group-line"),level===treeviewLevel-1&&0===dataIndex[dataIndex.length-1]&&groupLine.classList.add("group-line-first"),groupLines.append(groupLine)}elementCell.prepend(groupLines),expandIcon.setAttribute("tchmi-treeview-level",treeviewLevel.toString());let dataElement=this.__originalIndexToDataElement(originalIndex,this.__data);dataElement?.[this.__hierarchicalDataProperty]?.length>0?(this.__compareIndices(dataIndex,this.__lastExpandedOrCollapsed??[-1])||expandIcon.classList.add("animation-lock"),expandIcon.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand-icon"),expandIcon.setAttribute("tabIndex","0")):(expandIcon.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand-icon"),expandIcon.removeAttribute("tabIndex"));let label=elementCell.getElementsByTagName("label")[0];if(label)switch(internalColumn.horizontalAlignment){case"Center":label.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-label-first-column-horizontal-center"),label.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-label-first-column-horizontal-right");break;case"Right":label.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-label-first-column-horizontal-center"),label.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-label-first-column-horizontal-right");break;default:label.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-label-first-column-horizontal-center"),label.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-label-first-column-horizontal-right")}}}__validateTextValue(input,maxTextLength){return void 0!==maxTextLength&&input.value&&input.value.length>maxTextLength?(this.__addLocalizedValidityElement(input,"MaxTextLengthReached"),!1):(this.__removeLocalizedValidityElement(input),!0)}__resizeColumn(columnIndex,newWidth,override=!1){(this.__columnWidths[columnIndex].resizable||override)&&(newWidth!==this.__columnWidths[columnIndex].width||override)&&(this.__columnWidths[columnIndex].width=newWidth,this.__recalcAllColumnWidths(override))}__expandRowElement(rowElement){if(!this.__data||!this.__hierarchicalDataProperty)return;let index=rowElement.dataset.row,rowElementIndex=index?.split(":").map(Number)??[-1],rowDataSrcElement=this.__originalIndexToDataElement(rowElementIndex,this.__data);if(rowDataSrcElement&&rowDataSrcElement[this.__hierarchicalDataProperty]?.length>0){if(this.__pagingInfo.usePaging&&(index=this.__dataIndexToOriginalIndex(rowElementIndex).join(":")),index?.endsWith(":"))return;rowElement.classList.add("expanded");const expandIcon=rowElement.querySelector(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand-icon");expandIcon&&expandIcon.classList.remove("animation-lock"),-1===this.__expandedElements.findIndex(x=>x.index===index)&&void 0!==index&&(this.__expandedElements.push({index}),TcHmi.EventProvider.raise(this.__id+".onElementExpanded",{index:[...rowElementIndex]})),this.__lastExpandedOrCollapsed=[...rowElementIndex],this.__updatePaging(!0),this.__updateTable(0),this.__recalcAllColumnWidths()}}__collapseRowElement(rowElement){if(!this.__data||!this.__hierarchicalDataProperty)return;let index=rowElement.dataset.row,rowElementIndex=index?.split(":").map(Number)??[-1],rowDataSrcElement=this.__originalIndexToDataElement(rowElementIndex,this.__data);if(rowDataSrcElement&&rowDataSrcElement[this.__hierarchicalDataProperty]?.length>0&&(this.__pagingInfo.usePaging&&(index=this.__dataIndexToOriginalIndex(rowElementIndex).join(":")),index)){for(let i=0;i<this.__expandedElements.length;i++)if(this.__expandedElements[i].index.startsWith(index)){const expandedIndex=this.__expandedElements.findIndex(x=>x===this.__expandedElements[i]);if(-1!==expandedIndex){let removedElement=this.__expandedElements.splice(expandedIndex,1);i--,TcHmi.EventProvider.raise(this.__id+".onElementCollapsed",{index:removedElement[0].index.split(":").map(Number)??[-1]})}}this.__lastExpandedOrCollapsed=[...rowElementIndex],rowElement.classList.remove("expanded");const expandIcon=rowElement.querySelector(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand-icon");expandIcon&&expandIcon.classList.remove("animation-lock"),this.__pagingInfo.usePaging&&this.__updatePaging(!0),this.__updateTable(0),this.__recalcAllColumnWidths()}}__onRowClick(event){if(!(event.target instanceof HTMLElement)||!event.target.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers")&&!event.target.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand"))return;let element=event.target,row=event.target.parentElement;element.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand")&&(row=row?.parentElement??null),row&&(row.classList.contains("expanded")?this.__collapseRowElement(row):this.__expandRowElement(row))}__onColumnMouseDown(event){if(0!==event.button)return;if(!(event.target instanceof HTMLElement&&event.target.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-resize-element")))return;let targetCell=event.target?.closest("th");if(!targetCell)return;let boundingRect=targetCell.getBoundingClientRect();this.__draggingInfo.isDragging=!0,this.__draggingInfo.columnIndex=targetCell.cellIndex,this.__draggingInfo.startingPoint=boundingRect.left,this.__draggingInfo.offset=boundingRect.width-(event.clientX-boundingRect.left)}__onColumnMouseMove(event){if(!this.__draggingInfo.isDragging||null===this.__draggingInfo.startingPoint||null===this.__draggingInfo.offset||null===this.__draggingInfo.columnIndex)return;if(!this.getIsEnabled())return;if(!TcHmi.Access.checkAccess(this,"operate"))return;let newWidth=event.clientX-this.__draggingInfo.startingPoint+this.__draggingInfo.offset;if("%"===this.__columnWidths[this.__draggingInfo.columnIndex].widthUnit){let elementWidth=this.__element[0].clientWidth;0!==this.__draggingInfo.columnIndex&&this.__showRowNumbers&&(elementWidth-=this.__columnWidths[0].pixelWidth),newWidth=newWidth/elementWidth*100}this.__resizeColumn(this.__draggingInfo.columnIndex,newWidth),this.__storage?.set("columnWidths",this.__columnWidths.map(w=>w.width))}__onColumnMouseUp(){if(this.__draggingInfo.isDragging=!1,this.__draggingInfo.columnIndex=null,this.__draggingInfo.startingPoint=null,this.__draggingInfo.offset=null,!this.__lockState)return;let columnDefinition=this.__internalColumns[this.__lockState.column],columnControl=columnDefinition.control;if("AutoDetectControl"===columnControl&&isNamedColumn(columnDefinition)&&this.__editorInfo){columnControl=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__dataIndexToOriginalIndex(this.__lockState.row),columnDefinition.name)).columnControl}"CheckBox"!==columnControl&&"ToggleSwitch"!==columnControl&&"RadioButton"!==columnControl||this.__unlock()}__onColumnMouseDblClick(event){if(!(event.target instanceof HTMLElement&&event.target.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-resize-element")))return;let headerCell=$(event.target).closest("th"),index=headerCell[0].cellIndex;if(!this.__columnWidths[index].resizable)return;let dataCells=this.__elementDataTableBody.find(`td:nth-child(${index+1})`);headerCell.css({"min-width":"0","max-width":"none"}),dataCells.css({"min-width":"0","max-width":"none"});let cellPaddingLeft="",cellPaddingRight="",isCombobox=index>0&&"ComboBox"===this.__internalColumns[index-1].control;isCombobox&&(dataCells.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-select").css({position:"static"}),cellPaddingLeft=dataCells.css("padding-left"),cellPaddingRight=dataCells.css("padding-right"),dataCells.css({"padding-left":"0","padding-right":"0"}));let isTextbox=index>0&&"TextBox"===this.__internalColumns[index-1].control;if(isTextbox){let inputs=dataCells.find("input");inputs.css({width:"0",position:"static"}),inputs.each((index,element)=>{element.style.width=element.scrollWidth+"px"}),cellPaddingLeft=dataCells.css("padding-left"),cellPaddingRight=dataCells.css("padding-right"),dataCells.css({"padding-left":"0","padding-right":"0"})}let headerCellWidth=headerCell[0].offsetWidth,dataCellWidth=dataCells[0].offsetWidth;isCombobox&&(dataCellWidth+=dataCells[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-button")[0].clientWidth,dataCells.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-select").css({position:""}),dataCells.css({"padding-left":cellPaddingLeft,"padding-right":cellPaddingRight})),isTextbox&&(dataCells.find("input").css({width:"",position:""}),dataCells.css({"padding-left":cellPaddingLeft,"padding-right":cellPaddingRight})),headerCell.css({"min-width":"","max-width":""}),dataCells.css({"min-width":"","max-width":"",display:""});let newWidth=headerCellWidth>dataCellWidth?headerCellWidth:dataCellWidth;if("%"===this.__columnWidths[index].widthUnit){let elementWidth=this.__element[0].clientWidth;0!==this.__draggingInfo.columnIndex&&this.__showRowNumbers&&(elementWidth-=this.__columnWidths[0].pixelWidth),newWidth=newWidth/elementWidth*100}this.__resizeColumn(index,newWidth,!0),this.__storage?.set("columnWidths",this.__columnWidths.map(w=>w.width))}__onSortClick(event){let sortElement=event.target;for(;sortElement instanceof HTMLElement&&!sortElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-sort-element")&&!sortElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers");){if(sortElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-resize-element"))return;sortElement=sortElement.parentElement}sortElement instanceof HTMLElement&&this.__modifySorting(sortElement,event.shiftKey)}__onSortTouchStart(event){for(let i=0,ii=event.changedTouches.length;i<ii;i++){let touch=event.changedTouches[i],sortElement=touch.target;for(;sortElement instanceof HTMLElement&&!sortElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-sort-element")&&!sortElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers");)sortElement=sortElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-resize-element")?null:sortElement.parentElement;if(!(sortElement instanceof HTMLElement))continue;let touchInfo={touchId:touch.identifier,timeoutId:null,sortElement,clientX:touch.clientX,clientY:touch.clientY};this.__sortTouches.push(touchInfo),touchInfo.timeoutId=window.setTimeout(()=>{touchInfo.timeoutId=null,this.__modifySorting(touchInfo.sortElement,!0)},300)}}__onSortTouchMove(event){for(let i=0,ii=event.changedTouches.length;i<ii;i++){let touch=event.changedTouches[i],touchIndex=-1;for(let j=0,jj=this.__sortTouches.length;j<jj;j++)if(this.__sortTouches[j].touchId===touch.identifier){touchIndex=j;break}if(-1===touchIndex)continue;let touchInfo=this.__sortTouches[touchIndex];Math.pow(touch.clientX-touchInfo.clientX,2)+Math.pow(touch.clientY-touchInfo.clientY,2)>100&&(null!==touchInfo.timeoutId&&window.clearTimeout(touchInfo.timeoutId),this.__sortTouches.splice(touchIndex,1))}}__onSortTouchEnd(event){event.cancelable&&event.preventDefault();for(let i=0,ii=event.changedTouches.length;i<ii;i++){let touch=event.changedTouches[i],touchIndex=-1;for(let j=0,jj=this.__sortTouches.length;j<jj;j++)if(this.__sortTouches[j].touchId===touch.identifier){touchIndex=j;break}if(-1===touchIndex)continue;let touchInfo=this.__sortTouches[touchIndex];if(null!==touchInfo.timeoutId)if(window.clearTimeout(touchInfo.timeoutId),0===this.__internalSorting.length)this.__modifySorting(touchInfo.sortElement,!1);else{let headerCell=touchInfo.sortElement.closest("th");if(headerCell)if(headerCell.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"))this.__modifySorting(touchInfo.sortElement,!1);else{let sortName;if(isNamedColumn(this.__internalColumns[0])&&(sortName=headerCell.dataset.name),this.__lastRemovedSorting&&this.__lastRemovedSorting.name===sortName)this.__modifySorting(touchInfo.sortElement,!0);else{let composing=!1;for(let i=0,ii=this.__internalSorting.length;i<ii;i++)if(this.__internalSorting[i].name===sortName){composing=!0;break}this.__modifySorting(touchInfo.sortElement,composing)}}}this.__sortTouches.splice(touchIndex,1)}}__onSortTouchCancel(event){event.cancelable&&event.preventDefault();for(let i=0,ii=event.changedTouches.length;i<ii;i++){let touch=event.changedTouches[i],touchIndex=-1;for(let j=0,jj=this.__sortTouches.length;j<jj;j++)if(this.__sortTouches[j].touchId===touch.identifier){touchIndex=j;break}if(-1===touchIndex)continue;let touchInfo=this.__sortTouches[touchIndex];null!==touchInfo.timeoutId&&window.clearTimeout(touchInfo.timeoutId),this.__sortTouches.splice(touchIndex,1)}}__modifySorting(sortElement,composing){let headerCell=sortElement.closest("th");if(headerCell){if(headerCell.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers")){if(composing)return;this.__internalSorting=tchmi_clone_object(this.__sorting)||[],this.__lastRemovedSorting=null}else{if(!sortElement.classList.contains("sortable"))return;let sortName;isNamedColumn(this.__internalColumns[0])&&(sortName=headerCell.dataset.name);let existingItem=null;for(let i=0,ii=this.__internalSorting.length;i<ii;i++)if(this.__internalSorting[i].name===sortName){existingItem=this.__internalSorting[i];break}if(existingItem)switch(existingItem.order){case"Ascending":existingItem.order="Descending",composing||(this.__internalSorting=[existingItem]),this.__lastRemovedSorting=null;break;case"Descending":if(composing){let index=this.__internalSorting.indexOf(existingItem);this.__internalSorting.splice(index,1),this.__lastRemovedSorting={name:existingItem.name,position:index}}else this.__internalSorting=[],this.__lastRemovedSorting=null}else composing?this.__lastRemovedSorting&&this.__lastRemovedSorting.name===sortName?this.__internalSorting.splice(this.__lastRemovedSorting.position,0,{name:sortName,order:"Ascending"}):this.__internalSorting.push({name:sortName,order:"Ascending"}):this.__internalSorting=[{name:sortName,order:"Ascending"}],this.__lastRemovedSorting=null}TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Sorting"}),this.__processSorting(),headerCell.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers")?this.__storage?.delete("sorting"):this.__storage?.set("sorting",this.__internalSorting)}}__filterAndSort(){if(!this.__data||this.__pagingInfo.usePaging||0===this.__internalSorting.length&&!this.__filterInstance){this.__filterSortMap=null;let length=this.__data?this.__data.length:0;return void(length!==this.__dataLength&&(this.__dataLength=length))}this.__filterInstance?this.__filterSortMap=this.__filterInstance.filterTreeWithMap(this.__data.data,this.__hierarchicalDataProperty??"",this.__filterStrategy??TcHmi.FilterInstance.Strategy.BreadthFirst).map:this.__filterSortMap=this.__dataToFilteredSortMap(this.__data);let isSimpleDataType="object"!=typeof this.__data.get(0);if(this.__internalSorting.length>0){let sortCallback=(elementA,elementB)=>{let result=0;for(let i=0,ii=this.__internalSorting.length;i<ii&&0===result;i++){let a=this.__originalIndexToDataElement(elementA.index,this.__data),b=this.__originalIndexToDataElement(elementB.index,this.__data);!isSimpleDataType&&this.__internalSorting[i].name&&(a=this.__readObjectProperty(this.__originalIndexToDataElement(elementA.index,this.__data),this.__internalSorting[i].name),b=this.__readObjectProperty(this.__originalIndexToDataElement(elementB.index,this.__data),this.__internalSorting[i].name)),a=null!=a?a.valueOf():a,b=null!=b?b.valueOf():b;let stringComparer=null,compareBool=(a,b)=>a===b?0:a?1:-1,compareNumber=(a,b)=>a-b,compareString=(a,b)=>(stringComparer||(stringComparer=new Intl.Collator(TcHmi.Locale.get(),{usage:"sort",sensitivity:"accent",numeric:!0})),stringComparer.compare(a,b)),order="Descending"===this.__internalSorting[i].order?-1:1;switch(typeof a){case"boolean":switch(typeof b){case"boolean":result=compareBool(a,b);break;case"number":result=compareNumber(a?1:0,b);break;case"string":result=compareString(a.toString(),b);break;default:result=-1*order}break;case"number":switch(typeof b){case"boolean":result=compareNumber(a,b?1:0);break;case"number":result=compareNumber(a,b);break;case"string":result=compareString(a.toString(10),b);break;default:result=-1*order}break;case"string":switch(typeof b){case"boolean":result=compareString(a,b.toString());break;case"number":result=compareString(a,b.toString(10));break;case"string":result=compareString(a,b);break;default:result=-1*order}break;default:switch(typeof b){case"boolean":case"number":case"string":result=order;break;default:result=!a&&b?-1:a&&!b?1:a||b||a===b?0:void 0===a?-1:1}}result*=order}return result},sortFilterSortMap=filterSortMap=>{filterSortMap=filterSortMap.sort(sortCallback);for(let i=0;i<filterSortMap.length;i++)filterSortMap[i].children&&sortFilterSortMap(filterSortMap[i].children)};sortFilterSortMap(this.__filterSortMap)}this.__dataLength!==this.__filterSortMap.length&&(this.__dataLength=this.__filterSortMap.length)}__onScroll(event){let left=event.currentTarget.scrollLeft,top=event.currentTarget.scrollTop;if(this.__scrollInfo.scrollLeft!==left&&(this.__scrollInfo.scrollLeft=left,this.__elementHeaderScroll.scrollLeft(left)),this.__scrollInfo.scrollTop!==top){this.__scrollInfo.scrollTop=top;let firstIndex=this.__rowHeight?Math.floor(top/this.__rowHeight):0;Math.abs(this.__scrollInfo.firstIndex-firstIndex)>this.__scrollInfo.buffer/2&&(this.__scrollInfo.firstIndex=firstIndex,this.__pagingInfo.usePaging&&this.__updatePaging(),this.__updateTable(2),this.__updateSentinels()),this.__pagingInfo.usePaging&&(this.__pagingInfo.timing.isScrolling=!0,null!==this.__pagingInfo.timing.timeoutID&&window.clearTimeout(this.__pagingInfo.timing.timeoutID),this.__pagingInfo.timing.timeoutID=window.setTimeout(()=>{this.__pagingInfo.timing.isScrolling=!1,this.__pagingInfo.timing.timeoutID=null,this.__updatePaging()},200))}}__updateSentinels(){if(!this.__data)return;let sentinelTopHeight=0,sentinelBottomHeight=0;void 0!==this.__rowHeight&&(sentinelTopHeight=(this.__scrollInfo.firstIndex-this.__scrollInfo.buffer)*this.__rowHeight,sentinelBottomHeight=(this.__dataCount-(this.__scrollInfo.firstIndex+this.__scrollInfo.rowCount+this.__scrollInfo.buffer))*this.__rowHeight),sentinelTopHeight=sentinelTopHeight>0?sentinelTopHeight:0,sentinelBottomHeight=sentinelBottomHeight>0?sentinelBottomHeight:0,this.__elementSentinelTop.style.height=sentinelTopHeight+"px",this.__elementSentinelBottom.style.height=sentinelBottomHeight+"px"}__onFocusElement(event){if(!this.__data)return;if(!event.target)return;const eventTarget=event.target,targetCell=eventTarget.closest("td"),rowElement=targetCell?.closest("tr");if(!targetCell||!rowElement||eventTarget.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-expand-icon"))return;let row=rowElement.dataset.row?.split(":").map(Number)??[-1];const column=parseInt(targetCell.dataset.column||"-1",10);let columnDefinition,unpagedRow=row;if(row=this.__dataIndexToOriginalIndex(row),!this.__compareIndices(row,[-1])){if(this.__elementDataTableBody.find("tr.focused, td.focused").removeClass("focused"),targetCell.classList.add("focused"),rowElement.classList.add("focused"),null===this.__selectedCell||!this.__compareIndices(this.__selectedCell.rowIndex??[-1],row)||this.__selectedCell.columnIndex!==column){let changedProperties=[];if(this.__selectedCell&&this.__compareIndices(this.__selectedCell.rowIndex??[-1],row)||changedProperties.push("SelectedRowIndex"),this.__selectedCell&&this.__selectedCell.columnIndex===column||changedProperties.push("SelectedColumnIndex"),this.__selectedCell&&null!==this.__selectedCell.rowIndex){let oldIndex=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);!this.__compareIndices(oldIndex,[-1])&&tchmi_equal(this.__originalIndexToDataElement(oldIndex,this.__data),this.__originalIndexToDataElement(unpagedRow,this.__data),this.__comparisonOptions)||changedProperties.push("SelectedRowValue")}else changedProperties.push("SelectedRowValue");if(column>=0)if(columnDefinition=this.__internalColumns[column],isNamedColumn(columnDefinition)&&this.__selectedCell&&this.__selectedCell.rowIndex&&this.__selectedCell.columnIndex>=0){let columnDefinitionOld=this.__internalColumns[this.__selectedCell.columnIndex],oldIndex=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);if(this.__compareIndices(oldIndex,[-1]))changedProperties.push("SelectedCellValue");else{let left=this.__readObjectProperty(this.__originalIndexToDataElement(oldIndex,this.__data),columnDefinitionOld.name),right=this.__readObjectProperty(this.__originalIndexToDataElement(unpagedRow,this.__data),columnDefinition.name);tchmi_equal(left,right,this.__comparisonOptions)||changedProperties.push("SelectedCellValue")}}else changedProperties.push("SelectedCellValue");else changedProperties.push("SelectedCellValue");this.__selectedCell={rowIndex:row,columnIndex:column},changedProperties.length>0&&(TcHmi.EventProvider.raise(this.__id+".onSelectedItemChanged"),changedProperties.forEach(changedProperty=>TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:changedProperty})))}event.target instanceof HTMLInputElement&&("text"===event.target.type||"password"===event.target.type)&&!event.target.disabled&&(this.__lock(row,column,rowElement),columnDefinition?.autoSelectText&&(event.target.setSelectionRange(0,0),event.target.select()))}}__onFocusElementOut(event){event.target instanceof HTMLInputElement&&!event.target.classList.contains("tchmi-keyboard-user-input")&&this.__acceptTextboxInput(event.target,!0)}__onIndirectInputAccepted(event){if(event.target instanceof HTMLInputElement){const cellElement=event.target.closest("td");if(!cellElement||cellElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiDatagrid-template-row-numbers")||cellElement.classList.contains("tchmi-datagrid-template-row-numbers"))return;const column=parseInt(cellElement.dataset.column||"",10);if(isNaN(column))return;!1!==this.__internalColumns[column].autoFocusOut?event.target.blur():this.__acceptTextboxInput(event.target,!1)}}__onIndirectInputCanceled(event){if(!(event.target instanceof HTMLInputElement))return;event.target===document.activeElement||this.__element[0].contains(document.activeElement)||this.__unlock();const cellElement=event.target.closest("td");if(!cellElement||cellElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"))return;const column=parseInt(cellElement.dataset.column||"",10);if(isNaN(column))return;!1!==this.__internalColumns[column].autoFocusOut&&event.target.blur()}__onEmptyAreaClick(event){if(event.target===event.currentTarget&&this.__data&&null!==this.__selectedCell){let changedProperties=["SelectedColumnIndex"];null!==this.__selectedCell.rowIndex&&changedProperties.push("SelectedRowIndex","SelectedRowValue","SelectedCellValue"),this.__elementDataTableBody.find("tr.focused, td.focused").removeClass("focused"),this.__selectedCell=null,TcHmi.EventProvider.raise(this.__id+".onSelectedItemChanged"),changedProperties.forEach(changedProperty=>TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:changedProperty}))}}__onKeydown(event){if(!this.__data)return;if(!(event.target instanceof HTMLInputElement)||"text"!==event.target.type&&"password"!==event.target.type)return;if(!this.__lockState)return;const inputElement=event.target;this.__lockState.editStarted=!0;const columnDefinition=this.__selectedCell?this.__internalColumns[this.__selectedCell.columnIndex]:void 0;if("Enter"===event.key)!1!==columnDefinition?.autoFocusOut?inputElement.blur():this.__acceptTextboxInput(inputElement,!1);else if("Escape"===event.key&&columnDefinition&&this.__selectedCell&&null!==this.__selectedCell.rowIndex){let index=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);if(this.__compareIndices(index,[-1]))return;let decimalPrecisionMode,editorInfo,value=this.__originalIndexToDataElement(index,this.__data),decimalDigits=null,dataDefinitions=columnDefinition.dataDefinitions;if(isNamedColumn(columnDefinition)&&(value=this.__readObjectProperty(value,columnDefinition.name),"AutoDetectControl"===columnDefinition.control&&this.__editorInfo)){editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__selectedCell.rowIndex,columnDefinition.name),dataDefinitions=this.__getColumnControlInfoByEditorInfo(editorInfo).dataDefinitions}dataDefinitions&&!Array.isArray(dataDefinitions)&&(decimalDigits=dataDefinitions.decimalDigits??null,decimalPrecisionMode=dataDefinitions.decimalPrecisionMode);let formattedValue=this.__executeFormatFunction(columnDefinition.format,value,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(value,columnDefinition)});inputElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-numeric-input")&&null!==decimalDigits&&(formattedValue=this.__applyDecimalDigits(Number(formattedValue),decimalDigits,decimalPrecisionMode)),inputElement.value=formattedValue??"",this.__lockState.editStarted=!1,!1!==columnDefinition.autoFocusOut&&inputElement.blur()}}__onBeforeinput(event){if(!this.__data)return;if(!(event.target instanceof HTMLInputElement)||"text"!==event.target.type)return;let cellElement=event.target.closest("td");if(!cellElement)return;let row=parseInt(cellElement.dataset.row||"",10),column=parseInt(cellElement.dataset.column||"",10);if(isNaN(row)||isNaN(column))return;const columnDefinition=this.__internalColumns[column];"NumericInput"!==columnDefinition.control&&"SpinboxInput"!==columnDefinition.control||(this.__numericInputResetState={value:event.target.value,selectionStart:event.target.selectionStart,selectionEnd:event.target.selectionEnd,selectionDirection:event.target.selectionDirection})}__onInput(event){if(!this.__data)return;if(!(event.target instanceof HTMLInputElement)||"text"!==event.target.type&&"password"!==event.target.type)return;let cellElement=event.target.closest("td");if(!cellElement)return;let row=cellElement.dataset.row?.split(":").map(Number)??[-1],originalRow=this.__dataIndexToOriginalIndex(row),column=parseInt(cellElement.dataset.column||"",10);if(!this.__compareIndices(row,[-1])&&!isNaN(column)){if(!this.__lockState){let rowElement=cellElement.parentElement;if(!(rowElement instanceof HTMLTableRowElement))return;this.__compareIndices(row,[-1])&&this.__lock(originalRow,column,rowElement)}switch(this.__internalColumns[column].control){case"NumericInput":case"SpinboxInput":let columnDefinition=this.__internalColumns[column],minValue=null,maxValue=null,decimalDigits=null,dataDefinitions=columnDefinition.dataDefinitions;if("AutoDetectControl"===columnDefinition.control&&isNamedColumn(columnDefinition)&&this.__editorInfo){dataDefinitions=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,originalRow,columnDefinition.name)).dataDefinitions}dataDefinitions&&!Array.isArray(dataDefinitions)&&(void 0!==dataDefinitions.minValue&&(minValue=dataDefinitions.minValue),void 0!==dataDefinitions.maxValue&&(maxValue=dataDefinitions.maxValue),void 0!==dataDefinitions.decimalDigits&&(decimalDigits=dataDefinitions.decimalDigits));if(!new RegExp(String.raw`^[+-]?\d*(?:\.\d{0,${decimalDigits??""}})?$`).test(event.target.value))return event.target.value=this.__numericInputResetState.value,void event.target.setSelectionRange(this.__numericInputResetState.selectionStart,this.__numericInputResetState.selectionEnd,this.__numericInputResetState.selectionDirection??void 0);let numericValue=Number(event.target.value);isNaN(numericValue)||null!==minValue&&numericValue<minValue||null!==maxValue&&numericValue>maxValue||!event.target.value.trim()?TCHMI_DESIGNER||event.target.setCustomValidity("invalid"):event.target.setCustomValidity("");break;case"DateTimeInput":this.__REGEX_ISO_8601_DATETIME.test(event.target.value)?event.target.setCustomValidity(""):TCHMI_DESIGNER||event.target.setCustomValidity("invalid");break;case"TimespanInput":this.__REGEX_ISO_8601_TIMESPAN.test(event.target.value)?event.target.setCustomValidity(""):TCHMI_DESIGNER||event.target.setCustomValidity("invalid");break;case"TextBox":case"PasswordInput":const input=event.target,maxTextLength=this.__internalColumns[column].maxTextLength;this.__validateTextValue(input,maxTextLength)}this.__lockState&&(this.__lockState.editStarted=!0)}}__onCheckboxMouseDown(event){if(!(event.target instanceof HTMLLabelElement&&event.target.previousElementSibling instanceof HTMLInputElement&&("checkbox"===event.target.previousElementSibling.type||"radio"===event.target.previousElementSibling.type)))return;let cellElement=event.target.closest("td");if(!cellElement)return;const rowElement=cellElement.closest("tr");if(!rowElement)return;let row=cellElement.dataset.row?.split(":").map(Number)??[-1],column=parseInt(cellElement.dataset.column||"",10);row=this.__dataIndexToOriginalIndex(row),this.__compareIndices(row,[-1])||isNaN(column)||setTimeout(()=>{this.__lock(row,column,rowElement)},0)}__onValueChange(event){if(!this.__data)return;if(!(event.target instanceof HTMLInputElement)||"checkbox"!==event.target.type&&"radio"!==event.target.type)return;let rowElement=event.target?.closest("tr");if(!rowElement)return;this.__lockState&&"ComboBox"===this.__internalColumns[this.__lockState.column].control&&this.__unlock();let cellElement=event.target.closest("td");if(!cellElement)return;let row=cellElement.dataset.row?.split(":").map(Number)??[-1],column=parseInt(cellElement.dataset.column||"",10);if(!this.__compareIndices(row,[-1])&&!isNaN(column))if("CheckBox"===this.__internalColumns[column].control||"ToggleSwitch"===this.__internalColumns[column].control||"AutoDetectControl"===this.__internalColumns[column].control){let result=this.__modifyData(event.target.checked,row,column,rowElement);if(result){if(cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),result.needSorting&&!this.__indirectWrite)this.__filterAndSort(),this.__updateTable(0);else if(event.target.value=result.convertedValue??"",!this.__indirectWrite)for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==column&&internalColumn.name===this.__internalColumns[column].name){let cell=rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}this.__oldData=this.__data.copy()}}else if("RadioButton"===this.__internalColumns[column].control){let result=this.__modifyRadioButton(row,column,rowElement);if(result)if(cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),result.needSorting&&!this.__indirectWrite)this.__filterAndSort(),this.__updateTable(0);else{let rowsToUpdate=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td input[type=radio]:checked");if(!this.__indirectWrite)for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(internalColumn.name===this.__internalColumns[column].name)for(let radioButton of rowsToUpdate){let rowElementRadio=radioButton.parentElement?.closest("tr"),cell=rowElementRadio?.children[i+1]??void 0;cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,rowElement===rowElementRadio)}}}this.__oldData=this.__data.copy()}}__acceptTextboxInput(inputElement,unlock){if(!this.__data)return;if(!this.getIsEnabled()||this.__isReadOnly)return;if(!TcHmi.Access.checkAccess(this,"operate"))return;if("text"!==inputElement.type&&"password"!==inputElement.type)return;if(!this.__lockState)return;if(!this.__lockState.editStarted&&unlock&&!inputElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-numeric-input")&&!inputElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-textbox")&&!inputElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-password-input"))return void this.__unlock();let cellElement=inputElement.closest("td"),rowElement=cellElement?.closest("tr");if(!rowElement)return;if(unlock&&this.__unlock(),!cellElement||cellElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"))return;let row=cellElement.dataset.row?.split(":").map(Number)??[-1],column=parseInt(cellElement.dataset.column||"",10);if(this.__compareIndices(row,[-1])||isNaN(column))return;const columnDefinition=this.__internalColumns[column];let schema,columnControl=columnDefinition.control,dataDefinitions=columnDefinition.dataDefinitions;if("AutoDetectControl"===columnDefinition.control&&isNamedColumn(columnDefinition)&&this.__editorInfo){let result=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__dataIndexToOriginalIndex(row),columnDefinition.name));dataDefinitions=result.dataDefinitions,columnControl=result.columnControl,schema=result.schema}if("TextBox"!==columnControl&&"PasswordInput"!==columnControl&&"NumericInput"!==columnControl&&"SpinboxInput"!==columnControl&&"DateTimeInput"!==columnControl&&"TimespanInput"!==columnControl)return;if(!this.__validateTextValue(inputElement,columnDefinition.maxTextLength))return;if(this.__filterSortMap?!this.__filterSortMapIncludesIndex(this.__filterSortMap,[...row]):row[0]>=this.__dataLength)return;let result,valueOld=this.__originalIndexToDataElement(row,this.__data),valueNew=inputElement.value;switch(columnControl){case"NumericInput":case"SpinboxInput":let minValue=null,maxValue=null,resetToLastValidValue=!1;if(isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),dataDefinitions&&!Array.isArray(dataDefinitions)&&(minValue=dataDefinitions.minValue??null,maxValue=dataDefinitions.maxValue??null,resetToLastValidValue=dataDefinitions.resetToLastValidValue??!1),""===inputElement.value&&null===valueOld)return void inputElement.setCustomValidity("");let numericValue=Number(inputElement.value);if(schema?numericValue=TcHmi.ValueConverter.toSchemaType(inputElement.value,schema):isNaN(numericValue)&&"NaN"!==inputElement.value&&"Infinity"!==inputElement.value&&"-Infinity"!==inputElement.value&&(numericValue=null),null===numericValue||null!==minValue&&numericValue<minValue&&"-Infinity"!==inputElement.value||null!==maxValue&&numericValue>maxValue&&"Infinity"!==inputElement.value||!inputElement.value.trim())return void(resetToLastValidValue?(inputElement.value=valueOld,inputElement.setCustomValidity("")):TCHMI_DESIGNER||inputElement.setCustomValidity("invalid"));if(null===numericValue)return void(resetToLastValidValue?(inputElement.value=valueOld,inputElement.setCustomValidity("")):TCHMI_DESIGNER||inputElement.setCustomValidity("invalid"));inputElement.setCustomValidity("");break;case"DateTimeInput":isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),this.__REGEX_ISO_8601_DATETIME.test(inputElement.value)||(inputElement.value=valueOld),inputElement.setCustomValidity("");break;case"TimespanInput":isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),this.__REGEX_ISO_8601_TIMESPAN.test(inputElement.value)||(inputElement.value=valueOld),inputElement.setCustomValidity("");break;case"TextBox":columnDefinition.ignoreEscapeSequences||(valueNew=tchmi_encode_control_characters(valueNew))}if(result=this.__modifyData(valueNew,row,column,rowElement),result){if(cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),result.needSorting&&!this.__indirectWrite)this.__filterAndSort(),this.__updateTable(0);else{let editorInfo;this.__editorInfo&&isNamedColumn(columnDefinition)&&(editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,row,columnDefinition.name));let formattedValue=this.__executeFormatFunction(columnDefinition.format,result.convertedValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(result.convertedValue,columnDefinition)});if(inputElement.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-numeric-input")&&dataDefinitions&&!Array.isArray(dataDefinitions)&&void 0!==dataDefinitions.decimalDigits&&(formattedValue=this.__applyDecimalDigits(Number(formattedValue),dataDefinitions.decimalDigits,dataDefinitions.decimalPrecisionMode)),inputElement.value=formattedValue??"",!this.__indirectWrite)for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==column&&internalColumn.name===columnDefinition.name){let cell=rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}}this.__oldData=this.__data.copy()}}__modifyRadioButton(row,column,rowElement,forceWrite=!1,symbolWriteCallback){if(!this.__data)return symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Invalid Data. The data of the control is not defined.",domain:TcHmiTreeView.#tchmiFQN}),null;let columnDefinition=this.__internalColumns[column],valueOld=this.__originalIndexToDataElement(row,this.__data);if(isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),!0===valueOld)return symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Old value 'true' cante be overwritten",domain:TcHmiTreeView.#tchmiFQN}),null;let needSorting=!1;if(!this.__indirectWrite||forceWrite){if(!this.__pagingInfo.usePaging){let setValue=(data,index)=>{if(isNamedColumn(columnDefinition)){for(let i=0;i<data.length;i++)if(void 0!==data.get(i)){let currentIndex=index?index.concat([i]):[i];this.__writeObjectProperty(data.get(i),columnDefinition.name,this.__compareIndices(currentIndex,row)),this.__hierarchicalDataProperty&&data.get(i)[this.__hierarchicalDataProperty]&&setValue(data.get(i)[this.__hierarchicalDataProperty],currentIndex)}}else for(let i=0;i<data.length;i++){let currentIndex=index?index.concat([i]):[i];data.set(i,this.__compareIndices(currentIndex,row)),this.__hierarchicalDataProperty&&data.get(i)[this.__hierarchicalDataProperty]&&setValue(data.get(i)[this.__hierarchicalDataProperty],currentIndex)}};setValue(this.__data,[])}let resolver=this.__objectResolvers.get("data");if(resolver&&resolver.resolver.write(this.__data.data),this.__dataSymbol)if(this.__pagingInfo.usePaging){if(!this.__dataSymbolExpression)return symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Invalid data symbol expression.",domain:TcHmiTreeView.#tchmiFQN}),null;let originalIndex=this.__dataIndexToOriginalIndex(row);if(this.__compareIndices(originalIndex,[-1]))return symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Invalid index. Write target has no corrosponding original value.",domain:TcHmiTreeView.#tchmiFQN}),null;const symbol=this.__dataSymbolExpression.getName();if(!symbol)return symbolWriteCallback?.({code:TcHmi.Errors.E_SYMBOL_UNKNOWN,message:TcHmi.Errors[TcHmi.Errors.E_SYMBOL_UNKNOWN],reason:"Invalid symbol name.",domain:TcHmiTreeView.#tchmiFQN}),null;TcHmi.Server.readSymbol(symbol,data=>{const error=this.__checkServerErrors(data);if(error)symbolWriteCallback?.(error),TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:`%s%${symbol}%/s%`},TcHmi.Log.buildMessage(error));else if(data.response?.commands?.[0]?.readValue){let writeValue=data.response.commands[0].readValue;if(!Array.isArray(writeValue))return void symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Invalid write value. Write value has to be an array.",domain:TcHmiTreeView.#tchmiFQN});let setValue=(writeValue,index)=>{if(isNamedColumn(columnDefinition)){for(let i=0;i<writeValue.length;i++)if(void 0!==writeValue[i]){let currentIndex=index?index.concat([i]):[i];this.__writeObjectProperty(writeValue[i],columnDefinition.name,this.__compareIndices(currentIndex,originalIndex)),this.__hierarchicalDataProperty&&writeValue[i][this.__hierarchicalDataProperty]&&setValue(writeValue[i][this.__hierarchicalDataProperty],currentIndex)}}else for(let i=0;i<writeValue.length;i++){let currentIndex=index?index.concat([i]):[i];writeValue[i]=this.__compareIndices(currentIndex,originalIndex),this.__hierarchicalDataProperty&&writeValue[i][this.__hierarchicalDataProperty]&&setValue(writeValue[i][this.__hierarchicalDataProperty],currentIndex)}};setValue(writeValue,[]),TcHmi.Server.writeSymbol(symbol,writeValue,data=>{const error=this.__checkServerErrors(data);symbolWriteCallback?.(error),error&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:`%s%${symbol}%/s%`},TcHmi.Log.buildMessage(data.details))})}})}else this.__dataSymbol.write(this.__data.data,data=>{symbolWriteCallback?.(data.details??{code:data.error}),data.error!==TcHmi.Errors.NONE&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol.getExpression().toString()},TcHmi.Log.buildMessage(data.details))});rowElement&&this.__setRowClasses(rowElement,row),TcHmi.EventProvider.raise(this.__id+".onDataChanged",{index:[...row],property:isNamedColumn(columnDefinition)?columnDefinition.name:null,value:!0}),TcHmi.EventProvider.raise(this.__id+".onSelectedItemChanged"),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedRowValue"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedCellValue"}),this.__dataSymbol||TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Data"}),this.__dataHasChanged||(this.__dataHasChanged=!0,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"DataHasChanged"}));for(let i=0,ii=this.__internalSorting.length;i<ii;i++){if(!this.__internalSorting[i].name&&!isNamedColumn(columnDefinition)){needSorting=!0;break}if(this.__internalSorting[i].name===columnDefinition.name){needSorting=!0;break}}}const originalIndex=this.__dataIndexToOriginalIndex(row),columnName=isNamedColumn(columnDefinition)?columnDefinition.name:void 0;let inputs=this.__elementDataTableBody[0].querySelectorAll(`[data-column-name="${columnName}"].TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value input`);for(let inputElement of inputs)inputElement.checked=!1;let cells=this.__elementDataTableBody[0].querySelectorAll(`[data-column-name="${columnName}"].TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value`);for(let cellElement of cells)cellElement.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value");if(this.__indirectWrite){let preparedValue=this.__preparedValues.find(item=>this.__compareIndices(item.index,originalIndex)&&item.column===columnName);preparedValue?preparedValue.userData=!0:this.__preparedValues.push({index:originalIndex,column:columnName,columnIndex:column,originalData:valueOld,userData:!0})}return this.__dataSymbol||symbolWriteCallback?.({code:TcHmi.Errors.NONE}),{convertedValue:!0,needSorting}}__onButtonMousedown(event){if(!this.__data)return;if(0!==event.button)return;if(!event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-button"))return;let cellElement=event.target.closest("td");if(!cellElement)return;const rowElement=cellElement.closest("tr");if(!rowElement)return;let row=cellElement.dataset.row?.split(":").map(Number)??[-1],column=parseInt(cellElement.dataset.column||"",10);if(this.__compareIndices(row,[-1])||isNaN(column))return;let columnDefinition=this.__internalColumns[column];if(!columnDefinition.editable)return;let control=columnDefinition.control;if("AutoDetectControl"===control&&isNamedColumn(columnDefinition)&&this.__editorInfo&&(control=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__dataIndexToOriginalIndex(row),columnDefinition.name)).columnControl),this.__isReadOnly&&"TimespanInput"!==control&&"DateTimeInput"!==control)return;event.target.classList.add("down"),"SpinboxInput"!==control&&(this.__buttonLeaveDestroyer?.(),event.target.addEventListener("mouseleave",this.__onButtonMouseleave,{passive:!0}),this.__buttonLeaveDestroyer=()=>{event.target.removeEventListener("mouseleave",this.__onButtonMouseleave)},this.__buttonEnterDestroyer?.(),event.target.addEventListener("mouseenter",this.__onButtonMouseenter,{passive:!0}),this.__buttonEnterDestroyer=()=>{event.target.removeEventListener("mouseenter",this.__onButtonMouseenter)});let rowToLock=this.__dataIndexToOriginalIndex(row);if(this.__compareIndices(rowToLock,[-1])||setTimeout(()=>{this.__lock(rowToLock,column,rowElement,event.target)},0),"Button"===control||"ToggleButton"===control){let valueOld=this.__originalIndexToDataElement(row,this.__data);if(isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),!0===valueOld)return;const result=this.__modifyData(!0,row,column,rowElement);if(result){if(cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),result.needSorting&&!this.__indirectWrite)this.__filterAndSort(),this.__updateTable(0);else{let formattedValue=result.convertedValue;if(event.target.classList.toggle("down",TcHmi.ValueConverter.toBoolean(formattedValue,!1)),!this.__indirectWrite)for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==column&&internalColumn.name===this.__internalColumns[column].name){let cell=rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}}this.__oldData=this.__data.copy()}"ToggleButton"===control&&setTimeout(()=>{this.__unlock()},0)}}__onButtonMouseup(event){if(this.__buttonLeaveDestroyer?.(),this.__buttonLeaveDestroyer=null,this.__buttonEnterDestroyer?.(),this.__buttonEnterDestroyer=null,!this.__data)return;if(!this.getIsEnabled())return;if(!TcHmi.Access.checkAccess(this,"operate"))return;if(null===this.__lockState||this.__lockState.editStarted)return;if(this.__lockState.targetElement?.classList.remove("down"),!event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-button")||!tchmi_equal(event.target,this.__lockState.targetElement))return void(this.__lockState.targetElement?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-button")&&this.__unlock());let cellElement=this.__lockState.rowElement.children.item(this.__lockState.column+1),valueNew=!1,row=this.__originalIndexToDataIndex(this.__lockState.row);const inputElement=cellElement.getElementsByTagName("input")[0];let columnDefinition=this.__internalColumns[this.__lockState.column],dataDefinitions=columnDefinition.dataDefinitions,columnControl=columnDefinition.control;if("AutoDetectControl"===columnDefinition.control&&isNamedColumn(columnDefinition)&&this.__editorInfo){let result=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__lockState.row,columnDefinition.name));dataDefinitions=result.dataDefinitions,columnControl=result.columnControl}let oldData=this.__originalIndexToDataElement(row,this.__data);switch(columnControl){case"SpinboxInput":if(!columnDefinition.editable||this.__isReadOnly)return;valueNew=this.__useSpinbox(columnDefinition,dataDefinitions,oldData,inputElement,event.target);break;case"DateTimeInput":return void this.__useDateTimePicker(columnDefinition,dataDefinitions,row,inputElement,event.target,cellElement);case"TimespanInput":return void this.__useTimespanPicker(columnDefinition,dataDefinitions,row,inputElement,event.target,cellElement);default:if(this.__isReadOnly)return}if(null===valueNew)return;let modifySrcData=!0;if("SpinboxInput"===columnDefinition.control)if(isNamedColumn(columnDefinition)&&(oldData=this.__readObjectProperty(oldData,columnDefinition.name)),null===valueNew&&oldData===valueNew)inputElement.setCustomValidity(""),modifySrcData=!1;else if(columnDefinition.dataDefinitions&&!Array.isArray(columnDefinition.dataDefinitions))columnDefinition.dataDefinitions.minValue&&valueNew<columnDefinition.dataDefinitions.minValue||columnDefinition.dataDefinitions.maxValue&&valueNew>columnDefinition.dataDefinitions.maxValue?(TCHMI_DESIGNER||inputElement.setCustomValidity("invalid"),modifySrcData=!1):inputElement.setCustomValidity("");else{let numberValue=Number(valueNew);isNaN(numberValue)||null===valueNew?(TCHMI_DESIGNER||inputElement.setCustomValidity("invalid"),modifySrcData=!1):inputElement.setCustomValidity("")}if(modifySrcData){let result;if(result=this.__modifyData(valueNew,row,this.__lockState.column,this.__lockState.rowElement),result){let editorInfo;this.__editorInfo&&isNamedColumn(columnDefinition)&&(editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,row,columnDefinition.name));let formattedValue=this.__executeFormatFunction(columnDefinition.format,result.convertedValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(result.convertedValue,columnDefinition)});if(inputElement?(dataDefinitions&&!Array.isArray(dataDefinitions)&&void 0!==dataDefinitions.decimalDigits&&(formattedValue=this.__applyDecimalDigits(Number(formattedValue),dataDefinitions.decimalDigits,dataDefinitions.decimalPrecisionMode)),inputElement.value=formattedValue??""):event.target.classList.toggle("down",TcHmi.ValueConverter.toBoolean(formattedValue,!1)),cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),this.__indirectWrite);else if(result.needSorting)this.__filterAndSort(),this.__updateTable(0);else for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==this.__lockState.column&&internalColumn.name===this.__internalColumns[this.__lockState.column].name){let cell=this.__lockState.rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}this.__oldData=this.__data.copy()}}this.__unlock()}__onButtonMouseleave(event){if(event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-toggle-button")&&!this.__lockState)return;if(event.target.classList.remove("down"),!this.__data)return;if(!this.getIsEnabled()||this.__isReadOnly)return;if(!TcHmi.Access.checkAccess(this,"operate"))return;if(null===this.__lockState)return;if(!event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-simple-button")&&!event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-toggle-button"))return;let result;if(result=this.__modifyData(!1,this.__originalIndexToDataIndex(this.__lockState.row),this.__lockState.column,this.__lockState.rowElement),result){if(result.needSorting&&!this.__indirectWrite)this.__filterAndSort(),this.__updateTable(0);else{let editorInfo,columnDefinition=this.__internalColumns[this.__lockState.column];this.__editorInfo&&isNamedColumn(columnDefinition)&&(editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__lockState.row,columnDefinition.name));let formattedValue=this.__executeFormatFunction(columnDefinition.format,result.convertedValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(result.convertedValue,columnDefinition)});event.target.classList.toggle("down",TcHmi.ValueConverter.toBoolean(formattedValue,!1));let cellElement=event.target.closest("td");if(cellElement?.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),!this.__indirectWrite)for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==this.__lockState.column&&internalColumn.name===this.__internalColumns[this.__lockState.column].name){let cell=this.__lockState.rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}}this.__oldData=this.__data.copy()}}__onButtonMouseenter(event){if(event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-toggle-button")||event.target.classList.add("down"),!tchmi_equal(event.target,this.__lockState?.targetElement))return;if(!this.__data)return;if(!this.getIsEnabled()||this.__isReadOnly)return;if(!TcHmi.Access.checkAccess(this,"operate"))return;if(!event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-simple-button"))return;if(null===this.__lockState)return;let result;if(result=this.__modifyData(!0,this.__originalIndexToDataIndex(this.__lockState.row),this.__lockState.column,this.__lockState.rowElement),result){if(result.needSorting&&!this.__indirectWrite)this.__filterAndSort(),this.__updateTable(0);else{let editorInfo,columnDefinition=this.__internalColumns[this.__lockState.column];this.__editorInfo&&isNamedColumn(columnDefinition)&&(editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__lockState.row,columnDefinition.name));let formattedValue=this.__executeFormatFunction(columnDefinition.format,result.convertedValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(result.convertedValue,columnDefinition)});event.target.classList.toggle("down",TcHmi.ValueConverter.toBoolean(formattedValue,!1));let cellElement=event.target.closest("td");if(cellElement?.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),!this.__indirectWrite)for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==this.__lockState.column&&internalColumn.name===this.__internalColumns[this.__lockState.column].name){let cell=this.__lockState.rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}}this.__oldData=this.__data.copy()}}__onButtonTouchstart(event){if(!this.__data)return;if(!event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-button"))return;event.preventDefault(),document.activeElement?.blur(),this.__onFocusElement(event);let cellElement=event.target.closest("td");if(!cellElement)return;const rowElement=cellElement.closest("tr");if(!rowElement)return;let row=cellElement.dataset.row?.split(":").map(Number)??[-1],column=parseInt(cellElement.dataset.column||"",10);if(this.__compareIndices(row,[-1])||isNaN(column))return;let columnDefinition=this.__internalColumns[column];if(!columnDefinition.editable)return;let control=columnDefinition.control;if("AutoDetectControl"===control&&isNamedColumn(columnDefinition)&&this.__editorInfo&&(control=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__dataIndexToOriginalIndex(row),columnDefinition.name)).columnControl),this.__isReadOnly&&"TimespanInput"!==control&&"DateTimeInput"!==control)return;event.target.classList.add("down");let rowToLock=this.__dataIndexToOriginalIndex(row);if(this.__compareIndices(rowToLock,[-1])||setTimeout(()=>{this.__lock(rowToLock,column,rowElement,event.target)},0),"Button"===control||"ToggleButton"===control){let valueOld=this.__originalIndexToDataElement(row,this.__data);if(isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),!0===valueOld)return;const result=this.__modifyData(!0,row,column,rowElement);if(result){if(result.needSorting&&!this.__indirectWrite)this.__filterAndSort(),this.__updateTable(0);else{let formattedValue=result.convertedValue;if(event.target.classList.toggle("down",TcHmi.ValueConverter.toBoolean(formattedValue,!1)),cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),!this.__indirectWrite)for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==column&&internalColumn.name===this.__internalColumns[column].name){let cell=rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}}this.__oldData=this.__data.copy()}event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-toggle-button")&&setTimeout(()=>{this.__unlock()},0)}}__onButtonTouchend(event){if(!this.__data)return;if(null===this.__lockState||this.__lockState.editStarted)return;if(this.__lockState.targetElement?.classList.remove("down"),!event.target?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-button")||!tchmi_equal(event.target,this.__lockState.targetElement))return void(this.__lockState.targetElement?.classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-button")&&this.__unlock());let cellElement=this.__lockState.rowElement.children.item(this.__lockState.column+1);event.preventDefault();let valueNew=!1,dataRow=this.__originalIndexToDataIndex(this.__lockState.row);const inputElement=cellElement.getElementsByTagName("input")[0];let columnDefinition=this.__internalColumns[this.__lockState.column],dataDefinitions=columnDefinition.dataDefinitions,columnControl=columnDefinition.control;if("AutoDetectControl"===columnDefinition.control&&isNamedColumn(columnDefinition)&&this.__editorInfo){let result=this.__getColumnControlInfoByEditorInfo(this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__lockState.row,columnDefinition.name));dataDefinitions=result.dataDefinitions,columnControl=result.columnControl}switch(columnControl){case"SpinboxInput":if(!columnDefinition.editable||this.__isReadOnly)return;valueNew=this.__useSpinbox(columnDefinition,dataDefinitions,this.__originalIndexToDataElement(dataRow,this.__data),inputElement,event.target);break;case"DateTimeInput":return void this.__useDateTimePicker(columnDefinition,dataDefinitions,dataRow,inputElement,event.target,cellElement);case"TimespanInput":return void this.__useTimespanPicker(columnDefinition,dataDefinitions,dataRow,inputElement,event.target,cellElement);default:if(this.__isReadOnly)return}if(null===valueNew)return;let modifySrcData=!0;if("SpinboxInput"===columnDefinition.control)if(columnDefinition.dataDefinitions&&!Array.isArray(columnDefinition.dataDefinitions))columnDefinition.dataDefinitions.minValue&&valueNew<columnDefinition.dataDefinitions.minValue||columnDefinition.dataDefinitions.maxValue&&valueNew>columnDefinition.dataDefinitions.maxValue?(TCHMI_DESIGNER||inputElement.setCustomValidity("invalid"),modifySrcData=!1):inputElement.setCustomValidity("");else{let numberValue=Number(valueNew);isNaN(numberValue)||null===valueNew?(TCHMI_DESIGNER||inputElement.setCustomValidity("invalid"),modifySrcData=!1):inputElement.setCustomValidity("")}if(modifySrcData){let result;if(result=this.__modifyData(valueNew,dataRow,this.__lockState.column,this.__lockState.rowElement),result){let editorInfo;this.__editorInfo&&isNamedColumn(columnDefinition)&&(editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__lockState.row,columnDefinition.name));let formattedValue=this.__executeFormatFunction(columnDefinition.format,result.convertedValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(result.convertedValue,columnDefinition)});if(inputElement?(dataDefinitions&&!Array.isArray(dataDefinitions)&&void 0!==dataDefinitions.decimalDigits&&(formattedValue=this.__applyDecimalDigits(Number(formattedValue),dataDefinitions.decimalDigits,dataDefinitions.decimalPrecisionMode)),inputElement.value=formattedValue??""):event.target.classList.toggle("down",TcHmi.ValueConverter.toBoolean(formattedValue,!1)),cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),this.__indirectWrite);else if(result.needSorting)this.__filterAndSort(),this.__updateTable(0);else for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==this.__lockState.column&&internalColumn.name===this.__internalColumns[this.__lockState.column].name){let cell=this.__lockState.rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}this.__oldData=this.__data.copy()}}this.__unlock()}__useSpinbox(columnDefinition,dataDefinitions,data,inputElement,targetButton){let step=1,minValue=null,maxValue=null;if(dataDefinitions&&!Array.isArray(dataDefinitions)&&(step=dataDefinitions.step??1,minValue=dataDefinitions.minValue??null,maxValue=dataDefinitions.maxValue??null),isNamedColumn(columnDefinition)&&(data=this.__readObjectProperty(data,columnDefinition.name)),this.__indirectWrite){let userData=this.__preparedValues.find(input=>this.__compareIndices(input.index,this.__lockState?.row??[])&&input.columnIndex===this.__lockState?.column)?.userData;null!=userData&&(data=userData)}let valueNumber=Number(data);return null!==valueNumber&&!isNaN(valueNumber)||!isNaN(valueNumber)&&null!==data?("+"===targetButton.textContent?null!==minValue&&valueNumber<minValue&&valueNumber+step<minValue?valueNumber=minValue:null!==maxValue&&valueNumber<=maxValue&&valueNumber+step>maxValue?valueNumber=maxValue:null!==maxValue&&valueNumber>=maxValue||(valueNumber+=step):"-"===targetButton.textContent&&(null!==maxValue&&valueNumber>maxValue&&valueNumber-step>maxValue?valueNumber=maxValue:null!==minValue&&valueNumber>=minValue&&valueNumber-step<minValue?valueNumber=minValue:null!==minValue&&valueNumber<minValue||(valueNumber-=step)),valueNumber):null}__useDateTimePicker(columnDefinition,dataDefinitions,dataRow,inputElement,buttonElement,cellElement){if(!this.__data)return;let valueOld=this.__originalIndexToDataElement(dataRow,this.__data);isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),this.__dateTimePickerInstance&&(this.__REGEX_ISO_8601_DATETIME.test(valueOld)?this.__dateTimePickerInstance.setValue(valueOld):this.__dateTimePickerInstance.setValue(null),this.__lockState&&(this.__lockState.editStarted=!0),this.__timePickerConfirmedEventDestroyer?.(),this.__timePickerConfirmedEventDestroyer=TcHmi.EventProvider.register(this.__dateTimePickerInstance.getId()+".onConfirmed",()=>{if(this.__dateTimePickerInstance&&this.__lockState){let result,valueNew=this.__dateTimePickerInstance.getValue();if(result=this.__modifyData(valueNew,dataRow,this.__lockState.column,this.__lockState.rowElement),result){let editorInfo;this.__editorInfo&&isNamedColumn(columnDefinition)&&(editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,this.__lockState.row,columnDefinition.name));let formattedValue=this.__executeFormatFunction(columnDefinition.format,result.convertedValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(result.convertedValue,columnDefinition)});if(inputElement.value=formattedValue??"",cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),this.__indirectWrite);else if(result.needSorting)this.__filterAndSort(),this.__updateTable(0);else for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==this.__lockState.column&&internalColumn.name===this.__internalColumns[this.__lockState.column].name){let cell=this.__lockState.rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}this.__oldData=this.__data?.copy()}}this.__unlock(),this.__timePickerConfirmedEventDestroyer?.(),this.__timePickerConfirmedEventDestroyer=null}),this.__timePickerCanceledEventDestroyer?.(),this.__timePickerCanceledEventDestroyer=TcHmi.EventProvider.register(this.__dateTimePickerInstance.getId()+".onCancel",()=>{this.__unlock(),this.__timePickerCanceledEventDestroyer?.(),this.__timePickerCanceledEventDestroyer=null}),this.__dateTimePickerInstance.openDateTimePicker())}__getHierarchicalSchema(schema,dataRow,columnDefinition){const schemaItems=schema?.items;if(!(schemaItems&&dataRow&&0!==dataRow.length&&isNamedColumn(columnDefinition)&&this.__hierarchicalDataProperty))return;const dataRowFirstElement=dataRow[0];if(Array.isArray(schemaItems)||void 0===schemaItems.properties){if(Array.isArray(schemaItems)&&void 0!==schemaItems[dataRowFirstElement].properties){if(dataRow?.length>1)return dataRow.shift(),this.__getHierarchicalSchema(schemaItems[dataRowFirstElement].properties[this.__hierarchicalDataProperty],dataRow,columnDefinition);if(schemaItems[dataRowFirstElement].properties[columnDefinition.name].formatMaximum)return schemaItems[dataRowFirstElement].properties[columnDefinition.name].formatMaximum}}else{if(schemaItems.properties[this.__hierarchicalDataProperty]&&dataRow.length>1)return dataRow.shift(),this.__getHierarchicalSchema(schemaItems.properties[this.__hierarchicalDataProperty],dataRow,columnDefinition);if(schemaItems.properties[columnDefinition.name].formatMaximum)return schemaItems.properties[columnDefinition.name].formatMaximum}}__useTimespanPicker(columnDefinition,dataDefinitions,dataRow,inputElement,buttonElement,cellElement){if(!this.__data)return;let valueOld=this.__originalIndexToDataElement(dataRow,this.__data);if(isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name)),this.__timespanPickerInstance){if(this.__REGEX_ISO_8601_TIMESPAN.test(valueOld)?this.__timespanPickerInstance.setValue(valueOld):this.__timespanPickerInstance.setValue(null),this.__lockState&&(this.__lockState.editStarted=!0),this.__timePickerConfirmedEventDestroyer?.(),this.__timePickerConfirmedEventDestroyer=TcHmi.EventProvider.register(this.__timespanPickerInstance.getId()+".onConfirmed",()=>{if(this.__timespanPickerInstance&&this.__lockState){let result,valueNew=this.__timespanPickerInstance.getValue();if(result=this.__modifyData(valueNew,dataRow,this.__lockState.column,this.__lockState.rowElement),result){let editorInfo;this.__editorInfo&&isNamedColumn(columnDefinition)&&(editorInfo=this.__getEditorInfoByOriginalIndexAndPropertyName(this.__editorInfo,dataRow,columnDefinition.name));let formattedValue=this.__executeFormatFunction(this.__internalColumns[this.__lockState.column].format,result.convertedValue,{schema:editorInfo?.schema??this.__generateSchemaByDataDefintions(result.convertedValue,columnDefinition)});if(inputElement.value=formattedValue??"",cellElement.classList.toggle("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value",this.__indirectWrite),this.__indirectWrite);else if(result.needSorting)this.__filterAndSort(),this.__updateTable(0);else for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let internalColumn=this.__internalColumns[i];if(i!==this.__lockState.column&&internalColumn.name===this.__internalColumns[this.__lockState.column].name){let cell=this.__lockState.rowElement.children[i+1];cell instanceof HTMLTableCellElement&&this.__fillCell(cell,internalColumn,result.convertedValue)}}this.__oldData=this.__data?.copy()}}this.__unlock(),this.__timePickerConfirmedEventDestroyer?.(),this.__timePickerConfirmedEventDestroyer=null,this.__formatMax=null}),this.__timePickerCanceledEventDestroyer?.(),this.__timePickerCanceledEventDestroyer=TcHmi.EventProvider.register(this.__timespanPickerInstance.getId()+".onCancel",()=>{this.__unlock(),this.__timePickerCanceledEventDestroyer?.(),this.__timePickerCanceledEventDestroyer=null,this.__formatMax=null}),this.__dataSymbolSchema){const value=this.__getHierarchicalSchema(this.__dataSymbolSchema,dataRow,columnDefinition);this.__formatMax=void 0===value?null:value}else if(this.__dataSchema){const value=this.__getHierarchicalSchema(this.__dataSchema,dataRow,columnDefinition);this.__formatMax=void 0===value?null:value}else this.__formatMax=null;this.__timespanPickerInstance.setMaxValue(this.__formatMax),this.__timespanPickerInstance.openTimespanPicker()}}__modifyData(valueNew,row,column,rowElement,forceWrite=!1,symbolWriteCallback){if(!this.__data)return symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Invalid Data. The data of the control is not defined.",domain:TcHmiTreeView.#tchmiFQN}),null;let columnDefinition=this.__internalColumns[column],valueOld=this.__originalIndexToDataElement(row,this.__data);isNamedColumn(columnDefinition)&&(valueOld=this.__readObjectProperty(valueOld,columnDefinition.name));let convertedValue=valueNew;if(null!=valueOld)switch(typeof valueOld){case"string":convertedValue=TcHmi.ValueConverter.toString(valueNew);break;case"number":convertedValue=TcHmi.ValueConverter.toNumber(valueNew);break;case"boolean":convertedValue=TcHmi.ValueConverter.toBoolean(valueNew);break;case"object":convertedValue=TcHmi.ValueConverter.toObject(valueNew)}null===convertedValue&&(convertedValue=valueNew);let needSorting=!1;if(!tchmi_equal(valueOld,convertedValue,this.__comparisonOptions)&&(!this.__indirectWrite||forceWrite)){if(isNamedColumn(columnDefinition))this.__writeObjectProperty(this.__originalIndexToDataElement(row,this.__data),columnDefinition.name,convertedValue);else if(this.__hierarchicalDataProperty){let element;for(let i=0;i<row.length;i++)0===i?element=this.__data.get(row[i]):element&&(element=element[this.__hierarchicalDataProperty]?.[row[i]]);element=convertedValue}let resolver=this.__objectResolvers.get("data");if(resolver&&resolver.resolver.write(this.__data.data),this.__dataSymbol)if(this.__pagingInfo.usePaging){if(!this.__dataSymbolExpression)return symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Invalid data symbol expression.",domain:TcHmiTreeView.#tchmiFQN}),null;let originalIndex=this.__dataIndexToOriginalIndex(row);if(this.__compareIndices(originalIndex,[-1]))return symbolWriteCallback?.({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:"Invalid index. Write target has no corrosponding original value.",domain:TcHmiTreeView.#tchmiFQN}),null;let writeValue=convertedValue,symbol=this.__dataSymbolExpression.getName()??"";if(this.__hierarchicalDataProperty)for(let i=0;i<originalIndex.length;i++)symbol+="["+originalIndex[i]+"]",i<originalIndex.length-1&&(symbol+="::"+this.__hierarchicalDataProperty);isNamedColumn(columnDefinition)&&(symbol+="::"+columnDefinition.name),TcHmi.Server.writeSymbol(symbol,writeValue,data=>{const error=this.__checkServerErrors(data);symbolWriteCallback?.(error),error&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:`%s%${symbol}%/s%`},TcHmi.Log.buildMessage(error))})}else this.__dataSymbol.write(this.__data.data,data=>{symbolWriteCallback?.(data.details??{code:data.error}),data.error!==TcHmi.Errors.NONE&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol.getExpression().toString()},TcHmi.Log.buildMessage(data.details))});rowElement&&this.__setRowClasses(rowElement,row),TcHmi.EventProvider.raise(this.__id+".onDataChanged",{index:[...row],property:isNamedColumn(columnDefinition)?columnDefinition.name:null,value:convertedValue}),TcHmi.EventProvider.raise(this.__id+".onSelectedItemChanged"),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedRowValue"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedCellValue"}),this.__dataSymbol||TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Data"}),this.__dataHasChanged||(this.__dataHasChanged=!0,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"DataHasChanged"}));for(let i=0,ii=this.__internalSorting.length;i<ii;i++){if(!this.__internalSorting[i].name&&!isNamedColumn(columnDefinition)){needSorting=!0;break}if(this.__internalSorting[i].name===columnDefinition.name){needSorting=!0;break}}}const originalIndex=this.__dataIndexToOriginalIndex(row),columnName=isNamedColumn(columnDefinition)?columnDefinition.name:void 0;if(this.__indirectWrite){let preparedValue=this.__preparedValues.find(item=>this.__compareIndices(item.index,originalIndex)&&item.column===columnName);preparedValue?preparedValue.userData=convertedValue:this.__preparedValues.push({index:originalIndex,column:columnName,columnIndex:column,originalData:valueOld,userData:convertedValue})}return this.__dataSymbol||symbolWriteCallback?.({code:TcHmi.Errors.NONE}),{convertedValue,needSorting}}__readObjectProperty(obj,path){if(void 0!==obj)try{return new TcHmi.ObjectPath(path).readFrom(obj)}catch(ex){return TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"SrcColumn"},TcHmi.Log.buildMessage({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:`Invalid path '${path}'.`,domain:this.__type,exception:ex})),null}}__writeObjectProperty(obj,path,valueNew){try{new TcHmi.ObjectPath(path).writeTo(obj,valueNew)}catch(ex){TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"SrcColumn"},TcHmi.Log.buildMessage({code:TcHmi.Errors.E_INVALID,message:TcHmi.Errors[TcHmi.Errors.E_INVALID],reason:`Invalid path '${path}'.`,domain:this.__type,exception:ex}))}}__lock(row,column,rowElement,targetElement){this.__lockState={row,column,propertyName:null,rowElement,editStarted:!1,targetElement};let internalColumn=this.__internalColumns[column];isNamedColumn(internalColumn)&&(this.__lockState.propertyName=internalColumn.name)}__unlock(){if(!this.__data||!this.__lockState)return;let start=this.__scrollInfo.firstIndex-this.__scrollInfo.buffer;start=start>0?start:0;let end=this.__scrollInfo.firstIndex+this.__scrollInfo.rowCount+this.__scrollInfo.buffer;end=end<=this.__dataCount?end:this.__dataCount;let lockedDataIndex=this.__originalIndexToDataIndex(this.__lockState.row),lockedRowIndex=this.__flatData.findIndex(element=>this.__compareIndices(element.index,lockedDataIndex)),lockedRowElement=this.__lockState.rowElement;this.__lockState=null;let tableBody=this.__elementDataTableBody[0];-1===lockedRowIndex||lockedRowElement.classList.contains("hidden")?tableBody.removeChild(lockedRowElement):lockedRowIndex<start&&tableBody.firstElementChild?tableBody.removeChild(tableBody.firstElementChild):lockedRowIndex>=end&&tableBody.lastElementChild&&tableBody.removeChild(tableBody.lastElementChild)}__processIsEnabled(){super.__processIsEnabled(),!this.getIsEnabled()&&this.__selectedCombobox&&this.__closeCombobox()}
/**
* Sets the isReadOnly attribute and calls the associated process function (processIsReadOnly).
* @preserve (Part of the public API)
*/setIsReadOnly(valueNew){let convertedValue=TcHmi.ValueConverter.toBoolean(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("IsReadOnly")),convertedValue!==this.__isReadOnly&&(this.__isReadOnly=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"IsReadOnly"}),this.__processIsReadOnly())}getIsReadOnly(){return this.__isReadOnly}__processIsReadOnly(){this.__element[0].classList.toggle("read-only",this.__isReadOnly??!1);for(const dropdown of Object.values(this.__comboboxDropdowns))dropdown.classList.toggle("read-only",this.__isReadOnly??!1);const inputs=this.__elementDataTableBody[0].getElementsByTagName("input");for(const input of inputs)input.readOnly=this.__isReadOnly??!1;this.__dateTimePickerInstance?.setIsReadOnly(this.__isReadOnly??!1),this.__timespanPickerInstance?.setIsReadOnly(this.__isReadOnly??!1)}setColumns(valueNew){if(this.__lockState)return;let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("Columns"));let resolverInfo=this.__objectResolvers.get("columns");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("Columns")?.type});this.__objectResolvers.set("columns",{resolver,watchCallback:this.__onResolverForColumnsWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForColumnsWatchCallback)})}__onResolverForColumnsWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("columns"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__columns)||(this.__columns=data.value,Array.isArray(data.value)?this.__internalColumns=data.value:this.__internalColumns=[data.value],TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Columns"}),this.__processColumns()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"Columns"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getColumns(){return this.__columns}__processColumns(){this.__data&&this.__data.length>0&&"object"!=typeof this.__data.get(0)&&0===this.__internalColumns.length&&(this.__internalColumns=[{label:"",control:"TextBlock",width:70,widthUnit:"px",resize:!0,minWidth:70,minWidthUnit:"px",editable:!0,horizontalAlignment:"Center",verticalAlignment:"Center",cellBackground:null,textColor:null}]),this.__internalColumns.length>1?this.__elementDataTableBody[0].classList.remove("single-column"):this.__elementDataTableBody[0].classList.add("single-column");let borderWidth=void 0!==this.__tableBorderWidth?this.__tableBorderWidth:1,requiredMinWidth=Math.max(borderWidth,this.__resizeElementMinWidth),elementWidth=this.__element[0].clientWidth-this.__columnWidths[0].pixelWidth,toPercentWidth=width=>elementWidth>0?width/elementWidth*100:0;this.__columnWidths.splice(1),this.__comboboxDropdowns={};for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let column=this.__internalColumns[i],minWidthUnit=column.minWidthUnit;minWidthUnit=minWidthUnit||"px";let convertedReqMinWidth="px"===minWidthUnit?requiredMinWidth:toPercentWidth(requiredMinWidth),minWidth=column.minWidth;minWidth=null!=minWidth?minWidth:0,minWidth=minWidth>=convertedReqMinWidth?minWidth:convertedReqMinWidth,this.__columnWidths.push({width:0,widthUnit:column.widthUnit,pixelWidth:0,minWidth,minWidthUnit,resizable:(column.resize??!1)&&"factor"!==column.widthUnit}),this.__resizeColumn(i+1,column.width,!0),"ComboBox"===column.control&&this.__createDropDown(column.dataDefinitions)}null!==this.__selectedCombobox&&this.__closeCombobox(),this.__preparedValues=this.__preparedValues.filter(userInput=>this.__internalColumns?.some(column=>isNamedColumn(column)?column.name===userInput.column:void 0===userInput.column)),this.__buildHeader(),this.__updateTable(1)}__createDropDown(dataDefinitions){let divDropdown=document.createElement("div");if(divDropdown.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-dropdown","tchmi-box"),divDropdown.classList.toggle("read-only",this.__isReadOnly??!1),divDropdown.setAttribute("tabindex","-1"),dataDefinitions&&Array.isArray(dataDefinitions))for(let j=0,jj=dataDefinitions.length;j<jj;j++){let dataDef=dataDefinitions[j],text=tchmi_decode_control_characters(dataDef.text),element=document.createElement("div");element.setAttribute("class","TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-dropdown-element"),element.setAttribute("data-index",j.toString()),element.setAttribute("data-value",dataDef.value.toString()),element.textContent=text,divDropdown.appendChild(element)}this.__comboboxDropdowns[JSON.stringify(dataDefinitions)]=divDropdown}__executeFormatFunction(format,value,valueMetaData){if(null!=format&&!1!==format.active){const args=[value,valueMetaData];let res=null,f=new TcHmi.Function(format);if(f.isProcessedAsync())TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,`Execution of function=${format.fn} was aborted because it will be processed asynchronous and a synchronous running function call is required. Either the function is running asynchronous by definition or asynchronous running symbols were added to the list of parameters.`);else{const parameters=f.getDescription()?.function.arguments;if(parameters?.length){const parameterSchema=tchmi_clone_object(TcHmi.Type.getSchema(parameters[0].type));if(parameterSchema&&TcHmi.Type.Schema.matchesSchemaType(value,parameterSchema))return f.executeEx(args,data=>{data.error===TcHmi.Errors.NONE&&void 0!==data.result?res=data.result:TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"Data"},"Execution of function="+format.fn+" failed with error: "+TcHmi.Log.buildMessage(data.details))}),f.destroy(),res}}}return null!=value?value+"":""}__generateSchemaByDataDefintions(value,columnDefinition){let format,minimum,maximum,enumValues,jsonType="string",decimalDigits=0,dataDefinitions=columnDefinition?.dataDefinitions,type=typeof value;switch(type){case"bigint":jsonType="number";break;case"symbol":case"function":jsonType="string";break;case"undefined":jsonType="null";break;default:jsonType=type}switch(columnDefinition?.control){case"DateTimeInput":format="date-time";break;case"TimespanInput":format="timespan"}if(Array.isArray(dataDefinitions))for(let def of dataDefinitions)def.value&&"string"==typeof def.value&&(enumValues??=[],enumValues.push(def.value));else minimum=dataDefinitions?.minValue,maximum=dataDefinitions?.maxValue,decimalDigits=dataDefinitions?.decimalDigits??0;return decimalDigits>0&&"number"===jsonType&&(jsonType="integer"),{type:jsonType,minimum,maximum,enum:enumValues,readOnly:!columnDefinition?.editable,format}}setData(valueNew){this.__dataSymbol?this.__overriddenData=valueNew:this.__setData(valueNew)}__setData(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("Data"));let resolverInfo=this.__objectResolvers.get("data");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("Data")?.type});this.__objectResolvers.set("data",{resolver,watchCallback:this.__onResolverForDataWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForDataWatchCallback)})}__onResolverForDataWatchCallback(data){if(this.__isAttached||this.__suspendObjectResolver("data"),data.error!==TcHmi.Errors.NONE)return void TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"Data"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`);let newData;this.__dataHasChanged&&(this.__dataHasChanged=!1,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"DataHasChanged"})),newData=data.value?this.__pagingInfo.usePaging?new TcHmiDatagrid.PagedArray(data.value,this.__pagingInfo.actualOffset-this.__pagingInfo.arrayStart,this.__pagingInfo.maxEntries):new TcHmiDatagrid.PagedArray(data.value):new TcHmiDatagrid.PagedArray([]);(!this.__pagingInfo.usePaging||this.__pagingInfo.actualOffset-this.__pagingInfo.arrayStart===this.__data?.offset&&this.__pagingInfo.maxEntries===this.__data?.length)&&tchmi_equal(newData.data,this.__data?.data,this.__comparisonOptions)||(this.__data=newData,this.__filterSortMap=null,this.__dataSymbol||TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Data"}),this.__processData())}getData(){return this.__dataSymbol?void 0:this.__data?.data}__processData(){let recalcColumnWidths=!1;if(!this.__data||this.__oldData&&this.__oldData.length===this.__data.length||(this.__lockState&&(this.__originalIndexToDataIndex(this.__lockState.row)[0]>=this.__data.length||this.__originalIndexToDataIndex(this.__lockState.row)[0]<0)&&this.__unlock(),null!==this.__selectedCell&&null!==this.__selectedCell.rowIndex&&(this.__originalIndexToDataIndex(this.__selectedCell.rowIndex)[0]>=this.__data.length||this.__originalIndexToDataIndex(this.__selectedCell.rowIndex)[0]<0)&&(this.__selectedCell=null,TcHmi.EventProvider.raise(this.__id+".onSelectedItemChanged"),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedRowIndex"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedColumnIndex"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedRowValue"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedCellValue"})),this.__data.length>this.__scrollInfo.rowCount&&(this.__oldData?.length??0)>this.__scrollInfo.rowCount||(recalcColumnWidths=!0)),this.__data&&this.__data.length>0&&"object"!=typeof this.__data.get(0)&&0===this.__internalColumns.length){this.__internalColumns=[{label:"",control:"TextBlock",width:70,widthUnit:"px",resize:!0,minWidth:70,minWidthUnit:"px",editable:!0,horizontalAlignment:"Center",verticalAlignment:"Center",cellBackground:null,textColor:null}];let borderWidth=void 0!==this.__tableBorderWidth?this.__tableBorderWidth:1,requiredMinWidth=Math.max(borderWidth,this.__resizeElementMinWidth);this.__columnWidths.splice(1);for(let i=0,ii=this.__internalColumns.length;i<ii;i++){let minWidth=this.__internalColumns[i].minWidth;minWidth=null!=minWidth?minWidth:0,minWidth=minWidth>=requiredMinWidth?minWidth:requiredMinWidth;let minWidthUnit=this.__internalColumns[i].minWidthUnit;minWidthUnit=minWidthUnit||"px",this.__columnWidths.push({width:0,widthUnit:this.__internalColumns[i].widthUnit,pixelWidth:0,minWidth,minWidthUnit,resizable:(this.__internalColumns[i].resize??!1)&&"factor"!==this.__internalColumns[i].widthUnit}),this.__resizeColumn(i+1,this.__internalColumns[i].width,!0)}this.__buildHeader()}if(this.__filterAndSort(),this.__updateTable(0),recalcColumnWidths&&this.__recalcAllColumnWidths(),this.__oldData&&this.__data&&null!==this.__selectedCell&&null!==this.__selectedCell.rowIndex){let index=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);if(!this.__compareIndices(index,[-1])&&!tchmi_equal(this.__originalIndexToDataElement(index,this.__oldData),this.__originalIndexToDataElement(index,this.__data),this.__comparisonOptions)&&(TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedRowValue"}),this.__selectedCell.columnIndex>=0)){let columnDefinition=this.__internalColumns[this.__selectedCell.columnIndex];if(isNamedColumn(columnDefinition)&&this.__selectedCell){let left=this.__readObjectProperty(this.__originalIndexToDataElement(index,this.__oldData),columnDefinition.name),right=this.__readObjectProperty(this.__originalIndexToDataElement(index,this.__data),columnDefinition.name);tchmi_equal(left,right,this.__comparisonOptions)||(TcHmi.EventProvider.raise(this.__id+".onSelectedItemChanged"),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedCellValue"}))}else TcHmi.EventProvider.raise(this.__id+".onSelectedItemChanged"),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedCellValue"})}}this.__oldData=this.__data?.copy()}writePreparedValues(writeResponseCallback){if(!this.__indirectWrite||0===this.__preparedValues.length)return void writeResponseCallback?.({code:TcHmi.Errors.NONE});const modifications=this.__preparedValues.length,results=[],modifyResponseCallback=data=>{if(writeResponseCallback&&(results.push(data??{code:TcHmi.Errors.NONE}),results.length===modifications)){let firstError=results.find(result=>result.code!==TcHmi.Errors.NONE);writeResponseCallback(firstError??{code:TcHmi.Errors.NONE})}};this.__oldData=this.__data?.copy();for(const input of this.__preparedValues)"RadioButton"===this.__internalColumns[input.columnIndex].control?this.__modifyRadioButton(input.index,input.columnIndex,void 0,!0,modifyResponseCallback):this.__modifyData(input.userData,input.index,input.columnIndex,void 0,!0,modifyResponseCallback);this.__preparedValues=[];let liveElements=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value");for(;liveElements.length;)liveElements[0].classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value");this.__updateTable(0),this.__oldData=this.__data?.copy()}resetPreparedValues(){if(!this.__indirectWrite)return;for(const input of this.__preparedValues)input.userData=input.originalData,this.__oldData&&input.column&&this.__writeObjectProperty(this.__originalIndexToDataElement(input.index,this.__oldData),input.column,void 0);this.__preparedValues=[];let liveElements=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value");for(;liveElements.length;)liveElements[0].classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-prepared-value");this.__updateTable(0),this.__oldData=this.__data?.copy()}__checkForIndirectWriteValue(value,row,column){let result={value,isPreparedValue:!1};if(!this.__indirectWrite)return result;let originalIndex=this.__dataIndexToOriginalIndex(row),userData=this.__preparedValues.find(x=>this.__compareIndices(x.index,originalIndex)&&x.columnIndex===column)?.userData;return void 0===userData||tchmi_equal(userData,value,this.__comparisonOptions)||(result.value=userData,result.isPreparedValue=!0),result}setDataSchema(valueNew){this.__dataSymbol?this.__overriddenDataSchema=valueNew:this.__setDataSchema(valueNew)}__setDataSchema(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("DataSchema"));let resolverInfo=this.__objectResolvers.get("dataSchema");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("DataSchema")?.type});this.__objectResolvers.set("dataSchema",{resolver,watchCallback:this.__onResolverForDataSchemaWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForDataSchemaWatchCallback)})}__onResolverForDataSchemaWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("dataSchema"),data.error===TcHmi.Errors.NONE?tchmi_equal(this.__dataSchema,data.value)||(this.__dataSchema=data.value,this.__dataSymbol||TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"DataSchema"}),this.__processDataSchema()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSchema"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getDataSchema(){return this.__dataSymbol?void 0:this.__dataSchema}__processDataSchema(){setTimeout(()=>{this.__editorInfo=this.__dataSchema?SchemaParser.parse(this.__dataSchema):null,this.__updateTable(1)})}setDataSymbol(valueNew){let newSymbol=valueNew;if(null===newSymbol){let symbolExpression=this.getAttributeDefaultValueInternal("DataSymbol");symbolExpression&&(newSymbol=new TcHmi.Symbol(symbolExpression))}this.__dataSymbol!==newSymbol&&(this.__destroyDataSymbolWatch&&(this.__destroyDataSymbolWatch(),this.__destroyDataSymbolWatch=null),this.__dataSymbol&&this.__dataSymbol.destroy(),newSymbol instanceof TcHmi.Symbol?this.__dataSymbol=newSymbol:(this.__dataSymbol,this.__dataSymbol=null),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"DataSymbol"}),this.__processDataSymbol())}getDataSymbol(){return this.__dataSymbol}__processDataSymbol(unsubscribeOnly=!1){if(this.__dataSymbol?.resolveSchema(data=>{data.error===TcHmi.Errors.NONE&&data.schema?this.__dataSymbolSchema=data.schema:TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},TcHmi.Log.buildMessage(data.details))}),TCHMI_DESIGNER)if(this.__dataSymbol){if(this.__overriddenData=this.__data?.data??null,this.__overriddenDataSchema=this.__dataSchema,this.__dataSymbolSchema)if(this.__dataSymbolSchema?.function&&this.__dataSymbolSchema.writeValue)this.__setData(null);else{let srcData=TcHmi.Type.Schema.resolveDefault(this.__dataSymbolSchema);this.__dataSymbolTransform&&srcData&&(srcData=srcData.map(this.__dataSymbolTransform)),this.__setData(srcData)}}else void 0!==this.__overriddenData&&(this.__setData(this.__overriddenData),this.__overriddenData=void 0),void 0!==this.__overriddenDataSchema&&(this.__setDataSchema(this.__overriddenDataSchema),this.__overriddenDataSchema=void 0);else if(this.__pagingInfo.usePaging?(null!==this.__pagingInfo.subscriptionId&&(TcHmi.Server.unsubscribeEx(this.__pagingInfo.subscriptionId,null,data=>{data.error!==TcHmi.Errors.NONE&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},TcHmi.Log.buildMessage(data.details))}),this.__pagingInfo.subscriptionId=null),this.__pagingInfo.usePaging=!1):this.__destroyDataSymbolWatch&&(this.__destroyDataSymbolWatch(),this.__destroyDataSymbolWatch=null),this.__isAttached&&!unsubscribeOnly){if(!this.__dataSymbol)return void 0!==this.__overriddenData&&(this.__setData(this.__overriddenData),this.__overriddenData=void 0),void(void 0!==this.__overriddenDataSchema&&(this.__setDataSchema(this.__overriddenDataSchema),this.__overriddenDataSchema=void 0));this.__overriddenData=this.__data?.data??null,this.__setData(null),this.__overriddenDataSchema=this.__dataSchema,this.__setDataSchema(null),this.__dataSymbol.getExpression().getType()===TcHmi.SymbolType.Server&&this.__filterStrategy!==TcHmi.FilterInstance.Strategy.DepthFirst?(this.__dataSymbolExpressionWatchDestroyer?.(),this.__dataSymbolExpressionWatchDestroyer=this.__dataSymbol.watchExpression(data=>{this.__dataSymbol&&(data.error===TcHmi.Errors.NONE&&data.expressionResolved?(this.__dataSymbolExpression=data.expressionResolved,this.__pagingInfo.usePaging=!0,this.__updatePaging(!0)):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},"Failed to resolve expression."))})):this.__destroyDataSymbolWatch=this.__dataSymbol.watch(this.__onDataSymbolWatch)}}__updatePaging(force=!1){if(!this.__dataSymbol||!this.__dataSymbolExpression||!this.__pagingInfo.usePaging||0===this.__scrollInfo.rowCount)return;let offset;if(this.__data?.data.length||this.__element.append(this.__elementLoadingSpinner),offset=this.__flatData?.[this.__scrollInfo.firstIndex]?.index[0]?this.__flatData[this.__scrollInfo.firstIndex]?.index[0]-this.__pagingInfo.buffer:this.__scrollInfo.firstIndex-this.__pagingInfo.buffer,!force&&null!==this.__pagingInfo.subscriptionId&&Math.abs(this.__pagingInfo.theoreticalOffset-offset)<this.__pagingInfo.buffer/2)return;let average=data=>data.length>0?data.reduce((accumulator,current)=>accumulator+current)/data.length:0,now=Date.now();if(this.__pagingInfo.timing.lastUpdateTime>0){let elapsed=now-this.__pagingInfo.timing.lastUpdateTime,updateAverage=average(this.__pagingInfo.timing.responseLatencies);(0===updateAverage||elapsed<3*updateAverage)&&(this.__pagingInfo.timing.updateTimings.push(elapsed),this.__pagingInfo.timing.updateTimings.length>5&&this.__pagingInfo.timing.updateTimings.shift())}if(this.__pagingInfo.timing.lastUpdateTime=now,null!==this.__pagingInfo.subscriptionId&&(TcHmi.Server.unsubscribeEx(this.__pagingInfo.subscriptionId,null,data=>{data.error!==TcHmi.Errors.NONE&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},TcHmi.Log.buildMessage(data.details))}),this.__pagingInfo.subscriptionId=null),this.__dataSymbolSchema?.function&&this.__dataSymbolSchema.writeValue&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},"DataSymbol is a function with parameters that cannot be displayed by the control."),this.__pagingInfo.timing.isScrolling&&average(this.__pagingInfo.timing.responseLatencies)>average(this.__pagingInfo.timing.updateTimings))return;this.__pagingInfo.theoreticalOffset=offset;const expressionOptions=this.__dataSymbolExpression.getOptions(),arrayStart=expressionOptions.Start??0,arrayEnd=expressionOptions.End??null;offset=Math.max(offset,0)+arrayStart;const symbol=this.__dataSymbolExpression.getName()??"",requestOptions={timeout:expressionOptions.Timeout,parallel:expressionOptions.Parallel,groupId:expressionOptions.SubscriptionGroup},commandOptions=["SendErrorMessage"];"Poll"===expressionOptions.SubscriptionMode&&commandOptions.push("Poll"),expressionOptions.UniqueHash&&commandOptions.push("UniqueHash");let limit=this.__scrollInfo.rowCount+2*this.__pagingInfo.buffer;null!==arrayEnd&&(limit=Math.min(limit,arrayEnd-offset+1));let commands=[{commandOptions,symbol,version:expressionOptions.Version,offset,limit,orderBy:this.__internalSorting.map(info=>(info.name??"{value}")+" "+("Descending"===info.order?"DESC":"ASC")).join(", "),filter:this.__filter??void 0,filterMap:[],maxSubSymbolDepth:2}];for(let expandedElement of this.__expandedElements){let index=expandedElement.index.split(":"),nestedSymbolName=this.__dataSymbolExpression.getName()??"";if(this.__hierarchicalDataProperty)for(let i=0;i<index.length;i++)nestedSymbolName+="["+index[i]+"]::"+this.__hierarchicalDataProperty;let command={commandOptions,symbol:nestedSymbolName,version:expressionOptions.Version,orderBy:this.__internalSorting.map(info=>(info.name??"{value}")+" "+("Descending"===info.order?"DESC":"ASC")).join(", "),filter:this.__filter??void 0,filterMap:[],maxSubSymbolDepth:2};commands.push(command)}this.__subscriptionData.clear(),this.__lastReportedErrorDetail=void 0,this.__pagingInfo.subscriptionId=TcHmi.Server.subscribeEx(commands,expressionOptions.Interval??TcHmi.Config.get().tcHmiServer.websocketIntervalTime??500,requestOptions,this.__onDataSymbolPage),this.__pagingInfo.timing.lastRequestTime=now,this.__pagingInfo.timing.firstResponsePending=!0,this.__pagingInfo.arrayStart=arrayStart,this.__pagingInfo.arrayEnd=arrayEnd}__onDataSymbolPage(data){this.__pagingInfo.timing.firstResponsePending&&(this.__pagingInfo.timing.firstResponsePending=!1,this.__pagingInfo.timing.responseLatencies.push(Date.now()-this.__pagingInfo.timing.lastRequestTime),this.__pagingInfo.timing.responseLatencies.length>3&&this.__pagingInfo.timing.responseLatencies.shift()),this.__elementLoadingSpinner.remove();const error=this.__checkServerErrors(data);if(error)return tchmi_equal(error,this.__lastReportedErrorDetail)||TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},TcHmi.Log.buildMessage(error)),this.__lastReportedErrorDetail=error,this.__pagingInfo.actualOffset=0,this.__pagingInfo.maxEntries=0,this.__pagingInfo.filterMap=[],this.__setData(null),void this.__addNoElementsMessage();for(let i=0;i<data.response.commands.length;i++){let command=data.response.commands[i];if(!command?.readValue)return TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},TcHmi.Log.buildMessage({code:TcHmi.Errors.E_SERVER_READVALUE_MISSING,message:TcHmi.Errors[TcHmi.Errors.E_SERVER_READVALUE_MISSING],reason:"Missing readValue in response from server with id: '"+data.response.id+"'.",domain:this.__type})),void(0===this.__data?.length&&this.__addNoElementsMessage());this.__subscriptionData.set(command.symbol,{readValue:command.readValue,filterMap:command.filterMap??[],offset:command.offset,maxEntries:command.maxEntries,orderBy:command.orderBy})}let srcData=null,entriesToRemove=[];this.__subscriptionData.forEach((data,symbolName)=>{let originalIndex=this.__symbolNameToOriginalIndex(symbolName);if(null!==originalIndex&&originalIndex.length>0){let strIndex=originalIndex.join(":");-1===this.__expandedElements.findIndex(x=>x.index===strIndex)&&entriesToRemove.push(symbolName)}});for(let key of entriesToRemove)this.__subscriptionData.delete(key);const keys=Array.from(this.__subscriptionData.keys()).sort((a,b)=>a.length>b.length?1:-1);for(let i=0;i<keys.length;i++){let subscriptionData=this.__subscriptionData.get(keys[i]);if(subscriptionData)if(0===i){let data=subscriptionData.readValue.map(value=>this.__dataSymbolTransform?this.__dataSymbolTransform(value):value),maxEntries=subscriptionData.maxEntries?subscriptionData.maxEntries:data.length;this.__pagingInfo.usePaging&&(maxEntries=Math.min(maxEntries,(null!==this.__pagingInfo.arrayEnd?this.__pagingInfo.arrayEnd+1:maxEntries)-this.__pagingInfo.arrayStart)),this.__pagingInfo.actualOffset=subscriptionData.offset??0,this.__pagingInfo.maxEntries=maxEntries;let firstLevelFilterMap=subscriptionData.filterMap??[];this.__pagingInfo.filterMap=[];for(let filterMapElement of firstLevelFilterMap)this.__pagingInfo.filterMap.push({index:[filterMapElement]});this.__lastSorting!==subscriptionData.orderBy&&this.__expandedElements.forEach(x=>{x.oldDisplayedIndex=void 0}),this.__lastSorting=subscriptionData.orderBy,srcData=new TcHmiDatagrid.PagedArray(data,this.__pagingInfo.actualOffset-this.__pagingInfo.arrayStart,this.__pagingInfo.maxEntries)}else{let subSrcData=subscriptionData.readValue.map(value=>this.__dataSymbolTransform?this.__dataSymbolTransform(value):value);if(!this.__dataSymbol||!srcData||!this.__hierarchicalDataProperty)return;let originalIndex=this.__symbolNameToOriginalIndex(keys[i]),dataIndex=this.__originalIndexToDataIndex(originalIndex??[]);if(-1!==dataIndex.findIndex(x=>-1===x))continue;if(this.__writeObjectProperty(this.__originalIndexToDataElement(dataIndex,srcData),this.__hierarchicalDataProperty,subSrcData),subscriptionData.filterMap){let subFilterMap=[];for(let filterMapElement of subscriptionData.filterMap)subFilterMap.push({index:[...dataIndex,filterMapElement]});let filterMapParent=null;for(let i=0;i<dataIndex.length;i++){let currentIndex=dataIndex[i];0===i&&(currentIndex-=this.__pagingInfo.actualOffset),filterMapParent?filterMapParent.children&&(filterMapParent=filterMapParent.children[currentIndex]):filterMapParent=this.__pagingInfo.filterMap[currentIndex]}filterMapParent&&(filterMapParent.children=subFilterMap)}}}this.__setData(srcData?.data??null)}__checkServerErrors(data){if(data.error!==TcHmi.Errors.NONE)return data.details??{code:data.error};if(!data.response)return{code:TcHmi.Errors.E_SERVER_RESPONSE_MISSING,message:TcHmi.Errors[TcHmi.Errors.E_SERVER_RESPONSE_MISSING],reason:"Missing response from server.",domain:this.__type};if(data.response.error)return data.response.error;if(!data.response.commands||0===data.response.commands.length)return{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};const commandErrors=[];for(const command of data.response.commands)command.error&&commandErrors.push(command.error);return commandErrors.length>0?1===commandErrors.length?commandErrors[0]:{code:TcHmi.Errors.E_SERVER_COMMAND_ERROR,message:TcHmi.Errors[TcHmi.Errors.E_SERVER_COMMAND_ERROR],reason:"Multiple errors in commands of server response with id "+data.response.id,domain:this.__type,errors:commandErrors}:null}__onDataSymbolWatch(data){data.error!==TcHmi.Errors.NONE&&TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"DataSymbol",Symbol:this.__dataSymbol?.getExpression().toString()},TcHmi.Log.buildMessage(data.details)),this.__setData(data.value??null)}__setDataSymbolTransform(valueNew){valueNew!==this.__dataSymbolTransform&&(this.__dataSymbolTransform=valueNew)}setSorting(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew,this.getAttributeDefaultValueInternal("Sorting")),resolverInfo=this.__objectResolvers.get("sorting");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("Sorting")?.type});this.__objectResolvers.set("sorting",{resolver,watchCallback:this.__onResolverForSortingWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForSortingWatchCallback)})}__onResolverForSortingWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("sorting"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__sorting)||(this.__sorting=data.value,this.__internalSorting=tchmi_clone_object(data.value)||[],TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Sorting"}),this.__processSorting()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"Sorting"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getSorting(){return this.__sorting}__processSorting(){this.__filterAndSort(),this.__pagingInfo.usePaging?this.__updatePaging(!0):this.__updateTable(0);let tableHeaders=this.__elementHeaderTable[0].getElementsByTagName("th");for(let i=0,ii=tableHeaders.length;i<ii;i++){if(tableHeaders[i].classList.contains("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"))continue;let sortingElement=tableHeaders[i].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-sort-element-child")[0];if(sortingElement){let propertyName;sortingElement.classList.remove("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-sort-asc","TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-sort-desc"),isNamedColumn(this.__internalColumns[0])&&(propertyName=tableHeaders[i].dataset.name);for(let j=0,jj=this.__internalSorting.length;j<jj;j++)if(this.__internalSorting[j].name===propertyName){switch(this.__internalSorting[j].order){case"Ascending":sortingElement.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-sort-asc");break;case"Descending":sortingElement.classList.add("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-sort-desc")}break}}}}setFilter(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew,this.getAttributeDefaultValueInternal("Filter")),resolverInfo=this.__objectResolvers.get("filter");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("Filter")?.type});this.__objectResolvers.set("filter",{resolver,watchCallback:this.__onResolverForFilterWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForFilterWatchCallback)})}__onResolverForFilterWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("filter"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__filter)||(this.__filter=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"Filter"}),this.__processFilter()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"Filter"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getFilter(){return this.__filter}__processFilter(){if(this.__filter){this.__filterInstance=new TcHmi.FilterInstance(this.__filter);const compile=this.__filterInstance.compile();compile.error!==TcHmi.Errors.NONE&&(TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"Filter"},`Error while compiling filter: ${TcHmi.Log.buildMessage(compile.details)}`),this.__filterInstance=null)}else this.__filterInstance=null;this.__filterAndSort(),this.__expandedElements.forEach(x=>{x.oldDisplayedIndex=void 0}),this.__pagingInfo.usePaging?this.__updatePaging(!0):this.__updateTable(0)}setFilterStrategy(valueNew){let convertedValue=TcHmi.ValueConverter.toEnum(valueNew,TcHmi.FilterInstance.Strategy);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("FilterStrategy")),convertedValue!==this.__filterStrategy&&(this.__filterStrategy=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"FilterStrategy"}),this.__processFilterStrategy())}getFilterStrategy(){return this.__filterStrategy}__processFilterStrategy(){this.__expandedElements.forEach(x=>{x.oldDisplayedIndex=void 0}),this.__dataSymbol?this.__processDataSymbol():(this.__filterAndSort(),this.__updateTable(0))}setIndirectWrite(valueNew){let convertedValue=TcHmi.ValueConverter.toBoolean(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("IndirectWrite")),convertedValue!==this.__indirectWrite&&(this.__indirectWrite=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"IndirectWrite"}),this.__processIndirectWrite())}getIndirectWrite(){return this.__indirectWrite}__processIndirectWrite(){}setRowClassesProvider(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowClassesProvider")),tchmi_equal(convertedValue,this.__rowClassesProvider)||(this.__rowClassesProvider=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowClassesProvider"}),this.__processRowClassesProvider())}getRowClassesProvider(){return this.__rowClassesProvider}__processRowClassesProvider(){let rows=this.__elementDataTableBody[0].children;for(let i=0,ii=rows.length;i<ii;i++){let row=rows[i],dataIndex=row.dataset.row?.split(":").map(Number)??[-1];dataIndex&&this.__setRowClasses(row,dataIndex)}}__executeRowClassesProviderFunction(originalIndex){if(void 0!==this.__data&&void 0!==this.__rowClassesProvider&&null!==this.__rowClassesProvider&&!1!==this.__rowClassesProvider.active){let rowValue=this.__originalIndexToDataElement(originalIndex,this.__data);if(void 0===rowValue)return[];let rowNumber=!this.__pagingInfo.usePaging&&this.__filterSortMap?this.__originalIndexToFilterMapElement(originalIndex,this.__filterSortMap):originalIndex;if(this.__compareIndices(rowNumber,[-1]))return[];let args=[rowValue,originalIndex,rowNumber],res=null,f=new TcHmi.Function(this.__rowClassesProvider);if(!f.isProcessedAsync())return f.executeEx(args,data=>{data.error===TcHmi.Errors.NONE&&void 0!==data.result?res=data.result:TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,`Execution of function=${this.__rowClassesProvider.fn}\n failed with error. Details: ${void 0!==data.details?TcHmi.Log.buildMessage(data.details):TcHmi.Errors[data.error]}`)}),f.destroy(),res??[];TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"RowNumbersCellPadding"},`Execution of function=${this.__rowClassesProvider.fn}\n was aborted because it will be processed asynchronous and a synchronous running function call is required. Either the function is running asynchronous by definition or asynchronous running symbols were added to the list of parameters.`)}return[]}__setRowClasses(row,dataIndex){let hidden=this.__lockState&&this.__lockState.rowElement===row&&row.classList.contains("hidden");if(row.setAttribute("class","TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row"),this.__selectedCell&&null!==this.__selectedCell.rowIndex){let index=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);!this.__compareIndices(index,[-1])&&this.__compareIndices(index,dataIndex)&&row.classList.add("focused")}hidden&&row.classList.add("hidden");let index=row.dataset.row;this.__pagingInfo.usePaging&&index&&(index=this.__dataIndexToOriginalIndex(index.split(":").map(Number)).join(":")),-1!==this.__expandedElements.findIndex(x=>x.index===index)?row.classList.add("expanded"):row.classList.remove("expanded");let classes=this.__executeRowClassesProviderFunction(dataIndex);for(let j=0,jj=classes.length;j<jj;j++)row.classList.add(classes[j])}setHeaderHeight(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderHeight")),convertedValue!==this.__headerHeight&&(this.__headerHeight=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderHeight"}),this.__processHeaderHeight())}getHeaderHeight(){return this.__headerHeight}__processHeaderHeight(){null!==this.__headerHeight&&void 0!==this.__headerHeight&&this.__headerHeightUnit&&(this.__recalcRowCount(),TcHmi.StyleProvider.setSimpleElementStyle(this.__elementHeaderScroll,"height",this.__headerHeight+this.__headerHeightUnit),this.__showHeader?TcHmi.StyleProvider.setSimpleElementStyle(this.__elementDataScroll,"height","calc(100% - "+this.__headerHeight+(this.__headerHeightUnit||"px")+")"):TcHmi.StyleProvider.setSimpleElementStyle(this.__elementDataScroll,"height","100%"),"Content"===this.getHeightMode()&&this.__processHeight())}setHeaderHeightUnit(valueNew){let convertedValue=TcHmi.ValueConverter.toDimensionUnit(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderHeightUnit")),convertedValue!==this.__headerHeightUnit&&(this.__headerHeightUnit=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderHeightUnit"}),this.__processHeaderHeightUnit())}getHeaderHeightUnit(){return this.__headerHeightUnit}__processHeaderHeightUnit(){this.__processHeaderHeight()}setHeaderCellPadding(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderCellPadding"));let resolverInfo=this.__objectResolvers.get("headerCellPadding");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("HeaderCellPadding")?.type});this.__objectResolvers.set("headerCellPadding",{resolver,watchCallback:this.__onResolverForHeaderCellPaddingWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForHeaderCellPaddingWatchCallback)})}__onResolverForHeaderCellPaddingWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("headerCellPadding"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__headerCellPadding)||(this.__headerCellPadding=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderCellPadding"}),this.__processHeaderCellPadding()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"HeaderCellPadding"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getHeaderCellPadding(){return this.__headerCellPadding}__processHeaderCellPadding(){TcHmi.StyleProvider.processContentPadding(this.__elementHeaderTable[0].querySelectorAll("th.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header"),this.__headerCellPadding)}setRowHeight(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowHeight")),convertedValue!==this.__rowHeight&&(this.__rowHeight=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowHeight"}),this.__processRowHeight())}getRowHeight(){return this.__rowHeight}__processRowHeight(){void 0!==this.__tableBorderWidth&&void 0!==this.__rowHeight&&(this.__recalcRowCount(),TcHmi.StyleProvider.setSimpleElementStyle(this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row"),"height",this.__rowHeight+"px"),TcHmi.StyleProvider.setSimpleElementStyle(this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td"),"height",this.__rowHeight+"px"),this.__setCheckboxRadioButtonSize(),this.__element[0].style.setProperty("--row-height",this.__rowHeight+"px"),"Content"===this.getHeightMode()&&this.__processHeight(),this.__asyncWorkData["Controls.Beckhoff.TcHmiTreeView.triggerProcessUnitSize"]=!0,this.__requestAsyncWork())}getRowHeightUnit(){return"px"}setTableBorderColor(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TableBorderColor"));let resolverInfo=this.__objectResolvers.get("tableBorderColor");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("TableBorderColor")?.type});this.__objectResolvers.set("tableBorderColor",{resolver,watchCallback:this.__onResolverForTableBorderColorWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForTableBorderColorWatchCallback)})}__onResolverForTableBorderColorWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("tableBorderColor"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__tableBorderColor)||(this.__tableBorderColor=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TableBorderColor"}),this.__processTableBorderColor()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"TableBorderColor"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getTableBorderColor(){return this.__tableBorderColor}__processTableBorderColor(){TcHmi.StyleProvider.processBorderColor(this.__elementHeaderTable[0].getElementsByTagName("th"),this.__tableBorderColor),TcHmi.StyleProvider.processBorderColor(this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td"),this.__tableBorderColor),TcHmi.StyleProvider.processBorderColor(this.__elementHeaderScroll,this.__tableBorderColor)}setTableBorderWidth(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TableBorderWidth")),convertedValue!==this.__tableBorderWidth&&(this.__tableBorderWidth=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TableBorderWidth"}),this.__processTableBorderWidth(),this.__processRowHeight())}getTableBorderWidth(){return this.__tableBorderWidth}__processTableBorderWidth(){const headerBorder={right:this.__tableBorderWidth,rightUnit:"px",bottom:0,left:0,top:0},cellBorder={right:this.__tableBorderWidth,rightUnit:"px",bottom:this.__tableBorderWidth,bottomUnit:"px",top:0,left:0},headerDivBorder={bottom:this.__tableBorderWidth,bottomUnit:"px",left:0,top:0,right:0};TcHmi.StyleProvider.processBorderWidth(this.__elementHeaderTable[0].getElementsByTagName("th"),headerBorder),TcHmi.StyleProvider.processBorderWidth(this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td"),cellBorder),TcHmi.StyleProvider.processBorderWidth(this.__elementHeaderScroll,headerDivBorder),this.__setCheckboxRadioButtonSize(),TcHmi.StyleProvider.setSimpleElementStyle(this.__elementHeaderTable[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-resize-element"),{width:this.__tableBorderWidth&&this.__tableBorderWidth>this.__resizeElementMinWidth?this.__tableBorderWidth+"px":null,right:this.__tableBorderWidth&&this.__tableBorderWidth>this.__resizeElementMinWidth?-this.__tableBorderWidth+"px":null});let requiredMinWidth=Math.max(this.__tableBorderWidth||0,this.__resizeElementMinWidth),recalcRequired=!1,elementWidth=this.__element[0].clientWidth-this.__columnWidths[0].pixelWidth,toPercentWidth=width=>elementWidth>0?width/elementWidth*100:0;for(let i=0,ii=this.__columnWidths.length;i<ii;i++){let convertedReqMinWidth="px"===this.__columnWidths[i].minWidthUnit?requiredMinWidth:toPercentWidth(requiredMinWidth),newMinWidth=0===i?6:this.__internalColumns[i-1].minWidth;newMinWidth=null!=newMinWidth?newMinWidth:0,newMinWidth=newMinWidth>=convertedReqMinWidth?newMinWidth:convertedReqMinWidth,this.__columnWidths[i].minWidth<newMinWidth&&(recalcRequired=!0),this.__columnWidths[i].minWidth=newMinWidth}recalcRequired&&this.__recalcAllColumnWidths()}setTableBorderStyle(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("TableBorderStyle"));let resolverInfo=this.__objectResolvers.get("tableBorderStyle");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("TableBorderStyle")?.type});this.__objectResolvers.set("tableBorderStyle",{resolver,watchCallback:this.__onResolverForTableBorderStyleWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForTableBorderStyleWatchCallback)})}__onResolverForTableBorderStyleWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("tableBorderStyle"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__tableBorderStyle)||(this.__tableBorderStyle=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"TableBorderStyle"}),this.__processTableBorderStyle()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"TableBorderStyle"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getTableBorderStyle(){return this.__tableBorderStyle}__processTableBorderStyle(){TcHmi.StyleProvider.processBorderStyle(this.__element[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-border, .TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-border th, .TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td"),this.__tableBorderStyle)}setShowHeader(valueNew){let convertedValue=TcHmi.ValueConverter.toBoolean(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("ShowHeader")),convertedValue!==this.__showHeader&&(this.__showHeader=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"ShowHeader"}),this.__processShowHeader())}getShowHeader(){return this.__showHeader}__processShowHeader(){TcHmi.StyleProvider.setSimpleElementStyle(this.__element[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-border"),"display",this.__showHeader?null:"none"),this.__showHeader?this.__headerHeight&&this.__headerHeightUnit&&TcHmi.StyleProvider.setSimpleElementStyle(this.__elementDataScroll,"height","calc(100% - "+this.__headerHeight+(this.__headerHeightUnit||"px")+")"):TcHmi.StyleProvider.setSimpleElementStyle(this.__elementDataScroll,"height","100%"),this.__recalcAllColumnWidths()}setShowRowNumbers(valueNew){let convertedValue=TcHmi.ValueConverter.toBoolean(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("ShowRowNumbers")),convertedValue!==this.__showRowNumbers&&(this.__showRowNumbers=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"ShowRowNumbers"}),this.__processShowRowNumbers())}getShowRowNumbers(){return this.__showRowNumbers}__processShowRowNumbers(){TcHmi.StyleProvider.setSimpleElementStyle(this.__element[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),"display",this.__showRowNumbers?null:"none"),this.__recalcAllColumnWidths()}setRowNumbersResizable(valueNew){let convertedValue=TcHmi.ValueConverter.toBoolean(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersResizable")),convertedValue!==this.__rowNumbersResizable&&(this.__rowNumbersResizable=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersResizable"}),this.__processRowNumbersResizable())}getRowNumbersResizable(){return this.__rowNumbersResizable}__processRowNumbersResizable(){this.__columnWidths[0].resizable=this.__rowNumbersResizable??!1,this.__elementHeaderTable.find(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers").toggleClass("resizable",this.__rowNumbersResizable)}setRowNumbersStartNumber(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersStartNumber")),convertedValue!==this.__rowNumbersStartNumber&&(this.__rowNumbersStartNumber=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersStartNumber"}),this.__processRowNumbersStartNumber())}getRowNumbersStartNumber(){return this.__rowNumbersStartNumber}__processRowNumbersStartNumber(){this.__updateTable(1)}setRowNumbersWidth(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersWidth")),convertedValue!==this.__rowNumbersWidth&&(this.__rowNumbersWidth=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersWidth"}),this.__processRowNumbersWidth())}getRowNumbersWidth(){return this.__rowNumbersWidth}__processRowNumbersWidth(){void 0!==this.__rowNumbersWidth&&this.__resizeColumn(0,this.__rowNumbersWidth,!0)}setRowNumbersWidthUnit(valueNew){let convertedValue=TcHmi.ValueConverter.toDimensionUnit(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersWidthUnit")),convertedValue!==this.__rowNumbersWidthUnit&&(this.__rowNumbersWidthUnit=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersWidthUnit"}),this.__processRowNumbersWidthUnit())}getRowNumbersWidthUnit(){return this.__rowNumbersWidthUnit}__processRowNumbersWidthUnit(){void 0!==this.__rowNumbersWidthUnit&&(this.__columnWidths[0].widthUnit=this.__rowNumbersWidthUnit,this.__processRowNumbersWidth())}setRowNumbersHorizontalAlignment(valueNew){let convertedValue=TcHmi.ValueConverter.toHorizontalAlignment(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersHorizontalAlignment")),convertedValue!==this.__rowNumbersHorizontalAlignment&&(this.__rowNumbersHorizontalAlignment=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersHorizontalAlignment"}),this.__processRowNumbersHorizontalAlignment())}getRowNumbersHorizontalAlignment(){return this.__rowNumbersHorizontalAlignment}__processRowNumbersHorizontalAlignment(){switch(this.__rowNumbersHorizontalAlignment){case"Left":case"Center":case"Right":TcHmi.StyleProvider.setSimpleElementStyle(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),"text-align",this.__rowNumbersHorizontalAlignment.toLowerCase())}}setRowNumbersVerticalAlignment(valueNew){let convertedValue=TcHmi.ValueConverter.toVerticalAlignment(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersVerticalAlignment")),convertedValue!==this.__rowNumbersVerticalAlignment&&(this.__rowNumbersVerticalAlignment=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersVerticalAlignment"}),this.__processRowNumbersVerticalAlignment())}getRowNumbersVerticalAlignment(){return this.__rowNumbersVerticalAlignment}__processRowNumbersVerticalAlignment(){switch(this.__rowNumbersVerticalAlignment){case"Center":TcHmi.StyleProvider.setSimpleElementStyle(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),"vertical-align","middle");break;case"Bottom":case"Top":TcHmi.StyleProvider.setSimpleElementStyle(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),"vertical-align",this.__rowNumbersVerticalAlignment.toLowerCase())}}setRowNumbersCellPadding(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersCellPadding"));let resolverInfo=this.__objectResolvers.get("rowNumbersCellPadding");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("RowNumbersCellPadding")?.type});this.__objectResolvers.set("rowNumbersCellPadding",{resolver,watchCallback:this.__onResolverForRowNumbersCellPaddingWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForRowNumbersCellPaddingWatchCallback)})}__onResolverForRowNumbersCellPaddingWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("rowNumbersCellPadding"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__rowNumbersCellPadding)||(this.__rowNumbersCellPadding=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersCellPadding"}),this.__processRowNumbersCellPadding()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"RowNumbersCellPadding"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getRowNumbersCellPadding(){return this.__rowNumbersCellPadding}__processRowNumbersCellPadding(){TcHmi.StyleProvider.processContentPadding(this.__element[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),this.__rowNumbersCellPadding)}setCellContentPadding(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("CellContentPadding"));let resolverInfo=this.__objectResolvers.get("cellContentPadding");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("CellContentPadding")?.type});this.__objectResolvers.set("cellContentPadding",{resolver,watchCallback:this.__onResolverForCellContentPaddingWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForCellContentPaddingWatchCallback)})}__onResolverForCellContentPaddingWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("cellContentPadding"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__cellContentPadding)||(this.__cellContentPadding=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"CellContentPadding"}),this.__processCellContentPadding()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"CellContentPadding"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getCellContentPadding(){return this.__cellContentPadding}__processCellContentPadding(){let textboxes=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-textbox");TcHmi.StyleProvider.processContentPadding(textboxes,this.__cellContentPadding);let comboboxes=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-combobox-template-select");TcHmi.StyleProvider.processContentPadding(comboboxes,this.__cellContentPadding);let numericInputs=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-numeric-input");TcHmi.StyleProvider.processContentPadding(numericInputs,this.__cellContentPadding);let passwordInputs=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-password-input");TcHmi.StyleProvider.processContentPadding(passwordInputs,this.__cellContentPadding);let spinboxInputs=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-spinbox-input input");TcHmi.StyleProvider.processContentPadding(spinboxInputs,this.__cellContentPadding);let dateTimeInputs=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-date-time-input input");TcHmi.StyleProvider.processContentPadding(dateTimeInputs,this.__cellContentPadding);let timespanInputs=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-timespan-input input");TcHmi.StyleProvider.processContentPadding(timespanInputs,this.__cellContentPadding);let buttons=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-simple-button");TcHmi.StyleProvider.processContentPadding(buttons,this.__cellContentPadding);let toggleButtons=this.__elementDataTableBody[0].getElementsByClassName("TcHmi_Controls_Beckhoff_TcHmiTreeView-toggle-button");TcHmi.StyleProvider.processContentPadding(toggleButtons,this.__cellContentPadding);let cells=this.__elementDataTableBody[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell:not(.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell-unpadded-control)");TcHmi.StyleProvider.processContentPadding(cells,this.__cellContentPadding)}setHeaderBackgroundColor(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderBackgroundColor"));let resolverInfo=this.__objectResolvers.get("headerBackgroundColor");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("HeaderBackgroundColor")?.type});this.__objectResolvers.set("headerBackgroundColor",{resolver,watchCallback:this.__onResolverForHeaderBackgroundColorWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForHeaderBackgroundColorWatchCallback)})}__onResolverForHeaderBackgroundColorWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("headerBackgroundColor"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__headerBackgroundColor)||(this.__headerBackgroundColor=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderBackgroundColor"}),this.__processHeaderBackgroundColor()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"HeaderBackgroundColor"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getHeaderBackgroundColor(){return this.__headerBackgroundColor}__processHeaderBackgroundColor(){TcHmi.StyleProvider.processBackgroundColor(this.__element[0].querySelectorAll(".TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header-border th, .TcHmi_Controls_Beckhoff_TcHmiTreeView-template-placeholder"),this.__headerBackgroundColor)}setHeaderTextColor(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderTextColor"));let resolverInfo=this.__objectResolvers.get("headerTextColor");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("HeaderTextColor")?.type});this.__objectResolvers.set("headerTextColor",{resolver,watchCallback:this.__onResolverForHeaderTextColorWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForHeaderTextColorWatchCallback)})}__onResolverForHeaderTextColorWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("headerTextColor"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__headerTextColor)||(this.__headerTextColor=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderTextColor"}),this.__processHeaderTextColor()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"HeaderTextColor"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getHeaderTextColor(){return this.__headerTextColor}__processHeaderTextColor(){TcHmi.StyleProvider.processTextColor(this.__elementHeaderTable[0].querySelectorAll("th.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header:not(.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers)"),this.__headerTextColor)}setRowNumbersTextColor(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersTextColor"));let resolverInfo=this.__objectResolvers.get("rowNumbersTextColor");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("RowNumbersTextColor")?.type});this.__objectResolvers.set("rowNumbersTextColor",{resolver,watchCallback:this.__onResolverForRowNumbersTextColorWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForRowNumbersTextColorWatchCallback)})}__onResolverForRowNumbersTextColorWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("rowNumbersTextColor"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__rowNumbersTextColor)||(this.__rowNumbersTextColor=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersTextColor"}),this.__processRowNumbersTextColor()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"RowNumbersTextColor"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getRowNumbersTextColor(){return this.__rowNumbersTextColor}__processRowNumbersTextColor(){TcHmi.StyleProvider.processTextColor(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),this.__rowNumbersTextColor)}setRowNumbersBackgroundColor(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersBackgroundColor"));let resolverInfo=this.__objectResolvers.get("rowNumbersBackgroundColor");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("RowNumbersBackgroundColor")?.type});this.__objectResolvers.set("rowNumbersBackgroundColor",{resolver,watchCallback:this.__onResolverForRowNumbersBackgroundColorWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForRowNumbersBackgroundColorWatchCallback)})}__onResolverForRowNumbersBackgroundColorWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("rowNumbersBackgroundColor"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__rowNumbersBackgroundColor)||(this.__rowNumbersBackgroundColor=data.value,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersBackgroundColor"}),this.__processRowNumbersBackgroundColor()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"RowNumbersBackgroundColor"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getRowNumbersBackgroundColor(){return this.__rowNumbersBackgroundColor}__processRowNumbersBackgroundColor(){TcHmi.StyleProvider.processBackgroundColor(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),this.__rowNumbersBackgroundColor)}setHeaderFontFamily(valueNew){let convertedValue=TcHmi.ValueConverter.toFontFamily(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderFontFamily")),convertedValue!==this.__headerFontFamily&&(this.__headerFontFamily=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderFontFamily"}),this.__processHeaderFontFamily())}getHeaderFontFamily(){return this.__headerFontFamily}__processHeaderFontFamily(){TcHmi.StyleProvider.processFontFamily(this.__elementHeaderTable[0].querySelectorAll("th.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header"),this.__headerFontFamily)}setHeaderFontSize(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderFontSize")),convertedValue!==this.__headerFontSize&&(this.__headerFontSize=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderFontSize"}),this.__processHeaderFontSize())}getHeaderFontSize(){return this.__headerFontSize}__processHeaderFontSize(){TcHmi.StyleProvider.processFontSize(this.__elementHeaderTable[0].querySelectorAll("th.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header"),this.__headerFontSize,this.__headerFontSizeUnit)}setHeaderFontSizeUnit(valueNew){let convertedValue=TcHmi.ValueConverter.toFontSizeUnit(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderFontSizeUnit")),convertedValue!==this.__headerFontSizeUnit&&(this.__headerFontSizeUnit=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderFontSizeUnit"}),this.__processHeaderFontSizeUnit())}getHeaderFontSizeUnit(){return this.__headerFontSizeUnit}__processHeaderFontSizeUnit(){this.__processHeaderFontSize()}setHeaderFontStyle(valueNew){let convertedValue=TcHmi.ValueConverter.toFontStyle(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderFontStyle")),convertedValue!==this.__headerFontStyle&&(this.__headerFontStyle=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderFontStyle"}),this.__processHeaderFontStyle())}getHeaderFontStyle(){return this.__headerFontStyle}__processHeaderFontStyle(){TcHmi.StyleProvider.processFontStyle(this.__elementHeaderTable[0].querySelectorAll("th.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header"),this.__headerFontStyle)}setHeaderFontWeight(valueNew){let convertedValue=TcHmi.ValueConverter.toFontWeight(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeaderFontWeight")),convertedValue!==this.__headerFontWeight&&(this.__headerFontWeight=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeaderFontWeight"}),this.__processHeaderFontWeight())}getHeaderFontWeight(){return this.__headerFontWeight}__processHeaderFontWeight(){TcHmi.StyleProvider.processFontWeight(this.__elementHeaderTable[0].querySelectorAll("th.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-header"),this.__headerFontWeight)}setGridFontFamily(valueNew){let convertedValue=TcHmi.ValueConverter.toFontFamily(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("GridFontFamily")),convertedValue!==this.__gridFontFamily&&(this.__gridFontFamily=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"GridFontFamily"}),this.__processGridFontFamily())}getGridFontFamily(){return this.__gridFontFamily}__processGridFontFamily(){TcHmi.StyleProvider.processFontFamily(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell"),this.__gridFontFamily)}setGridFontSize(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("GridFontSize")),convertedValue!==this.__gridFontSize&&(this.__gridFontSize=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"GridFontSize"}),this.__processGridFontSize())}getGridFontSize(){return this.__gridFontSize}__processGridFontSize(){void 0!==this.__gridFontSize&&void 0!==this.__gridFontSizeUnit&&TcHmi.StyleProvider.processFontSize(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell"),this.__gridFontSize,this.__gridFontSizeUnit)}setGridFontSizeUnit(valueNew){let convertedValue=TcHmi.ValueConverter.toFontSizeUnit(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("GridFontSizeUnit")),convertedValue!==this.__gridFontSizeUnit&&(this.__gridFontSizeUnit=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"GridFontSizeUnit"}),this.__processGridFontSizeUnit())}getGridFontSizeUnit(){return this.__gridFontSizeUnit}__processGridFontSizeUnit(){this.__processGridFontSize()}setGridFontStyle(valueNew){let convertedValue=TcHmi.ValueConverter.toFontStyle(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("GridFontStyle")),convertedValue!==this.__gridFontStyle&&(this.__gridFontStyle=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"GridFontStyle"}),this.__processGridFontStyle())}getGridFontStyle(){return this.__gridFontStyle}__processGridFontStyle(){TcHmi.StyleProvider.processFontStyle(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell"),this.__gridFontStyle)}setGridFontWeight(valueNew){let convertedValue=TcHmi.ValueConverter.toFontWeight(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("GridFontWeight")),convertedValue!==this.__gridFontWeight&&(this.__gridFontWeight=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"GridFontWeight"}),this.__processGridFontWeight())}getGridFontWeight(){return this.__gridFontWeight}__processGridFontWeight(){TcHmi.StyleProvider.processFontWeight(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-cell"),this.__gridFontWeight)}setRowNumbersFontFamily(valueNew){let convertedValue=TcHmi.ValueConverter.toFontFamily(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersFontFamily")),convertedValue!==this.__rowNumbersFontFamily&&(this.__rowNumbersFontFamily=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersFontFamily"}),this.__processRowNumbersFontFamily())}getRowNumbersFontFamily(){return this.__rowNumbersFontFamily}__processRowNumbersFontFamily(){TcHmi.StyleProvider.processFontFamily(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),this.__rowNumbersFontFamily)}setRowNumbersFontSize(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersFontSize")),convertedValue!==this.__rowNumbersFontSize&&(this.__rowNumbersFontSize=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersFontSize"}),this.__processRowNumbersFontSize())}getRowNumbersFontSize(){return this.__rowNumbersFontSize}__processRowNumbersFontSize(){void 0!==this.__rowNumbersFontSize&&void 0!==this.__rowNumbersFontSizeUnit&&TcHmi.StyleProvider.processFontSize(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),this.__rowNumbersFontSize,this.__rowNumbersFontSizeUnit)}setRowNumbersFontSizeUnit(valueNew){let convertedValue=TcHmi.ValueConverter.toFontSizeUnit(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersFontSizeUnit")),convertedValue!==this.__rowNumbersFontSizeUnit&&(this.__rowNumbersFontSizeUnit=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersFontSizeUnit"}),this.__processRowNumbersFontSizeUnit())}getRowNumbersFontSizeUnit(){return this.__rowNumbersFontSizeUnit}__processRowNumbersFontSizeUnit(){this.__processRowNumbersFontSize()}setRowNumbersFontStyle(valueNew){let convertedValue=TcHmi.ValueConverter.toFontStyle(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersFontStyle")),convertedValue!==this.__rowNumbersFontStyle&&(this.__rowNumbersFontStyle=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersFontStyle"}),this.__processRowNumbersFontStyle())}getRowNumbersFontStyle(){return this.__rowNumbersFontStyle}__processRowNumbersFontStyle(){TcHmi.StyleProvider.processFontStyle(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),this.__rowNumbersFontStyle)}setRowNumbersFontWeight(valueNew){let convertedValue=TcHmi.ValueConverter.toFontWeight(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("RowNumbersFontWeight")),convertedValue!==this.__rowNumbersFontWeight&&(this.__rowNumbersFontWeight=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"RowNumbersFontWeight"}),this.__processRowNumbersFontWeight())}getRowNumbersFontWeight(){return this.__rowNumbersFontWeight}__processRowNumbersFontWeight(){TcHmi.StyleProvider.processFontWeight(this.__element[0].querySelectorAll("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers"),this.__rowNumbersFontWeight)}setSelectedRowIndex(valueNew){let convertedValue=TcHmi.ValueConverter.toObject(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("SelectedRowIndex"));let resolverInfo=this.__objectResolvers.get("selectedRowIndex");resolverInfo&&(resolverInfo.watchDestroyer&&resolverInfo.watchDestroyer(),resolverInfo.resolver.destroy());let resolver=new TcHmi.Symbol.ObjectResolver(convertedValue,{parentControl:this,type:this.getAttributeDescription("SelectedRowIndex")?.type});this.__objectResolvers.set("selectedRowIndex",{resolver,watchCallback:this.__onResolverForSelectedRowIndexWatchCallback,watchDestroyer:resolver.watch(this.__onResolverForSelectedRowIndexWatchCallback)})}__onResolverForSelectedRowIndexWatchCallback(data){this.__isAttached||this.__suspendObjectResolver("selectedRowIndex"),data.error===TcHmi.Errors.NONE?tchmi_equal(data.value,this.__selectedCell?.rowIndex)||(this.__selectedCell?this.__selectedCell.rowIndex=data.value??null:this.__selectedCell={rowIndex:data.value??null,columnIndex:-1},TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedRowIndex"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedColumnIndex"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedRowValue"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedCellValue"}),this.__processSelectedRowIndex()):TcHmi.Log.Controls.error(this,TcHmiTreeView.#tchmiFQN,{Attribute:"SelectedRowIndex"},`Resolving symbols from object failed with error: ${TcHmi.Log.buildMessage(data.details)}`)}getSelectedRowIndex(){return null!==this.__selectedCell?this.__selectedCell.rowIndex:null}__processSelectedRowIndex(){if(this.__elementDataTableBody.find("tr.focused, td.focused").removeClass("focused"),null!==this.__selectedCell&&null!==this.__selectedCell.rowIndex){let index=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);if(this.__compareIndices(index,[-1]))return;let index_string=index.join(":"),row=this.__elementDataTableBody.find('tr[data-row="'+index_string+'"]').addClass("focused");row.length>0&&(-1===this.__selectedCell.columnIndex?row.find("td.TcHmi_Controls_Beckhoff_TcHmiTreeView-template-row-numbers").addClass("focused"):row.find(`td[data-column=${this.__selectedCell.columnIndex}]`).addClass("focused"))}}setSelectedColumnIndex(valueNew){let convertedValue=TcHmi.ValueConverter.toNumber(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("SelectedColumnIndex")),null===convertedValue&&null!==this.__selectedCell&&-1===this.__selectedCell.columnIndex||(null!==convertedValue?null===this.__selectedCell?this.__selectedCell={rowIndex:null,columnIndex:convertedValue}:this.__selectedCell.columnIndex=convertedValue:null===this.__selectedCell?this.__selectedCell={rowIndex:null,columnIndex:-1}:this.__selectedCell.columnIndex=-1,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedColumnIndex"}),TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"SelectedCellValue"}),this.__processSelectedColumnIndex())}getSelectedColumnIndex(){return null!==this.__selectedCell?this.__selectedCell.columnIndex:null}__processSelectedColumnIndex(){this.__processSelectedRowIndex()}getDataHasChanged(){return this.__dataHasChanged}getSelectedCellValue(){if(this.__data&&null!==this.__selectedCell&&null!==this.__selectedCell.rowIndex){if(this.__selectedCell.columnIndex>=0){let columnDefinition=this.__internalColumns[this.__selectedCell.columnIndex],index=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);if(this.__compareIndices(index,[-1])||index[0]>=this.__data.length)return null;if(isNamedColumn(columnDefinition)){return this.__readObjectProperty(this.__originalIndexToDataElement(index,this.__data),columnDefinition.name)}return this.__originalIndexToDataElement(index,this.__data)}{let dataIndex=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);return this.__flatData.findIndex(element=>this.__compareIndices(element.index,dataIndex))+(this.__rowNumbersStartNumber??1)}}return null}getSelectedRowValue(){if(this.__data&&null!==this.__selectedCell&&null!==this.__selectedCell.rowIndex){let index=this.__originalIndexToDataIndex(this.__selectedCell.rowIndex);if(this.__compareIndices(index,[-1]))return null;let rowData=this.__originalIndexToDataElement(index,this.__data);if(rowData)return rowData}return null}setWidthMode(valueNew){let convertedValue=TcHmi.ValueConverter.toSizeModeWithContent(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("WidthMode")),convertedValue!==this.__widthMode&&(this.__widthMode=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"WidthMode"}),this.__processWidthMode())}__getContentWidth(){if("Collapsed"===this.__visibility)return null;if("Content"!==this.getWidthMode())return super.__getContentWidth();if(!this.__isAttached)return null;let width=this.__columnWidths.reduce((sum,columnWidth,currentIdx)=>0!==currentIdx||this.__showRowNumbers?sum+Math.max("px"===columnWidth.widthUnit?columnWidth.width:0,"px"===columnWidth.minWidthUnit?columnWidth.minWidth:0):sum,0),dataScroll=this.__elementDataScroll[0];return width+=dataScroll.offsetWidth-dataScroll.clientWidth,0!==width?width:null}__processWidth(){if("Content"===this.getWidthMode()){let contentWidth=this.__getContentWidth();if(contentWidth===this.__contentWidth)return;this.__contentWidth=contentWidth;let newWidthStr="";null!==contentWidth&&(newWidthStr=contentWidth+"px"),TcHmi.StyleProvider.setSimpleElementStyle(this.__element,"width",newWidthStr)}else this.__contentWidth=null;super.__processWidth()}setHeightMode(valueNew){let convertedValue=TcHmi.ValueConverter.toSizeModeWithContent(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HeightMode")),convertedValue!==this.__heightMode&&(this.__heightMode=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HeightMode"}),this.__processHeightMode())}__getContentHeight(){if("Collapsed"===this.__visibility)return null;if("Content"!==this.getHeightMode())return super.__getContentHeight();if(!this.__isAttached)return null;let height=("px"===this.__headerHeightUnit&&this.__headerHeight||0)+this.__dataLength*(this.__rowHeight||0),dataScroll=this.__elementDataScroll[0];height+=dataScroll.offsetHeight-dataScroll.clientHeight;const emptySpace=parseFloat(getComputedStyle(this.__elementSentinelBottom).minHeight.replace("px",""));return isNaN(emptySpace)||(height+=emptySpace),0!==height?height:null}__processHeight(){if("Content"===this.getHeightMode()){let contentHeight=this.__getContentHeight();if(contentHeight===this.__contentHeight)return;this.__contentHeight=contentHeight,this.__intHeight=null!==contentHeight?contentHeight+"px":null}else this.__contentHeight=null;super.__processHeight()}setHierarchicalDataProperty(valueNew){let convertedValue=TcHmi.ValueConverter.toString(valueNew);null===convertedValue&&(convertedValue=this.getAttributeDefaultValueInternal("HierarchicalDataProperty")),convertedValue!==this.__hierarchicalDataProperty&&(this.__hierarchicalDataProperty=convertedValue,TcHmi.EventProvider.raise(this.__id+".onPropertyChanged",{propertyName:"HierarchicalDataProperty"}),this.__processHierarchicalDataProperty())}getHierarchicalDataProperty(){return this.__hierarchicalDataProperty}__processHierarchicalDataProperty(){this.__updateTable(1),this.__updatePaging(!0)}}})();function isNamedColumn(obj){return"name"in obj&&!!obj.name}TcHmi.Controls.registerEx("TcHmiTreeView","TcHmi.Controls.Beckhoff",TcHmiTreeView,{injectInGlobalObject:!0});export{TcHmiTreeView as Control};