@deeptrekker/controls 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1 +1 @@
1
- var e,r,t,a,n,o;!function(e){e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.DisableMotors="DISABLE_MOTORS",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.DistanceLock="DISTANCE_LOCK",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE"}(e||(e={})),function(e){e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ZoomIn="ZOOM_IN",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.ZoomOut="ZOOM_OUT",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.CruiseControl="CRUISE_CONTROL",e.ReelReset="REEL_RESET",e.SwitchCamera="SWITCH_CAMERA",e.CameraHome="CAMERA_HOME",e.Record="RECORD",e.Screenshot="SCREENSHOT",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerReverse="CRAWLER_REVERSE",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.IncreaseFocus="FOCUS_INCREASE",e.DecreaseFocus="FOCUS_DECREASE",e.IncreaseExposure="EXPOSURE_INCREASE",e.DecreaseExposure="DECREASE_EXPOSURE",e.ToggleLasers="TOGGLE_LASERS",e.DisableMotors="DISABLE_MOTORS"}(r||(r={})),function(e){e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.Thrusters="THRUSTER",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.Yaw="YAW",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.Lateral="LATERAL",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.Vertical="VERTICAL",e.DisableMotors="DISABLE_MOTORS",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.PitchLock="PITCH_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.StationHolding="STATION_HOLDING",e.DistanceLock="DISTANCE_LOCK",e.PrecisionThrusters="PRECISION_THRUSTERS",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.Grabber="GRABBER",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatform="TILT_PLATFORM",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.RotateGrabber="ROTATE_GRABBER",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.SonarRange="SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.SonarGain="SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.Zoom="ZOOM",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.ElevatingArm="ELEVATING_ARM",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE",e.ReelReset="REEL_RESET",e.SwitchCamera="SWITCH_CAMERA",e.CameraHome="CAMERA_HOME",e.Record="RECORD",e.Screenshot="SCREENSHOT",e.CrawlerSteer="CRAWLER_STEER",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerDrive="CRAWLER_DRIVE",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerReverse="CRAWLER_REVERSE",e.Pan="PAN",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Tilt="TILT",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.Focus="FOCUS",e.IncreaseFocus="FOCUS_INCREASE",e.DecreaseFocus="FOCUS_DECREASE",e.Exposure="EXPOSURE",e.IncreaseExposure="EXPOSURE_INCREASE",e.DecreaseExposure="DECREASE_EXPOSURE",e.ToggleLasers="TOGGLE_LASERS",e.ReelTetherIn="REEL_TETHER_IN",e.SpeedGain="SPEED_GAIN",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.SteerGain="STEER_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.ReelDisengage="REEL_DISENGAGE",e.ReelMotors="REEL_MOTORS"}(t||(t={})),function(e){e.Vehicle="VEHICLE",e.Camera="CAMERA",e.Reel="REEL",e.Lights="LIGHTS",e.IntelligentModes="INTELLIGENT_MODES",e.IntelligentMode="INTELLIGENT_MODE",e.Tools="TOOLS",e.Grabber="GRABBER",e.Sonar="SONAR",e.Menu="MENU",e.Miscellaneous="MISCELLANEOUS"}(a||(a={})),function(e){e.JoystickAxis="AXIS",e.JoystickButton="BUTTON",e.KeyboardKey="KEY"}(n||(n={})),function(e){e.TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",e.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",e.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",e.KEYBOARD_ID="KEYBOARD",e.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",e.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",e.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",e.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",e.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",e.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)"}(o||(o={}));const i={[o.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[o.KEYBOARD_ID]:"Keyboard",[o.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[o.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[o.STEELSERIES_CONTROLLER_ID]:"Gamepad",[o.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[o.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[o.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[o.CONSOLE_CONTROLLER]:"Deep Trekker Console",[o.FLIGHT_JOYSTICK]:"Flight joystick"},s={[t.CrawlerLeft]:!0,[t.CrawlerRight]:!0,[t.CrawlerForward]:!0,[t.CrawlerReverse]:!0,[t.TiltDown]:!0,[t.TiltUp]:!0,[t.PanLeft]:!0,[t.PanRight]:!0,[t.ReelDisengage]:!0,[t.ReelTetherIn]:!0},E={positiveCommand:t.ReelDisengage,negativeCommand:t.ReelTetherIn},R={positiveCommand:t.CrawlerForward,negativeCommand:t.CrawlerReverse},l={positiveCommand:t.CrawlerRight,negativeCommand:t.CrawlerLeft},c={positiveCommand:t.ElevatingArmAscend,negativeCommand:t.ElevatingArmDescend},T={positiveCommand:t.PanRight,negativeCommand:t.PanLeft},L={positiveCommand:t.TiltUp,negativeCommand:t.TiltDown},A={positiveCommand:t.IncreaseFocus,negativeCommand:t.DecreaseFocus},S={positiveCommand:t.IncreaseExposure,negativeCommand:t.DecreaseExposure},_={positiveCommand:t.ZoomIn,negativeCommand:t.ZoomOut},I={positiveCommand:t.ThrusterForward,negativeCommand:t.ThrusterReverse},C={positiveCommand:t.YawRight,negativeCommand:t.YawLeft},u={positiveCommand:t.LateralRight,negativeCommand:t.LateralLeft},g={positiveCommand:t.VerticalUp,negativeCommand:t.VerticalDown},d={positiveCommand:t.GrabberOpen,negativeCommand:t.GrabberClose},h={positiveCommand:t.GrabberRotateRight,negativeCommand:t.GrabberRotateLeft},O={positiveCommand:t.TiltPlatformUp,negativeCommand:t.TiltPlatformDown},D={positiveCommand:t.IncreaseMainLightBrightness,negativeCommand:t.DecreaseMainLightBrightness},m={positiveCommand:t.IncreaseAuxLightBrightness,negativeCommand:t.DecreaseAuxLightBrightness},G={positiveCommand:t.IncreaseSpeedGain,negativeCommand:t.DecreaseSpeedGain},N={positiveCommand:t.IncreaseSteerGain,negativeCommand:t.DecreaseSteerGain},p={positiveCommand:t.IncreaseSonarRange,negativeCommand:t.DecreaseSonarRange},b={positiveCommand:t.IncreaseSonarGain,negativeCommand:t.DecreaseSonarGain},f={[t.ReelMotors]:E,[t.CrawlerDrive]:R,[t.CrawlerSteer]:l,[t.ElevatingArm]:c,[t.Pan]:T,[t.Tilt]:L,[t.Focus]:A,[t.Exposure]:S,[t.Zoom]:_,[t.Thrusters]:I,[t.Yaw]:C,[t.Lateral]:u,[t.Vertical]:g,[t.Grabber]:d,[t.RotateGrabber]:h,[t.TiltPlatform]:O,[t.MainLightBrightness]:D,[t.AuxLightBrightness]:m,[t.SpeedGain]:G,[t.SteerGain]:N,[t.SonarRange]:p,[t.SonarGain]:b},v={[t.MainLightBrightness]:D,[t.AuxLightBrightness]:m,[t.SpeedGain]:G,[t.SteerGain]:N,[t.SonarRange]:p,[t.SonarGain]:b},M=20,B="+",P="-",H=" ",w={[t.MainLight]:"Main light on/off",[t.AuxLight]:"Aux light on/off",[t.ToggleLasers]:"Lasers on/off",[t.IncreaseMainLightBrightness]:"Increase main LED",[t.DecreaseMainLightBrightness]:"Decrease main LED",[t.IncreaseAuxLightBrightness]:"Increase aux LED",[t.DecreaseAuxLightBrightness]:"Decrease aux LED",[t.CruiseControl]:"CC/Retrieval",[t.ResetPosture]:"Reset Posture",[t.ReelReset]:"Reel reset [hold]",[t.SwitchCamera]:"Camera switch",[t.ThrusterForward]:"Thruster forward",[t.ThrusterReverse]:"Thruster reverse",[t.YawLeft]:"Yaw left",[t.YawRight]:"Yaw right",[t.LateralLeft]:"Lateral left",[t.LateralRight]:"Lateral right",[t.VerticalDown]:"Vertical down",[t.VerticalUp]:"Vertical up",[t.DisableMotors]:"Disable motors",[t.IncreaseSpeedGain]:"Increase speed gain",[t.DecreaseSpeedGain]:"Decrease speed gain",[t.IncreaseSteerGain]:"Increase steer gain",[t.DecreaseSteerGain]:"Decrease steer gain",[t.DepthLock]:"Depth lock",[t.AltitudeLock]:"Altitude lock",[t.HeadingLock]:"Heading lock",[t.PitchLock]:"Pitch lock",[t.AutoStabilization]:"Auto stabilization on/off",[t.StationHolding]:"Station holding on/off",[t.DistanceLock]:"Distance lock",[t.PrecisionThrusters]:"Precision thrusters on/off",[t.TiltUp]:"Camera tilt Up",[t.TiltDown]:"Camera tilt Down",[t.ZoomIn]:"Zoom in",[t.ZoomOut]:"Zoom out",[t.CameraHome]:"Camera home",[t.Record]:"Record",[t.Screenshot]:"Snapshot",[t.IncreaseSonarRange]:"Increase sonar range",[t.DecreaseSonarRange]:"Decrease sonar range",[t.IncreaseSonarGain]:"Increase sonar gain",[t.DecreaseSonarGain]:"Decrease sonar gain",[t.ChangeSonarFrequency]:"Change sonar frequency",[t.GrabberOpen]:"Grabber open",[t.GrabberClose]:"Grabber close",[t.GrabberRotateLeft]:"Grabber rotate left",[t.GrabberRotateRight]:"Grabber rotate right",[t.TiltPlatformUp]:"Tilt platform up",[t.TiltPlatformDown]:"Tilt platform down",[t.IncreaseFocus]:"Increase focus",[t.DecreaseFocus]:"Decrease focus",[t.IncreaseExposure]:"Increase exposure",[t.DecreaseExposure]:"Decrease exposure",[t.ReelTetherIn]:"Reel tether in"},U={[e.ThrusterForward]:a.Vehicle,[e.ThrusterReverse]:a.Vehicle,[e.YawLeft]:a.Vehicle,[e.YawRight]:a.Vehicle,[e.LateralLeft]:a.Vehicle,[e.LateralRight]:a.Vehicle,[e.VerticalUp]:a.Vehicle,[e.VerticalDown]:a.Vehicle,[e.DisableMotors]:a.Vehicle,[e.IncreaseSpeedGain]:a.Vehicle,[e.DecreaseSpeedGain]:a.Vehicle,[e.IncreaseSteerGain]:a.Vehicle,[e.DecreaseSteerGain]:a.Vehicle,[e.CruiseControl]:a.Vehicle,[e.ResetPosture]:a.Vehicle,[e.DepthLock]:a.IntelligentModes,[e.AltitudeLock]:a.IntelligentModes,[e.HeadingLock]:a.IntelligentModes,[e.AutoStabilization]:a.IntelligentModes,[e.DistanceLock]:a.IntelligentModes,[e.MainLight]:a.Lights,[e.AuxLight]:a.Lights,[e.ToggleLasers]:a.Lights,[e.IncreaseMainLightBrightness]:a.Lights,[e.DecreaseMainLightBrightness]:a.Lights,[e.IncreaseAuxLightBrightness]:a.Lights,[e.DecreaseAuxLightBrightness]:a.Lights,[e.TiltUp]:a.Camera,[e.TiltDown]:a.Camera,[e.ZoomIn]:a.Camera,[e.ZoomOut]:a.Camera,[e.CameraHome]:a.Camera,[e.Screenshot]:a.Camera,[e.Record]:a.Camera,[e.IncreaseSonarRange]:a.Sonar,[e.DecreaseSonarRange]:a.Sonar,[e.IncreaseSonarGain]:a.Sonar,[e.DecreaseSonarGain]:a.Sonar,[e.ChangeSonarFrequency]:a.Sonar,[e.GrabberOpen]:a.Tools,[e.GrabberClose]:a.Tools,[e.GrabberRotateLeft]:a.Tools,[e.GrabberRotateRight]:a.Tools,[e.TiltPlatformUp]:a.Tools,[e.TiltPlatformDown]:a.Tools,[e.ReelTetherIn]:a.Miscellaneous},V={[a.Vehicle]:"Thruster controls",[a.Camera]:"Camera controls",[a.Tools]:"Grabber/tools",[a.Grabber]:"Grabber/tools",[a.IntelligentMode]:"Intelligent modes",[a.Reel]:"Miscellaneous",[a.IntelligentModes]:"Intelligent modes",[a.Lights]:"Lights/lasers",[a.Menu]:"Menu Navigation",[a.Miscellaneous]:"Miscellaneous",[a.Sonar]:"Sonar controls"};function x(e,r){var t;const a=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===a||"TEXTAREA"===a)return!1;let n=!0;return e.forEach((e=>{r[e]||(n=!1)})),n}function F(e,r,t){let a=0;return t.forEach((t=>{t&&t.id===e&&(a=t.axes[r])})),Math.round(100*a)}function k(e,r,t){let a=!1;return t.forEach((t=>{t&&t.id===e&&(a=t.buttons[r].pressed)})),a}function y(e,r,t,a){var o;if(!e)return!1;const{input_type:i,input_key:s,controller_id:E}=e;if(!E&&i!==n.KeyboardKey)return!1;switch(i){case n.KeyboardKey:return x(s.split(B),t);case n.JoystickAxis:const e=s.includes(H)?+s.substring(0,s.indexOf(H)):+s,i=F(E,e,r),R=(null===(o=a[E])||void 0===o?void 0:o[e])||20;return s.includes(B)?i>R:!!s.includes("-")&&i<-1*R;case n.JoystickButton:return k(E,+s,r);default:return!1}}function K(e,r,t,a){var o,i;if(!e)return 0;const{input_type:s,input_key:E,controller_id:R}=e;if(!R&&s!==n.KeyboardKey)return 0;switch(s){case n.KeyboardKey:return x(E.split("+"),t)?100:0;case n.JoystickAxis:const e=E.indexOf(H)>-1?+E.substring(0,E.indexOf(H)):+E,s=F(R,e,r),l=null!==(i=null===(o=a[R])||void 0===o?void 0:o[e])&&void 0!==i?i:20;return E.includes(B)?s>=l?W(s,l):0:E.includes("-")?s<=-1*l?W(Math.abs(s),l):0:s;case n.JoystickButton:return k(R,+E,r)?100:0;default:return 0}}const W=(e,r)=>Math.floor((e-r)/(100-r)*100);function Y(e){const r={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;r[t]=(r[t]||0)+1;const a=r[t]>1?`${t} (${r[t]})`:t;return new Proxy(e,{get:(e,r)=>"id"===r?a:Reflect.get(e,r)})}))}function Z(e){const r={up:!1,down:!1,left:!1,right:!1},t=(e,r)=>Math.abs(parseFloat(e.toFixed(2))-r)<.2;return t(e,-1)?r.up=!0:t(e,.14)?r.down=!0:t(e,.71)?r.left=!0:t(e,-.43)?r.right=!0:t(e,1)?(r.up=!0,r.left=!0):t(e,-.71)?(r.up=!0,r.right=!0):t(e,-.14)?(r.down=!0,r.right=!0):t(e,.43)&&(r.down=!0,r.left=!0),r}function X(e){const r=Z(e.axes[9]);return Object.assign(Object.assign({},e),{id:o.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:r.up,touched:r.up,value:r.up?1:0},{pressed:r.down,touched:r.down,value:r.down?1:0},{pressed:r.left,touched:r.left,value:r.left?1:0},{pressed:r.right,touched:r.right,value:r.right?1:0},e.buttons[15]]})}const J={},j=(e,r)=>J[e]=r,q=(e,r={},t={})=>{const a=Y(navigator.getGamepads().map((e=>e?e.id===o.STEELSERIES_CONTROLLER_BLUETOOTH_ID?X(e):e:null)));Object.entries(r).forEach((([r,i])=>{const s=r,E=f[s],R=v[s];let l=[];if(Object.keys(e).forEach((r=>{var c,T,L,A;const S=e[r];if(E){const{positiveCommand:e,negativeCommand:s}=E,_=(K(null!==(c=S[e])&&void 0!==c?c:{},a,J,t)||0)-(K(null!==(T=S[s])&&void 0!==T?T:{},a,J,t)||0),I=(null===(L=S[e])||void 0===L?void 0:L.input_type)===n.JoystickAxis||(null===(A=S[s])||void 0===A?void 0:A.input_type)===n.JoystickAxis;R&&r===o.CONSOLE_CONTROLLER&&I?null==i||i.forEach((e=>e(_,o.CONSOLE_CONTROLLER,n.JoystickAxis))):(0!==_||I)&&l.push({value:_,inputType:I?n.JoystickAxis:void 0})}else null==i||i.forEach((e=>{var n,o;e(y(null!==(n=S[s])&&void 0!==n?n:{},a,J,t),r,null===(o=S[s])||void 0===o?void 0:o.input_type)}))})),E)if(l.length>0){const e=l.reduce(((e,r)=>e+r.value),0)/l.length,r=l[0].inputType;null==i||i.forEach((t=>t(e,void 0,r)))}else null==i||i.forEach((e=>e(0)))}))};export{f as COMBINED_COMMANDS,i as COMMON_DEFAULT_CONTROLLER_NAMES,v as CONSOLE_DIAL_COMMANDS,a as ControlType,r as CrawlerControl,M as DEFAULT_DEAD_ZONE,o as DefaultControllerId,V as INPUT_CATEGORIES_LABELS,U as INPUT_MAP_SECTIONS,n as InputType,P as NEGATIVE_COMMAND_INDICATOR,B as POSITIVE_COMMAND_INDICATOR,s as RATE_COMMANDS,e as RovControl,H as SPACE_BETWEEN_INDEX_AND_INDICATOR,t as VehicleControl,Y as assignUniqueIds,x as checkKeyPress,X as convertSteelSeriesBTToBaseSteelSeries,y as decodeBooleanMapping,K as decodeRateMapping,F as getAxisValue,k as getButtonValue,Z as getVirtualDPadStatesSteelSeriesBT,q as poll,w as readableMappingROV,j as updateKeysPressed};
1
+ var e,a,t,r,n,i;!function(e){e.AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.Fn="FN",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.Record="RECORD",e.ReelTetherIn="REEL_TETHER_IN",e.RollLeft="ROLL_LEFT",e.RollRight="ROLL_RIGHT",e.Screenshot="SCREENSHOT",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.TiltDown="TILT_DOWN",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.VerticalDown="VERTICAL_DOWN",e.VerticalUp="VERTICAL_UP",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE"}(e||(e={})),function(e){e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerReverse="CRAWLER_REVERSE",e.CrawlerRight="CRAWLER_RIGHT",e.CruiseControl="CRUISE_CONTROL",e.DecreaseExposure="DECREASE_EXPOSURE",e.DecreaseFocus="FOCUS_DECREASE",e.DisableMotors="DISABLE_MOTORS",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.IncreaseExposure="EXPOSURE_INCREASE",e.IncreaseFocus="FOCUS_INCREASE",e.MainLight="MAIN_LIGHT",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Record="RECORD",e.ReelReset="REEL_RESET",e.Screenshot="SCREENSHOT",e.SwitchCamera="SWITCH_CAMERA",e.TiltDown="TILT_DOWN",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT"}(a||(a={})),function(e){e.AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.CrawlerDrive="CRAWLER_DRIVE",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerReverse="CRAWLER_REVERSE",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerSteer="CRAWLER_STEER",e.CruiseControl="CRUISE_CONTROL",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseExposure="DECREASE_EXPOSURE",e.DecreaseFocus="FOCUS_DECREASE",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.ElevatingArm="ELEVATING_ARM",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.Exposure="EXPOSURE",e.Focus="FOCUS",e.Fn="FN",e.Grabber="GRABBER",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseExposure="EXPOSURE_INCREASE",e.IncreaseFocus="FOCUS_INCREASE",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.Lateral="LATERAL",e.LateralLeft="LATERAL_LEFT",e.LateralGain="LATERAL_GAIN",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",e.Pan="PAN",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Pitch="PITCH",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.PitchLock="PITCH_LOCK",e.PrecisionThrusters="PRECISION_THRUSTERS",e.Record="RECORD",e.ReelDisengage="REEL_DISENGAGE",e.ReelMotors="REEL_MOTORS",e.ReelReset="REEL_RESET",e.ResetPosture="RESET_POSTURE",e.ReelTetherIn="REEL_TETHER_IN",e.Roll="ROLL",e.RollLeft="ROLL_LEFT",e.RollPitchGain="ROLL_PITCH_GAIN",e.RollRight="ROLL_RIGHT",e.RotateGrabber="ROTATE_GRABBER",e.Screenshot="SCREENSHOT",e.SonarGain="SONAR_GAIN",e.SonarRange="SONAR_RANGE",e.SpeedGain="SPEED_GAIN",e.StationHolding="STATION_HOLDING",e.SteerGain="STEER_GAIN",e.SwitchCamera="SWITCH_CAMERA",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.Thrusters="THRUSTER",e.Tilt="TILT",e.TiltDown="TILT_DOWN",e.TiltPlatform="TILT_PLATFORM",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.Vertical="VERTICAL",e.VerticalDown="VERTICAL_DOWN",e.VerticalGain="VERTICAL_GAIN",e.VerticalUp="VERTICAL_UP",e.Yaw="YAW",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.Zoom="ZOOM",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT"}(t||(t={})),function(e){e.Vehicle="VEHICLE",e.Camera="CAMERA",e.Reel="REEL",e.Lights="LIGHTS",e.IntelligentModes="INTELLIGENT_MODES",e.IntelligentMode="INTELLIGENT_MODE",e.Tools="TOOLS",e.Grabber="GRABBER",e.Sonar="SONAR",e.Menu="MENU",e.Miscellaneous="MISCELLANEOUS"}(r||(r={})),function(e){e.JoystickAxis="AXIS",e.JoystickButton="BUTTON",e.KeyboardKey="KEY"}(n||(n={})),function(e){e.TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",e.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",e.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",e.KEYBOARD_ID="KEYBOARD",e.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",e.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",e.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",e.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",e.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",e.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)"}(i||(i={}));const o={[i.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[i.KEYBOARD_ID]:"Keyboard",[i.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[i.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[i.STEELSERIES_CONTROLLER_ID]:"Gamepad",[i.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[i.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[i.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[i.CONSOLE_CONTROLLER]:"Deep Trekker Console",[i.FLIGHT_JOYSTICK]:"Flight joystick"},s={[t.CrawlerLeft]:!0,[t.CrawlerRight]:!0,[t.CrawlerForward]:!0,[t.CrawlerReverse]:!0,[t.TiltDown]:!0,[t.TiltUp]:!0,[t.PanLeft]:!0,[t.PanRight]:!0,[t.ReelDisengage]:!0,[t.ReelTetherIn]:!0},E={positiveCommand:t.ReelDisengage,negativeCommand:t.ReelTetherIn},l={positiveCommand:t.CrawlerForward,negativeCommand:t.CrawlerReverse},R={positiveCommand:t.CrawlerRight,negativeCommand:t.CrawlerLeft},c={positiveCommand:t.ElevatingArmAscend,negativeCommand:t.ElevatingArmDescend},L={positiveCommand:t.PanRight,negativeCommand:t.PanLeft},T={positiveCommand:t.TiltUp,negativeCommand:t.TiltDown},A={positiveCommand:t.IncreaseFocus,negativeCommand:t.DecreaseFocus},I={positiveCommand:t.IncreaseExposure,negativeCommand:t.DecreaseExposure},_={positiveCommand:t.ZoomIn,negativeCommand:t.ZoomOut},S={positiveCommand:t.ThrusterForward,negativeCommand:t.ThrusterReverse},C={positiveCommand:t.YawRight,negativeCommand:t.YawLeft},h={positiveCommand:t.LateralRight,negativeCommand:t.LateralLeft},G={positiveCommand:t.VerticalUp,negativeCommand:t.VerticalDown},g={positiveCommand:t.RollLeft,negativeCommand:t.RollRight},u={positiveCommand:t.PitchUp,negativeCommand:t.PitchDown},D={positiveCommand:t.GrabberOpen,negativeCommand:t.GrabberClose},d={positiveCommand:t.GrabberRotateRight,negativeCommand:t.GrabberRotateLeft},O={positiveCommand:t.TiltPlatformUp,negativeCommand:t.TiltPlatformDown},m={positiveCommand:t.IncreaseMainLightBrightness,negativeCommand:t.DecreaseMainLightBrightness},N={positiveCommand:t.IncreaseAuxLightBrightness,negativeCommand:t.DecreaseAuxLightBrightness},p={positiveCommand:t.IncreaseSpeedGain,negativeCommand:t.DecreaseSpeedGain},P={positiveCommand:t.IncreaseSteerGain,negativeCommand:t.DecreaseSteerGain},v={positiveCommand:t.IncreaseSonarRange,negativeCommand:t.DecreaseSonarRange},b={positiveCommand:t.IncreaseSonarGain,negativeCommand:t.DecreaseSonarGain},f={positiveCommand:t.IncreaseLateralGain,negativeCommand:t.DecreaseLateralGain},M={positiveCommand:t.IncreaseRollPitchGain,negativeCommand:t.DecreaseRollPitchGain},V={positiveCommand:t.IncreaseVerticalGain,negativeCommand:t.DecreaseVerticalGain},H={[t.ReelMotors]:E,[t.CrawlerDrive]:l,[t.CrawlerSteer]:R,[t.ElevatingArm]:c,[t.Pan]:L,[t.Tilt]:T,[t.Focus]:A,[t.Exposure]:I,[t.Zoom]:_,[t.Thrusters]:S,[t.Yaw]:C,[t.Lateral]:h,[t.Vertical]:G,[t.Roll]:g,[t.Pitch]:u,[t.Grabber]:D,[t.RotateGrabber]:d,[t.TiltPlatform]:O,[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.LateralGain]:f,[t.VerticalGain]:V,[t.RollPitchGain]:M,[t.SonarRange]:v,[t.SonarGain]:b},B={[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.SonarRange]:v,[t.SonarGain]:b},w=20,U="+",F="-",x=" ",k={[t.MainLight]:"Main light on/off",[t.AuxLight]:"Aux light on/off",[t.ToggleLasers]:"Lasers on/off",[t.IncreaseMainLightBrightness]:"Increase main LED",[t.DecreaseMainLightBrightness]:"Decrease main LED",[t.IncreaseAuxLightBrightness]:"Increase aux LED",[t.DecreaseAuxLightBrightness]:"Decrease aux LED",[t.CruiseControl]:"CC/Retrieval",[t.ResetPosture]:"Reset Posture",[t.ReelReset]:"Reel reset [hold]",[t.SwitchCamera]:"Camera switch",[t.ThrusterForward]:"Thruster forward",[t.ThrusterReverse]:"Thruster reverse",[t.YawLeft]:"Yaw left",[t.YawRight]:"Yaw right",[t.LateralLeft]:"Lateral left",[t.LateralRight]:"Lateral right",[t.VerticalUp]:"Vertical up",[t.VerticalDown]:"Vertical down",[t.PitchUp]:"Pitch up",[t.PitchDown]:"Pitch down",[t.RollLeft]:"Roll left",[t.RollRight]:"Roll right",[t.DisableMotors]:"Disable motors",[t.IncreaseSpeedGain]:"Increase speed gain",[t.DecreaseSpeedGain]:"Decrease speed gain",[t.IncreaseSteerGain]:"Increase steer gain",[t.DecreaseSteerGain]:"Decrease steer gain",[t.IncreaseLateralGain]:"Increase lateral gain",[t.DecreaseLateralGain]:"Decrease lateral gain",[t.IncreaseVerticalGain]:"Increase vertical gain",[t.DecreaseVerticalGain]:"Decrease vertical gain",[t.IncreaseRollPitchGain]:"Increase pitch/roll gain",[t.DecreaseRollPitchGain]:"Decrease pitch/roll gain",[t.DepthLock]:"Depth lock",[t.AltitudeLock]:"Altitude lock",[t.HeadingLock]:"Heading lock",[t.PitchLock]:"Pitch lock",[t.AutoStabilization]:"Auto stabilization on/off",[t.StationHolding]:"Station holding on/off",[t.DistanceLock]:"Distance lock",[t.PrecisionThrusters]:"Precision thrusters on/off",[t.TiltUp]:"Camera tilt Up",[t.TiltDown]:"Camera tilt Down",[t.ZoomIn]:"Zoom in",[t.ZoomOut]:"Zoom out",[t.CameraHome]:"Camera home",[t.Record]:"Record",[t.Screenshot]:"Snapshot",[t.IncreaseSonarRange]:"Increase sonar range",[t.DecreaseSonarRange]:"Decrease sonar range",[t.IncreaseSonarGain]:"Increase sonar gain",[t.DecreaseSonarGain]:"Decrease sonar gain",[t.ChangeSonarFrequency]:"Change sonar frequency",[t.GrabberOpen]:"Grabber open",[t.GrabberClose]:"Grabber close",[t.GrabberRotateLeft]:"Grabber rotate left",[t.GrabberRotateRight]:"Grabber rotate right",[t.TiltPlatformUp]:"Tilt platform up",[t.TiltPlatformDown]:"Tilt platform down",[t.IncreaseFocus]:"Increase focus",[t.DecreaseFocus]:"Decrease focus",[t.IncreaseExposure]:"Increase exposure",[t.DecreaseExposure]:"Decrease exposure",[t.Fn]:"FN",[t.ReelTetherIn]:"Reel tether in"},y={[e.ThrusterForward]:r.Vehicle,[e.ThrusterReverse]:r.Vehicle,[e.YawLeft]:r.Vehicle,[e.YawRight]:r.Vehicle,[e.LateralLeft]:r.Vehicle,[e.LateralRight]:r.Vehicle,[e.VerticalUp]:r.Vehicle,[e.VerticalDown]:r.Vehicle,[e.DisableMotors]:r.Vehicle,[e.PitchUp]:r.Vehicle,[e.PitchDown]:r.Vehicle,[e.RollLeft]:r.Vehicle,[e.RollRight]:r.Vehicle,[e.IncreaseSpeedGain]:r.Vehicle,[e.DecreaseSpeedGain]:r.Vehicle,[e.IncreaseSteerGain]:r.Vehicle,[e.DecreaseSteerGain]:r.Vehicle,[e.IncreaseLateralGain]:r.Vehicle,[e.DecreaseLateralGain]:r.Vehicle,[e.IncreaseVerticalGain]:r.Vehicle,[e.DecreaseVerticalGain]:r.Vehicle,[e.IncreaseRollPitchGain]:r.Vehicle,[e.DecreaseRollPitchGain]:r.Vehicle,[e.CruiseControl]:r.Vehicle,[e.ResetPosture]:r.Vehicle,[e.DepthLock]:r.IntelligentModes,[e.AltitudeLock]:r.IntelligentModes,[e.HeadingLock]:r.IntelligentModes,[e.AutoStabilization]:r.IntelligentModes,[e.DistanceLock]:r.IntelligentModes,[e.MainLight]:r.Lights,[e.AuxLight]:r.Lights,[e.ToggleLasers]:r.Lights,[e.IncreaseMainLightBrightness]:r.Lights,[e.DecreaseMainLightBrightness]:r.Lights,[e.IncreaseAuxLightBrightness]:r.Lights,[e.DecreaseAuxLightBrightness]:r.Lights,[e.TiltUp]:r.Camera,[e.TiltDown]:r.Camera,[e.ZoomIn]:r.Camera,[e.ZoomOut]:r.Camera,[e.CameraHome]:r.Camera,[e.Screenshot]:r.Camera,[e.Record]:r.Camera,[e.IncreaseSonarRange]:r.Sonar,[e.DecreaseSonarRange]:r.Sonar,[e.IncreaseSonarGain]:r.Sonar,[e.DecreaseSonarGain]:r.Sonar,[e.ChangeSonarFrequency]:r.Sonar,[e.GrabberOpen]:r.Tools,[e.GrabberClose]:r.Tools,[e.GrabberRotateLeft]:r.Tools,[e.GrabberRotateRight]:r.Tools,[e.TiltPlatformUp]:r.Tools,[e.TiltPlatformDown]:r.Tools,[e.Fn]:r.Miscellaneous,[e.ReelTetherIn]:r.Miscellaneous},K={[r.Vehicle]:"Thruster controls",[r.Camera]:"Camera controls",[r.Tools]:"Grabber/tools",[r.Grabber]:"Grabber/tools",[r.IntelligentMode]:"Intelligent modes",[r.Reel]:"Miscellaneous",[r.IntelligentModes]:"Intelligent modes",[r.Lights]:"Lights/lasers",[r.Menu]:"Menu Navigation",[r.Miscellaneous]:"Miscellaneous",[r.Sonar]:"Sonar controls"};function W(e,a){var t;const r=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===r||"TEXTAREA"===r)return!1;let n=!0;return e.forEach((e=>{a[e]||(n=!1)})),n}function Y(e,a,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[a])})),Math.round(100*r)}function Z(e,a,t){let r=!1;return t.forEach((t=>{t&&t.id===e&&(r=t.buttons[a].pressed)})),r}function X(e,a,t,r){var i;if(!e)return!1;const{input_type:o,input_key:s,controller_id:E}=e;if(!E&&o!==n.KeyboardKey)return!1;switch(o){case n.KeyboardKey:return W(s.split(U),t);case n.JoystickAxis:const e=s.includes(x)?+s.substring(0,s.indexOf(x)):+s,o=Y(E,e,a),l=(null===(i=r[E])||void 0===i?void 0:i[e])||20;return s.includes(U)?o>l:!!s.includes("-")&&o<-1*l;case n.JoystickButton:return Z(E,+s,a);default:return!1}}function J(e,a,t,r){var i,o;if(!e)return 0;const{input_type:s,input_key:E,controller_id:l}=e;if(!l&&s!==n.KeyboardKey)return 0;switch(s){case n.KeyboardKey:return W(E.split("+"),t)?100:0;case n.JoystickAxis:const e=E.indexOf(x)>-1?+E.substring(0,E.indexOf(x)):+E,s=Y(l,e,a),R=null!==(o=null===(i=r[l])||void 0===i?void 0:i[e])&&void 0!==o?o:20;return E.includes(U)?s>=R?j(s,R):0:E.includes("-")?s<=-1*R?j(Math.abs(s),R):0:s;case n.JoystickButton:return Z(l,+E,a)?100:0;default:return 0}}const j=(e,a)=>Math.floor((e-a)/(100-a)*100);function q(e){const a={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;a[t]=(a[t]||0)+1;const r=a[t]>1?`${t} (${a[t]})`:t;return new Proxy(e,{get:(e,a)=>"id"===a?r:Reflect.get(e,a)})}))}function z(e){const a={up:!1,down:!1,left:!1,right:!1},t=(e,a)=>Math.abs(parseFloat(e.toFixed(2))-a)<.2;return t(e,-1)?a.up=!0:t(e,.14)?a.down=!0:t(e,.71)?a.left=!0:t(e,-.43)?a.right=!0:t(e,1)?(a.up=!0,a.left=!0):t(e,-.71)?(a.up=!0,a.right=!0):t(e,-.14)?(a.down=!0,a.right=!0):t(e,.43)&&(a.down=!0,a.left=!0),a}function Q(e){const a=z(e.axes[9]);return Object.assign(Object.assign({},e),{id:i.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:a.up,touched:a.up,value:a.up?1:0},{pressed:a.down,touched:a.down,value:a.down?1:0},{pressed:a.left,touched:a.left,value:a.left?1:0},{pressed:a.right,touched:a.right,value:a.right?1:0},e.buttons[15]]})}const $={},ee=(e,a)=>$[e]=a,ae=(e,a={},t={})=>{const r=q(navigator.getGamepads().map((e=>e?e.id===i.STEELSERIES_CONTROLLER_BLUETOOTH_ID?Q(e):e:null)));Object.entries(a).forEach((([a,o])=>{const s=a,E=H[s],l=B[s];let R=[];if(Object.keys(e).forEach((a=>{var c,L,T,A;const I=e[a];if(E){const{positiveCommand:e,negativeCommand:s}=E,_=(J(null!==(c=I[e])&&void 0!==c?c:{},r,$,t)||0)-(J(null!==(L=I[s])&&void 0!==L?L:{},r,$,t)||0),S=(null===(T=I[e])||void 0===T?void 0:T.input_type)===n.JoystickAxis||(null===(A=I[s])||void 0===A?void 0:A.input_type)===n.JoystickAxis;l&&a===i.CONSOLE_CONTROLLER&&S?null==o||o.forEach((e=>e(_,i.CONSOLE_CONTROLLER,n.JoystickAxis))):(0!==_||S)&&R.push({value:_,inputType:S?n.JoystickAxis:void 0})}else null==o||o.forEach((e=>{var n,i;e(X(null!==(n=I[s])&&void 0!==n?n:{},r,$,t),a,null===(i=I[s])||void 0===i?void 0:i.input_type)}))})),E)if(R.length>0){const e=R.reduce(((e,a)=>e+a.value),0)/R.length,a=R[0].inputType;null==o||o.forEach((t=>t(e,void 0,a)))}else null==o||o.forEach((e=>e(0)))}))};export{H as COMBINED_COMMANDS,o as COMMON_DEFAULT_CONTROLLER_NAMES,B as CONSOLE_DIAL_COMMANDS,r as ControlType,a as CrawlerControl,w as DEFAULT_DEAD_ZONE,i as DefaultControllerId,K as INPUT_CATEGORIES_LABELS,y as INPUT_MAP_SECTIONS,n as InputType,F as NEGATIVE_COMMAND_INDICATOR,U as POSITIVE_COMMAND_INDICATOR,s as RATE_COMMANDS,e as RovControl,x as SPACE_BETWEEN_INDEX_AND_INDICATOR,t as VehicleControl,q as assignUniqueIds,W as checkKeyPress,Q as convertSteelSeriesBTToBaseSteelSeries,X as decodeBooleanMapping,J as decodeRateMapping,Y as getAxisValue,Z as getButtonValue,z as getVirtualDPadStatesSteelSeriesBT,ae as poll,k as readableMappingROV,ee as updateKeysPressed};
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e,o,t,r,n,s;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RovControl=void 0,(e=exports.RovControl||(exports.RovControl={})).ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.DisableMotors="DISABLE_MOTORS",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.DistanceLock="DISTANCE_LOCK",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE",exports.CrawlerControl=void 0,(o=exports.CrawlerControl||(exports.CrawlerControl={})).MainLight="MAIN_LIGHT",o.AuxLight="AUX_LIGHT",o.ZoomIn="ZOOM_IN",o.ElevatingArmDescend="ELEVATING_ARM_DESCEND",o.ZoomOut="ZOOM_OUT",o.ElevatingArmAscend="ELEVATING_ARM_ASCEND",o.CruiseControl="CRUISE_CONTROL",o.ReelReset="REEL_RESET",o.SwitchCamera="SWITCH_CAMERA",o.CameraHome="CAMERA_HOME",o.Record="RECORD",o.Screenshot="SCREENSHOT",o.CrawlerLeft="CRAWLER_LEFT",o.CrawlerRight="CRAWLER_RIGHT",o.CrawlerForward="CRAWLER_FORWARD",o.CrawlerReverse="CRAWLER_REVERSE",o.PanLeft="PAN_LEFT",o.PanRight="PAN_RIGHT",o.TiltUp="TILT_UP",o.TiltDown="TILT_DOWN",o.IncreaseFocus="FOCUS_INCREASE",o.DecreaseFocus="FOCUS_DECREASE",o.IncreaseExposure="EXPOSURE_INCREASE",o.DecreaseExposure="DECREASE_EXPOSURE",o.ToggleLasers="TOGGLE_LASERS",o.DisableMotors="DISABLE_MOTORS",exports.VehicleControl=void 0,(t=exports.VehicleControl||(exports.VehicleControl={})).ThrusterForward="THRUSTER_FORWARD",t.ThrusterReverse="THRUSTER_REVERSE",t.Thrusters="THRUSTER",t.YawLeft="YAW_LEFT",t.YawRight="YAW_RIGHT",t.Yaw="YAW",t.LateralLeft="LATERAL_LEFT",t.LateralRight="LATERAL_RIGHT",t.Lateral="LATERAL",t.VerticalUp="VERTICAL_UP",t.VerticalDown="VERTICAL_DOWN",t.Vertical="VERTICAL",t.DisableMotors="DISABLE_MOTORS",t.DepthLock="DEPTH_LOCK",t.AltitudeLock="ALTITUDE_LOCK",t.HeadingLock="HEADING_LOCK",t.PitchLock="PITCH_LOCK",t.AutoStabilization="AUTO_STABILIZATION",t.StationHolding="STATION_HOLDING",t.DistanceLock="DISTANCE_LOCK",t.PrecisionThrusters="PRECISION_THRUSTERS",t.GrabberOpen="GRABBER_OPEN",t.GrabberClose="GRABBER_CLOSE",t.Grabber="GRABBER",t.GrabberRotateLeft="GRABBER_ROTATE_LEFT",t.GrabberRotateRight="GRABBER_ROTATE_RIGHT",t.TiltPlatform="TILT_PLATFORM",t.TiltPlatformUp="TILT_PLATFORM_UP",t.TiltPlatformDown="TILT_PLATFORM_DOWN",t.RotateGrabber="ROTATE_GRABBER",t.IncreaseSonarRange="INCREASE_SONAR_RANGE",t.DecreaseSonarRange="DECREASE_SONAR_RANGE",t.SonarRange="SONAR_RANGE",t.IncreaseSonarGain="INCREASE_SONAR_GAIN",t.DecreaseSonarGain="DECREASE_SONAR_GAIN",t.SonarGain="SONAR_GAIN",t.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",t.MainLight="MAIN_LIGHT",t.AuxLight="AUX_LIGHT",t.Zoom="ZOOM",t.ZoomIn="ZOOM_IN",t.ZoomOut="ZOOM_OUT",t.ElevatingArm="ELEVATING_ARM",t.ElevatingArmDescend="ELEVATING_ARM_DESCEND",t.ElevatingArmAscend="ELEVATING_ARM_ASCEND",t.CruiseControl="CRUISE_CONTROL",t.ResetPosture="RESET_POSTURE",t.ReelReset="REEL_RESET",t.SwitchCamera="SWITCH_CAMERA",t.CameraHome="CAMERA_HOME",t.Record="RECORD",t.Screenshot="SCREENSHOT",t.CrawlerSteer="CRAWLER_STEER",t.CrawlerLeft="CRAWLER_LEFT",t.CrawlerRight="CRAWLER_RIGHT",t.CrawlerDrive="CRAWLER_DRIVE",t.CrawlerForward="CRAWLER_FORWARD",t.CrawlerReverse="CRAWLER_REVERSE",t.Pan="PAN",t.PanLeft="PAN_LEFT",t.PanRight="PAN_RIGHT",t.Tilt="TILT",t.TiltUp="TILT_UP",t.TiltDown="TILT_DOWN",t.Focus="FOCUS",t.IncreaseFocus="FOCUS_INCREASE",t.DecreaseFocus="FOCUS_DECREASE",t.Exposure="EXPOSURE",t.IncreaseExposure="EXPOSURE_INCREASE",t.DecreaseExposure="DECREASE_EXPOSURE",t.ToggleLasers="TOGGLE_LASERS",t.ReelTetherIn="REEL_TETHER_IN",t.SpeedGain="SPEED_GAIN",t.IncreaseSpeedGain="INCREASE_SPEED_GAIN",t.DecreaseSpeedGain="DECREASE_SPEED_GAIN",t.SteerGain="STEER_GAIN",t.IncreaseSteerGain="INCREASE_STEER_GAIN",t.DecreaseSteerGain="DECREASE_STEER_GAIN",t.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",t.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",t.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",t.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",t.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",t.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",t.ReelDisengage="REEL_DISENGAGE",t.ReelMotors="REEL_MOTORS",exports.ControlType=void 0,(r=exports.ControlType||(exports.ControlType={})).Vehicle="VEHICLE",r.Camera="CAMERA",r.Reel="REEL",r.Lights="LIGHTS",r.IntelligentModes="INTELLIGENT_MODES",r.IntelligentMode="INTELLIGENT_MODE",r.Tools="TOOLS",r.Grabber="GRABBER",r.Sonar="SONAR",r.Menu="MENU",r.Miscellaneous="MISCELLANEOUS",exports.InputType=void 0,(n=exports.InputType||(exports.InputType={})).JoystickAxis="AXIS",n.JoystickButton="BUTTON",n.KeyboardKey="KEY",exports.DefaultControllerId=void 0,(s=exports.DefaultControllerId||(exports.DefaultControllerId={})).TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",s.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",s.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",s.KEYBOARD_ID="KEYBOARD",s.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",s.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",s.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",s.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",s.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",s.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)";const l={[exports.DefaultControllerId.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[exports.DefaultControllerId.KEYBOARD_ID]:"Keyboard",[exports.DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[exports.DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_ID]:"Gamepad",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[exports.DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[exports.DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[exports.DefaultControllerId.CONSOLE_CONTROLLER]:"Deep Trekker Console",[exports.DefaultControllerId.FLIGHT_JOYSTICK]:"Flight joystick"},a={[exports.VehicleControl.CrawlerLeft]:!0,[exports.VehicleControl.CrawlerRight]:!0,[exports.VehicleControl.CrawlerForward]:!0,[exports.VehicleControl.CrawlerReverse]:!0,[exports.VehicleControl.TiltDown]:!0,[exports.VehicleControl.TiltUp]:!0,[exports.VehicleControl.PanLeft]:!0,[exports.VehicleControl.PanRight]:!0,[exports.VehicleControl.ReelDisengage]:!0,[exports.VehicleControl.ReelTetherIn]:!0},i={positiveCommand:exports.VehicleControl.ReelDisengage,negativeCommand:exports.VehicleControl.ReelTetherIn},p={positiveCommand:exports.VehicleControl.CrawlerForward,negativeCommand:exports.VehicleControl.CrawlerReverse},C={positiveCommand:exports.VehicleControl.CrawlerRight,negativeCommand:exports.VehicleControl.CrawlerLeft},c={positiveCommand:exports.VehicleControl.ElevatingArmAscend,negativeCommand:exports.VehicleControl.ElevatingArmDescend},R={positiveCommand:exports.VehicleControl.PanRight,negativeCommand:exports.VehicleControl.PanLeft},E={positiveCommand:exports.VehicleControl.TiltUp,negativeCommand:exports.VehicleControl.TiltDown},T={positiveCommand:exports.VehicleControl.IncreaseFocus,negativeCommand:exports.VehicleControl.DecreaseFocus},x={positiveCommand:exports.VehicleControl.IncreaseExposure,negativeCommand:exports.VehicleControl.DecreaseExposure},h={positiveCommand:exports.VehicleControl.ZoomIn,negativeCommand:exports.VehicleControl.ZoomOut},I={positiveCommand:exports.VehicleControl.ThrusterForward,negativeCommand:exports.VehicleControl.ThrusterReverse},A={positiveCommand:exports.VehicleControl.YawRight,negativeCommand:exports.VehicleControl.YawLeft},L={positiveCommand:exports.VehicleControl.LateralRight,negativeCommand:exports.VehicleControl.LateralLeft},S={positiveCommand:exports.VehicleControl.VerticalUp,negativeCommand:exports.VehicleControl.VerticalDown},_={positiveCommand:exports.VehicleControl.GrabberOpen,negativeCommand:exports.VehicleControl.GrabberClose},u={positiveCommand:exports.VehicleControl.GrabberRotateRight,negativeCommand:exports.VehicleControl.GrabberRotateLeft},d={positiveCommand:exports.VehicleControl.TiltPlatformUp,negativeCommand:exports.VehicleControl.TiltPlatformDown},D={positiveCommand:exports.VehicleControl.IncreaseMainLightBrightness,negativeCommand:exports.VehicleControl.DecreaseMainLightBrightness},g={positiveCommand:exports.VehicleControl.IncreaseAuxLightBrightness,negativeCommand:exports.VehicleControl.DecreaseAuxLightBrightness},O={positiveCommand:exports.VehicleControl.IncreaseSpeedGain,negativeCommand:exports.VehicleControl.DecreaseSpeedGain},V={positiveCommand:exports.VehicleControl.IncreaseSteerGain,negativeCommand:exports.VehicleControl.DecreaseSteerGain},m={positiveCommand:exports.VehicleControl.IncreaseSonarRange,negativeCommand:exports.VehicleControl.DecreaseSonarRange},G={positiveCommand:exports.VehicleControl.IncreaseSonarGain,negativeCommand:exports.VehicleControl.DecreaseSonarGain},N={[exports.VehicleControl.ReelMotors]:i,[exports.VehicleControl.CrawlerDrive]:p,[exports.VehicleControl.CrawlerSteer]:C,[exports.VehicleControl.ElevatingArm]:c,[exports.VehicleControl.Pan]:R,[exports.VehicleControl.Tilt]:E,[exports.VehicleControl.Focus]:T,[exports.VehicleControl.Exposure]:x,[exports.VehicleControl.Zoom]:h,[exports.VehicleControl.Thrusters]:I,[exports.VehicleControl.Yaw]:A,[exports.VehicleControl.Lateral]:L,[exports.VehicleControl.Vertical]:S,[exports.VehicleControl.Grabber]:_,[exports.VehicleControl.RotateGrabber]:u,[exports.VehicleControl.TiltPlatform]:d,[exports.VehicleControl.MainLightBrightness]:D,[exports.VehicleControl.AuxLightBrightness]:g,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:V,[exports.VehicleControl.SonarRange]:m,[exports.VehicleControl.SonarGain]:G},v={[exports.VehicleControl.MainLightBrightness]:D,[exports.VehicleControl.AuxLightBrightness]:g,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:V,[exports.VehicleControl.SonarRange]:m,[exports.VehicleControl.SonarGain]:G},y="+",M=" ",f={[exports.VehicleControl.MainLight]:"Main light on/off",[exports.VehicleControl.AuxLight]:"Aux light on/off",[exports.VehicleControl.ToggleLasers]:"Lasers on/off",[exports.VehicleControl.IncreaseMainLightBrightness]:"Increase main LED",[exports.VehicleControl.DecreaseMainLightBrightness]:"Decrease main LED",[exports.VehicleControl.IncreaseAuxLightBrightness]:"Increase aux LED",[exports.VehicleControl.DecreaseAuxLightBrightness]:"Decrease aux LED",[exports.VehicleControl.CruiseControl]:"CC/Retrieval",[exports.VehicleControl.ResetPosture]:"Reset Posture",[exports.VehicleControl.ReelReset]:"Reel reset [hold]",[exports.VehicleControl.SwitchCamera]:"Camera switch",[exports.VehicleControl.ThrusterForward]:"Thruster forward",[exports.VehicleControl.ThrusterReverse]:"Thruster reverse",[exports.VehicleControl.YawLeft]:"Yaw left",[exports.VehicleControl.YawRight]:"Yaw right",[exports.VehicleControl.LateralLeft]:"Lateral left",[exports.VehicleControl.LateralRight]:"Lateral right",[exports.VehicleControl.VerticalDown]:"Vertical down",[exports.VehicleControl.VerticalUp]:"Vertical up",[exports.VehicleControl.DisableMotors]:"Disable motors",[exports.VehicleControl.IncreaseSpeedGain]:"Increase speed gain",[exports.VehicleControl.DecreaseSpeedGain]:"Decrease speed gain",[exports.VehicleControl.IncreaseSteerGain]:"Increase steer gain",[exports.VehicleControl.DecreaseSteerGain]:"Decrease steer gain",[exports.VehicleControl.DepthLock]:"Depth lock",[exports.VehicleControl.AltitudeLock]:"Altitude lock",[exports.VehicleControl.HeadingLock]:"Heading lock",[exports.VehicleControl.PitchLock]:"Pitch lock",[exports.VehicleControl.AutoStabilization]:"Auto stabilization on/off",[exports.VehicleControl.StationHolding]:"Station holding on/off",[exports.VehicleControl.DistanceLock]:"Distance lock",[exports.VehicleControl.PrecisionThrusters]:"Precision thrusters on/off",[exports.VehicleControl.TiltUp]:"Camera tilt Up",[exports.VehicleControl.TiltDown]:"Camera tilt Down",[exports.VehicleControl.ZoomIn]:"Zoom in",[exports.VehicleControl.ZoomOut]:"Zoom out",[exports.VehicleControl.CameraHome]:"Camera home",[exports.VehicleControl.Record]:"Record",[exports.VehicleControl.Screenshot]:"Snapshot",[exports.VehicleControl.IncreaseSonarRange]:"Increase sonar range",[exports.VehicleControl.DecreaseSonarRange]:"Decrease sonar range",[exports.VehicleControl.IncreaseSonarGain]:"Increase sonar gain",[exports.VehicleControl.DecreaseSonarGain]:"Decrease sonar gain",[exports.VehicleControl.ChangeSonarFrequency]:"Change sonar frequency",[exports.VehicleControl.GrabberOpen]:"Grabber open",[exports.VehicleControl.GrabberClose]:"Grabber close",[exports.VehicleControl.GrabberRotateLeft]:"Grabber rotate left",[exports.VehicleControl.GrabberRotateRight]:"Grabber rotate right",[exports.VehicleControl.TiltPlatformUp]:"Tilt platform up",[exports.VehicleControl.TiltPlatformDown]:"Tilt platform down",[exports.VehicleControl.IncreaseFocus]:"Increase focus",[exports.VehicleControl.DecreaseFocus]:"Decrease focus",[exports.VehicleControl.IncreaseExposure]:"Increase exposure",[exports.VehicleControl.DecreaseExposure]:"Decrease exposure",[exports.VehicleControl.ReelTetherIn]:"Reel tether in"},b={[exports.RovControl.ThrusterForward]:exports.ControlType.Vehicle,[exports.RovControl.ThrusterReverse]:exports.ControlType.Vehicle,[exports.RovControl.YawLeft]:exports.ControlType.Vehicle,[exports.RovControl.YawRight]:exports.ControlType.Vehicle,[exports.RovControl.LateralLeft]:exports.ControlType.Vehicle,[exports.RovControl.LateralRight]:exports.ControlType.Vehicle,[exports.RovControl.VerticalUp]:exports.ControlType.Vehicle,[exports.RovControl.VerticalDown]:exports.ControlType.Vehicle,[exports.RovControl.DisableMotors]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.CruiseControl]:exports.ControlType.Vehicle,[exports.RovControl.ResetPosture]:exports.ControlType.Vehicle,[exports.RovControl.DepthLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AltitudeLock]:exports.ControlType.IntelligentModes,[exports.RovControl.HeadingLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AutoStabilization]:exports.ControlType.IntelligentModes,[exports.RovControl.DistanceLock]:exports.ControlType.IntelligentModes,[exports.RovControl.MainLight]:exports.ControlType.Lights,[exports.RovControl.AuxLight]:exports.ControlType.Lights,[exports.RovControl.ToggleLasers]:exports.ControlType.Lights,[exports.RovControl.IncreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.IncreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.TiltUp]:exports.ControlType.Camera,[exports.RovControl.TiltDown]:exports.ControlType.Camera,[exports.RovControl.ZoomIn]:exports.ControlType.Camera,[exports.RovControl.ZoomOut]:exports.ControlType.Camera,[exports.RovControl.CameraHome]:exports.ControlType.Camera,[exports.RovControl.Screenshot]:exports.ControlType.Camera,[exports.RovControl.Record]:exports.ControlType.Camera,[exports.RovControl.IncreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.IncreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.ChangeSonarFrequency]:exports.ControlType.Sonar,[exports.RovControl.GrabberOpen]:exports.ControlType.Tools,[exports.RovControl.GrabberClose]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateLeft]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateRight]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformUp]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformDown]:exports.ControlType.Tools,[exports.RovControl.ReelTetherIn]:exports.ControlType.Miscellaneous},B={[exports.ControlType.Vehicle]:"Thruster controls",[exports.ControlType.Camera]:"Camera controls",[exports.ControlType.Tools]:"Grabber/tools",[exports.ControlType.Grabber]:"Grabber/tools",[exports.ControlType.IntelligentMode]:"Intelligent modes",[exports.ControlType.Reel]:"Miscellaneous",[exports.ControlType.IntelligentModes]:"Intelligent modes",[exports.ControlType.Lights]:"Lights/lasers",[exports.ControlType.Menu]:"Menu Navigation",[exports.ControlType.Miscellaneous]:"Miscellaneous",[exports.ControlType.Sonar]:"Sonar controls"};function P(e,o){var t;const r=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===r||"TEXTAREA"===r)return!1;let n=!0;return e.forEach((e=>{o[e]||(n=!1)})),n}function w(e,o,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[o])})),Math.round(100*r)}function H(e,o,t){let r=!1;return t.forEach((t=>{t&&t.id===e&&(r=t.buttons[o].pressed)})),r}function U(e,o,t,r){var n;if(!e)return!1;const{input_type:s,input_key:l,controller_id:a}=e;if(!a&&s!==exports.InputType.KeyboardKey)return!1;switch(s){case exports.InputType.KeyboardKey:return P(l.split(y),t);case exports.InputType.JoystickAxis:const e=l.includes(M)?+l.substring(0,l.indexOf(M)):+l,s=w(a,e,o),i=(null===(n=r[a])||void 0===n?void 0:n[e])||20;return l.includes(y)?s>i:!!l.includes("-")&&s<-1*i;case exports.InputType.JoystickButton:return H(a,+l,o);default:return!1}}function F(e,o,t,r){var n,s;if(!e)return 0;const{input_type:l,input_key:a,controller_id:i}=e;if(!i&&l!==exports.InputType.KeyboardKey)return 0;switch(l){case exports.InputType.KeyboardKey:return P(a.split("+"),t)?100:0;case exports.InputType.JoystickAxis:const e=a.indexOf(M)>-1?+a.substring(0,a.indexOf(M)):+a,l=w(i,e,o),p=null!==(s=null===(n=r[i])||void 0===n?void 0:n[e])&&void 0!==s?s:20;return a.includes(y)?l>=p?k(l,p):0:a.includes("-")?l<=-1*p?k(Math.abs(l),p):0:l;case exports.InputType.JoystickButton:return H(i,+a,o)?100:0;default:return 0}}const k=(e,o)=>Math.floor((e-o)/(100-o)*100);function K(e){const o={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;o[t]=(o[t]||0)+1;const r=o[t]>1?`${t} (${o[t]})`:t;return new Proxy(e,{get:(e,o)=>"id"===o?r:Reflect.get(e,o)})}))}function W(e){const o={up:!1,down:!1,left:!1,right:!1},t=(e,o)=>Math.abs(parseFloat(e.toFixed(2))-o)<.2;return t(e,-1)?o.up=!0:t(e,.14)?o.down=!0:t(e,.71)?o.left=!0:t(e,-.43)?o.right=!0:t(e,1)?(o.up=!0,o.left=!0):t(e,-.71)?(o.up=!0,o.right=!0):t(e,-.14)?(o.down=!0,o.right=!0):t(e,.43)&&(o.down=!0,o.left=!0),o}function Y(e){const o=W(e.axes[9]);return Object.assign(Object.assign({},e),{id:exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:o.up,touched:o.up,value:o.up?1:0},{pressed:o.down,touched:o.down,value:o.down?1:0},{pressed:o.left,touched:o.left,value:o.left?1:0},{pressed:o.right,touched:o.right,value:o.right?1:0},e.buttons[15]]})}const Z={};exports.COMBINED_COMMANDS=N,exports.COMMON_DEFAULT_CONTROLLER_NAMES=l,exports.CONSOLE_DIAL_COMMANDS=v,exports.DEFAULT_DEAD_ZONE=20,exports.INPUT_CATEGORIES_LABELS=B,exports.INPUT_MAP_SECTIONS=b,exports.NEGATIVE_COMMAND_INDICATOR="-",exports.POSITIVE_COMMAND_INDICATOR=y,exports.RATE_COMMANDS=a,exports.SPACE_BETWEEN_INDEX_AND_INDICATOR=M,exports.assignUniqueIds=K,exports.checkKeyPress=P,exports.convertSteelSeriesBTToBaseSteelSeries=Y,exports.decodeBooleanMapping=U,exports.decodeRateMapping=F,exports.getAxisValue=w,exports.getButtonValue=H,exports.getVirtualDPadStatesSteelSeriesBT=W,exports.poll=(e,o={},t={})=>{const r=K(navigator.getGamepads().map((e=>e?e.id===exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID?Y(e):e:null)));Object.entries(o).forEach((([o,n])=>{const s=o,l=N[s],a=v[s];let i=[];if(Object.keys(e).forEach((o=>{var p,C,c,R;const E=e[o];if(l){const{positiveCommand:e,negativeCommand:s}=l,T=(F(null!==(p=E[e])&&void 0!==p?p:{},r,Z,t)||0)-(F(null!==(C=E[s])&&void 0!==C?C:{},r,Z,t)||0),x=(null===(c=E[e])||void 0===c?void 0:c.input_type)===exports.InputType.JoystickAxis||(null===(R=E[s])||void 0===R?void 0:R.input_type)===exports.InputType.JoystickAxis;a&&o===exports.DefaultControllerId.CONSOLE_CONTROLLER&&x?null==n||n.forEach((e=>e(T,exports.DefaultControllerId.CONSOLE_CONTROLLER,exports.InputType.JoystickAxis))):(0!==T||x)&&i.push({value:T,inputType:x?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,l;e(U(null!==(n=E[s])&&void 0!==n?n:{},r,Z,t),o,null===(l=E[s])||void 0===l?void 0:l.input_type)}))})),l)if(i.length>0){const e=i.reduce(((e,o)=>e+o.value),0)/i.length,o=i[0].inputType;null==n||n.forEach((t=>t(e,void 0,o)))}else null==n||n.forEach((e=>e(0)))}))},exports.readableMappingROV=f,exports.updateKeysPressed=(e,o)=>Z[e]=o;
1
+ "use strict";var e,o,t,r,n,l;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RovControl=void 0,(e=exports.RovControl||(exports.RovControl={})).AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.Fn="FN",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.Record="RECORD",e.ReelTetherIn="REEL_TETHER_IN",e.RollLeft="ROLL_LEFT",e.RollRight="ROLL_RIGHT",e.Screenshot="SCREENSHOT",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.TiltDown="TILT_DOWN",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.VerticalDown="VERTICAL_DOWN",e.VerticalUp="VERTICAL_UP",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE",exports.CrawlerControl=void 0,(o=exports.CrawlerControl||(exports.CrawlerControl={})).AuxLight="AUX_LIGHT",o.CameraHome="CAMERA_HOME",o.CrawlerForward="CRAWLER_FORWARD",o.CrawlerLeft="CRAWLER_LEFT",o.CrawlerReverse="CRAWLER_REVERSE",o.CrawlerRight="CRAWLER_RIGHT",o.CruiseControl="CRUISE_CONTROL",o.DecreaseExposure="DECREASE_EXPOSURE",o.DecreaseFocus="FOCUS_DECREASE",o.DisableMotors="DISABLE_MOTORS",o.ElevatingArmAscend="ELEVATING_ARM_ASCEND",o.ElevatingArmDescend="ELEVATING_ARM_DESCEND",o.IncreaseExposure="EXPOSURE_INCREASE",o.IncreaseFocus="FOCUS_INCREASE",o.MainLight="MAIN_LIGHT",o.PanLeft="PAN_LEFT",o.PanRight="PAN_RIGHT",o.Record="RECORD",o.ReelReset="REEL_RESET",o.Screenshot="SCREENSHOT",o.SwitchCamera="SWITCH_CAMERA",o.TiltDown="TILT_DOWN",o.TiltUp="TILT_UP",o.ToggleLasers="TOGGLE_LASERS",o.ZoomIn="ZOOM_IN",o.ZoomOut="ZOOM_OUT",exports.VehicleControl=void 0,(t=exports.VehicleControl||(exports.VehicleControl={})).AltitudeLock="ALTITUDE_LOCK",t.AutoStabilization="AUTO_STABILIZATION",t.AuxLight="AUX_LIGHT",t.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",t.CameraHome="CAMERA_HOME",t.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",t.CrawlerDrive="CRAWLER_DRIVE",t.CrawlerForward="CRAWLER_FORWARD",t.CrawlerLeft="CRAWLER_LEFT",t.CrawlerReverse="CRAWLER_REVERSE",t.CrawlerRight="CRAWLER_RIGHT",t.CrawlerSteer="CRAWLER_STEER",t.CruiseControl="CRUISE_CONTROL",t.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",t.DecreaseExposure="DECREASE_EXPOSURE",t.DecreaseFocus="FOCUS_DECREASE",t.DecreaseLateralGain="DECREASE_LATERAL_GAIN",t.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",t.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",t.DecreaseSonarGain="DECREASE_SONAR_GAIN",t.DecreaseSonarRange="DECREASE_SONAR_RANGE",t.DecreaseSpeedGain="DECREASE_SPEED_GAIN",t.DecreaseSteerGain="DECREASE_STEER_GAIN",t.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",t.DepthLock="DEPTH_LOCK",t.DisableMotors="DISABLE_MOTORS",t.DistanceLock="DISTANCE_LOCK",t.ElevatingArm="ELEVATING_ARM",t.ElevatingArmAscend="ELEVATING_ARM_ASCEND",t.ElevatingArmDescend="ELEVATING_ARM_DESCEND",t.Exposure="EXPOSURE",t.Focus="FOCUS",t.Fn="FN",t.Grabber="GRABBER",t.GrabberClose="GRABBER_CLOSE",t.GrabberOpen="GRABBER_OPEN",t.GrabberRotateLeft="GRABBER_ROTATE_LEFT",t.GrabberRotateRight="GRABBER_ROTATE_RIGHT",t.HeadingLock="HEADING_LOCK",t.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",t.IncreaseExposure="EXPOSURE_INCREASE",t.IncreaseFocus="FOCUS_INCREASE",t.IncreaseLateralGain="INCREASE_LATERAL_GAIN",t.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",t.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",t.IncreaseSonarGain="INCREASE_SONAR_GAIN",t.IncreaseSonarRange="INCREASE_SONAR_RANGE",t.IncreaseSpeedGain="INCREASE_SPEED_GAIN",t.IncreaseSteerGain="INCREASE_STEER_GAIN",t.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",t.Lateral="LATERAL",t.LateralLeft="LATERAL_LEFT",t.LateralGain="LATERAL_GAIN",t.LateralRight="LATERAL_RIGHT",t.MainLight="MAIN_LIGHT",t.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",t.Pan="PAN",t.PanLeft="PAN_LEFT",t.PanRight="PAN_RIGHT",t.Pitch="PITCH",t.PitchUp="PITCH_UP",t.PitchDown="PITCH_DOWN",t.PitchLock="PITCH_LOCK",t.PrecisionThrusters="PRECISION_THRUSTERS",t.Record="RECORD",t.ReelDisengage="REEL_DISENGAGE",t.ReelMotors="REEL_MOTORS",t.ReelReset="REEL_RESET",t.ResetPosture="RESET_POSTURE",t.ReelTetherIn="REEL_TETHER_IN",t.Roll="ROLL",t.RollLeft="ROLL_LEFT",t.RollPitchGain="ROLL_PITCH_GAIN",t.RollRight="ROLL_RIGHT",t.RotateGrabber="ROTATE_GRABBER",t.Screenshot="SCREENSHOT",t.SonarGain="SONAR_GAIN",t.SonarRange="SONAR_RANGE",t.SpeedGain="SPEED_GAIN",t.StationHolding="STATION_HOLDING",t.SteerGain="STEER_GAIN",t.SwitchCamera="SWITCH_CAMERA",t.ThrusterForward="THRUSTER_FORWARD",t.ThrusterReverse="THRUSTER_REVERSE",t.Thrusters="THRUSTER",t.Tilt="TILT",t.TiltDown="TILT_DOWN",t.TiltPlatform="TILT_PLATFORM",t.TiltPlatformDown="TILT_PLATFORM_DOWN",t.TiltPlatformUp="TILT_PLATFORM_UP",t.TiltUp="TILT_UP",t.ToggleLasers="TOGGLE_LASERS",t.Vertical="VERTICAL",t.VerticalDown="VERTICAL_DOWN",t.VerticalGain="VERTICAL_GAIN",t.VerticalUp="VERTICAL_UP",t.Yaw="YAW",t.YawLeft="YAW_LEFT",t.YawRight="YAW_RIGHT",t.Zoom="ZOOM",t.ZoomIn="ZOOM_IN",t.ZoomOut="ZOOM_OUT",exports.ControlType=void 0,(r=exports.ControlType||(exports.ControlType={})).Vehicle="VEHICLE",r.Camera="CAMERA",r.Reel="REEL",r.Lights="LIGHTS",r.IntelligentModes="INTELLIGENT_MODES",r.IntelligentMode="INTELLIGENT_MODE",r.Tools="TOOLS",r.Grabber="GRABBER",r.Sonar="SONAR",r.Menu="MENU",r.Miscellaneous="MISCELLANEOUS",exports.InputType=void 0,(n=exports.InputType||(exports.InputType={})).JoystickAxis="AXIS",n.JoystickButton="BUTTON",n.KeyboardKey="KEY",exports.DefaultControllerId=void 0,(l=exports.DefaultControllerId||(exports.DefaultControllerId={})).TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",l.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",l.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",l.KEYBOARD_ID="KEYBOARD",l.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",l.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",l.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",l.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",l.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",l.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)";const s={[exports.DefaultControllerId.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[exports.DefaultControllerId.KEYBOARD_ID]:"Keyboard",[exports.DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[exports.DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_ID]:"Gamepad",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[exports.DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[exports.DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[exports.DefaultControllerId.CONSOLE_CONTROLLER]:"Deep Trekker Console",[exports.DefaultControllerId.FLIGHT_JOYSTICK]:"Flight joystick"},i={[exports.VehicleControl.CrawlerLeft]:!0,[exports.VehicleControl.CrawlerRight]:!0,[exports.VehicleControl.CrawlerForward]:!0,[exports.VehicleControl.CrawlerReverse]:!0,[exports.VehicleControl.TiltDown]:!0,[exports.VehicleControl.TiltUp]:!0,[exports.VehicleControl.PanLeft]:!0,[exports.VehicleControl.PanRight]:!0,[exports.VehicleControl.ReelDisengage]:!0,[exports.VehicleControl.ReelTetherIn]:!0},a={positiveCommand:exports.VehicleControl.ReelDisengage,negativeCommand:exports.VehicleControl.ReelTetherIn},p={positiveCommand:exports.VehicleControl.CrawlerForward,negativeCommand:exports.VehicleControl.CrawlerReverse},C={positiveCommand:exports.VehicleControl.CrawlerRight,negativeCommand:exports.VehicleControl.CrawlerLeft},c={positiveCommand:exports.VehicleControl.ElevatingArmAscend,negativeCommand:exports.VehicleControl.ElevatingArmDescend},R={positiveCommand:exports.VehicleControl.PanRight,negativeCommand:exports.VehicleControl.PanLeft},E={positiveCommand:exports.VehicleControl.TiltUp,negativeCommand:exports.VehicleControl.TiltDown},T={positiveCommand:exports.VehicleControl.IncreaseFocus,negativeCommand:exports.VehicleControl.DecreaseFocus},h={positiveCommand:exports.VehicleControl.IncreaseExposure,negativeCommand:exports.VehicleControl.DecreaseExposure},x={positiveCommand:exports.VehicleControl.ZoomIn,negativeCommand:exports.VehicleControl.ZoomOut},I={positiveCommand:exports.VehicleControl.ThrusterForward,negativeCommand:exports.VehicleControl.ThrusterReverse},L={positiveCommand:exports.VehicleControl.YawRight,negativeCommand:exports.VehicleControl.YawLeft},A={positiveCommand:exports.VehicleControl.LateralRight,negativeCommand:exports.VehicleControl.LateralLeft},_={positiveCommand:exports.VehicleControl.VerticalUp,negativeCommand:exports.VehicleControl.VerticalDown},S={positiveCommand:exports.VehicleControl.RollLeft,negativeCommand:exports.VehicleControl.RollRight},V={positiveCommand:exports.VehicleControl.PitchUp,negativeCommand:exports.VehicleControl.PitchDown},u={positiveCommand:exports.VehicleControl.GrabberOpen,negativeCommand:exports.VehicleControl.GrabberClose},D={positiveCommand:exports.VehicleControl.GrabberRotateRight,negativeCommand:exports.VehicleControl.GrabberRotateLeft},d={positiveCommand:exports.VehicleControl.TiltPlatformUp,negativeCommand:exports.VehicleControl.TiltPlatformDown},g={positiveCommand:exports.VehicleControl.IncreaseMainLightBrightness,negativeCommand:exports.VehicleControl.DecreaseMainLightBrightness},G={positiveCommand:exports.VehicleControl.IncreaseAuxLightBrightness,negativeCommand:exports.VehicleControl.DecreaseAuxLightBrightness},O={positiveCommand:exports.VehicleControl.IncreaseSpeedGain,negativeCommand:exports.VehicleControl.DecreaseSpeedGain},m={positiveCommand:exports.VehicleControl.IncreaseSteerGain,negativeCommand:exports.VehicleControl.DecreaseSteerGain},N={positiveCommand:exports.VehicleControl.IncreaseSonarRange,negativeCommand:exports.VehicleControl.DecreaseSonarRange},v={positiveCommand:exports.VehicleControl.IncreaseSonarGain,negativeCommand:exports.VehicleControl.DecreaseSonarGain},P={positiveCommand:exports.VehicleControl.IncreaseLateralGain,negativeCommand:exports.VehicleControl.DecreaseLateralGain},y={positiveCommand:exports.VehicleControl.IncreaseRollPitchGain,negativeCommand:exports.VehicleControl.DecreaseRollPitchGain},f={positiveCommand:exports.VehicleControl.IncreaseVerticalGain,negativeCommand:exports.VehicleControl.DecreaseVerticalGain},M={[exports.VehicleControl.ReelMotors]:a,[exports.VehicleControl.CrawlerDrive]:p,[exports.VehicleControl.CrawlerSteer]:C,[exports.VehicleControl.ElevatingArm]:c,[exports.VehicleControl.Pan]:R,[exports.VehicleControl.Tilt]:E,[exports.VehicleControl.Focus]:T,[exports.VehicleControl.Exposure]:h,[exports.VehicleControl.Zoom]:x,[exports.VehicleControl.Thrusters]:I,[exports.VehicleControl.Yaw]:L,[exports.VehicleControl.Lateral]:A,[exports.VehicleControl.Vertical]:_,[exports.VehicleControl.Roll]:S,[exports.VehicleControl.Pitch]:V,[exports.VehicleControl.Grabber]:u,[exports.VehicleControl.RotateGrabber]:D,[exports.VehicleControl.TiltPlatform]:d,[exports.VehicleControl.MainLightBrightness]:g,[exports.VehicleControl.AuxLightBrightness]:G,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:m,[exports.VehicleControl.LateralGain]:P,[exports.VehicleControl.VerticalGain]:f,[exports.VehicleControl.RollPitchGain]:y,[exports.VehicleControl.SonarRange]:N,[exports.VehicleControl.SonarGain]:v},b={[exports.VehicleControl.MainLightBrightness]:g,[exports.VehicleControl.AuxLightBrightness]:G,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:m,[exports.VehicleControl.SonarRange]:N,[exports.VehicleControl.SonarGain]:v},B="+",H=" ",w={[exports.VehicleControl.MainLight]:"Main light on/off",[exports.VehicleControl.AuxLight]:"Aux light on/off",[exports.VehicleControl.ToggleLasers]:"Lasers on/off",[exports.VehicleControl.IncreaseMainLightBrightness]:"Increase main LED",[exports.VehicleControl.DecreaseMainLightBrightness]:"Decrease main LED",[exports.VehicleControl.IncreaseAuxLightBrightness]:"Increase aux LED",[exports.VehicleControl.DecreaseAuxLightBrightness]:"Decrease aux LED",[exports.VehicleControl.CruiseControl]:"CC/Retrieval",[exports.VehicleControl.ResetPosture]:"Reset Posture",[exports.VehicleControl.ReelReset]:"Reel reset [hold]",[exports.VehicleControl.SwitchCamera]:"Camera switch",[exports.VehicleControl.ThrusterForward]:"Thruster forward",[exports.VehicleControl.ThrusterReverse]:"Thruster reverse",[exports.VehicleControl.YawLeft]:"Yaw left",[exports.VehicleControl.YawRight]:"Yaw right",[exports.VehicleControl.LateralLeft]:"Lateral left",[exports.VehicleControl.LateralRight]:"Lateral right",[exports.VehicleControl.VerticalUp]:"Vertical up",[exports.VehicleControl.VerticalDown]:"Vertical down",[exports.VehicleControl.PitchUp]:"Pitch up",[exports.VehicleControl.PitchDown]:"Pitch down",[exports.VehicleControl.RollLeft]:"Roll left",[exports.VehicleControl.RollRight]:"Roll right",[exports.VehicleControl.DisableMotors]:"Disable motors",[exports.VehicleControl.IncreaseSpeedGain]:"Increase speed gain",[exports.VehicleControl.DecreaseSpeedGain]:"Decrease speed gain",[exports.VehicleControl.IncreaseSteerGain]:"Increase steer gain",[exports.VehicleControl.DecreaseSteerGain]:"Decrease steer gain",[exports.VehicleControl.IncreaseLateralGain]:"Increase lateral gain",[exports.VehicleControl.DecreaseLateralGain]:"Decrease lateral gain",[exports.VehicleControl.IncreaseVerticalGain]:"Increase vertical gain",[exports.VehicleControl.DecreaseVerticalGain]:"Decrease vertical gain",[exports.VehicleControl.IncreaseRollPitchGain]:"Increase pitch/roll gain",[exports.VehicleControl.DecreaseRollPitchGain]:"Decrease pitch/roll gain",[exports.VehicleControl.DepthLock]:"Depth lock",[exports.VehicleControl.AltitudeLock]:"Altitude lock",[exports.VehicleControl.HeadingLock]:"Heading lock",[exports.VehicleControl.PitchLock]:"Pitch lock",[exports.VehicleControl.AutoStabilization]:"Auto stabilization on/off",[exports.VehicleControl.StationHolding]:"Station holding on/off",[exports.VehicleControl.DistanceLock]:"Distance lock",[exports.VehicleControl.PrecisionThrusters]:"Precision thrusters on/off",[exports.VehicleControl.TiltUp]:"Camera tilt Up",[exports.VehicleControl.TiltDown]:"Camera tilt Down",[exports.VehicleControl.ZoomIn]:"Zoom in",[exports.VehicleControl.ZoomOut]:"Zoom out",[exports.VehicleControl.CameraHome]:"Camera home",[exports.VehicleControl.Record]:"Record",[exports.VehicleControl.Screenshot]:"Snapshot",[exports.VehicleControl.IncreaseSonarRange]:"Increase sonar range",[exports.VehicleControl.DecreaseSonarRange]:"Decrease sonar range",[exports.VehicleControl.IncreaseSonarGain]:"Increase sonar gain",[exports.VehicleControl.DecreaseSonarGain]:"Decrease sonar gain",[exports.VehicleControl.ChangeSonarFrequency]:"Change sonar frequency",[exports.VehicleControl.GrabberOpen]:"Grabber open",[exports.VehicleControl.GrabberClose]:"Grabber close",[exports.VehicleControl.GrabberRotateLeft]:"Grabber rotate left",[exports.VehicleControl.GrabberRotateRight]:"Grabber rotate right",[exports.VehicleControl.TiltPlatformUp]:"Tilt platform up",[exports.VehicleControl.TiltPlatformDown]:"Tilt platform down",[exports.VehicleControl.IncreaseFocus]:"Increase focus",[exports.VehicleControl.DecreaseFocus]:"Decrease focus",[exports.VehicleControl.IncreaseExposure]:"Increase exposure",[exports.VehicleControl.DecreaseExposure]:"Decrease exposure",[exports.VehicleControl.Fn]:"FN",[exports.VehicleControl.ReelTetherIn]:"Reel tether in"},U={[exports.RovControl.ThrusterForward]:exports.ControlType.Vehicle,[exports.RovControl.ThrusterReverse]:exports.ControlType.Vehicle,[exports.RovControl.YawLeft]:exports.ControlType.Vehicle,[exports.RovControl.YawRight]:exports.ControlType.Vehicle,[exports.RovControl.LateralLeft]:exports.ControlType.Vehicle,[exports.RovControl.LateralRight]:exports.ControlType.Vehicle,[exports.RovControl.VerticalUp]:exports.ControlType.Vehicle,[exports.RovControl.VerticalDown]:exports.ControlType.Vehicle,[exports.RovControl.DisableMotors]:exports.ControlType.Vehicle,[exports.RovControl.PitchUp]:exports.ControlType.Vehicle,[exports.RovControl.PitchDown]:exports.ControlType.Vehicle,[exports.RovControl.RollLeft]:exports.ControlType.Vehicle,[exports.RovControl.RollRight]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseLateralGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseLateralGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseVerticalGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseVerticalGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseRollPitchGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseRollPitchGain]:exports.ControlType.Vehicle,[exports.RovControl.CruiseControl]:exports.ControlType.Vehicle,[exports.RovControl.ResetPosture]:exports.ControlType.Vehicle,[exports.RovControl.DepthLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AltitudeLock]:exports.ControlType.IntelligentModes,[exports.RovControl.HeadingLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AutoStabilization]:exports.ControlType.IntelligentModes,[exports.RovControl.DistanceLock]:exports.ControlType.IntelligentModes,[exports.RovControl.MainLight]:exports.ControlType.Lights,[exports.RovControl.AuxLight]:exports.ControlType.Lights,[exports.RovControl.ToggleLasers]:exports.ControlType.Lights,[exports.RovControl.IncreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.IncreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.TiltUp]:exports.ControlType.Camera,[exports.RovControl.TiltDown]:exports.ControlType.Camera,[exports.RovControl.ZoomIn]:exports.ControlType.Camera,[exports.RovControl.ZoomOut]:exports.ControlType.Camera,[exports.RovControl.CameraHome]:exports.ControlType.Camera,[exports.RovControl.Screenshot]:exports.ControlType.Camera,[exports.RovControl.Record]:exports.ControlType.Camera,[exports.RovControl.IncreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.IncreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.ChangeSonarFrequency]:exports.ControlType.Sonar,[exports.RovControl.GrabberOpen]:exports.ControlType.Tools,[exports.RovControl.GrabberClose]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateLeft]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateRight]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformUp]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformDown]:exports.ControlType.Tools,[exports.RovControl.Fn]:exports.ControlType.Miscellaneous,[exports.RovControl.ReelTetherIn]:exports.ControlType.Miscellaneous},F={[exports.ControlType.Vehicle]:"Thruster controls",[exports.ControlType.Camera]:"Camera controls",[exports.ControlType.Tools]:"Grabber/tools",[exports.ControlType.Grabber]:"Grabber/tools",[exports.ControlType.IntelligentMode]:"Intelligent modes",[exports.ControlType.Reel]:"Miscellaneous",[exports.ControlType.IntelligentModes]:"Intelligent modes",[exports.ControlType.Lights]:"Lights/lasers",[exports.ControlType.Menu]:"Menu Navigation",[exports.ControlType.Miscellaneous]:"Miscellaneous",[exports.ControlType.Sonar]:"Sonar controls"};function k(e,o){var t;const r=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===r||"TEXTAREA"===r)return!1;let n=!0;return e.forEach((e=>{o[e]||(n=!1)})),n}function K(e,o,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[o])})),Math.round(100*r)}function W(e,o,t){let r=!1;return t.forEach((t=>{t&&t.id===e&&(r=t.buttons[o].pressed)})),r}function Y(e,o,t,r){var n;if(!e)return!1;const{input_type:l,input_key:s,controller_id:i}=e;if(!i&&l!==exports.InputType.KeyboardKey)return!1;switch(l){case exports.InputType.KeyboardKey:return k(s.split(B),t);case exports.InputType.JoystickAxis:const e=s.includes(H)?+s.substring(0,s.indexOf(H)):+s,l=K(i,e,o),a=(null===(n=r[i])||void 0===n?void 0:n[e])||20;return s.includes(B)?l>a:!!s.includes("-")&&l<-1*a;case exports.InputType.JoystickButton:return W(i,+s,o);default:return!1}}function Z(e,o,t,r){var n,l;if(!e)return 0;const{input_type:s,input_key:i,controller_id:a}=e;if(!a&&s!==exports.InputType.KeyboardKey)return 0;switch(s){case exports.InputType.KeyboardKey:return k(i.split("+"),t)?100:0;case exports.InputType.JoystickAxis:const e=i.indexOf(H)>-1?+i.substring(0,i.indexOf(H)):+i,s=K(a,e,o),p=null!==(l=null===(n=r[a])||void 0===n?void 0:n[e])&&void 0!==l?l:20;return i.includes(B)?s>=p?X(s,p):0:i.includes("-")?s<=-1*p?X(Math.abs(s),p):0:s;case exports.InputType.JoystickButton:return W(a,+i,o)?100:0;default:return 0}}const X=(e,o)=>Math.floor((e-o)/(100-o)*100);function J(e){const o={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;o[t]=(o[t]||0)+1;const r=o[t]>1?`${t} (${o[t]})`:t;return new Proxy(e,{get:(e,o)=>"id"===o?r:Reflect.get(e,o)})}))}function j(e){const o={up:!1,down:!1,left:!1,right:!1},t=(e,o)=>Math.abs(parseFloat(e.toFixed(2))-o)<.2;return t(e,-1)?o.up=!0:t(e,.14)?o.down=!0:t(e,.71)?o.left=!0:t(e,-.43)?o.right=!0:t(e,1)?(o.up=!0,o.left=!0):t(e,-.71)?(o.up=!0,o.right=!0):t(e,-.14)?(o.down=!0,o.right=!0):t(e,.43)&&(o.down=!0,o.left=!0),o}function q(e){const o=j(e.axes[9]);return Object.assign(Object.assign({},e),{id:exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:o.up,touched:o.up,value:o.up?1:0},{pressed:o.down,touched:o.down,value:o.down?1:0},{pressed:o.left,touched:o.left,value:o.left?1:0},{pressed:o.right,touched:o.right,value:o.right?1:0},e.buttons[15]]})}const z={};exports.COMBINED_COMMANDS=M,exports.COMMON_DEFAULT_CONTROLLER_NAMES=s,exports.CONSOLE_DIAL_COMMANDS=b,exports.DEFAULT_DEAD_ZONE=20,exports.INPUT_CATEGORIES_LABELS=F,exports.INPUT_MAP_SECTIONS=U,exports.NEGATIVE_COMMAND_INDICATOR="-",exports.POSITIVE_COMMAND_INDICATOR=B,exports.RATE_COMMANDS=i,exports.SPACE_BETWEEN_INDEX_AND_INDICATOR=H,exports.assignUniqueIds=J,exports.checkKeyPress=k,exports.convertSteelSeriesBTToBaseSteelSeries=q,exports.decodeBooleanMapping=Y,exports.decodeRateMapping=Z,exports.getAxisValue=K,exports.getButtonValue=W,exports.getVirtualDPadStatesSteelSeriesBT=j,exports.poll=(e,o={},t={})=>{const r=J(navigator.getGamepads().map((e=>e?e.id===exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID?q(e):e:null)));Object.entries(o).forEach((([o,n])=>{const l=o,s=M[l],i=b[l];let a=[];if(Object.keys(e).forEach((o=>{var p,C,c,R;const E=e[o];if(s){const{positiveCommand:e,negativeCommand:l}=s,T=(Z(null!==(p=E[e])&&void 0!==p?p:{},r,z,t)||0)-(Z(null!==(C=E[l])&&void 0!==C?C:{},r,z,t)||0),h=(null===(c=E[e])||void 0===c?void 0:c.input_type)===exports.InputType.JoystickAxis||(null===(R=E[l])||void 0===R?void 0:R.input_type)===exports.InputType.JoystickAxis;i&&o===exports.DefaultControllerId.CONSOLE_CONTROLLER&&h?null==n||n.forEach((e=>e(T,exports.DefaultControllerId.CONSOLE_CONTROLLER,exports.InputType.JoystickAxis))):(0!==T||h)&&a.push({value:T,inputType:h?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,s;e(Y(null!==(n=E[l])&&void 0!==n?n:{},r,z,t),o,null===(s=E[l])||void 0===s?void 0:s.input_type)}))})),s)if(a.length>0){const e=a.reduce(((e,o)=>e+o.value),0)/a.length,o=a[0].inputType;null==n||n.forEach((t=>t(e,void 0,o)))}else null==n||n.forEach((e=>e(0)))}))},exports.readableMappingROV=w,exports.updateKeysPressed=(e,o)=>z[e]=o;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types/inputMapping/index.ts","../src/types/index.ts","../src/constants/index.ts","../src/utils/gamepadHelper/index.ts","../src/lib/index.ts"],"sourcesContent":["/**\n * ROV Controls\n */\nexport enum RovControl {\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n VerticalUp = \"VERTICAL_UP\",\n VerticalDown = \"VERTICAL_DOWN\",\n DisableMotors = \"DISABLE_MOTORS\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n AltitudeLock = \"ALTITUDE_LOCK\",\n HeadingLock = \"HEADING_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n DistanceLock = \"DISTANCE_LOCK\",\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n ToggleLasers = \"TOGGLE_LASERS\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n CameraHome = \"CAMERA_HOME\",\n Screenshot = \"SCREENSHOT\",\n Record = \"RECORD\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n CruiseControl = \"CRUISE_CONTROL\",\n ResetPosture = \"RESET_POSTURE\",\n}\n\n/**\n * Crawler Controls\n */\nexport enum CrawlerControl {\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n ZoomIn = \"ZOOM_IN\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n ZoomOut = \"ZOOM_OUT\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n CruiseControl = \"CRUISE_CONTROL\",\n ReelReset = \"REEL_RESET\",\n SwitchCamera = \"SWITCH_CAMERA\",\n CameraHome = \"CAMERA_HOME\",\n Record = \"RECORD\",\n Screenshot = \"SCREENSHOT\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n ToggleLasers = \"TOGGLE_LASERS\",\n DisableMotors = \"DISABLE_MOTORS\",\n}\n\n/**\n * All Vehicle Controls\n */\nexport enum VehicleControl {\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n Thrusters = \"THRUSTER\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n Yaw = \"YAW\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n Lateral = \"LATERAL\",\n VerticalUp = \"VERTICAL_UP\",\n VerticalDown = \"VERTICAL_DOWN\",\n Vertical = \"VERTICAL\",\n DisableMotors = \"DISABLE_MOTORS\",\n DepthLock = \"DEPTH_LOCK\",\n AltitudeLock = \"ALTITUDE_LOCK\",\n HeadingLock = \"HEADING_LOCK\",\n PitchLock = \"PITCH_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n StationHolding = \"STATION_HOLDING\",\n DistanceLock = \"DISTANCE_LOCK\",\n PrecisionThrusters = \"PRECISION_THRUSTERS\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberClose = \"GRABBER_CLOSE\",\n Grabber = \"GRABBER\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n TiltPlatform = \"TILT_PLATFORM\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n RotateGrabber = \"ROTATE_GRABBER\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n SonarRange = \"SONAR_RANGE\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n SonarGain = \"SONAR_GAIN\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n Zoom = \"ZOOM\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n ElevatingArm = \"ELEVATING_ARM\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n CruiseControl = \"CRUISE_CONTROL\",\n ResetPosture = \"RESET_POSTURE\",\n ReelReset = \"REEL_RESET\",\n SwitchCamera = \"SWITCH_CAMERA\",\n CameraHome = \"CAMERA_HOME\",\n Record = \"RECORD\",\n Screenshot = \"SCREENSHOT\",\n CrawlerSteer = \"CRAWLER_STEER\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerDrive = \"CRAWLER_DRIVE\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n Pan = \"PAN\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Tilt = \"TILT\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n Focus = \"FOCUS\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n Exposure = \"EXPOSURE\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n ToggleLasers = \"TOGGLE_LASERS\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n SpeedGain = \"SPEED_GAIN\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n SteerGain = \"STEER_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n AuxLightBrightness = \"AUX_LIGHT_BRIGHTNESS\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n MainLightBrightness = \"MAIN_LIGHT_BRIGHTNESS\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n ReelDisengage = \"REEL_DISENGAGE\",\n ReelMotors = \"REEL_MOTORS\",\n}\n\n/**\n * Input Mapping Profile\n */\nexport interface InputMappingProfileStore {\n input_mapping_profile_id: number;\n controller_group_id: number;\n name: string;\n created_at: Date;\n modified_at: Date;\n default: number;\n selected: number;\n inverted: number;\n}\nexport interface ControllerGroupStore {\n controller_group_id: number;\n controller_id: string;\n controller_group: string;\n}\n\nexport interface VehicleControlsStore {\n vehicle_control_id: number;\n name: string;\n created_at: Date;\n}\nexport interface MappedInput {\n input_key: string;\n input_type: InputType;\n control_type: ControlType;\n controller_id: string;\n}\nexport enum ControlType {\n Vehicle = \"VEHICLE\",\n Camera = \"CAMERA\",\n /** @deprecated use `Miscellaneous` */\n Reel = \"REEL\",\n Lights = \"LIGHTS\",\n IntelligentModes = \"INTELLIGENT_MODES\",\n /** @deprecated use `IntelligentModes` */\n IntelligentMode = \"INTELLIGENT_MODE\",\n Tools = \"TOOLS\",\n /** @deprecated use `Tools` */\n Grabber = \"GRABBER\",\n Sonar = \"SONAR\",\n Menu = \"MENU\",\n Miscellaneous = \"MISCELLANEOUS\",\n}\nexport interface RawInput {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n control_type: ControlType;\n name: string;\n control_name: VehicleControl;\n created_at: string;\n}\nexport interface InputMapStore {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n name: string;\n control_name: string;\n created_at: string;\n}\nexport enum InputType {\n JoystickAxis = \"AXIS\",\n JoystickButton = \"BUTTON\",\n KeyboardKey = \"KEY\",\n}\n\nexport interface CombinedCommand {\n positiveCommand: VehicleControl;\n negativeCommand: VehicleControl;\n}\n","export enum DefaultControllerId {\n TABLET_CONTROLLER_ID = \"Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)\",\n STEELSERIES_CONTROLLER_ID = \"Xbox 360 Controller (XInput STANDARD GAMEPAD)\",\n STEELSERIES_CONTROLLER_BLUETOOTH_ID = \"SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)\",\n KEYBOARD_ID = \"KEYBOARD\",\n VKBSIM_GLADIATOR_L_ID = \" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)\",\n VKBSIM_GLADIATOR_R_ID = \" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)\",\n PLAYSTATION_CONTROLLER_ID = \"DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)\",\n XBOX_ONE_GAMEPAD_ID = \"HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)\",\n CONSOLE_CONTROLLER = \"Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)\",\n FLIGHT_JOYSTICK = \"Extreme 3D pro (Vendor: 046d Product: c215)\",\n}\n\nexport const COMMON_DEFAULT_CONTROLLER_NAMES: Record<\n DefaultControllerId,\n string\n> = {\n [DefaultControllerId.TABLET_CONTROLLER_ID]: \"Deep Trekker Tablet\",\n [DefaultControllerId.KEYBOARD_ID]: \"Keyboard\",\n [DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:\n \"VKBsim Gladiator EVO L (VKB Sim)\",\n [DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:\n \"VKBsim Gladiator EVO R (VKB Sim)\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_ID]: \"Gamepad\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:\n \"Gamepad (Bluetooth)\",\n [DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:\n \"DualSense Wireless Controller (Gamepad)\",\n [DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:\n \"Xbox One Wireless Controller (Gamepad)\",\n [DefaultControllerId.CONSOLE_CONTROLLER]: \"Deep Trekker Console\",\n [DefaultControllerId.FLIGHT_JOYSTICK]: \"Flight joystick\",\n};\n\nexport * from \"./inputMapping\";\nexport * from \"./deadZoning\";\n","import {\n CombinedCommand,\n ControlType,\n RovControl,\n VehicleControl,\n} from \"@types\";\n\nexport const RATE_COMMANDS: Partial<Record<VehicleControl, boolean>> = {\n [VehicleControl.CrawlerLeft]: true,\n [VehicleControl.CrawlerRight]: true,\n [VehicleControl.CrawlerForward]: true,\n [VehicleControl.CrawlerReverse]: true,\n [VehicleControl.TiltDown]: true,\n [VehicleControl.TiltUp]: true,\n [VehicleControl.PanLeft]: true,\n [VehicleControl.PanRight]: true,\n [VehicleControl.ReelDisengage]: true,\n [VehicleControl.ReelTetherIn]: true,\n};\n\nconst REEL_MOTORS: CombinedCommand = {\n positiveCommand: VehicleControl.ReelDisengage,\n negativeCommand: VehicleControl.ReelTetherIn,\n};\n\nconst CRAWLER_DRIVE: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerForward,\n negativeCommand: VehicleControl.CrawlerReverse,\n};\n\nconst CRAWLER_STEER: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerRight,\n negativeCommand: VehicleControl.CrawlerLeft,\n};\n\nconst ELEVATING_ARM: CombinedCommand = {\n positiveCommand: VehicleControl.ElevatingArmAscend,\n negativeCommand: VehicleControl.ElevatingArmDescend,\n};\nconst PAN: CombinedCommand = {\n positiveCommand: VehicleControl.PanRight,\n negativeCommand: VehicleControl.PanLeft,\n};\nconst TILT: CombinedCommand = {\n positiveCommand: VehicleControl.TiltUp,\n negativeCommand: VehicleControl.TiltDown,\n};\nconst FOCUS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseFocus,\n negativeCommand: VehicleControl.DecreaseFocus,\n};\nconst EXPOSURE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseExposure,\n negativeCommand: VehicleControl.DecreaseExposure,\n};\nconst ZOOM: CombinedCommand = {\n positiveCommand: VehicleControl.ZoomIn,\n negativeCommand: VehicleControl.ZoomOut,\n};\n\nconst THRUSTERS: CombinedCommand = {\n positiveCommand: VehicleControl.ThrusterForward,\n negativeCommand: VehicleControl.ThrusterReverse,\n};\n\nconst YAW: CombinedCommand = {\n positiveCommand: VehicleControl.YawRight,\n negativeCommand: VehicleControl.YawLeft,\n};\n\nconst LATERAL: CombinedCommand = {\n positiveCommand: VehicleControl.LateralRight,\n negativeCommand: VehicleControl.LateralLeft,\n};\n\nconst VERTICAL: CombinedCommand = {\n positiveCommand: VehicleControl.VerticalUp,\n negativeCommand: VehicleControl.VerticalDown,\n};\n\nconst GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberOpen,\n negativeCommand: VehicleControl.GrabberClose,\n};\n\nconst ROTATE_GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberRotateRight,\n negativeCommand: VehicleControl.GrabberRotateLeft,\n};\nconst TILT_PLATFORM: CombinedCommand = {\n positiveCommand: VehicleControl.TiltPlatformUp,\n negativeCommand: VehicleControl.TiltPlatformDown,\n};\nconst MAIN_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseMainLightBrightness,\n negativeCommand: VehicleControl.DecreaseMainLightBrightness,\n};\nconst AUX_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseAuxLightBrightness,\n negativeCommand: VehicleControl.DecreaseAuxLightBrightness,\n};\nconst SPEED_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSpeedGain,\n negativeCommand: VehicleControl.DecreaseSpeedGain,\n};\nconst STEER_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSteerGain,\n negativeCommand: VehicleControl.DecreaseSteerGain,\n};\nconst SONAR_RANGE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarRange,\n negativeCommand: VehicleControl.DecreaseSonarRange,\n};\nconst SONAR_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarGain,\n negativeCommand: VehicleControl.DecreaseSonarGain,\n};\nexport const COMBINED_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.ReelMotors]: REEL_MOTORS,\n [VehicleControl.CrawlerDrive]: CRAWLER_DRIVE,\n [VehicleControl.CrawlerSteer]: CRAWLER_STEER,\n [VehicleControl.ElevatingArm]: ELEVATING_ARM,\n [VehicleControl.Pan]: PAN,\n [VehicleControl.Tilt]: TILT,\n [VehicleControl.Focus]: FOCUS,\n [VehicleControl.Exposure]: EXPOSURE,\n [VehicleControl.Zoom]: ZOOM,\n [VehicleControl.Thrusters]: THRUSTERS,\n [VehicleControl.Yaw]: YAW,\n [VehicleControl.Lateral]: LATERAL,\n [VehicleControl.Vertical]: VERTICAL,\n [VehicleControl.Grabber]: GRABBER,\n [VehicleControl.RotateGrabber]: ROTATE_GRABBER,\n [VehicleControl.TiltPlatform]: TILT_PLATFORM,\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const CONSOLE_DIAL_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const DEFAULT_DEAD_ZONE = 20;\n\nexport const POSITIVE_COMMAND_INDICATOR = \"+\";\nexport const NEGATIVE_COMMAND_INDICATOR = \"-\";\nexport const SPACE_BETWEEN_INDEX_AND_INDICATOR = \" \";\n\nexport const readableMappingROV: Record<string, string> = {\n [VehicleControl.MainLight]: \"Main light on/off\",\n [VehicleControl.AuxLight]: \"Aux light on/off\",\n [VehicleControl.ToggleLasers]: \"Lasers on/off\",\n [VehicleControl.IncreaseMainLightBrightness]: \"Increase main LED\",\n [VehicleControl.DecreaseMainLightBrightness]: \"Decrease main LED\",\n [VehicleControl.IncreaseAuxLightBrightness]: \"Increase aux LED\",\n [VehicleControl.DecreaseAuxLightBrightness]: \"Decrease aux LED\",\n\n [VehicleControl.CruiseControl]: \"CC/Retrieval\",\n [VehicleControl.ResetPosture]: \"Reset Posture\",\n [VehicleControl.ReelReset]: \"Reel reset [hold]\",\n [VehicleControl.SwitchCamera]: \"Camera switch\",\n\n [VehicleControl.ThrusterForward]: \"Thruster forward\",\n [VehicleControl.ThrusterReverse]: \"Thruster reverse\",\n [VehicleControl.YawLeft]: \"Yaw left\",\n [VehicleControl.YawRight]: \"Yaw right\",\n [VehicleControl.LateralLeft]: \"Lateral left\",\n [VehicleControl.LateralRight]: \"Lateral right\",\n [VehicleControl.VerticalDown]: \"Vertical down\",\n [VehicleControl.VerticalUp]: \"Vertical up\",\n [VehicleControl.DisableMotors]: \"Disable motors\",\n [VehicleControl.IncreaseSpeedGain]: \"Increase speed gain\",\n [VehicleControl.DecreaseSpeedGain]: \"Decrease speed gain\",\n [VehicleControl.IncreaseSteerGain]: \"Increase steer gain\",\n [VehicleControl.DecreaseSteerGain]: \"Decrease steer gain\",\n\n [VehicleControl.DepthLock]: \"Depth lock\",\n [VehicleControl.AltitudeLock]: \"Altitude lock\",\n [VehicleControl.HeadingLock]: \"Heading lock\",\n [VehicleControl.PitchLock]: \"Pitch lock\",\n [VehicleControl.AutoStabilization]: \"Auto stabilization on/off\",\n [VehicleControl.StationHolding]: \"Station holding on/off\",\n [VehicleControl.DistanceLock]: \"Distance lock\",\n [VehicleControl.PrecisionThrusters]: \"Precision thrusters on/off\",\n\n [VehicleControl.TiltUp]: \"Camera tilt Up\",\n [VehicleControl.TiltDown]: \"Camera tilt Down\",\n [VehicleControl.ZoomIn]: \"Zoom in\",\n [VehicleControl.ZoomOut]: \"Zoom out\",\n [VehicleControl.CameraHome]: \"Camera home\",\n [VehicleControl.Record]: \"Record\",\n [VehicleControl.Screenshot]: \"Snapshot\",\n\n [VehicleControl.IncreaseSonarRange]: \"Increase sonar range\",\n [VehicleControl.DecreaseSonarRange]: \"Decrease sonar range\",\n [VehicleControl.IncreaseSonarGain]: \"Increase sonar gain\",\n [VehicleControl.DecreaseSonarGain]: \"Decrease sonar gain\",\n [VehicleControl.ChangeSonarFrequency]: \"Change sonar frequency\",\n\n [VehicleControl.GrabberOpen]: \"Grabber open\",\n [VehicleControl.GrabberClose]: \"Grabber close\",\n [VehicleControl.GrabberRotateLeft]: \"Grabber rotate left\",\n [VehicleControl.GrabberRotateRight]: \"Grabber rotate right\",\n [VehicleControl.TiltPlatformUp]: \"Tilt platform up\",\n [VehicleControl.TiltPlatformDown]: \"Tilt platform down\",\n\n [VehicleControl.IncreaseFocus]: \"Increase focus\",\n [VehicleControl.DecreaseFocus]: \"Decrease focus\",\n [VehicleControl.IncreaseExposure]: \"Increase exposure\",\n [VehicleControl.DecreaseExposure]: \"Decrease exposure\",\n\n [VehicleControl.ReelTetherIn]: \"Reel tether in\",\n};\n\nexport const INPUT_MAP_SECTIONS: Record<RovControl, ControlType> = {\n [RovControl.ThrusterForward]: ControlType.Vehicle,\n [RovControl.ThrusterReverse]: ControlType.Vehicle,\n [RovControl.YawLeft]: ControlType.Vehicle,\n [RovControl.YawRight]: ControlType.Vehicle,\n [RovControl.LateralLeft]: ControlType.Vehicle,\n [RovControl.LateralRight]: ControlType.Vehicle,\n [RovControl.VerticalUp]: ControlType.Vehicle,\n [RovControl.VerticalDown]: ControlType.Vehicle,\n [RovControl.DisableMotors]: ControlType.Vehicle,\n [RovControl.IncreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.DecreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.IncreaseSteerGain]: ControlType.Vehicle,\n [RovControl.DecreaseSteerGain]: ControlType.Vehicle,\n [RovControl.CruiseControl]: ControlType.Vehicle,\n [RovControl.ResetPosture]: ControlType.Vehicle,\n\n [RovControl.DepthLock]: ControlType.IntelligentModes,\n [RovControl.AltitudeLock]: ControlType.IntelligentModes,\n [RovControl.HeadingLock]: ControlType.IntelligentModes,\n [RovControl.AutoStabilization]: ControlType.IntelligentModes,\n [RovControl.DistanceLock]: ControlType.IntelligentModes,\n\n [RovControl.MainLight]: ControlType.Lights,\n [RovControl.AuxLight]: ControlType.Lights,\n [RovControl.ToggleLasers]: ControlType.Lights,\n [RovControl.IncreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.IncreaseAuxLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseAuxLightBrightness]: ControlType.Lights,\n\n [RovControl.TiltUp]: ControlType.Camera,\n [RovControl.TiltDown]: ControlType.Camera,\n [RovControl.ZoomIn]: ControlType.Camera,\n [RovControl.ZoomOut]: ControlType.Camera,\n [RovControl.CameraHome]: ControlType.Camera,\n [RovControl.Screenshot]: ControlType.Camera,\n [RovControl.Record]: ControlType.Camera,\n\n [RovControl.IncreaseSonarRange]: ControlType.Sonar,\n [RovControl.DecreaseSonarRange]: ControlType.Sonar,\n [RovControl.IncreaseSonarGain]: ControlType.Sonar,\n [RovControl.DecreaseSonarGain]: ControlType.Sonar,\n [RovControl.ChangeSonarFrequency]: ControlType.Sonar,\n\n [RovControl.GrabberOpen]: ControlType.Tools,\n [RovControl.GrabberClose]: ControlType.Tools,\n [RovControl.GrabberRotateLeft]: ControlType.Tools,\n [RovControl.GrabberRotateRight]: ControlType.Tools,\n [RovControl.TiltPlatformUp]: ControlType.Tools,\n [RovControl.TiltPlatformDown]: ControlType.Tools,\n\n [RovControl.ReelTetherIn]: ControlType.Miscellaneous,\n};\n\nexport const INPUT_CATEGORIES_LABELS: Record<ControlType, string> = {\n [ControlType.Vehicle]: \"Thruster controls\",\n [ControlType.Camera]: \"Camera controls\",\n [ControlType.Tools]: \"Grabber/tools\",\n [ControlType.Grabber]: \"Grabber/tools\",\n [ControlType.IntelligentMode]: \"Intelligent modes\",\n [ControlType.Reel]: \"Miscellaneous\",\n [ControlType.IntelligentModes]: \"Intelligent modes\",\n [ControlType.Lights]: \"Lights/lasers\",\n [ControlType.Menu]: \"Menu Navigation\",\n [ControlType.Miscellaneous]: \"Miscellaneous\",\n [ControlType.Sonar]: \"Sonar controls\",\n};\n","import {\n DEFAULT_DEAD_ZONE,\n NEGATIVE_COMMAND_INDICATOR,\n POSITIVE_COMMAND_INDICATOR,\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n} from \"@constants\";\nimport {\n InputType,\n MappedInput,\n DeadZoneProfiles,\n DefaultControllerId,\n} from \"@types\";\n\nexport function checkKeyPress(\n keys: string[],\n keysPressed: Record<string, boolean>,\n) {\n const activeElem = document.activeElement?.tagName || \"\";\n if (activeElem === \"INPUT\" || activeElem === \"TEXTAREA\") {\n return false;\n }\n let keysFound = true;\n keys.forEach((key) => {\n if (!keysPressed[key]) {\n keysFound = false;\n }\n });\n return keysFound;\n}\nexport function getAxisValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let axisValue = 0;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n axisValue = gamepad.axes[index];\n }\n });\n return Math.round(axisValue * 100);\n}\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let buttonPressed = false;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n buttonPressed = gamepad.buttons[index].pressed;\n }\n });\n return buttonPressed;\n}\nexport function decodeBooleanMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return false;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return false;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n return checkKeyPress(\n input_key.split(POSITIVE_COMMAND_INDICATOR),\n keysPressed,\n );\n case InputType.JoystickAxis:\n const mappingIndex = input_key.includes(\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n )\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] || DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n return axisValue > deadZoneValue;\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n return axisValue < -1 * deadZoneValue;\n } else {\n return false;\n }\n case InputType.JoystickButton:\n return getButtonValue(controller_id, +input_key, gamepads);\n default:\n return false;\n }\n}\nexport function decodeRateMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return 0;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return 0;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n if (checkKeyPress(input_key.split(\"+\"), keysPressed)) {\n return 100;\n } else {\n return 0;\n }\n case InputType.JoystickAxis:\n const mappingIndex =\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR) > -1\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] ?? DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n if (axisValue >= deadZoneValue) {\n return scaleRateAroundDeadZone(axisValue, deadZoneValue);\n } else {\n return 0;\n }\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n if (axisValue <= -1 * deadZoneValue) {\n return scaleRateAroundDeadZone(\n Math.abs(axisValue),\n deadZoneValue,\n );\n } else {\n return 0;\n }\n } else {\n return axisValue;\n }\n case InputType.JoystickButton:\n const buttonPressed = getButtonValue(\n controller_id,\n +input_key,\n gamepads,\n );\n if (buttonPressed) {\n return 100;\n } else {\n return 0;\n }\n default:\n return 0;\n }\n}\n\nconst scaleRateAroundDeadZone = (rate: number, deadZone: number) =>\n Math.floor(((rate - deadZone) / (100 - deadZone)) * 100);\n\n// Assigns unique Ids to controller ids. Adds a (2), (3), etc... depending on the amount of occurrences of the same Id.\nexport function assignUniqueIds(gamepads: (Gamepad | null)[]) {\n const idCounts: Record<string, number> = {};\n return Array.from(gamepads)\n .filter(\n (gamepad): gamepad is Gamepad =>\n gamepad !== null && gamepad.id !== undefined,\n )\n .map((gamepad) => {\n const baseId = gamepad.id;\n idCounts[baseId] = (idCounts[baseId] || 0) + 1;\n const uniqueId =\n idCounts[baseId] > 1\n ? `${baseId} (${idCounts[baseId]})`\n : baseId;\n return new Proxy(gamepad, {\n get(target, prop) {\n // Override `id` property\n if (prop === \"id\") {\n return uniqueId;\n }\n return Reflect.get(target, prop);\n },\n });\n });\n}\n\n/**\n * Interprets the single D-pad axis value (axis 9) from the SteelSeries Bluetooth controller\n * and converts it into a virtual set of D-pad button states (up, down, left, right).\n *\n * Unlike standard controllers that report D-pad directions as individual buttons,\n * the Bluetooth version of the SteelSeries controller encodes D-pad input into a\n * single axis value. This axis represents 8 possible directional combinations:\n * - Cardinal: up (-1), down (~0.14), left (~0.71), right (~-0.43)\n * - Diagonals: up+left (1), up+right (~-0.71), down+right (~-0.14), down+left (~0.43)\n *\n * This function uses approximate matching to account for slight variations in\n * axis values due to analog behavior, and returns an object mapping each D-pad\n * direction to a boolean indicating whether it is active.\n *\n * This enables consistent D-pad handling across SteelSeries controllers, regardless\n * of whether they report the D-pad as buttons (dongle) or a single axis (Bluetooth).\n */\nexport function getVirtualDPadStatesSteelSeriesBT(axisValue: number) {\n const matches = {\n up: false,\n down: false,\n left: false,\n right: false,\n };\n\n const approx = (a: number, b: number) =>\n Math.abs(parseFloat(a.toFixed(2)) - b) < 0.2;\n\n if (approx(axisValue, -1)) {\n matches.up = true;\n } else if (approx(axisValue, 0.14)) {\n matches.down = true;\n } else if (approx(axisValue, 0.71)) {\n matches.left = true;\n } else if (approx(axisValue, -0.43)) {\n matches.right = true;\n } else if (approx(axisValue, 1)) {\n matches.up = true;\n matches.left = true;\n } else if (approx(axisValue, -0.71)) {\n matches.up = true;\n matches.right = true;\n } else if (approx(axisValue, -0.14)) {\n matches.down = true;\n matches.right = true;\n } else if (approx(axisValue, 0.43)) {\n matches.down = true;\n matches.left = true;\n }\n\n return matches;\n}\n\n/**\n * Converts the SteelSeries Bluetooth controller format to a normalized layout\n * matching the dongle version of the same controller.\n *\n * The Bluetooth version of the SteelSeries controller differs from the dongle version\n * in two key ways:\n * 1. The D-pad is reported as a single axis (axis 9) instead of separate buttons (12–15).\n * We use `getVirtualDPadStatesSteelSeriesBT()` to interpret axis 9 and inject\n * virtual D-pad buttons at the correct positions (indices 12–15).\n * 2. The axes and button layout are slightly different from the dongle version, so we\n * remap and reorder them to ensure consistency across both input types.\n *\n * This allows the rest of the application to treat both Bluetooth and dongle-based\n * SteelSeries controllers the same way, avoiding special-case handling elsewhere in the code.\n */\nexport function convertSteelSeriesBTToBaseSteelSeries(gamepad: Gamepad) {\n const virtualDPadStates = getVirtualDPadStatesSteelSeriesBT(\n gamepad.axes[9],\n );\n return {\n ...gamepad,\n id: DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,\n axes: [\n gamepad.axes[0],\n gamepad.axes[1],\n gamepad.axes[2],\n gamepad.axes[5],\n ],\n buttons: [\n gamepad.buttons[0],\n gamepad.buttons[1],\n gamepad.buttons[3],\n gamepad.buttons[4],\n gamepad.buttons[6],\n gamepad.buttons[7],\n gamepad.buttons[8],\n gamepad.buttons[9],\n gamepad.buttons[10],\n gamepad.buttons[11],\n gamepad.buttons[13],\n gamepad.buttons[14],\n // Inject D-pad buttons at the right indices (12–15)\n {\n pressed: virtualDPadStates.up,\n touched: virtualDPadStates.up,\n value: virtualDPadStates.up ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.down,\n touched: virtualDPadStates.down,\n value: virtualDPadStates.down ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.left,\n touched: virtualDPadStates.left,\n value: virtualDPadStates.left ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.right,\n touched: virtualDPadStates.right,\n value: virtualDPadStates.right ? 1 : 0,\n },\n gamepad.buttons[15],\n ],\n } as Gamepad;\n}\n","import { COMBINED_COMMANDS, CONSOLE_DIAL_COMMANDS } from \"@constants\";\nimport {\n VehicleControl,\n MappedInput,\n DeadZoneProfiles,\n InputType,\n DefaultControllerId,\n} from \"@types\";\nimport {\n decodeRateMapping,\n decodeBooleanMapping,\n assignUniqueIds,\n convertSteelSeriesBTToBaseSteelSeries,\n} from \"@utils\";\n\n/**\n * Used to determine which keys are currently being pressed\n */\nconst keysPressed: Record<string, boolean> = {};\n\nexport const updateKeysPressed = (key: string, pressed: boolean) =>\n (keysPressed[key] = pressed);\n\nexport const poll = (\n activeMapping: Record<string, Record<string, MappedInput>>,\n subscribers: Partial<\n Record<\n VehicleControl,\n Array<\n (\n value: number | boolean,\n controller?: string,\n inputType?: InputType,\n ) => void\n >\n >\n > = {},\n deadZones: DeadZoneProfiles = {},\n) => {\n const gamepads = navigator.getGamepads().map((gamepad) => {\n if (!gamepad) {\n return null;\n } else if (\n gamepad.id ===\n DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID\n ) {\n return convertSteelSeriesBTToBaseSteelSeries(gamepad);\n } else {\n return gamepad;\n }\n });\n const uniqueGamepads = assignUniqueIds(gamepads);\n Object.entries(subscribers).forEach(([control, callbacks]) => {\n const vehicleControl = control as VehicleControl;\n const combinedCommand = COMBINED_COMMANDS[vehicleControl];\n const consoleDialCommand = CONSOLE_DIAL_COMMANDS[vehicleControl];\n let values: { value: number; inputType?: InputType }[] = [];\n Object.keys(activeMapping).forEach((controller) => {\n const mapping = activeMapping[controller];\n if (combinedCommand) {\n const { positiveCommand, negativeCommand } = combinedCommand;\n const positiveValue =\n decodeRateMapping(\n mapping[positiveCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const negativeValue =\n decodeRateMapping(\n mapping[negativeCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const value = positiveValue - negativeValue;\n const containsAxis =\n mapping[positiveCommand]?.input_type ===\n InputType.JoystickAxis ||\n mapping[negativeCommand]?.input_type ===\n InputType.JoystickAxis;\n\n // Here we are checking if the command one of the consoles dials, that are set to the sonar gains, light brightness, speeds.\n // If it is we want to return early and fire the command so it doesn't get rounded with the others. This way it can be handled on the web app\n // to ignore the message if need be.\n if (\n consoleDialCommand &&\n controller === DefaultControllerId.CONSOLE_CONTROLLER &&\n containsAxis\n ) {\n callbacks?.forEach((callback) =>\n callback(\n value,\n DefaultControllerId.CONSOLE_CONTROLLER,\n InputType.JoystickAxis,\n ),\n );\n } else if (value !== 0 || containsAxis) {\n values.push({\n value,\n inputType: containsAxis\n ? InputType.JoystickAxis\n : undefined,\n });\n }\n } else {\n callbacks?.forEach((callback) => {\n callback(\n decodeBooleanMapping(\n mapping[vehicleControl] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ),\n controller,\n mapping[vehicleControl]?.input_type,\n );\n });\n }\n });\n if (combinedCommand) {\n if (values.length > 0) {\n const averageValue =\n values.reduce((acc, val) => acc + val.value, 0) /\n values.length;\n const inputType = values[0].inputType; // assuming all values have the same input type\n callbacks?.forEach((callback) =>\n callback(averageValue, undefined, inputType),\n );\n } else {\n callbacks?.forEach((callback) => callback(0));\n }\n }\n });\n};\n"],"names":["RovControl","CrawlerControl","VehicleControl","ControlType","InputType","DefaultControllerId","COMMON_DEFAULT_CONTROLLER_NAMES","TABLET_CONTROLLER_ID","KEYBOARD_ID","VKBSIM_GLADIATOR_L_ID","VKBSIM_GLADIATOR_R_ID","STEELSERIES_CONTROLLER_ID","STEELSERIES_CONTROLLER_BLUETOOTH_ID","PLAYSTATION_CONTROLLER_ID","XBOX_ONE_GAMEPAD_ID","CONSOLE_CONTROLLER","FLIGHT_JOYSTICK","RATE_COMMANDS","CrawlerLeft","CrawlerRight","CrawlerForward","CrawlerReverse","TiltDown","TiltUp","PanLeft","PanRight","ReelDisengage","ReelTetherIn","REEL_MOTORS","positiveCommand","negativeCommand","CRAWLER_DRIVE","CRAWLER_STEER","ELEVATING_ARM","ElevatingArmAscend","ElevatingArmDescend","PAN","TILT","FOCUS","IncreaseFocus","DecreaseFocus","EXPOSURE","IncreaseExposure","DecreaseExposure","ZOOM","ZoomIn","ZoomOut","THRUSTERS","ThrusterForward","ThrusterReverse","YAW","YawRight","YawLeft","LATERAL","LateralRight","LateralLeft","VERTICAL","VerticalUp","VerticalDown","GRABBER","GrabberOpen","GrabberClose","ROTATE_GRABBER","GrabberRotateRight","GrabberRotateLeft","TILT_PLATFORM","TiltPlatformUp","TiltPlatformDown","MAIN_LIGHT_BRIGHTNESS","IncreaseMainLightBrightness","DecreaseMainLightBrightness","AUX_LIGHT_BRIGHTNESS","IncreaseAuxLightBrightness","DecreaseAuxLightBrightness","SPEED_GAIN","IncreaseSpeedGain","DecreaseSpeedGain","STEER_GAIN","IncreaseSteerGain","DecreaseSteerGain","SONAR_RANGE","IncreaseSonarRange","DecreaseSonarRange","SONAR_GAIN","IncreaseSonarGain","DecreaseSonarGain","COMBINED_COMMANDS","ReelMotors","CrawlerDrive","CrawlerSteer","ElevatingArm","Pan","Tilt","Focus","Exposure","Zoom","Thrusters","Yaw","Lateral","Vertical","Grabber","RotateGrabber","TiltPlatform","MainLightBrightness","AuxLightBrightness","SpeedGain","SteerGain","SonarRange","SonarGain","CONSOLE_DIAL_COMMANDS","POSITIVE_COMMAND_INDICATOR","SPACE_BETWEEN_INDEX_AND_INDICATOR","readableMappingROV","MainLight","AuxLight","ToggleLasers","CruiseControl","ResetPosture","ReelReset","SwitchCamera","DisableMotors","DepthLock","AltitudeLock","HeadingLock","PitchLock","AutoStabilization","StationHolding","DistanceLock","PrecisionThrusters","CameraHome","Record","Screenshot","ChangeSonarFrequency","INPUT_MAP_SECTIONS","Vehicle","IntelligentModes","Lights","Camera","Sonar","Tools","Miscellaneous","INPUT_CATEGORIES_LABELS","IntelligentMode","Reel","Menu","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getButtonValue","buttonPressed","buttons","pressed","decodeBooleanMapping","mapping","deadZones","input_type","input_key","controller_id","KeyboardKey","split","JoystickAxis","mappingIndex","includes","substring","indexOf","deadZoneValue","JoystickButton","decodeRateMapping","_b","scaleRateAroundDeadZone","abs","rate","deadZone","floor","assignUniqueIds","idCounts","Array","from","filter","undefined","map","baseId","uniqueId","Proxy","get","target","prop","Reflect","getVirtualDPadStatesSteelSeriesBT","matches","up","down","left","right","approx","a","b","parseFloat","toFixed","convertSteelSeriesBTToBaseSteelSeries","virtualDPadStates","Object","assign","touched","value","activeMapping","subscribers","uniqueGamepads","navigator","getGamepads","entries","control","callbacks","vehicleControl","combinedCommand","consoleDialCommand","values","controller","containsAxis","_c","callback","push","inputType","length","averageValue","reduce","acc","val"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types/inputMapping/index.ts","../src/types/index.ts","../src/constants/index.ts","../src/utils/gamepadHelper/index.ts","../src/lib/index.ts"],"sourcesContent":["/**\n * ROV Controls\n */\nexport enum RovControl {\n AltitudeLock = \"ALTITUDE_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n AuxLight = \"AUX_LIGHT\",\n CameraHome = \"CAMERA_HOME\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseLateralGain = \"DECREASE_LATERAL_GAIN\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseRollPitchGain = \"DECREASE_ROLL_PITCH_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DecreaseVerticalGain = \"DECREASE_VERTICAL_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n DisableMotors = \"DISABLE_MOTORS\",\n DistanceLock = \"DISTANCE_LOCK\",\n Fn = \"FN\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n HeadingLock = \"HEADING_LOCK\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n IncreaseLateralGain = \"INCREASE_LATERAL_GAIN\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseRollPitchGain = \"INCREASE_ROLL_PITCH_GAIN\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n IncreaseVerticalGain = \"INCREASE_VERTICAL_GAIN\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n MainLight = \"MAIN_LIGHT\",\n PitchUp = \"PITCH_UP\",\n PitchDown = \"PITCH_DOWN\",\n Record = \"RECORD\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n RollLeft = \"ROLL_LEFT\",\n RollRight = \"ROLL_RIGHT\",\n Screenshot = \"SCREENSHOT\",\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n TiltDown = \"TILT_DOWN\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n VerticalDown = \"VERTICAL_DOWN\",\n VerticalUp = \"VERTICAL_UP\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n CruiseControl = \"CRUISE_CONTROL\",\n ResetPosture = \"RESET_POSTURE\",\n}\n\n/**\n * Crawler Controls\n */\nexport enum CrawlerControl {\n AuxLight = \"AUX_LIGHT\",\n CameraHome = \"CAMERA_HOME\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CruiseControl = \"CRUISE_CONTROL\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n DisableMotors = \"DISABLE_MOTORS\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n MainLight = \"MAIN_LIGHT\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Record = \"RECORD\",\n ReelReset = \"REEL_RESET\",\n Screenshot = \"SCREENSHOT\",\n SwitchCamera = \"SWITCH_CAMERA\",\n TiltDown = \"TILT_DOWN\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n}\n\n/**\n * All Vehicle Controls\n */\nexport enum VehicleControl {\n AltitudeLock = \"ALTITUDE_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n AuxLight = \"AUX_LIGHT\",\n AuxLightBrightness = \"AUX_LIGHT_BRIGHTNESS\",\n CameraHome = \"CAMERA_HOME\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n CrawlerDrive = \"CRAWLER_DRIVE\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerSteer = \"CRAWLER_STEER\",\n CruiseControl = \"CRUISE_CONTROL\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n DecreaseLateralGain = \"DECREASE_LATERAL_GAIN\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseRollPitchGain = \"DECREASE_ROLL_PITCH_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DecreaseVerticalGain = \"DECREASE_VERTICAL_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n DisableMotors = \"DISABLE_MOTORS\",\n DistanceLock = \"DISTANCE_LOCK\",\n ElevatingArm = \"ELEVATING_ARM\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n Exposure = \"EXPOSURE\",\n Focus = \"FOCUS\",\n Fn = \"FN\",\n Grabber = \"GRABBER\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n HeadingLock = \"HEADING_LOCK\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n IncreaseLateralGain = \"INCREASE_LATERAL_GAIN\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseRollPitchGain = \"INCREASE_ROLL_PITCH_GAIN\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n IncreaseVerticalGain = \"INCREASE_VERTICAL_GAIN\",\n Lateral = \"LATERAL\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralGain = \"LATERAL_GAIN\",\n LateralRight = \"LATERAL_RIGHT\",\n MainLight = \"MAIN_LIGHT\",\n MainLightBrightness = \"MAIN_LIGHT_BRIGHTNESS\",\n Pan = \"PAN\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Pitch = \"PITCH\",\n PitchUp = \"PITCH_UP\",\n PitchDown = \"PITCH_DOWN\",\n PitchLock = \"PITCH_LOCK\",\n PrecisionThrusters = \"PRECISION_THRUSTERS\",\n Record = \"RECORD\",\n ReelDisengage = \"REEL_DISENGAGE\",\n ReelMotors = \"REEL_MOTORS\",\n ReelReset = \"REEL_RESET\",\n ResetPosture = \"RESET_POSTURE\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n Roll = \"ROLL\",\n RollLeft = \"ROLL_LEFT\",\n RollPitchGain = \"ROLL_PITCH_GAIN\",\n RollRight = \"ROLL_RIGHT\",\n RotateGrabber = \"ROTATE_GRABBER\",\n Screenshot = \"SCREENSHOT\",\n SonarGain = \"SONAR_GAIN\",\n SonarRange = \"SONAR_RANGE\",\n SpeedGain = \"SPEED_GAIN\",\n StationHolding = \"STATION_HOLDING\",\n SteerGain = \"STEER_GAIN\",\n SwitchCamera = \"SWITCH_CAMERA\",\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n Thrusters = \"THRUSTER\",\n Tilt = \"TILT\",\n TiltDown = \"TILT_DOWN\",\n TiltPlatform = \"TILT_PLATFORM\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n Vertical = \"VERTICAL\",\n VerticalDown = \"VERTICAL_DOWN\",\n VerticalGain = \"VERTICAL_GAIN\",\n VerticalUp = \"VERTICAL_UP\",\n Yaw = \"YAW\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n Zoom = \"ZOOM\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n}\n\n/**\n * Input Mapping Profile\n */\nexport interface InputMappingProfileStore {\n input_mapping_profile_id: number;\n controller_group_id: number;\n name: string;\n created_at: Date;\n modified_at: Date;\n default: number;\n selected: number;\n inverted: number;\n fn_profile_id?: number;\n fnProfile?: boolean;\n}\nexport interface ControllerGroupStore {\n controller_group_id: number;\n controller_id: string;\n controller_group: string;\n}\n\nexport interface VehicleControlsStore {\n vehicle_control_id: number;\n name: string;\n created_at: Date;\n}\nexport interface MappedInput {\n input_key: string;\n input_type: InputType;\n control_type: ControlType;\n controller_id: string;\n fnProfile?: boolean;\n}\nexport enum ControlType {\n Vehicle = \"VEHICLE\",\n Camera = \"CAMERA\",\n /** @deprecated use `Miscellaneous` */\n Reel = \"REEL\",\n Lights = \"LIGHTS\",\n IntelligentModes = \"INTELLIGENT_MODES\",\n /** @deprecated use `IntelligentModes` */\n IntelligentMode = \"INTELLIGENT_MODE\",\n Tools = \"TOOLS\",\n /** @deprecated use `Tools` */\n Grabber = \"GRABBER\",\n Sonar = \"SONAR\",\n Menu = \"MENU\",\n Miscellaneous = \"MISCELLANEOUS\",\n}\nexport interface RawInput {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n control_type: ControlType;\n name: string;\n control_name: VehicleControl;\n created_at: string;\n fn_profile_id?: number;\n fnProfile?: boolean;\n}\nexport interface InputMapStore {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n name: string;\n control_name: string;\n created_at: string;\n}\nexport enum InputType {\n JoystickAxis = \"AXIS\",\n JoystickButton = \"BUTTON\",\n KeyboardKey = \"KEY\",\n}\n\nexport interface CombinedCommand {\n positiveCommand: VehicleControl;\n negativeCommand: VehicleControl;\n}\n","export enum DefaultControllerId {\n TABLET_CONTROLLER_ID = \"Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)\",\n STEELSERIES_CONTROLLER_ID = \"Xbox 360 Controller (XInput STANDARD GAMEPAD)\",\n STEELSERIES_CONTROLLER_BLUETOOTH_ID = \"SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)\",\n KEYBOARD_ID = \"KEYBOARD\",\n VKBSIM_GLADIATOR_L_ID = \" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)\",\n VKBSIM_GLADIATOR_R_ID = \" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)\",\n PLAYSTATION_CONTROLLER_ID = \"DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)\",\n XBOX_ONE_GAMEPAD_ID = \"HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)\",\n CONSOLE_CONTROLLER = \"Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)\",\n FLIGHT_JOYSTICK = \"Extreme 3D pro (Vendor: 046d Product: c215)\",\n}\n\nexport const COMMON_DEFAULT_CONTROLLER_NAMES: Record<\n DefaultControllerId,\n string\n> = {\n [DefaultControllerId.TABLET_CONTROLLER_ID]: \"Deep Trekker Tablet\",\n [DefaultControllerId.KEYBOARD_ID]: \"Keyboard\",\n [DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:\n \"VKBsim Gladiator EVO L (VKB Sim)\",\n [DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:\n \"VKBsim Gladiator EVO R (VKB Sim)\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_ID]: \"Gamepad\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:\n \"Gamepad (Bluetooth)\",\n [DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:\n \"DualSense Wireless Controller (Gamepad)\",\n [DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:\n \"Xbox One Wireless Controller (Gamepad)\",\n [DefaultControllerId.CONSOLE_CONTROLLER]: \"Deep Trekker Console\",\n [DefaultControllerId.FLIGHT_JOYSTICK]: \"Flight joystick\",\n};\n\nexport * from \"./inputMapping\";\nexport * from \"./deadZoning\";\n","import {\n CombinedCommand,\n ControlType,\n RovControl,\n VehicleControl,\n} from \"@types\";\n\nexport const RATE_COMMANDS: Partial<Record<VehicleControl, boolean>> = {\n [VehicleControl.CrawlerLeft]: true,\n [VehicleControl.CrawlerRight]: true,\n [VehicleControl.CrawlerForward]: true,\n [VehicleControl.CrawlerReverse]: true,\n [VehicleControl.TiltDown]: true,\n [VehicleControl.TiltUp]: true,\n [VehicleControl.PanLeft]: true,\n [VehicleControl.PanRight]: true,\n [VehicleControl.ReelDisengage]: true,\n [VehicleControl.ReelTetherIn]: true,\n};\n\nconst REEL_MOTORS: CombinedCommand = {\n positiveCommand: VehicleControl.ReelDisengage,\n negativeCommand: VehicleControl.ReelTetherIn,\n};\n\nconst CRAWLER_DRIVE: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerForward,\n negativeCommand: VehicleControl.CrawlerReverse,\n};\n\nconst CRAWLER_STEER: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerRight,\n negativeCommand: VehicleControl.CrawlerLeft,\n};\n\nconst ELEVATING_ARM: CombinedCommand = {\n positiveCommand: VehicleControl.ElevatingArmAscend,\n negativeCommand: VehicleControl.ElevatingArmDescend,\n};\nconst PAN: CombinedCommand = {\n positiveCommand: VehicleControl.PanRight,\n negativeCommand: VehicleControl.PanLeft,\n};\nconst TILT: CombinedCommand = {\n positiveCommand: VehicleControl.TiltUp,\n negativeCommand: VehicleControl.TiltDown,\n};\nconst FOCUS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseFocus,\n negativeCommand: VehicleControl.DecreaseFocus,\n};\nconst EXPOSURE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseExposure,\n negativeCommand: VehicleControl.DecreaseExposure,\n};\nconst ZOOM: CombinedCommand = {\n positiveCommand: VehicleControl.ZoomIn,\n negativeCommand: VehicleControl.ZoomOut,\n};\n\nconst THRUSTERS: CombinedCommand = {\n positiveCommand: VehicleControl.ThrusterForward,\n negativeCommand: VehicleControl.ThrusterReverse,\n};\n\nconst YAW: CombinedCommand = {\n positiveCommand: VehicleControl.YawRight,\n negativeCommand: VehicleControl.YawLeft,\n};\n\nconst LATERAL: CombinedCommand = {\n positiveCommand: VehicleControl.LateralRight,\n negativeCommand: VehicleControl.LateralLeft,\n};\n\nconst VERTICAL: CombinedCommand = {\n positiveCommand: VehicleControl.VerticalUp,\n negativeCommand: VehicleControl.VerticalDown,\n};\n\nconst ROLL: CombinedCommand = {\n positiveCommand: VehicleControl.RollLeft,\n negativeCommand: VehicleControl.RollRight,\n};\n\nconst PITCH: CombinedCommand = {\n positiveCommand: VehicleControl.PitchUp,\n negativeCommand: VehicleControl.PitchDown,\n};\n\nconst GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberOpen,\n negativeCommand: VehicleControl.GrabberClose,\n};\n\nconst ROTATE_GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberRotateRight,\n negativeCommand: VehicleControl.GrabberRotateLeft,\n};\nconst TILT_PLATFORM: CombinedCommand = {\n positiveCommand: VehicleControl.TiltPlatformUp,\n negativeCommand: VehicleControl.TiltPlatformDown,\n};\nconst MAIN_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseMainLightBrightness,\n negativeCommand: VehicleControl.DecreaseMainLightBrightness,\n};\nconst AUX_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseAuxLightBrightness,\n negativeCommand: VehicleControl.DecreaseAuxLightBrightness,\n};\nconst SPEED_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSpeedGain,\n negativeCommand: VehicleControl.DecreaseSpeedGain,\n};\nconst STEER_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSteerGain,\n negativeCommand: VehicleControl.DecreaseSteerGain,\n};\nconst SONAR_RANGE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarRange,\n negativeCommand: VehicleControl.DecreaseSonarRange,\n};\nconst SONAR_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarGain,\n negativeCommand: VehicleControl.DecreaseSonarGain,\n};\n\nconst LATERAL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseLateralGain,\n negativeCommand: VehicleControl.DecreaseLateralGain,\n};\nconst PITCH_ROLL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseRollPitchGain,\n negativeCommand: VehicleControl.DecreaseRollPitchGain,\n};\nconst VERTICAL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseVerticalGain,\n negativeCommand: VehicleControl.DecreaseVerticalGain,\n};\nexport const COMBINED_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.ReelMotors]: REEL_MOTORS,\n [VehicleControl.CrawlerDrive]: CRAWLER_DRIVE,\n [VehicleControl.CrawlerSteer]: CRAWLER_STEER,\n [VehicleControl.ElevatingArm]: ELEVATING_ARM,\n [VehicleControl.Pan]: PAN,\n [VehicleControl.Tilt]: TILT,\n [VehicleControl.Focus]: FOCUS,\n [VehicleControl.Exposure]: EXPOSURE,\n [VehicleControl.Zoom]: ZOOM,\n [VehicleControl.Thrusters]: THRUSTERS,\n [VehicleControl.Yaw]: YAW,\n [VehicleControl.Lateral]: LATERAL,\n [VehicleControl.Vertical]: VERTICAL,\n [VehicleControl.Roll]: ROLL,\n [VehicleControl.Pitch]: PITCH,\n [VehicleControl.Grabber]: GRABBER,\n [VehicleControl.RotateGrabber]: ROTATE_GRABBER,\n [VehicleControl.TiltPlatform]: TILT_PLATFORM,\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.LateralGain]: LATERAL_GAIN,\n [VehicleControl.VerticalGain]: VERTICAL_GAIN,\n [VehicleControl.RollPitchGain]: PITCH_ROLL_GAIN,\n\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const CONSOLE_DIAL_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const DEFAULT_DEAD_ZONE = 20;\n\nexport const POSITIVE_COMMAND_INDICATOR = \"+\";\nexport const NEGATIVE_COMMAND_INDICATOR = \"-\";\nexport const SPACE_BETWEEN_INDEX_AND_INDICATOR = \" \";\n\nexport const readableMappingROV: Record<string, string> = {\n [VehicleControl.MainLight]: \"Main light on/off\",\n [VehicleControl.AuxLight]: \"Aux light on/off\",\n [VehicleControl.ToggleLasers]: \"Lasers on/off\",\n [VehicleControl.IncreaseMainLightBrightness]: \"Increase main LED\",\n [VehicleControl.DecreaseMainLightBrightness]: \"Decrease main LED\",\n [VehicleControl.IncreaseAuxLightBrightness]: \"Increase aux LED\",\n [VehicleControl.DecreaseAuxLightBrightness]: \"Decrease aux LED\",\n\n [VehicleControl.CruiseControl]: \"CC/Retrieval\",\n [VehicleControl.ResetPosture]: \"Reset Posture\",\n [VehicleControl.ReelReset]: \"Reel reset [hold]\",\n [VehicleControl.SwitchCamera]: \"Camera switch\",\n\n [VehicleControl.ThrusterForward]: \"Thruster forward\",\n [VehicleControl.ThrusterReverse]: \"Thruster reverse\",\n [VehicleControl.YawLeft]: \"Yaw left\",\n [VehicleControl.YawRight]: \"Yaw right\",\n [VehicleControl.LateralLeft]: \"Lateral left\",\n [VehicleControl.LateralRight]: \"Lateral right\",\n [VehicleControl.VerticalUp]: \"Vertical up\",\n [VehicleControl.VerticalDown]: \"Vertical down\",\n [VehicleControl.PitchUp]: \"Pitch up\",\n [VehicleControl.PitchDown]: \"Pitch down\",\n [VehicleControl.RollLeft]: \"Roll left\",\n [VehicleControl.RollRight]: \"Roll right\",\n [VehicleControl.DisableMotors]: \"Disable motors\",\n [VehicleControl.IncreaseSpeedGain]: \"Increase speed gain\",\n [VehicleControl.DecreaseSpeedGain]: \"Decrease speed gain\",\n [VehicleControl.IncreaseSteerGain]: \"Increase steer gain\",\n [VehicleControl.DecreaseSteerGain]: \"Decrease steer gain\",\n [VehicleControl.IncreaseLateralGain]: \"Increase lateral gain\",\n [VehicleControl.DecreaseLateralGain]: \"Decrease lateral gain\",\n [VehicleControl.IncreaseVerticalGain]: \"Increase vertical gain\",\n [VehicleControl.DecreaseVerticalGain]: \"Decrease vertical gain\",\n [VehicleControl.IncreaseRollPitchGain]: \"Increase pitch/roll gain\",\n [VehicleControl.DecreaseRollPitchGain]: \"Decrease pitch/roll gain\",\n\n [VehicleControl.DepthLock]: \"Depth lock\",\n [VehicleControl.AltitudeLock]: \"Altitude lock\",\n [VehicleControl.HeadingLock]: \"Heading lock\",\n [VehicleControl.PitchLock]: \"Pitch lock\",\n [VehicleControl.AutoStabilization]: \"Auto stabilization on/off\",\n [VehicleControl.StationHolding]: \"Station holding on/off\",\n [VehicleControl.DistanceLock]: \"Distance lock\",\n [VehicleControl.PrecisionThrusters]: \"Precision thrusters on/off\",\n\n [VehicleControl.TiltUp]: \"Camera tilt Up\",\n [VehicleControl.TiltDown]: \"Camera tilt Down\",\n [VehicleControl.ZoomIn]: \"Zoom in\",\n [VehicleControl.ZoomOut]: \"Zoom out\",\n [VehicleControl.CameraHome]: \"Camera home\",\n [VehicleControl.Record]: \"Record\",\n [VehicleControl.Screenshot]: \"Snapshot\",\n\n [VehicleControl.IncreaseSonarRange]: \"Increase sonar range\",\n [VehicleControl.DecreaseSonarRange]: \"Decrease sonar range\",\n [VehicleControl.IncreaseSonarGain]: \"Increase sonar gain\",\n [VehicleControl.DecreaseSonarGain]: \"Decrease sonar gain\",\n [VehicleControl.ChangeSonarFrequency]: \"Change sonar frequency\",\n\n [VehicleControl.GrabberOpen]: \"Grabber open\",\n [VehicleControl.GrabberClose]: \"Grabber close\",\n [VehicleControl.GrabberRotateLeft]: \"Grabber rotate left\",\n [VehicleControl.GrabberRotateRight]: \"Grabber rotate right\",\n [VehicleControl.TiltPlatformUp]: \"Tilt platform up\",\n [VehicleControl.TiltPlatformDown]: \"Tilt platform down\",\n\n [VehicleControl.IncreaseFocus]: \"Increase focus\",\n [VehicleControl.DecreaseFocus]: \"Decrease focus\",\n [VehicleControl.IncreaseExposure]: \"Increase exposure\",\n [VehicleControl.DecreaseExposure]: \"Decrease exposure\",\n\n [VehicleControl.Fn]: \"FN\",\n [VehicleControl.ReelTetherIn]: \"Reel tether in\",\n};\n\nexport const INPUT_MAP_SECTIONS: Record<RovControl, ControlType> = {\n [RovControl.ThrusterForward]: ControlType.Vehicle,\n [RovControl.ThrusterReverse]: ControlType.Vehicle,\n [RovControl.YawLeft]: ControlType.Vehicle,\n [RovControl.YawRight]: ControlType.Vehicle,\n [RovControl.LateralLeft]: ControlType.Vehicle,\n [RovControl.LateralRight]: ControlType.Vehicle,\n [RovControl.VerticalUp]: ControlType.Vehicle,\n [RovControl.VerticalDown]: ControlType.Vehicle,\n [RovControl.DisableMotors]: ControlType.Vehicle,\n [RovControl.PitchUp]: ControlType.Vehicle,\n [RovControl.PitchDown]: ControlType.Vehicle,\n [RovControl.RollLeft]: ControlType.Vehicle,\n [RovControl.RollRight]: ControlType.Vehicle,\n [RovControl.IncreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.DecreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.IncreaseSteerGain]: ControlType.Vehicle,\n [RovControl.DecreaseSteerGain]: ControlType.Vehicle,\n [RovControl.IncreaseLateralGain]: ControlType.Vehicle,\n [RovControl.DecreaseLateralGain]: ControlType.Vehicle,\n [RovControl.IncreaseVerticalGain]: ControlType.Vehicle,\n [RovControl.DecreaseVerticalGain]: ControlType.Vehicle,\n [RovControl.IncreaseRollPitchGain]: ControlType.Vehicle,\n [RovControl.DecreaseRollPitchGain]: ControlType.Vehicle,\n\n [RovControl.CruiseControl]: ControlType.Vehicle,\n [RovControl.ResetPosture]: ControlType.Vehicle,\n\n [RovControl.DepthLock]: ControlType.IntelligentModes,\n [RovControl.AltitudeLock]: ControlType.IntelligentModes,\n [RovControl.HeadingLock]: ControlType.IntelligentModes,\n [RovControl.AutoStabilization]: ControlType.IntelligentModes,\n [RovControl.DistanceLock]: ControlType.IntelligentModes,\n\n [RovControl.MainLight]: ControlType.Lights,\n [RovControl.AuxLight]: ControlType.Lights,\n [RovControl.ToggleLasers]: ControlType.Lights,\n [RovControl.IncreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.IncreaseAuxLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseAuxLightBrightness]: ControlType.Lights,\n\n [RovControl.TiltUp]: ControlType.Camera,\n [RovControl.TiltDown]: ControlType.Camera,\n [RovControl.ZoomIn]: ControlType.Camera,\n [RovControl.ZoomOut]: ControlType.Camera,\n [RovControl.CameraHome]: ControlType.Camera,\n [RovControl.Screenshot]: ControlType.Camera,\n [RovControl.Record]: ControlType.Camera,\n\n [RovControl.IncreaseSonarRange]: ControlType.Sonar,\n [RovControl.DecreaseSonarRange]: ControlType.Sonar,\n [RovControl.IncreaseSonarGain]: ControlType.Sonar,\n [RovControl.DecreaseSonarGain]: ControlType.Sonar,\n [RovControl.ChangeSonarFrequency]: ControlType.Sonar,\n\n [RovControl.GrabberOpen]: ControlType.Tools,\n [RovControl.GrabberClose]: ControlType.Tools,\n [RovControl.GrabberRotateLeft]: ControlType.Tools,\n [RovControl.GrabberRotateRight]: ControlType.Tools,\n [RovControl.TiltPlatformUp]: ControlType.Tools,\n [RovControl.TiltPlatformDown]: ControlType.Tools,\n\n [RovControl.Fn]: ControlType.Miscellaneous,\n [RovControl.ReelTetherIn]: ControlType.Miscellaneous,\n};\n\nexport const INPUT_CATEGORIES_LABELS: Record<ControlType, string> = {\n [ControlType.Vehicle]: \"Thruster controls\",\n [ControlType.Camera]: \"Camera controls\",\n [ControlType.Tools]: \"Grabber/tools\",\n [ControlType.Grabber]: \"Grabber/tools\",\n [ControlType.IntelligentMode]: \"Intelligent modes\",\n [ControlType.Reel]: \"Miscellaneous\",\n [ControlType.IntelligentModes]: \"Intelligent modes\",\n [ControlType.Lights]: \"Lights/lasers\",\n [ControlType.Menu]: \"Menu Navigation\",\n [ControlType.Miscellaneous]: \"Miscellaneous\",\n [ControlType.Sonar]: \"Sonar controls\",\n};\n","import {\n DEFAULT_DEAD_ZONE,\n NEGATIVE_COMMAND_INDICATOR,\n POSITIVE_COMMAND_INDICATOR,\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n} from \"@constants\";\nimport {\n InputType,\n MappedInput,\n DeadZoneProfiles,\n DefaultControllerId,\n} from \"@types\";\n\nexport function checkKeyPress(\n keys: string[],\n keysPressed: Record<string, boolean>,\n) {\n const activeElem = document.activeElement?.tagName || \"\";\n if (activeElem === \"INPUT\" || activeElem === \"TEXTAREA\") {\n return false;\n }\n let keysFound = true;\n keys.forEach((key) => {\n if (!keysPressed[key]) {\n keysFound = false;\n }\n });\n return keysFound;\n}\nexport function getAxisValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let axisValue = 0;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n axisValue = gamepad.axes[index];\n }\n });\n return Math.round(axisValue * 100);\n}\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let buttonPressed = false;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n buttonPressed = gamepad.buttons[index].pressed;\n }\n });\n return buttonPressed;\n}\nexport function decodeBooleanMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return false;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return false;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n return checkKeyPress(\n input_key.split(POSITIVE_COMMAND_INDICATOR),\n keysPressed,\n );\n case InputType.JoystickAxis:\n const mappingIndex = input_key.includes(\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n )\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] || DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n return axisValue > deadZoneValue;\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n return axisValue < -1 * deadZoneValue;\n } else {\n return false;\n }\n case InputType.JoystickButton:\n return getButtonValue(controller_id, +input_key, gamepads);\n default:\n return false;\n }\n}\nexport function decodeRateMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return 0;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return 0;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n if (checkKeyPress(input_key.split(\"+\"), keysPressed)) {\n return 100;\n } else {\n return 0;\n }\n case InputType.JoystickAxis:\n const mappingIndex =\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR) > -1\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] ?? DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n if (axisValue >= deadZoneValue) {\n return scaleRateAroundDeadZone(axisValue, deadZoneValue);\n } else {\n return 0;\n }\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n if (axisValue <= -1 * deadZoneValue) {\n return scaleRateAroundDeadZone(\n Math.abs(axisValue),\n deadZoneValue,\n );\n } else {\n return 0;\n }\n } else {\n return axisValue;\n }\n case InputType.JoystickButton:\n const buttonPressed = getButtonValue(\n controller_id,\n +input_key,\n gamepads,\n );\n if (buttonPressed) {\n return 100;\n } else {\n return 0;\n }\n default:\n return 0;\n }\n}\n\nconst scaleRateAroundDeadZone = (rate: number, deadZone: number) =>\n Math.floor(((rate - deadZone) / (100 - deadZone)) * 100);\n\n// Assigns unique Ids to controller ids. Adds a (2), (3), etc... depending on the amount of occurrences of the same Id.\nexport function assignUniqueIds(gamepads: (Gamepad | null)[]) {\n const idCounts: Record<string, number> = {};\n return Array.from(gamepads)\n .filter(\n (gamepad): gamepad is Gamepad =>\n gamepad !== null && gamepad.id !== undefined,\n )\n .map((gamepad) => {\n const baseId = gamepad.id;\n idCounts[baseId] = (idCounts[baseId] || 0) + 1;\n const uniqueId =\n idCounts[baseId] > 1\n ? `${baseId} (${idCounts[baseId]})`\n : baseId;\n return new Proxy(gamepad, {\n get(target, prop) {\n // Override `id` property\n if (prop === \"id\") {\n return uniqueId;\n }\n return Reflect.get(target, prop);\n },\n });\n });\n}\n\n/**\n * Interprets the single D-pad axis value (axis 9) from the SteelSeries Bluetooth controller\n * and converts it into a virtual set of D-pad button states (up, down, left, right).\n *\n * Unlike standard controllers that report D-pad directions as individual buttons,\n * the Bluetooth version of the SteelSeries controller encodes D-pad input into a\n * single axis value. This axis represents 8 possible directional combinations:\n * - Cardinal: up (-1), down (~0.14), left (~0.71), right (~-0.43)\n * - Diagonals: up+left (1), up+right (~-0.71), down+right (~-0.14), down+left (~0.43)\n *\n * This function uses approximate matching to account for slight variations in\n * axis values due to analog behavior, and returns an object mapping each D-pad\n * direction to a boolean indicating whether it is active.\n *\n * This enables consistent D-pad handling across SteelSeries controllers, regardless\n * of whether they report the D-pad as buttons (dongle) or a single axis (Bluetooth).\n */\nexport function getVirtualDPadStatesSteelSeriesBT(axisValue: number) {\n const matches = {\n up: false,\n down: false,\n left: false,\n right: false,\n };\n\n const approx = (a: number, b: number) =>\n Math.abs(parseFloat(a.toFixed(2)) - b) < 0.2;\n\n if (approx(axisValue, -1)) {\n matches.up = true;\n } else if (approx(axisValue, 0.14)) {\n matches.down = true;\n } else if (approx(axisValue, 0.71)) {\n matches.left = true;\n } else if (approx(axisValue, -0.43)) {\n matches.right = true;\n } else if (approx(axisValue, 1)) {\n matches.up = true;\n matches.left = true;\n } else if (approx(axisValue, -0.71)) {\n matches.up = true;\n matches.right = true;\n } else if (approx(axisValue, -0.14)) {\n matches.down = true;\n matches.right = true;\n } else if (approx(axisValue, 0.43)) {\n matches.down = true;\n matches.left = true;\n }\n\n return matches;\n}\n\n/**\n * Converts the SteelSeries Bluetooth controller format to a normalized layout\n * matching the dongle version of the same controller.\n *\n * The Bluetooth version of the SteelSeries controller differs from the dongle version\n * in two key ways:\n * 1. The D-pad is reported as a single axis (axis 9) instead of separate buttons (12–15).\n * We use `getVirtualDPadStatesSteelSeriesBT()` to interpret axis 9 and inject\n * virtual D-pad buttons at the correct positions (indices 12–15).\n * 2. The axes and button layout are slightly different from the dongle version, so we\n * remap and reorder them to ensure consistency across both input types.\n *\n * This allows the rest of the application to treat both Bluetooth and dongle-based\n * SteelSeries controllers the same way, avoiding special-case handling elsewhere in the code.\n */\nexport function convertSteelSeriesBTToBaseSteelSeries(gamepad: Gamepad) {\n const virtualDPadStates = getVirtualDPadStatesSteelSeriesBT(\n gamepad.axes[9],\n );\n return {\n ...gamepad,\n id: DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,\n axes: [\n gamepad.axes[0],\n gamepad.axes[1],\n gamepad.axes[2],\n gamepad.axes[5],\n ],\n buttons: [\n gamepad.buttons[0],\n gamepad.buttons[1],\n gamepad.buttons[3],\n gamepad.buttons[4],\n gamepad.buttons[6],\n gamepad.buttons[7],\n gamepad.buttons[8],\n gamepad.buttons[9],\n gamepad.buttons[10],\n gamepad.buttons[11],\n gamepad.buttons[13],\n gamepad.buttons[14],\n // Inject D-pad buttons at the right indices (12–15)\n {\n pressed: virtualDPadStates.up,\n touched: virtualDPadStates.up,\n value: virtualDPadStates.up ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.down,\n touched: virtualDPadStates.down,\n value: virtualDPadStates.down ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.left,\n touched: virtualDPadStates.left,\n value: virtualDPadStates.left ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.right,\n touched: virtualDPadStates.right,\n value: virtualDPadStates.right ? 1 : 0,\n },\n gamepad.buttons[15],\n ],\n } as Gamepad;\n}\n","import { COMBINED_COMMANDS, CONSOLE_DIAL_COMMANDS } from \"@constants\";\nimport {\n VehicleControl,\n MappedInput,\n DeadZoneProfiles,\n InputType,\n DefaultControllerId,\n} from \"@types\";\nimport {\n decodeRateMapping,\n decodeBooleanMapping,\n assignUniqueIds,\n convertSteelSeriesBTToBaseSteelSeries,\n} from \"@utils\";\n\n/**\n * Used to determine which keys are currently being pressed\n */\nconst keysPressed: Record<string, boolean> = {};\n\nexport const updateKeysPressed = (key: string, pressed: boolean) =>\n (keysPressed[key] = pressed);\n\nexport const poll = (\n activeMapping: Record<string, Record<string, MappedInput>>,\n subscribers: Partial<\n Record<\n VehicleControl,\n Array<\n (\n value: number | boolean,\n controller?: string,\n inputType?: InputType,\n ) => void\n >\n >\n > = {},\n deadZones: DeadZoneProfiles = {},\n) => {\n const gamepads = navigator.getGamepads().map((gamepad) => {\n if (!gamepad) {\n return null;\n } else if (\n gamepad.id ===\n DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID\n ) {\n return convertSteelSeriesBTToBaseSteelSeries(gamepad);\n } else {\n return gamepad;\n }\n });\n const uniqueGamepads = assignUniqueIds(gamepads);\n Object.entries(subscribers).forEach(([control, callbacks]) => {\n const vehicleControl = control as VehicleControl;\n const combinedCommand = COMBINED_COMMANDS[vehicleControl];\n const consoleDialCommand = CONSOLE_DIAL_COMMANDS[vehicleControl];\n let values: { value: number; inputType?: InputType }[] = [];\n Object.keys(activeMapping).forEach((controller) => {\n const mapping = activeMapping[controller];\n if (combinedCommand) {\n const { positiveCommand, negativeCommand } = combinedCommand;\n const positiveValue =\n decodeRateMapping(\n mapping[positiveCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const negativeValue =\n decodeRateMapping(\n mapping[negativeCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const value = positiveValue - negativeValue;\n const containsAxis =\n mapping[positiveCommand]?.input_type ===\n InputType.JoystickAxis ||\n mapping[negativeCommand]?.input_type ===\n InputType.JoystickAxis;\n\n // Here we are checking if the command one of the consoles dials, that are set to the sonar gains, light brightness, speeds.\n // If it is we want to return early and fire the command so it doesn't get rounded with the others. This way it can be handled on the web app\n // to ignore the message if need be.\n if (\n consoleDialCommand &&\n controller === DefaultControllerId.CONSOLE_CONTROLLER &&\n containsAxis\n ) {\n callbacks?.forEach((callback) =>\n callback(\n value,\n DefaultControllerId.CONSOLE_CONTROLLER,\n InputType.JoystickAxis,\n ),\n );\n } else if (value !== 0 || containsAxis) {\n values.push({\n value,\n inputType: containsAxis\n ? InputType.JoystickAxis\n : undefined,\n });\n }\n } else {\n callbacks?.forEach((callback) => {\n callback(\n decodeBooleanMapping(\n mapping[vehicleControl] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ),\n controller,\n mapping[vehicleControl]?.input_type,\n );\n });\n }\n });\n if (combinedCommand) {\n if (values.length > 0) {\n const averageValue =\n values.reduce((acc, val) => acc + val.value, 0) /\n values.length;\n const inputType = values[0].inputType; // assuming all values have the same input type\n callbacks?.forEach((callback) =>\n callback(averageValue, undefined, inputType),\n );\n } else {\n callbacks?.forEach((callback) => callback(0));\n }\n }\n });\n};\n"],"names":["RovControl","CrawlerControl","VehicleControl","ControlType","InputType","DefaultControllerId","COMMON_DEFAULT_CONTROLLER_NAMES","TABLET_CONTROLLER_ID","KEYBOARD_ID","VKBSIM_GLADIATOR_L_ID","VKBSIM_GLADIATOR_R_ID","STEELSERIES_CONTROLLER_ID","STEELSERIES_CONTROLLER_BLUETOOTH_ID","PLAYSTATION_CONTROLLER_ID","XBOX_ONE_GAMEPAD_ID","CONSOLE_CONTROLLER","FLIGHT_JOYSTICK","RATE_COMMANDS","CrawlerLeft","CrawlerRight","CrawlerForward","CrawlerReverse","TiltDown","TiltUp","PanLeft","PanRight","ReelDisengage","ReelTetherIn","REEL_MOTORS","positiveCommand","negativeCommand","CRAWLER_DRIVE","CRAWLER_STEER","ELEVATING_ARM","ElevatingArmAscend","ElevatingArmDescend","PAN","TILT","FOCUS","IncreaseFocus","DecreaseFocus","EXPOSURE","IncreaseExposure","DecreaseExposure","ZOOM","ZoomIn","ZoomOut","THRUSTERS","ThrusterForward","ThrusterReverse","YAW","YawRight","YawLeft","LATERAL","LateralRight","LateralLeft","VERTICAL","VerticalUp","VerticalDown","ROLL","RollLeft","RollRight","PITCH","PitchUp","PitchDown","GRABBER","GrabberOpen","GrabberClose","ROTATE_GRABBER","GrabberRotateRight","GrabberRotateLeft","TILT_PLATFORM","TiltPlatformUp","TiltPlatformDown","MAIN_LIGHT_BRIGHTNESS","IncreaseMainLightBrightness","DecreaseMainLightBrightness","AUX_LIGHT_BRIGHTNESS","IncreaseAuxLightBrightness","DecreaseAuxLightBrightness","SPEED_GAIN","IncreaseSpeedGain","DecreaseSpeedGain","STEER_GAIN","IncreaseSteerGain","DecreaseSteerGain","SONAR_RANGE","IncreaseSonarRange","DecreaseSonarRange","SONAR_GAIN","IncreaseSonarGain","DecreaseSonarGain","LATERAL_GAIN","IncreaseLateralGain","DecreaseLateralGain","PITCH_ROLL_GAIN","IncreaseRollPitchGain","DecreaseRollPitchGain","VERTICAL_GAIN","IncreaseVerticalGain","DecreaseVerticalGain","COMBINED_COMMANDS","ReelMotors","CrawlerDrive","CrawlerSteer","ElevatingArm","Pan","Tilt","Focus","Exposure","Zoom","Thrusters","Yaw","Lateral","Vertical","Roll","Pitch","Grabber","RotateGrabber","TiltPlatform","MainLightBrightness","AuxLightBrightness","SpeedGain","SteerGain","LateralGain","VerticalGain","RollPitchGain","SonarRange","SonarGain","CONSOLE_DIAL_COMMANDS","POSITIVE_COMMAND_INDICATOR","SPACE_BETWEEN_INDEX_AND_INDICATOR","readableMappingROV","MainLight","AuxLight","ToggleLasers","CruiseControl","ResetPosture","ReelReset","SwitchCamera","DisableMotors","DepthLock","AltitudeLock","HeadingLock","PitchLock","AutoStabilization","StationHolding","DistanceLock","PrecisionThrusters","CameraHome","Record","Screenshot","ChangeSonarFrequency","Fn","INPUT_MAP_SECTIONS","Vehicle","IntelligentModes","Lights","Camera","Sonar","Tools","Miscellaneous","INPUT_CATEGORIES_LABELS","IntelligentMode","Reel","Menu","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getButtonValue","buttonPressed","buttons","pressed","decodeBooleanMapping","mapping","deadZones","input_type","input_key","controller_id","KeyboardKey","split","JoystickAxis","mappingIndex","includes","substring","indexOf","deadZoneValue","JoystickButton","decodeRateMapping","_b","scaleRateAroundDeadZone","abs","rate","deadZone","floor","assignUniqueIds","idCounts","Array","from","filter","undefined","map","baseId","uniqueId","Proxy","get","target","prop","Reflect","getVirtualDPadStatesSteelSeriesBT","matches","up","down","left","right","approx","a","b","parseFloat","toFixed","convertSteelSeriesBTToBaseSteelSeries","virtualDPadStates","Object","assign","touched","value","activeMapping","subscribers","uniqueGamepads","navigator","getGamepads","entries","control","callbacks","vehicleControl","combinedCommand","consoleDialCommand","values","controller","containsAxis","_c","callback","push","inputType","length","averageValue","reduce","acc","val"],"mappings":"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"}
@@ -2,50 +2,61 @@
2
2
  * ROV Controls
