@vived/core 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Utilities/addAlphaToHex.js +16 -0
- package/dist/cjs/Utilities/addAlphaToHex.js.map +1 -0
- package/dist/cjs/Utilities/addAlphaToHex.test.js +34 -0
- package/dist/cjs/Utilities/addAlphaToHex.test.js.map +1 -0
- package/dist/cjs/Utilities/alphaToHex.js +21 -0
- package/dist/cjs/Utilities/alphaToHex.js.map +1 -0
- package/dist/cjs/Utilities/alphaToHex.test.js +75 -0
- package/dist/cjs/Utilities/alphaToHex.test.js.map +1 -0
- package/dist/cjs/Utilities/downloadFile.js +14 -0
- package/dist/cjs/Utilities/downloadFile.js.map +1 -0
- package/dist/cjs/Utilities/index.js +3 -0
- package/dist/cjs/Utilities/index.js.map +1 -1
- package/dist/esm/Utilities/addAlphaToHex.js +13 -0
- package/dist/esm/Utilities/addAlphaToHex.js.map +1 -0
- package/dist/esm/Utilities/addAlphaToHex.test.js +32 -0
- package/dist/esm/Utilities/addAlphaToHex.test.js.map +1 -0
- package/dist/esm/Utilities/alphaToHex.js +17 -0
- package/dist/esm/Utilities/alphaToHex.js.map +1 -0
- package/dist/esm/Utilities/alphaToHex.test.js +73 -0
- package/dist/esm/Utilities/alphaToHex.test.js.map +1 -0
- package/dist/esm/Utilities/downloadFile.js +11 -0
- package/dist/esm/Utilities/downloadFile.js.map +1 -0
- package/dist/esm/Utilities/index.js +3 -0
- package/dist/esm/Utilities/index.js.map +1 -1
- package/dist/types/Utilities/addAlphaToHex.d.ts +2 -0
- package/dist/types/Utilities/addAlphaToHex.d.ts.map +1 -0
- package/dist/types/Utilities/addAlphaToHex.test.d.ts +2 -0
- package/dist/types/Utilities/addAlphaToHex.test.d.ts.map +1 -0
- package/dist/types/Utilities/alphaToHex.d.ts +3 -0
- package/dist/types/Utilities/alphaToHex.d.ts.map +1 -0
- package/dist/types/Utilities/alphaToHex.test.d.ts +2 -0
- package/dist/types/Utilities/alphaToHex.test.d.ts.map +1 -0
- package/dist/types/Utilities/downloadFile.d.ts +2 -0
- package/dist/types/Utilities/downloadFile.d.ts.map +1 -0
- package/dist/types/Utilities/index.d.ts +3 -0
- package/dist/types/Utilities/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addAlphaToHex = addAlphaToHex;
|
|
4
|
+
const alphaToHex_1 = require("./alphaToHex");
|
|
5
|
+
function addAlphaToHex(hex, alpha) {
|
|
6
|
+
if (!/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(hex)) {
|
|
7
|
+
console.warn("[addAlphaToHex] Hex value is not valid.");
|
|
8
|
+
return "#000";
|
|
9
|
+
}
|
|
10
|
+
if (hex.length === 4) {
|
|
11
|
+
hex = "#" + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];
|
|
12
|
+
}
|
|
13
|
+
const alphaHex = (0, alphaToHex_1.alphaToHex)(alpha);
|
|
14
|
+
return `${hex}${alphaHex}`;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=addAlphaToHex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAlphaToHex.js","sourceRoot":"","sources":["../../../src/Utilities/addAlphaToHex.ts"],"names":[],"mappings":";;AAEA,sCAYC;AAdD,6CAA0C;AAE1C,SAAgB,aAAa,CAAC,GAAW,EAAE,KAAa;IACtD,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;IACnC,OAAO,GAAG,GAAG,GAAG,QAAQ,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["import { alphaToHex } from \"./alphaToHex\";\r\n\r\nexport function addAlphaToHex(hex: string, alpha: number): string {\r\n if (!/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(hex)) {\r\n console.warn(\"[addAlphaToHex] Hex value is not valid.\");\r\n return \"#000\";\r\n }\r\n\r\n if (hex.length === 4) {\r\n hex = \"#\" + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];\r\n }\r\n\r\n const alphaHex = alphaToHex(alpha);\r\n return `${hex}${alphaHex}`;\r\n}\r\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const addAlphaToHex_1 = require("./addAlphaToHex");
|
|
4
|
+
describe("addAlphaToHex", () => {
|
|
5
|
+
it("should add alpha channel to hex color code", () => {
|
|
6
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#ffffff", 0.5)).toBe("#ffffff80");
|
|
7
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#000000", 0.1)).toBe("#0000001a");
|
|
8
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#123456", 0)).toBe("#12345600");
|
|
9
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#abcdef", 1)).toBe("#abcdefff");
|
|
10
|
+
});
|
|
11
|
+
it("should add alpha channel to short hex color code", () => {
|
|
12
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#fff", 0.5)).toBe("#ffffff80");
|
|
13
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#000", 0.1)).toBe("#0000001a");
|
|
14
|
+
});
|
|
15
|
+
it("should log a warning and return Hex with alpha 0 if alpha value is out of bounds", () => {
|
|
16
|
+
console.warn = jest.fn();
|
|
17
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#ffffff", -0.1)).toBe("#ffffff00");
|
|
18
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
19
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#ffffff", 1.1)).toBe("#ffffff00");
|
|
20
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
21
|
+
});
|
|
22
|
+
it("should log a warning and return #000 for invalid hex values", () => {
|
|
23
|
+
console.warn = jest.fn();
|
|
24
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#gggggg", 0.5)).toBe("#000");
|
|
25
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
26
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#ffff", 0.5)).toBe("#000");
|
|
27
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
28
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("ffffff", 0.5)).toBe("#000");
|
|
29
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
30
|
+
expect((0, addAlphaToHex_1.addAlphaToHex)("#fff0", 0.5)).toBe("#000");
|
|
31
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=addAlphaToHex.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAlphaToHex.test.js","sourceRoot":"","sources":["../../../src/Utilities/addAlphaToHex.test.ts"],"names":[],"mappings":";;AAAA,mDAAgD;AAEhD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,IAAA,6BAAa,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,IAAA,6BAAa,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,IAAA,6BAAa,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,CAAC,IAAA,6BAAa,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,IAAA,6BAAa,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,CAAC,IAAA,6BAAa,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,IAAA,6BAAa,EAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,mDAAmD,CACpD,CAAC;QACF,MAAM,CAAC,IAAA,6BAAa,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,IAAA,6BAAa,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;QAEF,MAAM,CAAC,IAAA,6BAAa,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;QAEF,MAAM,CAAC,IAAA,6BAAa,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;QAEF,MAAM,CAAC,IAAA,6BAAa,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { addAlphaToHex } from \"./addAlphaToHex\";\r\n\r\ndescribe(\"addAlphaToHex\", () => {\r\n it(\"should add alpha channel to hex color code\", () => {\r\n expect(addAlphaToHex(\"#ffffff\", 0.5)).toBe(\"#ffffff80\");\r\n expect(addAlphaToHex(\"#000000\", 0.1)).toBe(\"#0000001a\");\r\n expect(addAlphaToHex(\"#123456\", 0)).toBe(\"#12345600\");\r\n expect(addAlphaToHex(\"#abcdef\", 1)).toBe(\"#abcdefff\");\r\n });\r\n\r\n it(\"should add alpha channel to short hex color code\", () => {\r\n expect(addAlphaToHex(\"#fff\", 0.5)).toBe(\"#ffffff80\");\r\n expect(addAlphaToHex(\"#000\", 0.1)).toBe(\"#0000001a\");\r\n });\r\n\r\n it(\"should log a warning and return Hex with alpha 0 if alpha value is out of bounds\", () => {\r\n console.warn = jest.fn();\r\n expect(addAlphaToHex(\"#ffffff\", -0.1)).toBe(\"#ffffff00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n expect(addAlphaToHex(\"#ffffff\", 1.1)).toBe(\"#ffffff00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n });\r\n\r\n it(\"should log a warning and return #000 for invalid hex values\", () => {\r\n console.warn = jest.fn();\r\n expect(addAlphaToHex(\"#gggggg\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n\r\n expect(addAlphaToHex(\"#ffff\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n\r\n expect(addAlphaToHex(\"ffffff\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n\r\n expect(addAlphaToHex(\"#fff0\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n });\r\n});\r\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.roundHalfToEven = roundHalfToEven;
|
|
4
|
+
exports.alphaToHex = alphaToHex;
|
|
5
|
+
function roundHalfToEven(number) {
|
|
6
|
+
const roundedNumber = Math.round(number);
|
|
7
|
+
if (Math.abs(roundedNumber - number) === 0.5 && roundedNumber % 2 !== 0) {
|
|
8
|
+
return roundedNumber > number ? roundedNumber - 1 : roundedNumber + 1;
|
|
9
|
+
}
|
|
10
|
+
return roundedNumber;
|
|
11
|
+
}
|
|
12
|
+
function alphaToHex(alpha) {
|
|
13
|
+
if (alpha < 0 || alpha > 1) {
|
|
14
|
+
console.warn("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
15
|
+
return "00";
|
|
16
|
+
}
|
|
17
|
+
const alpha255 = roundHalfToEven(alpha * 255);
|
|
18
|
+
const alphaHex = alpha255.toString(16).padStart(2, "0");
|
|
19
|
+
return alphaHex;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=alphaToHex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphaToHex.js","sourceRoot":"","sources":["../../../src/Utilities/alphaToHex.ts"],"names":[],"mappings":";;AAAA,0CAMC;AAED,gCAUC;AAlBD,SAAgB,eAAe,CAAC,MAAc;IAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,aAAa,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAExD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["export function roundHalfToEven(number: number): number {\r\n const roundedNumber = Math.round(number);\r\n if (Math.abs(roundedNumber - number) === 0.5 && roundedNumber % 2 !== 0) {\r\n return roundedNumber > number ? roundedNumber - 1 : roundedNumber + 1;\r\n }\r\n return roundedNumber;\r\n}\r\n\r\nexport function alphaToHex(alpha: number): string {\r\n if (alpha < 0 || alpha > 1) {\r\n console.warn(\"[alphaToHex] Alpha value must be between 0 and 1.\");\r\n return \"00\";\r\n }\r\n\r\n const alpha255 = roundHalfToEven(alpha * 255);\r\n const alphaHex = alpha255.toString(16).padStart(2, \"0\");\r\n\r\n return alphaHex;\r\n}\r\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const alphaToHex_1 = require("./alphaToHex");
|
|
4
|
+
describe("roundHalfToEven", () => {
|
|
5
|
+
it("should round 0.49 to 0", () => {
|
|
6
|
+
expect((0, alphaToHex_1.roundHalfToEven)(0.49)).toBe(0);
|
|
7
|
+
});
|
|
8
|
+
it("should round 0.5 to 0", () => {
|
|
9
|
+
expect((0, alphaToHex_1.roundHalfToEven)(0.5)).toBe(0);
|
|
10
|
+
});
|
|
11
|
+
it("should round 0.51 to 1", () => {
|
|
12
|
+
expect((0, alphaToHex_1.roundHalfToEven)(0.51)).toBe(1);
|
|
13
|
+
});
|
|
14
|
+
it("should round 0.55 to 1", () => {
|
|
15
|
+
expect((0, alphaToHex_1.roundHalfToEven)(0.55)).toBe(1);
|
|
16
|
+
});
|
|
17
|
+
it("should round 0.75 to 1", () => {
|
|
18
|
+
expect((0, alphaToHex_1.roundHalfToEven)(0.75)).toBe(1);
|
|
19
|
+
});
|
|
20
|
+
it("should round 123.5 to 124", () => {
|
|
21
|
+
expect((0, alphaToHex_1.roundHalfToEven)(123.5)).toBe(124);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe("alphaToHex", () => {
|
|
25
|
+
it("should return '00' for alpha 0", () => {
|
|
26
|
+
expect((0, alphaToHex_1.alphaToHex)(0)).toBe("00");
|
|
27
|
+
});
|
|
28
|
+
it("should return 'ff' for alpha 1", () => {
|
|
29
|
+
expect((0, alphaToHex_1.alphaToHex)(1)).toBe("ff");
|
|
30
|
+
});
|
|
31
|
+
it("should return '1f' for alpha 0.12 (12%)", () => {
|
|
32
|
+
expect((0, alphaToHex_1.alphaToHex)(0.12)).toBe("1f");
|
|
33
|
+
});
|
|
34
|
+
it("should return '80' for alpha 0.5 (50%)", () => {
|
|
35
|
+
expect((0, alphaToHex_1.alphaToHex)(0.5)).toBe("80");
|
|
36
|
+
});
|
|
37
|
+
it("should return 'bf' for alpha 0.75 (75%)", () => {
|
|
38
|
+
expect((0, alphaToHex_1.alphaToHex)(0.75)).toBe("bf");
|
|
39
|
+
});
|
|
40
|
+
it("should return '00' for alpha just above 0", () => {
|
|
41
|
+
expect((0, alphaToHex_1.alphaToHex)(0.0012)).toBe("00");
|
|
42
|
+
});
|
|
43
|
+
it("should return '03' for alpha 0.01", () => {
|
|
44
|
+
expect((0, alphaToHex_1.alphaToHex)(0.01)).toBe("03");
|
|
45
|
+
});
|
|
46
|
+
it("should return '03' for alpha just above 0 with rounding", () => {
|
|
47
|
+
expect((0, alphaToHex_1.alphaToHex)(0.01)).toBe("03");
|
|
48
|
+
});
|
|
49
|
+
it("should return 'ff' for alpha just below 1", () => {
|
|
50
|
+
expect((0, alphaToHex_1.alphaToHex)(0.9988)).toBe("ff");
|
|
51
|
+
});
|
|
52
|
+
it("should return 'fc' for alpha 0.99", () => {
|
|
53
|
+
expect((0, alphaToHex_1.alphaToHex)(0.99)).toBe("fc");
|
|
54
|
+
});
|
|
55
|
+
it("should return 'fc' for alpha just below 1 with rounding", () => {
|
|
56
|
+
expect((0, alphaToHex_1.alphaToHex)(0.99)).toBe("fc");
|
|
57
|
+
});
|
|
58
|
+
it("should return 'fe' for alpha 0.996", () => {
|
|
59
|
+
expect((0, alphaToHex_1.alphaToHex)(0.996)).toBe("fe");
|
|
60
|
+
});
|
|
61
|
+
it("should return 'fe' for alpha 0.998", () => {
|
|
62
|
+
expect((0, alphaToHex_1.alphaToHex)(0.998)).toBe("fe");
|
|
63
|
+
});
|
|
64
|
+
it("should log a warning and return '00' (0) for alpha less than 0", () => {
|
|
65
|
+
console.warn = jest.fn();
|
|
66
|
+
expect((0, alphaToHex_1.alphaToHex)(-0.1)).toBe("00");
|
|
67
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
68
|
+
});
|
|
69
|
+
it("should log a warning and return '00' (0) for alpha greater than 1", () => {
|
|
70
|
+
console.warn = jest.fn();
|
|
71
|
+
expect((0, alphaToHex_1.alphaToHex)(1.1)).toBe("00");
|
|
72
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=alphaToHex.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphaToHex.test.js","sourceRoot":"","sources":["../../../src/Utilities/alphaToHex.test.ts"],"names":[],"mappings":";;AAAA,6CAA2D;AAE3D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,IAAA,4BAAe,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,IAAA,4BAAe,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,IAAA,uBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,IAAA,uBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,IAAA,uBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,IAAA,uBAAU,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,IAAA,uBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { alphaToHex, roundHalfToEven } from \"./alphaToHex\";\r\n\r\ndescribe(\"roundHalfToEven\", () => {\r\n it(\"should round 0.49 to 0\", () => {\r\n expect(roundHalfToEven(0.49)).toBe(0);\r\n });\r\n\r\n it(\"should round 0.5 to 0\", () => {\r\n expect(roundHalfToEven(0.5)).toBe(0);\r\n });\r\n\r\n it(\"should round 0.51 to 1\", () => {\r\n expect(roundHalfToEven(0.51)).toBe(1);\r\n });\r\n\r\n it(\"should round 0.55 to 1\", () => {\r\n expect(roundHalfToEven(0.55)).toBe(1);\r\n });\r\n\r\n it(\"should round 0.75 to 1\", () => {\r\n expect(roundHalfToEven(0.75)).toBe(1);\r\n });\r\n\r\n it(\"should round 123.5 to 124\", () => {\r\n expect(roundHalfToEven(123.5)).toBe(124);\r\n });\r\n});\r\n\r\ndescribe(\"alphaToHex\", () => {\r\n it(\"should return '00' for alpha 0\", () => {\r\n expect(alphaToHex(0)).toBe(\"00\");\r\n });\r\n\r\n it(\"should return 'ff' for alpha 1\", () => {\r\n expect(alphaToHex(1)).toBe(\"ff\");\r\n });\r\n\r\n it(\"should return '1f' for alpha 0.12 (12%)\", () => {\r\n expect(alphaToHex(0.12)).toBe(\"1f\");\r\n });\r\n\r\n it(\"should return '80' for alpha 0.5 (50%)\", () => {\r\n expect(alphaToHex(0.5)).toBe(\"80\");\r\n });\r\n\r\n it(\"should return 'bf' for alpha 0.75 (75%)\", () => {\r\n expect(alphaToHex(0.75)).toBe(\"bf\");\r\n });\r\n\r\n it(\"should return '00' for alpha just above 0\", () => {\r\n expect(alphaToHex(0.0012)).toBe(\"00\");\r\n });\r\n\r\n it(\"should return '03' for alpha 0.01\", () => {\r\n expect(alphaToHex(0.01)).toBe(\"03\");\r\n });\r\n\r\n it(\"should return '03' for alpha just above 0 with rounding\", () => {\r\n expect(alphaToHex(0.01)).toBe(\"03\");\r\n });\r\n\r\n it(\"should return 'ff' for alpha just below 1\", () => {\r\n expect(alphaToHex(0.9988)).toBe(\"ff\");\r\n });\r\n\r\n it(\"should return 'fc' for alpha 0.99\", () => {\r\n expect(alphaToHex(0.99)).toBe(\"fc\");\r\n });\r\n\r\n it(\"should return 'fc' for alpha just below 1 with rounding\", () => {\r\n expect(alphaToHex(0.99)).toBe(\"fc\");\r\n });\r\n\r\n it(\"should return 'fe' for alpha 0.996\", () => {\r\n expect(alphaToHex(0.996)).toBe(\"fe\");\r\n });\r\n\r\n it(\"should return 'fe' for alpha 0.998\", () => {\r\n expect(alphaToHex(0.998)).toBe(\"fe\");\r\n });\r\n\r\n it(\"should log a warning and return '00' (0) for alpha less than 0\", () => {\r\n console.warn = jest.fn();\r\n expect(alphaToHex(-0.1)).toBe(\"00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n });\r\n\r\n it(\"should log a warning and return '00' (0) for alpha greater than 1\", () => {\r\n console.warn = jest.fn();\r\n expect(alphaToHex(1.1)).toBe(\"00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n });\r\n});\r\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.downloadFile = downloadFile;
|
|
4
|
+
function downloadFile(filename, file) {
|
|
5
|
+
const a = document.createElement("a");
|
|
6
|
+
const url = window.URL.createObjectURL(file);
|
|
7
|
+
a.href = url;
|
|
8
|
+
a.download = filename;
|
|
9
|
+
document.body.appendChild(a);
|
|
10
|
+
a.click();
|
|
11
|
+
document.body.removeChild(a);
|
|
12
|
+
window.URL.revokeObjectURL(url);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=downloadFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadFile.js","sourceRoot":"","sources":["../../../src/Utilities/downloadFile.ts"],"names":[],"mappings":";;AAAA,oCAUC;AAVD,SAAgB,YAAY,CAAC,QAAgB,EAAE,IAAU;IACvD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IACb,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEV,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC","sourcesContent":["export function downloadFile(filename: string, file: Blob) {\r\n const a = document.createElement(\"a\");\r\n const url = window.URL.createObjectURL(file);\r\n a.href = url;\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n}\r\n"]}
|
|
@@ -14,7 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./addAlphaToHex"), exports);
|
|
18
|
+
__exportStar(require("./alphaToHex"), exports);
|
|
17
19
|
__exportStar(require("./degreesToRadians"), exports);
|
|
20
|
+
__exportStar(require("./downloadFile"), exports);
|
|
18
21
|
__exportStar(require("./LengthConverters"), exports);
|
|
19
22
|
__exportStar(require("./generateUniqueID"), exports);
|
|
20
23
|
__exportStar(require("./easeFunctions"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,qDAAmC;AACnC,qDAAmC;AACnC,kDAAgC;AAChC,sDAAoC","sourcesContent":["export * from \"./degreesToRadians\";\r\nexport * from \"./LengthConverters\";\r\nexport * from \"./generateUniqueID\";\r\nexport * from \"./easeFunctions\";\r\nexport * from \"./interpolateNumber\";\r\n
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,+CAA6B;AAC7B,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,qDAAmC;AACnC,kDAAgC;AAChC,sDAAoC","sourcesContent":["export * from \"./addAlphaToHex\";\r\nexport * from \"./alphaToHex\";\r\nexport * from \"./degreesToRadians\";\r\nexport * from \"./downloadFile\";\r\nexport * from \"./LengthConverters\";\r\nexport * from \"./generateUniqueID\";\r\nexport * from \"./easeFunctions\";\r\nexport * from \"./interpolateNumber\";\r\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { alphaToHex } from "./alphaToHex";
|
|
2
|
+
export function addAlphaToHex(hex, alpha) {
|
|
3
|
+
if (!/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(hex)) {
|
|
4
|
+
console.warn("[addAlphaToHex] Hex value is not valid.");
|
|
5
|
+
return "#000";
|
|
6
|
+
}
|
|
7
|
+
if (hex.length === 4) {
|
|
8
|
+
hex = "#" + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];
|
|
9
|
+
}
|
|
10
|
+
const alphaHex = alphaToHex(alpha);
|
|
11
|
+
return `${hex}${alphaHex}`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=addAlphaToHex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAlphaToHex.js","sourceRoot":"","sources":["../../../src/Utilities/addAlphaToHex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,KAAa;IACtD,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,GAAG,GAAG,GAAG,QAAQ,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["import { alphaToHex } from \"./alphaToHex\";\r\n\r\nexport function addAlphaToHex(hex: string, alpha: number): string {\r\n if (!/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(hex)) {\r\n console.warn(\"[addAlphaToHex] Hex value is not valid.\");\r\n return \"#000\";\r\n }\r\n\r\n if (hex.length === 4) {\r\n hex = \"#\" + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];\r\n }\r\n\r\n const alphaHex = alphaToHex(alpha);\r\n return `${hex}${alphaHex}`;\r\n}\r\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { addAlphaToHex } from "./addAlphaToHex";
|
|
2
|
+
describe("addAlphaToHex", () => {
|
|
3
|
+
it("should add alpha channel to hex color code", () => {
|
|
4
|
+
expect(addAlphaToHex("#ffffff", 0.5)).toBe("#ffffff80");
|
|
5
|
+
expect(addAlphaToHex("#000000", 0.1)).toBe("#0000001a");
|
|
6
|
+
expect(addAlphaToHex("#123456", 0)).toBe("#12345600");
|
|
7
|
+
expect(addAlphaToHex("#abcdef", 1)).toBe("#abcdefff");
|
|
8
|
+
});
|
|
9
|
+
it("should add alpha channel to short hex color code", () => {
|
|
10
|
+
expect(addAlphaToHex("#fff", 0.5)).toBe("#ffffff80");
|
|
11
|
+
expect(addAlphaToHex("#000", 0.1)).toBe("#0000001a");
|
|
12
|
+
});
|
|
13
|
+
it("should log a warning and return Hex with alpha 0 if alpha value is out of bounds", () => {
|
|
14
|
+
console.warn = jest.fn();
|
|
15
|
+
expect(addAlphaToHex("#ffffff", -0.1)).toBe("#ffffff00");
|
|
16
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
17
|
+
expect(addAlphaToHex("#ffffff", 1.1)).toBe("#ffffff00");
|
|
18
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
19
|
+
});
|
|
20
|
+
it("should log a warning and return #000 for invalid hex values", () => {
|
|
21
|
+
console.warn = jest.fn();
|
|
22
|
+
expect(addAlphaToHex("#gggggg", 0.5)).toBe("#000");
|
|
23
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
24
|
+
expect(addAlphaToHex("#ffff", 0.5)).toBe("#000");
|
|
25
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
26
|
+
expect(addAlphaToHex("ffffff", 0.5)).toBe("#000");
|
|
27
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
28
|
+
expect(addAlphaToHex("#fff0", 0.5)).toBe("#000");
|
|
29
|
+
expect(console.warn).toHaveBeenCalledWith("[addAlphaToHex] Hex value is not valid.");
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=addAlphaToHex.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAlphaToHex.test.js","sourceRoot":"","sources":["../../../src/Utilities/addAlphaToHex.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,mDAAmD,CACpD,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvC,yCAAyC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { addAlphaToHex } from \"./addAlphaToHex\";\r\n\r\ndescribe(\"addAlphaToHex\", () => {\r\n it(\"should add alpha channel to hex color code\", () => {\r\n expect(addAlphaToHex(\"#ffffff\", 0.5)).toBe(\"#ffffff80\");\r\n expect(addAlphaToHex(\"#000000\", 0.1)).toBe(\"#0000001a\");\r\n expect(addAlphaToHex(\"#123456\", 0)).toBe(\"#12345600\");\r\n expect(addAlphaToHex(\"#abcdef\", 1)).toBe(\"#abcdefff\");\r\n });\r\n\r\n it(\"should add alpha channel to short hex color code\", () => {\r\n expect(addAlphaToHex(\"#fff\", 0.5)).toBe(\"#ffffff80\");\r\n expect(addAlphaToHex(\"#000\", 0.1)).toBe(\"#0000001a\");\r\n });\r\n\r\n it(\"should log a warning and return Hex with alpha 0 if alpha value is out of bounds\", () => {\r\n console.warn = jest.fn();\r\n expect(addAlphaToHex(\"#ffffff\", -0.1)).toBe(\"#ffffff00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n expect(addAlphaToHex(\"#ffffff\", 1.1)).toBe(\"#ffffff00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n });\r\n\r\n it(\"should log a warning and return #000 for invalid hex values\", () => {\r\n console.warn = jest.fn();\r\n expect(addAlphaToHex(\"#gggggg\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n\r\n expect(addAlphaToHex(\"#ffff\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n\r\n expect(addAlphaToHex(\"ffffff\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n\r\n expect(addAlphaToHex(\"#fff0\", 0.5)).toBe(\"#000\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[addAlphaToHex] Hex value is not valid.\"\r\n );\r\n });\r\n});\r\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function roundHalfToEven(number) {
|
|
2
|
+
const roundedNumber = Math.round(number);
|
|
3
|
+
if (Math.abs(roundedNumber - number) === 0.5 && roundedNumber % 2 !== 0) {
|
|
4
|
+
return roundedNumber > number ? roundedNumber - 1 : roundedNumber + 1;
|
|
5
|
+
}
|
|
6
|
+
return roundedNumber;
|
|
7
|
+
}
|
|
8
|
+
export function alphaToHex(alpha) {
|
|
9
|
+
if (alpha < 0 || alpha > 1) {
|
|
10
|
+
console.warn("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
11
|
+
return "00";
|
|
12
|
+
}
|
|
13
|
+
const alpha255 = roundHalfToEven(alpha * 255);
|
|
14
|
+
const alphaHex = alpha255.toString(16).padStart(2, "0");
|
|
15
|
+
return alphaHex;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=alphaToHex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphaToHex.js","sourceRoot":"","sources":["../../../src/Utilities/alphaToHex.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,aAAa,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAExD,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["export function roundHalfToEven(number: number): number {\r\n const roundedNumber = Math.round(number);\r\n if (Math.abs(roundedNumber - number) === 0.5 && roundedNumber % 2 !== 0) {\r\n return roundedNumber > number ? roundedNumber - 1 : roundedNumber + 1;\r\n }\r\n return roundedNumber;\r\n}\r\n\r\nexport function alphaToHex(alpha: number): string {\r\n if (alpha < 0 || alpha > 1) {\r\n console.warn(\"[alphaToHex] Alpha value must be between 0 and 1.\");\r\n return \"00\";\r\n }\r\n\r\n const alpha255 = roundHalfToEven(alpha * 255);\r\n const alphaHex = alpha255.toString(16).padStart(2, \"0\");\r\n\r\n return alphaHex;\r\n}\r\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { alphaToHex, roundHalfToEven } from "./alphaToHex";
|
|
2
|
+
describe("roundHalfToEven", () => {
|
|
3
|
+
it("should round 0.49 to 0", () => {
|
|
4
|
+
expect(roundHalfToEven(0.49)).toBe(0);
|
|
5
|
+
});
|
|
6
|
+
it("should round 0.5 to 0", () => {
|
|
7
|
+
expect(roundHalfToEven(0.5)).toBe(0);
|
|
8
|
+
});
|
|
9
|
+
it("should round 0.51 to 1", () => {
|
|
10
|
+
expect(roundHalfToEven(0.51)).toBe(1);
|
|
11
|
+
});
|
|
12
|
+
it("should round 0.55 to 1", () => {
|
|
13
|
+
expect(roundHalfToEven(0.55)).toBe(1);
|
|
14
|
+
});
|
|
15
|
+
it("should round 0.75 to 1", () => {
|
|
16
|
+
expect(roundHalfToEven(0.75)).toBe(1);
|
|
17
|
+
});
|
|
18
|
+
it("should round 123.5 to 124", () => {
|
|
19
|
+
expect(roundHalfToEven(123.5)).toBe(124);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe("alphaToHex", () => {
|
|
23
|
+
it("should return '00' for alpha 0", () => {
|
|
24
|
+
expect(alphaToHex(0)).toBe("00");
|
|
25
|
+
});
|
|
26
|
+
it("should return 'ff' for alpha 1", () => {
|
|
27
|
+
expect(alphaToHex(1)).toBe("ff");
|
|
28
|
+
});
|
|
29
|
+
it("should return '1f' for alpha 0.12 (12%)", () => {
|
|
30
|
+
expect(alphaToHex(0.12)).toBe("1f");
|
|
31
|
+
});
|
|
32
|
+
it("should return '80' for alpha 0.5 (50%)", () => {
|
|
33
|
+
expect(alphaToHex(0.5)).toBe("80");
|
|
34
|
+
});
|
|
35
|
+
it("should return 'bf' for alpha 0.75 (75%)", () => {
|
|
36
|
+
expect(alphaToHex(0.75)).toBe("bf");
|
|
37
|
+
});
|
|
38
|
+
it("should return '00' for alpha just above 0", () => {
|
|
39
|
+
expect(alphaToHex(0.0012)).toBe("00");
|
|
40
|
+
});
|
|
41
|
+
it("should return '03' for alpha 0.01", () => {
|
|
42
|
+
expect(alphaToHex(0.01)).toBe("03");
|
|
43
|
+
});
|
|
44
|
+
it("should return '03' for alpha just above 0 with rounding", () => {
|
|
45
|
+
expect(alphaToHex(0.01)).toBe("03");
|
|
46
|
+
});
|
|
47
|
+
it("should return 'ff' for alpha just below 1", () => {
|
|
48
|
+
expect(alphaToHex(0.9988)).toBe("ff");
|
|
49
|
+
});
|
|
50
|
+
it("should return 'fc' for alpha 0.99", () => {
|
|
51
|
+
expect(alphaToHex(0.99)).toBe("fc");
|
|
52
|
+
});
|
|
53
|
+
it("should return 'fc' for alpha just below 1 with rounding", () => {
|
|
54
|
+
expect(alphaToHex(0.99)).toBe("fc");
|
|
55
|
+
});
|
|
56
|
+
it("should return 'fe' for alpha 0.996", () => {
|
|
57
|
+
expect(alphaToHex(0.996)).toBe("fe");
|
|
58
|
+
});
|
|
59
|
+
it("should return 'fe' for alpha 0.998", () => {
|
|
60
|
+
expect(alphaToHex(0.998)).toBe("fe");
|
|
61
|
+
});
|
|
62
|
+
it("should log a warning and return '00' (0) for alpha less than 0", () => {
|
|
63
|
+
console.warn = jest.fn();
|
|
64
|
+
expect(alphaToHex(-0.1)).toBe("00");
|
|
65
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
66
|
+
});
|
|
67
|
+
it("should log a warning and return '00' (0) for alpha greater than 1", () => {
|
|
68
|
+
console.warn = jest.fn();
|
|
69
|
+
expect(alphaToHex(1.1)).toBe("00");
|
|
70
|
+
expect(console.warn).toHaveBeenCalledWith("[alphaToHex] Alpha value must be between 0 and 1.");
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=alphaToHex.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphaToHex.test.js","sourceRoot":"","sources":["../../../src/Utilities/alphaToHex.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { alphaToHex, roundHalfToEven } from \"./alphaToHex\";\r\n\r\ndescribe(\"roundHalfToEven\", () => {\r\n it(\"should round 0.49 to 0\", () => {\r\n expect(roundHalfToEven(0.49)).toBe(0);\r\n });\r\n\r\n it(\"should round 0.5 to 0\", () => {\r\n expect(roundHalfToEven(0.5)).toBe(0);\r\n });\r\n\r\n it(\"should round 0.51 to 1\", () => {\r\n expect(roundHalfToEven(0.51)).toBe(1);\r\n });\r\n\r\n it(\"should round 0.55 to 1\", () => {\r\n expect(roundHalfToEven(0.55)).toBe(1);\r\n });\r\n\r\n it(\"should round 0.75 to 1\", () => {\r\n expect(roundHalfToEven(0.75)).toBe(1);\r\n });\r\n\r\n it(\"should round 123.5 to 124\", () => {\r\n expect(roundHalfToEven(123.5)).toBe(124);\r\n });\r\n});\r\n\r\ndescribe(\"alphaToHex\", () => {\r\n it(\"should return '00' for alpha 0\", () => {\r\n expect(alphaToHex(0)).toBe(\"00\");\r\n });\r\n\r\n it(\"should return 'ff' for alpha 1\", () => {\r\n expect(alphaToHex(1)).toBe(\"ff\");\r\n });\r\n\r\n it(\"should return '1f' for alpha 0.12 (12%)\", () => {\r\n expect(alphaToHex(0.12)).toBe(\"1f\");\r\n });\r\n\r\n it(\"should return '80' for alpha 0.5 (50%)\", () => {\r\n expect(alphaToHex(0.5)).toBe(\"80\");\r\n });\r\n\r\n it(\"should return 'bf' for alpha 0.75 (75%)\", () => {\r\n expect(alphaToHex(0.75)).toBe(\"bf\");\r\n });\r\n\r\n it(\"should return '00' for alpha just above 0\", () => {\r\n expect(alphaToHex(0.0012)).toBe(\"00\");\r\n });\r\n\r\n it(\"should return '03' for alpha 0.01\", () => {\r\n expect(alphaToHex(0.01)).toBe(\"03\");\r\n });\r\n\r\n it(\"should return '03' for alpha just above 0 with rounding\", () => {\r\n expect(alphaToHex(0.01)).toBe(\"03\");\r\n });\r\n\r\n it(\"should return 'ff' for alpha just below 1\", () => {\r\n expect(alphaToHex(0.9988)).toBe(\"ff\");\r\n });\r\n\r\n it(\"should return 'fc' for alpha 0.99\", () => {\r\n expect(alphaToHex(0.99)).toBe(\"fc\");\r\n });\r\n\r\n it(\"should return 'fc' for alpha just below 1 with rounding\", () => {\r\n expect(alphaToHex(0.99)).toBe(\"fc\");\r\n });\r\n\r\n it(\"should return 'fe' for alpha 0.996\", () => {\r\n expect(alphaToHex(0.996)).toBe(\"fe\");\r\n });\r\n\r\n it(\"should return 'fe' for alpha 0.998\", () => {\r\n expect(alphaToHex(0.998)).toBe(\"fe\");\r\n });\r\n\r\n it(\"should log a warning and return '00' (0) for alpha less than 0\", () => {\r\n console.warn = jest.fn();\r\n expect(alphaToHex(-0.1)).toBe(\"00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n });\r\n\r\n it(\"should log a warning and return '00' (0) for alpha greater than 1\", () => {\r\n console.warn = jest.fn();\r\n expect(alphaToHex(1.1)).toBe(\"00\");\r\n expect(console.warn).toHaveBeenCalledWith(\r\n \"[alphaToHex] Alpha value must be between 0 and 1.\"\r\n );\r\n });\r\n});\r\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function downloadFile(filename, file) {
|
|
2
|
+
const a = document.createElement("a");
|
|
3
|
+
const url = window.URL.createObjectURL(file);
|
|
4
|
+
a.href = url;
|
|
5
|
+
a.download = filename;
|
|
6
|
+
document.body.appendChild(a);
|
|
7
|
+
a.click();
|
|
8
|
+
document.body.removeChild(a);
|
|
9
|
+
window.URL.revokeObjectURL(url);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=downloadFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadFile.js","sourceRoot":"","sources":["../../../src/Utilities/downloadFile.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAU;IACvD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IACb,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEV,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC","sourcesContent":["export function downloadFile(filename: string, file: Blob) {\r\n const a = document.createElement(\"a\");\r\n const url = window.URL.createObjectURL(file);\r\n a.href = url;\r\n a.download = filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./degreesToRadians\";\r\nexport * from \"./LengthConverters\";\r\nexport * from \"./generateUniqueID\";\r\nexport * from \"./easeFunctions\";\r\nexport * from \"./interpolateNumber\";\r\n
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./addAlphaToHex\";\r\nexport * from \"./alphaToHex\";\r\nexport * from \"./degreesToRadians\";\r\nexport * from \"./downloadFile\";\r\nexport * from \"./LengthConverters\";\r\nexport * from \"./generateUniqueID\";\r\nexport * from \"./easeFunctions\";\r\nexport * from \"./interpolateNumber\";\r\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAlphaToHex.d.ts","sourceRoot":"","sources":["../../../src/Utilities/addAlphaToHex.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addAlphaToHex.test.d.ts","sourceRoot":"","sources":["../../../src/Utilities/addAlphaToHex.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphaToHex.d.ts","sourceRoot":"","sources":["../../../src/Utilities/alphaToHex.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUhD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alphaToHex.test.d.ts","sourceRoot":"","sources":["../../../src/Utilities/alphaToHex.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadFile.d.ts","sourceRoot":"","sources":["../../../src/Utilities/downloadFile.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,QAUxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|