@deeptrekker/controls 1.0.1-rca-1624-winmate.1 → 1.0.1-rca-1624-winmate.2

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,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)",e.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)"}(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",[i.GCS_CONTROLLER]:"GCS Controller"},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},u={positiveCommand:t.RollLeft,negativeCommand:t.RollRight},g={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},f={positiveCommand:t.IncreaseSonarGain,negativeCommand:t.DecreaseSonarGain},b={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]:u,[t.Pitch]:g,[t.Grabber]:D,[t.RotateGrabber]:d,[t.TiltPlatform]:O,[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.LateralGain]:b,[t.VerticalGain]:V,[t.RollPitchGain]:M,[t.SonarRange]:v,[t.SonarGain]:f},B={[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.SonarRange]:v,[t.SonarGain]:f},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"},W={};function Y(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 Z(e,a,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[a])})),Math.round(100*r)}function X(e,a,t){const r=`${e}:${a}`,n=W[r];return void 0===n?(W[r]=t,!1):n!==t&&(W[r]=t,!0)}function J(e,a,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[a])||void 0===n?void 0:n.pressed))})),e!==i.GCS_CONTROLLER||8!==a&&9!==a?r:X(e,a,r)}function j(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 Y(s.split(U),t);case n.JoystickAxis:const e=s.includes(x)?+s.substring(0,s.indexOf(x)):+s,o=Z(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 J(E,+s,a);default:return!1}}function q(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 Y(E.split("+"),t)?100:0;case n.JoystickAxis:const e=E.indexOf(x)>-1?+E.substring(0,E.indexOf(x)):+E,s=Z(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?z(s,R):0:E.includes("-")?s<=-1*R?z(Math.abs(s),R):0:s;case n.JoystickButton:return J(l,+E,a)?100:0;default:return 0}}const z=(e,a)=>Math.floor((e-a)/(100-a)*100);function $(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 Q(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 ee(e){const a=Q(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 ae={},te=(e,a)=>ae[e]=a,re=()=>{Object.keys(ae).forEach((e=>{ae[e]=!1}))},ne=(e,a={},t={})=>{const r=$(navigator.getGamepads().map((e=>e?e.id===i.STEELSERIES_CONTROLLER_BLUETOOTH_ID?ee(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,_=(q(null!==(c=I[e])&&void 0!==c?c:{},r,ae,t)||0)-(q(null!==(L=I[s])&&void 0!==L?L:{},r,ae,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(j(null!==(n=I[s])&&void 0!==n?n:{},r,ae,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,$ as assignUniqueIds,Y as checkKeyPress,re as clearKeys,ee as convertSteelSeriesBTToBaseSteelSeries,j as decodeBooleanMapping,q as decodeRateMapping,Z as getAxisValue,J as getButtonValue,X as getGCSToggleEdge,Q as getVirtualDPadStatesSteelSeriesBT,ne as poll,k as readableMappingROV,te 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)",e.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)"}(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",[i.GCS_CONTROLLER]:"GCS Controller"},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},u={positiveCommand:t.RollLeft,negativeCommand:t.RollRight},g={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},f={positiveCommand:t.IncreaseSonarGain,negativeCommand:t.DecreaseSonarGain},b={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]:u,[t.Pitch]:g,[t.Grabber]:D,[t.RotateGrabber]:d,[t.TiltPlatform]:O,[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.LateralGain]:b,[t.VerticalGain]:V,[t.RollPitchGain]:M,[t.SonarRange]:v,[t.SonarGain]:f},B={[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.SonarRange]:v,[t.SonarGain]:f},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"},W={};function Y(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 Z(e,a,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[a])})),Math.round(100*r)}function X(e,a,t){const r=`${e}:${a}`,n=W[r];return void 0===n?(W[r]=t,!1):n!==t&&(W[r]=t,t)}function J(e,a,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[a])||void 0===n?void 0:n.pressed))})),e!==i.GCS_CONTROLLER||8!==a&&9!==a?r:X(e,a,r)}function j(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 Y(s.split(U),t);case n.JoystickAxis:const e=s.includes(x)?+s.substring(0,s.indexOf(x)):+s,o=Z(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 J(E,+s,a);default:return!1}}function q(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 Y(E.split("+"),t)?100:0;case n.JoystickAxis:const e=E.indexOf(x)>-1?+E.substring(0,E.indexOf(x)):+E,s=Z(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?z(s,R):0:E.includes("-")?s<=-1*R?z(Math.abs(s),R):0:s;case n.JoystickButton:return J(l,+E,a)?100:0;default:return 0}}const z=(e,a)=>Math.floor((e-a)/(100-a)*100);function $(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 Q(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 ee(e){const a=Q(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 ae={},te=(e,a)=>ae[e]=a,re=()=>{Object.keys(ae).forEach((e=>{ae[e]=!1}))},ne=(e,a={},t={})=>{const r=$(navigator.getGamepads().map((e=>e?e.id===i.STEELSERIES_CONTROLLER_BLUETOOTH_ID?ee(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,_=(q(null!==(c=I[e])&&void 0!==c?c:{},r,ae,t)||0)-(q(null!==(L=I[s])&&void 0!==L?L:{},r,ae,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(j(null!==(n=I[s])&&void 0!==n?n:{},r,ae,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,$ as assignUniqueIds,Y as checkKeyPress,re as clearKeys,ee as convertSteelSeriesBTToBaseSteelSeries,j as decodeBooleanMapping,q as decodeRateMapping,Z as getAxisValue,J as getButtonValue,X as getGCSToggleEdge,Q as getVirtualDPadStatesSteelSeriesBT,ne as poll,k as readableMappingROV,te as updateKeysPressed};
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
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)",l.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)";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",[exports.DefaultControllerId.GCS_CONTROLLER]:"GCS Controller"},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},C={positiveCommand:exports.VehicleControl.CrawlerForward,negativeCommand:exports.VehicleControl.CrawlerReverse},p={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},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},u={positiveCommand:exports.VehicleControl.PitchUp,negativeCommand:exports.VehicleControl.PitchDown},V={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]:C,[exports.VehicleControl.CrawlerSteer]:p,[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]:L,[exports.VehicleControl.Lateral]:A,[exports.VehicleControl.Vertical]:_,[exports.VehicleControl.Roll]:S,[exports.VehicleControl.Pitch]:u,[exports.VehicleControl.Grabber]:V,[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"},k={};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 W(e,o,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[o])})),Math.round(100*r)}function Y(e,o,t){const r=`${e}:${o}`,n=k[r];return void 0===n?(k[r]=t,!1):n!==t&&(k[r]=t,!0)}function Z(e,o,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[o])||void 0===n?void 0:n.pressed))})),e!==exports.DefaultControllerId.GCS_CONTROLLER||8!==o&&9!==o?r:Y(e,o,r)}function X(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=W(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 Z(i,+s,o);default:return!1}}function J(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=W(a,e,o),C=null!==(l=null===(n=r[a])||void 0===n?void 0:n[e])&&void 0!==l?l:20;return i.includes(B)?s>=C?j(s,C):0:i.includes("-")?s<=-1*C?j(Math.abs(s),C):0:s;case exports.InputType.JoystickButton:return Z(a,+i,o)?100:0;default:return 0}}const j=(e,o)=>Math.floor((e-o)/(100-o)*100);function q(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 z(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 $(e){const o=z(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 Q={};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=q,exports.checkKeyPress=K,exports.clearKeys=()=>{Object.keys(Q).forEach((e=>{Q[e]=!1}))},exports.convertSteelSeriesBTToBaseSteelSeries=$,exports.decodeBooleanMapping=X,exports.decodeRateMapping=J,exports.getAxisValue=W,exports.getButtonValue=Z,exports.getGCSToggleEdge=Y,exports.getVirtualDPadStatesSteelSeriesBT=z,exports.poll=(e,o={},t={})=>{const r=q(navigator.getGamepads().map((e=>e?e.id===exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID?$(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 C,p,c,R;const E=e[o];if(s){const{positiveCommand:e,negativeCommand:l}=s,T=(J(null!==(C=E[e])&&void 0!==C?C:{},r,Q,t)||0)-(J(null!==(p=E[l])&&void 0!==p?p:{},r,Q,t)||0),x=(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&&x?null==n||n.forEach((e=>e(T,exports.DefaultControllerId.CONSOLE_CONTROLLER,exports.InputType.JoystickAxis))):(0!==T||x)&&a.push({value:T,inputType:x?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,s;e(X(null!==(n=E[l])&&void 0!==n?n:{},r,Q,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)=>Q[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)",l.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)";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",[exports.DefaultControllerId.GCS_CONTROLLER]:"GCS Controller"},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},C={positiveCommand:exports.VehicleControl.CrawlerForward,negativeCommand:exports.VehicleControl.CrawlerReverse},p={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},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},u={positiveCommand:exports.VehicleControl.PitchUp,negativeCommand:exports.VehicleControl.PitchDown},V={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]:C,[exports.VehicleControl.CrawlerSteer]:p,[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]:L,[exports.VehicleControl.Lateral]:A,[exports.VehicleControl.Vertical]:_,[exports.VehicleControl.Roll]:S,[exports.VehicleControl.Pitch]:u,[exports.VehicleControl.Grabber]:V,[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"},k={};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 W(e,o,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[o])})),Math.round(100*r)}function Y(e,o,t){const r=`${e}:${o}`,n=k[r];return void 0===n?(k[r]=t,!1):n!==t&&(k[r]=t,t)}function Z(e,o,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[o])||void 0===n?void 0:n.pressed))})),e!==exports.DefaultControllerId.GCS_CONTROLLER||8!==o&&9!==o?r:Y(e,o,r)}function X(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=W(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 Z(i,+s,o);default:return!1}}function J(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=W(a,e,o),C=null!==(l=null===(n=r[a])||void 0===n?void 0:n[e])&&void 0!==l?l:20;return i.includes(B)?s>=C?j(s,C):0:i.includes("-")?s<=-1*C?j(Math.abs(s),C):0:s;case exports.InputType.JoystickButton:return Z(a,+i,o)?100:0;default:return 0}}const j=(e,o)=>Math.floor((e-o)/(100-o)*100);function q(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 z(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 $(e){const o=z(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 Q={};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=q,exports.checkKeyPress=K,exports.clearKeys=()=>{Object.keys(Q).forEach((e=>{Q[e]=!1}))},exports.convertSteelSeriesBTToBaseSteelSeries=$,exports.decodeBooleanMapping=X,exports.decodeRateMapping=J,exports.getAxisValue=W,exports.getButtonValue=Z,exports.getGCSToggleEdge=Y,exports.getVirtualDPadStatesSteelSeriesBT=z,exports.poll=(e,o={},t={})=>{const r=q(navigator.getGamepads().map((e=>e?e.id===exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID?$(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 C,p,c,R;const E=e[o];if(s){const{positiveCommand:e,negativeCommand:l}=s,T=(J(null!==(C=E[e])&&void 0!==C?C:{},r,Q,t)||0)-(J(null!==(p=E[l])&&void 0!==p?p:{},r,Q,t)||0),x=(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&&x?null==n||n.forEach((e=>e(T,exports.DefaultControllerId.CONSOLE_CONTROLLER,exports.InputType.JoystickAxis))):(0!==T||x)&&a.push({value:T,inputType:x?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,s;e(X(null!==(n=E[l])&&void 0!==n?n:{},r,Q,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)=>Q[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 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 GCS_CONTROLLER = \"GCS Joystick (Vendor: 2e3c Product: 5710)\",\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 [DefaultControllerId.GCS_CONTROLLER]: \"GCS Controller\",\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\nconst gcsToggleState: Record<string, boolean | undefined> = {};\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 getGCSToggleEdge(\n controllerId: string,\n buttonIndex: number,\n pressed: boolean,\n) {\n const key = `${controllerId}:${buttonIndex}`;\n const previous = gcsToggleState[key];\n\n if (previous === undefined) {\n gcsToggleState[key] = pressed;\n return false;\n }\n\n if (previous !== pressed) {\n gcsToggleState[key] = pressed;\n return true;\n }\n\n return false;\n}\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let pressed = false;\n\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n pressed = !!gamepad.buttons[index]?.pressed;\n }\n });\n\n if (\n controllerID === DefaultControllerId.GCS_CONTROLLER &&\n (index === 8 || index === 9)\n ) {\n return getGCSToggleEdge(controllerID, index, pressed);\n }\n\n // All other buttons → normal behavior\n return pressed;\n}\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 clearKeys = () => {\n Object.keys(keysPressed).forEach((key) => {\n keysPressed[key] = false;\n });\n};\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","GCS_CONTROLLER","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","gcsToggleState","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getGCSToggleEdge","controllerId","buttonIndex","pressed","previous","undefined","getButtonValue","buttons","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","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 GCS_CONTROLLER = \"GCS Joystick (Vendor: 2e3c Product: 5710)\",\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 [DefaultControllerId.GCS_CONTROLLER]: \"GCS Controller\",\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\nconst gcsToggleState: Record<string, boolean | undefined> = {};\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 getGCSToggleEdge(\n controllerId: string,\n buttonIndex: number,\n pressed: boolean,\n) {\n const key = `${controllerId}:${buttonIndex}`;\n const previous = gcsToggleState[key];\n\n if (previous === undefined) {\n gcsToggleState[key] = pressed;\n return false;\n }\n\n if (previous !== pressed) {\n gcsToggleState[key] = pressed;\n return pressed;\n }\n\n return false;\n}\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let pressed = false;\n\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n pressed = !!gamepad.buttons[index]?.pressed;\n }\n });\n\n if (\n controllerID === DefaultControllerId.GCS_CONTROLLER &&\n (index === 8 || index === 9)\n ) {\n return getGCSToggleEdge(controllerID, index, pressed);\n }\n\n // All other buttons → normal behavior\n return pressed;\n}\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 clearKeys = () => {\n Object.keys(keysPressed).forEach((key) => {\n keysPressed[key] = false;\n });\n};\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","GCS_CONTROLLER","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","gcsToggleState","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getGCSToggleEdge","controllerId","buttonIndex","pressed","previous","undefined","getButtonValue","buttons","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","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeptrekker/controls",
3
- "version": "1.0.1-rca-1624-winmate.1",
3
+ "version": "1.0.1-rca-1624-winmate.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",