3
3
  */
4
4
  export declare enum RovControl {
5
- ThrusterForward = "THRUSTER_FORWARD",
6
- ThrusterReverse = "THRUSTER_REVERSE",
7
- YawLeft = "YAW_LEFT",
8
- YawRight = "YAW_RIGHT",
9
- LateralLeft = "LATERAL_LEFT",
10
- LateralRight = "LATERAL_RIGHT",
11
- VerticalUp = "VERTICAL_UP",
12
- VerticalDown = "VERTICAL_DOWN",
13
- DisableMotors = "DISABLE_MOTORS",
14
- IncreaseSpeedGain = "INCREASE_SPEED_GAIN",
15
- DecreaseSpeedGain = "DECREASE_SPEED_GAIN",
16
- IncreaseSteerGain = "INCREASE_STEER_GAIN",
17
- DecreaseSteerGain = "DECREASE_STEER_GAIN",
18
- DepthLock = "DEPTH_LOCK",
19
5
  AltitudeLock = "ALTITUDE_LOCK",
20
- HeadingLock = "HEADING_LOCK",
21
6
  AutoStabilization = "AUTO_STABILIZATION",
22
- DistanceLock = "DISTANCE_LOCK",
23
- MainLight = "MAIN_LIGHT",
24
7
  AuxLight = "AUX_LIGHT",
25
- ToggleLasers = "TOGGLE_LASERS",
26
- IncreaseMainLightBrightness = "INCREASE_MAIN_LIGHT_BRIGHTNESS",
27
- DecreaseMainLightBrightness = "DECREASE_MAIN_LIGHT_BRIGHTNESS",
28
- IncreaseAuxLightBrightness = "INCREASE_AUX_LIGHT_BRIGHTNESS",
29
- DecreaseAuxLightBrightness = "DECREASE_AUX_LIGHT_BRIGHTNESS",
30
- TiltUp = "TILT_UP",
31
- TiltDown = "TILT_DOWN",
32
- ZoomIn = "ZOOM_IN",
33
- ZoomOut = "ZOOM_OUT",
34
8
  CameraHome = "CAMERA_HOME",
35
- Screenshot = "SCREENSHOT",
36
- Record = "RECORD",
37
- IncreaseSonarRange = "INCREASE_SONAR_RANGE",
38
- DecreaseSonarRange = "DECREASE_SONAR_RANGE",
39
- IncreaseSonarGain = "INCREASE_SONAR_GAIN",
40
- DecreaseSonarGain = "DECREASE_SONAR_GAIN",
41
9
  ChangeSonarFrequency = "CHANGE_SONAR_FREQUENCY",
42
- GrabberOpen = "GRABBER_OPEN",
10
+ DecreaseAuxLightBrightness = "DECREASE_AUX_LIGHT_BRIGHTNESS",
11
+ DecreaseLateralGain = "DECREASE_LATERAL_GAIN",
12
+ DecreaseMainLightBrightness = "DECREASE_MAIN_LIGHT_BRIGHTNESS",
13
+ DecreaseRollPitchGain = "DECREASE_ROLL_PITCH_GAIN",
14
+ DecreaseSonarGain = "DECREASE_SONAR_GAIN",
15
+ DecreaseSonarRange = "DECREASE_SONAR_RANGE",
16
+ DecreaseSpeedGain = "DECREASE_SPEED_GAIN",
17
+ DecreaseSteerGain = "DECREASE_STEER_GAIN",
18
+ DecreaseVerticalGain = "DECREASE_VERTICAL_GAIN",
19
+ DepthLock = "DEPTH_LOCK",
20
+ DisableMotors = "DISABLE_MOTORS",
21
+ DistanceLock = "DISTANCE_LOCK",
22
+ Fn = "FN",
43
23
  GrabberClose = "GRABBER_CLOSE",
24
+ GrabberOpen = "GRABBER_OPEN",
44
25
  GrabberRotateLeft = "GRABBER_ROTATE_LEFT",
45
26
  GrabberRotateRight = "GRABBER_ROTATE_RIGHT",
46
- TiltPlatformUp = "TILT_PLATFORM_UP",
47
- TiltPlatformDown = "TILT_PLATFORM_DOWN",
27
+ HeadingLock = "HEADING_LOCK",
28
+ IncreaseAuxLightBrightness = "INCREASE_AUX_LIGHT_BRIGHTNESS",
29
+ IncreaseLateralGain = "INCREASE_LATERAL_GAIN",
30
+ IncreaseMainLightBrightness = "INCREASE_MAIN_LIGHT_BRIGHTNESS",
31
+ IncreaseRollPitchGain = "INCREASE_ROLL_PITCH_GAIN",
32
+ IncreaseSonarGain = "INCREASE_SONAR_GAIN",
33
+ IncreaseSonarRange = "INCREASE_SONAR_RANGE",
34
+ IncreaseSpeedGain = "INCREASE_SPEED_GAIN",
35
+ IncreaseSteerGain = "INCREASE_STEER_GAIN",
36
+ IncreaseVerticalGain = "INCREASE_VERTICAL_GAIN",
37
+ LateralLeft = "LATERAL_LEFT",
38
+ LateralRight = "LATERAL_RIGHT",
39
+ MainLight = "MAIN_LIGHT",
40
+ PitchUp = "PITCH_UP",
41
+ PitchDown = "PITCH_DOWN",
42
+ Record = "RECORD",
48
43
  ReelTetherIn = "REEL_TETHER_IN",
44
+ RollLeft = "ROLL_LEFT",
45
+ RollRight = "ROLL_RIGHT",
46
+ Screenshot = "SCREENSHOT",
47
+ ThrusterForward = "THRUSTER_FORWARD",
48
+ ThrusterReverse = "THRUSTER_REVERSE",
49
+ TiltDown = "TILT_DOWN",
50
+ TiltPlatformDown = "TILT_PLATFORM_DOWN",
51
+ TiltPlatformUp = "TILT_PLATFORM_UP",
52
+ TiltUp = "TILT_UP",
53
+ ToggleLasers = "TOGGLE_LASERS",
54
+ VerticalDown = "VERTICAL_DOWN",
55
+ VerticalUp = "VERTICAL_UP",
56
+ YawLeft = "YAW_LEFT",
57
+ YawRight = "YAW_RIGHT",
58
+ ZoomIn = "ZOOM_IN",
59
+ ZoomOut = "ZOOM_OUT",
49
60
  CruiseControl = "CRUISE_CONTROL",
50
61
  ResetPosture = "RESET_POSTURE"
51
62
  }
