dirk-cfx-react 1.0.0 → 1.0.1
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/components/{index.mjs → index.cjs} +116 -96
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.js +94 -114
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/{index.mjs → index.cjs} +9 -7
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.js +5 -7
- package/dist/hooks/index.js.map +1 -1
- package/dist/{index.mjs → index.cjs} +150 -114
- package/dist/index.cjs.map +1 -0
- package/dist/{index.d.mts → index.d.cts} +4 -4
- package/dist/index.js +112 -148
- package/dist/index.js.map +1 -1
- package/dist/providers/{index.mjs → index.cjs} +25 -22
- package/dist/providers/index.cjs.map +1 -0
- package/dist/providers/index.js +20 -23
- package/dist/providers/index.js.map +1 -1
- package/dist/utils/{index.mjs → index.cjs} +19 -5
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.js +3 -17
- package/dist/utils/index.js.map +1 -1
- package/package.json +21 -5
- package/dist/components/index.mjs.map +0 -1
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/providers/index.mjs.map +0 -1
- package/dist/utils/index.mjs.map +0 -1
- /package/dist/components/{index.d.mts → index.d.cts} +0 -0
- /package/dist/hooks/{index.d.mts → index.d.cts} +0 -0
- /package/dist/providers/{index.d.mts → index.d.cts} +0 -0
- /package/dist/utils/{index.d.mts → index.d.cts} +0 -0
package/dist/providers/index.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var zustand = require('zustand');
|
|
13
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
1
|
+
import '@mantine/notifications/styles.css';
|
|
2
|
+
import '@mantine/core/styles.css';
|
|
3
|
+
import '@/styles/niceFont.css';
|
|
4
|
+
import '@/styles/scrollBar.css';
|
|
5
|
+
import { library } from '@fortawesome/fontawesome-svg-core';
|
|
6
|
+
import { fab } from '@fortawesome/free-brands-svg-icons';
|
|
7
|
+
import { far } from '@fortawesome/free-regular-svg-icons';
|
|
8
|
+
import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
9
|
+
import { createTheme, MantineProvider, BackgroundImage } from '@mantine/core';
|
|
10
|
+
import { create } from 'zustand';
|
|
11
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
14
12
|
|
|
15
13
|
// src/providers/DirkProvider.tsx
|
|
16
14
|
|
|
@@ -39,7 +37,7 @@ function fetchOnLoad(eventName, data, mockData) {
|
|
|
39
37
|
throw err;
|
|
40
38
|
});
|
|
41
39
|
}
|
|
42
|
-
var localeStore =
|
|
40
|
+
var localeStore = create((set, get) => {
|
|
43
41
|
return {
|
|
44
42
|
locales: {
|
|
45
43
|
"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."
|
|
@@ -58,7 +56,7 @@ localeStore.getState().locale;
|
|
|
58
56
|
fetchOnLoad("GET_LOCALES").then((data) => {
|
|
59
57
|
localeStore.setState({ locales: data });
|
|
60
58
|
});
|
|
61
|
-
var theme =
|
|
59
|
+
var theme = createTheme({
|
|
62
60
|
primaryColor: "dirk",
|
|
63
61
|
primaryShade: 9,
|
|
64
62
|
defaultRadius: "xxs",
|
|
@@ -175,8 +173,8 @@ var theme = core.createTheme({
|
|
|
175
173
|
}
|
|
176
174
|
});
|
|
177
175
|
var theme_default = theme;
|
|
178
|
-
|
|
179
|
-
var useSettings =
|
|
176
|
+
library.add(fas, far, fab);
|
|
177
|
+
var useSettings = create((set) => ({
|
|
180
178
|
game: "rdr3",
|
|
181
179
|
primaryColor: "teal",
|
|
182
180
|
primaryShade: 6,
|
|
@@ -186,12 +184,12 @@ function DirkProvider(props) {
|
|
|
186
184
|
useSettings((data) => data.primaryColor);
|
|
187
185
|
useSettings((data) => data.primaryShade);
|
|
188
186
|
useSettings((data) => data.customTheme);
|
|
189
|
-
return /* @__PURE__ */
|
|
187
|
+
return /* @__PURE__ */ jsx(MantineProvider, { theme: theme_default, defaultColorScheme: "dark", children: /* @__PURE__ */ jsx(Wrapper, { children: props.children }) });
|
|
190
188
|
}
|
|
191
189
|
function Wrapper({ children }) {
|
|
192
190
|
const game = useSettings((data) => data.game);
|
|
193
|
-
return isEnvBrowser() ? /* @__PURE__ */
|
|
194
|
-
|
|
191
|
+
return isEnvBrowser() ? /* @__PURE__ */ jsx(
|
|
192
|
+
BackgroundImage,
|
|
195
193
|
{
|
|
196
194
|
w: "100vw",
|
|
197
195
|
h: "100vh",
|
|
@@ -199,10 +197,9 @@ function Wrapper({ children }) {
|
|
|
199
197
|
src: game === "fivem" ? "https://i.ytimg.com/vi/TOxuNbXrO28/maxresdefault.jpg" : "https://raw.githubusercontent.com/Jump-On-Studios/RedM-jo_libs/refs/heads/main/source-repositories/Menu/public/assets/images/background_dev.jpg",
|
|
200
198
|
children
|
|
201
199
|
}
|
|
202
|
-
) : /* @__PURE__ */
|
|
200
|
+
) : /* @__PURE__ */ jsx(Fragment, { children });
|
|
203
201
|
}
|
|
204
202
|
|
|
205
|
-
|
|
206
|
-
exports.useSettings = useSettings;
|
|
203
|
+
export { DirkProvider, useSettings };
|
|
207
204
|
//# sourceMappingURL=index.js.map
|
|
208
205
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/misc.ts","../../src/utils/fetchNui.ts","../../src/utils/locales.ts","../../src/theme.ts","../../src/providers/DirkProvider.tsx"],"names":["create","createTheme","library","fas","far","fab","jsx","MantineProvider","BackgroundImage"],"mappings":";;;;;;;;;;;;;;;;;AAAO,IAAM,YAAA,GAAe,MAAe,CAAE,MAAA,CAAe,YAAA;;;ACc5D,eAAsB,QAAA,CACpB,SAAA,EACA,IAAA,EACA,QAAA,EACY;AACZ,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,MAAA,EAAQ,MAAA;AAAA,IACR,OAAA,EAAS;AAAA,MACP,cAAA,EAAgB;AAAA,KAClB;AAAA,IACA,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,IAAI;AAAA,GAC3B;AACA,EAAA,OAAA,CAAQ,GAAA,CAAI,cAAc,QAAQ,CAAA;AAClC,EAAA,OAAA,CAAQ,GAAA,CAAI,iBAAA,EAAmB,YAAA,EAAc,CAAA;AAG7C,EAAA,MAAM,YAAA,GAAgB,MAAA,CAAe,qBAAA,GAChC,MAAA,CAAe,uBAAsB,GACtC,eAAA;AAEJ,EAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,CAAA,QAAA,EAAW,YAAY,CAAA,CAAA,EAAI,SAAS,IAAI,OAAO,CAAA;AAExE,EAAA,MAAM,aAAA,GAAgB,MAAM,IAAA,CAAK,IAAA,EAAK;AAEtC,EAAA,OAAO,aAAA;AACT;AASO,SAAS,WAAA,CACd,SAAA,EACA,IAAA,EACA,QAAA,EACY;AAEZ,EAAA,OAAO,SAAY,SAAA,EAAW,IAAA,EAAM,QAAQ,CAAA,CACzC,KAAA,CAAM,CAAC,GAAA,KAAQ;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,CAAA,yBAAA,EAA4B,SAAS,CAAA,CAAA,CAAA,EAAK,GAAG,CAAA;AAC3D,IAAA,MAAM,GAAA;AAAA,EACR,CAAC,CAAA;AACL;AC3CO,IAAM,WAAA,GAAcA,cAAA,CAAyB,CAAC,GAAA,EAAK,GAAA,KAAQ;AAChE,EAAA,OAAO;AAAA,IACL,OAAA,EAAS;AAAA,MACP,eAAA,EAAiB;AAAA,KACnB;AAAA,IACA,MAAA,EAAQ,CAAC,GAAA,EAAA,GAAgB,IAAA,KAAoC;AAC3D,MAAA,MAAM,MAAA,GAAS,GAAA,EAAI,CAAE,OAAA,CAAQ,GAAG,CAAA;AAKhC,MAAA,IAAI,cAAc,MAAA,IAAU,GAAA;AAC5B,MAAA,IAAI,KAAK,MAAA,EAAQ;AAIf,QAAA,WAAA,GAAc,WAAA,CAAY,QAAQ,KAAA,EAAO,MAAM,OAAO,IAAA,CAAK,KAAA,EAAM,IAAK,EAAE,CAAC,CAAA;AAAA,MAC3E;AACA,MAAA,OAAO,WAAA;AAAA,IACT;AAAA,GACF;AACF,CAAC,CAAA;AAGqB,WAAA,CAAY,QAAA,EAAS,CAAE;AAE7C,WAAA,CAA0B,aAAa,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,KAAS;AACtD,EAAA,WAAA,CAAY,QAAA,CAAS,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AACxC,CAAC,CAAA;AC1CD,IAAM,QAAQC,gBAAA,CAAY;AAAA,EACxB,YAAA,EAAc,MAAA;AAAA,EACd,YAAA,EAAc,CAAA;AAAA,EACd,aAAA,EAAe,KAAA;AAAA,EACf,UAAA,EAAY,6BAAA;AAAA,EAEZ,MAAA,EAAO;AAAA,IACL,GAAA,EAAK,OAAA;AAAA,IACL,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,KAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,KAAA;AAAA,IACJ,GAAA,EAAK;AAAA,GACP;AAAA,EAEA,SAAA,EAAW;AAAA,IACT,GAAA,EAAK,OAAA;AAAA,IACL,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,GAAA,EAAK;AAAA,GACP;AAAA,EAEA,OAAA,EAAQ;AAAA,IACN,GAAA,EAAK,OAAA;AAAA,IACL,EAAA,EAAI,QAAA;AAAA,IACJ,EAAA,EAAI,OAAA;AAAA,IACJ,EAAA,EAAI,KAAA;AAAA,IACJ,EAAA,EAAI,KAAA;AAAA,IACJ,EAAA,EAAI,KAAA;AAAA,IACJ,GAAA,EAAK;AAAA,GACP;AAAA,EAEA,UAAA,EAAW;AAAA,IACT,QAAA,EAAS;AAAA,MACP,MAAA,EAAO;AAAA,QACL,IAAA,EAAK;AAAA,UACH,eAAA,EAAiB;AAAA;AACnB;AAEF,KACF;AAAA,IAEA,MAAA,EAAO;AAAA,MACL,MAAA,EAAO;AAAA,QACL,QAAA,EAAS;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA,KAAA,EAAM;AAAA,UACJ,OAAA,EAAS;AAAA,SACX;AAAA,QACA,IAAA,EAAK;AAAA,UAEH,YAAA,EAAc;AAAA,SAChB;AAAA,QACA,OAAA,EAAQ;AAAA,UAEN,YAAA,EAAc;AAAA,SAChB;AAAA,QACA,MAAA,EAAO;AAAA,UACL,YAAA,EAAc;AAAA;AAChB;AAEF,KACF;AAAA,IACA,WAAA,EAAY;AAAA,MACV,MAAA,EAAO;AAAA,QACL,QAAA,EAAS;AAAA,UACP,YAAA,EAAc;AAAA,SAChB;AAAA,QACA,IAAA,EAAK;AAAA,UACH,YAAA,EAAc;AAAA,SAChB;AAAA,QACA,IAAA,EAAK;AAAA,UACH,YAAA,EAAc;AAAA,SAChB;AAAA,QACA,OAAA,EAAQ;AAAA,UACN,YAAA,EAAc;AAAA,SAChB;AAAA,QACA,MAAA,EAAO;AAAA,UACL,YAAA,EAAc;AAAA;AAChB;AAEF,KACF;AAAA,IACA,SAAA,EAAU;AAAA,MACR,MAAA,EAAO;AAAA,QACL,OAAA,EAAQ;AAAA,UACN,WAAA,EAAa;AAAA,SACf;AAAA,QAEA,KAAA,EAAM;AAAA,UACJ,OAAA,EAAS;AAAA;AACX;AAIF;AACF,GACF;AAAA,EAEA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAK;AAAA,MACH,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,IAAA,EAAK;AAAA,MACH,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC,CAAA;AAGD,IAAO,aAAA,GAAQ,KAAA;AC1HfC,0BAAA,CAAQ,GAAA,CAAIC,qBAAA,EAAKC,uBAAA,EAAKC,sBAAG,CAAA;AAOlB,IAAM,WAAA,GAAcL,cAAAA,CAKxB,CAAC,GAAA,MAAS;AAAA,EACX,IAAA,EAAM,MAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,YAAA,EAAc,CAAA;AAAA,EACd,aAAa;AACf,CAAA,CAAE;AAEK,SAAS,aAAa,KAAA,EAA0B;AACrD,EAAqB,WAAA,CAAY,CAAC,IAAA,KAAS,KAAK,YAAY;AAC5D,EAAqB,WAAA,CAAY,CAAC,IAAA,KAAS,KAAK,YAAY;AAC5D,EAAoB,WAAA,CAAY,CAAC,IAAA,KAAS,KAAK,WAAW;AA4B1D,EAAA,uBACEM,cAAA,CAACC,oBAAA,EAAA,EAAgB,KAAA,EAAO,aAAA,EAAO,kBAAA,EAAmB,QAChD,QAAA,kBAAAD,cAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,QAAA,EACT,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,OAAA,CAAQ,EAAE,QAAA,EAAS,EAAkC;AAC5D,EAAA,MAAM,IAAA,GAAO,WAAA,CAAY,CAAC,IAAA,KAAS,KAAK,IAAI,CAAA;AAC5C,EAAA,OAAO,cAAa,mBAClBA,cAAA;AAAA,IAACE,oBAAA;AAAA,IAAA;AAAA,MAAgB,CAAA,EAAE,OAAA;AAAA,MAAQ,CAAA,EAAE,OAAA;AAAA,MAAQ,KAAA,EAAO,EAAC,QAAA,EAAS,QAAA,EAAQ;AAAA,MAC5D,GAAA,EAAK,IAAA,KAAS,OAAA,GACZ,sDAAA,GACE,iJAAA;AAAA,MAEH;AAAA;AAAA,GACH,yDAEG,QAAA,EAAS,CAAA;AAEhB","file":"index.js","sourcesContent":["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 { isEnvBrowser } from \"./misc\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use. This abstraction\r\n * can be extended to include AbortController if needed or if the response isn't\r\n * JSON. Tailor it to your needs.\r\n *\r\n * @param eventName - The endpoint eventname to target\r\n * @param data - Data you wish to send in the NUI Callback\r\n * @param mockData - Mock data to be returned if in the browser\r\n *\r\n * @return returnData - A promise for the data sent back by the NuiCallbacks CB argument\r\n */\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 console.log('Mock Data:', mockData);\r\n console.log('Is Env Browser:', isEnvBrowser());\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : \"nui-frame-app\";\r\n\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n\r\n const respFormatted = await resp.json();\r\n\r\n return respFormatted;\r\n}\r\n\r\n/**\r\n * fetchOnLoad — triggers fetchNui immediately when called.\r\n * Can safely be used anywhere (even top-level, outside React).\r\n *\r\n * Usage:\r\n * fetchOnLoad<MyType>(\"getData\").then(data => myStore.setState({ data }));\r\n */\r\nexport function fetchOnLoad<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T\r\n): Promise<T> {\r\n // just call it directly\r\n return fetchNui<T>(eventName, data, mockData)\r\n .catch((err) => {\r\n console.error(`[fetchOnLoad] Failed for ${eventName}:`, err);\r\n throw err;\r\n });\r\n}\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string) => () => {\r\n if (isEnvBrowser()) {\r\n return Promise.resolve({} as T);\r\n }\r\n return fetchNui<T>('GET_LUA_TABLE', { tableName });\r\n};\r\n\r\n","import { create } from \"zustand\";\r\nimport { fetchOnLoad } 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\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: {\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 },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists){\r\n // add to a jsonfile called missing_locales.json within src of project \r\n \r\n }\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\nfetchOnLoad<LocalesProps>('GET_LOCALES').then((data) => {\r\n localeStore.setState({ locales: data });\r\n});\r\n","import { createTheme } from \"@mantine/core\";\r\n\r\nconst theme = createTheme({\r\n primaryColor: \"dirk\",\r\n primaryShade: 9,\r\n defaultRadius: \"xxs\",\r\n fontFamily: \"Akrobat Regular, sans-serif\",\r\n\r\n radius:{\r\n xxs: '0.2vh',\r\n xs: '0.4vh',\r\n sm: '0.75vh',\r\n md: '1vh',\r\n lg: '1.5vh',\r\n xl: '2vh',\r\n xxl: '3vh',\r\n },\r\n\r\n fontSizes: {\r\n xxs: '1.2vh',\r\n xs: '1.5vh',\r\n sm: '1.8vh',\r\n md: '2.2vh',\r\n lg: '2.8vh',\r\n xl: '3.3vh',\r\n xxl: '3.8vh',\r\n },\r\n\r\n spacing:{\r\n xxs: '0.5vh',\r\n xs: '0.75vh',\r\n sm: '1.5vh',\r\n md: '2vh',\r\n lg: '3vh',\r\n xl: '4vh',\r\n xxl: '5vh',\r\n },\r\n\r\n components:{\r\n Progress:{\r\n styles:{\r\n root:{\r\n backgroundColor: 'rgba(77, 77, 77, 0.4)',\r\n },\r\n \r\n }\r\n },\r\n\r\n Select:{\r\n styles:{\r\n dropdown:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n input:{\r\n padding: 'var(--mantine-spacing-sm)',\r\n },\r\n item:{\r\n \r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n wrapper:{\r\n \r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n option:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n\r\n }\r\n },\r\n MultiSelect:{\r\n styles:{\r\n dropdown:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n pill:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n item:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n wrapper:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n option:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n\r\n }\r\n },\r\n TextInput:{\r\n styles:{\r\n section:{\r\n marginRight: '0.2vh',\r\n },\r\n\r\n input:{\r\n padding: 'var(--mantine-spacing-sm)',\r\n },\r\n\r\n \r\n \r\n }\r\n },\r\n },\r\n\r\n colors: {\r\n dark:[\r\n \"#ffffff\",\r\n \"#e2e2e2\",\r\n \"#c6c6c6\",\r\n \"#aaaaaa\",\r\n \"#8d8d8d\",\r\n \"#717171\",\r\n \"#555555\",\r\n \"#393939\",\r\n \"#1c1c1c\",\r\n \"#000000\",\r\n ],\r\n dirk:[\r\n \"#ffffff\",\r\n \"#f3fce9\",\r\n \"#dbf5bd\",\r\n \"#c3ee91\",\r\n \"#ace765\",\r\n \"#94e039\",\r\n \"#7ac61f\",\r\n \"#5f9a18\",\r\n \"#29420a\",\r\n \"#446e11\",\r\n ],\r\n },\r\n});\r\n\r\n\r\nexport default theme;","import '@mantine/notifications/styles.css';\r\nimport '@mantine/core/styles.css';\r\nimport '@/styles/niceFont.css';\r\nimport '@/styles/scrollBar.css';\r\n\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\r\nimport { far } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { BackgroundImage, MantineProvider } from '@mantine/core';\r\nimport { isEnvBrowser } from '@/utils';\r\nimport { create } from 'zustand';\r\nimport theme from '@/theme';\r\nlibrary.add(fas, far, fab);\r\n\r\nexport type DirkProviderProps = {\r\n fakeBackground?: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const useSettings = create<{\r\n game: 'rdr3' | 'fivem';\r\n primaryColor: string;\r\n primaryShade: number;\r\n customTheme: Record<string, string[]>;\r\n}>((set) => ({\r\n game: 'rdr3',\r\n primaryColor: 'teal',\r\n primaryShade: 6,\r\n customTheme: {},\r\n}));\r\n\r\nexport function DirkProvider(props: DirkProviderProps) {\r\n const primaryColor = useSettings((data) => data.primaryColor);\r\n const primaryShade = useSettings((data) => data.primaryShade);\r\n const customTheme = useSettings((data) => data.customTheme);\r\n \r\n // Ensure the theme is updated when the settings change\r\n\r\n // useEffect(() => {\r\n // const updatedTheme = {\r\n // ...theme, // Start with the existing theme object\r\n // colors: {\r\n // ...theme.colors, // Copy the existing colors\r\n // custom: customTheme\r\n // },\r\n // };\r\n \r\n // setCurTheme(updatedTheme);\r\n // // set primary color\r\n // setCurTheme({\r\n // ...updatedTheme,\r\n // primaryColor: primaryColor,\r\n // primaryShade: primaryShade,\r\n // });\r\n\r\n // }, [primaryColor, primaryShade, customTheme]);\r\n\r\n // useEffect(() => {\r\n // // fetchSettings();\r\n // runInitialFetches();\r\n // }, []);\r\n\r\n return (\r\n <MantineProvider theme={theme} defaultColorScheme='dark'>\r\n <Wrapper>\r\n {props.children}\r\n </Wrapper>\r\n </MantineProvider>\r\n );\r\n}\r\n\r\nfunction Wrapper({ children }: { children: React.ReactNode }) {\r\n const game = useSettings((data) => data.game);\r\n return isEnvBrowser() ? ( \r\n <BackgroundImage w='100vw' h='100vh' style={{overflow:'hidden'}}\r\n src={game === 'fivem' ?\r\n \"https://i.ytimg.com/vi/TOxuNbXrO28/maxresdefault.jpg\"\r\n : \"https://raw.githubusercontent.com/Jump-On-Studios/RedM-jo_libs/refs/heads/main/source-repositories/Menu/public/assets/images/background_dev.jpg\"}\r\n > \r\n {children}\r\n </BackgroundImage>\r\n ) : (\r\n <>{children}</>\r\n )\r\n}\r\n\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/misc.ts","../../src/utils/fetchNui.ts","../../src/utils/locales.ts","../../src/theme.ts","../../src/providers/DirkProvider.tsx"],"names":["create"],"mappings":"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","file":"index.js","sourcesContent":["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 { isEnvBrowser } from \"./misc\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use. This abstraction\r\n * can be extended to include AbortController if needed or if the response isn't\r\n * JSON. Tailor it to your needs.\r\n *\r\n * @param eventName - The endpoint eventname to target\r\n * @param data - Data you wish to send in the NUI Callback\r\n * @param mockData - Mock data to be returned if in the browser\r\n *\r\n * @return returnData - A promise for the data sent back by the NuiCallbacks CB argument\r\n */\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 console.log('Mock Data:', mockData);\r\n console.log('Is Env Browser:', isEnvBrowser());\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : \"nui-frame-app\";\r\n\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n\r\n const respFormatted = await resp.json();\r\n\r\n return respFormatted;\r\n}\r\n\r\n/**\r\n * fetchOnLoad — triggers fetchNui immediately when called.\r\n * Can safely be used anywhere (even top-level, outside React).\r\n *\r\n * Usage:\r\n * fetchOnLoad<MyType>(\"getData\").then(data => myStore.setState({ data }));\r\n */\r\nexport function fetchOnLoad<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T\r\n): Promise<T> {\r\n // just call it directly\r\n return fetchNui<T>(eventName, data, mockData)\r\n .catch((err) => {\r\n console.error(`[fetchOnLoad] Failed for ${eventName}:`, err);\r\n throw err;\r\n });\r\n}\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string) => () => {\r\n if (isEnvBrowser()) {\r\n return Promise.resolve({} as T);\r\n }\r\n return fetchNui<T>('GET_LUA_TABLE', { tableName });\r\n};\r\n\r\n","import { create } from \"zustand\";\r\nimport { fetchOnLoad } 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\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: {\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 },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists){\r\n // add to a jsonfile called missing_locales.json within src of project \r\n \r\n }\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\nfetchOnLoad<LocalesProps>('GET_LOCALES').then((data) => {\r\n localeStore.setState({ locales: data });\r\n});\r\n","import { createTheme } from \"@mantine/core\";\r\n\r\nconst theme = createTheme({\r\n primaryColor: \"dirk\",\r\n primaryShade: 9,\r\n defaultRadius: \"xxs\",\r\n fontFamily: \"Akrobat Regular, sans-serif\",\r\n\r\n radius:{\r\n xxs: '0.2vh',\r\n xs: '0.4vh',\r\n sm: '0.75vh',\r\n md: '1vh',\r\n lg: '1.5vh',\r\n xl: '2vh',\r\n xxl: '3vh',\r\n },\r\n\r\n fontSizes: {\r\n xxs: '1.2vh',\r\n xs: '1.5vh',\r\n sm: '1.8vh',\r\n md: '2.2vh',\r\n lg: '2.8vh',\r\n xl: '3.3vh',\r\n xxl: '3.8vh',\r\n },\r\n\r\n spacing:{\r\n xxs: '0.5vh',\r\n xs: '0.75vh',\r\n sm: '1.5vh',\r\n md: '2vh',\r\n lg: '3vh',\r\n xl: '4vh',\r\n xxl: '5vh',\r\n },\r\n\r\n components:{\r\n Progress:{\r\n styles:{\r\n root:{\r\n backgroundColor: 'rgba(77, 77, 77, 0.4)',\r\n },\r\n \r\n }\r\n },\r\n\r\n Select:{\r\n styles:{\r\n dropdown:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n input:{\r\n padding: 'var(--mantine-spacing-sm)',\r\n },\r\n item:{\r\n \r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n wrapper:{\r\n \r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n option:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n\r\n }\r\n },\r\n MultiSelect:{\r\n styles:{\r\n dropdown:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n pill:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n item:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n wrapper:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n option:{\r\n borderRadius: 'var(--mantine-radius-xxs)',\r\n },\r\n\r\n }\r\n },\r\n TextInput:{\r\n styles:{\r\n section:{\r\n marginRight: '0.2vh',\r\n },\r\n\r\n input:{\r\n padding: 'var(--mantine-spacing-sm)',\r\n },\r\n\r\n \r\n \r\n }\r\n },\r\n },\r\n\r\n colors: {\r\n dark:[\r\n \"#ffffff\",\r\n \"#e2e2e2\",\r\n \"#c6c6c6\",\r\n \"#aaaaaa\",\r\n \"#8d8d8d\",\r\n \"#717171\",\r\n \"#555555\",\r\n \"#393939\",\r\n \"#1c1c1c\",\r\n \"#000000\",\r\n ],\r\n dirk:[\r\n \"#ffffff\",\r\n \"#f3fce9\",\r\n \"#dbf5bd\",\r\n \"#c3ee91\",\r\n \"#ace765\",\r\n \"#94e039\",\r\n \"#7ac61f\",\r\n \"#5f9a18\",\r\n \"#29420a\",\r\n \"#446e11\",\r\n ],\r\n },\r\n});\r\n\r\n\r\nexport default theme;","import '@mantine/notifications/styles.css';\r\nimport '@mantine/core/styles.css';\r\nimport '@/styles/niceFont.css';\r\nimport '@/styles/scrollBar.css';\r\n\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\r\nimport { far } from \"@fortawesome/free-regular-svg-icons\";\r\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { BackgroundImage, MantineProvider } from '@mantine/core';\r\nimport { isEnvBrowser } from '@/utils';\r\nimport { create } from 'zustand';\r\nimport theme from '@/theme';\r\nlibrary.add(fas, far, fab);\r\n\r\nexport type DirkProviderProps = {\r\n fakeBackground?: boolean;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const useSettings = create<{\r\n game: 'rdr3' | 'fivem';\r\n primaryColor: string;\r\n primaryShade: number;\r\n customTheme: Record<string, string[]>;\r\n}>((set) => ({\r\n game: 'rdr3',\r\n primaryColor: 'teal',\r\n primaryShade: 6,\r\n customTheme: {},\r\n}));\r\n\r\nexport function DirkProvider(props: DirkProviderProps) {\r\n const primaryColor = useSettings((data) => data.primaryColor);\r\n const primaryShade = useSettings((data) => data.primaryShade);\r\n const customTheme = useSettings((data) => data.customTheme);\r\n \r\n // Ensure the theme is updated when the settings change\r\n\r\n // useEffect(() => {\r\n // const updatedTheme = {\r\n // ...theme, // Start with the existing theme object\r\n // colors: {\r\n // ...theme.colors, // Copy the existing colors\r\n // custom: customTheme\r\n // },\r\n // };\r\n \r\n // setCurTheme(updatedTheme);\r\n // // set primary color\r\n // setCurTheme({\r\n // ...updatedTheme,\r\n // primaryColor: primaryColor,\r\n // primaryShade: primaryShade,\r\n // });\r\n\r\n // }, [primaryColor, primaryShade, customTheme]);\r\n\r\n // useEffect(() => {\r\n // // fetchSettings();\r\n // runInitialFetches();\r\n // }, []);\r\n\r\n return (\r\n <MantineProvider theme={theme} defaultColorScheme='dark'>\r\n <Wrapper>\r\n {props.children}\r\n </Wrapper>\r\n </MantineProvider>\r\n );\r\n}\r\n\r\nfunction Wrapper({ children }: { children: React.ReactNode }) {\r\n const game = useSettings((data) => data.game);\r\n return isEnvBrowser() ? ( \r\n <BackgroundImage w='100vw' h='100vh' style={{overflow:'hidden'}}\r\n src={game === 'fivem' ?\r\n \"https://i.ytimg.com/vi/TOxuNbXrO28/maxresdefault.jpg\"\r\n : \"https://raw.githubusercontent.com/Jump-On-Studios/RedM-jo_libs/refs/heads/main/source-repositories/Menu/public/assets/images/background_dev.jpg\"}\r\n > \r\n {children}\r\n </BackgroundImage>\r\n ) : (\r\n <>{children}</>\r\n )\r\n}\r\n\r\n"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var zustand = require('zustand');
|
|
2
4
|
|
|
3
5
|
// src/utils/colorWithAlpha.ts
|
|
4
6
|
var colorNames = {
|
|
@@ -244,7 +246,7 @@ var internalEvent = (events, timer = 1e3) => {
|
|
|
244
246
|
}
|
|
245
247
|
}
|
|
246
248
|
};
|
|
247
|
-
var localeStore = create((set, get) => {
|
|
249
|
+
var localeStore = zustand.create((set, get) => {
|
|
248
250
|
return {
|
|
249
251
|
locales: {
|
|
250
252
|
"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."
|
|
@@ -264,6 +266,18 @@ fetchOnLoad("GET_LOCALES").then((data) => {
|
|
|
264
266
|
localeStore.setState({ locales: data });
|
|
265
267
|
});
|
|
266
268
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
269
|
+
exports.colorWithAlpha = colorWithAlpha;
|
|
270
|
+
exports.copyToClipboard = copyToClipboard;
|
|
271
|
+
exports.fetchLuaTable = fetchLuaTable;
|
|
272
|
+
exports.fetchNui = fetchNui;
|
|
273
|
+
exports.fetchOnLoad = fetchOnLoad;
|
|
274
|
+
exports.internalEvent = internalEvent;
|
|
275
|
+
exports.isEnvBrowser = isEnvBrowser;
|
|
276
|
+
exports.locale = locale;
|
|
277
|
+
exports.localeStore = localeStore;
|
|
278
|
+
exports.noop = noop;
|
|
279
|
+
exports.numberToRoman = numberToRoman;
|
|
280
|
+
exports.openLink = openLink;
|
|
281
|
+
exports.splitFAString = splitFAString;
|
|
282
|
+
//# sourceMappingURL=index.cjs.map
|
|
283
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/colorWithAlpha.ts","../../src/utils/misc.ts","../../src/utils/fetchNui.ts","../../src/utils/internalEvent.ts","../../src/utils/locales.ts"],"names":["create"],"mappings":"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","file":"index.cjs","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 { isEnvBrowser } from \"./misc\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use. This abstraction\r\n * can be extended to include AbortController if needed or if the response isn't\r\n * JSON. Tailor it to your needs.\r\n *\r\n * @param eventName - The endpoint eventname to target\r\n * @param data - Data you wish to send in the NUI Callback\r\n * @param mockData - Mock data to be returned if in the browser\r\n *\r\n * @return returnData - A promise for the data sent back by the NuiCallbacks CB argument\r\n */\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 console.log('Mock Data:', mockData);\r\n console.log('Is Env Browser:', isEnvBrowser());\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : \"nui-frame-app\";\r\n\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n\r\n const respFormatted = await resp.json();\r\n\r\n return respFormatted;\r\n}\r\n\r\n/**\r\n * fetchOnLoad — triggers fetchNui immediately when called.\r\n * Can safely be used anywhere (even top-level, outside React).\r\n *\r\n * Usage:\r\n * fetchOnLoad<MyType>(\"getData\").then(data => myStore.setState({ data }));\r\n */\r\nexport function fetchOnLoad<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T\r\n): Promise<T> {\r\n // just call it directly\r\n return fetchNui<T>(eventName, data, mockData)\r\n .catch((err) => {\r\n console.error(`[fetchOnLoad] Failed for ${eventName}:`, err);\r\n throw err;\r\n });\r\n}\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string) => () => {\r\n if (isEnvBrowser()) {\r\n return Promise.resolve({} as T);\r\n }\r\n return fetchNui<T>('GET_LUA_TABLE', { tableName });\r\n};\r\n\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 { fetchOnLoad } 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\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: {\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 },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists){\r\n // add to a jsonfile called missing_locales.json within src of project \r\n \r\n }\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\nfetchOnLoad<LocalesProps>('GET_LOCALES').then((data) => {\r\n localeStore.setState({ locales: data });\r\n});\r\n"]}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var zustand = require('zustand');
|
|
1
|
+
import { create } from 'zustand';
|
|
4
2
|
|
|
5
3
|
// src/utils/colorWithAlpha.ts
|
|
6
4
|
var colorNames = {
|
|
@@ -246,7 +244,7 @@ var internalEvent = (events, timer = 1e3) => {
|
|
|
246
244
|
}
|
|
247
245
|
}
|
|
248
246
|
};
|
|
249
|
-
var localeStore =
|
|
247
|
+
var localeStore = create((set, get) => {
|
|
250
248
|
return {
|
|
251
249
|
locales: {
|
|
252
250
|
"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."
|
|
@@ -266,18 +264,6 @@ fetchOnLoad("GET_LOCALES").then((data) => {
|
|
|
266
264
|
localeStore.setState({ locales: data });
|
|
267
265
|
});
|
|
268
266
|
|
|
269
|
-
|
|
270
|
-
exports.copyToClipboard = copyToClipboard;
|
|
271
|
-
exports.fetchLuaTable = fetchLuaTable;
|
|
272
|
-
exports.fetchNui = fetchNui;
|
|
273
|
-
exports.fetchOnLoad = fetchOnLoad;
|
|
274
|
-
exports.internalEvent = internalEvent;
|
|
275
|
-
exports.isEnvBrowser = isEnvBrowser;
|
|
276
|
-
exports.locale = locale;
|
|
277
|
-
exports.localeStore = localeStore;
|
|
278
|
-
exports.noop = noop;
|
|
279
|
-
exports.numberToRoman = numberToRoman;
|
|
280
|
-
exports.openLink = openLink;
|
|
281
|
-
exports.splitFAString = splitFAString;
|
|
267
|
+
export { colorWithAlpha, copyToClipboard, fetchLuaTable, fetchNui, fetchOnLoad, internalEvent, isEnvBrowser, locale, localeStore, noop, numberToRoman, openLink, splitFAString };
|
|
282
268
|
//# sourceMappingURL=index.js.map
|
|
283
269
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/colorWithAlpha.ts","../../src/utils/misc.ts","../../src/utils/fetchNui.ts","../../src/utils/internalEvent.ts","../../src/utils/locales.ts"],"names":["create"],"mappings":"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","file":"index.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 { isEnvBrowser } from \"./misc\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use. This abstraction\r\n * can be extended to include AbortController if needed or if the response isn't\r\n * JSON. Tailor it to your needs.\r\n *\r\n * @param eventName - The endpoint eventname to target\r\n * @param data - Data you wish to send in the NUI Callback\r\n * @param mockData - Mock data to be returned if in the browser\r\n *\r\n * @return returnData - A promise for the data sent back by the NuiCallbacks CB argument\r\n */\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 console.log('Mock Data:', mockData);\r\n console.log('Is Env Browser:', isEnvBrowser());\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : \"nui-frame-app\";\r\n\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n\r\n const respFormatted = await resp.json();\r\n\r\n return respFormatted;\r\n}\r\n\r\n/**\r\n * fetchOnLoad — triggers fetchNui immediately when called.\r\n * Can safely be used anywhere (even top-level, outside React).\r\n *\r\n * Usage:\r\n * fetchOnLoad<MyType>(\"getData\").then(data => myStore.setState({ data }));\r\n */\r\nexport function fetchOnLoad<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T\r\n): Promise<T> {\r\n // just call it directly\r\n return fetchNui<T>(eventName, data, mockData)\r\n .catch((err) => {\r\n console.error(`[fetchOnLoad] Failed for ${eventName}:`, err);\r\n throw err;\r\n });\r\n}\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string) => () => {\r\n if (isEnvBrowser()) {\r\n return Promise.resolve({} as T);\r\n }\r\n return fetchNui<T>('GET_LUA_TABLE', { tableName });\r\n};\r\n\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 { fetchOnLoad } 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\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: {\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 },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists){\r\n // add to a jsonfile called missing_locales.json within src of project \r\n \r\n }\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\nfetchOnLoad<LocalesProps>('GET_LOCALES').then((data) => {\r\n localeStore.setState({ locales: data });\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/colorWithAlpha.ts","../../src/utils/misc.ts","../../src/utils/fetchNui.ts","../../src/utils/internalEvent.ts","../../src/utils/locales.ts"],"names":[],"mappings":"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","file":"index.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 { isEnvBrowser } from \"./misc\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use. This abstraction\r\n * can be extended to include AbortController if needed or if the response isn't\r\n * JSON. Tailor it to your needs.\r\n *\r\n * @param eventName - The endpoint eventname to target\r\n * @param data - Data you wish to send in the NUI Callback\r\n * @param mockData - Mock data to be returned if in the browser\r\n *\r\n * @return returnData - A promise for the data sent back by the NuiCallbacks CB argument\r\n */\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 console.log('Mock Data:', mockData);\r\n console.log('Is Env Browser:', isEnvBrowser());\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : \"nui-frame-app\";\r\n\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n\r\n const respFormatted = await resp.json();\r\n\r\n return respFormatted;\r\n}\r\n\r\n/**\r\n * fetchOnLoad — triggers fetchNui immediately when called.\r\n * Can safely be used anywhere (even top-level, outside React).\r\n *\r\n * Usage:\r\n * fetchOnLoad<MyType>(\"getData\").then(data => myStore.setState({ data }));\r\n */\r\nexport function fetchOnLoad<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T\r\n): Promise<T> {\r\n // just call it directly\r\n return fetchNui<T>(eventName, data, mockData)\r\n .catch((err) => {\r\n console.error(`[fetchOnLoad] Failed for ${eventName}:`, err);\r\n throw err;\r\n });\r\n}\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string) => () => {\r\n if (isEnvBrowser()) {\r\n return Promise.resolve({} as T);\r\n }\r\n return fetchNui<T>('GET_LUA_TABLE', { tableName });\r\n};\r\n\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 { fetchOnLoad } 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\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: {\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 },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists){\r\n // add to a jsonfile called missing_locales.json within src of project \r\n \r\n }\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\nfetchOnLoad<LocalesProps>('GET_LOCALES').then((data) => {\r\n localeStore.setState({ locales: data });\r\n});\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dirk-cfx-react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"main": "./dist/index.js",
|
|
5
6
|
"module": "./dist/index.mjs",
|
|
6
7
|
"types": "./dist/index.d.ts",
|
|
@@ -34,10 +35,6 @@
|
|
|
34
35
|
"files": [
|
|
35
36
|
"dist"
|
|
36
37
|
],
|
|
37
|
-
"scripts": {
|
|
38
|
-
"build": "tsup",
|
|
39
|
-
"prepublishOnly": "npm run build"
|
|
40
|
-
},
|
|
41
38
|
"devDependencies": {
|
|
42
39
|
"@fortawesome/fontawesome-svg-core": "^6.7.2",
|
|
43
40
|
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
|
@@ -70,5 +67,24 @@
|
|
|
70
67
|
"react": "^19.2.0",
|
|
71
68
|
"react-dom": "^19.2.0",
|
|
72
69
|
"zustand": "^5.0.3"
|
|
70
|
+
},
|
|
71
|
+
"typesVersions": {
|
|
72
|
+
"*": {
|
|
73
|
+
"components": [
|
|
74
|
+
"dist/components/index.d.ts"
|
|
75
|
+
],
|
|
76
|
+
"hooks": [
|
|
77
|
+
"dist/hooks/index.d.ts"
|
|
78
|
+
],
|
|
79
|
+
"utils": [
|
|
80
|
+
"dist/utils/index.d.ts"
|
|
81
|
+
],
|
|
82
|
+
"providers": [
|
|
83
|
+
"dist/providers/index.d.ts"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"scripts": {
|
|
88
|
+
"build": "tsup"
|
|
73
89
|
}
|
|
74
90
|
}
|