dirk-cfx-react 1.1.95 → 1.1.96
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/{chunk-ZPFW7C2A.js → chunk-3QPPR6OY.js} +3 -3
- package/dist/{chunk-ZPFW7C2A.js.map → chunk-3QPPR6OY.js.map} +1 -1
- package/dist/{chunk-MYNNCLMA.js → chunk-4QSXUENK.js} +325 -43
- package/dist/chunk-4QSXUENK.js.map +1 -0
- package/dist/{chunk-YA2PXBP6.cjs → chunk-5XODUPUE.cjs} +325 -43
- package/dist/chunk-5XODUPUE.cjs.map +1 -0
- package/dist/{chunk-3T2CCW5E.cjs → chunk-6CNT35D6.cjs} +9 -9
- package/dist/{chunk-3T2CCW5E.cjs.map → chunk-6CNT35D6.cjs.map} +1 -1
- package/dist/{chunk-KGLO3ZAS.js → chunk-ABBZHNLP.js} +3 -3
- package/dist/{chunk-KGLO3ZAS.js.map → chunk-ABBZHNLP.js.map} +1 -1
- package/dist/{chunk-QOQQ3ERZ.cjs → chunk-EOSHBZQK.cjs} +17 -17
- package/dist/{chunk-QOQQ3ERZ.cjs.map → chunk-EOSHBZQK.cjs.map} +1 -1
- package/dist/{chunk-Z7N5AQJW.js → chunk-GFODSZSP.js} +3 -3
- package/dist/{chunk-Z7N5AQJW.js.map → chunk-GFODSZSP.js.map} +1 -1
- package/dist/{chunk-K3GDU6EY.cjs → chunk-HG2J72NC.cjs} +167 -167
- package/dist/{chunk-K3GDU6EY.cjs.map → chunk-HG2J72NC.cjs.map} +1 -1
- package/dist/{chunk-E2SFEBBB.cjs → chunk-HOVRS2Z6.cjs} +4 -4
- package/dist/{chunk-E2SFEBBB.cjs.map → chunk-HOVRS2Z6.cjs.map} +1 -1
- package/dist/{chunk-VKYONY7E.cjs → chunk-MY3Z7LPB.cjs} +5 -5
- package/dist/{chunk-VKYONY7E.cjs.map → chunk-MY3Z7LPB.cjs.map} +1 -1
- package/dist/{chunk-HAB6H274.js → chunk-UGDMOWVM.js} +6 -6
- package/dist/{chunk-HAB6H274.js.map → chunk-UGDMOWVM.js.map} +1 -1
- package/dist/{chunk-NVMOGS7Y.js → chunk-WUALULEH.js} +4 -4
- package/dist/{chunk-NVMOGS7Y.js.map → chunk-WUALULEH.js.map} +1 -1
- package/dist/components/index.cjs +76 -76
- package/dist/components/index.js +5 -5
- package/dist/hooks/index.cjs +22 -22
- package/dist/hooks/index.js +4 -4
- package/dist/index.cjs +147 -147
- package/dist/index.js +6 -6
- package/dist/providers/index.cjs +5 -5
- package/dist/providers/index.js +3 -3
- package/dist/utils/index.cjs +48 -48
- package/dist/utils/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-MYNNCLMA.js.map +0 -1
- package/dist/chunk-YA2PXBP6.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/colorWithAlpha.ts","../src/utils/misc.ts","../src/types/theme.ts","../src/utils/useSettings.ts","../src/utils/fetchNui.ts","../src/utils/internalEvent.ts","../src/utils/locales.ts","../src/utils/map.ts","../src/utils/profanity.ts","../src/utils/createSkill.ts","../src/utils/images.ts","../src/utils/useItems.ts","../src/utils/useFrameworkGroups.ts","../src/utils/useModels.ts","../src/utils/useVehicles.ts","../src/utils/inputMapper.ts","../src/utils/extractDefaults.ts","../src/utils/gtaControls.ts"],"names":["create","requested"],"mappings":"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","file":"chunk-4QSXUENK.js","sourcesContent":["\r\nconst colorNames = {\r\n AliceBlue: { r: 240, g: 248, b: 255 },\r\n AntiqueWhite: { r: 250, g: 235, b: 215 },\r\n Aqua: { r: 0, g: 255, b: 255 },\r\n Aquamarine: { r: 127, g: 255, b: 212 },\r\n Azure: { r: 240, g: 255, b: 255 },\r\n Beige: { r: 245, g: 245, b: 220 },\r\n Bisque: { r: 255, g: 228, b: 196 },\r\n Black: { r: 0, g: 0, b: 0 },\r\n BlanchedAlmond: { r: 255, g: 235, b: 205 },\r\n Blue: { r: 0, g: 0, b: 255 },\r\n BlueViolet: { r: 138, g: 43, b: 226 },\r\n Brown: { r: 165, g: 42, b: 42 },\r\n BurlyWood: { r: 222, g: 184, b: 135 },\r\n CadetBlue: { r: 95, g: 158, b: 160 },\r\n Chartreuse: { r: 127, g: 255, b: 0 },\r\n Chocolate: { r: 210, g: 105, b: 30 },\r\n Coral: { r: 255, g: 127, b: 80 },\r\n CornflowerBlue: { r: 100, g: 149, b: 237 },\r\n Cornsilk: { r: 255, g: 248, b: 220 },\r\n Crimson: { r: 220, g: 20, b: 60 },\r\n Cyan: { r: 0, g: 255, b: 255 },\r\n DarkBlue: { r: 0, g: 0, b: 139 },\r\n DarkCyan: { r: 0, g: 139, b: 139 },\r\n DarkGoldenRod: { r: 184, g: 134, b: 11 },\r\n DarkGray: { r: 169, g: 169, b: 169 },\r\n DarkGreen: { r: 0, g: 100, b: 0 },\r\n DarkKhaki: { r: 189, g: 183, b: 107 },\r\n DarkMagenta: { r: 139, g: 0, b: 139 },\r\n DarkOliveGreen: { r: 85, g: 107, b: 47 },\r\n DarkOrange: { r: 255, g: 140, b: 0 },\r\n DarkOrchid: { r: 153, g: 50, b: 204 },\r\n DarkRed: { r: 139, g: 0, b: 0 },\r\n DarkSalmon: { r: 233, g: 150, b: 122 },\r\n DarkSeaGreen: { r: 143, g: 188, b: 143 },\r\n DarkSlateBlue: { r: 72, g: 61, b: 139 },\r\n DarkSlateGray: { r: 47, g: 79, b: 79 },\r\n DarkTurquoise: { r: 0, g: 206, b: 209 },\r\n DarkViolet: { r: 148, g: 0, b: 211 },\r\n DeepPink: { r: 255, g: 20, b: 147 },\r\n DeepSkyBlue: { r: 0, g: 191, b: 255 },\r\n DimGray: { r: 105, g: 105, b: 105 },\r\n DodgerBlue: { r: 30, g: 144, b: 255 },\r\n FireBrick: { r: 178, g: 34, b: 34 },\r\n FloralWhite: { r: 255, g: 250, b: 240 },\r\n ForestGreen: { r: 34, g: 139, b: 34 },\r\n Fuchsia: { r: 255, g: 0, b: 255 },\r\n Gainsboro: { r: 220, g: 220, b: 220 },\r\n GhostWhite: { r: 248, g: 248, b: 255 },\r\n Gold: { r: 255, g: 215, b: 0 },\r\n GoldenRod: { r: 218, g: 165, b: 32 },\r\n Gray: { r: 128, g: 128, b: 128 },\r\n Green: { r: 0, g: 128, b: 0 },\r\n GreenYellow: { r: 173, g: 255, b: 47 },\r\n HoneyDew: { r: 240, g: 255, b: 240 },\r\n HotPink: { r: 255, g: 105, b: 180 },\r\n IndianRed: { r: 205, g: 92, b: 92 },\r\n Indigo: { r: 75, g: 0, b: 130 },\r\n Ivory: { r: 255, g: 255, b: 240 },\r\n Khaki: { r: 240, g: 230, b: 140 },\r\n Lavender: { r: 230, g: 230, b: 250 },\r\n LavenderBlush: { r: 255, g: 240, b: 245 },\r\n LawnGreen: { r: 124, g: 252, b: 0 },\r\n LemonChiffon: { r: 255, g: 250, b: 205 },\r\n LightBlue: { r: 173, g: 216, b: 230 },\r\n LightCoral: { r: 240, g: 128, b: 128 },\r\n LightCyan: { r: 224, g: 255, b: 255 },\r\n LightGoldenRodYellow: { r: 250, g: 250, b: 210 },\r\n LightGray: { r: 211, g: 211, b: 211 },\r\n LightGreen: { r: 144, g: 238, b: 144 },\r\n LightPink: { r: 255, g: 182, b: 193 },\r\n LightSalmon: { r: 255, g: 160, b: 122 },\r\n LightSeaGreen: { r: 32, g: 178, b: 170 },\r\n LightSkyBlue: { r: 135, g: 206, b: 250 },\r\n LightSlateGray: { r: 119, g: 136, b: 153 },\r\n LightSteelBlue: { r: 176, g: 196, b: 222 },\r\n LightYellow: { r: 255, g: 255, b: 224 },\r\n Lime: { r: 0, g: 255, b: 0 },\r\n LimeGreen: { r: 50, g: 205, b: 50 },\r\n Linen: { r: 250, g: 240, b: 230 },\r\n Magenta: { r: 255, g: 0, b: 255 },\r\n Maroon: { r: 128, g: 0, b: 0 }, // Maroon\r\n MediumAquaMarine: { r: 102, g: 205, b: 170 },\r\n MediumBlue: { r: 0, g: 0, b: 205 },\r\n MediumOrchid: { r: 186, g: 85, b: 211 },\r\n MediumPurple: { r: 147, g: 112, b: 219 },\r\n MediumSeaGreen: { r: 60, g: 179, b: 113 },\r\n MediumSlateBlue: { r: 123, g: 104, b: 238 },\r\n MediumSpringGreen: { r: 0, g: 250, b: 154 },\r\n MediumTurquoise: { r: 72, g: 209, b: 204 },\r\n MediumVioletRed: { r: 199, g: 21, b: 133 },\r\n MidnightBlue: { r: 25, g: 25, b: 112 },\r\n MintCream: { r: 245, g: 255, b: 250 },\r\n MistyRose: { r: 255, g: 228, b: 225 },\r\n Moccasin: { r: 255, g: 228, b: 181 },\r\n NavajoWhite: { r: 255, g: 222, b: 173 },\r\n Navy: { r: 0, g: 0, b: 128 },\r\n OldLace: { r: 253, g: 245, b: 230 },\r\n Olive: { r: 128, g: 128, b: 0 },\r\n OliveDrab: { r: 107, g: 142, b: 35 },\r\n Orange: { r: 255, g: 165, b: 0 },\r\n OrangeRed: { r: 255, g: 69, b: 0 },\r\n Orchid: { r: 218, g: 112, b: 214 },\r\n PaleGoldenRod: { r: 238, g: 232, b: 170 },\r\n PaleGreen: { r: 152, g: 251, b: 152 },\r\n PaleTurquoise: { r: 175, g: 238, b: 238 },\r\n PaleVioletRed: { r: 219, g: 112, b: 147 },\r\n PapayaWhip: { r: 255, g: 239, b: 213 },\r\n PeachPuff: { r: 255, g: 218, b: 185 },\r\n Peru: { r: 205, g: 133, b: 63 },\r\n Pink: { r: 255, g: 192, b: 203 },\r\n Plum: { r: 221, g: 160, b: 221 },\r\n PowderBlue: { r: 176, g: 224, b: 230 },\r\n Purple: { r: 128, g: 0, b: 128 },\r\n RebeccaPurple: { r: 102, g: 51, b: 153 },\r\n Red: { r: 255, g: 0, b: 0 },\r\n RosyBrown: { r: 188, g: 143, b: 143 },\r\n RoyalBlue: { r: 65, g: 105, b: 225 },\r\n SaddleBrown: { r: 139, g: 69, b: 19 },\r\n Salmon: { r: 250, g: 128, b: 114 },\r\n SandyBrown: { r: 244, g: 164, b: 96 },\r\n SeaGreen: { r: 46, g: 139, b: 87 },\r\n SeaShell: { r: 255, g: 245, b: 238 },\r\n Sienna: { r: 160, g: 82, b: 45 },\r\n Silver: { r: 192, g: 192, b: 192 },\r\n SkyBlue: { r: 135, g: 206, b: 235 },\r\n SlateBlue: { r: 106, g: 90, b: 205 },\r\n SlateGray: { r: 112, g: 128, b: 144 },\r\n Snow: { r: 255, g: 250, b: 250 },\r\n SpringGreen: { r: 0, g: 255, b: 127 },\r\n SteelBlue: { r: 70, g: 130, b: 180 },\r\n Tan: { r: 210, g: 180, b: 140 },\r\n Teal: { r: 0, g: 128, b: 128 },\r\n Thistle: { r: 216, g: 191, b: 216 },\r\n Tomato: { r: 255, g: 99, b: 71 },\r\n Turquoise: { r: 64, g: 224, b: 208 },\r\n Violet: { r: 238, g: 130, b: 238 },\r\n Wheat: { r: 245, g: 222, b: 179 },\r\n White: { r: 255, g: 255, b: 255 },\r\n WhiteSmoke: { r: 245, g: 245, b: 245 },\r\n Yellow: { r: 255, g: 255, b: 0 },\r\n YellowGreen: { r: 154, g: 205, b: 50 }\r\n};\r\n\r\n\r\n\r\n\r\nexport function colorWithAlpha(color: string, alpha: number): string {\r\n const lowerCasedColor = color.toLowerCase() as keyof typeof colorNames;\r\n \r\n if (colorNames[lowerCasedColor]) {\r\n const rgb = colorNames[lowerCasedColor];\r\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha})`;\r\n }\r\n \r\n // If color is in hex format (#RRGGBB)\r\n if (/^#([A-Fa-f0-9]{6})$/.test(color)) {\r\n const hex = color.slice(1);\r\n const bigint = parseInt(hex, 16);\r\n const r = (bigint >> 16) & 255;\r\n const g = (bigint >> 8) & 255;\r\n const b = bigint & 255;\r\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\r\n }\r\n \r\n // If color is in rgb format (rgb(r, g, b))\r\n if (/^rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)$/.test(color)) {\r\n const result = color.match(/^rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)$/);\r\n if (result) {\r\n return `rgba(${result[1]}, ${result[2]}, ${result[3]}, ${alpha})`;\r\n }\r\n }\r\n \r\n // Default to original color if format is not recognized\r\n return color;\r\n}","export const isEnvBrowser = (): boolean => !(window as any).invokeNative;\r\n\r\n// Basic no operation function\r\nexport const noop = () => {};\r\n\r\nexport const splitFAString = (faString:string) => {\r\n const [prefix, newIcon] = faString.split('-');\r\n if (!prefix || !newIcon) return {prefix: 'fas', newIcon: 'question'};\r\n return {prefix, newIcon};\r\n}\r\n\r\nexport const numberToRoman = (num:number) => {\r\n const romanNumerals = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX'] \r\n return romanNumerals[num]\r\n}\r\n\r\nexport const copyToClipboard = (text:string) => {\r\n const el = document.createElement('textarea');\r\n el.value = text;\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n}\r\n\r\nexport const openLink = (url:string) => {\r\n if (isEnvBrowser()) {\r\n window.open(url, '_blank');\r\n } else {\r\n // @ts-expect-error -- invokeNative exists in NUI\r\n window.invokeNative('openLink', url);\r\n } \r\n}","import { z } from \"zod\";\n\n/**\n * Per-resource theme override block.\n *\n * Single source of truth for the shape + defaults that were previously\n * duplicated across `components/ThemeOverrideSection.tsx` and\n * `utils/useSettings.ts`. Both now import from here.\n *\n * Data shape (driven by a schema block on the consumer side):\n * theme: {\n * useOverride: boolean,\n * primaryColor: string, // \"dirk\" | \"custom\" | mantine palette name\n * primaryShade: 0..9,\n * customTheme: string[10], // hex stops\n * }\n */\n\n/**\n * The 10-stop hex palette used as the fallback custom theme. This exact tuple\n * was duplicated in ThemeOverrideSection (DEFAULT_PALETTE) and useSettings\n * (customTheme). Keep it as a 10-tuple — Mantine `MantineColorsTuple` expects\n * exactly ten stops.\n */\nexport const DEFAULT_PALETTE: string[] = [\n \"#f0f4ff\",\n \"#d9e3ff\",\n \"#bfcfff\",\n \"#a6bbff\",\n \"#8ca7ff\",\n \"#7393ff\",\n \"#5a7fff\",\n \"#406bff\",\n \"#2547ff\",\n \"#0b33ff\",\n];\n\n/**\n * Zod schema for the theme override block. `customTheme` is validated as an\n * array of strings (the editor enforces the 10-length shape at the UI layer\n * by falling back to DEFAULT_PALETTE when the count is wrong).\n */\nexport const ThemeOverrideSchema = z.object({\n useOverride: z.boolean(),\n primaryColor: z.string(),\n primaryShade: z.number(),\n customTheme: z.array(z.string()),\n});\n\nexport type ThemeOverrideValue = z.infer<typeof ThemeOverrideSchema>;\n\n/**\n * Canonical default theme override block. Used as the merge fallback in\n * ThemeOverrideSection and (the palette portion) as the default custom theme\n * in useSettings.\n */\nexport const defaultThemeOverride: ThemeOverrideValue = {\n useOverride: false,\n primaryColor: \"dirk\",\n primaryShade: 5,\n customTheme: DEFAULT_PALETTE,\n};\n","import { MantineColorsTuple } from \"@mantine/core\";\r\nimport { create } from \"zustand\";\r\nimport { DEFAULT_PALETTE } from \"../types/theme\";\r\n\r\nexport type SettingsState = {\r\n game: \"fivem\" | \"rdr3\";\r\n currency: string;\r\n primaryColor: string;\r\n primaryShade: number;\r\n itemImgPath: string;\r\n resourceVersion?: string;\r\n customTheme?: MantineColorsTuple;\r\n overideResourceName?: string;\r\n serverName?: string;\r\n logo?: string;\r\n language?: string;\r\n // Server environment detection, populated from dirk_lib's GET_SETTINGS\r\n // (lib.settings). Centralised here so any consumer/component can gate on the\r\n // framework/inventory without its own fetch.\r\n framework?: string; // 'qb-core' | 'qbx_core' | 'es_extended' | ...\r\n inventory?: string; // 'ox_inventory' | 'qb-inventory' | 'codem-inventory' | ...\r\n};\r\n\r\nexport const useSettings = create<SettingsState>(() => ({\r\n currency: \"$\",\r\n game: \"fivem\",\r\n primaryColor: \"dirk\",\r\n primaryShade: 9,\r\n itemImgPath: \"\",\r\n resourceVersion: \"dev\",\r\n customTheme: DEFAULT_PALETTE as unknown as MantineColorsTuple,\r\n}));\r\n\r\n// registerInitialFetch<Partial<SettingsState>>('GET_SETTINGS', undefined).then((data) => {\r\n// if (!data) {\r\n// console.warn('No settings data received from GET_SETTINGS fetch.');\r\n// return;\r\n// }\r\n// useSettings.setState({\r\n// ...data,\r\n// });\r\n// })\r\n","import { useEffect } from \"react\";\r\nimport { isEnvBrowser } from \"./misc\";\r\nimport { useSettings } from \"./useSettings\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use.\r\n */\r\nexport async function fetchNui<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T,\r\n): Promise<T> {\r\n const options = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=UTF-8\",\r\n },\r\n body: JSON.stringify(data),\r\n };\r\n\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n if (isEnvBrowser() && mockData === undefined) {\r\n console.warn(\r\n `[fetchNui] Called fetchNui for event \"${eventName}\" in browser environment without mockData. Returning empty object.`,\r\n );\r\n return {} as T;\r\n }\r\n\r\n const overrideResourceName = useSettings.getState().overideResourceName;\r\n\r\n // Resource-name resolution:\r\n // 1. NUI iframes expose `window.GetParentResourceName` — use that.\r\n // 2. DUIs don't have it, but DirkProvider sets `overideResourceName`\r\n // once it mounts, so consumer DUIs that wait until then resolve fine.\r\n // 3. If NEITHER is available (e.g. a DUI before its DirkProvider has\r\n // mounted, which happens for module-level `registerInitialFetch`\r\n // calls in `locales.ts`), there's no valid resource to call. Skip\r\n // the fetch entirely — firing it against a placeholder URL just\r\n // produces a doomed network request + an \"Uncaught (in promise)\r\n // TypeError: Failed to fetch\" in older consumer builds that\r\n // lacked the try/catch fallback below. Caller can rely on the\r\n // mockData return or refetch once context is established.\r\n const hasResourceContext =\r\n typeof (window as any).GetParentResourceName === \"function\" ||\r\n !!overrideResourceName;\r\n\r\n if (!hasResourceContext) {\r\n return (mockData ?? ({} as T));\r\n }\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : overrideResourceName as string;\r\n\r\n try {\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n return await resp.json();\r\n } catch {\r\n return (mockData ?? ({} as T));\r\n }\r\n}\r\n\r\n// -----------------------------\r\n// Initial fetch registration\r\n// -----------------------------\r\nexport type InitialFetch<T> = () => Promise<T>;\r\nexport const initialFetches: Record<string, InitialFetch<unknown>> = {};\r\n\r\n/**\r\n * Registers an initial fetch that automatically uses fetchNui.\r\n * Works like:\r\n * ```ts\r\n * registerInitialFetch<{ name: string }>(\"MY_EVENT_NAME\", undefined, { name: \"Mocky\" });\r\n * ```\r\n * and returns a Promise resolving to the same type as fetchNui.\r\n */\r\nexport async function registerInitialFetch<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T,\r\n): Promise<T> {\r\n const fetcher = () => fetchNui<T>(eventName, data, mockData);\r\n initialFetches[eventName] = fetcher;\r\n return fetcher(); // run immediately if needed\r\n}\r\n\r\n/**\r\n * Runs all registered initial fetches in parallel.\r\n */\r\nexport async function runFetches() {\r\n return Promise.all(\r\n Object.entries(initialFetches).map(async ([eventName, fetcher]) => {\r\n const data = await fetcher();\r\n return { eventName, data };\r\n }),\r\n );\r\n}\r\n\r\n/**\r\n * React hook to automatically run all registered fetches on mount.\r\n */\r\nexport const useAutoFetcher = () => {\r\n useEffect(() => {\r\n if (isEnvBrowser()) return;\r\n runFetches().catch(() => {});\r\n }, []);\r\n};\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string, mockData?: T): Promise<T> => { \r\n return fetchNui<T>('FETCH_LUA_TABLE', { tableName }, mockData);\r\n} \r\n\r\nexport const registerInitialLuaTableFetch = <T>(tableName: string, mockData?: T): Promise<T> => { \r\n return registerInitialFetch<T>('FETCH_LUA_TABLE', { tableName }, mockData);\r\n} \r\n\r\n\r\n\r\n// useage example:\r\n// registerInitialLuaTableFetch<{ [key: string]: string }>('my_lua_table', { key1: 'value1', key2: 'value2' }); \r\n","import { isEnvBrowser } from \"./misc\";\r\n\r\nexport interface InternalEvent<T = unknown> {\r\n action: string;\r\n data?: T;\r\n}\r\n\r\n/**\r\n * Emulates dispatching an event using SendNuiMessage in the lua scripts.\r\n * This is used when developing in browser\r\n *\r\n * @param events - The event you want to cover\r\n * @param timer - How long until it should trigger (ms)\r\n */\r\nexport const internalEvent = <P>(events: InternalEvent<P>[], timer = 1000): void => {\r\n if (isEnvBrowser()) {\r\n for (const event of events) {\r\n setTimeout(() => {\r\n window.dispatchEvent(\r\n new MessageEvent(\"message\", {\r\n data: {\r\n action: event.action,\r\n data: event.data,\r\n },\r\n }),\r\n );\r\n }, timer);\r\n }\r\n }\r\n};\r\n","import { create } from \"zustand\";\r\nimport { fetchNui, registerInitialFetch } from \"../utils/fetchNui\";\r\n\r\n\r\ntype localeType = (key: string, ...args: string[]) => string;\r\n\r\ntype LocalesProps = {\r\n [key: string]: string;\r\n}\r\n\r\ntype LocaleStoreProps = {\r\n locale: localeType;\r\n locales: LocalesProps;\r\n};\r\n\r\nconst reportedMissing = new Set<string>();\r\nfunction reportMissingLocale(key: string) {\r\n if (!key || reportedMissing.has(key)) return;\r\n reportedMissing.add(key);\r\n fetchNui('REPORT_MISSING_LOCALE', { key }).catch(() => {});\r\n}\r\n\r\n\r\n// Package-level locale defaults for dirk-cfx-react's own chrome (the ConfigPanel\r\n// buttons, modals, etc.). Merged UNDER the consumer's locale dict on every\r\n// load/update, so a consumer that doesn't define these keys still renders\r\n// English (never the raw key), and any consumer CAN override them (e.g. a\r\n// Spanish es.json that provides the same keys).\r\nconst PACKAGE_DEFAULTS: LocalesProps = {\r\n \"OccupantsDesc\": \"Here you can view and manage the occupants of your traphouse. These occupants can be used mainly for selling drugs to the NPCs surrounding your traphouse. However they have other uses to so be careful who you add as an occupant.\",\r\n \"cfgpanel_discard\": \"Discard\",\r\n \"cfgpanel_manual_edit\": \"Manual Edit\",\r\n \"cfgpanel_reset_defaults\": \"Reset Defaults\",\r\n \"cfgpanel_version\": \"Version\",\r\n \"cfgpanel_back_title\": \"Back to script list\",\r\n \"cfgpanel_undo\": \"Undo\",\r\n \"cfgpanel_redo\": \"Redo\",\r\n \"cfgpanel_save\": \"Save\",\r\n \"cfgpanel_saving\": \"Saving...\",\r\n \"cfgpanel_history\": \"History\",\r\n \"cfgpanel_reset_title\": \"Reset to Defaults\",\r\n \"cfgpanel_reset_desc\": \"This will permanently reset ALL config back to the defaults. Every value you have configured will be overwritten. This cannot be undone.\",\r\n \"cfgpanel_reset_confirm\": \"Reset Config\",\r\n \"cfgpanel_discard_title\": \"Discard Unsaved Changes?\",\r\n \"cfgpanel_discard_desc_back\": \"You have unsaved changes. Going back now will discard them.\",\r\n \"cfgpanel_discard_desc_close\": \"You have unsaved changes. Closing now will discard them.\",\r\n \"cfgpanel_discard_confirm_back\": \"Go Back Without Saving\",\r\n \"cfgpanel_discard_confirm_close\": \"Close Without Saving\",\r\n \"cfgpanel_json_title\": \"Config JSON\",\r\n \"cfgpanel_cancel\": \"Cancel\",\r\n \"cfgpanel_apply\": \"Apply\",\r\n \"cfgpanel_history_title\": \"Config History\",\r\n \"cfgpanel_close\": \"Close\",\r\n};\r\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: { ...PACKAGE_DEFAULTS },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists) reportMissingLocale(key);\r\n let translation = exists || key;\r\n if (args.length) {\r\n // convert the arg to a string and replace the %s in the translation\r\n \r\n\r\n translation = translation.replace(/%s/g, () => String(args.shift() || ''));\r\n }\r\n return translation;\r\n },\r\n };\r\n});\r\n\r\n// export locale as a standalone function\r\nexport const locale = localeStore.getState().locale;\r\n\r\nregisterInitialFetch<LocalesProps>('GET_LOCALES', undefined).then((data) => {\r\n localeStore.setState({ locales: { ...PACKAGE_DEFAULTS, ...data } });\r\n}).catch(() => {})\r\n\r\n// dirk_lib broadcasts UPDATE_DIRK_LIB_LOCALES whenever an admin changes the\r\n// `language` setting, so the dict updates live without a resource restart.\r\nif (typeof window !== \"undefined\") {\r\n window.addEventListener(\"message\", (event) => {\r\n const msg = event.data;\r\n if (!msg || msg.action !== \"UPDATE_DIRK_LIB_LOCALES\") return;\r\n if (!msg.data || typeof msg.data !== \"object\") return;\r\n // Defensive: never overwrite a populated dict with an empty one. dirk_lib\r\n // and consumer dui.lua listeners can both fire mid-table.wipe/repopulate\r\n // inside lib.locale(), and a stray {} broadcast would silently snap the\r\n // whole NUI back to raw keys (e.g. \"ModifyRod\" instead of the translation).\r\n if (Object.keys(msg.data).length === 0) return;\r\n localeStore.setState({ locales: { ...PACKAGE_DEFAULTS, ...(msg.data as LocalesProps) } });\r\n });\r\n}","// ------------------ Game <-> Map Conversion ------------------\r\nexport const mapCenter: [number, number] = [-119.43, 58.84]\r\nexport const latPr100 = 1.421\r\n\r\n/** Convert game world coordinates -> Leaflet map coordinates */\r\nexport function gameToMap(x: number, y: number): [number, number] {\r\n return [\r\n mapCenter[0] + (latPr100 / 100) * y, // lng\r\n mapCenter[1] + (latPr100 / 100) * x, // lat\r\n ]\r\n}\r\n\r\n/** Convert Leaflet map coordinates -> game world coordinates */\r\nexport function mapToGame(lat: number, lng: number): [number, number] {\r\n return [\r\n ((lng - mapCenter[1]) * 100) / latPr100,\r\n ((lat - mapCenter[0]) * 100) / latPr100,\r\n ]\r\n}\r\n","import { create } from \"zustand\";\r\n\r\n\r\nexport const useProfanityStore = create<string[]>(() => ([\r\n 'ars3',\r\n 'a55',\r\n 'a55hole',\r\n 'ahole',\r\n 'anus',\r\n 'ash0le',\r\n 'ash0les',\r\n 'asholes',\r\n \"4r5e\",\r\n \"5h1t\",\r\n \"5hit\",\r\n \"a55\",\r\n \"anal\",\r\n \"anus\",\r\n \"ar5e\",\r\n \"arrse\",\r\n \"arse\",\r\n \"ass\",\r\n \"ass-fucker\",\r\n \"asses\",\r\n \"assfucker\",\r\n \"assfukka\",\r\n \"asshole\",\r\n \"assholes\",\r\n \"asswhole\",\r\n \"a_s_s\",\r\n \"b!tch\",\r\n \"b00bs\",\r\n \"b17ch\",\r\n \"b1tch\",\r\n \"ballsack\",\r\n \"beastial\",\r\n \"beastiality\",\r\n \"bestial\",\r\n \"bestiality\",\r\n \"bi+ch\",\r\n \"biatch\",\r\n \"bitch\",\r\n \"bitcher\",\r\n \"bitchers\",\r\n \"bitches\",\r\n \"bitchin\",\r\n \"bitching\",\r\n \"blow job\",\r\n \"blowjob\",\r\n \"blowjobs\",\r\n \"boiolas\",\r\n \"bollock\",\r\n \"bollok\",\r\n \"boner\",\r\n \"boob\",\r\n \"boobs\",\r\n \"booobs\",\r\n \"boooobs\",\r\n \"booooobs\",\r\n \"booooooobs\",\r\n \"breasts\",\r\n \"buceta\",\r\n \"bunny fucker\",\r\n \"butthole\",\r\n \"buttmuch\",\r\n \"buttplug\",\r\n \"c0ck\",\r\n \"c0cksucker\",\r\n \"carpet muncher\",\r\n \"chink\",\r\n \"cipa\",\r\n \"cl1t\",\r\n \"clit\",\r\n \"clitoris\",\r\n \"clits\",\r\n \"cnut\",\r\n \"cock\",\r\n \"cock-sucker\",\r\n \"cockface\",\r\n \"cockhead\",\r\n \"cockmunch\",\r\n \"cockmuncher\",\r\n \"cocks\",\r\n \"cocksuck\",\r\n \"cocksucked\",\r\n \"cocksucker\",\r\n \"cocksucking\",\r\n \"cocksucks\",\r\n \"cocksuka\",\r\n \"cocksukka\",\r\n \"cokmuncher\",\r\n \"coksucka\",\r\n \"coon\",\r\n \"cum\",\r\n \"cummer\",\r\n \"cumming\",\r\n \"cums\",\r\n \"cumshot\",\r\n \"cunilingus\",\r\n \"cunillingus\",\r\n \"cunnilingus\",\r\n \"cunt\",\r\n \"cuntlick\",\r\n \"cuntlicker\",\r\n \"cuntlicking\",\r\n \"cunts\",\r\n \"cyalis\",\r\n \"cyberfuc\",\r\n \"cyberfuck\",\r\n \"cyberfucked\",\r\n \"cyberfucker\",\r\n \"cyberfuckers\",\r\n \"cyberfucking\",\r\n \"d1ck\",\r\n \"dlck\",\r\n \"dog-fucker\",\r\n \"doggin\",\r\n \"dogging\",\r\n \"donkeyribber\",\r\n \"dyke\",\r\n \"ejaculate\",\r\n \"ejaculated\",\r\n \"ejaculates\",\r\n \"ejaculating\",\r\n \"ejaculatings\",\r\n \"ejaculation\",\r\n \"ejakulate\",\r\n \"f u c k\",\r\n \"f u c k e r\",\r\n \"f4nny\",\r\n \"fag\",\r\n \"fagging\",\r\n \"faggitt\",\r\n \"faggot\",\r\n \"faggs\",\r\n \"fagot\",\r\n \"fagots\",\r\n \"fags\",\r\n \"fannyflaps\",\r\n \"fannyfucker\",\r\n \"fatass\",\r\n \"fcuk\",\r\n \"fcuker\",\r\n \"fcuking\",\r\n \"feck\",\r\n \"fecker\",\r\n \"felching\",\r\n \"fellate\",\r\n \"fellatio\",\r\n \"fingerfuck\",\r\n \"fingerfucked\",\r\n \"fingerfucker\",\r\n \"fingerfuckers\",\r\n \"fingerfucking\",\r\n \"fingerfucks\",\r\n \"fistfuck\",\r\n \"fistfucked\",\r\n \"fistfucker\",\r\n \"fistfuckers\",\r\n \"fistfucking\",\r\n \"fistfuckings\",\r\n \"fistfucks\",\r\n \"fuck\",\r\n \"fucka\",\r\n \"fucked\",\r\n \"fucker\",\r\n \"fuckers\",\r\n \"fuckhead\",\r\n \"fuckheads\",\r\n \"fuckin\",\r\n \"fucking\",\r\n \"fuckings\",\r\n \"fuckingshitmotherfucker\",\r\n \"fuckme\",\r\n \"fucks\",\r\n \"fuckwhit\",\r\n \"fuckwit\",\r\n \"fudge packer\",\r\n \"fudgepacker\",\r\n \"fuk\",\r\n \"fuker\",\r\n \"fukker\",\r\n \"fukkin\",\r\n \"fuks\",\r\n \"fukwhit\",\r\n \"fukwit\",\r\n \"fux\",\r\n \"fux0r\",\r\n \"f_u_c_k\",\r\n \"gangbang\",\r\n \"gangbanged\",\r\n \"gangbangs\",\r\n \"gaysex\",\r\n \"God\",\r\n \"god-dam\",\r\n \"god-damned\",\r\n \"goddamn\",\r\n \"goddamned\",\r\n \"homo\",\r\n \"jack-off\",\r\n \"jerk-off\",\r\n \"l3i+ch\",\r\n \"l3itch\",\r\n \"labia\",\r\n \"lusting\",\r\n \"m0f0\",\r\n \"m0fo\",\r\n \"m45terbate\",\r\n \"ma5terb8\",\r\n \"ma5terbate\",\r\n \"masochist\",\r\n \"master-bate\",\r\n \"masterb8\",\r\n \"masterbat*\",\r\n \"masterbat3\",\r\n \"masterbate\",\r\n \"masterbation\",\r\n \"masterbations\",\r\n \"masturbate\",\r\n \"mo-fo\",\r\n \"mof0\",\r\n \"mothafuck\",\r\n \"mothafucka\",\r\n \"mothafuckas\",\r\n \"mothafuckaz\",\r\n \"mothafucked\",\r\n \"mothafucker\",\r\n \"mothafuckers\",\r\n \"mothafuckin\",\r\n \"mothafucking\",\r\n \"mothafuckings\",\r\n \"mothafucks\",\r\n \"mother fucker\",\r\n \"motherfuck\",\r\n \"motherfucked\",\r\n \"motherfucker\",\r\n \"motherfuckers\",\r\n \"motherfuckin\",\r\n \"motherfucking\",\r\n \"motherfuckings\",\r\n \"motherfuckka\",\r\n \"motherfucks\",\r\n \"muthafecker\",\r\n \"muthafuckker\",\r\n \"mutherfucker\",\r\n \"n1gga\",\r\n \"n1gger\",\r\n \"nazi\",\r\n \"nigg3r\",\r\n \"nigg4h\",\r\n \"nigga\",\r\n \"niggah\",\r\n \"niggas\",\r\n \"niggaz\",\r\n \"nigger\",\r\n \"niggers\",\r\n \"nob jokey\",\r\n \"nobjocky\",\r\n \"nobjokey\",\r\n \"orgasim\",\r\n \"orgasims\",\r\n \"orgasm\",\r\n \"orgasms\",\r\n \"p0rn\",\r\n \"penis\",\r\n \"penisfucker\",\r\n \"phonesex\",\r\n \"phuck\",\r\n \"phuked\",\r\n \"phuking\",\r\n \"phukked\",\r\n \"phukking\",\r\n \"phuks\",\r\n \"phuq\",\r\n \"pigfucker\",\r\n \"pimpis\",\r\n \"piss\",\r\n \"pissed\",\r\n \"pisser\",\r\n \"pissers\",\r\n \"pisses\",\r\n \"pissflaps\",\r\n \"pissin\",\r\n \"pissing\",\r\n \"pissoff\",\r\n \"poop\",\r\n \"porn\",\r\n \"porno\",\r\n \"pornography\",\r\n \"pornos\",\r\n \"prick\",\r\n \"pricks\",\r\n \"pron\",\r\n \"pube\",\r\n \"pusse\",\r\n \"pussi\",\r\n \"pussies\",\r\n \"pussy\",\r\n \"pussys\",\r\n \"rectum\",\r\n \"retard\",\r\n \"rimjaw\",\r\n \"rimming\",\r\n \"s hit\",\r\n \"s.o.b.\",\r\n \"scroat\",\r\n \"scrote\",\r\n \"scrotum\",\r\n \"semen\",\r\n \"sex\",\r\n \"sh!+\",\r\n \"sh!t\",\r\n \"sh1t\",\r\n \"shemale\",\r\n \"shit\",\r\n \"shitdick\",\r\n \"shite\",\r\n \"shited\",\r\n \"shitey\",\r\n \"shitfuck\",\r\n \"shitfull\",\r\n \"shithead\",\r\n \"shiting\",\r\n \"shitings\",\r\n \"shits\",\r\n \"shitted\",\r\n \"shitter\",\r\n \"shitters\",\r\n \"shitting\",\r\n \"shittings\",\r\n \"shitty\",\r\n \"skank\",\r\n \"slut\",\r\n \"sluts\",\r\n \"smegma\",\r\n \"smut\",\r\n \"son-of-a-bitch\",\r\n \"spac\",\r\n \"s_h_i_t\",\r\n \"t1tt1e5\",\r\n \"t1tties\",\r\n \"teets\",\r\n \"teez\",\r\n \"testical\",\r\n \"testicle\",\r\n \"titfuck\",\r\n \"tits\",\r\n \"titt\",\r\n \"tittie5\",\r\n \"tittiefucker\",\r\n \"titties\",\r\n \"tittyfuck\",\r\n \"tittywank\",\r\n \"titwank\",\r\n \"tosser\",\r\n \"tw4t\",\r\n \"twat\",\r\n \"twathead\",\r\n \"twatty\",\r\n \"twunt\",\r\n \"twunter\",\r\n \"v14gra\",\r\n \"v1gra\",\r\n \"vagina\",\r\n \"viagra\",\r\n \"vulva\",\r\n \"w00se\",\r\n \"whoar\",\r\n \"whore\",\r\n \"xrated\",\r\n]));\r\n\r\nexport const isProfanity = (word: string) => {\r\n const all = useProfanityStore.getState();\r\n \r\n // Convert to array if needed\r\n const profanityArray = Array.isArray(all) \r\n ? all \r\n : typeof all === 'object' && all !== null\r\n ? Object.values(all)\r\n : [];\r\n return profanityArray.includes(word);\r\n};\r\n\r\n","import { create } from 'zustand';\r\nimport { useMemo } from 'react';\r\n\r\nexport type SkillSettings = {\r\n baseLevel: number;\r\n maxLevel: number;\r\n baseXP: number;\r\n modifier: number;\r\n};\r\n\r\ntype SkillStore = {\r\n settings: SkillSettings;\r\n levelMap: Record<string, number>;\r\n setSettings: (updater: SkillSettings | ((prev: SkillSettings) => SkillSettings)) => void;\r\n};\r\n\r\ntype SkillHookResult = {\r\n prevLevelXP: number;\r\n currentLevel: number;\r\n nextLevel: number;\r\n currentLevelXP: number;\r\n nextLevelXP: number;\r\n progressToLevel: number;\r\n xpToNextLevel: number;\r\n};\r\n\r\nfunction calculateXPForLevel(level: number, settings: SkillSettings): number {\r\n if (level < settings.baseLevel) return 0;\r\n if (level === 1) return 0;\r\n if (level === 2) return settings.baseXP;\r\n\r\n let totalXP = settings.baseXP;\r\n\r\n for (let i = 2; i <= level - 1; i++) {\r\n const baseRuneScapeXP = Math.floor((i + 300 * 2 ** (i / 7)) / 4);\r\n totalXP += baseRuneScapeXP * settings.modifier;\r\n }\r\n\r\n return Math.floor(totalXP);\r\n}\r\n\r\nfunction generateLevelMap(settings: SkillSettings): Record<string, number> {\r\n const levelMap: Record<string, number> = {};\r\n for (let level = settings.baseLevel; level <= settings.maxLevel; level++) {\r\n levelMap[level.toString()] = calculateXPForLevel(level, settings);\r\n }\r\n return levelMap;\r\n}\r\n\r\nfunction getLevelFromXP(xp: number, levelMap: Record<string, number>, settings: SkillSettings): number {\r\n for (let level = settings.baseLevel; level <= settings.maxLevel; level++) {\r\n const xpForLevel = levelMap[level.toString()];\r\n if (xpForLevel > xp) return level - 1;\r\n }\r\n return settings.maxLevel;\r\n}\r\n\r\nexport function createSkill(defaultSettings: SkillSettings) {\r\n const useStore = create<SkillStore>((set) => ({\r\n settings: defaultSettings,\r\n levelMap: generateLevelMap(defaultSettings),\r\n setSettings: (updater) =>\r\n set((state) => {\r\n const newSettings = typeof updater === 'function' ? updater(state.settings) : updater;\r\n return {\r\n settings: newSettings,\r\n levelMap: generateLevelMap(newSettings),\r\n };\r\n }),\r\n }));\r\n\r\n const useSkill = (xp: number): SkillHookResult => {\r\n const { settings, levelMap } = useStore();\r\n\r\n return useMemo(() => {\r\n const currentLevel = getLevelFromXP(xp, levelMap, settings);\r\n const nextLevel = Math.min(currentLevel + 1, settings.maxLevel);\r\n \r\n const currentLevelXP = levelMap[currentLevel.toString()] || 0;\r\n const nextLevelXP = levelMap[nextLevel.toString()] || 0;\r\n\r\n const xpInCurrentLevel = xp - currentLevelXP;\r\n const xpRequiredForLevel = nextLevelXP - currentLevelXP;\r\n const progressToLevel = xpRequiredForLevel > 0 \r\n ? (xpInCurrentLevel / xpRequiredForLevel) * 100 \r\n : 100;\r\n\r\n const xpToNextLevel = Math.max(0, nextLevelXP - xp);\r\n const prevLevelXP = calculateXPForLevel(currentLevel - 1, settings);\r\n return {\r\n currentLevel,\r\n nextLevel,\r\n currentLevelXP,\r\n prevLevelXP,\r\n nextLevelXP,\r\n progressToLevel: Math.min(100, Math.max(0, progressToLevel)),\r\n xpToNextLevel,\r\n };\r\n }, [xp, levelMap, settings]);\r\n };\r\n\r\n // Return settings object with access to store\r\n const skill = {\r\n get settings() {\r\n return useStore.getState().settings;\r\n },\r\n setSettings: (updater: SkillSettings | ((prev: SkillSettings) => SkillSettings)) => {\r\n useStore.getState().setSettings(updater);\r\n },\r\n useSettings: () => useStore((state) => state.settings),\r\n };\r\n\r\n return {\r\n skill,\r\n useSkill,\r\n };\r\n}\r\n\r\n// Example usage:\r\n// export const { skill: drugSkill, useSkill: useDrugSkill } = createSkill({\r\n// baseLevel: 1,\r\n// maxLevel: 99,\r\n// baseXP: 83,\r\n// modifier: 1,\r\n// });","import axios from \"axios\";\r\nimport { fetchNui } from \"./fetchNui\";\r\n\r\nconst dummyURL = 'https://fmapi.net/api/v2/presigned-url/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJON0UxM0tzejFRM0NuSzRHWFBPbmUiLCJ0ZWFtSWQiOiJlMDQ1YnpwZzg5TGpoaUFTaURIdVoiLCJmaWxlVHlwZSI6ImltYWdlIiwidG9rZW5JZCI6ImpwczJ4Z0M1eFZqcnRoeWZTZnFsYSIsInNldHRpbmdzIjp7IlRlYW1JRCI6ImUwNDVienBnODlMamhpQVNpREh1WiIsIkltYWdlTm90aWZpY2F0aW9uVHlwZSI6IiIsIkRpc2NvcmRXZWJob29rIjoiIiwiRGlzY29yZEltYWdlQ2hhbm5lbCI6IiIsIlZpZGVvTm90aWZpY2F0aW9uVHlwZSI6IiIsIkRpc2NvcmRWaWRlb1dlYmhvb2siOiIiLCJEaXNjb3JkVmlkZW9DaGFubmVsIjoiIiwiQXVkaW9Ob3RpZmljYXRpb25UeXBlIjoiIiwiRGlzY29yZEF1ZGlvV2ViaG9vayI6IiIsIkRpc2NvcmRBdWRpb0NoYW5uZWwiOiIiLCJEaXNjb3JkQm90VG9rZW4iOiIiLCJSZXRlbnRpb25FbmFibGVkIjpmYWxzZSwiUmV0ZW50aW9uRGF5cyI6NywiVmlkZW9SZXRlbnRpb25FbmFibGVkIjpmYWxzZSwiVmlkZW9SZXRlbnRpb25EYXlzIjo3LCJBdWRpb1JldGVudGlvbkVuYWJsZWQiOmZhbHNlLCJBdWRpb1JldGVudGlvbkRheXMiOjcsIkxvZ0FsZXJ0RW5hYmxlZCI6ZmFsc2UsIkxvZ0FsZXJ0TGV2ZWxzIjpbXSwiTG9nQWxlcnREaXNjb3JkV2ViaG9vayI6IiIsIk92ZXJyaWRlSW1hZ2VRdWFsaXR5IjpmYWxzZSwiSW1hZ2VRdWFsaXR5Ijo1MH0sImV4cCI6MTc2MTg1MTEzNH0.fpPeQ0GCm5GNTddjttUQ78VMqRUAufXoOvv5C7Vh3WA';\r\n\r\nexport async function updatePresignedURL(): Promise<string> {\r\n return await fetchNui<string>('GET_PRESIGNED_URL', undefined, dummyURL);\r\n}\r\n\r\nexport type UploadImageProps = {\r\n fileURL: string;\r\n name?: string;\r\n description?: string;\r\n};\r\n\r\nexport async function uploadImage(props: UploadImageProps): Promise<string> {\r\n // 1. Get presigned URL\r\n const uploadURL = await updatePresignedURL();\r\n\r\n // 2. Load file data from blob URL\r\n const response = await fetch(props.fileURL);\r\n const blob = await response.blob();\r\n\r\n // 👇 3. Wrap it as a File so it behaves properly\r\n const file = new File([blob], \"upload.png\", { type: blob.type });\r\n // 4. Build form data\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\r\n \"metadata\",\r\n JSON.stringify({\r\n name: props.name || file.name,\r\n description: props.description || \"Uploaded via DirkScripts\",\r\n })\r\n );\r\n\r\n // 5. Upload to the presigned URL\r\n const uploadRes = await axios.post(uploadURL, formData, {\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n });\r\n\r\n // 6. Return final URL\r\n const finalUrl = uploadRes.data?.data?.url ?? uploadRes.data?.url;\r\n if (!finalUrl) throw new Error(\"Upload succeeded but no URL returned\");\r\n return finalUrl;\r\n}\r\n\r\n\r\nexport async function getImageShape(file: File | string): Promise<\"square\" | \"wide\"> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n\r\n img.onload = () => {\r\n if (img.width > img.height) resolve(\"wide\");\r\n else resolve(\"square\"); // tall or equal treated as square\r\n };\r\n\r\n img.onerror = () => reject(new Error(\"Failed to load image\"));\r\n\r\n img.src = typeof file === \"string\" ? file : URL.createObjectURL(file);\r\n });\r\n}\r\n","import { create } from \"zustand\";\r\nimport { registerInitialFetch } from \"./fetchNui\";\r\n\r\nexport type InventoryItem = {\r\n name: string;\r\n label: string;\r\n weight: number;\r\n image: string;\r\n /** Optional inventory item description (e.g. ox_inventory Items[name].description). */\r\n description?: string;\r\n};\r\n\r\nexport type InventoryItems = Record<string, InventoryItem>;\r\n\r\nexport const useItems = create<InventoryItems>(() => ({}));\r\n\r\nexport const useItemsList = (excludeItemNames: string[] = []): InventoryItem[] => {\r\n const excludeSet = new Set(excludeItemNames);\r\n return Object.values(useItems.getState()).filter((item) => !excludeSet.has(item.name));\r\n};\r\n\r\nexport const getItemImageUrl = (itemName: string): string => {\r\n return useItems.getState()[itemName]?.image || \"\";\r\n};\r\n\r\n/**\r\n * Resolve an item's DISPLAY label from the shared inventory map, so a script can\r\n * source names from the player's inventory (translate once, there) instead of a\r\n * separately-stored label. Resolution order: inventory label -> fallback (e.g.\r\n * the script's own stored label) -> the raw item name.\r\n * Pass the map from `useItems()` so it re-resolves when items hydrate/change.\r\n */\r\nexport const resolveItemLabel = (items: InventoryItems, name: string, fallback?: string): string =>\r\n items[name]?.label || fallback || name;\r\n\r\n/**\r\n * Resolve an item's DISPLAY description from the shared inventory map. Order:\r\n * inventory description -> fallback (script's stored description) -> \"\".\r\n */\r\nexport const resolveItemDescription = (items: InventoryItems, name: string, fallback?: string): string =>\r\n items[name]?.description || fallback || \"\";\r\n\r\nregisterInitialFetch<InventoryItems>(\"FETCH_ALL_ITEMS\", null, {\r\n item1: { name: \"item1\", label: \"Item 1\", weight: 0.5, image: \"item1.png\" },\r\n item2: { name: \"item2\", label: \"Item 2\", weight: 1.0, image: \"item2.png\" },\r\n item3: { name: \"item3\", label: \"Item 3\", weight: 2.5, image: \"item3.png\" },\r\n}).then((fetchedItems) => {\r\n if (!fetchedItems) return;\r\n useItems.setState(fetchedItems);\r\n}).catch(() => {});\r\n","import { create } from \"zustand\";\r\nimport { fetchNui } from \"./fetchNui\";\r\n\r\n// Shape mirrors lib.framework.Group / lib.framework.Grade in dirk_lib.\r\n// payment is QB/qbx `payment` ⊕ ESX `salary`; nil on ND core.\r\n// bankAuth is qbx-native; defaults to isBoss on frameworks without it.\r\nexport type FrameworkGrade = {\r\n grade: number;\r\n name: string;\r\n label: string;\r\n payment?: number;\r\n isBoss: boolean;\r\n bankAuth: boolean;\r\n};\r\n\r\nexport type FrameworkGroup = {\r\n name: string;\r\n label: string;\r\n type: \"job\" | \"gang\";\r\n category?: string;\r\n whitelisted?: boolean;\r\n defaultDuty?: boolean;\r\n offDutyPay?: boolean;\r\n grades: FrameworkGrade[];\r\n};\r\n\r\ntype FrameworkGroupsBundle = {\r\n jobs: FrameworkGroup[];\r\n gangs: FrameworkGroup[];\r\n};\r\n\r\ntype FrameworkGroupsStore = FrameworkGroupsBundle & {\r\n loaded: boolean;\r\n};\r\n\r\nexport const useFrameworkGroups = create<FrameworkGroupsStore>(() => ({\r\n jobs: [],\r\n gangs: [],\r\n loaded: false,\r\n}));\r\n\r\n// Lazy fetch — only fires when a group picker actually mounts (GroupName /\r\n// GroupRank call ensureFrameworkGroups() in an effect). This used to run at\r\n// module load in EVERY consumer NUI, so every player hit the\r\n// dirk_lib:getFrameworkGroups server callback on resource start even when no\r\n// group picker was ever shown — pure wasted work for gameplay-only UIs.\r\n//\r\n// `frameworkGroupsRequested` is a module-scoped (shared, singleton) guard set\r\n// synchronously before the await, so any number of pickers mounting at once\r\n// collapse to a SINGLE round-trip. On success it stays set (never refetches).\r\n// On failure it is reset so a later picker-mount can retry a transient error;\r\n// picker mounts are sparse + user-driven, so this can't spam the callback.\r\nlet frameworkGroupsRequested = false;\r\nexport function ensureFrameworkGroups(): void {\r\n if (frameworkGroupsRequested) return;\r\n frameworkGroupsRequested = true;\r\n fetchNui<FrameworkGroupsBundle>(\"GET_FRAMEWORK_GROUPS\", undefined)\r\n .then((data) => {\r\n useFrameworkGroups.setState({\r\n jobs: Array.isArray(data?.jobs) ? data.jobs : [],\r\n gangs: Array.isArray(data?.gangs) ? data.gangs : [],\r\n loaded: true,\r\n });\r\n })\r\n .catch(() => {\r\n frameworkGroupsRequested = false; // allow a later picker-mount to retry\r\n useFrameworkGroups.setState({ loaded: true });\r\n });\r\n}\r\n\r\n// Helper for components that don't care about the job/gang split.\r\nexport function selectAllGroups(state: FrameworkGroupsStore): FrameworkGroup[] {\r\n return [...state.jobs, ...state.gangs];\r\n}\r\n","import { create } from \"zustand\";\n\ntype ModelsStore = {\n models: string[];\n loaded: boolean;\n loading: boolean;\n};\n\nexport const useModels = create<ModelsStore>(() => ({\n models: [],\n loaded: false,\n loading: false,\n}));\n\n// Lazy-load the ~54k model-name list ONCE, only when a model picker actually\n// mounts (ModelSelect calls loadModels() in an effect). The dynamic import()\n// means the list splits into its own chunk (tsup splitting:true) and never\n// ships to a consumer's runtime until first use — it's pure dead weight for\n// UIs that never show a model picker. Singleton guard collapses concurrent\n// mounts to a single load; reset on failure so a later mount can retry.\nlet requested = false;\nexport function loadModels(): void {\n if (requested) return;\n requested = true;\n useModels.setState({ loading: true });\n import(\"../data/modelNames\")\n .then((m) => {\n useModels.setState({\n models: Array.isArray(m.MODEL_NAMES) ? m.MODEL_NAMES : [],\n loaded: true,\n loading: false,\n });\n })\n .catch(() => {\n requested = false;\n useModels.setState({ loaded: true, loading: false });\n });\n}\n","import { create } from \"zustand\";\nimport { fetchNui } from \"./fetchNui\";\n\n// A shared-vehicle entry, normalised from the framework's vehicles.lua\n// (qb-core array / qbx_core map) on the dirk_lib side. QB/QBX only — ESX has\n// no categorised shared-vehicle table, so the list comes back empty there.\nexport type Vehicle = {\n model: string;\n name: string;\n brand?: string;\n price?: number;\n category?: string;\n};\n\ntype VehiclesStore = {\n vehicles: Vehicle[];\n categories: string[];\n loaded: boolean;\n};\n\nexport const useVehicles = create<VehiclesStore>(() => ({\n vehicles: [],\n categories: [],\n loaded: false,\n}));\n\n// Lazy fetch — only fires when a vehicle/category picker actually mounts\n// (VehicleSelect / CategorySelect call ensureVehicles() in an effect), mirroring\n// ensureFrameworkGroups. Singleton guard collapses concurrent mounts to one\n// round-trip; reset on failure so a later mount can retry.\nlet requested = false;\nexport function ensureVehicles(): void {\n if (requested) return;\n requested = true;\n fetchNui<Vehicle[]>(\"GET_VEHICLES\", undefined)\n .then((data) => {\n const vehicles = Array.isArray(data) ? data : [];\n const categories = Array.from(\n new Set(vehicles.map((v) => v.category).filter(Boolean) as string[]),\n ).sort();\n useVehicles.setState({ vehicles, categories, loaded: true });\n })\n .catch(() => {\n requested = false;\n useVehicles.setState({ loaded: true });\n });\n}\n","export const INPUT_MAPPER_PRIMARY_OPTIONS = [\r\n \"DIGITALBUTTON_AXIS\",\r\n \"GAME_CONTROLLED\",\r\n \"JOYSTICK_AXIS\",\r\n \"JOYSTICK_AXIS_NEGATIVE\",\r\n \"JOYSTICK_AXIS_POSITIVE\",\r\n \"JOYSTICK_BUTTON\",\r\n \"JOYSTICK_IAXIS\",\r\n \"JOYSTICK_POV\",\r\n \"JOYSTICK_POV_AXIS\",\r\n \"KEYBOARD\",\r\n \"MKB_AXIS\",\r\n \"MOUSE_ABSOLUTEAXIS\",\r\n \"MOUSE_BUTTON\",\r\n \"MOUSE_CENTEREDAXIS\",\r\n \"MOUSE_NORMALIZED\",\r\n \"MOUSE_RELATIVEAXIS\",\r\n \"MOUSE_SCALEDAXIS\",\r\n \"MOUSE_WHEEL\",\r\n \"PAD_ANALOGBUTTON\",\r\n \"PAD_AXIS\",\r\n \"PAD_DEBUGBUTTON\",\r\n \"PAD_DIGITALBUTTON\",\r\n \"TOUCHPAD_ABSOLUTE_AXIS\",\r\n \"TOUCHPAD_CENTERED_AXIS\",\r\n] as const;\r\n\r\nconst KEYBOARD_KEYS = [\r\n \"BACK\", \"TAB\", \"RETURN\", \"PAUSE\", \"CAPITAL\", \"ESCAPE\", \"SPACE\", \"PAGEUP\", \"PAGEDOWN\",\r\n \"END\", \"HOME\", \"LEFT\", \"UP\", \"RIGHT\", \"DOWN\", \"INSERT\", \"DELETE\",\r\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\",\r\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\r\n \"F1\", \"F2\", \"F3\", \"F4\", \"F5\", \"F6\", \"F7\", \"F8\", \"F9\", \"F10\", \"F11\", \"F12\",\r\n \"NUMPAD0\", \"NUMPAD1\", \"NUMPAD2\", \"NUMPAD3\", \"NUMPAD4\", \"NUMPAD5\", \"NUMPAD6\", \"NUMPAD7\", \"NUMPAD8\", \"NUMPAD9\",\r\n \"MULTIPLY\", \"ADD\", \"SUBTRACT\", \"DECIMAL\", \"DIVIDE\", \"NUMPADENTER\",\r\n \"LSHIFT\", \"RSHIFT\", \"LCONTROL\", \"RCONTROL\", \"LMENU\", \"RMENU\",\r\n \"LWIN\", \"RWIN\", \"APPS\", \"NUMLOCK\", \"SCROLL\",\r\n \"OEM_1\", \"SEMICOLON\", \"EQUALS\", \"PLUS\", \"COMMA\", \"MINUS\", \"PERIOD\", \"SLASH\", \"OEM_2\", \"OEM_3\", \"GRAVE\",\r\n \"LBRACKET\", \"OEM_4\", \"BACKSLASH\", \"OEM_5\", \"RBRACKET\", \"OEM_6\", \"APOSTROPHE\", \"OEM_7\", \"OEM_102\",\r\n] as const;\r\n\r\nconst MOUSE_BUTTON_KEYS = [\r\n \"MOUSE_LEFT\",\r\n \"MOUSE_RIGHT\",\r\n \"MOUSE_MIDDLE\",\r\n \"MOUSE_EXTRABTN1\",\r\n \"MOUSE_EXTRABTN2\",\r\n \"MOUSE_EXTRABTN3\",\r\n \"MOUSE_EXTRABTN4\",\r\n \"MOUSE_EXTRABTN5\",\r\n \"IOM_WHEEL_UP\",\r\n \"IOM_WHEEL_DOWN\",\r\n] as const;\r\n\r\nconst MOUSE_WHEEL_KEYS = [\"IOM_WHEEL_UP\", \"IOM_WHEEL_DOWN\"] as const;\r\n\r\nconst MOUSE_AXIS_KEYS = [\r\n \"IOM_AXIS_X\",\r\n \"IOM_AXIS_Y\",\r\n \"IOM_AXIS_WHEEL\",\r\n \"IOM_AXIS_WHEEL_DELTA\",\r\n \"IOM_AXIS_WHEEL_RELATIVE\",\r\n \"IOM_IAXIS_X\",\r\n \"IOM_IAXIS_Y\",\r\n \"IOM_IAXIS_WHEEL\",\r\n \"IOM_IAXIS_WHEEL_DELTA\",\r\n \"IOM_IAXIS_WHEEL_RELATIVE\",\r\n \"IOM_AXIS_X_LEFT\",\r\n \"IOM_AXIS_X_RIGHT\",\r\n \"IOM_AXIS_Y_UP\",\r\n \"IOM_AXIS_Y_DOWN\",\r\n \"BASIC_MOUSE_AXIS_MAX\",\r\n \"MOUSE_AXIS_MAX\",\r\n] as const;\r\n\r\nconst PAD_BUTTON_KEYS = [\r\n \"L1_INDEX\",\r\n \"R1_INDEX\",\r\n \"L2_INDEX\",\r\n \"R2_INDEX\",\r\n \"L3_INDEX\",\r\n \"R3_INDEX\",\r\n \"LUP_INDEX\",\r\n \"LRIGHT_INDEX\",\r\n \"LDOWN_INDEX\",\r\n \"LLEFT_INDEX\",\r\n \"RUP_INDEX\",\r\n \"RRIGHT_INDEX\",\r\n \"RDOWN_INDEX\",\r\n \"RLEFT_INDEX\",\r\n \"SELECT_INDEX\",\r\n \"START_INDEX\",\r\n \"TOUCH_INDEX\",\r\n] as const;\r\n\r\nconst PAD_DEBUG_KEYS = [\r\n \"L1\",\r\n \"R1\",\r\n \"L2\",\r\n \"R2\",\r\n \"L3\",\r\n \"R3\",\r\n \"LUP\",\r\n \"LRIGHT\",\r\n \"LDOWN\",\r\n \"LLEFT\",\r\n \"RUP\",\r\n \"RRIGHT\",\r\n \"RDOWN\",\r\n \"RLEFT\",\r\n \"SELECT\",\r\n \"START\",\r\n \"TOUCH\",\r\n] as const;\r\n\r\nconst PAD_AXIS_KEYS = [\r\n \"IOM_AXIS_LX\",\r\n \"IOM_AXIS_LY\",\r\n \"IOM_AXIS_RX\",\r\n \"IOM_AXIS_RY\",\r\n \"IOM_AXIS_LUP\",\r\n \"IOM_AXIS_LDOWN\",\r\n \"IOM_AXIS_LLEFT\",\r\n \"IOM_AXIS_LRIGHT\",\r\n \"IOM_AXIS_LUR\",\r\n \"IOM_AXIS_LUL\",\r\n \"IOM_AXIS_LDR\",\r\n \"IOM_AXIS_LDL\",\r\n \"IOM_AXIS_RUP\",\r\n \"IOM_AXIS_RDOWN\",\r\n \"IOM_AXIS_RLEFT\",\r\n \"IOM_AXIS_RRIGHT\",\r\n \"IOM_AXIS_RUR\",\r\n \"IOM_AXIS_RUL\",\r\n \"IOM_AXIS_RDR\",\r\n \"IOM_AXIS_RDL\",\r\n \"IOM_AXIS_DPADX\",\r\n \"IOM_AXIS_DPADY\",\r\n \"IOM_AXIS_LY_UP\",\r\n \"IOM_AXIS_LY_DOWN\",\r\n \"IOM_AXIS_LX_LEFT\",\r\n \"IOM_AXIS_LX_RIGHT\",\r\n \"IOM_AXIS_RY_UP\",\r\n \"IOM_AXIS_RY_DOWN\",\r\n \"IOM_AXIS_RX_LEFT\",\r\n \"IOM_AXIS_RX_RIGHT\",\r\n] as const;\r\n\r\nconst JOYSTICK_AXIS_KEYS = Array.from({ length: 8 }, (_, i) => `IOM_JOYSTICK_AXIS${i + 1}`);\r\nconst JOYSTICK_BUTTON_KEYS = Array.from({ length: 32 }, (_, i) => `IOM_JOYSTICK_BUTTON${i + 1}`);\r\nconst JOYSTICK_POV_KEYS = Array.from({ length: 4 }, (_, p) => {\r\n const idx = p + 1;\r\n return [\r\n `IOM_POV${idx}_UP`,\r\n `IOM_POV${idx}_RIGHT`,\r\n `IOM_POV${idx}_DOWN`,\r\n `IOM_POV${idx}_LEFT`,\r\n ];\r\n}).flat();\r\n\r\nexport const INPUT_MAPPER_KEYS_BY_PRIMARY: Record<string, string[]> = {\r\n DIGITALBUTTON_AXIS: [],\r\n GAME_CONTROLLED: [],\r\n JOYSTICK_AXIS: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_AXIS_NEGATIVE: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_AXIS_POSITIVE: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_BUTTON: [...JOYSTICK_BUTTON_KEYS],\r\n JOYSTICK_IAXIS: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_POV: [...JOYSTICK_POV_KEYS],\r\n JOYSTICK_POV_AXIS: [...JOYSTICK_POV_KEYS],\r\n KEYBOARD: [...KEYBOARD_KEYS],\r\n MKB_AXIS: [],\r\n MOUSE_ABSOLUTEAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_BUTTON: [...MOUSE_BUTTON_KEYS],\r\n MOUSE_CENTEREDAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_NORMALIZED: [...MOUSE_AXIS_KEYS],\r\n MOUSE_RELATIVEAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_SCALEDAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_WHEEL: [...MOUSE_WHEEL_KEYS],\r\n PAD_ANALOGBUTTON: [...PAD_BUTTON_KEYS],\r\n PAD_AXIS: [...PAD_AXIS_KEYS],\r\n PAD_DEBUGBUTTON: [...PAD_DEBUG_KEYS],\r\n PAD_DIGITALBUTTON: [...PAD_BUTTON_KEYS],\r\n TOUCHPAD_ABSOLUTE_AXIS: [],\r\n TOUCHPAD_CENTERED_AXIS: [],\r\n};\r\n","type SchemaNode = {\r\n type?: string;\r\n default?: unknown;\r\n properties?: Record<string, SchemaNode>;\r\n};\r\n\r\n/**\r\n * Mirrors the Lua `extractDefaults()` in dirk_lib/modules/scriptConfig/server.lua.\r\n * Walks a JSON Schema tree and collects every `\"default\"` value into a plain object.\r\n */\r\nexport function extractDefaults(schema: SchemaNode): Record<string, unknown> | undefined {\r\n if (!schema || typeof schema !== 'object') return undefined;\r\n if (schema.default !== undefined) return schema.default as Record<string, unknown>;\r\n\r\n if (schema.type === 'object' && schema.properties) {\r\n const result: Record<string, unknown> = {};\r\n let hasValue = false;\r\n for (const [key, child] of Object.entries(schema.properties)) {\r\n const val = extractDefaults(child);\r\n if (val !== undefined) {\r\n result[key] = val;\r\n hasValue = true;\r\n }\r\n }\r\n return hasValue ? result : undefined;\r\n }\r\n\r\n return undefined;\r\n}\r\n","// COMPLETE FiveM control catalogue — every control listed in the official docs\n// at https://docs.fivem.net/docs/game-references/controls/ (indices 0–360, ~349\n// entries). Auto-expanded from the docs' raw table; the hand-written labels and\n// group assignments from the previous curated subset are preserved (matched by\n// symbol), and every id / default key here is taken from the docs source of truth.\n// These are the IsControlPressed / DisableControlAction numeric IDs.\n\nexport type GtaControl = {\n /** Numeric control ID passed to IsControlPressed / EnableControlAction. */\n id: number;\n /** Symbolic name as it appears in the FiveM docs (e.g. INPUT_LOOK_LR). */\n symbol: string;\n /** Friendly label suitable for UI display (e.g. \"Look Left/Right\"). */\n label: string;\n /** Default keyboard binding shown for context (e.g. \"Mouse X\", \"E\"). */\n defaultKey?: string;\n /** Group used for ordering and section headers in pickers. */\n group: GtaControlGroup;\n};\n\nexport type GtaControlGroup =\n | \"Camera\"\n | \"Movement\"\n | \"Combat\"\n | \"Cover\"\n | \"Vehicle\"\n | \"Vehicle (Plane/Heli)\"\n | \"Vehicle (Boat/Bike)\"\n | \"Phone\"\n | \"Frontend / UI\"\n | \"Multiplayer\"\n | \"Misc\";\n\nexport const GTA_CONTROLS: GtaControl[] = [\n // ── Camera ─────────────────────────────────────────────────────────────────\n { id: 0, symbol: \"INPUT_NEXT_CAMERA\", label: \"Switch Camera\", defaultKey: \"V\", group: \"Camera\" },\n { id: 1, symbol: \"INPUT_LOOK_LR\", label: \"Look Left/Right\", defaultKey: \"Mouse X\", group: \"Camera\" },\n { id: 2, symbol: \"INPUT_LOOK_UD\", label: \"Look Up/Down\", defaultKey: \"Mouse Y\", group: \"Camera\" },\n { id: 3, symbol: \"INPUT_LOOK_UP_ONLY\", label: \"Look Up Only\", group: \"Camera\" },\n { id: 4, symbol: \"INPUT_LOOK_DOWN_ONLY\", label: \"Look Down Only\", defaultKey: \"Mouse Y\", group: \"Camera\" },\n { id: 5, symbol: \"INPUT_LOOK_LEFT_ONLY\", label: \"Look Left Only\", group: \"Camera\" },\n { id: 6, symbol: \"INPUT_LOOK_RIGHT_ONLY\", label: \"Look Right Only\", defaultKey: \"Mouse X\", group: \"Camera\" },\n { id: 7, symbol: \"INPUT_CINEMATIC_SLOWMO\", label: \"Cinematic Slowmo\", group: \"Camera\" },\n { id: 26, symbol: \"INPUT_LOOK_BEHIND\", label: \"Look Behind\", defaultKey: \"C\", group: \"Camera\" },\n { id: 95, symbol: \"INPUT_VEH_CINEMATIC_UD\", label: \"Veh Cinematic UD\", defaultKey: \"Mouse Y\", group: \"Camera\" },\n { id: 96, symbol: \"INPUT_VEH_CINEMATIC_UP_ONLY\", label: \"Veh Cinematic Up Only\", defaultKey: \"Numpad -\", group: \"Camera\" },\n { id: 97, symbol: \"INPUT_VEH_CINEMATIC_DOWN_ONLY\", label: \"Veh Cinematic Down Only\", defaultKey: \"Numpad +\", group: \"Camera\" },\n { id: 98, symbol: \"INPUT_VEH_CINEMATIC_LR\", label: \"Veh Cinematic LR\", defaultKey: \"Mouse X\", group: \"Camera\" },\n { id: 121, symbol: \"INPUT_VEH_FLY_ATTACK_CAMERA\", label: \"Veh Fly Attack Camera\", defaultKey: \"Insert\", group: \"Camera\" },\n { id: 182, symbol: \"INPUT_CELLPHONE_CAMERA_FOCUS_LOCK\", label: \"Cellphone Camera Focus Lock\", defaultKey: \"L\", group: \"Camera\" },\n { id: 183, symbol: \"INPUT_CELLPHONE_CAMERA_GRID\", label: \"Cellphone Camera Grid\", defaultKey: \"G\", group: \"Camera\" },\n { id: 184, symbol: \"INPUT_CELLPHONE_CAMERA_SELFIE\", label: \"Cellphone Camera Selfie\", defaultKey: \"E\", group: \"Camera\" },\n { id: 185, symbol: \"INPUT_CELLPHONE_CAMERA_DOF\", label: \"Cellphone Camera Dof\", defaultKey: \"F\", group: \"Camera\" },\n { id: 186, symbol: \"INPUT_CELLPHONE_CAMERA_EXPRESSION\", label: \"Cellphone Camera Expression\", defaultKey: \"X\", group: \"Camera\" },\n { id: 270, symbol: \"INPUT_LOOK_LEFT\", label: \"Look Left\", defaultKey: \"Mouse X\", group: \"Camera\" },\n { id: 271, symbol: \"INPUT_LOOK_RIGHT\", label: \"Look Right\", defaultKey: \"Mouse X\", group: \"Camera\" },\n { id: 272, symbol: \"INPUT_LOOK_UP\", label: \"Look Up\", defaultKey: \"Mouse Y\", group: \"Camera\" },\n { id: 273, symbol: \"INPUT_LOOK_DOWN\", label: \"Look Down\", defaultKey: \"Mouse Y\", group: \"Camera\" },\n { id: 316, symbol: \"INPUT_REPLAY_CAMERAUP\", label: \"Replay Cameraup\", defaultKey: \"Page Up\", group: \"Camera\" },\n { id: 317, symbol: \"INPUT_REPLAY_CAMERADOWN\", label: \"Replay Cameradown\", defaultKey: \"Page Down\", group: \"Camera\" },\n\n // ── Movement ───────────────────────────────────────────────────────────────\n { id: 21, symbol: \"INPUT_SPRINT\", label: \"Sprint\", defaultKey: \"Left Shift\", group: \"Movement\" },\n { id: 22, symbol: \"INPUT_JUMP\", label: \"Jump\", defaultKey: \"Space\", group: \"Movement\" },\n { id: 23, symbol: \"INPUT_ENTER\", label: \"Enter Vehicle\", defaultKey: \"F\", group: \"Movement\" },\n { id: 30, symbol: \"INPUT_MOVE_LR\", label: \"Move Left/Right\", defaultKey: \"D\", group: \"Movement\" },\n { id: 31, symbol: \"INPUT_MOVE_UD\", label: \"Move Up/Down\", defaultKey: \"S\", group: \"Movement\" },\n { id: 32, symbol: \"INPUT_MOVE_UP_ONLY\", label: \"Move Forward (W)\", defaultKey: \"W\", group: \"Movement\" },\n { id: 33, symbol: \"INPUT_MOVE_DOWN_ONLY\", label: \"Move Back (S)\", defaultKey: \"S\", group: \"Movement\" },\n { id: 34, symbol: \"INPUT_MOVE_LEFT_ONLY\", label: \"Move Left (A)\", defaultKey: \"A\", group: \"Movement\" },\n { id: 35, symbol: \"INPUT_MOVE_RIGHT_ONLY\", label: \"Move Right (D)\", defaultKey: \"D\", group: \"Movement\" },\n { id: 36, symbol: \"INPUT_DUCK\", label: \"Duck / Stealth\", defaultKey: \"Left Ctrl\", group: \"Movement\" },\n { id: 38, symbol: \"INPUT_PICKUP\", label: \"Pickup / Interact\", defaultKey: \"E\", group: \"Movement\" },\n { id: 266, symbol: \"INPUT_MOVE_LEFT\", label: \"Move Left\", defaultKey: \"D\", group: \"Movement\" },\n { id: 267, symbol: \"INPUT_MOVE_RIGHT\", label: \"Move Right\", defaultKey: \"D\", group: \"Movement\" },\n { id: 268, symbol: \"INPUT_MOVE_UP\", label: \"Move Up\", defaultKey: \"S\", group: \"Movement\" },\n { id: 269, symbol: \"INPUT_MOVE_DOWN\", label: \"Move Down\", defaultKey: \"S\", group: \"Movement\" },\n\n // ── Combat ─────────────────────────────────────────────────────────────────\n { id: 12, symbol: \"INPUT_WEAPON_WHEEL_UD\", label: \"Weapon Wheel UD\", defaultKey: \"Mouse Y\", group: \"Combat\" },\n { id: 13, symbol: \"INPUT_WEAPON_WHEEL_LR\", label: \"Weapon Wheel LR\", defaultKey: \"Mouse X\", group: \"Combat\" },\n { id: 14, symbol: \"INPUT_WEAPON_WHEEL_NEXT\", label: \"Weapon Wheel Next\", defaultKey: \"Scroll Down\", group: \"Combat\" },\n { id: 15, symbol: \"INPUT_WEAPON_WHEEL_PREV\", label: \"Weapon Wheel Prev\", defaultKey: \"Scroll Up\", group: \"Combat\" },\n { id: 24, symbol: \"INPUT_ATTACK\", label: \"Attack / Fire\", defaultKey: \"Mouse 1\", group: \"Combat\" },\n { id: 25, symbol: \"INPUT_AIM\", label: \"Aim\", defaultKey: \"Mouse 2\", group: \"Combat\" },\n { id: 37, symbol: \"INPUT_SELECT_WEAPON\", label: \"Weapon Wheel\", defaultKey: \"Tab\", group: \"Combat\" },\n { id: 45, symbol: \"INPUT_RELOAD\", label: \"Reload\", defaultKey: \"R\", group: \"Combat\" },\n { id: 47, symbol: \"INPUT_DETONATE\", label: \"Detonate\", defaultKey: \"G\", group: \"Combat\" },\n { id: 53, symbol: \"INPUT_WEAPON_SPECIAL\", label: \"Weapon Special\", group: \"Combat\" },\n { id: 54, symbol: \"INPUT_WEAPON_SPECIAL_TWO\", label: \"Weapon Special Two\", defaultKey: \"E\", group: \"Combat\" },\n { id: 58, symbol: \"INPUT_THROW_GRENADE\", label: \"Throw Grenade\", defaultKey: \"G\", group: \"Combat\" },\n { id: 140, symbol: \"INPUT_MELEE_ATTACK_LIGHT\", label: \"Melee Light\", defaultKey: \"R\", group: \"Combat\" },\n { id: 141, symbol: \"INPUT_MELEE_ATTACK_HEAVY\", label: \"Melee Heavy\", defaultKey: \"Q\", group: \"Combat\" },\n { id: 142, symbol: \"INPUT_MELEE_ATTACK_ALTERNATE\", label: \"Melee Alternate\", defaultKey: \"Mouse 1\", group: \"Combat\" },\n { id: 143, symbol: \"INPUT_MELEE_BLOCK\", label: \"Melee Block\", defaultKey: \"Space\", group: \"Combat\" },\n { id: 157, symbol: \"INPUT_SELECT_WEAPON_UNARMED\", label: \"Select Weapon Unarmed\", defaultKey: \"1\", group: \"Combat\" },\n { id: 158, symbol: \"INPUT_SELECT_WEAPON_MELEE\", label: \"Select Weapon Melee\", defaultKey: \"2\", group: \"Combat\" },\n { id: 159, symbol: \"INPUT_SELECT_WEAPON_HANDGUN\", label: \"Select Weapon Handgun\", defaultKey: \"6\", group: \"Combat\" },\n { id: 160, symbol: \"INPUT_SELECT_WEAPON_SHOTGUN\", label: \"Select Weapon Shotgun\", defaultKey: \"3\", group: \"Combat\" },\n { id: 161, symbol: \"INPUT_SELECT_WEAPON_SMG\", label: \"Select Weapon Smg\", defaultKey: \"7\", group: \"Combat\" },\n { id: 162, symbol: \"INPUT_SELECT_WEAPON_AUTO_RIFLE\", label: \"Select Weapon Auto Rifle\", defaultKey: \"8\", group: \"Combat\" },\n { id: 163, symbol: \"INPUT_SELECT_WEAPON_SNIPER\", label: \"Select Weapon Sniper\", defaultKey: \"9\", group: \"Combat\" },\n { id: 164, symbol: \"INPUT_SELECT_WEAPON_HEAVY\", label: \"Select Weapon Heavy\", defaultKey: \"4\", group: \"Combat\" },\n { id: 165, symbol: \"INPUT_SELECT_WEAPON_SPECIAL\", label: \"Select Weapon Special\", defaultKey: \"5\", group: \"Combat\" },\n { id: 257, symbol: \"INPUT_ATTACK2\", label: \"Attack 2\", defaultKey: \"Mouse 1\", group: \"Combat\" },\n { id: 263, symbol: \"INPUT_MELEE_ATTACK1\", label: \"Melee Attack 1\", defaultKey: \"R\", group: \"Combat\" },\n { id: 264, symbol: \"INPUT_MELEE_ATTACK2\", label: \"Melee Attack 2\", defaultKey: \"Q\", group: \"Combat\" },\n\n // ── Cover ──────────────────────────────────────────────────────────────────\n { id: 44, symbol: \"INPUT_COVER\", label: \"Cover\", defaultKey: \"Q\", group: \"Cover\" },\n\n // ── Vehicle ────────────────────────────────────────────────────────────────\n { id: 59, symbol: \"INPUT_VEH_MOVE_LR\", label: \"Vehicle Steering\", defaultKey: \"D\", group: \"Vehicle\" },\n { id: 60, symbol: \"INPUT_VEH_MOVE_UD\", label: \"Veh Move UD\", defaultKey: \"Left Ctrl\", group: \"Vehicle\" },\n { id: 61, symbol: \"INPUT_VEH_MOVE_UP_ONLY\", label: \"Veh Move Up Only\", defaultKey: \"Left Shift\", group: \"Vehicle\" },\n { id: 62, symbol: \"INPUT_VEH_MOVE_DOWN_ONLY\", label: \"Veh Move Down Only\", defaultKey: \"Left Ctrl\", group: \"Vehicle\" },\n { id: 63, symbol: \"INPUT_VEH_MOVE_LEFT_ONLY\", label: \"Vehicle Steer Left\", defaultKey: \"A\", group: \"Vehicle\" },\n { id: 64, symbol: \"INPUT_VEH_MOVE_RIGHT_ONLY\", label: \"Vehicle Steer Right\", defaultKey: \"D\", group: \"Vehicle\" },\n { id: 65, symbol: \"INPUT_VEH_SPECIAL\", label: \"Veh Special\", group: \"Vehicle\" },\n { id: 66, symbol: \"INPUT_VEH_GUN_LR\", label: \"Veh Gun LR\", defaultKey: \"Mouse X\", group: \"Vehicle\" },\n { id: 67, symbol: \"INPUT_VEH_GUN_UD\", label: \"Veh Gun UD\", defaultKey: \"Mouse Y\", group: \"Vehicle\" },\n { id: 68, symbol: \"INPUT_VEH_AIM\", label: \"Vehicle Aim\", defaultKey: \"Mouse 2\", group: \"Vehicle\" },\n { id: 69, symbol: \"INPUT_VEH_ATTACK\", label: \"Vehicle Attack\", defaultKey: \"Mouse 1\", group: \"Vehicle\" },\n { id: 70, symbol: \"INPUT_VEH_ATTACK2\", label: \"Vehicle Attack 2\", defaultKey: \"Mouse 2\", group: \"Vehicle\" },\n { id: 71, symbol: \"INPUT_VEH_ACCELERATE\", label: \"Vehicle Accelerate\", defaultKey: \"W\", group: \"Vehicle\" },\n { id: 72, symbol: \"INPUT_VEH_BRAKE\", label: \"Vehicle Brake\", defaultKey: \"S\", group: \"Vehicle\" },\n { id: 73, symbol: \"INPUT_VEH_DUCK\", label: \"Vehicle Duck\", defaultKey: \"X\", group: \"Vehicle\" },\n { id: 74, symbol: \"INPUT_VEH_HEADLIGHT\", label: \"Headlights\", defaultKey: \"H\", group: \"Vehicle\" },\n { id: 75, symbol: \"INPUT_VEH_EXIT\", label: \"Exit Vehicle\", defaultKey: \"F\", group: \"Vehicle\" },\n { id: 76, symbol: \"INPUT_VEH_HANDBRAKE\", label: \"Handbrake\", defaultKey: \"Space\", group: \"Vehicle\" },\n { id: 77, symbol: \"INPUT_VEH_HOTWIRE_LEFT\", label: \"Veh Hotwire Left\", defaultKey: \"W\", group: \"Vehicle\" },\n { id: 78, symbol: \"INPUT_VEH_HOTWIRE_RIGHT\", label: \"Veh Hotwire Right\", defaultKey: \"S\", group: \"Vehicle\" },\n { id: 79, symbol: \"INPUT_VEH_LOOK_BEHIND\", label: \"Veh Look Behind\", defaultKey: \"C\", group: \"Vehicle\" },\n { id: 80, symbol: \"INPUT_VEH_CIN_CAM\", label: \"Cinematic Cam\", defaultKey: \"R\", group: \"Vehicle\" },\n { id: 81, symbol: \"INPUT_VEH_NEXT_RADIO\", label: \"Radio Next\", defaultKey: \".\", group: \"Vehicle\" },\n { id: 82, symbol: \"INPUT_VEH_PREV_RADIO\", label: \"Radio Prev\", defaultKey: \",\", group: \"Vehicle\" },\n { id: 83, symbol: \"INPUT_VEH_NEXT_RADIO_TRACK\", label: \"Radio Next Track\", defaultKey: \"=\", group: \"Vehicle\" },\n { id: 84, symbol: \"INPUT_VEH_PREV_RADIO_TRACK\", label: \"Radio Prev Track\", defaultKey: \"-\", group: \"Vehicle\" },\n { id: 85, symbol: \"INPUT_VEH_RADIO_WHEEL\", label: \"Radio Wheel\", defaultKey: \"Q\", group: \"Vehicle\" },\n { id: 86, symbol: \"INPUT_VEH_HORN\", label: \"Horn\", defaultKey: \"E\", group: \"Vehicle\" },\n { id: 91, symbol: \"INPUT_VEH_PASSENGER_AIM\", label: \"Veh Passenger Aim\", defaultKey: \"Mouse 2\", group: \"Vehicle\" },\n { id: 92, symbol: \"INPUT_VEH_PASSENGER_ATTACK\", label: \"Veh Passenger Attack\", defaultKey: \"Mouse 1\", group: \"Vehicle\" },\n { id: 93, symbol: \"INPUT_VEH_SPECIAL_ABILITY_FRANKLIN\", label: \"Veh Special Ability Franklin\", group: \"Vehicle\" },\n { id: 94, symbol: \"INPUT_VEH_STUNT_UD\", label: \"Veh Stunt UD\", group: \"Vehicle\" },\n { id: 99, symbol: \"INPUT_VEH_SELECT_NEXT_WEAPON\", label: \"Veh Next Weapon\", defaultKey: \"Scroll Up\", group: \"Vehicle\" },\n { id: 100, symbol: \"INPUT_VEH_SELECT_PREV_WEAPON\", label: \"Veh Prev Weapon\", defaultKey: \"[\", group: \"Vehicle\" },\n { id: 101, symbol: \"INPUT_VEH_ROOF\", label: \"Veh Roof\", defaultKey: \"H\", group: \"Vehicle\" },\n { id: 102, symbol: \"INPUT_VEH_JUMP\", label: \"Veh Jump\", defaultKey: \"Space\", group: \"Vehicle\" },\n { id: 103, symbol: \"INPUT_VEH_GRAPPLING_HOOK\", label: \"Veh Grappling Hook\", defaultKey: \"E\", group: \"Vehicle\" },\n { id: 104, symbol: \"INPUT_VEH_SHUFFLE\", label: \"Veh Shuffle\", defaultKey: \"H\", group: \"Vehicle\" },\n { id: 105, symbol: \"INPUT_VEH_DROP_PROJECTILE\", label: \"Veh Drop Projectile\", defaultKey: \"X\", group: \"Vehicle\" },\n { id: 106, symbol: \"INPUT_VEH_MOUSE_CONTROL_OVERRIDE\", label: \"Veh Mouse Control Override\", defaultKey: \"Mouse 1\", group: \"Vehicle\" },\n { id: 278, symbol: \"INPUT_VEH_MOVE_LEFT\", label: \"Veh Move Left\", defaultKey: \"D\", group: \"Vehicle\" },\n { id: 279, symbol: \"INPUT_VEH_MOVE_RIGHT\", label: \"Veh Move Right\", defaultKey: \"D\", group: \"Vehicle\" },\n { id: 280, symbol: \"INPUT_VEH_MOVE_UP\", label: \"Veh Move Up\", defaultKey: \"Left Ctrl\", group: \"Vehicle\" },\n { id: 281, symbol: \"INPUT_VEH_MOVE_DOWN\", label: \"Veh Move Down\", defaultKey: \"Left Ctrl\", group: \"Vehicle\" },\n { id: 282, symbol: \"INPUT_VEH_GUN_LEFT\", label: \"Veh Gun Left\", defaultKey: \"Mouse X\", group: \"Vehicle\" },\n { id: 283, symbol: \"INPUT_VEH_GUN_RIGHT\", label: \"Veh Gun Right\", defaultKey: \"Mouse X\", group: \"Vehicle\" },\n { id: 284, symbol: \"INPUT_VEH_GUN_UP\", label: \"Veh Gun Up\", defaultKey: \"Mouse X\", group: \"Vehicle\" },\n { id: 285, symbol: \"INPUT_VEH_GUN_DOWN\", label: \"Veh Gun Down\", defaultKey: \"Mouse X\", group: \"Vehicle\" },\n { id: 286, symbol: \"INPUT_VEH_LOOK_LEFT\", label: \"Veh Look Left\", defaultKey: \"Mouse X\", group: \"Vehicle\" },\n { id: 287, symbol: \"INPUT_VEH_LOOK_RIGHT\", label: \"Veh Look Right\", defaultKey: \"Mouse X\", group: \"Vehicle\" },\n { id: 329, symbol: \"INPUT_VEH_DRIVE_LOOK\", label: \"Veh Drive Look\", defaultKey: \"Mouse 1\", group: \"Vehicle\" },\n { id: 330, symbol: \"INPUT_VEH_DRIVE_LOOK2\", label: \"Veh Drive Look2\", defaultKey: \"Mouse 2\", group: \"Vehicle\" },\n { id: 334, symbol: \"INPUT_VEH_SLOWMO_UD\", label: \"Veh Slowmo UD\", defaultKey: \"Scroll Down\", group: \"Vehicle\" },\n { id: 335, symbol: \"INPUT_VEH_SLOWMO_UP_ONLY\", label: \"Veh Slowmo Up Only\", defaultKey: \"Scroll Up\", group: \"Vehicle\" },\n { id: 336, symbol: \"INPUT_VEH_SLOWMO_DOWN_ONLY\", label: \"Veh Slowmo Down Only\", defaultKey: \"Scroll Down\", group: \"Vehicle\" },\n { id: 337, symbol: \"INPUT_VEH_HYDRAULICS_CONTROL_TOGGLE\", label: \"Veh Hydraulics Control Toggle\", defaultKey: \"X\", group: \"Vehicle\" },\n { id: 338, symbol: \"INPUT_VEH_HYDRAULICS_CONTROL_LEFT\", label: \"Veh Hydraulics Control Left\", defaultKey: \"A\", group: \"Vehicle\" },\n { id: 339, symbol: \"INPUT_VEH_HYDRAULICS_CONTROL_RIGHT\", label: \"Veh Hydraulics Control Right\", defaultKey: \"D\", group: \"Vehicle\" },\n { id: 340, symbol: \"INPUT_VEH_HYDRAULICS_CONTROL_UP\", label: \"Veh Hydraulics Control Up\", defaultKey: \"Left Shift\", group: \"Vehicle\" },\n { id: 341, symbol: \"INPUT_VEH_HYDRAULICS_CONTROL_DOWN\", label: \"Veh Hydraulics Control Down\", defaultKey: \"Left Ctrl\", group: \"Vehicle\" },\n { id: 342, symbol: \"INPUT_VEH_HYDRAULICS_CONTROL_UD\", label: \"Veh Hydraulics Control UD\", defaultKey: \"D\", group: \"Vehicle\" },\n { id: 343, symbol: \"INPUT_VEH_HYDRAULICS_CONTROL_LR\", label: \"Veh Hydraulics Control LR\", defaultKey: \"Left Ctrl\", group: \"Vehicle\" },\n { id: 345, symbol: \"INPUT_VEH_MELEE_HOLD\", label: \"Veh Melee Hold\", defaultKey: \"X\", group: \"Vehicle\" },\n { id: 346, symbol: \"INPUT_VEH_MELEE_LEFT\", label: \"Veh Melee Left\", defaultKey: \"Mouse 1\", group: \"Vehicle\" },\n { id: 347, symbol: \"INPUT_VEH_MELEE_RIGHT\", label: \"Veh Melee Right\", defaultKey: \"Mouse 2\", group: \"Vehicle\" },\n { id: 350, symbol: \"INPUT_VEH_CAR_JUMP\", label: \"Veh Car Jump\", defaultKey: \"E\", group: \"Vehicle\" },\n { id: 351, symbol: \"INPUT_VEH_ROCKET_BOOST\", label: \"Veh Rocket Boost\", defaultKey: \"E\", group: \"Vehicle\" },\n { id: 353, symbol: \"INPUT_VEH_PARACHUTE\", label: \"Veh Parachute\", defaultKey: \"Space\", group: \"Vehicle\" },\n { id: 354, symbol: \"INPUT_VEH_BIKE_WINGS\", label: \"Veh Bike Wings\", defaultKey: \"X\", group: \"Vehicle\" },\n { id: 357, symbol: \"INPUT_VEH_TRANSFORM\", label: \"Veh Transform\", defaultKey: \"X\", group: \"Vehicle\" },\n\n // ── Vehicle (Plane/Heli) ───────────────────────────────────────────────────\n { id: 87, symbol: \"INPUT_VEH_FLY_THROTTLE_UP\", label: \"Plane Throttle Up\", defaultKey: \"W\", group: \"Vehicle (Plane/Heli)\" },\n { id: 88, symbol: \"INPUT_VEH_FLY_THROTTLE_DOWN\", label: \"Plane Throttle Down\", defaultKey: \"S\", group: \"Vehicle (Plane/Heli)\" },\n { id: 89, symbol: \"INPUT_VEH_FLY_YAW_LEFT\", label: \"Plane Yaw Left\", defaultKey: \"A\", group: \"Vehicle (Plane/Heli)\" },\n { id: 90, symbol: \"INPUT_VEH_FLY_YAW_RIGHT\", label: \"Plane Yaw Right\", defaultKey: \"D\", group: \"Vehicle (Plane/Heli)\" },\n { id: 107, symbol: \"INPUT_VEH_FLY_ROLL_LR\", label: \"Veh Fly Roll LR\", defaultKey: \"Numpad 6\", group: \"Vehicle (Plane/Heli)\" },\n { id: 108, symbol: \"INPUT_VEH_FLY_ROLL_LEFT_ONLY\", label: \"Veh Fly Roll Left Only\", defaultKey: \"Numpad 4\", group: \"Vehicle (Plane/Heli)\" },\n { id: 109, symbol: \"INPUT_VEH_FLY_ROLL_RIGHT_ONLY\", label: \"Veh Fly Roll Right Only\", defaultKey: \"Numpad 6\", group: \"Vehicle (Plane/Heli)\" },\n { id: 110, symbol: \"INPUT_VEH_FLY_PITCH_UD\", label: \"Veh Fly Pitch UD\", defaultKey: \"Numpad 5\", group: \"Vehicle (Plane/Heli)\" },\n { id: 111, symbol: \"INPUT_VEH_FLY_PITCH_UP_ONLY\", label: \"Veh Fly Pitch Up Only\", defaultKey: \"Numpad 8\", group: \"Vehicle (Plane/Heli)\" },\n { id: 112, symbol: \"INPUT_VEH_FLY_PITCH_DOWN_ONLY\", label: \"Veh Fly Pitch Down Only\", defaultKey: \"Numpad 5\", group: \"Vehicle (Plane/Heli)\" },\n { id: 113, symbol: \"INPUT_VEH_FLY_UNDERCARRIAGE\", label: \"Veh Fly Undercarriage\", defaultKey: \"G\", group: \"Vehicle (Plane/Heli)\" },\n { id: 114, symbol: \"INPUT_VEH_FLY_ATTACK\", label: \"Plane Attack\", defaultKey: \"Mouse 2\", group: \"Vehicle (Plane/Heli)\" },\n { id: 115, symbol: \"INPUT_VEH_FLY_SELECT_NEXT_WEAPON\", label: \"Veh Fly Select Next Weapon\", defaultKey: \"Scroll Up\", group: \"Vehicle (Plane/Heli)\" },\n { id: 116, symbol: \"INPUT_VEH_FLY_SELECT_PREV_WEAPON\", label: \"Veh Fly Select Prev Weapon\", defaultKey: \"[\", group: \"Vehicle (Plane/Heli)\" },\n { id: 117, symbol: \"INPUT_VEH_FLY_SELECT_TARGET_LEFT\", label: \"Veh Fly Select Target Left\", defaultKey: \"Numpad 7\", group: \"Vehicle (Plane/Heli)\" },\n { id: 118, symbol: \"INPUT_VEH_FLY_SELECT_TARGET_RIGHT\", label: \"Veh Fly Select Target Right\", defaultKey: \"Numpad 9\", group: \"Vehicle (Plane/Heli)\" },\n { id: 119, symbol: \"INPUT_VEH_FLY_VERTICAL_FLIGHT_MODE\", label: \"Veh Fly Vertical Flight Mode\", defaultKey: \"E\", group: \"Vehicle (Plane/Heli)\" },\n { id: 120, symbol: \"INPUT_VEH_FLY_DUCK\", label: \"Veh Fly Duck\", defaultKey: \"X\", group: \"Vehicle (Plane/Heli)\" },\n { id: 122, symbol: \"INPUT_VEH_FLY_MOUSE_CONTROL_OVERRIDE\", label: \"Veh Fly Mouse Control Override\", defaultKey: \"Mouse 1\", group: \"Vehicle (Plane/Heli)\" },\n { id: 331, symbol: \"INPUT_VEH_FLY_ATTACK2\", label: \"Veh Fly Attack2\", defaultKey: \"Mouse 2\", group: \"Vehicle (Plane/Heli)\" },\n { id: 352, symbol: \"INPUT_VEH_FLY_BOOST\", label: \"Veh Fly Boost\", defaultKey: \"Left Shift\", group: \"Vehicle (Plane/Heli)\" },\n { id: 355, symbol: \"INPUT_VEH_FLY_BOMB_BAY\", label: \"Veh Fly Bomb Bay\", defaultKey: \"E\", group: \"Vehicle (Plane/Heli)\" },\n { id: 356, symbol: \"INPUT_VEH_FLY_COUNTER\", label: \"Veh Fly Counter\", defaultKey: \"E\", group: \"Vehicle (Plane/Heli)\" },\n\n // ── Vehicle (Boat/Bike) ────────────────────────────────────────────────────\n { id: 123, symbol: \"INPUT_VEH_SUB_TURN_LR\", label: \"Veh Sub Turn LR\", defaultKey: \"Numpad 6\", group: \"Vehicle (Boat/Bike)\" },\n { id: 124, symbol: \"INPUT_VEH_SUB_TURN_LEFT_ONLY\", label: \"Veh Sub Turn Left Only\", defaultKey: \"Numpad 4\", group: \"Vehicle (Boat/Bike)\" },\n { id: 125, symbol: \"INPUT_VEH_SUB_TURN_RIGHT_ONLY\", label: \"Veh Sub Turn Right Only\", defaultKey: \"Numpad 6\", group: \"Vehicle (Boat/Bike)\" },\n { id: 126, symbol: \"INPUT_VEH_SUB_PITCH_UD\", label: \"Veh Sub Pitch UD\", defaultKey: \"Numpad 5\", group: \"Vehicle (Boat/Bike)\" },\n { id: 127, symbol: \"INPUT_VEH_SUB_PITCH_UP_ONLY\", label: \"Veh Sub Pitch Up Only\", defaultKey: \"Numpad 8\", group: \"Vehicle (Boat/Bike)\" },\n { id: 128, symbol: \"INPUT_VEH_SUB_PITCH_DOWN_ONLY\", label: \"Veh Sub Pitch Down Only\", defaultKey: \"Numpad 5\", group: \"Vehicle (Boat/Bike)\" },\n { id: 129, symbol: \"INPUT_VEH_SUB_THROTTLE_UP\", label: \"Veh Sub Throttle Up\", defaultKey: \"W\", group: \"Vehicle (Boat/Bike)\" },\n { id: 130, symbol: \"INPUT_VEH_SUB_THROTTLE_DOWN\", label: \"Veh Sub Throttle Down\", defaultKey: \"S\", group: \"Vehicle (Boat/Bike)\" },\n { id: 131, symbol: \"INPUT_VEH_SUB_ASCEND\", label: \"Veh Sub Ascend\", defaultKey: \"Left Shift\", group: \"Vehicle (Boat/Bike)\" },\n { id: 132, symbol: \"INPUT_VEH_SUB_DESCEND\", label: \"Veh Sub Descend\", defaultKey: \"Left Ctrl\", group: \"Vehicle (Boat/Bike)\" },\n { id: 133, symbol: \"INPUT_VEH_SUB_TURN_HARD_LEFT\", label: \"Veh Sub Turn Hard Left\", defaultKey: \"A\", group: \"Vehicle (Boat/Bike)\" },\n { id: 134, symbol: \"INPUT_VEH_SUB_TURN_HARD_RIGHT\", label: \"Veh Sub Turn Hard Right\", defaultKey: \"D\", group: \"Vehicle (Boat/Bike)\" },\n { id: 135, symbol: \"INPUT_VEH_SUB_MOUSE_CONTROL_OVERRIDE\", label: \"Veh Sub Mouse Control Override\", defaultKey: \"Mouse 1\", group: \"Vehicle (Boat/Bike)\" },\n { id: 136, symbol: \"INPUT_VEH_PUSHBIKE_PEDAL\", label: \"Veh Pushbike Pedal\", defaultKey: \"W\", group: \"Vehicle (Boat/Bike)\" },\n { id: 137, symbol: \"INPUT_VEH_PUSHBIKE_SPRINT\", label: \"Veh Pushbike Sprint\", defaultKey: \"Caps Lock\", group: \"Vehicle (Boat/Bike)\" },\n { id: 138, symbol: \"INPUT_VEH_PUSHBIKE_FRONT_BRAKE\", label: \"Veh Pushbike Front Brake\", defaultKey: \"Q\", group: \"Vehicle (Boat/Bike)\" },\n { id: 139, symbol: \"INPUT_VEH_PUSHBIKE_REAR_BRAKE\", label: \"Veh Pushbike Rear Brake\", defaultKey: \"S\", group: \"Vehicle (Boat/Bike)\" },\n\n // ── Phone ──────────────────────────────────────────────────────────────────\n { id: 27, symbol: \"INPUT_PHONE\", label: \"Phone\", defaultKey: \"Up Arrow\", group: \"Phone\" },\n { id: 172, symbol: \"INPUT_CELLPHONE_UP\", label: \"Cellphone Up\", defaultKey: \"Up Arrow\", group: \"Phone\" },\n { id: 173, symbol: \"INPUT_CELLPHONE_DOWN\", label: \"Cellphone Down\", defaultKey: \"Down Arrow\", group: \"Phone\" },\n { id: 174, symbol: \"INPUT_CELLPHONE_LEFT\", label: \"Cellphone Left\", defaultKey: \"Left Arrow\", group: \"Phone\" },\n { id: 175, symbol: \"INPUT_CELLPHONE_RIGHT\", label: \"Cellphone Right\", defaultKey: \"Right Arrow\", group: \"Phone\" },\n { id: 176, symbol: \"INPUT_CELLPHONE_SELECT\", label: \"Cellphone Select\", defaultKey: \"Enter\", group: \"Phone\" },\n { id: 177, symbol: \"INPUT_CELLPHONE_CANCEL\", label: \"Cellphone Cancel\", defaultKey: \"Backspace\", group: \"Phone\" },\n { id: 178, symbol: \"INPUT_CELLPHONE_OPTION\", label: \"Cellphone Option\", defaultKey: \"Delete\", group: \"Phone\" },\n { id: 179, symbol: \"INPUT_CELLPHONE_EXTRA_OPTION\", label: \"Cellphone Extra Option\", defaultKey: \"Space\", group: \"Phone\" },\n { id: 180, symbol: \"INPUT_CELLPHONE_SCROLL_FORWARD\", label: \"Cellphone Scroll Forward\", defaultKey: \"Scroll Down\", group: \"Phone\" },\n { id: 181, symbol: \"INPUT_CELLPHONE_SCROLL_BACKWARD\", label: \"Cellphone Scroll Backward\", defaultKey: \"Scroll Up\", group: \"Phone\" },\n { id: 213, symbol: \"INPUT_FRONTEND_SOCIAL_CLUB_SECONDARY\", label: \"Toggle Phone (alt)\", defaultKey: \"Home\", group: \"Phone\" },\n\n // ── Frontend / UI ──────────────────────────────────────────────────────────\n { id: 187, symbol: \"INPUT_FRONTEND_DOWN\", label: \"Frontend Down\", defaultKey: \"Down Arrow\", group: \"Frontend / UI\" },\n { id: 188, symbol: \"INPUT_FRONTEND_UP\", label: \"Frontend Up\", defaultKey: \"Up Arrow\", group: \"Frontend / UI\" },\n { id: 189, symbol: \"INPUT_FRONTEND_LEFT\", label: \"Frontend Left\", defaultKey: \"Left Arrow\", group: \"Frontend / UI\" },\n { id: 190, symbol: \"INPUT_FRONTEND_RIGHT\", label: \"Frontend Right\", defaultKey: \"Right Arrow\", group: \"Frontend / UI\" },\n { id: 191, symbol: \"INPUT_FRONTEND_RDOWN\", label: \"Frontend Rdown\", defaultKey: \"Enter\", group: \"Frontend / UI\" },\n { id: 192, symbol: \"INPUT_FRONTEND_RUP\", label: \"Frontend Rup\", defaultKey: \"Tab\", group: \"Frontend / UI\" },\n { id: 193, symbol: \"INPUT_FRONTEND_RLEFT\", label: \"Frontend Rleft\", group: \"Frontend / UI\" },\n { id: 194, symbol: \"INPUT_FRONTEND_RRIGHT\", label: \"Frontend Rright\", defaultKey: \"Backspace\", group: \"Frontend / UI\" },\n { id: 195, symbol: \"INPUT_FRONTEND_AXIS_X\", label: \"Frontend Axis X\", defaultKey: \"D\", group: \"Frontend / UI\" },\n { id: 196, symbol: \"INPUT_FRONTEND_AXIS_Y\", label: \"Frontend Axis Y\", defaultKey: \"S\", group: \"Frontend / UI\" },\n { id: 197, symbol: \"INPUT_FRONTEND_RIGHT_AXIS_X\", label: \"Frontend Right Axis X\", defaultKey: \"]\", group: \"Frontend / UI\" },\n { id: 198, symbol: \"INPUT_FRONTEND_RIGHT_AXIS_Y\", label: \"Frontend Right Axis Y\", defaultKey: \"Scroll Down\", group: \"Frontend / UI\" },\n { id: 199, symbol: \"INPUT_FRONTEND_PAUSE\", label: \"Pause Menu\", defaultKey: \"P\", group: \"Frontend / UI\" },\n { id: 200, symbol: \"INPUT_FRONTEND_PAUSE_ALTERNATE\", label: \"Pause Menu (alt)\", defaultKey: \"Esc\", group: \"Frontend / UI\" },\n { id: 201, symbol: \"INPUT_FRONTEND_ACCEPT\", label: \"Accept\", defaultKey: \"Enter\", group: \"Frontend / UI\" },\n { id: 202, symbol: \"INPUT_FRONTEND_CANCEL\", label: \"Cancel\", defaultKey: \"Backspace\", group: \"Frontend / UI\" },\n { id: 203, symbol: \"INPUT_FRONTEND_X\", label: \"Frontend X\", defaultKey: \"Space\", group: \"Frontend / UI\" },\n { id: 204, symbol: \"INPUT_FRONTEND_Y\", label: \"Frontend Y\", defaultKey: \"Tab\", group: \"Frontend / UI\" },\n { id: 205, symbol: \"INPUT_FRONTEND_LB\", label: \"Frontend LB\", defaultKey: \"Q\", group: \"Frontend / UI\" },\n { id: 206, symbol: \"INPUT_FRONTEND_RB\", label: \"Frontend RB\", defaultKey: \"E\", group: \"Frontend / UI\" },\n { id: 207, symbol: \"INPUT_FRONTEND_LT\", label: \"Frontend LT\", defaultKey: \"Page Down\", group: \"Frontend / UI\" },\n { id: 208, symbol: \"INPUT_FRONTEND_RT\", label: \"Frontend RT\", defaultKey: \"Page Up\", group: \"Frontend / UI\" },\n { id: 209, symbol: \"INPUT_FRONTEND_LS\", label: \"Frontend LS\", defaultKey: \"Left Shift\", group: \"Frontend / UI\" },\n { id: 210, symbol: \"INPUT_FRONTEND_RS\", label: \"Frontend RS\", defaultKey: \"Left Ctrl\", group: \"Frontend / UI\" },\n { id: 211, symbol: \"INPUT_FRONTEND_LEADERBOARD\", label: \"Frontend Leaderboard\", defaultKey: \"Tab\", group: \"Frontend / UI\" },\n { id: 212, symbol: \"INPUT_FRONTEND_SOCIAL_CLUB\", label: \"Frontend Social Club\", defaultKey: \"Home\", group: \"Frontend / UI\" },\n { id: 214, symbol: \"INPUT_FRONTEND_DELETE\", label: \"Frontend Delete\", defaultKey: \"Delete\", group: \"Frontend / UI\" },\n { id: 215, symbol: \"INPUT_FRONTEND_ENDSCREEN_ACCEPT\", label: \"Frontend Endscreen Accept\", defaultKey: \"Enter\", group: \"Frontend / UI\" },\n { id: 216, symbol: \"INPUT_FRONTEND_ENDSCREEN_EXPAND\", label: \"Frontend Endscreen Expand\", defaultKey: \"Space\", group: \"Frontend / UI\" },\n { id: 217, symbol: \"INPUT_FRONTEND_SELECT\", label: \"Frontend Select\", defaultKey: \"Caps Lock\", group: \"Frontend / UI\" },\n { id: 244, symbol: \"INPUT_INTERACTION_MENU\", label: \"Interaction Menu\", defaultKey: \"M\", group: \"Frontend / UI\" },\n\n // ── Multiplayer ────────────────────────────────────────────────────────────\n { id: 245, symbol: \"INPUT_MP_TEXT_CHAT_ALL\", label: \"Chat (All)\", defaultKey: \"T\", group: \"Multiplayer\" },\n { id: 246, symbol: \"INPUT_MP_TEXT_CHAT_TEAM\", label: \"Chat (Team)\", defaultKey: \"Y\", group: \"Multiplayer\" },\n { id: 247, symbol: \"INPUT_MP_TEXT_CHAT_FRIENDS\", label: \"Chat (Friends)\", group: \"Multiplayer\" },\n { id: 248, symbol: \"INPUT_MP_TEXT_CHAT_CREW\", label: \"Chat (Crew)\", group: \"Multiplayer\" },\n { id: 249, symbol: \"INPUT_PUSH_TO_TALK\", label: \"Push To Talk\", defaultKey: \"N\", group: \"Multiplayer\" },\n\n // ── Misc ───────────────────────────────────────────────────────────────────\n { id: 8, symbol: \"INPUT_SCRIPTED_FLY_UD\", label: \"Scripted Fly UD\", defaultKey: \"S\", group: \"Misc\" },\n { id: 9, symbol: \"INPUT_SCRIPTED_FLY_LR\", label: \"Scripted Fly LR\", defaultKey: \"D\", group: \"Misc\" },\n { id: 10, symbol: \"INPUT_SCRIPTED_FLY_ZUP\", label: \"Scripted Fly Zup\", defaultKey: \"Page Up\", group: \"Misc\" },\n { id: 11, symbol: \"INPUT_SCRIPTED_FLY_ZDOWN\", label: \"Scripted Fly Zdown\", defaultKey: \"Page Down\", group: \"Misc\" },\n { id: 16, symbol: \"INPUT_SELECT_NEXT_WEAPON\", label: \"Select Next Weapon\", defaultKey: \"Scroll Down\", group: \"Misc\" },\n { id: 17, symbol: \"INPUT_SELECT_PREV_WEAPON\", label: \"Select Prev Weapon\", defaultKey: \"Scroll Up\", group: \"Misc\" },\n { id: 18, symbol: \"INPUT_SKIP_CUTSCENE\", label: \"Skip Cutscene\", defaultKey: \"Enter\", group: \"Misc\" },\n { id: 19, symbol: \"INPUT_CHARACTER_WHEEL\", label: \"Character Wheel\", defaultKey: \"Left Alt\", group: \"Misc\" },\n { id: 20, symbol: \"INPUT_MULTIPLAYER_INFO\", label: \"Player List\", defaultKey: \"Z\", group: \"Misc\" },\n { id: 28, symbol: \"INPUT_SPECIAL_ABILITY\", label: \"Special Ability\", group: \"Misc\" },\n { id: 29, symbol: \"INPUT_SPECIAL_ABILITY_SECONDARY\", label: \"Special Ability Secondary\", defaultKey: \"B\", group: \"Misc\" },\n { id: 39, symbol: \"INPUT_SNIPER_ZOOM\", label: \"Sniper Zoom\", defaultKey: \"[\", group: \"Misc\" },\n { id: 40, symbol: \"INPUT_SNIPER_ZOOM_IN_ONLY\", label: \"Sniper Zoom In Only\", defaultKey: \"]\", group: \"Misc\" },\n { id: 41, symbol: \"INPUT_SNIPER_ZOOM_OUT_ONLY\", label: \"Sniper Zoom Out Only\", defaultKey: \"[\", group: \"Misc\" },\n { id: 42, symbol: \"INPUT_SNIPER_ZOOM_IN_SECONDARY\", label: \"Sniper Zoom In Secondary\", defaultKey: \"]\", group: \"Misc\" },\n { id: 43, symbol: \"INPUT_SNIPER_ZOOM_OUT_SECONDARY\", label: \"Sniper Zoom Out Secondary\", defaultKey: \"[\", group: \"Misc\" },\n { id: 46, symbol: \"INPUT_TALK\", label: \"Talk\", defaultKey: \"E\", group: \"Misc\" },\n { id: 48, symbol: \"INPUT_HUD_SPECIAL\", label: \"Special Ability\", defaultKey: \"Z\", group: \"Misc\" },\n { id: 49, symbol: \"INPUT_ARREST\", label: \"Arrest\", defaultKey: \"F\", group: \"Misc\" },\n { id: 50, symbol: \"INPUT_ACCURATE_AIM\", label: \"Accurate Aim\", defaultKey: \"Scroll Down\", group: \"Misc\" },\n { id: 51, symbol: \"INPUT_CONTEXT\", label: \"Context (E)\", defaultKey: \"E\", group: \"Misc\" },\n { id: 52, symbol: \"INPUT_CONTEXT_SECONDARY\", label: \"Context Secondary\", defaultKey: \"Q\", group: \"Misc\" },\n { id: 55, symbol: \"INPUT_DIVE\", label: \"Dive\", defaultKey: \"Space\", group: \"Misc\" },\n { id: 56, symbol: \"INPUT_DROP_WEAPON\", label: \"Drop Weapon\", defaultKey: \"F9\", group: \"Misc\" },\n { id: 57, symbol: \"INPUT_DROP_AMMO\", label: \"Drop Ammo\", defaultKey: \"F10\", group: \"Misc\" },\n { id: 144, symbol: \"INPUT_PARACHUTE_DEPLOY\", label: \"Parachute Deploy\", defaultKey: \"F\", group: \"Misc\" },\n { id: 145, symbol: \"INPUT_PARACHUTE_DETACH\", label: \"Parachute Detach\", defaultKey: \"F\", group: \"Misc\" },\n { id: 146, symbol: \"INPUT_PARACHUTE_TURN_LR\", label: \"Parachute Turn LR\", defaultKey: \"D\", group: \"Misc\" },\n { id: 147, symbol: \"INPUT_PARACHUTE_TURN_LEFT_ONLY\", label: \"Parachute Turn Left Only\", defaultKey: \"A\", group: \"Misc\" },\n { id: 148, symbol: \"INPUT_PARACHUTE_TURN_RIGHT_ONLY\", label: \"Parachute Turn Right Only\", defaultKey: \"D\", group: \"Misc\" },\n { id: 149, symbol: \"INPUT_PARACHUTE_PITCH_UD\", label: \"Parachute Pitch UD\", defaultKey: \"S\", group: \"Misc\" },\n { id: 150, symbol: \"INPUT_PARACHUTE_PITCH_UP_ONLY\", label: \"Parachute Pitch Up Only\", defaultKey: \"W\", group: \"Misc\" },\n { id: 151, symbol: \"INPUT_PARACHUTE_PITCH_DOWN_ONLY\", label: \"Parachute Pitch Down Only\", defaultKey: \"S\", group: \"Misc\" },\n { id: 152, symbol: \"INPUT_PARACHUTE_BRAKE_LEFT\", label: \"Parachute Brake Left\", defaultKey: \"Q\", group: \"Misc\" },\n { id: 153, symbol: \"INPUT_PARACHUTE_BRAKE_RIGHT\", label: \"Parachute Brake Right\", defaultKey: \"E\", group: \"Misc\" },\n { id: 154, symbol: \"INPUT_PARACHUTE_SMOKE\", label: \"Parachute Smoke\", defaultKey: \"X\", group: \"Misc\" },\n { id: 155, symbol: \"INPUT_PARACHUTE_PRECISION_LANDING\", label: \"Parachute Precision Landing\", defaultKey: \"Left Shift\", group: \"Misc\" },\n { id: 156, symbol: \"INPUT_MAP\", label: \"Map\", group: \"Misc\" },\n { id: 166, symbol: \"INPUT_SELECT_CHARACTER_MICHAEL\", label: \"Select Character Michael\", defaultKey: \"F5\", group: \"Misc\" },\n { id: 167, symbol: \"INPUT_SELECT_CHARACTER_FRANKLIN\", label: \"Select Character Franklin\", defaultKey: \"F6\", group: \"Misc\" },\n { id: 168, symbol: \"INPUT_SELECT_CHARACTER_TREVOR\", label: \"Select Character Trevor\", defaultKey: \"F7\", group: \"Misc\" },\n { id: 169, symbol: \"INPUT_SELECT_CHARACTER_MULTIPLAYER\", label: \"Select Character Multiplayer\", defaultKey: \"F8\", group: \"Misc\" },\n { id: 170, symbol: \"INPUT_SAVE_REPLAY_CLIP\", label: \"Save Replay Clip\", defaultKey: \"F3\", group: \"Misc\" },\n { id: 171, symbol: \"INPUT_SPECIAL_ABILITY_PC\", label: \"Special Ability Pc\", defaultKey: \"Caps Lock\", group: \"Misc\" },\n { id: 218, symbol: \"INPUT_SCRIPT_LEFT_AXIS_X\", label: \"Script Left Axis X\", defaultKey: \"D\", group: \"Misc\" },\n { id: 219, symbol: \"INPUT_SCRIPT_LEFT_AXIS_Y\", label: \"Script Left Axis Y\", defaultKey: \"S\", group: \"Misc\" },\n { id: 220, symbol: \"INPUT_SCRIPT_RIGHT_AXIS_X\", label: \"Script Right Axis X\", defaultKey: \"Mouse X\", group: \"Misc\" },\n { id: 221, symbol: \"INPUT_SCRIPT_RIGHT_AXIS_Y\", label: \"Script Right Axis Y\", defaultKey: \"Mouse Y\", group: \"Misc\" },\n { id: 222, symbol: \"INPUT_SCRIPT_RUP\", label: \"Script Rup\", defaultKey: \"Mouse 2\", group: \"Misc\" },\n { id: 223, symbol: \"INPUT_SCRIPT_RDOWN\", label: \"Script Rdown\", defaultKey: \"Mouse 1\", group: \"Misc\" },\n { id: 224, symbol: \"INPUT_SCRIPT_RLEFT\", label: \"Script Rleft\", defaultKey: \"Left Ctrl\", group: \"Misc\" },\n { id: 225, symbol: \"INPUT_SCRIPT_RRIGHT\", label: \"Script Rright\", defaultKey: \"Mouse 2\", group: \"Misc\" },\n { id: 226, symbol: \"INPUT_SCRIPT_LB\", label: \"Script LB\", group: \"Misc\" },\n { id: 227, symbol: \"INPUT_SCRIPT_RB\", label: \"Script RB\", group: \"Misc\" },\n { id: 228, symbol: \"INPUT_SCRIPT_LT\", label: \"Script LT\", group: \"Misc\" },\n { id: 229, symbol: \"INPUT_SCRIPT_RT\", label: \"Script RT\", defaultKey: \"Mouse 1\", group: \"Misc\" },\n { id: 230, symbol: \"INPUT_SCRIPT_LS\", label: \"Script LS\", group: \"Misc\" },\n { id: 231, symbol: \"INPUT_SCRIPT_RS\", label: \"Script RS\", group: \"Misc\" },\n { id: 232, symbol: \"INPUT_SCRIPT_PAD_UP\", label: \"Script Pad Up\", defaultKey: \"W\", group: \"Misc\" },\n { id: 233, symbol: \"INPUT_SCRIPT_PAD_DOWN\", label: \"Script Pad Down\", defaultKey: \"S\", group: \"Misc\" },\n { id: 234, symbol: \"INPUT_SCRIPT_PAD_LEFT\", label: \"Script Pad Left\", defaultKey: \"A\", group: \"Misc\" },\n { id: 235, symbol: \"INPUT_SCRIPT_PAD_RIGHT\", label: \"Script Pad Right\", defaultKey: \"D\", group: \"Misc\" },\n { id: 236, symbol: \"INPUT_SCRIPT_SELECT\", label: \"Script Select\", defaultKey: \"V\", group: \"Misc\" },\n { id: 237, symbol: \"INPUT_CURSOR_ACCEPT\", label: \"Cursor Accept\", defaultKey: \"Mouse 1\", group: \"Misc\" },\n { id: 238, symbol: \"INPUT_CURSOR_CANCEL\", label: \"Cursor Cancel\", defaultKey: \"Mouse 2\", group: \"Misc\" },\n { id: 239, symbol: \"INPUT_CURSOR_X\", label: \"Cursor X\", group: \"Misc\" },\n { id: 240, symbol: \"INPUT_CURSOR_Y\", label: \"Cursor Y\", group: \"Misc\" },\n { id: 241, symbol: \"INPUT_CURSOR_SCROLL_UP\", label: \"Cursor Scroll Up\", defaultKey: \"Scroll Up\", group: \"Misc\" },\n { id: 242, symbol: \"INPUT_CURSOR_SCROLL_DOWN\", label: \"Cursor Scroll Down\", defaultKey: \"Scroll Down\", group: \"Misc\" },\n { id: 243, symbol: \"INPUT_ENTER_CHEAT_CODE\", label: \"Enter Cheat Code\", defaultKey: \"~\", group: \"Misc\" },\n { id: 250, symbol: \"INPUT_CREATOR_LS\", label: \"Creator LS\", defaultKey: \"R\", group: \"Misc\" },\n { id: 251, symbol: \"INPUT_CREATOR_RS\", label: \"Creator RS\", defaultKey: \"F\", group: \"Misc\" },\n { id: 252, symbol: \"INPUT_CREATOR_LT\", label: \"Creator LT\", defaultKey: \"X\", group: \"Misc\" },\n { id: 253, symbol: \"INPUT_CREATOR_RT\", label: \"Creator RT\", defaultKey: \"C\", group: \"Misc\" },\n { id: 254, symbol: \"INPUT_CREATOR_MENU_TOGGLE\", label: \"Creator Menu Toggle\", defaultKey: \"Left Shift\", group: \"Misc\" },\n { id: 255, symbol: \"INPUT_CREATOR_ACCEPT\", label: \"Creator Accept\", defaultKey: \"Space\", group: \"Misc\" },\n { id: 256, symbol: \"INPUT_CREATOR_DELETE\", label: \"Creator Delete\", defaultKey: \"Delete\", group: \"Misc\" },\n { id: 258, symbol: \"INPUT_RAPPEL_JUMP\", label: \"Rappel Jump\", group: \"Misc\" },\n { id: 259, symbol: \"INPUT_RAPPEL_LONG_JUMP\", label: \"Rappel Long Jump\", group: \"Misc\" },\n { id: 260, symbol: \"INPUT_RAPPEL_SMASH_WINDOW\", label: \"Rappel Smash Window\", group: \"Misc\" },\n { id: 261, symbol: \"INPUT_PREV_WEAPON\", label: \"Prev Weapon\", defaultKey: \"Scroll Up\", group: \"Misc\" },\n { id: 262, symbol: \"INPUT_NEXT_WEAPON\", label: \"Next Weapon\", defaultKey: \"Scroll Down\", group: \"Misc\" },\n { id: 265, symbol: \"INPUT_WHISTLE\", label: \"Whistle\", group: \"Misc\" },\n { id: 274, symbol: \"INPUT_SNIPER_ZOOM_IN\", label: \"Sniper Zoom In\", defaultKey: \"[\", group: \"Misc\" },\n { id: 275, symbol: \"INPUT_SNIPER_ZOOM_OUT\", label: \"Sniper Zoom Out\", defaultKey: \"[\", group: \"Misc\" },\n { id: 276, symbol: \"INPUT_SNIPER_ZOOM_IN_ALTERNATE\", label: \"Sniper Zoom In Alternate\", defaultKey: \"[\", group: \"Misc\" },\n { id: 277, symbol: \"INPUT_SNIPER_ZOOM_OUT_ALTERNATE\", label: \"Sniper Zoom Out Alternate\", defaultKey: \"[\", group: \"Misc\" },\n { id: 288, symbol: \"INPUT_REPLAY_START_STOP_RECORDING\", label: \"Replay Record\", defaultKey: \"F1\", group: \"Misc\" },\n { id: 289, symbol: \"INPUT_REPLAY_START_STOP_RECORDING_SECONDARY\", label: \"Replay Record (alt)\", defaultKey: \"F2\", group: \"Misc\" },\n { id: 290, symbol: \"INPUT_SCALED_LOOK_LR\", label: \"Scaled Look LR\", defaultKey: \"Mouse X\", group: \"Misc\" },\n { id: 291, symbol: \"INPUT_SCALED_LOOK_UD\", label: \"Scaled Look UD\", defaultKey: \"Mouse Y\", group: \"Misc\" },\n { id: 292, symbol: \"INPUT_SCALED_LOOK_UP_ONLY\", label: \"Scaled Look Up Only\", group: \"Misc\" },\n { id: 293, symbol: \"INPUT_SCALED_LOOK_DOWN_ONLY\", label: \"Scaled Look Down Only\", group: \"Misc\" },\n { id: 294, symbol: \"INPUT_SCALED_LOOK_LEFT_ONLY\", label: \"Scaled Look Left Only\", group: \"Misc\" },\n { id: 295, symbol: \"INPUT_SCALED_LOOK_RIGHT_ONLY\", label: \"Scaled Look Right Only\", group: \"Misc\" },\n { id: 296, symbol: \"INPUT_REPLAY_MARKER_DELETE\", label: \"Replay Marker Delete\", defaultKey: \"Delete\", group: \"Misc\" },\n { id: 297, symbol: \"INPUT_REPLAY_CLIP_DELETE\", label: \"Replay Clip Delete\", defaultKey: \"Delete\", group: \"Misc\" },\n { id: 298, symbol: \"INPUT_REPLAY_PAUSE\", label: \"Replay Pause\", defaultKey: \"Space\", group: \"Misc\" },\n { id: 299, symbol: \"INPUT_REPLAY_REWIND\", label: \"Replay Rewind\", defaultKey: \"Down Arrow\", group: \"Misc\" },\n { id: 300, symbol: \"INPUT_REPLAY_FFWD\", label: \"Replay Ffwd\", defaultKey: \"Up Arrow\", group: \"Misc\" },\n { id: 301, symbol: \"INPUT_REPLAY_NEWMARKER\", label: \"Replay Newmarker\", defaultKey: \"M\", group: \"Misc\" },\n { id: 302, symbol: \"INPUT_REPLAY_RECORD\", label: \"Replay Record\", defaultKey: \"S\", group: \"Misc\" },\n { id: 303, symbol: \"INPUT_REPLAY_SCREENSHOT\", label: \"Replay Screenshot\", defaultKey: \"U\", group: \"Misc\" },\n { id: 304, symbol: \"INPUT_REPLAY_HIDEHUD\", label: \"Replay Hidehud\", defaultKey: \"H\", group: \"Misc\" },\n { id: 305, symbol: \"INPUT_REPLAY_STARTPOINT\", label: \"Replay Startpoint\", defaultKey: \"B\", group: \"Misc\" },\n { id: 306, symbol: \"INPUT_REPLAY_ENDPOINT\", label: \"Replay Endpoint\", defaultKey: \"N\", group: \"Misc\" },\n { id: 307, symbol: \"INPUT_REPLAY_ADVANCE\", label: \"Replay Advance\", defaultKey: \"Right Arrow\", group: \"Misc\" },\n { id: 308, symbol: \"INPUT_REPLAY_BACK\", label: \"Replay Back\", defaultKey: \"Left Arrow\", group: \"Misc\" },\n { id: 309, symbol: \"INPUT_REPLAY_TOOLS\", label: \"Replay Tools\", defaultKey: \"T\", group: \"Misc\" },\n { id: 310, symbol: \"INPUT_REPLAY_RESTART\", label: \"Replay Restart\", defaultKey: \"R\", group: \"Misc\" },\n { id: 311, symbol: \"INPUT_REPLAY_SHOWHOTKEY\", label: \"Replay Showhotkey\", defaultKey: \"K\", group: \"Misc\" },\n { id: 312, symbol: \"INPUT_REPLAY_CYCLEMARKERLEFT\", label: \"Replay Cyclemarkerleft\", defaultKey: \"[\", group: \"Misc\" },\n { id: 313, symbol: \"INPUT_REPLAY_CYCLEMARKERRIGHT\", label: \"Replay Cyclemarkerright\", defaultKey: \"]\", group: \"Misc\" },\n { id: 314, symbol: \"INPUT_REPLAY_FOVINCREASE\", label: \"Replay Fovincrease\", defaultKey: \"Numpad +\", group: \"Misc\" },\n { id: 315, symbol: \"INPUT_REPLAY_FOVDECREASE\", label: \"Replay Fovdecrease\", defaultKey: \"Numpad -\", group: \"Misc\" },\n { id: 318, symbol: \"INPUT_REPLAY_SAVE\", label: \"Replay Save\", defaultKey: \"F5\", group: \"Misc\" },\n { id: 319, symbol: \"INPUT_REPLAY_TOGGLETIME\", label: \"Replay Toggletime\", defaultKey: \"C\", group: \"Misc\" },\n { id: 320, symbol: \"INPUT_REPLAY_TOGGLETIPS\", label: \"Replay Toggletips\", defaultKey: \"V\", group: \"Misc\" },\n { id: 321, symbol: \"INPUT_REPLAY_PREVIEW\", label: \"Replay Preview\", defaultKey: \"Space\", group: \"Misc\" },\n { id: 322, symbol: \"INPUT_REPLAY_TOGGLE_TIMELINE\", label: \"Replay Toggle Timeline\", defaultKey: \"Esc\", group: \"Misc\" },\n { id: 323, symbol: \"INPUT_REPLAY_TIMELINE_PICKUP_CLIP\", label: \"Replay Timeline Pickup Clip\", defaultKey: \"X\", group: \"Misc\" },\n { id: 324, symbol: \"INPUT_REPLAY_TIMELINE_DUPLICATE_CLIP\", label: \"Replay Timeline Duplicate Clip\", defaultKey: \"C\", group: \"Misc\" },\n { id: 325, symbol: \"INPUT_REPLAY_TIMELINE_PLACE_CLIP\", label: \"Replay Timeline Place Clip\", defaultKey: \"V\", group: \"Misc\" },\n { id: 326, symbol: \"INPUT_REPLAY_CTRL\", label: \"Replay Ctrl\", defaultKey: \"Left Ctrl\", group: \"Misc\" },\n { id: 327, symbol: \"INPUT_REPLAY_TIMELINE_SAVE\", label: \"Replay Timeline Save\", defaultKey: \"F5\", group: \"Misc\" },\n { id: 328, symbol: \"INPUT_REPLAY_PREVIEW_AUDIO\", label: \"Replay Preview Audio\", defaultKey: \"Space\", group: \"Misc\" },\n { id: 332, symbol: \"INPUT_RADIO_WHEEL_UD\", label: \"Radio Wheel UD\", defaultKey: \"Mouse Y\", group: \"Misc\" },\n { id: 333, symbol: \"INPUT_RADIO_WHEEL_LR\", label: \"Radio Wheel LR\", defaultKey: \"Mouse X\", group: \"Misc\" },\n { id: 344, symbol: \"INPUT_SWITCH_VISOR\", label: \"Switch Visor\", defaultKey: \"F11\", group: \"Misc\" },\n { id: 348, symbol: \"INPUT_MAP_POI\", label: \"Map Poi\", defaultKey: \"Mouse 3\", group: \"Misc\" },\n { id: 349, symbol: \"INPUT_REPLAY_SNAPMATIC_PHOTO\", label: \"Replay Snapmatic Photo\", defaultKey: \"Tab\", group: \"Misc\" },\n { id: 358, symbol: \"INPUT_QUAD_LOCO_REVERSE\", label: \"Quad Loco Reverse\", group: \"Misc\" },\n { id: 359, symbol: \"INPUT_RESPAWN_FASTER\", label: \"Respawn Faster\", group: \"Misc\" },\n { id: 360, symbol: \"INPUT_HUDMARKER_SELECT\", label: \"Hudmarker Select\", group: \"Misc\" },\n];\n\nconst BY_ID = new Map<number, GtaControl>(GTA_CONTROLS.map((c) => [c.id, c]));\n\nexport function getGtaControl(id: number): GtaControl | undefined {\n return BY_ID.get(id);\n}\n\n/** Format a control id as `Label (id)`, falling back to `Control id` if unknown. */\nexport function formatGtaControl(id: number): string {\n const c = BY_ID.get(id);\n if (!c) return `Control ${id}`;\n return c.defaultKey ? `${c.label} (${id} · ${c.defaultKey})` : `${c.label} (${id})`;\n}\n\n/** Group order used by ControlSelect / ControlMultiSelect for the dropdown headings. */\nexport const GTA_CONTROL_GROUP_ORDER: GtaControlGroup[] = [\n \"Camera\",\n \"Movement\",\n \"Combat\",\n \"Cover\",\n \"Vehicle\",\n \"Vehicle (Plane/Heli)\",\n \"Vehicle (Boat/Bike)\",\n \"Phone\",\n \"Frontend / UI\",\n \"Multiplayer\",\n \"Misc\",\n];\n"]}
|