1import{msg}from"./msg/messages.js";import{util}from"./util_general.js";export var interface_state;!function(e){let t;e.MIN_INT32=-2147483648,e.LOG="ifcState",e.L_VALUE_CHANGE="valueChange",e.HWID_lcd="lcd",e.HWID_joystick="joystick",e.HWID_controller="controller",e.HWID_drivetrain="drivetrain",e.HWID_TRIPORT_ADI="triport_adi",function(e){e[e.NoType=1]="NoType",e[e.Other=2]="Other",e[e.MotorSimple=3]="MotorSimple",e[e.MotorEncoder=4]="MotorEncoder",e[e.Gyro=5]="Gyro",e[e.Drivetrain=6]="Drivetrain",e[e.JoystickButton=7]="JoystickButton",e[e.JoystickAxis=8]="JoystickAxis"}(t=e.WidgetTypeCategory||(e.WidgetTypeCategory={}));var i=!1;let s;!function(e){e[e.None=0]="None",e[e.ShowTypes=1]="ShowTypes",e[e.ShowDialog=2]="ShowDialog"}(s=e.OptionsType||(e.OptionsType={}));e.Widget=class{constructor(e,t,a,r=null,n=null,h=null,l=s.ShowTypes,d=null){this._parentState=e,this._hwId=t,this._hwIdName=a,this._index=r,this._group=n,this.cssId=null,this._name=null,this._value=null,this._type=null,this._extraConfig=null,this.bufferIndex=0,this._sharedBuffer=null,this._sharedArray=null,this.forceCheckBox=!1,this.types=[],this.disabled=!1,this.hidden=!1,this.unexpectedType=!1,this.part=null,this.constraint=null,null!=d&&(this.addType(d),this.setType(d)),null!=h&&(this.name=h),this.optionsType=l,"undefined"!=typeof SharedArrayBuffer?(this._sharedBuffer=new SharedArrayBuffer(128),this._sharedArray=new Int32Array(this._sharedBuffer)):i||(i=!0,console.log("Not using SharedArrayBuffer"))}passBuffer(){return this._sharedBuffer}receiveBuffer(e){null!=e&&(this._sharedBuffer=e,this._sharedArray=new Int32Array(this._sharedBuffer))}get hwId(){return this._hwId}get hwIdName(){return this._hwIdName}get index(){return this._index}get group(){return this._group}addType(e){return this.types.push(e),this}selectTypeAt(e){e<0?this.setType(null):this.setType(this.types[e])}get type(){return this._type}set type(e){throw new Error("No setter, use setType instead")}setType(e,t){if(this._type!=e){var i=this._type;this._type=e,this._type&&this._type.valueEquivalentTo(i)||this.setValue(null),this.extraConfig=this._type?this._type.getDefaultExtraConfig():null,this.unexpectedType=!1,this._parentState.raiseWidgetTypeChange(t,this,e,i)}}isTypeAllowed(e){if(this.disabled)return!1;for(let t of this.types)if(t==e)return!0;return!1}get extraConfig(){return this._extraConfig}set extraConfig(e){this._extraConfig!==e&&(this._extraConfig=e,this._parentState.raiseWidgetTypeChange(!1,this,this.type,this.type))}get name(){this._type;return this._name&&this._name.length>0?this._name:this._type?this.getDefaultVarName():null}set name(e){var t=this.name,i=e?e.trim():"";i.length>0&&this._type&&i!=this.getDefaultVarName()?this._name=i:this._name=null,t!=i&&this._parentState.raiseWidgetNameChange(this,i,t)}getDefaultVarName(){var t=this._type.defaultVarName?this._type.defaultVarName:"";if(void 0!==this.index&&null!==this.index){let i="";if(this.parentAdapter){const t=String.fromCharCode("A".charCodeAt(0)+this.index);i=this.parentAdapter.hwId===e.HWID_TRIPORT_ADI?t:`${this.parentAdapter.index+1}${t}`}else i=`${this.index+1}`;t=util.format(t,[i])}return t}nameIsSet(){return this._name&&this._name.length>0}getValue(){if(!this.hasValue()&&this._type&&(this._value=this._type.getDefaultValue()),null!=this._type&&null!=this._sharedBuffer){var e=this._type.readFromSharedArray(this._sharedArray);void 0!==e&&(this._value=e)}return this._value}setValue(t,i){util.deepEquals(this._value,t)||(util.log(e.LOG,"setValue",this.hwId,t),this._value=t,null!=this._type&&null!=this._sharedBuffer&&this._type.writeToSharedArray(this._value,this._sharedArray),this._parentState.raiseWidgetValueChange(i,this,t))}toggleValue(){this.setValue(!this.getValue())}setValueProperty(e,t,i){var s=this.getValue();null!=s&&util.deepEquals(s[e],t)||(s[e]=t,null!=this._type&&null!=this._sharedBuffer&&this._type.writeFieldToSharedArray(e,t,this._sharedArray),this._parentState.raiseWidgetValueChange(i,this,s,e,t))}hasValue(){return null!==this._value&&void 0!==this._value}typeCategoryIs(e,...t){const i=this._parentState.getTypeCategory(this);if(i===e)return!0;
1if(t)for(const e of t)if(i===e)return!0;return!1}};e.InterfaceState=class{constructor(e){this._widgetTypesClass=e,this.widgets=[],this._widgetListChangeHandlers=[],this._configChangeHandlers=[],this._matchScoreChangeHandlers=[],this._serialInputChangeHandlers=[],this._nameChangeHandlers=[],this._valueChangeHandlers=[],this._typeChangeHandlers=[],this.isDeserializing=!1,this.HWID_VERSION=20,this._isCleanFlag=!0,this._serialInput=[],this._matchScore=0}getAllWidgets(){const e=[];return function t(i,s){for(const a of i)e.push(a),a.adaptedWidgets&&a.adaptedWidgets.length>0&&t(a.adaptedWidgets,s)}(this.widgets,e),e}getWidgetByIndex(e,t){if(t){const i=util.find(this.widgets,e=>e.name===t);if(!i||!i.adaptedWidgets)return;return i.adaptedWidgets[e]}return this.widgets[e]}getWidgetByPort(e,t){if(null!=t){const i=this.widgets[e];if(!i||!i.adaptedWidgets)return;return i.adaptedWidgets[t]}return this.widgets[e]}getWidgetByHwid(e){return function e(t,i){for(const s of i){if(s.hwId===t)return s;if(s.adaptedWidgets&&s.adaptedWidgets.length>0){const i=e(t,s.adaptedWidgets);if(i)return i}}}(e,this.widgets)}widgetListChange(e){this._widgetListChangeHandlers.push(e)}raiseWidgetListChange(){this._widgetListChangeHandlers.forEach(e=>{e(this.widgets,void 0,this)}),this.raiseConfigChange()}configChange(e){this._configChangeHandlers.push(e)}raiseConfigChange(){this.updateCleanFlag(),this._configChangeHandlers.forEach(e=>{e(null,null,this)})}widgetTypeChange(e){this._typeChangeHandlers.push(e)}widgetTypeChangeRemove(e){const t=this._typeChangeHandlers.indexOf(e);-1!=t&&this._typeChangeHandlers.splice(t,1)}raiseWidgetTypeChange(e,t,i,s){this._typeChangeHandlers.forEach(a=>{a(e,t,i,s)})}widgetNameChange(e){this._nameChangeHandlers.push(e)}widgetNameChangeRemove(e){const t=this._nameChangeHandlers.indexOf(e);-1!=t&&this._nameChangeHandlers.splice(t,1)}raiseWidgetNameChange(e,t,i){this._nameChangeHandlers.forEach(s=>{s(t,i,e)})}widgetValueChange(e){this._valueChangeHandlers.push(e)}widgetValueChangeRemove(e){const t=this._valueChangeHandlers.indexOf(e);-1!=t&&this._valueChangeHandlers.splice(t,1)}raiseWidgetValueChange(t,i,s,a,r){util.log(e.L_VALUE_CHANGE,i.hwId,s,a,r),this._valueChangeHandlers.forEach(e=>{e(t,i,s,a,r)})}getDeprecatedWidgetTypes(e){return[]}enableJoystickWizardMode(){throw Error("Not implemented")}getWidgetNames(e){const t=[];for(const i of this.getAllWidgets())i.name&&i!==e&&t.push(i.name);return t}serialize(){const e={version:this.HWID_VERSION,widgetInfos:this.serializeWidgets()};return JSON.stringify(e)}serializeWidgets(){var e=0;const t=[];for(const i of this.getAllWidgets())if(i.type){const s={hwid:i.hwId,name:i.name?i.name:void 0,typeName:this.serializeType(i.type),extraConfig:i.extraConfig,bufferIndex:e};t.push(s),e++}return t}serializeType(e){return e?e.id:void 0}deserializeAdjust(e){}deserialize(e){let t;this.isDeserializing=!0;const i=JSON.parse(e);t=void 0===i.version?{version:0,widgetInfos:i}:i,this.deserializeAdjust(t),this.deserializeWidgets(t.widgetInfos),this.isDeserializing=!1,this.markClean()}deserializeWidgets(e){for(const t of e){let e=null;if(e=t.hwid?this.getWidgetByHwid(t.hwid):this.widgets[t.index],!e){console.error("deserialize error: widget not found for",t);continue}const i=this.deserializeType(t.typeName,e.hwId);if(e.setType(i),t.name&&(e.name=t.name),t.extraConfig){if(t.extraConfig.leftMotorHwId||t.extraConfig.rightMotorHwId){const e=t.extraConfig;e.leftMotorsHwIds=t.extraConfig.leftMotorHwId?[t.extraConfig.leftMotorHwId]:[],delete t.extraConfig.leftMotorHwId,e.rightMotorsHwIds=t.extraConfig.rightMotorHwId?[t.extraConfig.rightMotorHwId]:[],delete t.extraConfig.rightMotorHwId,e.gearRatio||(e.gearRatio=1)}e.extraConfig=t.extraConfig}else i&&(e.extraConfig=i.getDefaultExtraConfig());e.bufferIndex=t.bufferIndex}}deserializeType(e,t){return e?this._widgetTypesClass[e]:null}serializeValues(){var e={};return this.widgets.forEach((t,i)=>{t.hasValue()&&(e[i]=t.getValue())}),e}deserializeValues(e){this.widgets.forEach((t,i)=>{null!=e[i]?t.setValue(e[i]):t.setValue(null)})}passBuffers(){var e=[];for(const t of this.getAllWidgets())t.type&&e.push(t.passBuffer());return e}receiveBuffers(e){for(const t of this.getAllWidgets())t.type&&t.receiveBuffer(e[t.bufferIndex])}markClean(){this._isCleanFlag=!0}isClean(){return this._isCleanFlag}updateCleanFlag(){this._isCleanFlag=!1}start(){for(const e of this.getAllWidgets()){let t=e.type;null!=t&&e.setValue(t.getDefaultValue())}}stop(){throw new Error("Not implemented")}serial_appendInput(e){this._serialInput=this._serialInput.concat(util.hexToNumbers(e)),this.raiseSerialInputChange(e)}serial_bytesToRead(){return this._serialInput.length}serial_readByte(){return 0==this._serialInput.length?-1:this._serialInput.splice(0,1)[0]}serialInputChange(e){this._serialInputChangeHandlers.push(e)}serialInputChangeRemove(e){const t=this._serialInputChangeHandlers.indexOf(e);-1!=t&&this._serialInputChangeHandlers.splice(t,1)}raiseSerialInputChange(e){this._serialInputChangeHandlers.forEac
1h(t=>{t(e,void 0,this)})}get matchScore(){return this._matchScore}set matchScore(e){this._matchScore!=e&&(this._matchScore=e,this.raiseMatchScoreChange())}matchScoreChange(e){this._matchScoreChangeHandlers.push(e)}raiseMatchScoreChange(){this._matchScoreChangeHandlers.forEach(e=>{e(void 0,void 0,this)})}onEmscriptenWorkerStart(e){}},e.hwidToName=function(e){const t="HWID_"+e.replace(/:/g,"_");let i=msg[t];if(!i){i=e;const t=0==i.indexOf("p_");t&&(i=i.substr("p_".length)),i.length>1&&(i=util.toCamelCase(i,!0)),t&&(i="p:"+i)}return i}}(interface_state||(interface_state={}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.