@gen-epix/ui-core 3.0.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,4 +6,9 @@ export declare class DownloadUtil {
6
6
  action: string;
7
7
  data: Record<string, string | string[]>;
8
8
  }): void;
9
+ static fetchAsDataUrl(kwArgs: {
10
+ accessToken: string;
11
+ action: string;
12
+ data: Record<string, string | string[]>;
13
+ }): Promise<string>;
9
14
  }
@@ -1,5 +1,5 @@
1
1
  //#region src/utils/DownloadUtil/DownloadUtil.ts
2
- var e = class {
2
+ var e = class e {
3
3
  static arrayBufferToBase64(e) {
4
4
  let t = "", n = new Uint8Array(e), r = n.byteLength;
5
5
  for (let e = 0; e < r; e++) t += String.fromCharCode(n[e]);
@@ -25,6 +25,23 @@ var e = class {
25
25
  let n = document.createElement("input");
26
26
  n.name = "token", n.value = e.accessToken, t.appendChild(n), document.body.appendChild(t), t.submit(), document.body.removeChild(t);
27
27
  }
28
+ static async fetchAsDataUrl(t) {
29
+ let n = new URLSearchParams();
30
+ Object.entries(t.data).forEach(([e, t]) => {
31
+ if (Array.isArray(t)) {
32
+ t.forEach((t) => n.append(e, t));
33
+ return;
34
+ }
35
+ n.append(e, t);
36
+ }), n.append("token", t.accessToken);
37
+ let r = await fetch(t.action, {
38
+ body: n,
39
+ method: "POST"
40
+ });
41
+ if (!r.ok) throw Error(`Request to ${t.action} failed with status ${r.status}`);
42
+ let i = await r.blob(), a = await i.arrayBuffer(), o = e.arrayBufferToBase64(a);
43
+ return `data:${i.type || "application/octet-stream"};base64,${o}`;
44
+ }
28
45
  };
29
46
  //#endregion
30
47
  export { e as DownloadUtil };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/DownloadUtil/DownloadUtil.ts"],"sourcesContent":["export class DownloadUtil {\n public static arrayBufferToBase64(buffer: ArrayBuffer) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n\n public static createDownloadUrl(url: string, name: string): void {\n const link = document.createElement('a');\n link.download = name;\n link.href = url;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n public static downloadAsMultiPartForm(kwArgs: { accessToken: string; action: string; data: Record<string, string | string[]> }): void {\n const formElement = document.createElement('form');\n formElement.method = 'POST';\n formElement.action = kwArgs.action;\n formElement.style.display = 'none';\n formElement.target = '_blank';\n\n Object.entries(kwArgs.data).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((v) => {\n const input = document.createElement('input');\n input.name = key;\n input.value = v;\n formElement.appendChild(input);\n });\n return;\n }\n\n const input = document.createElement('input');\n input.name = key;\n input.value = value;\n formElement.appendChild(input);\n });\n const input = document.createElement('input');\n input.name = 'token';\n // ! FIXME: add access token to arguments instead of accessing it directly here\n input.value = kwArgs.accessToken;\n formElement.appendChild(input);\n\n document.body.appendChild(formElement);\n\n formElement.submit();\n document.body.removeChild(formElement);\n }\n}\n"],"mappings":";AAAA,IAAa,IAAb,MAA0B;CACxB,OAAc,oBAAoB,GAAqB;EACrD,IAAI,IAAS,IACP,IAAQ,IAAI,WAAW,CAAM,GAC7B,IAAM,EAAM;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,GAAK,KACvB,KAAU,OAAO,aAAa,EAAM,EAAE;EAExC,OAAO,OAAO,KAAK,CAAM;CAC3B;CAEA,OAAc,kBAAkB,GAAa,GAAoB;EAC/D,IAAM,IAAO,SAAS,cAAc,GAAG;EAKvC,AAJA,EAAK,WAAW,GAChB,EAAK,OAAO,GACZ,SAAS,KAAK,YAAY,CAAI,GAC9B,EAAK,MAAM,GACX,SAAS,KAAK,YAAY,CAAI;CAChC;CAEA,OAAc,wBAAwB,GAAgG;EACpI,IAAM,IAAc,SAAS,cAAc,MAAM;EAMjD,AALA,EAAY,SAAS,QACrB,EAAY,SAAS,EAAO,QAC5B,EAAY,MAAM,UAAU,QAC5B,EAAY,SAAS,UAErB,OAAO,QAAQ,EAAO,IAAI,CAAC,CAAC,SAAS,CAAC,GAAK,OAAW;GACpD,IAAI,MAAM,QAAQ,CAAK,GAAG;IACxB,EAAM,SAAS,MAAM;KACnB,IAAM,IAAQ,SAAS,cAAc,OAAO;KAG5C,AAFA,EAAM,OAAO,GACb,EAAM,QAAQ,GACd,EAAY,YAAY,CAAK;IAC/B,CAAC;IACD;GACF;GAEA,IAAM,IAAQ,SAAS,cAAc,OAAO;GAG5C,AAFA,EAAM,OAAO,GACb,EAAM,QAAQ,GACd,EAAY,YAAY,CAAK;EAC/B,CAAC;EACD,IAAM,IAAQ,SAAS,cAAc,OAAO;EAS5C,AARA,EAAM,OAAO,SAEb,EAAM,QAAQ,EAAO,aACrB,EAAY,YAAY,CAAK,GAE7B,SAAS,KAAK,YAAY,CAAW,GAErC,EAAY,OAAO,GACnB,SAAS,KAAK,YAAY,CAAW;CACvC;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/DownloadUtil/DownloadUtil.ts"],"sourcesContent":["export class DownloadUtil {\n public static arrayBufferToBase64(buffer: ArrayBuffer) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n\n public static createDownloadUrl(url: string, name: string): void {\n const link = document.createElement('a');\n link.download = name;\n link.href = url;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n\n public static downloadAsMultiPartForm(kwArgs: { accessToken: string; action: string; data: Record<string, string | string[]> }): void {\n const formElement = document.createElement('form');\n formElement.method = 'POST';\n formElement.action = kwArgs.action;\n formElement.style.display = 'none';\n formElement.target = '_blank';\n\n Object.entries(kwArgs.data).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((v) => {\n const input = document.createElement('input');\n input.name = key;\n input.value = v;\n formElement.appendChild(input);\n });\n return;\n }\n\n const input = document.createElement('input');\n input.name = key;\n input.value = value;\n formElement.appendChild(input);\n });\n const input = document.createElement('input');\n input.name = 'token';\n input.value = kwArgs.accessToken;\n formElement.appendChild(input);\n\n document.body.appendChild(formElement);\n\n formElement.submit();\n document.body.removeChild(formElement);\n }\n\n public static async fetchAsDataUrl(kwArgs: { accessToken: string; action: string; data: Record<string, string | string[]> }): Promise<string> {\n const body = new URLSearchParams();\n Object.entries(kwArgs.data).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((v) => body.append(key, v));\n return;\n }\n body.append(key, value);\n });\n body.append('token', kwArgs.accessToken);\n\n const response = await fetch(kwArgs.action, {\n body,\n method: 'POST',\n });\n if (!response.ok) {\n throw new Error(`Request to ${kwArgs.action} failed with status ${response.status}`);\n }\n\n const blob = await response.blob();\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = DownloadUtil.arrayBufferToBase64(arrayBuffer);\n return `data:${blob.type || 'application/octet-stream'};base64,${base64}`;\n }\n}\n"],"mappings":";AAAA,IAAa,IAAb,MAAa,EAAa;CACxB,OAAc,oBAAoB,GAAqB;EACrD,IAAI,IAAS,IACP,IAAQ,IAAI,WAAW,CAAM,GAC7B,IAAM,EAAM;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,GAAK,KACvB,KAAU,OAAO,aAAa,EAAM,EAAE;EAExC,OAAO,OAAO,KAAK,CAAM;CAC3B;CAEA,OAAc,kBAAkB,GAAa,GAAoB;EAC/D,IAAM,IAAO,SAAS,cAAc,GAAG;EAKvC,AAJA,EAAK,WAAW,GAChB,EAAK,OAAO,GACZ,SAAS,KAAK,YAAY,CAAI,GAC9B,EAAK,MAAM,GACX,SAAS,KAAK,YAAY,CAAI;CAChC;CAEA,OAAc,wBAAwB,GAAgG;EACpI,IAAM,IAAc,SAAS,cAAc,MAAM;EAMjD,AALA,EAAY,SAAS,QACrB,EAAY,SAAS,EAAO,QAC5B,EAAY,MAAM,UAAU,QAC5B,EAAY,SAAS,UAErB,OAAO,QAAQ,EAAO,IAAI,CAAC,CAAC,SAAS,CAAC,GAAK,OAAW;GACpD,IAAI,MAAM,QAAQ,CAAK,GAAG;IACxB,EAAM,SAAS,MAAM;KACnB,IAAM,IAAQ,SAAS,cAAc,OAAO;KAG5C,AAFA,EAAM,OAAO,GACb,EAAM,QAAQ,GACd,EAAY,YAAY,CAAK;IAC/B,CAAC;IACD;GACF;GAEA,IAAM,IAAQ,SAAS,cAAc,OAAO;GAG5C,AAFA,EAAM,OAAO,GACb,EAAM,QAAQ,GACd,EAAY,YAAY,CAAK;EAC/B,CAAC;EACD,IAAM,IAAQ,SAAS,cAAc,OAAO;EAQ5C,AAPA,EAAM,OAAO,SACb,EAAM,QAAQ,EAAO,aACrB,EAAY,YAAY,CAAK,GAE7B,SAAS,KAAK,YAAY,CAAW,GAErC,EAAY,OAAO,GACnB,SAAS,KAAK,YAAY,CAAW;CACvC;CAEA,aAAoB,eAAe,GAA2G;EAC5I,IAAM,IAAO,IAAI,gBAAgB;EAQjC,AAPA,OAAO,QAAQ,EAAO,IAAI,CAAC,CAAC,SAAS,CAAC,GAAK,OAAW;GACpD,IAAI,MAAM,QAAQ,CAAK,GAAG;IACxB,EAAM,SAAS,MAAM,EAAK,OAAO,GAAK,CAAC,CAAC;IACxC;GACF;GACA,EAAK,OAAO,GAAK,CAAK;EACxB,CAAC,GACD,EAAK,OAAO,SAAS,EAAO,WAAW;EAEvC,IAAM,IAAW,MAAM,MAAM,EAAO,QAAQ;GAC1C;GACA,QAAQ;EACV,CAAC;EACD,IAAI,CAAC,EAAS,IACZ,MAAU,MAAM,cAAc,EAAO,OAAO,sBAAsB,EAAS,QAAQ;EAGrF,IAAM,IAAO,MAAM,EAAS,KAAK,GAC3B,IAAc,MAAM,EAAK,YAAY,GACrC,IAAS,EAAa,oBAAoB,CAAW;EAC3D,OAAO,QAAQ,EAAK,QAAQ,2BAA2B,UAAU;CACnE;AACF"}
@@ -0,0 +1,3 @@
1
+ export declare class FileUtil {
2
+ static getReadableFileSize(sizeInBytes: number): string;
3
+ }
@@ -0,0 +1 @@
1
+ export * from './FileUtil';
@@ -0,0 +1,10 @@
1
+ //#region src/utils/FileUtil/FileUtil.ts
2
+ var e = class {
3
+ static getReadableFileSize(e) {
4
+ return e < 1024 ? `${e} B` : e < 1048576 ? `${(e / 1024).toFixed(2)} KB` : e < 1073741824 ? `${(e / 1048576).toFixed(2)} MB` : `${(e / 1073741824).toFixed(2)} GB`;
5
+ }
6
+ };
7
+ //#endregion
8
+ export { e as FileUtil };
9
+
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/FileUtil/FileUtil.ts"],"sourcesContent":["export class FileUtil {\n public static getReadableFileSize(sizeInBytes: number): string {\n if (sizeInBytes < 1024) {\n return `${sizeInBytes} B`;\n } else if (sizeInBytes < 1024 * 1024) {\n return `${(sizeInBytes / 1024).toFixed(2)} KB`;\n } else if (sizeInBytes < 1024 * 1024 * 1024) {\n return `${(sizeInBytes / (1024 * 1024)).toFixed(2)} MB`;\n }\n return `${(sizeInBytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;\n }\n}\n"],"mappings":";AAAA,IAAa,IAAb,MAAsB;CACpB,OAAc,oBAAoB,GAA6B;EAQ7D,OAPI,IAAc,OACT,GAAG,EAAY,MACb,IAAc,UAChB,IAAI,IAAc,KAAA,CAAM,QAAQ,CAAC,EAAE,OACjC,IAAc,aAChB,IAAI,IAAe,QAAA,CAAc,QAAQ,CAAC,EAAE,OAE9C,IAAI,IAAe,WAAA,CAAqB,QAAQ,CAAC,EAAE;CAC5D;AACF"}
@@ -12,6 +12,7 @@ var e = class {
12
12
  }
13
13
  static toStringWithPrecision(e, t) {
14
14
  if (typeof e != "number" || !isFinite(e)) return "";
15
+ if (e === 0) return "0";
15
16
  let n = t.toString().split(".")?.[1]?.length ?? 0, r = e.toString().split("."), i = r[0];
16
17
  return n > 0 && (i = `${i}.${(r[1] ?? "").padEnd(n, "0").slice(0, n)}`), i;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/NumberUtil/NumberUtil.ts"],"sourcesContent":["export class NumberUtil {\n public static parse(value: number | string): number {\n if (typeof value === 'number') {\n return value;\n }\n\n if (typeof value !== 'string' || value.trim() === '') {\n return NaN;\n }\n\n let sanitizedValue = value\n .trim()\n .replace(/[^0-9,.-\\s]/g, ''); // Remove all except digits, commas, periods, minus signs, and whitespace\n\n // if multiple commas or periods exist, assume they are thousands separators and remove them\n const periodMatchesLength = (sanitizedValue.match(/[.]/g) || []).length;\n const commaMatchesLength = (sanitizedValue.match(/[,]/g) || []).length;\n const spaceMatchesLength = (sanitizedValue.match(/[\\s]/g) || []).length;\n\n if ([periodMatchesLength, commaMatchesLength, spaceMatchesLength].filter(count => count > 1).length > 1) {\n return NaN;\n }\n\n if (commaMatchesLength > 1) {\n // Remove all commas if there are multiple, assuming they are thousands separators\n // Note: remaining periods are treated as decimal separators\n return parseFloat(sanitizedValue.replace(/[,\\s]/g, ''));\n }\n if (spaceMatchesLength > 1) {\n // Remove all whitespace if there are multiple, assuming they are thousands separators\n sanitizedValue = sanitizedValue.replace(/\\s/g, '');\n // Note: remaining commas or periods are treated as decimal separators\n return parseFloat(sanitizedValue.replace(',', '.'));\n }\n if (periodMatchesLength > 1) {\n // Remove all periods if there are multiple, assuming they are thousands separators\n sanitizedValue = sanitizedValue.replace(/[.\\s]/g, '').replace(',', '.'); // Replace remaining comma with period for decimal\n return parseFloat(sanitizedValue);\n }\n\n sanitizedValue = sanitizedValue.replace(/[,.\\s](?=.*[,.\\s])/g, '')\n .replace(',', '.'); // Replace remaining comma with period for decimal\n\n return parseFloat(sanitizedValue);\n }\n\n\n public static toStringWithPrecision(value: number, base: number): string {\n if (typeof value !== 'number' || !isFinite(value)) {\n return '';\n }\n const precision = base.toString().split('.')?.[1]?.length ?? 0;\n const splitValue = value.toString().split('.');\n\n let stringValue = splitValue[0];\n if (precision > 0) {\n stringValue = `${stringValue}.${(splitValue[1] ?? '').padEnd(precision, '0').slice(0, precision)}`;\n }\n return stringValue;\n }\n}\n"],"mappings":";AAAA,IAAa,IAAb,MAAwB;CACtB,OAAc,MAAM,GAAgC;EAClD,IAAI,OAAO,KAAU,UACnB,OAAO;EAGT,IAAI,OAAO,KAAU,YAAY,EAAM,KAAK,MAAM,IAChD,OAAO;EAGT,IAAI,IAAiB,EAClB,KAAK,CAAC,CACN,QAAQ,gBAAgB,EAAE,GAGvB,KAAuB,EAAe,MAAM,MAAM,KAAK,CAAC,EAAA,CAAG,QAC3D,KAAsB,EAAe,MAAM,MAAM,KAAK,CAAC,EAAA,CAAG,QAC1D,KAAsB,EAAe,MAAM,OAAO,KAAK,CAAC,EAAA,CAAG;EA0BjE,OAxBI;GAAC;GAAqB;GAAoB;EAAkB,CAAC,CAAC,QAAO,MAAS,IAAQ,CAAC,CAAC,CAAC,SAAS,IAC7F,MAGL,IAAqB,IAGhB,WAAW,EAAe,QAAQ,UAAU,EAAE,CAAC,IAEpD,IAAqB,KAEvB,IAAiB,EAAe,QAAQ,OAAO,EAAE,GAE1C,WAAW,EAAe,QAAQ,KAAK,GAAG,CAAC,KAEhD,IAAsB,KAExB,IAAiB,EAAe,QAAQ,UAAU,EAAE,CAAC,CAAC,QAAQ,KAAK,GAAG,GAC/D,WAAW,CAAc,MAGlC,IAAiB,EAAe,QAAQ,uBAAuB,EAAE,CAAC,CAC/D,QAAQ,KAAK,GAAG,GAEZ,WAAW,CAAc;CAClC;CAGA,OAAc,sBAAsB,GAAe,GAAsB;EACvE,IAAI,OAAO,KAAU,YAAY,CAAC,SAAS,CAAK,GAC9C,OAAO;EAET,IAAM,IAAY,EAAK,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,UAAU,GACvD,IAAa,EAAM,SAAS,CAAC,CAAC,MAAM,GAAG,GAEzC,IAAc,EAAW;EAI7B,OAHI,IAAY,MACd,IAAc,GAAG,EAAY,IAAI,EAAW,MAAM,GAAA,CAAI,OAAO,GAAW,GAAG,CAAC,CAAC,MAAM,GAAG,CAAS,MAE1F;CACT;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/NumberUtil/NumberUtil.ts"],"sourcesContent":["export class NumberUtil {\n public static parse(value: number | string): number {\n if (typeof value === 'number') {\n return value;\n }\n\n if (typeof value !== 'string' || value.trim() === '') {\n return NaN;\n }\n\n let sanitizedValue = value\n .trim()\n .replace(/[^0-9,.-\\s]/g, ''); // Remove all except digits, commas, periods, minus signs, and whitespace\n\n // if multiple commas or periods exist, assume they are thousands separators and remove them\n const periodMatchesLength = (sanitizedValue.match(/[.]/g) || []).length;\n const commaMatchesLength = (sanitizedValue.match(/[,]/g) || []).length;\n const spaceMatchesLength = (sanitizedValue.match(/[\\s]/g) || []).length;\n\n if ([periodMatchesLength, commaMatchesLength, spaceMatchesLength].filter(count => count > 1).length > 1) {\n return NaN;\n }\n\n if (commaMatchesLength > 1) {\n // Remove all commas if there are multiple, assuming they are thousands separators\n // Note: remaining periods are treated as decimal separators\n return parseFloat(sanitizedValue.replace(/[,\\s]/g, ''));\n }\n if (spaceMatchesLength > 1) {\n // Remove all whitespace if there are multiple, assuming they are thousands separators\n sanitizedValue = sanitizedValue.replace(/\\s/g, '');\n // Note: remaining commas or periods are treated as decimal separators\n return parseFloat(sanitizedValue.replace(',', '.'));\n }\n if (periodMatchesLength > 1) {\n // Remove all periods if there are multiple, assuming they are thousands separators\n sanitizedValue = sanitizedValue.replace(/[.\\s]/g, '').replace(',', '.'); // Replace remaining comma with period for decimal\n return parseFloat(sanitizedValue);\n }\n\n sanitizedValue = sanitizedValue.replace(/[,.\\s](?=.*[,.\\s])/g, '')\n .replace(',', '.'); // Replace remaining comma with period for decimal\n\n return parseFloat(sanitizedValue);\n }\n\n\n public static toStringWithPrecision(value: number, base: number): string {\n if (typeof value !== 'number' || !isFinite(value)) {\n return '';\n }\n if (value === 0) {\n return '0';\n }\n const precision = base.toString().split('.')?.[1]?.length ?? 0;\n const splitValue = value.toString().split('.');\n\n let stringValue = splitValue[0];\n if (precision > 0) {\n stringValue = `${stringValue}.${(splitValue[1] ?? '').padEnd(precision, '0').slice(0, precision)}`;\n }\n return stringValue;\n }\n}\n"],"mappings":";AAAA,IAAa,IAAb,MAAwB;CACtB,OAAc,MAAM,GAAgC;EAClD,IAAI,OAAO,KAAU,UACnB,OAAO;EAGT,IAAI,OAAO,KAAU,YAAY,EAAM,KAAK,MAAM,IAChD,OAAO;EAGT,IAAI,IAAiB,EAClB,KAAK,CAAC,CACN,QAAQ,gBAAgB,EAAE,GAGvB,KAAuB,EAAe,MAAM,MAAM,KAAK,CAAC,EAAA,CAAG,QAC3D,KAAsB,EAAe,MAAM,MAAM,KAAK,CAAC,EAAA,CAAG,QAC1D,KAAsB,EAAe,MAAM,OAAO,KAAK,CAAC,EAAA,CAAG;EA0BjE,OAxBI;GAAC;GAAqB;GAAoB;EAAkB,CAAC,CAAC,QAAO,MAAS,IAAQ,CAAC,CAAC,CAAC,SAAS,IAC7F,MAGL,IAAqB,IAGhB,WAAW,EAAe,QAAQ,UAAU,EAAE,CAAC,IAEpD,IAAqB,KAEvB,IAAiB,EAAe,QAAQ,OAAO,EAAE,GAE1C,WAAW,EAAe,QAAQ,KAAK,GAAG,CAAC,KAEhD,IAAsB,KAExB,IAAiB,EAAe,QAAQ,UAAU,EAAE,CAAC,CAAC,QAAQ,KAAK,GAAG,GAC/D,WAAW,CAAc,MAGlC,IAAiB,EAAe,QAAQ,uBAAuB,EAAE,CAAC,CAC/D,QAAQ,KAAK,GAAG,GAEZ,WAAW,CAAc;CAClC;CAGA,OAAc,sBAAsB,GAAe,GAAsB;EACvE,IAAI,OAAO,KAAU,YAAY,CAAC,SAAS,CAAK,GAC9C,OAAO;EAET,IAAI,MAAU,GACZ,OAAO;EAET,IAAM,IAAY,EAAK,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,UAAU,GACvD,IAAa,EAAM,SAAS,CAAC,CAAC,MAAM,GAAG,GAEzC,IAAc,EAAW;EAI7B,OAHI,IAAY,MACd,IAAc,GAAG,EAAY,IAAI,EAAW,MAAM,GAAA,CAAI,OAAO,GAAW,GAAG,CAAC,CAAC,MAAM,GAAG,CAAS,MAE1F;CACT;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gen-epix/ui-core",
3
- "version": "3.0.2",
3
+ "version": "3.1.0",
4
4
  "license": "EUPL-1.2",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,6 +79,10 @@
79
79
  "types": "./dist/utils/DownloadUtil/index.d.ts",
80
80
  "import": "./dist/utils/DownloadUtil/index.js"
81
81
  },
82
+ "./utils/FileUtil": {
83
+ "types": "./dist/utils/FileUtil/index.d.ts",
84
+ "import": "./dist/utils/FileUtil/index.js"
85
+ },
82
86
  "./utils/HmrUtil": {
83
87
  "types": "./dist/utils/HmrUtil/index.d.ts",
84
88
  "import": "./dist/utils/HmrUtil/index.js"