@@ -53,123 +64,139 @@ export declare enum RovControl {
53
64
  * Crawler Controls
54
65
  */
55
66
  export declare enum CrawlerControl {
56
- MainLight = "MAIN_LIGHT",
57
67
  AuxLight = "AUX_LIGHT",
58
- ZoomIn = "ZOOM_IN",
59
- ElevatingArmDescend = "ELEVATING_ARM_DESCEND",
60
- ZoomOut = "ZOOM_OUT",
61
- ElevatingArmAscend = "ELEVATING_ARM_ASCEND",
62
- CruiseControl = "CRUISE_CONTROL",
63
- ReelReset = "REEL_RESET",
64
- SwitchCamera = "SWITCH_CAMERA",
65
68
  CameraHome = "CAMERA_HOME",
66
- Record = "RECORD",
67
- Screenshot = "SCREENSHOT",
68
- CrawlerLeft = "CRAWLER_LEFT",
69
- CrawlerRight = "CRAWLER_RIGHT",
70
69
  CrawlerForward = "CRAWLER_FORWARD",
70
+ CrawlerLeft = "CRAWLER_LEFT",
71
71
  CrawlerReverse = "CRAWLER_REVERSE",
72
+ CrawlerRight = "CRAWLER_RIGHT",
73
+ CruiseControl = "CRUISE_CONTROL",
74
+ DecreaseExposure = "DECREASE_EXPOSURE",
75
+ DecreaseFocus = "FOCUS_DECREASE",
76
+ DisableMotors = "DISABLE_MOTORS",
77
+ ElevatingArmAscend = "ELEVATING_ARM_ASCEND",
78
+ ElevatingArmDescend = "ELEVATING_ARM_DESCEND",
79
+ IncreaseExposure = "EXPOSURE_INCREASE",
80
+ IncreaseFocus = "FOCUS_INCREASE",
81
+ MainLight = "MAIN_LIGHT",
72
82
  PanLeft = "PAN_LEFT",
73
83
  PanRight = "PAN_RIGHT",
74
- TiltUp = "TILT_UP",
84
+ Record = "RECORD",
85
+ ReelReset = "REEL_RESET",
86
+ Screenshot = "SCREENSHOT",
87
+ SwitchCamera = "SWITCH_CAMERA",
75
88
  TiltDown = "TILT_DOWN",
76
- IncreaseFocus = "FOCUS_INCREASE",
77
- DecreaseFocus = "FOCUS_DECREASE",
78
- IncreaseExposure = "EXPOSURE_INCREASE",
79
- DecreaseExposure = "DECREASE_EXPOSURE",
89
+ TiltUp = "TILT_UP",
80
90
  ToggleLasers = "TOGGLE_LASERS",
81
- DisableMotors = "DISABLE_MOTORS"
91
+ ZoomIn = "ZOOM_IN",
92
+ ZoomOut = "ZOOM_OUT"
82
93
  }
83
94
  /**
84
95
  * All Vehicle Controls
85
96
  */
86
97
  export declare enum VehicleControl {
87
- ThrusterForward = "THRUSTER_FORWARD",
88
- ThrusterReverse = "THRUSTER_REVERSE",
89
- Thrusters = "THRUSTER",
90
- YawLeft = "YAW_LEFT",
91
- YawRight = "YAW_RIGHT",
92
- Yaw = "YAW",
93
- LateralLeft = "LATERAL_LEFT",
94
- LateralRight = "LATERAL_RIGHT",
95
- Lateral = "LATERAL",
96
- VerticalUp = "VERTICAL_UP",
97
- VerticalDown = "VERTICAL_DOWN",
98
- Vertical = "VERTICAL",
99
- DisableMotors = "DISABLE_MOTORS",
100
- DepthLock = "DEPTH_LOCK",
101
98
  AltitudeLock = "ALTITUDE_LOCK",
102
- HeadingLock = "HEADING_LOCK",
103
- PitchLock = "PITCH_LOCK",
104
99
  AutoStabilization = "AUTO_STABILIZATION",
105
- StationHolding = "STATION_HOLDING",
106
- DistanceLock = "DISTANCE_LOCK",
107
- PrecisionThrusters = "PRECISION_THRUSTERS",
108
- GrabberOpen = "GRABBER_OPEN",
109
- GrabberClose = "GRABBER_CLOSE",
110
- Grabber = "GRABBER",
111
- GrabberRotateLeft = "GRABBER_ROTATE_LEFT",
112
- GrabberRotateRight = "GRABBER_ROTATE_RIGHT",
113
- TiltPlatform = "TILT_PLATFORM",
114
- TiltPlatformUp = "TILT_PLATFORM_UP",
115
- TiltPlatformDown = "TILT_PLATFORM_DOWN",
116
- RotateGrabber = "ROTATE_GRABBER",
117
- IncreaseSonarRange = "INCREASE_SONAR_RANGE",
118
- DecreaseSonarRange = "DECREASE_SONAR_RANGE",
119
- SonarRange = "SONAR_RANGE",
120
- IncreaseSonarGain = "INCREASE_SONAR_GAIN",
121
- DecreaseSonarGain = "DECREASE_SONAR_GAIN",
122
- SonarGain = "SONAR_GAIN",
123
- ChangeSonarFrequency = "CHANGE_SONAR_FREQUENCY",
124
- MainLight = "MAIN_LIGHT",
125
100
  AuxLight = "AUX_LIGHT",
126
- Zoom = "ZOOM",
127
- ZoomIn = "ZOOM_IN",
128
- ZoomOut = "ZOOM_OUT",
129
- ElevatingArm = "ELEVATING_ARM",
130
- ElevatingArmDescend = "ELEVATING_ARM_DESCEND",
131
- ElevatingArmAscend = "ELEVATING_ARM_ASCEND",
132
- CruiseControl = "CRUISE_CONTROL",
133
- ResetPosture = "RESET_POSTURE",
134
- ReelReset = "REEL_RESET",
135
- SwitchCamera = "SWITCH_CAMERA",
101
+ AuxLightBrightness = "AUX_LIGHT_BRIGHTNESS",
136
102
  CameraHome = "CAMERA_HOME",
137
- Record = "RECORD",
138
- Screenshot = "SCREENSHOT",
139
- CrawlerSteer = "CRAWLER_STEER",
140
- CrawlerLeft = "CRAWLER_LEFT",
141
- CrawlerRight = "CRAWLER_RIGHT",
103
+ ChangeSonarFrequency = "CHANGE_SONAR_FREQUENCY",
142
104
  CrawlerDrive = "CRAWLER_DRIVE",
143
105
  CrawlerForward = "CRAWLER_FORWARD",
106
+ CrawlerLeft = "CRAWLER_LEFT",
144
107
  CrawlerReverse = "CRAWLER_REVERSE",
145
- Pan = "PAN",
146
- PanLeft = "PAN_LEFT",
147
- PanRight = "PAN_RIGHT",
148
- Tilt = "TILT",
149
- TiltUp = "TILT_UP",
150
- TiltDown = "TILT_DOWN",
151
- Focus = "FOCUS",
152
- IncreaseFocus = "FOCUS_INCREASE",
108
+ CrawlerRight = "CRAWLER_RIGHT",
109
+ CrawlerSteer = "CRAWLER_STEER",
110
+ CruiseControl = "CRUISE_CONTROL",
111
+ DecreaseAuxLightBrightness = "DECREASE_AUX_LIGHT_BRIGHTNESS",
112
+ DecreaseExposure = "DECREASE_EXPOSURE",
153
113
  DecreaseFocus = "FOCUS_DECREASE",
114
+ DecreaseLateralGain = "DECREASE_LATERAL_GAIN",
115
+ DecreaseMainLightBrightness = "DECREASE_MAIN_LIGHT_BRIGHTNESS",
116
+ DecreaseRollPitchGain = "DECREASE_ROLL_PITCH_GAIN",
117
+ DecreaseSonarGain = "DECREASE_SONAR_GAIN",
118
+ DecreaseSonarRange = "DECREASE_SONAR_RANGE",
119
+ DecreaseSpeedGain = "DECREASE_SPEED_GAIN",
120
+ DecreaseSteerGain = "DECREASE_STEER_GAIN",
121
+ DecreaseVerticalGain = "DECREASE_VERTICAL_GAIN",
122
+ DepthLock = "DEPTH_LOCK",
123
+ DisableMotors = "DISABLE_MOTORS",
124
+ DistanceLock = "DISTANCE_LOCK",
125
+ ElevatingArm = "ELEVATING_ARM",
126
+ ElevatingArmAscend = "ELEVATING_ARM_ASCEND",
127
+ ElevatingArmDescend = "ELEVATING_ARM_DESCEND",
154
128
  Exposure = "EXPOSURE",
129
+ Focus = "FOCUS",
130
+ Fn = "FN",
131
+ Grabber = "GRABBER",
132
+ GrabberClose = "GRABBER_CLOSE",
133
+ GrabberOpen = "GRABBER_OPEN",
134
+ GrabberRotateLeft = "GRABBER_ROTATE_LEFT",
135
+ GrabberRotateRight = "GRABBER_ROTATE_RIGHT",
136
+ HeadingLock = "HEADING_LOCK",
137
+ IncreaseAuxLightBrightness = "INCREASE_AUX_LIGHT_BRIGHTNESS",
155
138
  IncreaseExposure = "EXPOSURE_INCREASE",
156
- DecreaseExposure = "DECREASE_EXPOSURE",
157
- ToggleLasers = "TOGGLE_LASERS",
158
- ReelTetherIn = "REEL_TETHER_IN",
159
- SpeedGain = "SPEED_GAIN",
139
+ IncreaseFocus = "FOCUS_INCREASE",
140
+ IncreaseLateralGain = "INCREASE_LATERAL_GAIN",
141
+ IncreaseMainLightBrightness = "INCREASE_MAIN_LIGHT_BRIGHTNESS",
142
+ IncreaseRollPitchGain = "INCREASE_ROLL_PITCH_GAIN",
143
+ IncreaseSonarGain = "INCREASE_SONAR_GAIN",
144
+ IncreaseSonarRange = "INCREASE_SONAR_RANGE",
160
145
  IncreaseSpeedGain = "INCREASE_SPEED_GAIN",
161
- DecreaseSpeedGain = "DECREASE_SPEED_GAIN",
162
- SteerGain = "STEER_GAIN",
163
146
  IncreaseSteerGain = "INCREASE_STEER_GAIN",
164
- DecreaseSteerGain = "DECREASE_STEER_GAIN",
165
- AuxLightBrightness = "AUX_LIGHT_BRIGHTNESS",
166
- IncreaseAuxLightBrightness = "INCREASE_AUX_LIGHT_BRIGHTNESS",
167
- DecreaseAuxLightBrightness = "DECREASE_AUX_LIGHT_BRIGHTNESS",
147
+ IncreaseVerticalGain = "INCREASE_VERTICAL_GAIN",
148
+ Lateral = "LATERAL",
149
+ LateralLeft = "LATERAL_LEFT",
150
+ LateralGain = "LATERAL_GAIN",
151
+ LateralRight = "LATERAL_RIGHT",
152
+ MainLight = "MAIN_LIGHT",
168
153
  MainLightBrightness = "MAIN_LIGHT_BRIGHTNESS",
169
- IncreaseMainLightBrightness = "INCREASE_MAIN_LIGHT_BRIGHTNESS",
170
- DecreaseMainLightBrightness = "DECREASE_MAIN_LIGHT_BRIGHTNESS",
154
+ Pan = "PAN",
155
+ PanLeft = "PAN_LEFT",
156
+ PanRight = "PAN_RIGHT",
157
+ Pitch = "PITCH",
158
+ PitchUp = "PITCH_UP",
159
+ PitchDown = "PITCH_DOWN",
160
+ PitchLock = "PITCH_LOCK",
161
+ PrecisionThrusters = "PRECISION_THRUSTERS",
162
+ Record = "RECORD",
171
163
  ReelDisengage = "REEL_DISENGAGE",
172
- ReelMotors = "REEL_MOTORS"
164
+ ReelMotors = "REEL_MOTORS",
165
+ ReelReset = "REEL_RESET",
166
+ ResetPosture = "RESET_POSTURE",
167
+ ReelTetherIn = "REEL_TETHER_IN",
168
+ Roll = "ROLL",
169
+ RollLeft = "ROLL_LEFT",
170
+ RollPitchGain = "ROLL_PITCH_GAIN",
171
+ RollRight = "ROLL_RIGHT",
172
+ RotateGrabber = "ROTATE_GRABBER",
173
+ Screenshot = "SCREENSHOT",
174
+ SonarGain = "SONAR_GAIN",
175
+ SonarRange = "SONAR_RANGE",
176
+ SpeedGain = "SPEED_GAIN",
177
+ StationHolding = "STATION_HOLDING",
178
+ SteerGain = "STEER_GAIN",
179
+ SwitchCamera = "SWITCH_CAMERA",
180
+ ThrusterForward = "THRUSTER_FORWARD",
181
+ ThrusterReverse = "THRUSTER_REVERSE",
182
+ Thrusters = "THRUSTER",
183
+ Tilt = "TILT",
184
+ TiltDown = "TILT_DOWN",
185
+ TiltPlatform = "TILT_PLATFORM",
186
+ TiltPlatformDown = "TILT_PLATFORM_DOWN",
187
+ TiltPlatformUp = "TILT_PLATFORM_UP",
188
+ TiltUp = "TILT_UP",
189
+ ToggleLasers = "TOGGLE_LASERS",
190
+ Vertical = "VERTICAL",
191
+ VerticalDown = "VERTICAL_DOWN",
192
+ VerticalGain = "VERTICAL_GAIN",
193
+ VerticalUp = "VERTICAL_UP",
194
+ Yaw = "YAW",
195
+ YawLeft = "YAW_LEFT",
196
+ YawRight = "YAW_RIGHT",
197
+ Zoom = "ZOOM",
198
+ ZoomIn = "ZOOM_IN",
199
+ ZoomOut = "ZOOM_OUT"
173
200
  }
174
201
  /**
175
202
  * Input Mapping Profile
@@ -183,6 +210,8 @@ export interface InputMappingProfileStore {
183
210
  default: number;
184
211
  selected: number;
185
212
  inverted: number;
213
+ fn_profile_id?: number;
214
+ fnProfile?: boolean;
186
215
  }
187
216
  export interface ControllerGroupStore {
188
217
  controller_group_id: number;
@@ -199,6 +228,7 @@ export interface MappedInput {
199
228
  input_type: InputType;
200
229
  control_type: ControlType;
201
230
  controller_id: string;
231
+ fnProfile?: boolean;
202
232
  }
203
233
  export declare enum ControlType {
204
234
  Vehicle = "VEHICLE",
@@ -226,6 +256,8 @@ export interface RawInput {
226
256
  name: string;
227
257
  control_name: VehicleControl;
228
258
  created_at: string;
259
+ fn_profile_id?: number;
260
+ fnProfile?: boolean;
229
261
  }
230
262
  export interface InputMapStore {
231
263
  input_mapping_profile_id: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeptrekker/controls",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",