@deeptrekker/controls 0.6.10 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1 +1 @@
1
- var e,r,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};
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.DistanceLock="DISTANCE_LOCK",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN"}(e||(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",e.ReelDisengage="REEL_DISENGAGE",e.ReelMotors="REEL_MOTORS"}(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,[a.ReelDisengage]:!0,[a.ReelTetherIn]:!0},E={positiveCommand:a.ReelDisengage,negativeCommand:a.ReelTetherIn},R={positiveCommand:a.CrawlerForward,negativeCommand:a.CrawlerReverse},l={positiveCommand:a.CrawlerRight,negativeCommand:a.CrawlerLeft},c={positiveCommand:a.ElevatingArmAscend,negativeCommand:a.ElevatingArmDescend},T={positiveCommand:a.PanRight,negativeCommand:a.PanLeft},A={positiveCommand:a.TiltUp,negativeCommand:a.TiltDown},L={positiveCommand:a.IncreaseFocus,negativeCommand:a.DecreaseFocus},S={positiveCommand:a.IncreaseExposure,negativeCommand:a.DecreaseExposure},I={positiveCommand:a.ZoomIn,negativeCommand:a.ZoomOut},_={positiveCommand:a.ThrusterForward,negativeCommand:a.ThrusterReverse},C={positiveCommand:a.YawRight,negativeCommand:a.YawLeft},g={positiveCommand:a.LateralRight,negativeCommand:a.LateralLeft},D={positiveCommand:a.VerticalUp,negativeCommand:a.VerticalDown},d={positiveCommand:a.GrabberOpen,negativeCommand:a.GrabberClose},u={positiveCommand:a.GrabberRotateRight,negativeCommand:a.GrabberRotateLeft},m={positiveCommand:a.TiltPlatformUp,negativeCommand:a.TiltPlatformDown},h={positiveCommand:a.IncreaseMainLightBrightness,negativeCommand:a.DecreaseMainLightBrightness},G={positiveCommand:a.IncreaseAuxLightBrightness,negativeCommand:a.DecreaseAuxLightBrightness},O={positiveCommand:a.IncreaseSpeedGain,negativeCommand:a.DecreaseSpeedGain},N={positiveCommand:a.IncreaseSteerGain,negativeCommand:a.DecreaseSteerGain},p={positiveCommand:a.IncreaseSonarRange,negativeCommand:a.DecreaseSonarRange},v={positiveCommand:a.IncreaseSonarGain,negativeCommand:a.DecreaseSonarGain},M={[a.ReelMotors]:E,[a.CrawlerDrive]:R,[a.CrawlerSteer]:l,[a.ElevatingArm]:c,[a.Pan]:T,[a.Tilt]:A,[a.Focus]:L,[a.Exposure]:S,[a.Zoom]:I,[a.Thrusters]:_,[a.Yaw]:C,[a.Lateral]:g,[a.Vertical]:D,[a.Grabber]:d,[a.RotateGrabber]:u,[a.TiltPlatform]:m,[a.MainLightBrightness]:h,[a.AuxLightBrightness]:G,[a.SpeedGain]:O,[a.SteerGain]:N,[a.SonarRange]:p,[a.SonarGain]:v},b=5,f="+",B="-",H=" ",P={[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"},w={[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.DistanceLock]: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},V={[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 U(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 F(e,r,a){let t=0;return a.forEach((a=>{a&&a.id===e&&(t=a.axes[r])})),Math.round(100*t)}function x(e,r,a){let t=!1;return a.forEach((a=>{a&&a.id===e&&(t=a.buttons[r].pressed)})),t}function k(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 U(s.split(f),a);case n.JoystickAxis:const e=s.includes(H)?+s.substring(0,s.indexOf(H)):+s,i=F(E,e,r),R=(null===(o=t[E])||void 0===o?void 0:o[e])||5;return s.includes(f)?i>R:!!s.includes("-")&&i<-1*R;case n.JoystickButton:return x(E,+s,r);default:return!1}}function y(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 U(E.split("+"),a)?100:0;case n.JoystickAxis:const e=E.indexOf(H)>-1?+E.substring(0,E.indexOf(H)):+E,s=F(R,e,r),l=null!==(i=null===(o=t[R])||void 0===o?void 0:o[e])&&void 0!==i?i:5;return E.includes(f)?s>=l?K(s,l):0:E.includes("-")?s<=-1*l?K(Math.abs(s),l):0:s;case n.JoystickButton:return x(R,+E,r)?100:0;default:return 0}}const K=(e,r)=>Math.floor((e-r)/(100-r)*100);function W(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 Y={},Z=(e,r)=>Y[e]=r,X=(e,r={},a={})=>{const t=W(navigator.getGamepads());Object.entries(r).forEach((([r,o])=>{const i=r,s=M[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=(y(null!==(R=A[e])&&void 0!==R?R:{},t,Y,a)||0)-(y(null!==(l=A[r])&&void 0!==l?l:{},t,Y,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(k(null!==(n=A[i])&&void 0!==n?n:{},t,Y,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{M as COMBINED_COMMANDS,i as COMMON_DEFAULT_CONTROLLER_NAMES,t as ControlType,r as CrawlerControl,b as DEFAULT_DEAD_ZONE,o as DefaultControllerId,V as INPUT_CATEGORIES_LABELS,w as INPUT_MAP_SECTIONS,n as InputType,B as NEGATIVE_COMMAND_INDICATOR,f as POSITIVE_COMMAND_INDICATOR,s as RATE_COMMANDS,e as RovControl,H as SPACE_BETWEEN_INDEX_AND_INDICATOR,a as VehicleControl,W as assignUniqueIds,U as checkKeyPress,k as decodeBooleanMapping,y as decodeRateMapping,F as getAxisValue,x as getButtonValue,X as poll,P as readableMappingROV,Z 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.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;
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.DistanceLock="DISTANCE_LOCK",e.MainLight="MAIN_LIGHT",e.AuxLight="AUX_LIGHT",e.ToggleLasers="TOGGLE_LASERS",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.TiltUp="TILT_UP",e.TiltDown="TILT_DOWN",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CameraHome="CAMERA_HOME",e.Screenshot="SCREENSHOT",e.Record="RECORD",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.GrabberOpen="GRABBER_OPEN",e.GrabberClose="GRABBER_CLOSE",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.ReelTetherIn="REEL_TETHER_IN",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",r.ReelDisengage="REEL_DISENGAGE",r.ReelMotors="REEL_MOTORS",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,[exports.VehicleControl.ReelDisengage]:!0,[exports.VehicleControl.ReelTetherIn]:!0},i={positiveCommand:exports.VehicleControl.ReelDisengage,negativeCommand:exports.VehicleControl.ReelTetherIn},p={positiveCommand:exports.VehicleControl.CrawlerForward,negativeCommand:exports.VehicleControl.CrawlerReverse},C={positiveCommand:exports.VehicleControl.CrawlerRight,negativeCommand:exports.VehicleControl.CrawlerLeft},c={positiveCommand:exports.VehicleControl.ElevatingArmAscend,negativeCommand:exports.VehicleControl.ElevatingArmDescend},R={positiveCommand:exports.VehicleControl.PanRight,negativeCommand:exports.VehicleControl.PanLeft},E={positiveCommand:exports.VehicleControl.TiltUp,negativeCommand:exports.VehicleControl.TiltDown},T={positiveCommand:exports.VehicleControl.IncreaseFocus,negativeCommand:exports.VehicleControl.DecreaseFocus},x={positiveCommand:exports.VehicleControl.IncreaseExposure,negativeCommand:exports.VehicleControl.DecreaseExposure},h={positiveCommand:exports.VehicleControl.ZoomIn,negativeCommand:exports.VehicleControl.ZoomOut},A={positiveCommand:exports.VehicleControl.ThrusterForward,negativeCommand:exports.VehicleControl.ThrusterReverse},I={positiveCommand:exports.VehicleControl.YawRight,negativeCommand:exports.VehicleControl.YawLeft},L={positiveCommand:exports.VehicleControl.LateralRight,negativeCommand:exports.VehicleControl.LateralLeft},_={positiveCommand:exports.VehicleControl.VerticalUp,negativeCommand:exports.VehicleControl.VerticalDown},S={positiveCommand:exports.VehicleControl.GrabberOpen,negativeCommand:exports.VehicleControl.GrabberClose},D={positiveCommand:exports.VehicleControl.GrabberRotateRight,negativeCommand:exports.VehicleControl.GrabberRotateLeft},d={positiveCommand:exports.VehicleControl.TiltPlatformUp,negativeCommand:exports.VehicleControl.TiltPlatformDown},u={positiveCommand:exports.VehicleControl.IncreaseMainLightBrightness,negativeCommand:exports.VehicleControl.DecreaseMainLightBrightness},g={positiveCommand:exports.VehicleControl.IncreaseAuxLightBrightness,negativeCommand:exports.VehicleControl.DecreaseAuxLightBrightness},V={positiveCommand:exports.VehicleControl.IncreaseSpeedGain,negativeCommand:exports.VehicleControl.DecreaseSpeedGain},O={positiveCommand:exports.VehicleControl.IncreaseSteerGain,negativeCommand:exports.VehicleControl.DecreaseSteerGain},m={positiveCommand:exports.VehicleControl.IncreaseSonarRange,negativeCommand:exports.VehicleControl.DecreaseSonarRange},G={positiveCommand:exports.VehicleControl.IncreaseSonarGain,negativeCommand:exports.VehicleControl.DecreaseSonarGain},N={[exports.VehicleControl.ReelMotors]:i,[exports.VehicleControl.CrawlerDrive]:p,[exports.VehicleControl.CrawlerSteer]:C,[exports.VehicleControl.ElevatingArm]:c,[exports.VehicleControl.Pan]:R,[exports.VehicleControl.Tilt]:E,[exports.VehicleControl.Focus]:T,[exports.VehicleControl.Exposure]:x,[exports.VehicleControl.Zoom]:h,[exports.VehicleControl.Thrusters]:A,[exports.VehicleControl.Yaw]:I,[exports.VehicleControl.Lateral]:L,[exports.VehicleControl.Vertical]:_,[exports.VehicleControl.Grabber]:S,[exports.VehicleControl.RotateGrabber]:D,[exports.VehicleControl.TiltPlatform]:d,[exports.VehicleControl.MainLightBrightness]:u,[exports.VehicleControl.AuxLightBrightness]:g,[exports.VehicleControl.SpeedGain]:V,[exports.VehicleControl.SteerGain]:O,[exports.VehicleControl.SonarRange]:m,[exports.VehicleControl.SonarGain]:G},v="+",y=" ",M={[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"},f={[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.DistanceLock]:exports.ControlType.IntelligentModes,[exports.RovControl.MainLight]:exports.ControlType.Lights,[exports.RovControl.AuxLight]:exports.ControlType.Lights,[exports.RovControl.ToggleLasers]:exports.ControlType.Lights,[exports.RovControl.IncreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.IncreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.TiltUp]:exports.ControlType.Camera,[exports.RovControl.TiltDown]:exports.ControlType.Camera,[exports.RovControl.ZoomIn]:exports.ControlType.Camera,[exports.RovControl.ZoomOut]:exports.ControlType.Camera,[exports.RovControl.CameraHome]:exports.ControlType.Camera,[exports.RovControl.Screenshot]:exports.ControlType.Camera,[exports.RovControl.Record]:exports.ControlType.Camera,[exports.RovControl.IncreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.IncreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.ChangeSonarFrequency]:exports.ControlType.Sonar,[exports.RovControl.GrabberOpen]:exports.ControlType.Tools,[exports.RovControl.GrabberClose]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateLeft]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateRight]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformUp]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformDown]:exports.ControlType.Tools,[exports.RovControl.ReelTetherIn]:exports.ControlType.Miscellaneous},b={[exports.ControlType.Vehicle]:"Thruster controls",[exports.ControlType.Camera]:"Camera controls",[exports.ControlType.Tools]:"Grabber/tools",[exports.ControlType.Grabber]:"Grabber/tools",[exports.ControlType.IntelligentMode]:"Intelligent modes",[exports.ControlType.Reel]:"Miscellaneous",[exports.ControlType.IntelligentModes]:"Intelligent modes",[exports.ControlType.Lights]:"Lights/lasers",[exports.ControlType.Menu]:"Menu Navigation",[exports.ControlType.Miscellaneous]:"Miscellaneous",[exports.ControlType.Sonar]:"Sonar controls"};function 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 P(e,o,r){let t=0;return r.forEach((r=>{r&&r.id===e&&(t=r.axes[o])})),Math.round(100*t)}function H(e,o,r){let t=!1;return r.forEach((r=>{r&&r.id===e&&(t=r.buttons[o].pressed)})),t}function w(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(v),r);case exports.InputType.JoystickAxis:const e=s.includes(y)?+s.substring(0,s.indexOf(y)):+s,l=P(a,e,o),i=(null===(n=t[a])||void 0===n?void 0:n[e])||5;return s.includes(v)?l>i:!!s.includes("-")&&l<-1*i;case exports.InputType.JoystickButton:return H(a,+s,o);default:return!1}}function U(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(y)>-1?+a.substring(0,a.indexOf(y)):+a,s=P(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(v)?s>=p?F(s,p):0:a.includes("-")?s<=-1*p?F(Math.abs(s),p):0:s;case exports.InputType.JoystickButton:return H(i,+a,o)?100:0;default:return 0}}const F=(e,o)=>Math.floor((e-o)/(100-o)*100);function k(e){const o={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const 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=N,exports.COMMON_DEFAULT_CONTROLLER_NAMES=s,exports.DEFAULT_DEAD_ZONE=5,exports.INPUT_CATEGORIES_LABELS=b,exports.INPUT_MAP_SECTIONS=f,exports.NEGATIVE_COMMAND_INDICATOR="-",exports.POSITIVE_COMMAND_INDICATOR=v,exports.RATE_COMMANDS=a,exports.SPACE_BETWEEN_INDEX_AND_INDICATOR=y,exports.assignUniqueIds=k,exports.checkKeyPress=B,exports.decodeBooleanMapping=w,exports.decodeRateMapping=U,exports.getAxisValue=P,exports.getButtonValue=H,exports.poll=(e,o={},r={})=>{const t=k(navigator.getGamepads());Object.entries(o).forEach((([o,n])=>{const l=o,s=N[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=(U(null!==(i=R[e])&&void 0!==i?i:{},t,K,r)||0)-(U(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(w(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=M,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 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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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types/inputMapping/index.ts","../src/types/index.ts","../src/constants/index.ts","../src/utils/gamepadHelper/index.ts","../src/lib/index.ts"],"sourcesContent":["/**\n * ROV Controls\n */\nexport enum RovControl {\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n VerticalUp = \"VERTICAL_UP\",\n VerticalDown = \"VERTICAL_DOWN\",\n DisableMotors = \"DISABLE_MOTORS\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n AltitudeLock = \"ALTITUDE_LOCK\",\n HeadingLock = \"HEADING_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n DistanceLock = \"DISTANCE_LOCK\",\n MainLight = \"MAIN_LIGHT\",\n AuxLight = \"AUX_LIGHT\",\n ToggleLasers = \"TOGGLE_LASERS\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n TiltUp = \"TILT_UP\",\n TiltDown = \"TILT_DOWN\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n CameraHome = \"CAMERA_HOME\",\n Screenshot = \"SCREENSHOT\",\n Record = \"RECORD\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n}\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 ReelDisengage = \"REEL_DISENGAGE\",\n ReelMotors = \"REEL_MOTORS\",\n}\n\n/**\n * Input Mapping Profile\n */\nexport interface InputMappingProfileStore {\n input_mapping_profile_id: number;\n controller_group_id: number;\n name: string;\n created_at: Date;\n modified_at: Date;\n default: number;\n selected: number;\n inverted: number;\n}\nexport interface ControllerGroupStore {\n controller_group_id: number;\n controller_id: string;\n controller_group: string;\n}\n\nexport interface VehicleControlsStore {\n vehicle_control_id: number;\n name: string;\n created_at: Date;\n}\nexport interface MappedInput {\n input_key: string;\n input_type: InputType;\n control_type: ControlType;\n controller_id: string;\n}\nexport enum ControlType {\n Vehicle = \"VEHICLE\",\n Camera = \"CAMERA\",\n /** @deprecated use `Miscellaneous` */\n Reel = \"REEL\",\n Lights = \"LIGHTS\",\n IntelligentModes = \"INTELLIGENT_MODES\",\n /** @deprecated use `IntelligentModes` */\n IntelligentMode = \"INTELLIGENT_MODE\",\n Tools = \"TOOLS\",\n /** @deprecated use `Tools` */\n Grabber = \"GRABBER\",\n Sonar = \"SONAR\",\n Menu = \"MENU\",\n Miscellaneous = \"MISCELLANEOUS\",\n}\nexport interface RawInput {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n control_type: ControlType;\n name: string;\n control_name: VehicleControl;\n created_at: string;\n}\nexport interface InputMapStore {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n name: string;\n control_name: string;\n created_at: string;\n}\nexport enum InputType {\n JoystickAxis = \"AXIS\",\n JoystickButton = \"BUTTON\",\n KeyboardKey = \"KEY\",\n}\n\nexport interface CombinedCommand {\n positiveCommand: VehicleControl;\n negativeCommand: VehicleControl;\n}\n","export enum DefaultControllerId {\n TABLET_CONTROLLER_ID = \"Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)\",\n STEELSERIES_CONTROLLER_ID = \"Xbox 360 Controller (XInput STANDARD GAMEPAD)\",\n STEELSERIES_CONTROLLER_BLUETOOTH_ID = \"SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)\",\n KEYBOARD_ID = \"KEYBOARD\",\n VKBSIM_GLADIATOR_L_ID = \" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)\",\n VKBSIM_GLADIATOR_R_ID = \" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)\",\n PLAYSTATION_CONTROLLER_ID = \"DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)\",\n XBOX_ONE_GAMEPAD_ID = \"HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)\",\n CONSOLE_CONTROLLER = \"Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)\",\n FLIGHT_JOYSTICK = \"Extreme 3D pro (Vendor: 046d Product: c215)\",\n}\n\nexport const COMMON_DEFAULT_CONTROLLER_NAMES: Record<\n DefaultControllerId,\n string\n> = {\n [DefaultControllerId.TABLET_CONTROLLER_ID]: \"Deep Trekker Tablet\",\n [DefaultControllerId.KEYBOARD_ID]: \"Keyboard\",\n [DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:\n \"VKBsim Gladiator EVO L (VKB Sim)\",\n [DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:\n \"VKBsim Gladiator EVO R (VKB Sim)\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_ID]: \"Gamepad\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:\n \"Gamepad (Bluetooth)\",\n [DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:\n \"DualSense Wireless Controller (Gamepad)\",\n [DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:\n \"Xbox One Wireless Controller (Gamepad)\",\n [DefaultControllerId.CONSOLE_CONTROLLER]: \"Deep Trekker Console\",\n [DefaultControllerId.FLIGHT_JOYSTICK]: \"Flight joystick\",\n};\n\nexport * from \"./inputMapping\";\nexport * from \"./deadZoning\";\n","import {\n CombinedCommand,\n ControlType,\n RovControl,\n VehicleControl,\n} from \"@types\";\n\nexport const RATE_COMMANDS: Partial<Record<VehicleControl, boolean>> = {\n [VehicleControl.CrawlerLeft]: true,\n [VehicleControl.CrawlerRight]: true,\n [VehicleControl.CrawlerForward]: true,\n [VehicleControl.CrawlerReverse]: true,\n [VehicleControl.TiltDown]: true,\n [VehicleControl.TiltUp]: true,\n [VehicleControl.PanLeft]: true,\n [VehicleControl.PanRight]: true,\n [VehicleControl.ReelDisengage]: true,\n [VehicleControl.ReelTetherIn]: true,\n};\n\nconst REEL_MOTORS: CombinedCommand = {\n positiveCommand: VehicleControl.ReelDisengage,\n negativeCommand: VehicleControl.ReelTetherIn,\n};\n\nconst CRAWLER_DRIVE: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerForward,\n negativeCommand: VehicleControl.CrawlerReverse,\n};\n\nconst CRAWLER_STEER: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerRight,\n negativeCommand: VehicleControl.CrawlerLeft,\n};\n\nconst ELEVATING_ARM: CombinedCommand = {\n positiveCommand: VehicleControl.ElevatingArmAscend,\n negativeCommand: VehicleControl.ElevatingArmDescend,\n};\nconst PAN: CombinedCommand = {\n positiveCommand: VehicleControl.PanRight,\n negativeCommand: VehicleControl.PanLeft,\n};\nconst TILT: CombinedCommand = {\n positiveCommand: VehicleControl.TiltUp,\n negativeCommand: VehicleControl.TiltDown,\n};\nconst FOCUS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseFocus,\n negativeCommand: VehicleControl.DecreaseFocus,\n};\nconst EXPOSURE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseExposure,\n negativeCommand: VehicleControl.DecreaseExposure,\n};\nconst ZOOM: CombinedCommand = {\n positiveCommand: VehicleControl.ZoomIn,\n negativeCommand: VehicleControl.ZoomOut,\n};\n\nconst THRUSTERS: CombinedCommand = {\n positiveCommand: VehicleControl.ThrusterForward,\n negativeCommand: VehicleControl.ThrusterReverse,\n};\n\nconst YAW: CombinedCommand = {\n positiveCommand: VehicleControl.YawRight,\n negativeCommand: VehicleControl.YawLeft,\n};\n\nconst LATERAL: CombinedCommand = {\n positiveCommand: VehicleControl.LateralRight,\n negativeCommand: VehicleControl.LateralLeft,\n};\n\nconst VERTICAL: CombinedCommand = {\n positiveCommand: VehicleControl.VerticalUp,\n negativeCommand: VehicleControl.VerticalDown,\n};\n\nconst GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberOpen,\n negativeCommand: VehicleControl.GrabberClose,\n};\n\nconst ROTATE_GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberRotateRight,\n negativeCommand: VehicleControl.GrabberRotateLeft,\n};\nconst TILT_PLATFORM: CombinedCommand = {\n positiveCommand: VehicleControl.TiltPlatformUp,\n negativeCommand: VehicleControl.TiltPlatformDown,\n};\nconst MAIN_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseMainLightBrightness,\n negativeCommand: VehicleControl.DecreaseMainLightBrightness,\n};\nconst AUX_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseAuxLightBrightness,\n negativeCommand: VehicleControl.DecreaseAuxLightBrightness,\n};\nconst SPEED_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSpeedGain,\n negativeCommand: VehicleControl.DecreaseSpeedGain,\n};\nconst STEER_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSteerGain,\n negativeCommand: VehicleControl.DecreaseSteerGain,\n};\nconst SONAR_RANGE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarRange,\n negativeCommand: VehicleControl.DecreaseSonarRange,\n};\nconst SONAR_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarGain,\n negativeCommand: VehicleControl.DecreaseSonarGain,\n};\nexport const COMBINED_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.ReelMotors]: REEL_MOTORS,\n [VehicleControl.CrawlerDrive]: CRAWLER_DRIVE,\n [VehicleControl.CrawlerSteer]: CRAWLER_STEER,\n [VehicleControl.ElevatingArm]: ELEVATING_ARM,\n [VehicleControl.Pan]: PAN,\n [VehicleControl.Tilt]: TILT,\n [VehicleControl.Focus]: FOCUS,\n [VehicleControl.Exposure]: EXPOSURE,\n [VehicleControl.Zoom]: ZOOM,\n [VehicleControl.Thrusters]: THRUSTERS,\n [VehicleControl.Yaw]: YAW,\n [VehicleControl.Lateral]: LATERAL,\n [VehicleControl.Vertical]: VERTICAL,\n [VehicleControl.Grabber]: GRABBER,\n [VehicleControl.RotateGrabber]: ROTATE_GRABBER,\n [VehicleControl.TiltPlatform]: TILT_PLATFORM,\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const 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 [RovControl.DistanceLock]: ControlType.IntelligentModes,\n\n [RovControl.MainLight]: ControlType.Lights,\n [RovControl.AuxLight]: ControlType.Lights,\n [RovControl.ToggleLasers]: ControlType.Lights,\n [RovControl.IncreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.IncreaseAuxLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseAuxLightBrightness]: ControlType.Lights,\n\n [RovControl.TiltUp]: ControlType.Camera,\n [RovControl.TiltDown]: ControlType.Camera,\n [RovControl.ZoomIn]: ControlType.Camera,\n [RovControl.ZoomOut]: ControlType.Camera,\n [RovControl.CameraHome]: ControlType.Camera,\n [RovControl.Screenshot]: ControlType.Camera,\n [RovControl.Record]: ControlType.Camera,\n\n [RovControl.IncreaseSonarRange]: ControlType.Sonar,\n [RovControl.DecreaseSonarRange]: ControlType.Sonar,\n [RovControl.IncreaseSonarGain]: ControlType.Sonar,\n [RovControl.DecreaseSonarGain]: ControlType.Sonar,\n [RovControl.ChangeSonarFrequency]: ControlType.Sonar,\n\n [RovControl.GrabberOpen]: ControlType.Tools,\n [RovControl.GrabberClose]: ControlType.Tools,\n [RovControl.GrabberRotateLeft]: ControlType.Tools,\n [RovControl.GrabberRotateRight]: ControlType.Tools,\n [RovControl.TiltPlatformUp]: ControlType.Tools,\n [RovControl.TiltPlatformDown]: ControlType.Tools,\n\n [RovControl.ReelTetherIn]: ControlType.Miscellaneous,\n};\n\nexport const INPUT_CATEGORIES_LABELS: Record<ControlType, string> = {\n [ControlType.Vehicle]: \"Thruster controls\",\n [ControlType.Camera]: \"Camera controls\",\n [ControlType.Tools]: \"Grabber/tools\",\n [ControlType.Grabber]: \"Grabber/tools\",\n [ControlType.IntelligentMode]: \"Intelligent modes\",\n [ControlType.Reel]: \"Miscellaneous\",\n [ControlType.IntelligentModes]: \"Intelligent modes\",\n [ControlType.Lights]: \"Lights/lasers\",\n [ControlType.Menu]: \"Menu Navigation\",\n [ControlType.Miscellaneous]: \"Miscellaneous\",\n [ControlType.Sonar]: \"Sonar controls\",\n};\n","import {\n DEFAULT_DEAD_ZONE,\n NEGATIVE_COMMAND_INDICATOR,\n POSITIVE_COMMAND_INDICATOR,\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n} from \"@constants\";\nimport { 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","ReelDisengage","ReelTetherIn","REEL_MOTORS","positiveCommand","negativeCommand","CRAWLER_DRIVE","CRAWLER_STEER","ELEVATING_ARM","ElevatingArmAscend","ElevatingArmDescend","PAN","TILT","FOCUS","IncreaseFocus","DecreaseFocus","EXPOSURE","IncreaseExposure","DecreaseExposure","ZOOM","ZoomIn","ZoomOut","THRUSTERS","ThrusterForward","ThrusterReverse","YAW","YawRight","YawLeft","LATERAL","LateralRight","LateralLeft","VERTICAL","VerticalUp","VerticalDown","GRABBER","GrabberOpen","GrabberClose","ROTATE_GRABBER","GrabberRotateRight","GrabberRotateLeft","TILT_PLATFORM","TiltPlatformUp","TiltPlatformDown","MAIN_LIGHT_BRIGHTNESS","IncreaseMainLightBrightness","DecreaseMainLightBrightness","AUX_LIGHT_BRIGHTNESS","IncreaseAuxLightBrightness","DecreaseAuxLightBrightness","SPEED_GAIN","IncreaseSpeedGain","DecreaseSpeedGain","STEER_GAIN","IncreaseSteerGain","DecreaseSteerGain","SONAR_RANGE","IncreaseSonarRange","DecreaseSonarRange","SONAR_GAIN","IncreaseSonarGain","DecreaseSonarGain","COMBINED_COMMANDS","ReelMotors","CrawlerDrive","CrawlerSteer","ElevatingArm","Pan","Tilt","Focus","Exposure","Zoom","Thrusters","Yaw","Lateral","Vertical","Grabber","RotateGrabber","TiltPlatform","MainLightBrightness","AuxLightBrightness","SpeedGain","SteerGain","SonarRange","SonarGain","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","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":"aAGA,IAAYA,EAkDAC,EAgCAC,EAsHAC,EAqCAC,EChPAC,yDDGAL,QA6CXA,gBAAA,GA7CWA,EAAAA,qBAAAA,QAAAA,WA6CX,CAAA,IA5CG,gBAAA,mBACAA,EAAA,gBAAA,mBACAA,EAAA,QAAA,WACAA,EAAA,SAAA,YACAA,EAAA,YAAA,eACAA,EAAA,aAAA,gBACAA,EAAA,WAAA,cACAA,EAAA,aAAA,gBACAA,EAAA,cAAA,iBACAA,EAAA,kBAAA,sBACAA,EAAA,kBAAA,sBACAA,EAAA,kBAAA,sBACAA,EAAA,kBAAA,sBACAA,EAAA,UAAA,aACAA,EAAA,aAAA,gBACAA,EAAA,YAAA,eACAA,EAAA,kBAAA,qBACAA,EAAA,aAAA,gBACAA,EAAA,UAAA,aACAA,EAAA,SAAA,YACAA,EAAA,aAAA,gBACAA,EAAA,4BAAA,iCACAA,EAAA,4BAAA,iCACAA,EAAA,2BAAA,gCACAA,EAAA,2BAAA,gCACAA,EAAA,OAAA,UACAA,EAAA,SAAA,YACAA,EAAA,OAAA,UACAA,EAAA,QAAA,WACAA,EAAA,WAAA,cACAA,EAAA,WAAA,aACAA,EAAA,OAAA,SACAA,EAAA,mBAAA,uBACAA,EAAA,mBAAA,uBACAA,EAAA,kBAAA,sBACAA,EAAA,kBAAA,sBACAA,EAAA,qBAAA,yBACAA,EAAA,YAAA,eACAA,EAAA,aAAA,gBACAA,EAAA,kBAAA,sBACAA,EAAA,mBAAA,uBACAA,EAAA,eAAA,mBACAA,EAAA,iBAAA,qBACAA,EAAA,aAAA,iBAMQC,QA2BXA,oBAAA,GA3BWA,EAAAA,yBAAAA,QAAAA,eA2BX,CAAA,IA1BG,UAAA,aACAA,EAAA,SAAA,YACAA,EAAA,OAAA,UACAA,EAAA,oBAAA,wBACAA,EAAA,QAAA,WACAA,EAAA,mBAAA,uBACAA,EAAA,cAAA,iBACAA,EAAA,UAAA,aACAA,EAAA,aAAA,gBACAA,EAAA,WAAA,cACAA,EAAA,OAAA,SACAA,EAAA,WAAA,aACAA,EAAA,YAAA,eACAA,EAAA,aAAA,gBACAA,EAAA,eAAA,kBACAA,EAAA,eAAA,kBACAA,EAAA,QAAA,WACAA,EAAA,SAAA,YACAA,EAAA,OAAA,UACAA,EAAA,SAAA,YACAA,EAAA,cAAA,iBACAA,EAAA,cAAA,iBACAA,EAAA,iBAAA,oBACAA,EAAA,iBAAA,oBACAA,EAAA,aAAA,gBACAA,EAAA,cAAA,iBAMQC,QAsFXA,oBAAA,GAtFWA,EAAAA,yBAAAA,QAAAA,eAsFX,CAAA,IArFG,gBAAA,mBACAA,EAAA,gBAAA,mBACAA,EAAA,UAAA,WACAA,EAAA,QAAA,WACAA,EAAA,SAAA,YACAA,EAAA,IAAA,MACAA,EAAA,YAAA,eACAA,EAAA,aAAA,gBACAA,EAAA,QAAA,UACAA,EAAA,WAAA,cACAA,EAAA,aAAA,gBACAA,EAAA,SAAA,WACAA,EAAA,cAAA,iBACAA,EAAA,UAAA,aACAA,EAAA,aAAA,gBACAA,EAAA,YAAA,eACAA,EAAA,UAAA,aACAA,EAAA,kBAAA,qBACAA,EAAA,eAAA,kBACAA,EAAA,aAAA,gBACAA,EAAA,mBAAA,sBACAA,EAAA,YAAA,eACAA,EAAA,aAAA,gBACAA,EAAA,QAAA,UACAA,EAAA,kBAAA,sBACAA,EAAA,mBAAA,uBACAA,EAAA,aAAA,gBACAA,EAAA,eAAA,mBACAA,EAAA,iBAAA,qBACAA,EAAA,cAAA,iBACAA,EAAA,mBAAA,uBACAA,EAAA,mBAAA,uBACAA,EAAA,WAAA,cACAA,EAAA,kBAAA,sBACAA,EAAA,kBAAA,sBACAA,EAAA,UAAA,aACAA,EAAA,qBAAA,yBACAA,EAAA,UAAA,aACAA,EAAA,SAAA,YACAA,EAAA,KAAA,OACAA,EAAA,OAAA,UACAA,EAAA,QAAA,WACAA,EAAA,aAAA,gBACAA,EAAA,oBAAA,wBACAA,EAAA,mBAAA,uBACAA,EAAA,cAAA,iBACAA,EAAA,UAAA,aACAA,EAAA,aAAA,gBACAA,EAAA,WAAA,cACAA,EAAA,OAAA,SACAA,EAAA,WAAA,aACAA,EAAA,aAAA,gBACAA,EAAA,YAAA,eACAA,EAAA,aAAA,gBACAA,EAAA,aAAA,gBACAA,EAAA,eAAA,kBACAA,EAAA,eAAA,kBACAA,EAAA,IAAA,MACAA,EAAA,QAAA,WACAA,EAAA,SAAA,YACAA,EAAA,KAAA,OACAA,EAAA,OAAA,UACAA,EAAA,SAAA,YACAA,EAAA,MAAA,QACAA,EAAA,cAAA,iBACAA,EAAA,cAAA,iBACAA,EAAA,SAAA,WACAA,EAAA,iBAAA,oBACAA,EAAA,iBAAA,oBACAA,EAAA,aAAA,gBACAA,EAAA,aAAA,iBACAA,EAAA,UAAA,aACAA,EAAA,kBAAA,sBACAA,EAAA,kBAAA,sBACAA,EAAA,UAAA,aACAA,EAAA,kBAAA,sBACAA,EAAA,kBAAA,sBACAA,EAAA,mBAAA,uBACAA,EAAA,2BAAA,gCACAA,EAAA,2BAAA,gCACAA,EAAA,oBAAA,wBACAA,EAAA,4BAAA,iCACAA,EAAA,4BAAA,iCACAA,EAAA,cAAA,iBACAA,EAAA,WAAA,cAiCQC,QAeXA,iBAAA,GAfWA,EAAAA,sBAAAA,QAAAA,YAeX,CAAA,IAdG,QAAA,UACAA,EAAA,OAAA,SAEAA,EAAA,KAAA,OACAA,EAAA,OAAA,SACAA,EAAA,iBAAA,oBAEAA,EAAA,gBAAA,mBACAA,EAAA,MAAA,QAEAA,EAAA,QAAA,UACAA,EAAA,MAAA,QACAA,EAAA,KAAA,OACAA,EAAA,cAAA,gBAuBQC,QAIXA,eAAA,GAJWA,EAAAA,QAASA,YAATA,kBAIX,CAAA,IAHG,aAAA,OACAA,EAAA,eAAA,SACAA,EAAA,YAAA,MCnPQC,QAWXA,yBAAA,GAXWA,EAAAA,8BAAAA,QAAAA,oBAWX,CAAA,IAVG,qBAAA,4DACAA,EAAA,0BAAA,gDACAA,EAAA,oCAAA,uDACAA,EAAA,YAAA,WACAA,EAAA,sBAAA,yDACAA,EAAA,sBAAA,yDACAA,EAAA,0BAAA,8EACAA,EAAA,oBAAA,8EACAA,EAAA,mBAAA,oEACAA,EAAA,gBAAA,8CAGS,MAAAC,EAGT,CACA,CAACD,QAAAA,oBAAoBE,sBAAuB,sBAC5C,CAACF,QAAAA,oBAAoBG,aAAc,WACnC,CAACH,QAAAA,oBAAoBI,uBACjB,mCACJ,CAACJ,QAAAA,oBAAoBK,uBACjB,mCACJ,CAACL,QAAAA,oBAAoBM,2BAA4B,UACjD,CAACN,QAAAA,oBAAoBO,qCACjB,sBACJ,CAACP,QAAAA,oBAAoBQ,2BACjB,0CACJ,CAACR,QAAAA,oBAAoBS,qBACjB,yCACJ,CAACT,QAAAA,oBAAoBU,oBAAqB,uBAC1C,CAACV,QAAAA,oBAAoBW,iBAAkB,mBCxB9BC,EAA0D,CACnE,CAACf,QAAAA,eAAegB,cAAc,EAC9B,CAAChB,QAAAA,eAAeiB,eAAe,EAC/B,CAACjB,QAAAA,eAAekB,iBAAiB,EACjC,CAAClB,QAAAA,eAAemB,iBAAiB,EACjC,CAACnB,QAAAA,eAAeoB,WAAW,EAC3B,CAACpB,QAAAA,eAAeqB,SAAS,EACzB,CAACrB,QAAAA,eAAesB,UAAU,EAC1B,CAACtB,QAAAA,eAAeuB,WAAW,EAC3B,CAACvB,QAAAA,eAAewB,gBAAgB,EAChC,CAACxB,QAAAA,eAAeyB,eAAe,GAG7BC,EAA+B,CACjCC,gBAAiB3B,QAAcA,eAACwB,cAChCI,gBAAiB5B,QAAcA,eAACyB,cAG9BI,EAAiC,CACnCF,gBAAiB3B,QAAcA,eAACkB,eAChCU,gBAAiB5B,QAAcA,eAACmB,gBAG9BW,EAAiC,CACnCH,gBAAiB3B,QAAcA,eAACiB,aAChCW,gBAAiB5B,QAAcA,eAACgB,aAG9Be,EAAiC,CACnCJ,gBAAiB3B,QAAcA,eAACgC,mBAChCJ,gBAAiB5B,QAAcA,eAACiC,qBAE9BC,EAAuB,CACzBP,gBAAiB3B,QAAcA,eAACuB,SAChCK,gBAAiB5B,QAAcA,eAACsB,SAE9Ba,EAAwB,CAC1BR,gBAAiB3B,QAAcA,eAACqB,OAChCO,gBAAiB5B,QAAcA,eAACoB,UAE9BgB,EAAyB,CAC3BT,gBAAiB3B,QAAcA,eAACqC,cAChCT,gBAAiB5B,QAAcA,eAACsC,eAE9BC,EAA4B,CAC9BZ,gBAAiB3B,QAAcA,eAACwC,iBAChCZ,gBAAiB5B,QAAcA,eAACyC,kBAE9BC,EAAwB,CAC1Bf,gBAAiB3B,QAAcA,eAAC2C,OAChCf,gBAAiB5B,QAAcA,eAAC4C,SAG9BC,EAA6B,CAC/BlB,gBAAiB3B,QAAcA,eAAC8C,gBAChClB,gBAAiB5B,QAAcA,eAAC+C,iBAG9BC,EAAuB,CACzBrB,gBAAiB3B,QAAcA,eAACiD,SAChCrB,gBAAiB5B,QAAcA,eAACkD,SAG9BC,EAA2B,CAC7BxB,gBAAiB3B,QAAcA,eAACoD,aAChCxB,gBAAiB5B,QAAcA,eAACqD,aAG9BC,EAA4B,CAC9B3B,gBAAiB3B,QAAcA,eAACuD,WAChC3B,gBAAiB5B,QAAcA,eAACwD,cAG9BC,EAA2B,CAC7B9B,gBAAiB3B,QAAcA,eAAC0D,YAChC9B,gBAAiB5B,QAAcA,eAAC2D,cAG9BC,EAAkC,CACpCjC,gBAAiB3B,QAAcA,eAAC6D,mBAChCjC,gBAAiB5B,QAAcA,eAAC8D,mBAE9BC,EAAiC,CACnCpC,gBAAiB3B,QAAcA,eAACgE,eAChCpC,gBAAiB5B,QAAcA,eAACiE,kBAE9BC,EAAyC,CAC3CvC,gBAAiB3B,QAAcA,eAACmE,4BAChCvC,gBAAiB5B,QAAcA,eAACoE,6BAE9BC,EAAwC,CAC1C1C,gBAAiB3B,QAAcA,eAACsE,2BAChC1C,gBAAiB5B,QAAcA,eAACuE,4BAE9BC,EAA8B,CAChC7C,gBAAiB3B,QAAcA,eAACyE,kBAChC7C,gBAAiB5B,QAAcA,eAAC0E,mBAE9BC,EAA8B,CAChChD,gBAAiB3B,QAAcA,eAAC4E,kBAChChD,gBAAiB5B,QAAcA,eAAC6E,mBAE9BC,EAA+B,CACjCnD,gBAAiB3B,QAAcA,eAAC+E,mBAChCnD,gBAAiB5B,QAAcA,eAACgF,oBAE9BC,EAA8B,CAChCtD,gBAAiB3B,QAAcA,eAACkF,kBAChCtD,gBAAiB5B,QAAcA,eAACmF,mBAEvBC,EAET,CACA,CAACpF,QAAAA,eAAeqF,YAAa3D,EAC7B,CAAC1B,QAAAA,eAAesF,cAAezD,EAC/B,CAAC7B,QAAAA,eAAeuF,cAAezD,EAC/B,CAAC9B,QAAAA,eAAewF,cAAezD,EAC/B,CAAC/B,QAAAA,eAAeyF,KAAMvD,EACtB,CAAClC,QAAAA,eAAe0F,MAAOvD,EACvB,CAACnC,QAAAA,eAAe2F,OAAQvD,EACxB,CAACpC,QAAAA,eAAe4F,UAAWrD,EAC3B,CAACvC,QAAAA,eAAe6F,MAAOnD,EACvB,CAAC1C,QAAAA,eAAe8F,WAAYjD,EAC5B,CAAC7C,QAAAA,eAAe+F,KAAM/C,EACtB,CAAChD,QAAAA,eAAegG,SAAU7C,EAC1B,CAACnD,QAAAA,eAAeiG,UAAW3C,EAC3B,CAACtD,QAAAA,eAAekG,SAAUzC,EAC1B,CAACzD,QAAAA,eAAemG,eAAgBvC,EAChC,CAAC5D,QAAAA,eAAeoG,cAAerC,EAC/B,CAAC/D,QAAAA,eAAeqG,qBAAsBnC,EACtC,CAAClE,QAAAA,eAAesG,oBAAqBjC,EACrC,CAACrE,QAAAA,eAAeuG,WAAY/B,EAC5B,CAACxE,QAAAA,eAAewG,WAAY7B,EAC5B,CAAC3E,QAAAA,eAAeyG,YAAa3B,EAC7B,CAAC9E,QAAAA,eAAe0G,WAAYzB,GAKnB0B,EAA6B,IAE7BC,EAAoC,IAEpCC,EAA6C,CACtD,CAAC7G,QAAAA,eAAe8G,WAAY,oBAC5B,CAAC9G,QAAAA,eAAe+G,UAAW,mBAC3B,CAAC/G,QAAAA,eAAegH,cAAe,gBAC/B,CAAChH,QAAAA,eAAemE,6BAA8B,oBAC9C,CAACnE,QAAAA,eAAeoE,6BAA8B,oBAC9C,CAACpE,QAAAA,eAAesE,4BAA6B,mBAC7C,CAACtE,QAAAA,eAAeuE,4BAA6B,mBAE7C,CAACvE,QAAAA,eAAeiH,eAAgB,eAChC,CAACjH,QAAAA,eAAekH,WAAY,oBAC5B,CAAClH,QAAAA,eAAemH,cAAe,gBAE/B,CAACnH,QAAAA,eAAe8C,iBAAkB,mBAClC,CAAC9C,QAAAA,eAAe+C,iBAAkB,mBAClC,CAAC/C,QAAAA,eAAekD,SAAU,WAC1B,CAAClD,QAAAA,eAAeiD,UAAW,YAC3B,CAACjD,QAAAA,eAAeqD,aAAc,eAC9B,CAACrD,QAAAA,eAAeoD,cAAe,gBAC/B,CAACpD,QAAAA,eAAewD,cAAe,gBAC/B,CAACxD,QAAAA,eAAeuD,YAAa,cAC7B,CAACvD,QAAAA,eAAeoH,eAAgB,iBAChC,CAACpH,QAAAA,eAAeyE,mBAAoB,sBACpC,CAACzE,QAAAA,eAAe0E,mBAAoB,sBACpC,CAAC1E,QAAAA,eAAe4E,mBAAoB,sBACpC,CAAC5E,QAAAA,eAAe6E,mBAAoB,sBAEpC,CAAC7E,QAAAA,eAAeqH,WAAY,aAC5B,CAACrH,QAAAA,eAAesH,cAAe,gBAC/B,CAACtH,QAAAA,eAAeuH,aAAc,eAC9B,CAACvH,QAAAA,eAAewH,WAAY,aAC5B,CAACxH,QAAAA,eAAeyH,mBAAoB,4BACpC,CAACzH,QAAAA,eAAe0H,gBAAiB,yBACjC,CAAC1H,QAAAA,eAAe2H,cAAe,gBAC/B,CAAC3H,QAAAA,eAAe4H,oBAAqB,6BAErC,CAAC5H,QAAAA,eAAeqB,QAAS,iBACzB,CAACrB,QAAAA,eAAeoB,UAAW,mBAC3B,CAACpB,QAAAA,eAAe2C,QAAS,UACzB,CAAC3C,QAAAA,eAAe4C,SAAU,WAC1B,CAAC5C,QAAAA,eAAe6H,YAAa,cAC7B,CAAC7H,QAAAA,eAAe8H,QAAS,SACzB,CAAC9H,QAAAA,eAAe+H,YAAa,WAE7B,CAAC/H,QAAAA,eAAe+E,oBAAqB,uBACrC,CAAC/E,QAAAA,eAAegF,oBAAqB,uBACrC,CAAChF,QAAAA,eAAekF,mBAAoB,sBACpC,CAAClF,QAAAA,eAAemF,mBAAoB,sBACpC,CAACnF,QAAAA,eAAegI,sBAAuB,yBAEvC,CAAChI,QAAAA,eAAe0D,aAAc,eAC9B,CAAC1D,QAAAA,eAAe2D,cAAe,gBAC/B,CAAC3D,QAAAA,eAAe8D,mBAAoB,sBACpC,CAAC9D,QAAAA,eAAe6D,oBAAqB,uBACrC,CAAC7D,QAAAA,eAAegE,gBAAiB,mBACjC,CAAChE,QAAAA,eAAeiE,kBAAmB,qBAEnC,CAACjE,QAAAA,eAAeqC,eAAgB,iBAChC,CAACrC,QAAAA,eAAesC,eAAgB,iBAChC,CAACtC,QAAAA,eAAewC,kBAAmB,oBACnC,CAACxC,QAAAA,eAAeyC,kBAAmB,oBAEnC,CAACzC,QAAAA,eAAeyB,cAAe,kBAGtBwG,EAAsD,CAC/D,CAACnI,QAAUA,WAACgD,iBAAkB7C,QAAAA,YAAYiI,QAC1C,CAACpI,QAAUA,WAACiD,iBAAkB9C,QAAAA,YAAYiI,QAC1C,CAACpI,QAAUA,WAACoD,SAAUjD,QAAAA,YAAYiI,QAClC,CAACpI,QAAUA,WAACmD,UAAWhD,QAAAA,YAAYiI,QACnC,CAACpI,QAAUA,WAACuD,aAAcpD,QAAAA,YAAYiI,QACtC,CAACpI,QAAUA,WAACsD,cAAenD,QAAAA,YAAYiI,QACvC,CAACpI,QAAUA,WAACyD,YAAatD,QAAAA,YAAYiI,QACrC,CAACpI,QAAUA,WAAC0D,cAAevD,QAAAA,YAAYiI,QACvC,CAACpI,QAAUA,WAACsH,eAAgBnH,QAAAA,YAAYiI,QACxC,CAACpI,QAAUA,WAAC2E,mBAAoBxE,QAAAA,YAAYiI,QAC5C,CAACpI,QAAUA,WAAC4E,mBAAoBzE,QAAAA,YAAYiI,QAC5C,CAACpI,QAAUA,WAAC8E,mBAAoB3E,QAAAA,YAAYiI,QAC5C,CAACpI,QAAUA,WAAC+E,mBAAoB5E,QAAAA,YAAYiI,QAE5C,CAACpI,QAAUA,WAACuH,WAAYpH,QAAAA,YAAYkI,iBACpC,CAACrI,QAAUA,WAACwH,cAAerH,QAAAA,YAAYkI,iBACvC,CAACrI,QAAUA,WAACyH,aAActH,QAAAA,YAAYkI,iBACtC,CAACrI,QAAUA,WAAC2H,mBAAoBxH,QAAAA,YAAYkI,iBAC5C,CAACrI,QAAUA,WAAC6H,cAAe1H,QAAAA,YAAYkI,iBAEvC,CAACrI,QAAUA,WAACgH,WAAY7G,QAAAA,YAAYmI,OACpC,CAACtI,QAAUA,WAACiH,UAAW9G,QAAAA,YAAYmI,OACnC,CAACtI,QAAUA,WAACkH,cAAe/G,QAAAA,YAAYmI,OACvC,CAACtI,QAAUA,WAACqE,6BAA8BlE,QAAAA,YAAYmI,OACtD,CAACtI,QAAUA,WAACsE,6BAA8BnE,QAAAA,YAAYmI,OACtD,CAACtI,QAAUA,WAACwE,4BAA6BrE,QAAAA,YAAYmI,OACrD,CAACtI,QAAUA,WAACyE,4BAA6BtE,QAAAA,YAAYmI,OAErD,CAACtI,QAAUA,WAACuB,QAASpB,QAAAA,YAAYoI,OACjC,CAACvI,QAAUA,WAACsB,UAAWnB,QAAAA,YAAYoI,OACnC,CAACvI,QAAUA,WAAC6C,QAAS1C,QAAAA,YAAYoI,OACjC,CAACvI,QAAUA,WAAC8C,SAAU3C,QAAAA,YAAYoI,OAClC,CAACvI,QAAUA,WAAC+H,YAAa5H,QAAAA,YAAYoI,OACrC,CAACvI,QAAUA,WAACiI,YAAa9H,QAAAA,YAAYoI,OACrC,CAACvI,QAAUA,WAACgI,QAAS7H,QAAAA,YAAYoI,OAEjC,CAACvI,QAAUA,WAACiF,oBAAqB9E,QAAAA,YAAYqI,MAC7C,CAACxI,QAAUA,WAACkF,oBAAqB/E,QAAAA,YAAYqI,MAC7C,CAACxI,QAAUA,WAACoF,mBAAoBjF,QAAAA,YAAYqI,MAC5C,CAACxI,QAAUA,WAACqF,mBAAoBlF,QAAAA,YAAYqI,MAC5C,CAACxI,QAAUA,WAACkI,sBAAuB/H,QAAAA,YAAYqI,MAE/C,CAACxI,QAAUA,WAAC4D,aAAczD,QAAAA,YAAYsI,MACtC,CAACzI,QAAUA,WAAC6D,cAAe1D,QAAAA,YAAYsI,MACvC,CAACzI,QAAUA,WAACgE,mBAAoB7D,QAAAA,YAAYsI,MAC5C,CAACzI,QAAUA,WAAC+D,oBAAqB5D,QAAAA,YAAYsI,MAC7C,CAACzI,QAAUA,WAACkE,gBAAiB/D,QAAAA,YAAYsI,MACzC,CAACzI,QAAUA,WAACmE,kBAAmBhE,QAAAA,YAAYsI,MAE3C,CAACzI,QAAUA,WAAC2B,cAAexB,QAAAA,YAAYuI,eAG9BC,EAAuD,CAChE,CAACxI,QAAAA,YAAYiI,SAAU,oBACvB,CAACjI,QAAAA,YAAYoI,QAAS,kBACtB,CAACpI,QAAAA,YAAYsI,OAAQ,gBACrB,CAACtI,QAAAA,YAAYiG,SAAU,gBACvB,CAACjG,QAAAA,YAAYyI,iBAAkB,oBAC/B,CAACzI,QAAAA,YAAY0I,MAAO,gBACpB,CAAC1I,QAAAA,YAAYkI,kBAAmB,oBAChC,CAAClI,QAAAA,YAAYmI,QAAS,gBACtB,CAACnI,QAAAA,YAAY2I,MAAO,kBACpB,CAAC3I,QAAAA,YAAYuI,eAAgB,gBAC7B,CAACvI,QAAAA,YAAYqI,OAAQ,kBC/QT,SAAAO,EACZC,EACAC,SAEA,MAAMC,GAAqC,QAAxBC,EAAAC,SAASC,qBAAe,IAAAF,OAAA,EAAAA,EAAAG,UAAW,GACtD,GAAmB,UAAfJ,GAAyC,aAAfA,EAC1B,OAAO,EAEX,IAAIK,GAAY,EAMhB,OALAP,EAAKQ,SAASC,IACLR,EAAYQ,KACbF,GAAY,EACf,IAEEA,CACX,UACgBG,EACZC,EACAC,EACAC,GAEA,IAAIC,EAAY,EAMhB,OALAD,EAASL,SAASO,IACVA,GAAWA,EAAQC,KAAOL,IAC1BG,EAAYC,EAAQE,KAAKL,GAC5B,IAEEM,KAAKC,MAAkB,IAAZL,EACtB,UACgBM,EACZT,EACAC,EACAC,GAEA,IAAIQ,GAAgB,EAMpB,OALAR,EAASL,SAASO,IACVA,GAAWA,EAAQC,KAAOL,IAC1BU,EAAgBN,EAAQO,QAAQV,GAAOW,QAC1C,IAEEF,CACX,CACM,SAAUG,EACZC,EACAZ,EACAZ,EACAyB,SAEA,IAAKD,EACD,OAAO,EAEX,MAAME,WAAEA,EAAUC,UAAEA,EAASC,cAAEA,GAAkBJ,EACjD,IAAKI,GAAiBF,IAAevK,QAAAA,UAAU0K,YAC3C,OAAO,EAEX,OAAQH,GACJ,KAAKvK,QAASA,UAAC0K,YACX,OAAO/B,EACH6B,EAAUG,MAAMlE,GAChBoC,GAER,KAAK7I,QAASA,UAAC4K,aACX,MAAMC,EAAeL,EAAUM,SAC3BpE,IAEG8D,EAAUO,UACP,EACAP,EAAUQ,QAAQtE,KAErB8D,EACDd,EAAYJ,EACdmB,EACAI,EACApB,GAEEwB,GACyB,QAA3BlC,EAAAuB,EAAUG,UAAiB,IAAA1B,OAAA,EAAAA,EAAA8B,KD4DV,EC3DrB,OAAIL,EAAUM,SAASrE,GACZiD,EAAYuB,IACZT,EAAUM,SD4DS,MC3DnBpB,GAAa,EAAIuB,EAIhC,KAAKjL,QAASA,UAACkL,eACX,OAAOlB,EAAeS,GAAgBD,EAAWf,GACrD,QACI,OAAO,EAEnB,CACM,SAAU0B,EACZd,EACAZ,EACAZ,EACAyB,WAEA,IAAKD,EACD,OAAO,EAEX,MAAME,WAAEA,EAAUC,UAAEA,EAASC,cAAEA,GAAkBJ,EACjD,IAAKI,GAAiBF,IAAevK,QAAAA,UAAU0K,YAC3C,OAAO,EAEX,OAAQH,GACJ,KAAKvK,QAASA,UAAC0K,YACX,OAAI/B,EAAc6B,EAAUG,MAAM,KAAM9B,GAC7B,IAEA,EAEf,KAAK7I,QAASA,UAAC4K,aACX,MAAMC,EACFL,EAAUQ,QAAQtE,IAAsC,GACjD8D,EAAUO,UACP,EACAP,EAAUQ,QAAQtE,KAErB8D,EACLd,EAAYJ,EACdmB,EACAI,EACApB,GAEEwB,EACsC,QAAxCG,EAA2B,QAA3BrC,EAAAuB,EAAUG,UAAiB,IAAA1B,OAAA,EAAAA,EAAA8B,UAAa,IAAAO,EAAAA,EDYvB,ECXrB,OAAIZ,EAAUM,SAASrE,GACfiD,GAAauB,EACNI,EAAwB3B,EAAWuB,GAEnC,EAEJT,EAAUM,SDQS,KCPtBpB,IAAc,EAAIuB,EACXI,EACHvB,KAAKwB,IAAI5B,GACTuB,GAGG,EAGJvB,EAEf,KAAK1J,QAASA,UAACkL,eAMX,OALsBlB,EAClBS,GACCD,EACDf,GAGO,IAEA,EAEf,QACI,OAAO,EAEnB,CAEA,MAAM4B,EAA0B,CAACE,EAAcC,IAC3C1B,KAAK2B,OAAQF,EAAOC,IAAa,IAAMA,GAAa,KAGlD,SAAUE,EAAgBjC,GAC5B,MAAMkC,EAAmC,CAAA,EACzC,OAAOC,MAAMC,KAAKpC,GACbqC,QACInC,GACe,OAAZA,QAAmCoC,IAAfpC,EAAQC,KAEnCoC,KAAKrC,IACF,MAAMsC,EAAStC,EAAQC,GACvB+B,EAASM,IAAWN,EAASM,IAAW,GAAK,EAC7C,MAAMC,EACFP,EAASM,GAAU,EACb,GAAGA,MAAWN,EAASM,MACvBA,EACV,OAAO,IAAIE,MAAMxC,EAAS,CACtByC,IAAG,CAACC,EAAQC,IAEK,OAATA,EACOJ,EAEJK,QAAQH,IAAIC,EAAQC,IAEjC,GAEd,CCnLA,MAAMzD,EAAuC,CAAA,kGFgIZ,oGAGS,uRE9HtB,CAChB2D,EACAC,EAWI,CAAA,EACJnC,EAA8B,CAAA,KAE9B,MACMoC,EAAiBhB,EADNiB,UAAUC,eAE3BC,OAAOC,QAAQL,GAAarD,SAAQ,EAAE2D,EAASC,MAC3C,MAAMC,EAAiBF,EACjBG,EAAkBhI,EAAkB+H,GAC1C,IAAIE,EAAqD,GAgDzD,GA/CAN,OAAOjE,KAAK4D,GAAepD,SAASgE,gBAChC,MAAM/C,EAAUmC,EAAcY,GAC9B,GAAIF,EAAiB,CACjB,MAAMzL,gBAAEA,EAAeC,gBAAEA,GAAoBwL,EAevCG,GAbFlC,EAC4B,UAAxBd,EAAQ5I,UAAgB,IAAAsH,EAAAA,EAAI,GAC5B2D,EACA7D,EACAyB,IACC,IAELa,EAC4B,UAAxBd,EAAQ3I,UAAgB,IAAA0J,EAAAA,EAAI,GAC5BsB,EACA7D,EACAyB,IACC,GAEHgD,GACsB,QAAxBC,EAAAlD,EAAQ5I,UAAgB,IAAA8L,OAAA,EAAAA,EAAEhD,cACtBvK,QAAAA,UAAU4K,yBACdP,EAAQ3I,yBAAkB6I,cACtBvK,QAAAA,UAAU4K,cACJ,IAAVyC,GAAeC,IACfH,EAAOK,KAAK,CACRH,QACAI,UAAWH,EACLtN,QAAAA,UAAU4K,kBACVmB,GAGjB,MACGiB,SAAAA,EAAW5D,SAASsE,YAChBA,EACItD,EAC+B,QAA3BrB,EAAAsB,EAAQ4C,UAAmB,IAAAlE,EAAAA,EAAA,CAAE,EAC7B2D,EACA7D,EACAyB,GAEJ8C,EACuB,QAAvBhC,EAAAf,EAAQ4C,UAAe,IAAA7B,OAAA,EAAAA,EAAEb,WAC5B,GAER,IAED2C,EACA,GAAIC,EAAOQ,OAAS,EAAG,CACnB,MAAMC,EACFT,EAAOU,QAAO,CAACC,EAAKC,IAAQD,EAAMC,EAAIV,OAAO,GAC7CF,EAAOQ,OACLF,EAAYN,EAAO,GAAGM,UAC5BT,SAAAA,EAAW5D,SAASsE,GAChBA,EAASE,OAAc7B,EAAW0B,IAEzC,MACGT,SAAAA,EAAW5D,SAASsE,GAAaA,EAAS,IAEjD,GACH,yDArF2B,CAACrE,EAAac,IAC1CtB,EAAYQ,GAAOc"}
@@ -19,6 +19,7 @@ export declare enum RovControl {
19
19
  AltitudeLock = "ALTITUDE_LOCK",
20
20
  HeadingLock = "HEADING_LOCK",
21
21
  AutoStabilization = "AUTO_STABILIZATION",
22
+ DistanceLock = "DISTANCE_LOCK",
22
23
  MainLight = "MAIN_LIGHT",
23
24
  AuxLight = "AUX_LIGHT",
24
25
  ToggleLasers = "TOGGLE_LASERS",
@@ -163,7 +164,9 @@ export declare enum VehicleControl {
163
164
  DecreaseAuxLightBrightness = "DECREASE_AUX_LIGHT_BRIGHTNESS",
164
165
  MainLightBrightness = "MAIN_LIGHT_BRIGHTNESS",
165
166
  IncreaseMainLightBrightness = "INCREASE_MAIN_LIGHT_BRIGHTNESS",
166
- DecreaseMainLightBrightness = "DECREASE_MAIN_LIGHT_BRIGHTNESS"
167
+ DecreaseMainLightBrightness = "DECREASE_MAIN_LIGHT_BRIGHTNESS",
168
+ ReelDisengage = "REEL_DISENGAGE",
169
+ ReelMotors = "REEL_MOTORS"
167
170
  }
168
171
  /**
169
172
  * Input Mapping Profile
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeptrekker/controls",
3
- "version": "0.6.10",
3
+ "version": "0.7.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",