@deeptrekker/controls 0.6.9 → 0.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1 +1 @@
1
- var e,r,a,t,n,o;!function(e){e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.DisableMotors="DISABLE_MOTORS",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN"}(e||(e={})),function(e){e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ZoomIn="ZOOM_IN",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.ZoomOut="ZOOM_OUT",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.CruiseControl="CRUISE_CONTROL",e.ReelReset="REEL_RESET",e.SwitchCamera="SWITCH_CAMERA",e.CameraHome="CAMERA_HOME",e.Record="RECORD",e.Screenshot="SCREENSHOT",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerReverse="CRAWLER_REVERSE",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.IncreaseFocus="FOCUS_INCREASE",e.DecreaseFocus="FOCUS_DECREASE",e.IncreaseExposure="EXPOSURE_INCREASE",e.DecreaseExposure="DECREASE_EXPOSURE",e.ToggleLasers="TOGGLE_LASERS",e.DisableMotors="DISABLE_MOTORS"}(r||(r={})),function(e){e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.Thrusters="THRUSTER",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.Yaw="YAW",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.Lateral="LATERAL",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.Vertical="VERTICAL",e.DisableMotors="DISABLE_MOTORS",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.PitchLock="PITCH_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.StationHolding="STATION_HOLDING",e.PrecisionThrusters="PRECISION_THRUSTERS",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.Grabber="GRABBER",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatform="TILT_PLATFORM",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.RotateGrabber="ROTATE_GRABBER",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.SonarRange="SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.SonarGain="SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.Zoom="ZOOM",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.ElevatingArm="ELEVATING_ARM",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.CruiseControl="CRUISE_CONTROL",e.ReelReset="REEL_RESET",e.SwitchCamera="SWITCH_CAMERA",e.CameraHome="CAMERA_HOME",e.Record="RECORD",e.Screenshot="SCREENSHOT",e.CrawlerSteer="CRAWLER_STEER",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerDrive="CRAWLER_DRIVE",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerReverse="CRAWLER_REVERSE",e.Pan="PAN",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Tilt="TILT",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.Focus="FOCUS",e.IncreaseFocus="FOCUS_INCREASE",e.DecreaseFocus="FOCUS_DECREASE",e.Exposure="EXPOSURE",e.IncreaseExposure="EXPOSURE_INCREASE",e.DecreaseExposure="DECREASE_EXPOSURE",e.ToggleLasers="TOGGLE_LASERS",e.ReelTetherIn="REEL_TETHER_IN",e.SpeedGain="SPEED_GAIN",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.SteerGain="STEER_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS"}(a||(a={})),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"}(t||(t={})),function(e){e.JoystickAxis="AXIS",e.JoystickButton="BUTTON",e.KeyboardKey="KEY"}(n||(n={})),function(e){e.TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",e.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",e.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",e.KEYBOARD_ID="KEYBOARD",e.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",e.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",e.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",e.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",e.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",e.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)"}(o||(o={}));const i={[o.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[o.KEYBOARD_ID]:"Keyboard",[o.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[o.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[o.STEELSERIES_CONTROLLER_ID]:"Gamepad",[o.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[o.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[o.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[o.CONSOLE_CONTROLLER]:"Deep Trekker Console",[o.FLIGHT_JOYSTICK]:"Flight joystick"},s={[a.CrawlerLeft]:!0,[a.CrawlerRight]:!0,[a.CrawlerForward]:!0,[a.CrawlerReverse]:!0,[a.TiltDown]:!0,[a.TiltUp]:!0,[a.PanLeft]:!0,[a.PanRight]:!0},E={positiveCommand:a.CrawlerForward,negativeCommand:a.CrawlerReverse},R={positiveCommand:a.CrawlerRight,negativeCommand:a.CrawlerLeft},l={positiveCommand:a.ElevatingArmAscend,negativeCommand:a.ElevatingArmDescend},T={positiveCommand:a.PanRight,negativeCommand:a.PanLeft},c={positiveCommand:a.TiltUp,negativeCommand:a.TiltDown},A={positiveCommand:a.IncreaseFocus,negativeCommand:a.DecreaseFocus},L={positiveCommand:a.IncreaseExposure,negativeCommand:a.DecreaseExposure},S={positiveCommand:a.ZoomIn,negativeCommand:a.ZoomOut},_={positiveCommand:a.ThrusterForward,negativeCommand:a.ThrusterReverse},I={positiveCommand:a.YawRight,negativeCommand:a.YawLeft},C={positiveCommand:a.LateralRight,negativeCommand:a.LateralLeft},g={positiveCommand:a.VerticalUp,negativeCommand:a.VerticalDown},u={positiveCommand:a.GrabberOpen,negativeCommand:a.GrabberClose},D={positiveCommand:a.GrabberRotateRight,negativeCommand:a.GrabberRotateLeft},d={positiveCommand:a.TiltPlatformUp,negativeCommand:a.TiltPlatformDown},m={positiveCommand:a.IncreaseMainLightBrightness,negativeCommand:a.DecreaseMainLightBrightness},h={positiveCommand:a.IncreaseAuxLightBrightness,negativeCommand:a.DecreaseAuxLightBrightness},G={positiveCommand:a.IncreaseSpeedGain,negativeCommand:a.DecreaseSpeedGain},O={positiveCommand:a.IncreaseSteerGain,negativeCommand:a.DecreaseSteerGain},N={positiveCommand:a.IncreaseSonarRange,negativeCommand:a.DecreaseSonarRange},p={positiveCommand:a.IncreaseSonarGain,negativeCommand:a.DecreaseSonarGain},v={[a.CrawlerDrive]:E,[a.CrawlerSteer]:R,[a.ElevatingArm]:l,[a.Pan]:T,[a.Tilt]:c,[a.Focus]:A,[a.Exposure]:L,[a.Zoom]:S,[a.Thrusters]:_,[a.Yaw]:I,[a.Lateral]:C,[a.Vertical]:g,[a.Grabber]:u,[a.RotateGrabber]:D,[a.TiltPlatform]:d,[a.MainLightBrightness]:m,[a.AuxLightBrightness]:h,[a.SpeedGain]:G,[a.SteerGain]:O,[a.SonarRange]:N,[a.SonarGain]:p},b=5,M="+",f="-",B=" ",H={[a.MainLight]:"Main light on/off",[a.AuxLight]:"Aux Light on/off",[a.ToggleLasers]:"Lasers on/off",[a.IncreaseMainLightBrightness]:"Increase main LED",[a.DecreaseMainLightBrightness]:"Decrease main LED",[a.IncreaseAuxLightBrightness]:"Increase aux LED",[a.DecreaseAuxLightBrightness]:"Decrease aux LED",[a.CruiseControl]:"CC/Retrieval",[a.ReelReset]:"Reel Reset [Hold]",[a.SwitchCamera]:"Camera Switch",[a.ThrusterForward]:"Thruster Forward",[a.ThrusterReverse]:"Thruster Reverse",[a.YawLeft]:"Yaw left",[a.YawRight]:"Yaw right",[a.LateralLeft]:"Lateral left",[a.LateralRight]:"Lateral right",[a.VerticalDown]:"Vertical down",[a.VerticalUp]:"Vertical up",[a.DisableMotors]:"Disable motors",[a.IncreaseSpeedGain]:"Increase speed gain",[a.DecreaseSpeedGain]:"Decrease speed gain",[a.IncreaseSteerGain]:"Increase steer gain",[a.DecreaseSteerGain]:"Decrease steer gain",[a.DepthLock]:"Depth lock",[a.AltitudeLock]:"Altitude lock",[a.HeadingLock]:"Heading lock",[a.PitchLock]:"Pitch lock",[a.AutoStabilization]:"Auto stabilization on/off",[a.StationHolding]:"Station holding on/off",[a.PrecisionThrusters]:"Precision thrusters on/off",[a.TiltUp]:"Camera Tilt Up",[a.TiltDown]:"Camera Tilt Down",[a.ZoomIn]:"Zoom In",[a.ZoomOut]:"Zoom Out",[a.CameraHome]:"Camera Home",[a.Record]:"Record",[a.Screenshot]:"Snapshot",[a.IncreaseSonarRange]:"Increase sonar range",[a.DecreaseSonarRange]:"Decrease sonar range",[a.IncreaseSonarGain]:"Increase sonar gain",[a.DecreaseSonarGain]:"Decrease sonar gain",[a.ChangeSonarFrequency]:"Change sonar frequency",[a.GrabberOpen]:"Grabber open",[a.GrabberClose]:"Grabber close",[a.GrabberRotateLeft]:"Grabber rotate left",[a.GrabberRotateRight]:"Grabber rotate right",[a.TiltPlatformUp]:"Tilt platform up",[a.TiltPlatformDown]:"Tilt platform down",[a.IncreaseFocus]:"Increase Focus",[a.DecreaseFocus]:"Decrease Focus",[a.IncreaseExposure]:"Increase Exposure",[a.DecreaseExposure]:"Decrease Exposure",[a.ReelTetherIn]:"Reel tether in"},P={[e.ThrusterForward]:t.Vehicle,[e.ThrusterReverse]:t.Vehicle,[e.YawLeft]:t.Vehicle,[e.YawRight]:t.Vehicle,[e.LateralLeft]:t.Vehicle,[e.LateralRight]:t.Vehicle,[e.VerticalUp]:t.Vehicle,[e.VerticalDown]:t.Vehicle,[e.DisableMotors]:t.Vehicle,[e.IncreaseSpeedGain]:t.Vehicle,[e.DecreaseSpeedGain]:t.Vehicle,[e.IncreaseSteerGain]:t.Vehicle,[e.DecreaseSteerGain]:t.Vehicle,[e.DepthLock]:t.IntelligentModes,[e.AltitudeLock]:t.IntelligentModes,[e.HeadingLock]:t.IntelligentModes,[e.AutoStabilization]:t.IntelligentModes,[e.MainLight]:t.Lights,[e.AuxLight]:t.Lights,[e.ToggleLasers]:t.Lights,[e.IncreaseMainLightBrightness]:t.Lights,[e.DecreaseMainLightBrightness]:t.Lights,[e.IncreaseAuxLightBrightness]:t.Lights,[e.DecreaseAuxLightBrightness]:t.Lights,[e.TiltUp]:t.Camera,[e.TiltDown]:t.Camera,[e.ZoomIn]:t.Camera,[e.ZoomOut]:t.Camera,[e.CameraHome]:t.Camera,[e.Screenshot]:t.Camera,[e.Record]:t.Camera,[e.IncreaseSonarRange]:t.Sonar,[e.DecreaseSonarRange]:t.Sonar,[e.IncreaseSonarGain]:t.Sonar,[e.DecreaseSonarGain]:t.Sonar,[e.ChangeSonarFrequency]:t.Sonar,[e.GrabberOpen]:t.Tools,[e.GrabberClose]:t.Tools,[e.GrabberRotateLeft]:t.Tools,[e.GrabberRotateRight]:t.Tools,[e.TiltPlatformUp]:t.Tools,[e.TiltPlatformDown]:t.Tools,[e.ReelTetherIn]:t.Miscellaneous},w={[t.Vehicle]:"Thruster controls",[t.Camera]:"Camera controls",[t.Tools]:"Grabber/tools",[t.Grabber]:"Grabber/tools",[t.IntelligentMode]:"Intelligent modes",[t.Reel]:"Miscellaneous",[t.IntelligentModes]:"Intelligent modes",[t.Lights]:"Lights/lasers",[t.Menu]:"Menu Navigation",[t.Miscellaneous]:"Miscellaneous",[t.Sonar]:"Sonar controls"};function V(e,r){var a;const t=(null===(a=document.activeElement)||void 0===a?void 0:a.tagName)||"";if("INPUT"===t||"TEXTAREA"===t)return!1;let n=!0;return e.forEach((e=>{r[e]||(n=!1)})),n}function U(e,r,a){let t=0;return a.forEach((a=>{a&&a.id===e&&(t=a.axes[r])})),Math.round(100*t)}function F(e,r,a){let t=!1;return a.forEach((a=>{a&&a.id===e&&(t=a.buttons[r].pressed)})),t}function x(e,r,a,t){var o;if(!e)return!1;const{input_type:i,input_key:s,controller_id:E}=e;if(!E&&i!==n.KeyboardKey)return!1;switch(i){case n.KeyboardKey:return V(s.split(M),a);case n.JoystickAxis:const e=s.includes(B)?+s.substring(0,s.indexOf(B)):+s,i=U(E,e,r),R=(null===(o=t[E])||void 0===o?void 0:o[e])||5;return s.includes(M)?i>R:!!s.includes("-")&&i<-1*R;case n.JoystickButton:return F(E,+s,r);default:return!1}}function k(e,r,a,t){var o,i;if(!e)return 0;const{input_type:s,input_key:E,controller_id:R}=e;if(!R&&s!==n.KeyboardKey)return 0;switch(s){case n.KeyboardKey:return V(E.split("+"),a)?100:0;case n.JoystickAxis:const e=E.indexOf(B)>-1?+E.substring(0,E.indexOf(B)):+E,s=U(R,e,r),l=null!==(i=null===(o=t[R])||void 0===o?void 0:o[e])&&void 0!==i?i:5;return E.includes(M)?s>=l?y(s,l):0:E.includes("-")?s<=-1*l?y(Math.abs(s),l):0:s;case n.JoystickButton:return F(R,+E,r)?100:0;default:return 0}}const y=(e,r)=>Math.floor((e-r)/(100-r)*100);function K(e){const r={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const a=e.id;r[a]=(r[a]||0)+1;const t=r[a]>1?`${a} (${r[a]})`:a;return new Proxy(e,{get:(e,r)=>"id"===r?t:Reflect.get(e,r)})}))}const W={},Y=(e,r)=>W[e]=r,Z=(e,r={},a={})=>{const t=K(navigator.getGamepads());Object.entries(r).forEach((([r,o])=>{const i=r,s=v[i];let E=[];if(Object.keys(e).forEach((r=>{var R,l,T,c;const A=e[r];if(s){const{positiveCommand:e,negativeCommand:r}=s,o=(k(null!==(R=A[e])&&void 0!==R?R:{},t,W,a)||0)-(k(null!==(l=A[r])&&void 0!==l?l:{},t,W,a)||0),i=(null===(T=A[e])||void 0===T?void 0:T.input_type)===n.JoystickAxis||(null===(c=A[r])||void 0===c?void 0:c.input_type)===n.JoystickAxis;(0!==o||i)&&E.push({value:o,inputType:i?n.JoystickAxis:void 0})}else null==o||o.forEach((e=>{var n,o;e(x(null!==(n=A[i])&&void 0!==n?n:{},t,W,a),r,null===(o=A[i])||void 0===o?void 0:o.input_type)}))})),s)if(E.length>0){const e=E.reduce(((e,r)=>e+r.value),0)/E.length,r=E[0].inputType;null==o||o.forEach((a=>a(e,void 0,r)))}else null==o||o.forEach((e=>e(0)))}))};export{v as COMBINED_COMMANDS,i as COMMON_DEFAULT_CONTROLLER_NAMES,t as ControlType,r as CrawlerControl,b as DEFAULT_DEAD_ZONE,o as DefaultControllerId,w as INPUT_CATEGORIES_LABELS,P as INPUT_MAP_SECTIONS,n as InputType,f as NEGATIVE_COMMAND_INDICATOR,M as POSITIVE_COMMAND_INDICATOR,s as RATE_COMMANDS,e as RovControl,B as SPACE_BETWEEN_INDEX_AND_INDICATOR,a as VehicleControl,K as assignUniqueIds,V as checkKeyPress,x as decodeBooleanMapping,k as decodeRateMapping,U as getAxisValue,F as getButtonValue,Z as poll,H as readableMappingROV,Y as updateKeysPressed};
1
+ var e,r,a,t,n,o;!function(e){e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.DisableMotors="DISABLE_MOTORS",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN"}(e||(e={})),function(e){e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ZoomIn="ZOOM_IN",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.ZoomOut="ZOOM_OUT",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.CruiseControl="CRUISE_CONTROL",e.ReelReset="REEL_RESET",e.SwitchCamera="SWITCH_CAMERA",e.CameraHome="CAMERA_HOME",e.Record="RECORD",e.Screenshot="SCREENSHOT",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerReverse="CRAWLER_REVERSE",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.IncreaseFocus="FOCUS_INCREASE",e.DecreaseFocus="FOCUS_DECREASE",e.IncreaseExposure="EXPOSURE_INCREASE",e.DecreaseExposure="DECREASE_EXPOSURE",e.ToggleLasers="TOGGLE_LASERS",e.DisableMotors="DISABLE_MOTORS"}(r||(r={})),function(e){e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.Thrusters="THRUSTER",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.Yaw="YAW",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.Lateral="LATERAL",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.Vertical="VERTICAL",e.DisableMotors="DISABLE_MOTORS",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.PitchLock="PITCH_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.StationHolding="STATION_HOLDING",e.DistanceLock="DISTANCE_LOCK",e.PrecisionThrusters="PRECISION_THRUSTERS",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.Grabber="GRABBER",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatform="TILT_PLATFORM",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.RotateGrabber="ROTATE_GRABBER",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.SonarRange="SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.SonarGain="SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.Zoom="ZOOM",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.ElevatingArm="ELEVATING_ARM",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.CruiseControl="CRUISE_CONTROL",e.ReelReset="REEL_RESET",e.SwitchCamera="SWITCH_CAMERA",e.CameraHome="CAMERA_HOME",e.Record="RECORD",e.Screenshot="SCREENSHOT",e.CrawlerSteer="CRAWLER_STEER",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerDrive="CRAWLER_DRIVE",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerReverse="CRAWLER_REVERSE",e.Pan="PAN",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Tilt="TILT",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.Focus="FOCUS",e.IncreaseFocus="FOCUS_INCREASE",e.DecreaseFocus="FOCUS_DECREASE",e.Exposure="EXPOSURE",e.IncreaseExposure="EXPOSURE_INCREASE",e.DecreaseExposure="DECREASE_EXPOSURE",e.ToggleLasers="TOGGLE_LASERS",e.ReelTetherIn="REEL_TETHER_IN",e.SpeedGain="SPEED_GAIN",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.SteerGain="STEER_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS"}(a||(a={})),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"}(t||(t={})),function(e){e.JoystickAxis="AXIS",e.JoystickButton="BUTTON",e.KeyboardKey="KEY"}(n||(n={})),function(e){e.TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",e.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",e.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",e.KEYBOARD_ID="KEYBOARD",e.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",e.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",e.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",e.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",e.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",e.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)"}(o||(o={}));const i={[o.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[o.KEYBOARD_ID]:"Keyboard",[o.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[o.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[o.STEELSERIES_CONTROLLER_ID]:"Gamepad",[o.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[o.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[o.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[o.CONSOLE_CONTROLLER]:"Deep Trekker Console",[o.FLIGHT_JOYSTICK]:"Flight joystick"},s={[a.CrawlerLeft]:!0,[a.CrawlerRight]:!0,[a.CrawlerForward]:!0,[a.CrawlerReverse]:!0,[a.TiltDown]:!0,[a.TiltUp]:!0,[a.PanLeft]:!0,[a.PanRight]:!0},E={positiveCommand:a.CrawlerForward,negativeCommand:a.CrawlerReverse},R={positiveCommand:a.CrawlerRight,negativeCommand:a.CrawlerLeft},l={positiveCommand:a.ElevatingArmAscend,negativeCommand:a.ElevatingArmDescend},c={positiveCommand:a.PanRight,negativeCommand:a.PanLeft},T={positiveCommand:a.TiltUp,negativeCommand:a.TiltDown},A={positiveCommand:a.IncreaseFocus,negativeCommand:a.DecreaseFocus},L={positiveCommand:a.IncreaseExposure,negativeCommand:a.DecreaseExposure},S={positiveCommand:a.ZoomIn,negativeCommand:a.ZoomOut},_={positiveCommand:a.ThrusterForward,negativeCommand:a.ThrusterReverse},I={positiveCommand:a.YawRight,negativeCommand:a.YawLeft},C={positiveCommand:a.LateralRight,negativeCommand:a.LateralLeft},g={positiveCommand:a.VerticalUp,negativeCommand:a.VerticalDown},D={positiveCommand:a.GrabberOpen,negativeCommand:a.GrabberClose},u={positiveCommand:a.GrabberRotateRight,negativeCommand:a.GrabberRotateLeft},d={positiveCommand:a.TiltPlatformUp,negativeCommand:a.TiltPlatformDown},m={positiveCommand:a.IncreaseMainLightBrightness,negativeCommand:a.DecreaseMainLightBrightness},h={positiveCommand:a.IncreaseAuxLightBrightness,negativeCommand:a.DecreaseAuxLightBrightness},G={positiveCommand:a.IncreaseSpeedGain,negativeCommand:a.DecreaseSpeedGain},O={positiveCommand:a.IncreaseSteerGain,negativeCommand:a.DecreaseSteerGain},N={positiveCommand:a.IncreaseSonarRange,negativeCommand:a.DecreaseSonarRange},p={positiveCommand:a.IncreaseSonarGain,negativeCommand:a.DecreaseSonarGain},v={[a.CrawlerDrive]:E,[a.CrawlerSteer]:R,[a.ElevatingArm]:l,[a.Pan]:c,[a.Tilt]:T,[a.Focus]:A,[a.Exposure]:L,[a.Zoom]:S,[a.Thrusters]:_,[a.Yaw]:I,[a.Lateral]:C,[a.Vertical]:g,[a.Grabber]:D,[a.RotateGrabber]:u,[a.TiltPlatform]:d,[a.MainLightBrightness]:m,[a.AuxLightBrightness]:h,[a.SpeedGain]:G,[a.SteerGain]:O,[a.SonarRange]:N,[a.SonarGain]:p},b=5,M="+",f="-",B=" ",H={[a.MainLight]:"Main light on/off",[a.AuxLight]:"Aux Light on/off",[a.ToggleLasers]:"Lasers on/off",[a.IncreaseMainLightBrightness]:"Increase main LED",[a.DecreaseMainLightBrightness]:"Decrease main LED",[a.IncreaseAuxLightBrightness]:"Increase aux LED",[a.DecreaseAuxLightBrightness]:"Decrease aux LED",[a.CruiseControl]:"CC/Retrieval",[a.ReelReset]:"Reel Reset [Hold]",[a.SwitchCamera]:"Camera Switch",[a.ThrusterForward]:"Thruster Forward",[a.ThrusterReverse]:"Thruster Reverse",[a.YawLeft]:"Yaw left",[a.YawRight]:"Yaw right",[a.LateralLeft]:"Lateral left",[a.LateralRight]:"Lateral right",[a.VerticalDown]:"Vertical down",[a.VerticalUp]:"Vertical up",[a.DisableMotors]:"Disable motors",[a.IncreaseSpeedGain]:"Increase speed gain",[a.DecreaseSpeedGain]:"Decrease speed gain",[a.IncreaseSteerGain]:"Increase steer gain",[a.DecreaseSteerGain]:"Decrease steer gain",[a.DepthLock]:"Depth lock",[a.AltitudeLock]:"Altitude lock",[a.HeadingLock]:"Heading lock",[a.PitchLock]:"Pitch lock",[a.AutoStabilization]:"Auto stabilization on/off",[a.StationHolding]:"Station holding on/off",[a.DistanceLock]:"Distance lock",[a.PrecisionThrusters]:"Precision thrusters on/off",[a.TiltUp]:"Camera Tilt Up",[a.TiltDown]:"Camera Tilt Down",[a.ZoomIn]:"Zoom In",[a.ZoomOut]:"Zoom Out",[a.CameraHome]:"Camera Home",[a.Record]:"Record",[a.Screenshot]:"Snapshot",[a.IncreaseSonarRange]:"Increase sonar range",[a.DecreaseSonarRange]:"Decrease sonar range",[a.IncreaseSonarGain]:"Increase sonar gain",[a.DecreaseSonarGain]:"Decrease sonar gain",[a.ChangeSonarFrequency]:"Change sonar frequency",[a.GrabberOpen]:"Grabber open",[a.GrabberClose]:"Grabber close",[a.GrabberRotateLeft]:"Grabber rotate left",[a.GrabberRotateRight]:"Grabber rotate right",[a.TiltPlatformUp]:"Tilt platform up",[a.TiltPlatformDown]:"Tilt platform down",[a.IncreaseFocus]:"Increase Focus",[a.DecreaseFocus]:"Decrease Focus",[a.IncreaseExposure]:"Increase Exposure",[a.DecreaseExposure]:"Decrease Exposure",[a.ReelTetherIn]:"Reel tether in"},P={[e.ThrusterForward]:t.Vehicle,[e.ThrusterReverse]:t.Vehicle,[e.YawLeft]:t.Vehicle,[e.YawRight]:t.Vehicle,[e.LateralLeft]:t.Vehicle,[e.LateralRight]:t.Vehicle,[e.VerticalUp]:t.Vehicle,[e.VerticalDown]:t.Vehicle,[e.DisableMotors]:t.Vehicle,[e.IncreaseSpeedGain]:t.Vehicle,[e.DecreaseSpeedGain]:t.Vehicle,[e.IncreaseSteerGain]:t.Vehicle,[e.DecreaseSteerGain]:t.Vehicle,[e.DepthLock]:t.IntelligentModes,[e.AltitudeLock]:t.IntelligentModes,[e.HeadingLock]:t.IntelligentModes,[e.AutoStabilization]:t.IntelligentModes,[e.MainLight]:t.Lights,[e.AuxLight]:t.Lights,[e.ToggleLasers]:t.Lights,[e.IncreaseMainLightBrightness]:t.Lights,[e.DecreaseMainLightBrightness]:t.Lights,[e.IncreaseAuxLightBrightness]:t.Lights,[e.DecreaseAuxLightBrightness]:t.Lights,[e.TiltUp]:t.Camera,[e.TiltDown]:t.Camera,[e.ZoomIn]:t.Camera,[e.ZoomOut]:t.Camera,[e.CameraHome]:t.Camera,[e.Screenshot]:t.Camera,[e.Record]:t.Camera,[e.IncreaseSonarRange]:t.Sonar,[e.DecreaseSonarRange]:t.Sonar,[e.IncreaseSonarGain]:t.Sonar,[e.DecreaseSonarGain]:t.Sonar,[e.ChangeSonarFrequency]:t.Sonar,[e.GrabberOpen]:t.Tools,[e.GrabberClose]:t.Tools,[e.GrabberRotateLeft]:t.Tools,[e.GrabberRotateRight]:t.Tools,[e.TiltPlatformUp]:t.Tools,[e.TiltPlatformDown]:t.Tools,[e.ReelTetherIn]:t.Miscellaneous},w={[t.Vehicle]:"Thruster controls",[t.Camera]:"Camera controls",[t.Tools]:"Grabber/tools",[t.Grabber]:"Grabber/tools",[t.IntelligentMode]:"Intelligent modes",[t.Reel]:"Miscellaneous",[t.IntelligentModes]:"Intelligent modes",[t.Lights]:"Lights/lasers",[t.Menu]:"Menu Navigation",[t.Miscellaneous]:"Miscellaneous",[t.Sonar]:"Sonar controls"};function V(e,r){var a;const t=(null===(a=document.activeElement)||void 0===a?void 0:a.tagName)||"";if("INPUT"===t||"TEXTAREA"===t)return!1;let n=!0;return e.forEach((e=>{r[e]||(n=!1)})),n}function U(e,r,a){let t=0;return a.forEach((a=>{a&&a.id===e&&(t=a.axes[r])})),Math.round(100*t)}function F(e,r,a){let t=!1;return a.forEach((a=>{a&&a.id===e&&(t=a.buttons[r].pressed)})),t}function x(e,r,a,t){var o;if(!e)return!1;const{input_type:i,input_key:s,controller_id:E}=e;if(!E&&i!==n.KeyboardKey)return!1;switch(i){case n.KeyboardKey:return V(s.split(M),a);case n.JoystickAxis:const e=s.includes(B)?+s.substring(0,s.indexOf(B)):+s,i=U(E,e,r),R=(null===(o=t[E])||void 0===o?void 0:o[e])||5;return s.includes(M)?i>R:!!s.includes("-")&&i<-1*R;case n.JoystickButton:return F(E,+s,r);default:return!1}}function k(e,r,a,t){var o,i;if(!e)return 0;const{input_type:s,input_key:E,controller_id:R}=e;if(!R&&s!==n.KeyboardKey)return 0;switch(s){case n.KeyboardKey:return V(E.split("+"),a)?100:0;case n.JoystickAxis:const e=E.indexOf(B)>-1?+E.substring(0,E.indexOf(B)):+E,s=U(R,e,r),l=null!==(i=null===(o=t[R])||void 0===o?void 0:o[e])&&void 0!==i?i:5;return E.includes(M)?s>=l?y(s,l):0:E.includes("-")?s<=-1*l?y(Math.abs(s),l):0:s;case n.JoystickButton:return F(R,+E,r)?100:0;default:return 0}}const y=(e,r)=>Math.floor((e-r)/(100-r)*100);function K(e){const r={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const a=e.id;r[a]=(r[a]||0)+1;const t=r[a]>1?`${a} (${r[a]})`:a;return new Proxy(e,{get:(e,r)=>"id"===r?t:Reflect.get(e,r)})}))}const W={},Y=(e,r)=>W[e]=r,Z=(e,r={},a={})=>{const t=K(navigator.getGamepads());Object.entries(r).forEach((([r,o])=>{const i=r,s=v[i];let E=[];if(Object.keys(e).forEach((r=>{var R,l,c,T;const A=e[r];if(s){const{positiveCommand:e,negativeCommand:r}=s,o=(k(null!==(R=A[e])&&void 0!==R?R:{},t,W,a)||0)-(k(null!==(l=A[r])&&void 0!==l?l:{},t,W,a)||0),i=(null===(c=A[e])||void 0===c?void 0:c.input_type)===n.JoystickAxis||(null===(T=A[r])||void 0===T?void 0:T.input_type)===n.JoystickAxis;(0!==o||i)&&E.push({value:o,inputType:i?n.JoystickAxis:void 0})}else null==o||o.forEach((e=>{var n,o;e(x(null!==(n=A[i])&&void 0!==n?n:{},t,W,a),r,null===(o=A[i])||void 0===o?void 0:o.input_type)}))})),s)if(E.length>0){const e=E.reduce(((e,r)=>e+r.value),0)/E.length,r=E[0].inputType;null==o||o.forEach((a=>a(e,void 0,r)))}else null==o||o.forEach((e=>e(0)))}))};export{v as COMBINED_COMMANDS,i as COMMON_DEFAULT_CONTROLLER_NAMES,t as ControlType,r as CrawlerControl,b as DEFAULT_DEAD_ZONE,o as DefaultControllerId,w as INPUT_CATEGORIES_LABELS,P as INPUT_MAP_SECTIONS,n as InputType,f as NEGATIVE_COMMAND_INDICATOR,M as POSITIVE_COMMAND_INDICATOR,s as RATE_COMMANDS,e as RovControl,B as SPACE_BETWEEN_INDEX_AND_INDICATOR,a as VehicleControl,K as assignUniqueIds,V as checkKeyPress,x as decodeBooleanMapping,k as decodeRateMapping,U as getAxisValue,F as getButtonValue,Z as poll,H as readableMappingROV,Y as updateKeysPressed};
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e,o,r,t,n,l;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RovControl=void 0,(e=exports.RovControl||(exports.RovControl={})).ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.DisableMotors="DISABLE_MOTORS",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN",exports.CrawlerControl=void 0,(o=exports.CrawlerControl||(exports.CrawlerControl={})).MainLight="MAIN_LIGHT",o.AuxLight="AUX_LIGHT",o.ZoomIn="ZOOM_IN",o.ElevatingArmDescend="ELEVATING_ARM_DESCEND",o.ZoomOut="ZOOM_OUT",o.ElevatingArmAscend="ELEVATING_ARM_ASCEND",o.CruiseControl="CRUISE_CONTROL",o.ReelReset="REEL_RESET",o.SwitchCamera="SWITCH_CAMERA",o.CameraHome="CAMERA_HOME",o.Record="RECORD",o.Screenshot="SCREENSHOT",o.CrawlerLeft="CRAWLER_LEFT",o.CrawlerRight="CRAWLER_RIGHT",o.CrawlerForward="CRAWLER_FORWARD",o.CrawlerReverse="CRAWLER_REVERSE",o.PanLeft="PAN_LEFT",o.PanRight="PAN_RIGHT",o.TiltUp="TILT_UP",o.TiltDown="TILT_DOWN",o.IncreaseFocus="FOCUS_INCREASE",o.DecreaseFocus="FOCUS_DECREASE",o.IncreaseExposure="EXPOSURE_INCREASE",o.DecreaseExposure="DECREASE_EXPOSURE",o.ToggleLasers="TOGGLE_LASERS",o.DisableMotors="DISABLE_MOTORS",exports.VehicleControl=void 0,(r=exports.VehicleControl||(exports.VehicleControl={})).ThrusterForward="THRUSTER_FORWARD",r.ThrusterReverse="THRUSTER_REVERSE",r.Thrusters="THRUSTER",r.YawLeft="YAW_LEFT",r.YawRight="YAW_RIGHT",r.Yaw="YAW",r.LateralLeft="LATERAL_LEFT",r.LateralRight="LATERAL_RIGHT",r.Lateral="LATERAL",r.VerticalUp="VERTICAL_UP",r.VerticalDown="VERTICAL_DOWN",r.Vertical="VERTICAL",r.DisableMotors="DISABLE_MOTORS",r.DepthLock="DEPTH_LOCK",r.AltitudeLock="ALTITUDE_LOCK",r.HeadingLock="HEADING_LOCK",r.PitchLock="PITCH_LOCK",r.AutoStabilization="AUTO_STABILIZATION",r.StationHolding="STATION_HOLDING",r.PrecisionThrusters="PRECISION_THRUSTERS",r.GrabberOpen="GRABBER_OPEN",r.GrabberClose="GRABBER_CLOSE",r.Grabber="GRABBER",r.GrabberRotateLeft="GRABBER_ROTATE_LEFT",r.GrabberRotateRight="GRABBER_ROTATE_RIGHT",r.TiltPlatform="TILT_PLATFORM",r.TiltPlatformUp="TILT_PLATFORM_UP",r.TiltPlatformDown="TILT_PLATFORM_DOWN",r.RotateGrabber="ROTATE_GRABBER",r.IncreaseSonarRange="INCREASE_SONAR_RANGE",r.DecreaseSonarRange="DECREASE_SONAR_RANGE",r.SonarRange="SONAR_RANGE",r.IncreaseSonarGain="INCREASE_SONAR_GAIN",r.DecreaseSonarGain="DECREASE_SONAR_GAIN",r.SonarGain="SONAR_GAIN",r.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",r.MainLight="MAIN_LIGHT",r.AuxLight="AUX_LIGHT",r.Zoom="ZOOM",r.ZoomIn="ZOOM_IN",r.ZoomOut="ZOOM_OUT",r.ElevatingArm="ELEVATING_ARM",r.ElevatingArmDescend="ELEVATING_ARM_DESCEND",r.ElevatingArmAscend="ELEVATING_ARM_ASCEND",r.CruiseControl="CRUISE_CONTROL",r.ReelReset="REEL_RESET",r.SwitchCamera="SWITCH_CAMERA",r.CameraHome="CAMERA_HOME",r.Record="RECORD",r.Screenshot="SCREENSHOT",r.CrawlerSteer="CRAWLER_STEER",r.CrawlerLeft="CRAWLER_LEFT",r.CrawlerRight="CRAWLER_RIGHT",r.CrawlerDrive="CRAWLER_DRIVE",r.CrawlerForward="CRAWLER_FORWARD",r.CrawlerReverse="CRAWLER_REVERSE",r.Pan="PAN",r.PanLeft="PAN_LEFT",r.PanRight="PAN_RIGHT",r.Tilt="TILT",r.TiltUp="TILT_UP",r.TiltDown="TILT_DOWN",r.Focus="FOCUS",r.IncreaseFocus="FOCUS_INCREASE",r.DecreaseFocus="FOCUS_DECREASE",r.Exposure="EXPOSURE",r.IncreaseExposure="EXPOSURE_INCREASE",r.DecreaseExposure="DECREASE_EXPOSURE",r.ToggleLasers="TOGGLE_LASERS",r.ReelTetherIn="REEL_TETHER_IN",r.SpeedGain="SPEED_GAIN",r.IncreaseSpeedGain="INCREASE_SPEED_GAIN",r.DecreaseSpeedGain="DECREASE_SPEED_GAIN",r.SteerGain="STEER_GAIN",r.IncreaseSteerGain="INCREASE_STEER_GAIN",r.DecreaseSteerGain="DECREASE_STEER_GAIN",r.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",r.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",r.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",r.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",r.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",r.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",exports.ControlType=void 0,(t=exports.ControlType||(exports.ControlType={})).Vehicle="VEHICLE",t.Camera="CAMERA",t.Reel="REEL",t.Lights="LIGHTS",t.IntelligentModes="INTELLIGENT_MODES",t.IntelligentMode="INTELLIGENT_MODE",t.Tools="TOOLS",t.Grabber="GRABBER",t.Sonar="SONAR",t.Menu="MENU",t.Miscellaneous="MISCELLANEOUS",exports.InputType=void 0,(n=exports.InputType||(exports.InputType={})).JoystickAxis="AXIS",n.JoystickButton="BUTTON",n.KeyboardKey="KEY",exports.DefaultControllerId=void 0,(l=exports.DefaultControllerId||(exports.DefaultControllerId={})).TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",l.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",l.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",l.KEYBOARD_ID="KEYBOARD",l.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",l.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",l.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",l.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",l.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",l.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)";const s={[exports.DefaultControllerId.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[exports.DefaultControllerId.KEYBOARD_ID]:"Keyboard",[exports.DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[exports.DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_ID]:"Gamepad",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[exports.DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[exports.DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[exports.DefaultControllerId.CONSOLE_CONTROLLER]:"Deep Trekker Console",[exports.DefaultControllerId.FLIGHT_JOYSTICK]:"Flight joystick"},a={[exports.VehicleControl.CrawlerLeft]:!0,[exports.VehicleControl.CrawlerRight]:!0,[exports.VehicleControl.CrawlerForward]:!0,[exports.VehicleControl.CrawlerReverse]:!0,[exports.VehicleControl.TiltDown]:!0,[exports.VehicleControl.TiltUp]:!0,[exports.VehicleControl.PanLeft]:!0,[exports.VehicleControl.PanRight]:!0},i={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},c={positiveCommand:exports.VehicleControl.PanRight,negativeCommand:exports.VehicleControl.PanLeft},R={positiveCommand:exports.VehicleControl.TiltUp,negativeCommand:exports.VehicleControl.TiltDown},E={positiveCommand:exports.VehicleControl.IncreaseFocus,negativeCommand:exports.VehicleControl.DecreaseFocus},T={positiveCommand:exports.VehicleControl.IncreaseExposure,negativeCommand:exports.VehicleControl.DecreaseExposure},x={positiveCommand:exports.VehicleControl.ZoomIn,negativeCommand:exports.VehicleControl.ZoomOut},h={positiveCommand:exports.VehicleControl.ThrusterForward,negativeCommand:exports.VehicleControl.ThrusterReverse},A={positiveCommand:exports.VehicleControl.YawRight,negativeCommand:exports.VehicleControl.YawLeft},I={positiveCommand:exports.VehicleControl.LateralRight,negativeCommand:exports.VehicleControl.LateralLeft},L={positiveCommand:exports.VehicleControl.VerticalUp,negativeCommand:exports.VehicleControl.VerticalDown},_={positiveCommand:exports.VehicleControl.GrabberOpen,negativeCommand:exports.VehicleControl.GrabberClose},S={positiveCommand:exports.VehicleControl.GrabberRotateRight,negativeCommand:exports.VehicleControl.GrabberRotateLeft},u={positiveCommand:exports.VehicleControl.TiltPlatformUp,negativeCommand:exports.VehicleControl.TiltPlatformDown},d={positiveCommand:exports.VehicleControl.IncreaseMainLightBrightness,negativeCommand:exports.VehicleControl.DecreaseMainLightBrightness},D={positiveCommand:exports.VehicleControl.IncreaseAuxLightBrightness,negativeCommand:exports.VehicleControl.DecreaseAuxLightBrightness},V={positiveCommand:exports.VehicleControl.IncreaseSpeedGain,negativeCommand:exports.VehicleControl.DecreaseSpeedGain},g={positiveCommand:exports.VehicleControl.IncreaseSteerGain,negativeCommand:exports.VehicleControl.DecreaseSteerGain},O={positiveCommand:exports.VehicleControl.IncreaseSonarRange,negativeCommand:exports.VehicleControl.DecreaseSonarRange},m={positiveCommand:exports.VehicleControl.IncreaseSonarGain,negativeCommand:exports.VehicleControl.DecreaseSonarGain},G={[exports.VehicleControl.CrawlerDrive]:i,[exports.VehicleControl.CrawlerSteer]:p,[exports.VehicleControl.ElevatingArm]:C,[exports.VehicleControl.Pan]:c,[exports.VehicleControl.Tilt]:R,[exports.VehicleControl.Focus]:E,[exports.VehicleControl.Exposure]:T,[exports.VehicleControl.Zoom]:x,[exports.VehicleControl.Thrusters]:h,[exports.VehicleControl.Yaw]:A,[exports.VehicleControl.Lateral]:I,[exports.VehicleControl.Vertical]:L,[exports.VehicleControl.Grabber]:_,[exports.VehicleControl.RotateGrabber]:S,[exports.VehicleControl.TiltPlatform]:u,[exports.VehicleControl.MainLightBrightness]:d,[exports.VehicleControl.AuxLightBrightness]:D,[exports.VehicleControl.SpeedGain]:V,[exports.VehicleControl.SteerGain]:g,[exports.VehicleControl.SonarRange]:O,[exports.VehicleControl.SonarGain]:m},N="+",v=" ",y={[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.ReelReset]:"Reel Reset [Hold]",[exports.VehicleControl.SwitchCamera]:"Camera Switch",[exports.VehicleControl.ThrusterForward]:"Thruster Forward",[exports.VehicleControl.ThrusterReverse]:"Thruster Reverse",[exports.VehicleControl.YawLeft]:"Yaw left",[exports.VehicleControl.YawRight]:"Yaw right",[exports.VehicleControl.LateralLeft]:"Lateral left",[exports.VehicleControl.LateralRight]:"Lateral right",[exports.VehicleControl.VerticalDown]:"Vertical down",[exports.VehicleControl.VerticalUp]:"Vertical up",[exports.VehicleControl.DisableMotors]:"Disable motors",[exports.VehicleControl.IncreaseSpeedGain]:"Increase speed gain",[exports.VehicleControl.DecreaseSpeedGain]:"Decrease speed gain",[exports.VehicleControl.IncreaseSteerGain]:"Increase steer gain",[exports.VehicleControl.DecreaseSteerGain]:"Decrease steer gain",[exports.VehicleControl.DepthLock]:"Depth lock",[exports.VehicleControl.AltitudeLock]:"Altitude lock",[exports.VehicleControl.HeadingLock]:"Heading lock",[exports.VehicleControl.PitchLock]:"Pitch lock",[exports.VehicleControl.AutoStabilization]:"Auto stabilization on/off",[exports.VehicleControl.StationHolding]:"Station holding on/off",[exports.VehicleControl.PrecisionThrusters]:"Precision thrusters on/off",[exports.VehicleControl.TiltUp]:"Camera Tilt Up",[exports.VehicleControl.TiltDown]:"Camera Tilt Down",[exports.VehicleControl.ZoomIn]:"Zoom In",[exports.VehicleControl.ZoomOut]:"Zoom Out",[exports.VehicleControl.CameraHome]:"Camera Home",[exports.VehicleControl.Record]:"Record",[exports.VehicleControl.Screenshot]:"Snapshot",[exports.VehicleControl.IncreaseSonarRange]:"Increase sonar range",[exports.VehicleControl.DecreaseSonarRange]:"Decrease sonar range",[exports.VehicleControl.IncreaseSonarGain]:"Increase sonar gain",[exports.VehicleControl.DecreaseSonarGain]:"Decrease sonar gain",[exports.VehicleControl.ChangeSonarFrequency]:"Change sonar frequency",[exports.VehicleControl.GrabberOpen]:"Grabber open",[exports.VehicleControl.GrabberClose]:"Grabber close",[exports.VehicleControl.GrabberRotateLeft]:"Grabber rotate left",[exports.VehicleControl.GrabberRotateRight]:"Grabber rotate right",[exports.VehicleControl.TiltPlatformUp]:"Tilt platform up",[exports.VehicleControl.TiltPlatformDown]:"Tilt platform down",[exports.VehicleControl.IncreaseFocus]:"Increase Focus",[exports.VehicleControl.DecreaseFocus]:"Decrease Focus",[exports.VehicleControl.IncreaseExposure]:"Increase Exposure",[exports.VehicleControl.DecreaseExposure]:"Decrease Exposure",[exports.VehicleControl.ReelTetherIn]:"Reel tether in"},M={[exports.RovControl.ThrusterForward]:exports.ControlType.Vehicle,[exports.RovControl.ThrusterReverse]:exports.ControlType.Vehicle,[exports.RovControl.YawLeft]:exports.ControlType.Vehicle,[exports.RovControl.YawRight]:exports.ControlType.Vehicle,[exports.RovControl.LateralLeft]:exports.ControlType.Vehicle,[exports.RovControl.LateralRight]:exports.ControlType.Vehicle,[exports.RovControl.VerticalUp]:exports.ControlType.Vehicle,[exports.RovControl.VerticalDown]:exports.ControlType.Vehicle,[exports.RovControl.DisableMotors]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DepthLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AltitudeLock]:exports.ControlType.IntelligentModes,[exports.RovControl.HeadingLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AutoStabilization]:exports.ControlType.IntelligentModes,[exports.RovControl.MainLight]:exports.ControlType.Lights,[exports.RovControl.AuxLight]:exports.ControlType.Lights,[exports.RovControl.ToggleLasers]:exports.ControlType.Lights,[exports.RovControl.IncreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.IncreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.TiltUp]:exports.ControlType.Camera,[exports.RovControl.TiltDown]:exports.ControlType.Camera,[exports.RovControl.ZoomIn]:exports.ControlType.Camera,[exports.RovControl.ZoomOut]:exports.ControlType.Camera,[exports.RovControl.CameraHome]:exports.ControlType.Camera,[exports.RovControl.Screenshot]:exports.ControlType.Camera,[exports.RovControl.Record]:exports.ControlType.Camera,[exports.RovControl.IncreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.IncreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.ChangeSonarFrequency]:exports.ControlType.Sonar,[exports.RovControl.GrabberOpen]:exports.ControlType.Tools,[exports.RovControl.GrabberClose]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateLeft]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateRight]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformUp]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformDown]:exports.ControlType.Tools,[exports.RovControl.ReelTetherIn]:exports.ControlType.Miscellaneous},f={[exports.ControlType.Vehicle]:"Thruster controls",[exports.ControlType.Camera]:"Camera controls",[exports.ControlType.Tools]:"Grabber/tools",[exports.ControlType.Grabber]:"Grabber/tools",[exports.ControlType.IntelligentMode]:"Intelligent modes",[exports.ControlType.Reel]:"Miscellaneous",[exports.ControlType.IntelligentModes]:"Intelligent modes",[exports.ControlType.Lights]:"Lights/lasers",[exports.ControlType.Menu]:"Menu Navigation",[exports.ControlType.Miscellaneous]:"Miscellaneous",[exports.ControlType.Sonar]:"Sonar controls"};function b(e,o){var r;const t=(null===(r=document.activeElement)||void 0===r?void 0:r.tagName)||"";if("INPUT"===t||"TEXTAREA"===t)return!1;let n=!0;return e.forEach((e=>{o[e]||(n=!1)})),n}function B(e,o,r){let t=0;return r.forEach((r=>{r&&r.id===e&&(t=r.axes[o])})),Math.round(100*t)}function P(e,o,r){let t=!1;return r.forEach((r=>{r&&r.id===e&&(t=r.buttons[o].pressed)})),t}function H(e,o,r,t){var n;if(!e)return!1;const{input_type:l,input_key:s,controller_id:a}=e;if(!a&&l!==exports.InputType.KeyboardKey)return!1;switch(l){case exports.InputType.KeyboardKey:return b(s.split(N),r);case exports.InputType.JoystickAxis:const e=s.includes(v)?+s.substring(0,s.indexOf(v)):+s,l=B(a,e,o),i=(null===(n=t[a])||void 0===n?void 0:n[e])||5;return s.includes(N)?l>i:!!s.includes("-")&&l<-1*i;case exports.InputType.JoystickButton:return P(a,+s,o);default:return!1}}function w(e,o,r,t){var n,l;if(!e)return 0;const{input_type:s,input_key:a,controller_id:i}=e;if(!i&&s!==exports.InputType.KeyboardKey)return 0;switch(s){case exports.InputType.KeyboardKey:return b(a.split("+"),r)?100:0;case exports.InputType.JoystickAxis:const e=a.indexOf(v)>-1?+a.substring(0,a.indexOf(v)):+a,s=B(i,e,o),p=null!==(l=null===(n=t[i])||void 0===n?void 0:n[e])&&void 0!==l?l:5;return a.includes(N)?s>=p?U(s,p):0:a.includes("-")?s<=-1*p?U(Math.abs(s),p):0:s;case exports.InputType.JoystickButton:return P(i,+a,o)?100:0;default:return 0}}const U=(e,o)=>Math.floor((e-o)/(100-o)*100);function F(e){const o={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const r=e.id;o[r]=(o[r]||0)+1;const t=o[r]>1?`${r} (${o[r]})`:r;return new Proxy(e,{get:(e,o)=>"id"===o?t:Reflect.get(e,o)})}))}const k={};exports.COMBINED_COMMANDS=G,exports.COMMON_DEFAULT_CONTROLLER_NAMES=s,exports.DEFAULT_DEAD_ZONE=5,exports.INPUT_CATEGORIES_LABELS=f,exports.INPUT_MAP_SECTIONS=M,exports.NEGATIVE_COMMAND_INDICATOR="-",exports.POSITIVE_COMMAND_INDICATOR=N,exports.RATE_COMMANDS=a,exports.SPACE_BETWEEN_INDEX_AND_INDICATOR=v,exports.assignUniqueIds=F,exports.checkKeyPress=b,exports.decodeBooleanMapping=H,exports.decodeRateMapping=w,exports.getAxisValue=B,exports.getButtonValue=P,exports.poll=(e,o={},r={})=>{const t=F(navigator.getGamepads());Object.entries(o).forEach((([o,n])=>{const l=o,s=G[l];let a=[];if(Object.keys(e).forEach((o=>{var i,p,C,c;const R=e[o];if(s){const{positiveCommand:e,negativeCommand:o}=s,n=(w(null!==(i=R[e])&&void 0!==i?i:{},t,k,r)||0)-(w(null!==(p=R[o])&&void 0!==p?p:{},t,k,r)||0),l=(null===(C=R[e])||void 0===C?void 0:C.input_type)===exports.InputType.JoystickAxis||(null===(c=R[o])||void 0===c?void 0:c.input_type)===exports.InputType.JoystickAxis;(0!==n||l)&&a.push({value:n,inputType:l?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,s;e(H(null!==(n=R[l])&&void 0!==n?n:{},t,k,r),o,null===(s=R[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((r=>r(e,void 0,o)))}else null==n||n.forEach((e=>e(0)))}))},exports.readableMappingROV=y,exports.updateKeysPressed=(e,o)=>k[e]=o;
1
+ "use strict";var e,o,r,t,n,l;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RovControl=void 0,(e=exports.RovControl||(exports.RovControl={})).ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.VerticalUp="VERTICAL_UP",e.VerticalDown="VERTICAL_DOWN",e.DisableMotors="DISABLE_MOTORS",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DepthLock="DEPTH_LOCK",e.AltitudeLock="ALTITUDE_LOCK",e.HeadingLock="HEADING_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN",exports.CrawlerControl=void 0,(o=exports.CrawlerControl||(exports.CrawlerControl={})).MainLight="MAIN_LIGHT",o.AuxLight="AUX_LIGHT",o.ZoomIn="ZOOM_IN",o.ElevatingArmDescend="ELEVATING_ARM_DESCEND",o.ZoomOut="ZOOM_OUT",o.ElevatingArmAscend="ELEVATING_ARM_ASCEND",o.CruiseControl="CRUISE_CONTROL",o.ReelReset="REEL_RESET",o.SwitchCamera="SWITCH_CAMERA",o.CameraHome="CAMERA_HOME",o.Record="RECORD",o.Screenshot="SCREENSHOT",o.CrawlerLeft="CRAWLER_LEFT",o.CrawlerRight="CRAWLER_RIGHT",o.CrawlerForward="CRAWLER_FORWARD",o.CrawlerReverse="CRAWLER_REVERSE",o.PanLeft="PAN_LEFT",o.PanRight="PAN_RIGHT",o.TiltUp="TILT_UP",o.TiltDown="TILT_DOWN",o.IncreaseFocus="FOCUS_INCREASE",o.DecreaseFocus="FOCUS_DECREASE",o.IncreaseExposure="EXPOSURE_INCREASE",o.DecreaseExposure="DECREASE_EXPOSURE",o.ToggleLasers="TOGGLE_LASERS",o.DisableMotors="DISABLE_MOTORS",exports.VehicleControl=void 0,(r=exports.VehicleControl||(exports.VehicleControl={})).ThrusterForward="THRUSTER_FORWARD",r.ThrusterReverse="THRUSTER_REVERSE",r.Thrusters="THRUSTER",r.YawLeft="YAW_LEFT",r.YawRight="YAW_RIGHT",r.Yaw="YAW",r.LateralLeft="LATERAL_LEFT",r.LateralRight="LATERAL_RIGHT",r.Lateral="LATERAL",r.VerticalUp="VERTICAL_UP",r.VerticalDown="VERTICAL_DOWN",r.Vertical="VERTICAL",r.DisableMotors="DISABLE_MOTORS",r.DepthLock="DEPTH_LOCK",r.AltitudeLock="ALTITUDE_LOCK",r.HeadingLock="HEADING_LOCK",r.PitchLock="PITCH_LOCK",r.AutoStabilization="AUTO_STABILIZATION",r.StationHolding="STATION_HOLDING",r.DistanceLock="DISTANCE_LOCK",r.PrecisionThrusters="PRECISION_THRUSTERS",r.GrabberOpen="GRABBER_OPEN",r.GrabberClose="GRABBER_CLOSE",r.Grabber="GRABBER",r.GrabberRotateLeft="GRABBER_ROTATE_LEFT",r.GrabberRotateRight="GRABBER_ROTATE_RIGHT",r.TiltPlatform="TILT_PLATFORM",r.TiltPlatformUp="TILT_PLATFORM_UP",r.TiltPlatformDown="TILT_PLATFORM_DOWN",r.RotateGrabber="ROTATE_GRABBER",r.IncreaseSonarRange="INCREASE_SONAR_RANGE",r.DecreaseSonarRange="DECREASE_SONAR_RANGE",r.SonarRange="SONAR_RANGE",r.IncreaseSonarGain="INCREASE_SONAR_GAIN",r.DecreaseSonarGain="DECREASE_SONAR_GAIN",r.SonarGain="SONAR_GAIN",r.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",r.MainLight="MAIN_LIGHT",r.AuxLight="AUX_LIGHT",r.Zoom="ZOOM",r.ZoomIn="ZOOM_IN",r.ZoomOut="ZOOM_OUT",r.ElevatingArm="ELEVATING_ARM",r.ElevatingArmDescend="ELEVATING_ARM_DESCEND",r.ElevatingArmAscend="ELEVATING_ARM_ASCEND",r.CruiseControl="CRUISE_CONTROL",r.ReelReset="REEL_RESET",r.SwitchCamera="SWITCH_CAMERA",r.CameraHome="CAMERA_HOME",r.Record="RECORD",r.Screenshot="SCREENSHOT",r.CrawlerSteer="CRAWLER_STEER",r.CrawlerLeft="CRAWLER_LEFT",r.CrawlerRight="CRAWLER_RIGHT",r.CrawlerDrive="CRAWLER_DRIVE",r.CrawlerForward="CRAWLER_FORWARD",r.CrawlerReverse="CRAWLER_REVERSE",r.Pan="PAN",r.PanLeft="PAN_LEFT",r.PanRight="PAN_RIGHT",r.Tilt="TILT",r.TiltUp="TILT_UP",r.TiltDown="TILT_DOWN",r.Focus="FOCUS",r.IncreaseFocus="FOCUS_INCREASE",r.DecreaseFocus="FOCUS_DECREASE",r.Exposure="EXPOSURE",r.IncreaseExposure="EXPOSURE_INCREASE",r.DecreaseExposure="DECREASE_EXPOSURE",r.ToggleLasers="TOGGLE_LASERS",r.ReelTetherIn="REEL_TETHER_IN",r.SpeedGain="SPEED_GAIN",r.IncreaseSpeedGain="INCREASE_SPEED_GAIN",r.DecreaseSpeedGain="DECREASE_SPEED_GAIN",r.SteerGain="STEER_GAIN",r.IncreaseSteerGain="INCREASE_STEER_GAIN",r.DecreaseSteerGain="DECREASE_STEER_GAIN",r.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",r.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",r.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",r.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",r.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",r.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",exports.ControlType=void 0,(t=exports.ControlType||(exports.ControlType={})).Vehicle="VEHICLE",t.Camera="CAMERA",t.Reel="REEL",t.Lights="LIGHTS",t.IntelligentModes="INTELLIGENT_MODES",t.IntelligentMode="INTELLIGENT_MODE",t.Tools="TOOLS",t.Grabber="GRABBER",t.Sonar="SONAR",t.Menu="MENU",t.Miscellaneous="MISCELLANEOUS",exports.InputType=void 0,(n=exports.InputType||(exports.InputType={})).JoystickAxis="AXIS",n.JoystickButton="BUTTON",n.KeyboardKey="KEY",exports.DefaultControllerId=void 0,(l=exports.DefaultControllerId||(exports.DefaultControllerId={})).TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",l.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",l.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",l.KEYBOARD_ID="KEYBOARD",l.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",l.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",l.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",l.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",l.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",l.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)";const s={[exports.DefaultControllerId.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[exports.DefaultControllerId.KEYBOARD_ID]:"Keyboard",[exports.DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[exports.DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_ID]:"Gamepad",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[exports.DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[exports.DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[exports.DefaultControllerId.CONSOLE_CONTROLLER]:"Deep Trekker Console",[exports.DefaultControllerId.FLIGHT_JOYSTICK]:"Flight joystick"},a={[exports.VehicleControl.CrawlerLeft]:!0,[exports.VehicleControl.CrawlerRight]:!0,[exports.VehicleControl.CrawlerForward]:!0,[exports.VehicleControl.CrawlerReverse]:!0,[exports.VehicleControl.TiltDown]:!0,[exports.VehicleControl.TiltUp]:!0,[exports.VehicleControl.PanLeft]:!0,[exports.VehicleControl.PanRight]:!0},i={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},c={positiveCommand:exports.VehicleControl.PanRight,negativeCommand:exports.VehicleControl.PanLeft},R={positiveCommand:exports.VehicleControl.TiltUp,negativeCommand:exports.VehicleControl.TiltDown},E={positiveCommand:exports.VehicleControl.IncreaseFocus,negativeCommand:exports.VehicleControl.DecreaseFocus},T={positiveCommand:exports.VehicleControl.IncreaseExposure,negativeCommand:exports.VehicleControl.DecreaseExposure},x={positiveCommand:exports.VehicleControl.ZoomIn,negativeCommand:exports.VehicleControl.ZoomOut},h={positiveCommand:exports.VehicleControl.ThrusterForward,negativeCommand:exports.VehicleControl.ThrusterReverse},A={positiveCommand:exports.VehicleControl.YawRight,negativeCommand:exports.VehicleControl.YawLeft},I={positiveCommand:exports.VehicleControl.LateralRight,negativeCommand:exports.VehicleControl.LateralLeft},L={positiveCommand:exports.VehicleControl.VerticalUp,negativeCommand:exports.VehicleControl.VerticalDown},_={positiveCommand:exports.VehicleControl.GrabberOpen,negativeCommand:exports.VehicleControl.GrabberClose},S={positiveCommand:exports.VehicleControl.GrabberRotateRight,negativeCommand:exports.VehicleControl.GrabberRotateLeft},u={positiveCommand:exports.VehicleControl.TiltPlatformUp,negativeCommand:exports.VehicleControl.TiltPlatformDown},D={positiveCommand:exports.VehicleControl.IncreaseMainLightBrightness,negativeCommand:exports.VehicleControl.DecreaseMainLightBrightness},d={positiveCommand:exports.VehicleControl.IncreaseAuxLightBrightness,negativeCommand:exports.VehicleControl.DecreaseAuxLightBrightness},V={positiveCommand:exports.VehicleControl.IncreaseSpeedGain,negativeCommand:exports.VehicleControl.DecreaseSpeedGain},g={positiveCommand:exports.VehicleControl.IncreaseSteerGain,negativeCommand:exports.VehicleControl.DecreaseSteerGain},O={positiveCommand:exports.VehicleControl.IncreaseSonarRange,negativeCommand:exports.VehicleControl.DecreaseSonarRange},m={positiveCommand:exports.VehicleControl.IncreaseSonarGain,negativeCommand:exports.VehicleControl.DecreaseSonarGain},G={[exports.VehicleControl.CrawlerDrive]:i,[exports.VehicleControl.CrawlerSteer]:p,[exports.VehicleControl.ElevatingArm]:C,[exports.VehicleControl.Pan]:c,[exports.VehicleControl.Tilt]:R,[exports.VehicleControl.Focus]:E,[exports.VehicleControl.Exposure]:T,[exports.VehicleControl.Zoom]:x,[exports.VehicleControl.Thrusters]:h,[exports.VehicleControl.Yaw]:A,[exports.VehicleControl.Lateral]:I,[exports.VehicleControl.Vertical]:L,[exports.VehicleControl.Grabber]:_,[exports.VehicleControl.RotateGrabber]:S,[exports.VehicleControl.TiltPlatform]:u,[exports.VehicleControl.MainLightBrightness]:D,[exports.VehicleControl.AuxLightBrightness]:d,[exports.VehicleControl.SpeedGain]:V,[exports.VehicleControl.SteerGain]:g,[exports.VehicleControl.SonarRange]:O,[exports.VehicleControl.SonarGain]:m},N="+",v=" ",y={[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.ReelReset]:"Reel Reset [Hold]",[exports.VehicleControl.SwitchCamera]:"Camera Switch",[exports.VehicleControl.ThrusterForward]:"Thruster Forward",[exports.VehicleControl.ThrusterReverse]:"Thruster Reverse",[exports.VehicleControl.YawLeft]:"Yaw left",[exports.VehicleControl.YawRight]:"Yaw right",[exports.VehicleControl.LateralLeft]:"Lateral left",[exports.VehicleControl.LateralRight]:"Lateral right",[exports.VehicleControl.VerticalDown]:"Vertical down",[exports.VehicleControl.VerticalUp]:"Vertical up",[exports.VehicleControl.DisableMotors]:"Disable motors",[exports.VehicleControl.IncreaseSpeedGain]:"Increase speed gain",[exports.VehicleControl.DecreaseSpeedGain]:"Decrease speed gain",[exports.VehicleControl.IncreaseSteerGain]:"Increase steer gain",[exports.VehicleControl.DecreaseSteerGain]:"Decrease steer gain",[exports.VehicleControl.DepthLock]:"Depth lock",[exports.VehicleControl.AltitudeLock]:"Altitude lock",[exports.VehicleControl.HeadingLock]:"Heading lock",[exports.VehicleControl.PitchLock]:"Pitch lock",[exports.VehicleControl.AutoStabilization]:"Auto stabilization on/off",[exports.VehicleControl.StationHolding]:"Station holding on/off",[exports.VehicleControl.DistanceLock]:"Distance lock",[exports.VehicleControl.PrecisionThrusters]:"Precision thrusters on/off",[exports.VehicleControl.TiltUp]:"Camera Tilt Up",[exports.VehicleControl.TiltDown]:"Camera Tilt Down",[exports.VehicleControl.ZoomIn]:"Zoom In",[exports.VehicleControl.ZoomOut]:"Zoom Out",[exports.VehicleControl.CameraHome]:"Camera Home",[exports.VehicleControl.Record]:"Record",[exports.VehicleControl.Screenshot]:"Snapshot",[exports.VehicleControl.IncreaseSonarRange]:"Increase sonar range",[exports.VehicleControl.DecreaseSonarRange]:"Decrease sonar range",[exports.VehicleControl.IncreaseSonarGain]:"Increase sonar gain",[exports.VehicleControl.DecreaseSonarGain]:"Decrease sonar gain",[exports.VehicleControl.ChangeSonarFrequency]:"Change sonar frequency",[exports.VehicleControl.GrabberOpen]:"Grabber open",[exports.VehicleControl.GrabberClose]:"Grabber close",[exports.VehicleControl.GrabberRotateLeft]:"Grabber rotate left",[exports.VehicleControl.GrabberRotateRight]:"Grabber rotate right",[exports.VehicleControl.TiltPlatformUp]:"Tilt platform up",[exports.VehicleControl.TiltPlatformDown]:"Tilt platform down",[exports.VehicleControl.IncreaseFocus]:"Increase Focus",[exports.VehicleControl.DecreaseFocus]:"Decrease Focus",[exports.VehicleControl.IncreaseExposure]:"Increase Exposure",[exports.VehicleControl.DecreaseExposure]:"Decrease Exposure",[exports.VehicleControl.ReelTetherIn]:"Reel tether in"},M={[exports.RovControl.ThrusterForward]:exports.ControlType.Vehicle,[exports.RovControl.ThrusterReverse]:exports.ControlType.Vehicle,[exports.RovControl.YawLeft]:exports.ControlType.Vehicle,[exports.RovControl.YawRight]:exports.ControlType.Vehicle,[exports.RovControl.LateralLeft]:exports.ControlType.Vehicle,[exports.RovControl.LateralRight]:exports.ControlType.Vehicle,[exports.RovControl.VerticalUp]:exports.ControlType.Vehicle,[exports.RovControl.VerticalDown]:exports.ControlType.Vehicle,[exports.RovControl.DisableMotors]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DepthLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AltitudeLock]:exports.ControlType.IntelligentModes,[exports.RovControl.HeadingLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AutoStabilization]:exports.ControlType.IntelligentModes,[exports.RovControl.MainLight]:exports.ControlType.Lights,[exports.RovControl.AuxLight]:exports.ControlType.Lights,[exports.RovControl.ToggleLasers]:exports.ControlType.Lights,[exports.RovControl.IncreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.IncreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.TiltUp]:exports.ControlType.Camera,[exports.RovControl.TiltDown]:exports.ControlType.Camera,[exports.RovControl.ZoomIn]:exports.ControlType.Camera,[exports.RovControl.ZoomOut]:exports.ControlType.Camera,[exports.RovControl.CameraHome]:exports.ControlType.Camera,[exports.RovControl.Screenshot]:exports.ControlType.Camera,[exports.RovControl.Record]:exports.ControlType.Camera,[exports.RovControl.IncreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.IncreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.ChangeSonarFrequency]:exports.ControlType.Sonar,[exports.RovControl.GrabberOpen]:exports.ControlType.Tools,[exports.RovControl.GrabberClose]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateLeft]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateRight]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformUp]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformDown]:exports.ControlType.Tools,[exports.RovControl.ReelTetherIn]:exports.ControlType.Miscellaneous},f={[exports.ControlType.Vehicle]:"Thruster controls",[exports.ControlType.Camera]:"Camera controls",[exports.ControlType.Tools]:"Grabber/tools",[exports.ControlType.Grabber]:"Grabber/tools",[exports.ControlType.IntelligentMode]:"Intelligent modes",[exports.ControlType.Reel]:"Miscellaneous",[exports.ControlType.IntelligentModes]:"Intelligent modes",[exports.ControlType.Lights]:"Lights/lasers",[exports.ControlType.Menu]:"Menu Navigation",[exports.ControlType.Miscellaneous]:"Miscellaneous",[exports.ControlType.Sonar]:"Sonar controls"};function b(e,o){var r;const t=(null===(r=document.activeElement)||void 0===r?void 0:r.tagName)||"";if("INPUT"===t||"TEXTAREA"===t)return!1;let n=!0;return e.forEach((e=>{o[e]||(n=!1)})),n}function B(e,o,r){let t=0;return r.forEach((r=>{r&&r.id===e&&(t=r.axes[o])})),Math.round(100*t)}function P(e,o,r){let t=!1;return r.forEach((r=>{r&&r.id===e&&(t=r.buttons[o].pressed)})),t}function H(e,o,r,t){var n;if(!e)return!1;const{input_type:l,input_key:s,controller_id:a}=e;if(!a&&l!==exports.InputType.KeyboardKey)return!1;switch(l){case exports.InputType.KeyboardKey:return b(s.split(N),r);case exports.InputType.JoystickAxis:const e=s.includes(v)?+s.substring(0,s.indexOf(v)):+s,l=B(a,e,o),i=(null===(n=t[a])||void 0===n?void 0:n[e])||5;return s.includes(N)?l>i:!!s.includes("-")&&l<-1*i;case exports.InputType.JoystickButton:return P(a,+s,o);default:return!1}}function w(e,o,r,t){var n,l;if(!e)return 0;const{input_type:s,input_key:a,controller_id:i}=e;if(!i&&s!==exports.InputType.KeyboardKey)return 0;switch(s){case exports.InputType.KeyboardKey:return b(a.split("+"),r)?100:0;case exports.InputType.JoystickAxis:const e=a.indexOf(v)>-1?+a.substring(0,a.indexOf(v)):+a,s=B(i,e,o),p=null!==(l=null===(n=t[i])||void 0===n?void 0:n[e])&&void 0!==l?l:5;return a.includes(N)?s>=p?U(s,p):0:a.includes("-")?s<=-1*p?U(Math.abs(s),p):0:s;case exports.InputType.JoystickButton:return P(i,+a,o)?100:0;default:return 0}}const U=(e,o)=>Math.floor((e-o)/(100-o)*100);function F(e){const o={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const r=e.id;o[r]=(o[r]||0)+1;const t=o[r]>1?`${r} (${o[r]})`:r;return new Proxy(e,{get:(e,o)=>"id"===o?t:Reflect.get(e,o)})}))}const k={};exports.COMBINED_COMMANDS=G,exports.COMMON_DEFAULT_CONTROLLER_NAMES=s,exports.DEFAULT_DEAD_ZONE=5,exports.INPUT_CATEGORIES_LABELS=f,exports.INPUT_MAP_SECTIONS=M,exports.NEGATIVE_COMMAND_INDICATOR="-",exports.POSITIVE_COMMAND_INDICATOR=N,exports.RATE_COMMANDS=a,exports.SPACE_BETWEEN_INDEX_AND_INDICATOR=v,exports.assignUniqueIds=F,exports.checkKeyPress=b,exports.decodeBooleanMapping=H,exports.decodeRateMapping=w,exports.getAxisValue=B,exports.getButtonValue=P,exports.poll=(e,o={},r={})=>{const t=F(navigator.getGamepads());Object.entries(o).forEach((([o,n])=>{const l=o,s=G[l];let a=[];if(Object.keys(e).forEach((o=>{var i,p,C,c;const R=e[o];if(s){const{positiveCommand:e,negativeCommand:o}=s,n=(w(null!==(i=R[e])&&void 0!==i?i:{},t,k,r)||0)-(w(null!==(p=R[o])&&void 0!==p?p:{},t,k,r)||0),l=(null===(C=R[e])||void 0===C?void 0:C.input_type)===exports.InputType.JoystickAxis||(null===(c=R[o])||void 0===c?void 0:c.input_type)===exports.InputType.JoystickAxis;(0!==n||l)&&a.push({value:n,inputType:l?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,s;e(H(null!==(n=R[l])&&void 0!==n?n:{},t,k,r),o,null===(s=R[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((r=>r(e,void 0,o)))}else null==n||n.forEach((e=>e(0)))}))},exports.readableMappingROV=y,exports.updateKeysPressed=(e,o)=>k[e]=o;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types/inputMapping/index.ts","../src/types/index.ts","../src/constants/index.ts","../src/utils/gamepadHelper/index.ts","../src/lib/index.ts"],"sourcesContent":["/**\n * ROV Controls\n */\nexport enum RovControl {\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n VerticalUp = \"VERTICAL_UP\",\n VerticalDown = \"VERTICAL_DOWN\",\n DisableMotors = \"DISABLE_MOTORS\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n AltitudeLock = \"ALTITUDE_LOCK\",\n HeadingLock = \"HEADING_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n ToggleLasers = \"TOGGLE_LASERS\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n CameraHome = \"CAMERA_HOME\",\n Screenshot = \"SCREENSHOT\",\n Record = \"RECORD\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n}\n\n/**\n * Crawler Controls\n */\nexport enum CrawlerControl {\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n ZoomIn = \"ZOOM_IN\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n ZoomOut = \"ZOOM_OUT\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n CruiseControl = \"CRUISE_CONTROL\",\n ReelReset = \"REEL_RESET\",\n SwitchCamera = \"SWITCH_CAMERA\",\n CameraHome = \"CAMERA_HOME\",\n Record = \"RECORD\",\n Screenshot = \"SCREENSHOT\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n ToggleLasers = \"TOGGLE_LASERS\",\n DisableMotors = \"DISABLE_MOTORS\",\n}\n\n/**\n * All Vehicle Controls\n */\nexport enum VehicleControl {\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n Thrusters = \"THRUSTER\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n Yaw = \"YAW\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n Lateral = \"LATERAL\",\n VerticalUp = \"VERTICAL_UP\",\n VerticalDown = \"VERTICAL_DOWN\",\n Vertical = \"VERTICAL\",\n DisableMotors = \"DISABLE_MOTORS\",\n DepthLock = \"DEPTH_LOCK\",\n AltitudeLock = \"ALTITUDE_LOCK\",\n HeadingLock = \"HEADING_LOCK\",\n PitchLock = \"PITCH_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n StationHolding = \"STATION_HOLDING\",\n PrecisionThrusters = \"PRECISION_THRUSTERS\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberClose = \"GRABBER_CLOSE\",\n Grabber = \"GRABBER\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n TiltPlatform = \"TILT_PLATFORM\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n RotateGrabber = \"ROTATE_GRABBER\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n SonarRange = \"SONAR_RANGE\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n SonarGain = \"SONAR_GAIN\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n Zoom = \"ZOOM\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n ElevatingArm = \"ELEVATING_ARM\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n CruiseControl = \"CRUISE_CONTROL\",\n ReelReset = \"REEL_RESET\",\n SwitchCamera = \"SWITCH_CAMERA\",\n CameraHome = \"CAMERA_HOME\",\n Record = \"RECORD\",\n Screenshot = \"SCREENSHOT\",\n CrawlerSteer = \"CRAWLER_STEER\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerDrive = \"CRAWLER_DRIVE\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n Pan = \"PAN\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Tilt = \"TILT\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n Focus = \"FOCUS\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n Exposure = \"EXPOSURE\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n ToggleLasers = \"TOGGLE_LASERS\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n SpeedGain = \"SPEED_GAIN\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n SteerGain = \"STEER_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n AuxLightBrightness = \"AUX_LIGHT_BRIGHTNESS\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n MainLightBrightness = \"MAIN_LIGHT_BRIGHTNESS\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n}\n\n/**\n * Input Mapping Profile\n */\nexport interface InputMappingProfileStore {\n input_mapping_profile_id: number;\n controller_group_id: number;\n name: string;\n created_at: Date;\n modified_at: Date;\n default: number;\n selected: number;\n inverted: number;\n}\nexport interface ControllerGroupStore {\n controller_group_id: number;\n controller_id: string;\n controller_group: string;\n}\n\nexport interface VehicleControlsStore {\n vehicle_control_id: number;\n name: string;\n created_at: Date;\n}\nexport interface MappedInput {\n input_key: string;\n input_type: InputType;\n control_type: ControlType;\n controller_id: string;\n}\nexport enum ControlType {\n Vehicle = \"VEHICLE\",\n Camera = \"CAMERA\",\n /** @deprecated use `Miscellaneous` */\n Reel = \"REEL\",\n Lights = \"LIGHTS\",\n IntelligentModes = \"INTELLIGENT_MODES\",\n /** @deprecated use `IntelligentModes` */\n IntelligentMode = \"INTELLIGENT_MODE\",\n Tools = \"TOOLS\",\n /** @deprecated use `Tools` */\n Grabber = \"GRABBER\",\n Sonar = \"SONAR\",\n Menu = \"MENU\",\n Miscellaneous = \"MISCELLANEOUS\",\n}\nexport interface RawInput {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n control_type: ControlType;\n name: string;\n control_name: VehicleControl;\n created_at: string;\n}\nexport interface InputMapStore {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n name: string;\n control_name: string;\n created_at: string;\n}\nexport enum InputType {\n JoystickAxis = \"AXIS\",\n JoystickButton = \"BUTTON\",\n KeyboardKey = \"KEY\",\n}\n\nexport interface CombinedCommand {\n positiveCommand: VehicleControl;\n negativeCommand: VehicleControl;\n}\n","export enum DefaultControllerId {\n TABLET_CONTROLLER_ID = \"Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)\",\n STEELSERIES_CONTROLLER_ID = \"Xbox 360 Controller (XInput STANDARD GAMEPAD)\",\n STEELSERIES_CONTROLLER_BLUETOOTH_ID = \"SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)\",\n KEYBOARD_ID = \"KEYBOARD\",\n VKBSIM_GLADIATOR_L_ID = \" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)\",\n VKBSIM_GLADIATOR_R_ID = \" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)\",\n PLAYSTATION_CONTROLLER_ID = \"DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)\",\n XBOX_ONE_GAMEPAD_ID = \"HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)\",\n CONSOLE_CONTROLLER = \"Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)\",\n FLIGHT_JOYSTICK = \"Extreme 3D pro (Vendor: 046d Product: c215)\",\n}\n\nexport const COMMON_DEFAULT_CONTROLLER_NAMES: Record<\n DefaultControllerId,\n string\n> = {\n [DefaultControllerId.TABLET_CONTROLLER_ID]: \"Deep Trekker Tablet\",\n [DefaultControllerId.KEYBOARD_ID]: \"Keyboard\",\n [DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:\n \"VKBsim Gladiator EVO L (VKB Sim)\",\n [DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:\n \"VKBsim Gladiator EVO R (VKB Sim)\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_ID]: \"Gamepad\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:\n \"Gamepad (Bluetooth)\",\n [DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:\n \"DualSense Wireless Controller (Gamepad)\",\n [DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:\n \"Xbox One Wireless Controller (Gamepad)\",\n [DefaultControllerId.CONSOLE_CONTROLLER]: \"Deep Trekker Console\",\n [DefaultControllerId.FLIGHT_JOYSTICK]: \"Flight joystick\",\n};\n\nexport * from \"./inputMapping\";\nexport * from \"./deadZoning\";\n","import {\n CombinedCommand,\n ControlType,\n MappedInput,\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};\n\nconst CRAWLER_DRIVE: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerForward,\n negativeCommand: VehicleControl.CrawlerReverse,\n};\n\nconst CRAWLER_STEER: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerRight,\n negativeCommand: VehicleControl.CrawlerLeft,\n};\n\nconst ELEVATING_ARM: CombinedCommand = {\n positiveCommand: VehicleControl.ElevatingArmAscend,\n negativeCommand: VehicleControl.ElevatingArmDescend,\n};\nconst PAN: CombinedCommand = {\n positiveCommand: VehicleControl.PanRight,\n negativeCommand: VehicleControl.PanLeft,\n};\nconst TILT: CombinedCommand = {\n positiveCommand: VehicleControl.TiltUp,\n negativeCommand: VehicleControl.TiltDown,\n};\nconst FOCUS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseFocus,\n negativeCommand: VehicleControl.DecreaseFocus,\n};\nconst EXPOSURE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseExposure,\n negativeCommand: VehicleControl.DecreaseExposure,\n};\nconst ZOOM: CombinedCommand = {\n positiveCommand: VehicleControl.ZoomIn,\n negativeCommand: VehicleControl.ZoomOut,\n};\n\nconst THRUSTERS: CombinedCommand = {\n positiveCommand: VehicleControl.ThrusterForward,\n negativeCommand: VehicleControl.ThrusterReverse,\n};\n\nconst YAW: CombinedCommand = {\n positiveCommand: VehicleControl.YawRight,\n negativeCommand: VehicleControl.YawLeft,\n};\n\nconst LATERAL: CombinedCommand = {\n positiveCommand: VehicleControl.LateralRight,\n negativeCommand: VehicleControl.LateralLeft,\n};\n\nconst VERTICAL: CombinedCommand = {\n positiveCommand: VehicleControl.VerticalUp,\n negativeCommand: VehicleControl.VerticalDown,\n};\n\nconst GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberOpen,\n negativeCommand: VehicleControl.GrabberClose,\n};\n\nconst ROTATE_GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberRotateRight,\n negativeCommand: VehicleControl.GrabberRotateLeft,\n};\nconst TILT_PLATFORM: CombinedCommand = {\n positiveCommand: VehicleControl.TiltPlatformUp,\n negativeCommand: VehicleControl.TiltPlatformDown,\n};\nconst MAIN_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseMainLightBrightness,\n negativeCommand: VehicleControl.DecreaseMainLightBrightness,\n};\nconst AUX_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseAuxLightBrightness,\n negativeCommand: VehicleControl.DecreaseAuxLightBrightness,\n};\nconst SPEED_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSpeedGain,\n negativeCommand: VehicleControl.DecreaseSpeedGain,\n};\nconst STEER_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSteerGain,\n negativeCommand: VehicleControl.DecreaseSteerGain,\n};\nconst SONAR_RANGE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarRange,\n negativeCommand: VehicleControl.DecreaseSonarRange,\n};\nconst SONAR_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarGain,\n negativeCommand: VehicleControl.DecreaseSonarGain,\n};\nexport const COMBINED_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.CrawlerDrive]: CRAWLER_DRIVE,\n [VehicleControl.CrawlerSteer]: CRAWLER_STEER,\n [VehicleControl.ElevatingArm]: ELEVATING_ARM,\n [VehicleControl.Pan]: PAN,\n [VehicleControl.Tilt]: TILT,\n [VehicleControl.Focus]: FOCUS,\n [VehicleControl.Exposure]: EXPOSURE,\n [VehicleControl.Zoom]: ZOOM,\n [VehicleControl.Thrusters]: THRUSTERS,\n [VehicleControl.Yaw]: YAW,\n [VehicleControl.Lateral]: LATERAL,\n [VehicleControl.Vertical]: VERTICAL,\n [VehicleControl.Grabber]: GRABBER,\n [VehicleControl.RotateGrabber]: ROTATE_GRABBER,\n [VehicleControl.TiltPlatform]: TILT_PLATFORM,\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const DEFAULT_DEAD_ZONE = 5;\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.ReelReset]: \"Reel Reset [Hold]\",\n [VehicleControl.SwitchCamera]: \"Camera Switch\",\n\n [VehicleControl.ThrusterForward]: \"Thruster Forward\",\n [VehicleControl.ThrusterReverse]: \"Thruster Reverse\",\n [VehicleControl.YawLeft]: \"Yaw left\",\n [VehicleControl.YawRight]: \"Yaw right\",\n [VehicleControl.LateralLeft]: \"Lateral left\",\n [VehicleControl.LateralRight]: \"Lateral right\",\n [VehicleControl.VerticalDown]: \"Vertical down\",\n [VehicleControl.VerticalUp]: \"Vertical up\",\n [VehicleControl.DisableMotors]: \"Disable motors\",\n [VehicleControl.IncreaseSpeedGain]: \"Increase speed gain\",\n [VehicleControl.DecreaseSpeedGain]: \"Decrease speed gain\",\n [VehicleControl.IncreaseSteerGain]: \"Increase steer gain\",\n [VehicleControl.DecreaseSteerGain]: \"Decrease steer gain\",\n\n [VehicleControl.DepthLock]: \"Depth lock\",\n [VehicleControl.AltitudeLock]: \"Altitude lock\",\n [VehicleControl.HeadingLock]: \"Heading lock\",\n [VehicleControl.PitchLock]: \"Pitch lock\",\n [VehicleControl.AutoStabilization]: \"Auto stabilization on/off\",\n [VehicleControl.StationHolding]: \"Station holding on/off\",\n [VehicleControl.PrecisionThrusters]: \"Precision thrusters on/off\",\n\n [VehicleControl.TiltUp]: \"Camera Tilt Up\",\n [VehicleControl.TiltDown]: \"Camera Tilt Down\",\n [VehicleControl.ZoomIn]: \"Zoom In\",\n [VehicleControl.ZoomOut]: \"Zoom Out\",\n [VehicleControl.CameraHome]: \"Camera Home\",\n [VehicleControl.Record]: \"Record\",\n [VehicleControl.Screenshot]: \"Snapshot\",\n\n [VehicleControl.IncreaseSonarRange]: \"Increase sonar range\",\n [VehicleControl.DecreaseSonarRange]: \"Decrease sonar range\",\n [VehicleControl.IncreaseSonarGain]: \"Increase sonar gain\",\n [VehicleControl.DecreaseSonarGain]: \"Decrease sonar gain\",\n [VehicleControl.ChangeSonarFrequency]: \"Change sonar frequency\",\n\n [VehicleControl.GrabberOpen]: \"Grabber open\",\n [VehicleControl.GrabberClose]: \"Grabber close\",\n [VehicleControl.GrabberRotateLeft]: \"Grabber rotate left\",\n [VehicleControl.GrabberRotateRight]: \"Grabber rotate right\",\n [VehicleControl.TiltPlatformUp]: \"Tilt platform up\",\n [VehicleControl.TiltPlatformDown]: \"Tilt platform down\",\n\n [VehicleControl.IncreaseFocus]: \"Increase Focus\",\n [VehicleControl.DecreaseFocus]: \"Decrease Focus\",\n [VehicleControl.IncreaseExposure]: \"Increase Exposure\",\n [VehicleControl.DecreaseExposure]: \"Decrease Exposure\",\n\n [VehicleControl.ReelTetherIn]: \"Reel tether in\",\n};\n\nexport const INPUT_MAP_SECTIONS: Record<RovControl, ControlType> = {\n [RovControl.ThrusterForward]: ControlType.Vehicle,\n [RovControl.ThrusterReverse]: ControlType.Vehicle,\n [RovControl.YawLeft]: ControlType.Vehicle,\n [RovControl.YawRight]: ControlType.Vehicle,\n [RovControl.LateralLeft]: ControlType.Vehicle,\n [RovControl.LateralRight]: ControlType.Vehicle,\n [RovControl.VerticalUp]: ControlType.Vehicle,\n [RovControl.VerticalDown]: ControlType.Vehicle,\n [RovControl.DisableMotors]: ControlType.Vehicle,\n [RovControl.IncreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.DecreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.IncreaseSteerGain]: ControlType.Vehicle,\n [RovControl.DecreaseSteerGain]: ControlType.Vehicle,\n\n [RovControl.DepthLock]: ControlType.IntelligentModes,\n [RovControl.AltitudeLock]: ControlType.IntelligentModes,\n [RovControl.HeadingLock]: ControlType.IntelligentModes,\n [RovControl.AutoStabilization]: ControlType.IntelligentModes,\n\n [RovControl.MainLight]: ControlType.Lights,\n [RovControl.AuxLight]: ControlType.Lights,\n [RovControl.ToggleLasers]: ControlType.Lights,\n [RovControl.IncreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.IncreaseAuxLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseAuxLightBrightness]: ControlType.Lights,\n\n [RovControl.TiltUp]: ControlType.Camera,\n [RovControl.TiltDown]: ControlType.Camera,\n [RovControl.ZoomIn]: ControlType.Camera,\n [RovControl.ZoomOut]: ControlType.Camera,\n [RovControl.CameraHome]: ControlType.Camera,\n [RovControl.Screenshot]: ControlType.Camera,\n [RovControl.Record]: ControlType.Camera,\n\n [RovControl.IncreaseSonarRange]: ControlType.Sonar,\n [RovControl.DecreaseSonarRange]: ControlType.Sonar,\n [RovControl.IncreaseSonarGain]: ControlType.Sonar,\n [RovControl.DecreaseSonarGain]: ControlType.Sonar,\n [RovControl.ChangeSonarFrequency]: ControlType.Sonar,\n\n [RovControl.GrabberOpen]: ControlType.Tools,\n [RovControl.GrabberClose]: ControlType.Tools,\n [RovControl.GrabberRotateLeft]: ControlType.Tools,\n [RovControl.GrabberRotateRight]: ControlType.Tools,\n [RovControl.TiltPlatformUp]: ControlType.Tools,\n [RovControl.TiltPlatformDown]: ControlType.Tools,\n\n [RovControl.ReelTetherIn]: ControlType.Miscellaneous,\n};\n\nexport const INPUT_CATEGORIES_LABELS: Record<ControlType, string> = {\n [ControlType.Vehicle]: \"Thruster controls\",\n [ControlType.Camera]: \"Camera controls\",\n [ControlType.Tools]: \"Grabber/tools\",\n [ControlType.Grabber]: \"Grabber/tools\",\n [ControlType.IntelligentMode]: \"Intelligent modes\",\n [ControlType.Reel]: \"Miscellaneous\",\n [ControlType.IntelligentModes]: \"Intelligent modes\",\n [ControlType.Lights]: \"Lights/lasers\",\n [ControlType.Menu]: \"Menu Navigation\",\n [ControlType.Miscellaneous]: \"Miscellaneous\",\n [ControlType.Sonar]: \"Sonar controls\",\n};\n","import {\n DEFAULT_DEAD_ZONE,\n NEGATIVE_COMMAND_INDICATOR,\n POSITIVE_COMMAND_INDICATOR,\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n} from \"@constants\";\nimport { InputType, MappedInput, DeadZoneProfiles } from \"@types\";\n\nexport function checkKeyPress(\n keys: string[],\n keysPressed: Record<string, boolean>,\n) {\n const activeElem = document.activeElement?.tagName || \"\";\n if (activeElem === \"INPUT\" || activeElem === \"TEXTAREA\") {\n return false;\n }\n let keysFound = true;\n keys.forEach((key) => {\n if (!keysPressed[key]) {\n keysFound = false;\n }\n });\n return keysFound;\n}\nexport function getAxisValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let axisValue = 0;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n axisValue = gamepad.axes[index];\n }\n });\n return Math.round(axisValue * 100);\n}\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let buttonPressed = false;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n buttonPressed = gamepad.buttons[index].pressed;\n }\n });\n return buttonPressed;\n}\nexport function decodeBooleanMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return false;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return false;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n return checkKeyPress(\n input_key.split(POSITIVE_COMMAND_INDICATOR),\n keysPressed,\n );\n case InputType.JoystickAxis:\n const mappingIndex = input_key.includes(\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n )\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] || DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n return axisValue > deadZoneValue;\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n return axisValue < -1 * deadZoneValue;\n } else {\n return false;\n }\n case InputType.JoystickButton:\n return getButtonValue(controller_id, +input_key, gamepads);\n default:\n return false;\n }\n}\nexport function decodeRateMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return 0;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return 0;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n if (checkKeyPress(input_key.split(\"+\"), keysPressed)) {\n return 100;\n } else {\n return 0;\n }\n case InputType.JoystickAxis:\n const mappingIndex =\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR) > -1\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] ?? DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n if (axisValue >= deadZoneValue) {\n return scaleRateAroundDeadZone(axisValue, deadZoneValue);\n } else {\n return 0;\n }\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n if (axisValue <= -1 * deadZoneValue) {\n return scaleRateAroundDeadZone(\n Math.abs(axisValue),\n deadZoneValue,\n );\n } else {\n return 0;\n }\n } else {\n return axisValue;\n }\n case InputType.JoystickButton:\n const buttonPressed = getButtonValue(\n controller_id,\n +input_key,\n gamepads,\n );\n if (buttonPressed) {\n return 100;\n } else {\n return 0;\n }\n default:\n return 0;\n }\n}\n\nconst scaleRateAroundDeadZone = (rate: number, deadZone: number) =>\n Math.floor(((rate - deadZone) / (100 - deadZone)) * 100);\n\n// Assigns unique Ids to controller ids. Adds a (2), (3), etc... depending on the amount of occurrences of the same Id.\nexport function assignUniqueIds(gamepads: (Gamepad | null)[]) {\n const idCounts: Record<string, number> = {};\n return Array.from(gamepads)\n .filter(\n (gamepad): gamepad is Gamepad =>\n gamepad !== null && gamepad.id !== undefined,\n )\n .map((gamepad) => {\n const baseId = gamepad.id;\n idCounts[baseId] = (idCounts[baseId] || 0) + 1;\n const uniqueId =\n idCounts[baseId] > 1\n ? `${baseId} (${idCounts[baseId]})`\n : baseId;\n return new Proxy(gamepad, {\n get(target, prop) {\n // Override `id` property\n if (prop === \"id\") {\n return uniqueId;\n }\n return Reflect.get(target, prop);\n },\n });\n });\n}\n","import { COMBINED_COMMANDS } from \"@constants\";\nimport {\n VehicleControl,\n MappedInput,\n DeadZoneProfiles,\n InputType,\n} from \"@types\";\nimport {\n decodeRateMapping,\n decodeBooleanMapping,\n assignUniqueIds,\n} from \"@utils\";\n\n/**\n * Used to determine which keys are currently being pressed\n */\nconst keysPressed: Record<string, boolean> = {};\n\nexport const updateKeysPressed = (key: string, pressed: boolean) =>\n (keysPressed[key] = pressed);\n\nexport const poll = (\n activeMapping: Record<string, Record<string, MappedInput>>,\n subscribers: Partial<\n Record<\n VehicleControl,\n Array<\n (\n value: number | boolean,\n controller?: string,\n inputType?: InputType,\n ) => void\n >\n >\n > = {},\n deadZones: DeadZoneProfiles = {},\n) => {\n const gamepads = navigator.getGamepads();\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 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 if (value !== 0 || containsAxis) {\n values.push({\n value,\n inputType: containsAxis\n ? InputType.JoystickAxis\n : undefined,\n });\n }\n } else {\n callbacks?.forEach((callback) => {\n callback(\n decodeBooleanMapping(\n mapping[vehicleControl] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ),\n controller,\n mapping[vehicleControl]?.input_type,\n );\n });\n }\n });\n if (combinedCommand) {\n if (values.length > 0) {\n const averageValue =\n values.reduce((acc, val) => acc + val.value, 0) /\n values.length;\n const inputType = values[0].inputType; // assuming all values have the same input type\n callbacks?.forEach((callback) =>\n callback(averageValue, undefined, inputType),\n );\n } else {\n callbacks?.forEach((callback) => callback(0));\n }\n }\n });\n};\n"],"names":["RovControl","CrawlerControl","VehicleControl","ControlType","InputType","DefaultControllerId","COMMON_DEFAULT_CONTROLLER_NAMES","TABLET_CONTROLLER_ID","KEYBOARD_ID","VKBSIM_GLADIATOR_L_ID","VKBSIM_GLADIATOR_R_ID","STEELSERIES_CONTROLLER_ID","STEELSERIES_CONTROLLER_BLUETOOTH_ID","PLAYSTATION_CONTROLLER_ID","XBOX_ONE_GAMEPAD_ID","CONSOLE_CONTROLLER","FLIGHT_JOYSTICK","RATE_COMMANDS","CrawlerLeft","CrawlerRight","CrawlerForward","CrawlerReverse","TiltDown","TiltUp","PanLeft","PanRight","CRAWLER_DRIVE","positiveCommand","negativeCommand","CRAWLER_STEER","ELEVATING_ARM","ElevatingArmAscend","ElevatingArmDescend","PAN","TILT","FOCUS","IncreaseFocus","DecreaseFocus","EXPOSURE","IncreaseExposure","DecreaseExposure","ZOOM","ZoomIn","ZoomOut","THRUSTERS","ThrusterForward","ThrusterReverse","YAW","YawRight","YawLeft","LATERAL","LateralRight","LateralLeft","VERTICAL","VerticalUp","VerticalDown","GRABBER","GrabberOpen","GrabberClose","ROTATE_GRABBER","GrabberRotateRight","GrabberRotateLeft","TILT_PLATFORM","TiltPlatformUp","TiltPlatformDown","MAIN_LIGHT_BRIGHTNESS","IncreaseMainLightBrightness","DecreaseMainLightBrightness","AUX_LIGHT_BRIGHTNESS","IncreaseAuxLightBrightness","DecreaseAuxLightBrightness","SPEED_GAIN","IncreaseSpeedGain","DecreaseSpeedGain","STEER_GAIN","IncreaseSteerGain","DecreaseSteerGain","SONAR_RANGE","IncreaseSonarRange","DecreaseSonarRange","SONAR_GAIN","IncreaseSonarGain","DecreaseSonarGain","COMBINED_COMMANDS","CrawlerDrive","CrawlerSteer","ElevatingArm","Pan","Tilt","Focus","Exposure","Zoom","Thrusters","Yaw","Lateral","Vertical","Grabber","RotateGrabber","TiltPlatform","MainLightBrightness","AuxLightBrightness","SpeedGain","SteerGain","SonarRange","SonarGain","POSITIVE_COMMAND_INDICATOR","SPACE_BETWEEN_INDEX_AND_INDICATOR","readableMappingROV","MainLight","AuxLight","ToggleLasers","CruiseControl","ReelReset","SwitchCamera","DisableMotors","DepthLock","AltitudeLock","HeadingLock","PitchLock","AutoStabilization","StationHolding","PrecisionThrusters","CameraHome","Record","Screenshot","ChangeSonarFrequency","ReelTetherIn","INPUT_MAP_SECTIONS","Vehicle","IntelligentModes","Lights","Camera","Sonar","Tools","Miscellaneous","INPUT_CATEGORIES_LABELS","IntelligentMode","Reel","Menu","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getButtonValue","buttonPressed","buttons","pressed","decodeBooleanMapping","mapping","deadZones","input_type","input_key","controller_id","KeyboardKey","split","JoystickAxis","mappingIndex","includes","substring","indexOf","deadZoneValue","JoystickButton","decodeRateMapping","_b","scaleRateAroundDeadZone","abs","rate","deadZone","floor","assignUniqueIds","idCounts","Array","from","filter","undefined","map","baseId","uniqueId","Proxy","get","target","prop","Reflect","activeMapping","subscribers","uniqueGamepads","navigator","getGamepads","Object","entries","control","callbacks","vehicleControl","combinedCommand","values","controller","value","containsAxis","_c","push","inputType","callback","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 ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n VerticalUp = \"VERTICAL_UP\",\n VerticalDown = \"VERTICAL_DOWN\",\n DisableMotors = \"DISABLE_MOTORS\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n AltitudeLock = \"ALTITUDE_LOCK\",\n HeadingLock = \"HEADING_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n ToggleLasers = \"TOGGLE_LASERS\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n CameraHome = \"CAMERA_HOME\",\n Screenshot = \"SCREENSHOT\",\n Record = \"RECORD\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n}\n\n/**\n * Crawler Controls\n */\nexport enum CrawlerControl {\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n ZoomIn = \"ZOOM_IN\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n ZoomOut = \"ZOOM_OUT\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n CruiseControl = \"CRUISE_CONTROL\",\n ReelReset = \"REEL_RESET\",\n SwitchCamera = \"SWITCH_CAMERA\",\n CameraHome = \"CAMERA_HOME\",\n Record = \"RECORD\",\n Screenshot = \"SCREENSHOT\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n ToggleLasers = \"TOGGLE_LASERS\",\n DisableMotors = \"DISABLE_MOTORS\",\n}\n\n/**\n * All Vehicle Controls\n */\nexport enum VehicleControl {\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n Thrusters = \"THRUSTER\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n Yaw = \"YAW\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n Lateral = \"LATERAL\",\n VerticalUp = \"VERTICAL_UP\",\n VerticalDown = \"VERTICAL_DOWN\",\n Vertical = \"VERTICAL\",\n DisableMotors = \"DISABLE_MOTORS\",\n DepthLock = \"DEPTH_LOCK\",\n AltitudeLock = \"ALTITUDE_LOCK\",\n HeadingLock = \"HEADING_LOCK\",\n PitchLock = \"PITCH_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n StationHolding = \"STATION_HOLDING\",\n DistanceLock = \"DISTANCE_LOCK\",\n PrecisionThrusters = \"PRECISION_THRUSTERS\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberClose = \"GRABBER_CLOSE\",\n Grabber = \"GRABBER\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n TiltPlatform = \"TILT_PLATFORM\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n RotateGrabber = \"ROTATE_GRABBER\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n SonarRange = \"SONAR_RANGE\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n SonarGain = \"SONAR_GAIN\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n Zoom = \"ZOOM\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n ElevatingArm = \"ELEVATING_ARM\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n CruiseControl = \"CRUISE_CONTROL\",\n ReelReset = \"REEL_RESET\",\n SwitchCamera = \"SWITCH_CAMERA\",\n CameraHome = \"CAMERA_HOME\",\n Record = \"RECORD\",\n Screenshot = \"SCREENSHOT\",\n CrawlerSteer = \"CRAWLER_STEER\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerDrive = \"CRAWLER_DRIVE\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n Pan = \"PAN\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Tilt = \"TILT\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n Focus = \"FOCUS\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n Exposure = \"EXPOSURE\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n ToggleLasers = \"TOGGLE_LASERS\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n SpeedGain = \"SPEED_GAIN\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n SteerGain = \"STEER_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n AuxLightBrightness = \"AUX_LIGHT_BRIGHTNESS\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n MainLightBrightness = \"MAIN_LIGHT_BRIGHTNESS\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n}\n\n/**\n * Input Mapping Profile\n */\nexport interface InputMappingProfileStore {\n input_mapping_profile_id: number;\n controller_group_id: number;\n name: string;\n created_at: Date;\n modified_at: Date;\n default: number;\n selected: number;\n inverted: number;\n}\nexport interface ControllerGroupStore {\n controller_group_id: number;\n controller_id: string;\n controller_group: string;\n}\n\nexport interface VehicleControlsStore {\n vehicle_control_id: number;\n name: string;\n created_at: Date;\n}\nexport interface MappedInput {\n input_key: string;\n input_type: InputType;\n control_type: ControlType;\n controller_id: string;\n}\nexport enum ControlType {\n Vehicle = \"VEHICLE\",\n Camera = \"CAMERA\",\n /** @deprecated use `Miscellaneous` */\n Reel = \"REEL\",\n Lights = \"LIGHTS\",\n IntelligentModes = \"INTELLIGENT_MODES\",\n /** @deprecated use `IntelligentModes` */\n IntelligentMode = \"INTELLIGENT_MODE\",\n Tools = \"TOOLS\",\n /** @deprecated use `Tools` */\n Grabber = \"GRABBER\",\n Sonar = \"SONAR\",\n Menu = \"MENU\",\n Miscellaneous = \"MISCELLANEOUS\",\n}\nexport interface RawInput {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n control_type: ControlType;\n name: string;\n control_name: VehicleControl;\n created_at: string;\n}\nexport interface InputMapStore {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n name: string;\n control_name: string;\n created_at: string;\n}\nexport enum InputType {\n JoystickAxis = \"AXIS\",\n JoystickButton = \"BUTTON\",\n KeyboardKey = \"KEY\",\n}\n\nexport interface CombinedCommand {\n positiveCommand: VehicleControl;\n negativeCommand: VehicleControl;\n}\n","export enum DefaultControllerId {\n TABLET_CONTROLLER_ID = \"Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)\",\n STEELSERIES_CONTROLLER_ID = \"Xbox 360 Controller (XInput STANDARD GAMEPAD)\",\n STEELSERIES_CONTROLLER_BLUETOOTH_ID = \"SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)\",\n KEYBOARD_ID = \"KEYBOARD\",\n VKBSIM_GLADIATOR_L_ID = \" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)\",\n VKBSIM_GLADIATOR_R_ID = \" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)\",\n PLAYSTATION_CONTROLLER_ID = \"DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)\",\n XBOX_ONE_GAMEPAD_ID = \"HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)\",\n CONSOLE_CONTROLLER = \"Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)\",\n FLIGHT_JOYSTICK = \"Extreme 3D pro (Vendor: 046d Product: c215)\",\n}\n\nexport const COMMON_DEFAULT_CONTROLLER_NAMES: Record<\n DefaultControllerId,\n string\n> = {\n [DefaultControllerId.TABLET_CONTROLLER_ID]: \"Deep Trekker Tablet\",\n [DefaultControllerId.KEYBOARD_ID]: \"Keyboard\",\n [DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:\n \"VKBsim Gladiator EVO L (VKB Sim)\",\n [DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:\n \"VKBsim Gladiator EVO R (VKB Sim)\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_ID]: \"Gamepad\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:\n \"Gamepad (Bluetooth)\",\n [DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:\n \"DualSense Wireless Controller (Gamepad)\",\n [DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:\n \"Xbox One Wireless Controller (Gamepad)\",\n [DefaultControllerId.CONSOLE_CONTROLLER]: \"Deep Trekker Console\",\n [DefaultControllerId.FLIGHT_JOYSTICK]: \"Flight joystick\",\n};\n\nexport * from \"./inputMapping\";\nexport * from \"./deadZoning\";\n","import {\n CombinedCommand,\n ControlType,\n MappedInput,\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};\n\nconst CRAWLER_DRIVE: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerForward,\n negativeCommand: VehicleControl.CrawlerReverse,\n};\n\nconst CRAWLER_STEER: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerRight,\n negativeCommand: VehicleControl.CrawlerLeft,\n};\n\nconst ELEVATING_ARM: CombinedCommand = {\n positiveCommand: VehicleControl.ElevatingArmAscend,\n negativeCommand: VehicleControl.ElevatingArmDescend,\n};\nconst PAN: CombinedCommand = {\n positiveCommand: VehicleControl.PanRight,\n negativeCommand: VehicleControl.PanLeft,\n};\nconst TILT: CombinedCommand = {\n positiveCommand: VehicleControl.TiltUp,\n negativeCommand: VehicleControl.TiltDown,\n};\nconst FOCUS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseFocus,\n negativeCommand: VehicleControl.DecreaseFocus,\n};\nconst EXPOSURE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseExposure,\n negativeCommand: VehicleControl.DecreaseExposure,\n};\nconst ZOOM: CombinedCommand = {\n positiveCommand: VehicleControl.ZoomIn,\n negativeCommand: VehicleControl.ZoomOut,\n};\n\nconst THRUSTERS: CombinedCommand = {\n positiveCommand: VehicleControl.ThrusterForward,\n negativeCommand: VehicleControl.ThrusterReverse,\n};\n\nconst YAW: CombinedCommand = {\n positiveCommand: VehicleControl.YawRight,\n negativeCommand: VehicleControl.YawLeft,\n};\n\nconst LATERAL: CombinedCommand = {\n positiveCommand: VehicleControl.LateralRight,\n negativeCommand: VehicleControl.LateralLeft,\n};\n\nconst VERTICAL: CombinedCommand = {\n positiveCommand: VehicleControl.VerticalUp,\n negativeCommand: VehicleControl.VerticalDown,\n};\n\nconst GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberOpen,\n negativeCommand: VehicleControl.GrabberClose,\n};\n\nconst ROTATE_GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberRotateRight,\n negativeCommand: VehicleControl.GrabberRotateLeft,\n};\nconst TILT_PLATFORM: CombinedCommand = {\n positiveCommand: VehicleControl.TiltPlatformUp,\n negativeCommand: VehicleControl.TiltPlatformDown,\n};\nconst MAIN_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseMainLightBrightness,\n negativeCommand: VehicleControl.DecreaseMainLightBrightness,\n};\nconst AUX_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseAuxLightBrightness,\n negativeCommand: VehicleControl.DecreaseAuxLightBrightness,\n};\nconst SPEED_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSpeedGain,\n negativeCommand: VehicleControl.DecreaseSpeedGain,\n};\nconst STEER_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSteerGain,\n negativeCommand: VehicleControl.DecreaseSteerGain,\n};\nconst SONAR_RANGE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarRange,\n negativeCommand: VehicleControl.DecreaseSonarRange,\n};\nconst SONAR_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarGain,\n negativeCommand: VehicleControl.DecreaseSonarGain,\n};\nexport const COMBINED_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.CrawlerDrive]: CRAWLER_DRIVE,\n [VehicleControl.CrawlerSteer]: CRAWLER_STEER,\n [VehicleControl.ElevatingArm]: ELEVATING_ARM,\n [VehicleControl.Pan]: PAN,\n [VehicleControl.Tilt]: TILT,\n [VehicleControl.Focus]: FOCUS,\n [VehicleControl.Exposure]: EXPOSURE,\n [VehicleControl.Zoom]: ZOOM,\n [VehicleControl.Thrusters]: THRUSTERS,\n [VehicleControl.Yaw]: YAW,\n [VehicleControl.Lateral]: LATERAL,\n [VehicleControl.Vertical]: VERTICAL,\n [VehicleControl.Grabber]: GRABBER,\n [VehicleControl.RotateGrabber]: ROTATE_GRABBER,\n [VehicleControl.TiltPlatform]: TILT_PLATFORM,\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const DEFAULT_DEAD_ZONE = 5;\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.ReelReset]: \"Reel Reset [Hold]\",\n [VehicleControl.SwitchCamera]: \"Camera Switch\",\n\n [VehicleControl.ThrusterForward]: \"Thruster Forward\",\n [VehicleControl.ThrusterReverse]: \"Thruster Reverse\",\n [VehicleControl.YawLeft]: \"Yaw left\",\n [VehicleControl.YawRight]: \"Yaw right\",\n [VehicleControl.LateralLeft]: \"Lateral left\",\n [VehicleControl.LateralRight]: \"Lateral right\",\n [VehicleControl.VerticalDown]: \"Vertical down\",\n [VehicleControl.VerticalUp]: \"Vertical up\",\n [VehicleControl.DisableMotors]: \"Disable motors\",\n [VehicleControl.IncreaseSpeedGain]: \"Increase speed gain\",\n [VehicleControl.DecreaseSpeedGain]: \"Decrease speed gain\",\n [VehicleControl.IncreaseSteerGain]: \"Increase steer gain\",\n [VehicleControl.DecreaseSteerGain]: \"Decrease steer gain\",\n\n [VehicleControl.DepthLock]: \"Depth lock\",\n [VehicleControl.AltitudeLock]: \"Altitude lock\",\n [VehicleControl.HeadingLock]: \"Heading lock\",\n [VehicleControl.PitchLock]: \"Pitch lock\",\n [VehicleControl.AutoStabilization]: \"Auto stabilization on/off\",\n [VehicleControl.StationHolding]: \"Station holding on/off\",\n [VehicleControl.DistanceLock]: \"Distance lock\",\n [VehicleControl.PrecisionThrusters]: \"Precision thrusters on/off\",\n\n [VehicleControl.TiltUp]: \"Camera Tilt Up\",\n [VehicleControl.TiltDown]: \"Camera Tilt Down\",\n [VehicleControl.ZoomIn]: \"Zoom In\",\n [VehicleControl.ZoomOut]: \"Zoom Out\",\n [VehicleControl.CameraHome]: \"Camera Home\",\n [VehicleControl.Record]: \"Record\",\n [VehicleControl.Screenshot]: \"Snapshot\",\n\n [VehicleControl.IncreaseSonarRange]: \"Increase sonar range\",\n [VehicleControl.DecreaseSonarRange]: \"Decrease sonar range\",\n [VehicleControl.IncreaseSonarGain]: \"Increase sonar gain\",\n [VehicleControl.DecreaseSonarGain]: \"Decrease sonar gain\",\n [VehicleControl.ChangeSonarFrequency]: \"Change sonar frequency\",\n\n [VehicleControl.GrabberOpen]: \"Grabber open\",\n [VehicleControl.GrabberClose]: \"Grabber close\",\n [VehicleControl.GrabberRotateLeft]: \"Grabber rotate left\",\n [VehicleControl.GrabberRotateRight]: \"Grabber rotate right\",\n [VehicleControl.TiltPlatformUp]: \"Tilt platform up\",\n [VehicleControl.TiltPlatformDown]: \"Tilt platform down\",\n\n [VehicleControl.IncreaseFocus]: \"Increase Focus\",\n [VehicleControl.DecreaseFocus]: \"Decrease Focus\",\n [VehicleControl.IncreaseExposure]: \"Increase Exposure\",\n [VehicleControl.DecreaseExposure]: \"Decrease Exposure\",\n\n [VehicleControl.ReelTetherIn]: \"Reel tether in\",\n};\n\nexport const INPUT_MAP_SECTIONS: Record<RovControl, ControlType> = {\n [RovControl.ThrusterForward]: ControlType.Vehicle,\n [RovControl.ThrusterReverse]: ControlType.Vehicle,\n [RovControl.YawLeft]: ControlType.Vehicle,\n [RovControl.YawRight]: ControlType.Vehicle,\n [RovControl.LateralLeft]: ControlType.Vehicle,\n [RovControl.LateralRight]: ControlType.Vehicle,\n [RovControl.VerticalUp]: ControlType.Vehicle,\n [RovControl.VerticalDown]: ControlType.Vehicle,\n [RovControl.DisableMotors]: ControlType.Vehicle,\n [RovControl.IncreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.DecreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.IncreaseSteerGain]: ControlType.Vehicle,\n [RovControl.DecreaseSteerGain]: ControlType.Vehicle,\n\n [RovControl.DepthLock]: ControlType.IntelligentModes,\n [RovControl.AltitudeLock]: ControlType.IntelligentModes,\n [RovControl.HeadingLock]: ControlType.IntelligentModes,\n [RovControl.AutoStabilization]: ControlType.IntelligentModes,\n\n [RovControl.MainLight]: ControlType.Lights,\n [RovControl.AuxLight]: ControlType.Lights,\n [RovControl.ToggleLasers]: ControlType.Lights,\n [RovControl.IncreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.IncreaseAuxLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseAuxLightBrightness]: ControlType.Lights,\n\n [RovControl.TiltUp]: ControlType.Camera,\n [RovControl.TiltDown]: ControlType.Camera,\n [RovControl.ZoomIn]: ControlType.Camera,\n [RovControl.ZoomOut]: ControlType.Camera,\n [RovControl.CameraHome]: ControlType.Camera,\n [RovControl.Screenshot]: ControlType.Camera,\n [RovControl.Record]: ControlType.Camera,\n\n [RovControl.IncreaseSonarRange]: ControlType.Sonar,\n [RovControl.DecreaseSonarRange]: ControlType.Sonar,\n [RovControl.IncreaseSonarGain]: ControlType.Sonar,\n [RovControl.DecreaseSonarGain]: ControlType.Sonar,\n [RovControl.ChangeSonarFrequency]: ControlType.Sonar,\n\n [RovControl.GrabberOpen]: ControlType.Tools,\n [RovControl.GrabberClose]: ControlType.Tools,\n [RovControl.GrabberRotateLeft]: ControlType.Tools,\n [RovControl.GrabberRotateRight]: ControlType.Tools,\n [RovControl.TiltPlatformUp]: ControlType.Tools,\n [RovControl.TiltPlatformDown]: ControlType.Tools,\n\n [RovControl.ReelTetherIn]: ControlType.Miscellaneous,\n};\n\nexport const INPUT_CATEGORIES_LABELS: Record<ControlType, string> = {\n [ControlType.Vehicle]: \"Thruster controls\",\n [ControlType.Camera]: \"Camera controls\",\n [ControlType.Tools]: \"Grabber/tools\",\n [ControlType.Grabber]: \"Grabber/tools\",\n [ControlType.IntelligentMode]: \"Intelligent modes\",\n [ControlType.Reel]: \"Miscellaneous\",\n [ControlType.IntelligentModes]: \"Intelligent modes\",\n [ControlType.Lights]: \"Lights/lasers\",\n [ControlType.Menu]: \"Menu Navigation\",\n [ControlType.Miscellaneous]: \"Miscellaneous\",\n [ControlType.Sonar]: \"Sonar controls\",\n};\n","import {\n DEFAULT_DEAD_ZONE,\n NEGATIVE_COMMAND_INDICATOR,\n POSITIVE_COMMAND_INDICATOR,\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n} from \"@constants\";\nimport { InputType, MappedInput, DeadZoneProfiles } from \"@types\";\n\nexport function checkKeyPress(\n keys: string[],\n keysPressed: Record<string, boolean>,\n) {\n const activeElem = document.activeElement?.tagName || \"\";\n if (activeElem === \"INPUT\" || activeElem === \"TEXTAREA\") {\n return false;\n }\n let keysFound = true;\n keys.forEach((key) => {\n if (!keysPressed[key]) {\n keysFound = false;\n }\n });\n return keysFound;\n}\nexport function getAxisValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let axisValue = 0;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n axisValue = gamepad.axes[index];\n }\n });\n return Math.round(axisValue * 100);\n}\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let buttonPressed = false;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n buttonPressed = gamepad.buttons[index].pressed;\n }\n });\n return buttonPressed;\n}\nexport function decodeBooleanMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return false;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return false;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n return checkKeyPress(\n input_key.split(POSITIVE_COMMAND_INDICATOR),\n keysPressed,\n );\n case InputType.JoystickAxis:\n const mappingIndex = input_key.includes(\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n )\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] || DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n return axisValue > deadZoneValue;\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n return axisValue < -1 * deadZoneValue;\n } else {\n return false;\n }\n case InputType.JoystickButton:\n return getButtonValue(controller_id, +input_key, gamepads);\n default:\n return false;\n }\n}\nexport function decodeRateMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return 0;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return 0;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n if (checkKeyPress(input_key.split(\"+\"), keysPressed)) {\n return 100;\n } else {\n return 0;\n }\n case InputType.JoystickAxis:\n const mappingIndex =\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR) > -1\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] ?? DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n if (axisValue >= deadZoneValue) {\n return scaleRateAroundDeadZone(axisValue, deadZoneValue);\n } else {\n return 0;\n }\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n if (axisValue <= -1 * deadZoneValue) {\n return scaleRateAroundDeadZone(\n Math.abs(axisValue),\n deadZoneValue,\n );\n } else {\n return 0;\n }\n } else {\n return axisValue;\n }\n case InputType.JoystickButton:\n const buttonPressed = getButtonValue(\n controller_id,\n +input_key,\n gamepads,\n );\n if (buttonPressed) {\n return 100;\n } else {\n return 0;\n }\n default:\n return 0;\n }\n}\n\nconst scaleRateAroundDeadZone = (rate: number, deadZone: number) =>\n Math.floor(((rate - deadZone) / (100 - deadZone)) * 100);\n\n// Assigns unique Ids to controller ids. Adds a (2), (3), etc... depending on the amount of occurrences of the same Id.\nexport function assignUniqueIds(gamepads: (Gamepad | null)[]) {\n const idCounts: Record<string, number> = {};\n return Array.from(gamepads)\n .filter(\n (gamepad): gamepad is Gamepad =>\n gamepad !== null && gamepad.id !== undefined,\n )\n .map((gamepad) => {\n const baseId = gamepad.id;\n idCounts[baseId] = (idCounts[baseId] || 0) + 1;\n const uniqueId =\n idCounts[baseId] > 1\n ? `${baseId} (${idCounts[baseId]})`\n : baseId;\n return new Proxy(gamepad, {\n get(target, prop) {\n // Override `id` property\n if (prop === \"id\") {\n return uniqueId;\n }\n return Reflect.get(target, prop);\n },\n });\n });\n}\n","import { COMBINED_COMMANDS } from \"@constants\";\nimport {\n VehicleControl,\n MappedInput,\n DeadZoneProfiles,\n InputType,\n} from \"@types\";\nimport {\n decodeRateMapping,\n decodeBooleanMapping,\n assignUniqueIds,\n} from \"@utils\";\n\n/**\n * Used to determine which keys are currently being pressed\n */\nconst keysPressed: Record<string, boolean> = {};\n\nexport const updateKeysPressed = (key: string, pressed: boolean) =>\n (keysPressed[key] = pressed);\n\nexport const poll = (\n activeMapping: Record<string, Record<string, MappedInput>>,\n subscribers: Partial<\n Record<\n VehicleControl,\n Array<\n (\n value: number | boolean,\n controller?: string,\n inputType?: InputType,\n ) => void\n >\n >\n > = {},\n deadZones: DeadZoneProfiles = {},\n) => {\n const gamepads = navigator.getGamepads();\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 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 if (value !== 0 || containsAxis) {\n values.push({\n value,\n inputType: containsAxis\n ? InputType.JoystickAxis\n : undefined,\n });\n }\n } else {\n callbacks?.forEach((callback) => {\n callback(\n decodeBooleanMapping(\n mapping[vehicleControl] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ),\n controller,\n mapping[vehicleControl]?.input_type,\n );\n });\n }\n });\n if (combinedCommand) {\n if (values.length > 0) {\n const averageValue =\n values.reduce((acc, val) => acc + val.value, 0) /\n values.length;\n const inputType = values[0].inputType; // assuming all values have the same input type\n callbacks?.forEach((callback) =>\n callback(averageValue, undefined, inputType),\n );\n } else {\n callbacks?.forEach((callback) => callback(0));\n }\n }\n });\n};\n"],"names":["RovControl","CrawlerControl","VehicleControl","ControlType","InputType","DefaultControllerId","COMMON_DEFAULT_CONTROLLER_NAMES","TABLET_CONTROLLER_ID","KEYBOARD_ID","VKBSIM_GLADIATOR_L_ID","VKBSIM_GLADIATOR_R_ID","STEELSERIES_CONTROLLER_ID","STEELSERIES_CONTROLLER_BLUETOOTH_ID","PLAYSTATION_CONTROLLER_ID","XBOX_ONE_GAMEPAD_ID","CONSOLE_CONTROLLER","FLIGHT_JOYSTICK","RATE_COMMANDS","CrawlerLeft","CrawlerRight","CrawlerForward","CrawlerReverse","TiltDown","TiltUp","PanLeft","PanRight","CRAWLER_DRIVE","positiveCommand","negativeCommand","CRAWLER_STEER","ELEVATING_ARM","ElevatingArmAscend","ElevatingArmDescend","PAN","TILT","FOCUS","IncreaseFocus","DecreaseFocus","EXPOSURE","IncreaseExposure","DecreaseExposure","ZOOM","ZoomIn","ZoomOut","THRUSTERS","ThrusterForward","ThrusterReverse","YAW","YawRight","YawLeft","LATERAL","LateralRight","LateralLeft","VERTICAL","VerticalUp","VerticalDown","GRABBER","GrabberOpen","GrabberClose","ROTATE_GRABBER","GrabberRotateRight","GrabberRotateLeft","TILT_PLATFORM","TiltPlatformUp","TiltPlatformDown","MAIN_LIGHT_BRIGHTNESS","IncreaseMainLightBrightness","DecreaseMainLightBrightness","AUX_LIGHT_BRIGHTNESS","IncreaseAuxLightBrightness","DecreaseAuxLightBrightness","SPEED_GAIN","IncreaseSpeedGain","DecreaseSpeedGain","STEER_GAIN","IncreaseSteerGain","DecreaseSteerGain","SONAR_RANGE","IncreaseSonarRange","DecreaseSonarRange","SONAR_GAIN","IncreaseSonarGain","DecreaseSonarGain","COMBINED_COMMANDS","CrawlerDrive","CrawlerSteer","ElevatingArm","Pan","Tilt","Focus","Exposure","Zoom","Thrusters","Yaw","Lateral","Vertical","Grabber","RotateGrabber","TiltPlatform","MainLightBrightness","AuxLightBrightness","SpeedGain","SteerGain","SonarRange","SonarGain","POSITIVE_COMMAND_INDICATOR","SPACE_BETWEEN_INDEX_AND_INDICATOR","readableMappingROV","MainLight","AuxLight","ToggleLasers","CruiseControl","ReelReset","SwitchCamera","DisableMotors","DepthLock","AltitudeLock","HeadingLock","PitchLock","AutoStabilization","StationHolding","DistanceLock","PrecisionThrusters","CameraHome","Record","Screenshot","ChangeSonarFrequency","ReelTetherIn","INPUT_MAP_SECTIONS","Vehicle","IntelligentModes","Lights","Camera","Sonar","Tools","Miscellaneous","INPUT_CATEGORIES_LABELS","IntelligentMode","Reel","Menu","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getButtonValue","buttonPressed","buttons","pressed","decodeBooleanMapping","mapping","deadZones","input_type","input_key","controller_id","KeyboardKey","split","JoystickAxis","mappingIndex","includes","substring","indexOf","deadZoneValue","JoystickButton","decodeRateMapping","_b","scaleRateAroundDeadZone","abs","rate","deadZone","floor","assignUniqueIds","idCounts","Array","from","filter","undefined","map","baseId","uniqueId","Proxy","get","target","prop","Reflect","activeMapping","subscribers","uniqueGamepads","navigator","getGamepads","Object","entries","control","callbacks","vehicleControl","combinedCommand","values","controller","value","containsAxis","_c","push","inputType","callback","length","averageValue","reduce","acc","val"],"mappings":"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"}
@@ -100,6 +100,7 @@ export declare enum VehicleControl {
100
100
  PitchLock = "PITCH_LOCK",
101
101
  AutoStabilization = "AUTO_STABILIZATION",
102
102
  StationHolding = "STATION_HOLDING",
103
+ DistanceLock = "DISTANCE_LOCK",
103
104
  PrecisionThrusters = "PRECISION_THRUSTERS",
104
105
  GrabberOpen = "GRABBER_OPEN",
105
106
  GrabberClose = "GRABBER_CLOSE",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeptrekker/controls",
3
- "version": "0.6.9",
3
+ "version": "0.6.10",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",