1var vexiq_state;!function(t){let e,o;t.TICKS_PER_DEGREE=2.666667,t.ID_AxisA_y="AxisA:y",t.ID_AxisB_x="AxisB:x",t.ID_AxisC_x="AxisC:x",t.ID_AxisD_y="AxisD:y",t.ID_Btn_Eu="Eu",t.ID_Btn_Ed="Ed",t.ID_Btn_Fu="Fu",t.ID_Btn_Fd="Fd",t.ID_Btn_Lu="Lu",t.ID_Btn_Ld="Ld",t.ID_Btn_Ru="Ru",t.ID_Btn_Rd="Rd",t.RGBtoHueAndNamedColor=function(t){let e,o=t.red/255,s=t.green/255,i=t.blue/255,r=Math.max(o,s,i),a=r-Math.min(o,s,i);if(0==a)return{hueColor:0,namedColor:0,named3Color:0};r==o?e=(s-i)/a%6*60:r==s?e=60*((i-o)/a+2):r==i&&(e=60*((o-s)/a+4)),e<0&&(e+=360);let n=Math.floor(255*e/360),c=1;n>=11&&(c=2),n>=15&&(c=3),n>=23&&(c=4),n>=39&&(c=5),n>=54&&(c=6),n>=60&&(c=7),n>=100&&(c=8),n>=140&&(c=9),n>=173&&(c=10),n>=186&&(c=11),n>=200&&(c=12),n>=250&&(c=1);let l=1;return n>=15&&(l=0),n>=54&&(l=2),n>=110&&(l=0),n>=130&&(l=3),n>=180&&(l=0),n>=240&&(l=1),{hueColor:n,namedColor:c,named3Color:l}},function(t){t[t.Off=0]="Off",t[t.Red=1]="Red",t[t.RedOrange=2]="RedOrange",t[t.Orange=3]="Orange",t[t.YellowOrange=4]="YellowOrange",t[t.Yellow=5]="Yellow",t[t.YellowGreen=6]="YellowGreen",t[t.Green=7]="Green",t[t.BlueGreen=8]="BlueGreen",t[t.Blue=9]="Blue",t[t.BlueViolet=10]="BlueViolet",t[t.Violet=11]="Violet",t[t.RedViolet=12]="RedViolet",t[t.White=13]="White"}(e=t.LedOutput||(t.LedOutput={}));class s{static getScreenColor(t){return s.screenRgbColors[t]}static getTouchLedColor(t){return s.touchLedRgbColors[t]}static getNamedColorList(){return Object.keys(e).map(t=>e[t]).filter(t=>"number"==typeof t)}static findNamedColor(t,e){return e||(e=s.getNamedColorList()),util.find(e,e=>function(t,e){const o=s.getTouchLedColor(e);return t.r===o.r&&t.g===o.g&&t.b===o.b&&t.bri===o.bri}(t,e))}static toString(t){return t?t.r+"/"+t.g+"/"+t.b+"/"+t.bri:msg.COLOR_NONE}static rawToRgb(t){return t?("00"+t.r.toString(16)).substr(-2)+("00"+t.g.toString(16)).substr(-2)+("00"+t.b.toString(16)).substr(-2):"000000"}static toHexColor(t){return t.r<<16|t.g<<8|t.b}}s.touchLedRgbColors=[{r:0,g:0,b:0,bri:0},{r:255,g:0,b:0,bri:255},{r:255,g:70,b:0,bri:255},{r:255,g:160,b:0,bri:255},{r:255,g:255,b:0,bri:255},{r:160,g:255,b:0,bri:255},{r:70,g:255,b:0,bri:255},{r:0,g:255,b:0,bri:255},{r:0,g:255,b:40,bri:255},{r:0,g:0,b:255,bri:255},{r:40,g:0,b:255,bri:255},{r:100,g:0,b:255,bri:255},{r:255,g:0,b:100,bri:255},{r:160,g:255,b:100,bri:255}],s.screenRgbColors=[{r:192,g:192,b:192,bri:255},{r:255,g:0,b:0,bri:255},{r:255,g:70,b:0,bri:255},{r:255,g:160,b:0,bri:255},{r:255,g:200,b:0,bri:255},{r:255,g:255,b:0,bri:255},{r:160,g:255,b:0,bri:255},{r:0,g:255,b:0,bri:255},{r:0,g:255,b:160,bri:255},{r:0,g:0,b:255,bri:255},{r:100,g:0,b:255,bri:255},{r:200,g:0,b:255,bri:255},{r:255,g:0,b:100,bri:255},{r:255,g:255,b:255,bri:255}],t.Color=s;class i{constructor(t,e,o,s=null,i=!0,r=!0){this.id=t,this.uiName=e,this.defaultVarName=o,this.mimicPartId=s,this.canChangeVarName=i,this.supportsDetectPort=r,this.numPins=1}valueEquivalentTo(t){return this===t||!(!util.contains(i.DISTANCE_TYPES,this)||!util.contains(i.DISTANCE_TYPES,t))}getDefaultValue(){switch(this){case i.motor:case i.motor_rp:return{reverse:!1,setVelocity:0,targetPosition:null,holdPosition:null,position:0,velocity:0,flagReachedTarget:!1};case i.touch_led:return{color:s.getTouchLedColor(e.Off),pressed:!1};case i.color_grayscale:case i.color_hue:return{namedColor:e.Off,rawColor:s.getTouchLedColor(e.Off),grayscale:0,ledIsOn:!1,proximity:!1,proximityThreshold:220,named3Color:0,hueColor:0};case i.lcd:return{lines:["","","","",""]};case i.sound:return{};case i.raw_analog:return 0;default:return null}}getDefaultExtraConfig(){return null}}i.DISTANCE_TYPES=[i.distance_cm,i.distance_mm,i.distance_in],t.VexDeviceType=i;class r extends i{constructor(t,e,o,s=null,i=!0,r=!0){super(t,e,o,s,i,r),this.id=t,this.uiName=e,this.defaultVarName=o,this.mimicPartId=s,this.canChangeVarName=i,this.supportsDetectPort=r}writeToSharedArray(t,e){}writeFieldToSharedArray(t,e,o){}readFromSharedArray(t){}}t.VexNoTransferDeviceType=r;class a extends i{constructor(t,e,o,s=null,i=!0,r=!0){super(t,e,o,s,i,r),this.id=t,this.uiName=e,this.defaultVarName=o,this.mimicPartId=s,this.canChangeVarName=i,this.supportsDetectPort=r}writeToSharedArray(t,e){Atomics.store(e,0,t?1:0)}writeFieldToSharedArray(t,e,o){Atomics.store(o,0,e?1:0)}readFromSharedArray(t){return 1==Atomics.load(t,0)}}t.VexBooleanDeviceType=a;
1class n extends i{constructor(t,e,o,s=null,i=!0,r=!0){super(t,e,o,s,i,r),this.id=t,this.uiName=e,this.defaultVarName=o,this.mimicPartId=s,this.canChangeVarName=i,this.supportsDetectPort=r}writeToSharedArray(t,e){Atomics.store(e,0,null==t?0:1e3*t)}writeFieldToSharedArray(t,e,o){Atomics.store(o,0,1e3*e)}readFromSharedArray(t){return Atomics.load(t,0)/1e3}}t.VexNumericDeviceType=n;class c extends i{constructor(t,e,o,s=null,i=!0,r=!0){super(t,e,o,s,i,r),this.id=t,this.uiName=e,this.defaultVarName=o,this.mimicPartId=s,this.canChangeVarName=i,this.supportsDetectPort=r}writeToSharedArray(t,e){null==t?(Atomics.store(e,0,0),Atomics.store(e,1,0),Atomics.store(e,2,0),Atomics.store(e,3,0),Atomics.store(e,4,0),Atomics.store(e,5,0),Atomics.store(e,6,0)):(Atomics.store(e,0,t.reverse?1:0),Atomics.store(e,1,100*t.setVelocity),Atomics.store(e,2,null==t.targetPosition?ist.MIN_INT32:100*t.targetPosition),Atomics.store(e,3,null==t.holdPosition?ist.MIN_INT32:100*t.holdPosition),Atomics.store(e,4,100*t.position),Atomics.store(e,5,100*t.velocity),Atomics.store(e,6,t.flagReachedTarget?1:0))}writeFieldToSharedArray(t,e,o){switch(t){case"reverse":Atomics.store(o,0,e?1:0);break;case"setVelocity":Atomics.store(o,1,100*e);break;case"targetPosition":Atomics.store(o,2,null==e?ist.MIN_INT32:100*e);break;case"holdPosition":Atomics.store(o,3,null==e?ist.MIN_INT32:100*e);break;case"position":Atomics.store(o,4,100*e);break;case"velocity":Atomics.store(o,5,100*e);break;case"flagReachedTarget":Atomics.store(o,6,e?1:0)}}readFromSharedArray(t){var e=Atomics.load(t,2),o=Atomics.load(t,3);return{reverse:1==Atomics.load(t,0),setVelocity:Atomics.load(t,1)/100,targetPosition:e==ist.MIN_INT32?null:e/100,holdPosition:o==ist.MIN_INT32?null:o/100,position:Atomics.load(t,4)/100,velocity:Atomics.load(t,5)/100,flagReachedTarget:1==Atomics.load(t,6)}}}t.VexSmartMotorDeviceType=c;class l extends i{constructor(t,e,o,s=null,i=!0,r=!0){super(t,e,o,s,i,r),this.id=t,this.uiName=e,this.defaultVarName=o,this.mimicPartId=s,this.canChangeVarName=i,this.supportsDetectPort=r}writeToSharedArray(t,e){null==t?(Atomics.store(e,0,0),Atomics.store(e,1,0),Atomics.store(e,2,0),Atomics.store(e,3,0),Atomics.store(e,4,0),Atomics.store(e,5,0),Atomics.store(e,6,0),Atomics.store(e,7,0)):(Atomics.store(e,0,t.color.r),Atomics.store(e,1,t.color.g),Atomics.store(e,2,t.color.b),Atomics.store(e,3,t.color.bri),Atomics.store(e,4,t.pressed?1:0),Atomics.store(e,5,t.isOn?1:0),Atomics.store(e,6,t.isBlinking?1:0),Atomics.store(e,7,t.namedColor))}writeFieldToSharedArray(t,e,o){switch(t){case"color":Atomics.store(o,0,e.r),Atomics.store(o,1,e.g),Atomics.store(o,2,e.b),Atomics.store(o,3,e.bri);break;case"pressed":Atomics.store(o,4,e?1:0);break;case"isOn":Atomics.store(o,5,e?1:0);break;case"isBlinking":Atomics.store(o,6,e?1:0);break;case"namedColor":Atomics.store(o,7,e)}}readFromSharedArray(t){return{color:{r:Atomics.load(t,0),g:Atomics.load(t,1),b:Atomics.load(t,2),bri:Atomics.load(t,3)},pressed:1==Atomics.load(t,4),isOn:1==Atomics.load(t,5),isBlinking:1==Atomics.load(t,6),namedColor:Atomics.load(t,7)}}}t.VexTouchLedDeviceType=l;class d extends i{constructor(t,e,o,s=null,i=!0,r=!0){super(t,e,o,s,i,r),this.id=t,this.uiName=e,this.defaultVarName=o,this.mimicPartId=s,this.canChangeVarName=i,this.supportsDetectPort=r}writeToSharedArray(t,e){null==t?(Atomics.store(e,0,0),Atomics.store(e,1,0),Atomics.store(e,2,0),Atomics.store(e,3,0),Atomics.store(e,4,0),Atomics.store(e,5,0),Atomics.store(e,6,0),Atomics.store(e,7,0),Atomics.store(e,8,0),Atomics.store(e,9,0),Atomics.store(e,10,0)):(Atomics.store(e,0,t.namedColor),Atomics.store(e,1,t.rawColor.r),Atomics.store(e,2,t.rawColor.g),Atomics.store(e,3,t.rawColor.b),Atomics.store(e,4,t.rawColor.bri),Atomics.store(e,5,t.grayscale),Atomics.store(e,6,t.ledIsOn?1:0),Atomics.store(e,7,t.proximity?1:0),Atomics.store(e,8,t.proximityThreshold),Atomics.store(e,9,t.named3Color),Atomics.store(e,10,t.hueColor))}writeFieldToSharedArray(t,e,o){switch(t){case"namedColor":Atomics.store(o,0,e);break;case"rawColor":Atomics.store(o,1,e.r),Atomics.store(o,2,e.g),Atomics.store(o,3,e.b),Atomics.store(o,4,e.bri);break;
1case"grayscale":Atomics.store(o,5,e);break;case"ledIsOn":Atomics.store(o,6,e?1:0);break;case"proximity":Atomics.store(o,7,e?1:0);break;case"proximityThreshold":Atomics.store(o,8,e);break;case"named3Color":Atomics.store(o,9,e);break;case"hueColor":Atomics.store(o,10,e)}}readFromSharedArray(t){return{namedColor:Atomics.load(t,0),rawColor:{r:Atomics.load(t,1),g:Atomics.load(t,2),b:Atomics.load(t,3),bri:Atomics.load(t,4)},grayscale:Atomics.load(t,5),ledIsOn:1==Atomics.load(t,6),proximity:1==Atomics.load(t,7),proximityThreshold:Atomics.load(t,8),named3Color:Atomics.load(t,9),hueColor:Atomics.load(t,10)}}}t.VexColorDeviceType=d,i.bumper=new a("bumper",msg.DT_BUMPER,"bumper_{0}",27),i.motor=new c("motor",msg.DT_MOTOR,"motor_{0}",15),i.motor_rp=new c("motor_rp",msg.DT_MOTOR_REVERSE_POLARITY,"motor_{0}",15),i.touch_led=new l("touch_led",msg.DT_TOUCH_LED,"touch_led_{0}",26),i.color_hue=new d("color_hue",msg.DT_COLOR_HUE,"color_{0}",24),i.color_grayscale=new d("color_grayscale",msg.DT_COLOR_GRAYSCALE,"color_{0}",24),i.distance_cm=new n("distance_cm",msg.DT_DISTANCE_SENSOR_CM,"distance_{0}",23),i.distance_mm=new n("distance_mm",msg.DT_DISTANCE_SENSOR_MM,"distance_{0}",23),i.distance_in=new n("distance_in",msg.DT_DISTANCE_SENSOR_IN,"distance_{0}",23),i.gyro=new n("gyro",msg.DT_GYRO,"gyro_{0}",25),i.vision_sensor=new r("vision_sensor",msg.DT_VISION_SENSOR,"vision_{0}"),i.raw_output=new a("raw_output",msg.DT_RAW_DIGITAL_OUTPUT,"output_{0}",null,!0,!1),i.raw_analog=new n("raw_analog",msg.DT_ANALOG_SENSOR,"analog_{0}",null,!0,!1),i.raw_analogLM34=new n("raw_analogLM34",msg.DT_LM34_TEMPERATURE_SENSOR_DEG_F,"temperature_{0}",null,!0,!1),i.drivetrain=new r("drivetrain",msg.DT_DRIVETRAIN,"drivetrain",null,!0,!1),i.lcd=new r("lcd",msg.DT_LCD_DISPLAY,"lcd",null,!1,!1),i.sound=new r("sound",msg.DT_SOUND,"sound",null,!1,!1),i.face_button=new a("face_button",msg.DT_FACE_BUTTON,"face_button",null,!1,!1),i.joystick=new r("joystick",msg.DT_JOYSTICK,"joystick",null,!0,!1),i.joystick_button=new a("joystick_button",msg.DT_JOYSTICK_BUTTON,null,null,!1,!1),i.joystick_axis=new n("joystick_axis",msg.DT_JOYSTICK_AXIS,null,null,!1,!1),t.setColorSensorHue=function(t,e){if(t.type===i.color_grayscale&&(t.setType(i.color_hue),t.setValueProperty("ledIsOn",!1)),t.type!==i.color_hue)throw new Error("Widget "+t.index+" is not a color sensor");void 0!==e&&(t.setValueProperty("namedColor",e),t.setValueProperty("rawColor",s.getTouchLedColor(e)))},t.setColorSensorGrayscale=function(t,e){if(t.type===i.color_hue&&(t.setType(i.color_grayscale),t.setValueProperty("ledIsOn",!0)),t.type!==i.color_grayscale)throw new Error("Widget "+t.index+" is not a color sensor");void 0!==e&&t.setValueProperty("grayscale",e)},function(t){t[t.Check=0]="Check",t[t.X=1]="X",t[t.Up=2]="Up",t[t.Down=3]="Down"}(o=t.FaceButtonID||(t.FaceButtonID={})),t.faceButtonIdToWidgetIndex=function(e){switch(e){case o.Check:return t.FACE_BUTTON_INDEX+0;case o.Up:return t.FACE_BUTTON_INDEX+1;case o.Down:return t.FACE_BUTTON_INDEX+2;default:return}};class u extends ist.InterfaceState{constructor(e){super(i),this.ports=[],this.lcd=null,this.drivetrain=null,this.sound=null,this.joystick=null,this.joystickItems=[],t.NUM_PORTS="flowol3d"===e||"flowol2d"===e?24:12,t.FACE_BUTTON_INDEX=t.NUM_PORTS+3,t.JOYSTICK_INDEX=t.FACE_BUTTON_INDEX+3,this.initializeWidgets()}getAllWidgets(){return this.widgets}initializeWidgets(){for(var e=0;e<t.NUM_PORTS;e++){var o=new ist.Widget(this,""+(e+1),util.format(msg.F_HWID_0,[e+1]),e,"",null,ist.OptionsType.ShowDialog);this.ports.push(o),this.widgets.push(o),o.addType(i.bumper),o.addType(i.motor),o.addType(i.motor_rp),o.addType(i.touch_led),o.addType(i.color_hue),o.addType(i.color_grayscale),o.addType(i.distance_cm),o.addType(i.distance_mm),o.addType(i.distance_in),o.addType(i.gyro),o.addType(i.vision_sensor)}this.drivetrain=new ist.Widget(this,ist.HWID_drivetrain,msg.HWID_DRIVETRAIN,t.NUM_PORTS,"dtGroup","dt",ist.OptionsType.ShowDialog,i.drivetrain),this.widgets.push(this.drivetrain),this.lcd=new ist.Widget(this,ist.HWID_lcd,msg.HWID_LCD,t.NUM_PORTS+1,"lcd","lcd",ist.OptionsType.None,i.lcd),this.widgets.push(this.lcd),this.sound=new ist.Widget(this,"sound",msg.HWID_SOUND,t.NUM_PORTS+2,"
1soundGroup","sound",ist.OptionsType.None,i.sound),this.widgets.push(this.sound),this.initializeFaceButtons(),this.initializeJoystick(),this.widgetTypeChange(()=>this.raiseConfigChange()),this.widgetNameChange(()=>this.raiseConfigChange())}initializeFaceButtons(){if(this.widgets.length!=t.FACE_BUTTON_INDEX)throw new Error("Check FACE_BUTTON_INDEX and deserializeAdjust");let e;e=new ist.Widget(this,"btn_chk",msg.HWID_BUTTON_CHECK,0,"faceButtonGroup","button_check",ist.OptionsType.None,i.face_button),this.widgets.push(e),e=new ist.Widget(this,"btn_up",msg.HWID_BUTTON_UP,0,"faceButtonGroup","button_up",ist.OptionsType.None,i.face_button),this.widgets.push(e),e=new ist.Widget(this,"btn_down",msg.HWID_BUTTON_DOWN,0,"faceButtonGroup","button_down",ist.OptionsType.None,i.face_button),this.widgets.push(e)}initializeJoystick(){if(this.widgets.length!=t.JOYSTICK_INDEX)throw new Error("Check JOYSTICK_INDEX and deserializeAdjust");this.joystick=new ist.Widget(this,ist.HWID_joystick,msg.HWID_JOYSTICK),this.joystick.optionsType=ist.OptionsType.ShowDialog,this.widgets.push(this.joystick),this.joystick.addType(i.joystick),this.addJoystickItems(this.joystickItems),this.widgetTypeChange((t,e,o)=>{e===this.joystick&&this.onJoystickTypeChanged(o)}),this.joystick.setType(null)}getDeprecatedWidgetTypes(t){return t===ProjectTypeId.Flowol2dMimicBlockly||t===ProjectTypeId.Flowol2dMimicFlowol||t===ProjectTypeId.Flowol2dMimicPython||t===ProjectTypeId.Flowol3dMimicBlockly||t===ProjectTypeId.Flowol3dMimicFlowol||t===ProjectTypeId.Flowol3dMimicPython?[i.raw_analogLM34]:[i.raw_output,i.raw_analog,i.raw_analogLM34]}isJoystickUsed(){return null!=this.joystick.type}onJoystickTypeChanged(t){if(this.widgets=util.grep(this.widgets,t=>t.type!=i.joystick_button&&t.type!=i.joystick_axis),null!=t){var e=this.widgets.indexOf(this.joystick),o=this.widgets.slice(e+1);this.widgets=this.widgets.slice(0,e+1).concat(this.joystickItems,o)}this.raiseWidgetListChange()}addJoystickItems(e){let o=0;this.addAxis(e,o++,t.ID_AxisA_y),this.addAxis(e,o++,t.ID_AxisB_x),this.addAxis(e,o++,t.ID_AxisC_x),this.addAxis(e,o++,t.ID_AxisD_y),o=0,this.addButton(e,o++,t.ID_Btn_Eu),this.addButton(e,o++,t.ID_Btn_Ed),this.addButton(e,o++,t.ID_Btn_Fu),this.addButton(e,o++,t.ID_Btn_Fd),this.addButton(e,o++,t.ID_Btn_Lu),this.addButton(e,o++,t.ID_Btn_Ld),this.addButton(e,o++,t.ID_Btn_Ru),this.addButton(e,o++,t.ID_Btn_Rd)}addAxis(t,e,o){const s=ist.hwidToName(o),r=new ist.Widget(this,o,s,e,"joystick",s,ist.OptionsType.None,i.joystick_axis);t.push(r)}addButton(t,e,o){const s=ist.hwidToName(o),r=new ist.Widget(this,o,s,e,"joystick",s,ist.OptionsType.None,i.joystick_button);t.push(r)}enableJoystickWizardMode(){this.joystick.setType(i.joystick),this.joystick.optionsType=ist.OptionsType.None}getTypeCategory(t){if(!t.type)return ist.WidgetTypeCategory.NoType;switch(t.type){case i.motor:case i.motor_rp:return ist.WidgetTypeCategory.MotorEncoder;case i.drivetrain:return ist.WidgetTypeCategory.Drivetrain;case i.joystick_button:return ist.WidgetTypeCategory.JoystickButton;case i.joystick_axis:return ist.WidgetTypeCategory.JoystickAxis;case i.gyro:return ist.WidgetTypeCategory.Gyro;default:return ist.WidgetTypeCategory.Other}}isReversePolarity(t){switch(t.type){case i.motor:return!1;case i.motor_rp:return!0;default:return}}setReversePolarity(t,e){switch(t.type){case i.motor:e&&t.setType(i.motor_rp);break;case i.motor_rp:e||t.setType(i.motor)}}deserializeAdjust(e){e.version<2&&e.widgetInfos.forEach(e=>{e.index>=t.NUM_PORTS&&(e.index+=1)}),e.version<3&&e.widgetInfos.forEach(e=>{e.index>=t.NUM_PORTS+2&&(e.index+=1)}),e.version<4&&e.widgetInfos.forEach(e=>{e.index>=t.NUM_PORTS+3&&(e.index+=3)})}stop(){this.widgets.forEach(e=>{e.type!=t.VexDeviceType.motor&&e.type!=t.VexDeviceType.motor_rp||(e.setValueProperty("setVelocity",0),e.setValueProperty("targetPosition",null),e.setValueProperty("holdPosition",null),e.setValueProperty("flagReachedTarget",!1))})}}t.VexIQState=u}(vexiq_state||(vexiq_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.