abstract-image 3.3.2 → 3.3.3

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.
Files changed (106) hide show
  1. package/CHANGELOG.md +44 -38
  2. package/LICENSE +21 -21
  3. package/README.md +73 -73
  4. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-ellipse.js +379 -379
  5. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-group.js +123 -123
  6. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-line.js +55 -55
  7. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-polygon.js +89 -89
  8. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-polyline.js +79 -79
  9. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-rectangle.js +99 -99
  10. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-text-growth-directions.js +135 -135
  11. package/lib/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-text.js +63 -63
  12. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-ellipse.js +24 -24
  13. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-empty-text.js +26 -26
  14. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-group.js +31 -31
  15. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-line.js +20 -20
  16. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-polygon.js +34 -34
  17. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-polyline.js +26 -26
  18. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-rectangle.js +20 -20
  19. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-text-growth-directions.js +59 -59
  20. package/lib/exporters/__tests__/eps-export-image/test-defs/eps-text.js +26 -26
  21. package/package.json +4 -2
  22. package/src/__stories__/react-svg-export/example-1.stories.tsx +54 -54
  23. package/src/__stories__/svg-export/example-1.stories.tsx +42 -42
  24. package/src/exporters/__tests__/dxf2d-export-image/export-test-def.ts +11 -11
  25. package/src/exporters/__tests__/dxf2d-export-image/export.test.tsx +13 -13
  26. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-ellipse.ts +405 -405
  27. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-group.ts +166 -166
  28. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-line.ts +80 -80
  29. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-polygon.ts +114 -114
  30. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-polyline.ts +103 -103
  31. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-rectangle.ts +125 -125
  32. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-text-growth-directions.ts +214 -214
  33. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-text.ts +97 -97
  34. package/src/exporters/__tests__/eps-export-image/export-test-def.ts +11 -11
  35. package/src/exporters/__tests__/eps-export-image/export.test.tsx +13 -13
  36. package/src/exporters/__tests__/eps-export-image/test-defs/eps-ellipse.ts +50 -50
  37. package/src/exporters/__tests__/eps-export-image/test-defs/eps-empty-text.ts +60 -60
  38. package/src/exporters/__tests__/eps-export-image/test-defs/eps-group.ts +74 -74
  39. package/src/exporters/__tests__/eps-export-image/test-defs/eps-line.ts +45 -45
  40. package/src/exporters/__tests__/eps-export-image/test-defs/eps-polygon.ts +65 -65
  41. package/src/exporters/__tests__/eps-export-image/test-defs/eps-polyline.ts +58 -58
  42. package/src/exporters/__tests__/eps-export-image/test-defs/eps-rectangle.ts +46 -46
  43. package/src/exporters/__tests__/eps-export-image/test-defs/eps-text-growth-directions.ts +138 -138
  44. package/src/exporters/__tests__/eps-export-image/test-defs/eps-text.ts +60 -60
  45. package/src/exporters/__tests__/exception/png-unsupported.test.tsx +25 -25
  46. package/src/exporters/__tests__/exception/react-svg-direction-exception.test.tsx +65 -65
  47. package/src/exporters/__tests__/exception/svg-direction-exception.test.tsx +65 -65
  48. package/src/exporters/__tests__/png-export-image/export-test-def.ts +11 -11
  49. package/src/exporters/__tests__/png-export-image/export.test.tsx +13 -13
  50. package/src/exporters/__tests__/png-export-image/test-defs/png-createPNG.tsx +26 -26
  51. package/src/exporters/__tests__/react-svg-export-image/export-test-def.tsx +13 -13
  52. package/src/exporters/__tests__/react-svg-export-image/export.test.tsx +13 -13
  53. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-png.tsx +26 -26
  54. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-url.tsx +26 -26
  55. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary.tsx +25 -25
  56. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-callback.tsx +60 -60
  57. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-ellipse.tsx +28 -28
  58. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-empty-text.tsx +35 -35
  59. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-group.tsx +44 -44
  60. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-line.tsx +26 -26
  61. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-polygon.tsx +32 -32
  62. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-polyline.tsx +33 -33
  63. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-rectangle.tsx +27 -27
  64. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-subimage.tsx +36 -36
  65. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-bold.tsx +50 -50
  66. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-growth-directions.tsx +80 -80
  67. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-italic.tsx +65 -65
  68. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-sub.tsx +35 -35
  69. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text.tsx +35 -35
  70. package/src/exporters/__tests__/svg-export-image/export-test-def.ts +11 -11
  71. package/src/exporters/__tests__/svg-export-image/export.test.tsx +13 -13
  72. package/src/exporters/__tests__/svg-export-image/test-defs/svg-binary.tsx +25 -25
  73. package/src/exporters/__tests__/svg-export-image/test-defs/svg-ellipse.ts +27 -27
  74. package/src/exporters/__tests__/svg-export-image/test-defs/svg-empty-text.ts +34 -34
  75. package/src/exporters/__tests__/svg-export-image/test-defs/svg-group.ts +44 -44
  76. package/src/exporters/__tests__/svg-export-image/test-defs/svg-line.ts +26 -26
  77. package/src/exporters/__tests__/svg-export-image/test-defs/svg-polygon.ts +32 -32
  78. package/src/exporters/__tests__/svg-export-image/test-defs/svg-polyline.ts +33 -33
  79. package/src/exporters/__tests__/svg-export-image/test-defs/svg-rectangle.ts +27 -27
  80. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-bold.ts +50 -50
  81. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-growth-directions.ts +80 -80
  82. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-italic.ts +65 -65
  83. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text.ts +35 -35
  84. package/src/exporters/dxf2d-export-image.ts +218 -218
  85. package/src/exporters/eps-export-image.ts +154 -154
  86. package/src/exporters/index.ts +3 -3
  87. package/src/exporters/png-export-image.ts +12 -12
  88. package/src/exporters/react-svg-export-image.tsx +315 -315
  89. package/src/exporters/svg-export-image.ts +309 -309
  90. package/src/index.ts +11 -11
  91. package/src/model/__tests__/color/export-test-def.ts +13 -13
  92. package/src/model/__tests__/color/export.test.tsx +14 -14
  93. package/src/model/__tests__/color/test-defs/color-from-string.ts +46 -46
  94. package/src/model/__tests__/color/test-defs/color-to-string.ts +35 -35
  95. package/src/model/__tests__/color/test-defs/color-undefined-2.ts +8 -8
  96. package/src/model/__tests__/color/test-defs/color-undefined.ts +8 -8
  97. package/src/model/abstract-image.ts +25 -25
  98. package/src/model/color.ts +52 -52
  99. package/src/model/component.ts +279 -279
  100. package/src/model/index.ts +5 -5
  101. package/src/model/point.ts +11 -11
  102. package/src/model/size.ts +11 -11
  103. package/lib/exporters/__tests__/svg-export-image.test.d.ts +0 -2
  104. package/lib/exporters/__tests__/svg-export-image.test.d.ts.map +0 -1
  105. package/lib/exporters/__tests__/svg-export-image.test.js +0 -35
  106. package/lib/exporters/__tests__/svg-export-image.test.js.map +0 -1
@@ -1,14 +1,14 @@
1
- import path from "path";
2
- import { loadTests, onlySkip } from "@abstract-visuals/test-utils";
3
- import { ExportTestDef } from "./export-test-def";
4
-
5
- export const tests = loadTests<ExportTestDef>(path.join(__dirname, "test-defs/"));
6
-
7
- describe("color", () => {
8
- onlySkip(tests).forEach((item) => {
9
- test(item.name, async () => {
10
- // const abstractDoc = render(item.abstractDocJsx);
11
- expect(item.abstractColor).toEqual(item.expectedColor);
12
- });
13
- });
14
- });
1
+ import path from "path";
2
+ import { loadTests, onlySkip } from "@abstract-visuals/test-utils";
3
+ import { ExportTestDef } from "./export-test-def";
4
+
5
+ export const tests = loadTests<ExportTestDef>(path.join(__dirname, "test-defs/"));
6
+
7
+ describe("color", () => {
8
+ onlySkip(tests).forEach((item) => {
9
+ test(item.name, async () => {
10
+ // const abstractDoc = render(item.abstractDocJsx);
11
+ expect(item.abstractColor).toEqual(item.expectedColor);
12
+ });
13
+ });
14
+ });
@@ -1,46 +1,46 @@
1
- import { ExportTestDef } from "../export-test-def";
2
- import * as AbstractImage from "../../../../../src/index";
3
-
4
- const colorStrings = [
5
- "#ff000000",
6
- "#ff0000ff",
7
- "#ffa52a2a",
8
- "#ff00ffff",
9
- "#ffa9a9a9",
10
- "#ff808080",
11
- "#ff008000",
12
- "#ffd3d3d3",
13
- "#ffff00ff",
14
- "#ffffa500",
15
- "#ff800080",
16
- "#ffff0000",
17
- "#ffffffff",
18
- "#ffffffff",
19
- "#ffffff00",
20
- "#ffadd8e6",
21
- ];
22
-
23
- const fromColor = colorStrings.map((color) => AbstractImage.fromString(color));
24
-
25
- export const test: ExportTestDef = {
26
- name: "color from string",
27
- abstractColor: fromColor,
28
- expectedColor: [
29
- { a: 255, b: 0, g: 0, r: 0 },
30
- { a: 255, b: 255, g: 0, r: 0 },
31
- { a: 255, b: 42, g: 42, r: 165 },
32
- { a: 255, b: 255, g: 255, r: 0 },
33
- { a: 255, b: 169, g: 169, r: 169 },
34
- { a: 255, b: 128, g: 128, r: 128 },
35
- { a: 255, b: 0, g: 128, r: 0 },
36
- { a: 255, b: 211, g: 211, r: 211 },
37
- { a: 255, b: 255, g: 0, r: 255 },
38
- { a: 255, b: 0, g: 165, r: 255 },
39
- { a: 255, b: 128, g: 0, r: 128 },
40
- { a: 255, b: 0, g: 0, r: 255 },
41
- { a: 255, b: 255, g: 255, r: 255 },
42
- { a: 255, b: 255, g: 255, r: 255 },
43
- { a: 255, b: 0, g: 255, r: 255 },
44
- { a: 255, b: 230, g: 216, r: 173 },
45
- ],
46
- };
1
+ import { ExportTestDef } from "../export-test-def";
2
+ import * as AbstractImage from "../../../../../src/index";
3
+
4
+ const colorStrings = [
5
+ "#ff000000",
6
+ "#ff0000ff",
7
+ "#ffa52a2a",
8
+ "#ff00ffff",
9
+ "#ffa9a9a9",
10
+ "#ff808080",
11
+ "#ff008000",
12
+ "#ffd3d3d3",
13
+ "#ffff00ff",
14
+ "#ffffa500",
15
+ "#ff800080",
16
+ "#ffff0000",
17
+ "#ffffffff",
18
+ "#ffffffff",
19
+ "#ffffff00",
20
+ "#ffadd8e6",
21
+ ];
22
+
23
+ const fromColor = colorStrings.map((color) => AbstractImage.fromString(color));
24
+
25
+ export const test: ExportTestDef = {
26
+ name: "color from string",
27
+ abstractColor: fromColor,
28
+ expectedColor: [
29
+ { a: 255, b: 0, g: 0, r: 0 },
30
+ { a: 255, b: 255, g: 0, r: 0 },
31
+ { a: 255, b: 42, g: 42, r: 165 },
32
+ { a: 255, b: 255, g: 255, r: 0 },
33
+ { a: 255, b: 169, g: 169, r: 169 },
34
+ { a: 255, b: 128, g: 128, r: 128 },
35
+ { a: 255, b: 0, g: 128, r: 0 },
36
+ { a: 255, b: 211, g: 211, r: 211 },
37
+ { a: 255, b: 255, g: 0, r: 255 },
38
+ { a: 255, b: 0, g: 165, r: 255 },
39
+ { a: 255, b: 128, g: 0, r: 128 },
40
+ { a: 255, b: 0, g: 0, r: 255 },
41
+ { a: 255, b: 255, g: 255, r: 255 },
42
+ { a: 255, b: 255, g: 255, r: 255 },
43
+ { a: 255, b: 0, g: 255, r: 255 },
44
+ { a: 255, b: 230, g: 216, r: 173 },
45
+ ],
46
+ };
@@ -1,35 +1,35 @@
1
- import { ExportTestDef } from "../export-test-def";
2
- import * as AbstractImage from "../../../../../src/index";
3
-
4
- const colors = [
5
- AbstractImage.black,
6
- AbstractImage.blue,
7
- AbstractImage.brown,
8
- AbstractImage.cyan,
9
- AbstractImage.darkGray,
10
- AbstractImage.gray,
11
- AbstractImage.green,
12
- AbstractImage.lightGray,
13
- AbstractImage.magenta,
14
- AbstractImage.orange,
15
- AbstractImage.purple,
16
- AbstractImage.red,
17
- AbstractImage.transparent,
18
- AbstractImage.white,
19
- AbstractImage.yellow,
20
- AbstractImage.lightBlue,
21
- ];
22
-
23
- const colorString = colors
24
- .map((color) => AbstractImage.toString6Hex(color))
25
- .reduce((acc, color) => {
26
- acc += `${color} `;
27
- return acc;
28
- }, "")
29
- .slice(0, -1);
30
-
31
- export const test: ExportTestDef = {
32
- name: "color to string",
33
- abstractColor: colorString,
34
- expectedColor: `000000 0000ff a52a2a 00ffff a9a9a9 808080 008000 d3d3d3 ff00ff ffa500 800080 ff0000 ffffff ffffff ffff00 add8e6`,
35
- };
1
+ import { ExportTestDef } from "../export-test-def";
2
+ import * as AbstractImage from "../../../../../src/index";
3
+
4
+ const colors = [
5
+ AbstractImage.black,
6
+ AbstractImage.blue,
7
+ AbstractImage.brown,
8
+ AbstractImage.cyan,
9
+ AbstractImage.darkGray,
10
+ AbstractImage.gray,
11
+ AbstractImage.green,
12
+ AbstractImage.lightGray,
13
+ AbstractImage.magenta,
14
+ AbstractImage.orange,
15
+ AbstractImage.purple,
16
+ AbstractImage.red,
17
+ AbstractImage.transparent,
18
+ AbstractImage.white,
19
+ AbstractImage.yellow,
20
+ AbstractImage.lightBlue,
21
+ ];
22
+
23
+ const colorString = colors
24
+ .map((color) => AbstractImage.toString6Hex(color))
25
+ .reduce((acc, color) => {
26
+ acc += `${color} `;
27
+ return acc;
28
+ }, "")
29
+ .slice(0, -1);
30
+
31
+ export const test: ExportTestDef = {
32
+ name: "color to string",
33
+ abstractColor: colorString,
34
+ expectedColor: `000000 0000ff a52a2a 00ffff a9a9a9 808080 008000 d3d3d3 ff00ff ffa500 800080 ff0000 ffffff ffffff ffff00 add8e6`,
35
+ };
@@ -1,8 +1,8 @@
1
- import { ExportTestDef } from "../export-test-def";
2
- import * as AbstractImage from "../../../../../src/index";
3
-
4
- export const test: ExportTestDef = {
5
- name: "color undefined 2",
6
- abstractColor: AbstractImage.fromString("#########"),
7
- expectedColor: undefined,
8
- };
1
+ import { ExportTestDef } from "../export-test-def";
2
+ import * as AbstractImage from "../../../../../src/index";
3
+
4
+ export const test: ExportTestDef = {
5
+ name: "color undefined 2",
6
+ abstractColor: AbstractImage.fromString("#########"),
7
+ expectedColor: undefined,
8
+ };
@@ -1,8 +1,8 @@
1
- import { ExportTestDef } from "../export-test-def";
2
- import * as AbstractImage from "../../../../../src/index";
3
-
4
- export const test: ExportTestDef = {
5
- name: "color undefined",
6
- abstractColor: AbstractImage.fromString("#fff"),
7
- expectedColor: undefined,
8
- };
1
+ import { ExportTestDef } from "../export-test-def";
2
+ import * as AbstractImage from "../../../../../src/index";
3
+
4
+ export const test: ExportTestDef = {
5
+ name: "color undefined",
6
+ abstractColor: AbstractImage.fromString("#fff"),
7
+ expectedColor: undefined,
8
+ };
@@ -1,25 +1,25 @@
1
- import * as Size from "./size";
2
- import * as Color from "./color";
3
- import * as Component from "./component";
4
- import * as Point from "./point";
5
-
6
- export interface AbstractImage {
7
- readonly topLeft: Point.Point;
8
- readonly size: Size.Size;
9
- readonly backgroundColor: Color.Color;
10
- readonly components: Array<Component.Component>;
11
- }
12
-
13
- export function createAbstractImage(
14
- topLeft: Point.Point,
15
- size: Size.Size,
16
- backgroundColor: Color.Color,
17
- components: Array<Component.Component>
18
- ): AbstractImage {
19
- return {
20
- topLeft: topLeft,
21
- size: size,
22
- backgroundColor: backgroundColor,
23
- components: components
24
- };
25
- }
1
+ import * as Size from "./size";
2
+ import * as Color from "./color";
3
+ import * as Component from "./component";
4
+ import * as Point from "./point";
5
+
6
+ export interface AbstractImage {
7
+ readonly topLeft: Point.Point;
8
+ readonly size: Size.Size;
9
+ readonly backgroundColor: Color.Color;
10
+ readonly components: Array<Component.Component>;
11
+ }
12
+
13
+ export function createAbstractImage(
14
+ topLeft: Point.Point,
15
+ size: Size.Size,
16
+ backgroundColor: Color.Color,
17
+ components: Array<Component.Component>
18
+ ): AbstractImage {
19
+ return {
20
+ topLeft: topLeft,
21
+ size: size,
22
+ backgroundColor: backgroundColor,
23
+ components: components
24
+ };
25
+ }
@@ -1,52 +1,52 @@
1
- export interface Color {
2
- readonly a: number;
3
- readonly r: number;
4
- readonly g: number;
5
- readonly b: number;
6
- }
7
-
8
- export function fromArgb(a: number, r: number, g: number, b: number): Color {
9
- return { a: a, r: r, g: g, b: b };
10
- }
11
-
12
- export function toString6Hex(color: Color): string {
13
- return (
14
- ("00" + color.r.toString(16)).substr(-2) +
15
- ("00" + color.g.toString(16)).substr(-2) +
16
- ("00" + color.b.toString(16)).substr(-2)
17
- );
18
- }
19
-
20
- export function fromString(s: string): Color | undefined {
21
- if (s === null || s === undefined || s.length !== 9 || s[0] !== "#") {
22
- return undefined;
23
- }
24
-
25
- const a: number = parseInt(s.substring(1, 1 + 2), 16);
26
- const r: number = parseInt(s.substring(3, 3 + 2), 16);
27
- const g: number = parseInt(s.substring(5, 5 + 2), 16);
28
- const b: number = parseInt(s.substring(7, 7 + 2), 16);
29
-
30
- if (isNaN(a) || isNaN(r) || isNaN(g) || isNaN(b)) {
31
- return undefined;
32
- }
33
-
34
- return fromArgb(a, r, g, b);
35
- }
36
-
37
- export const black: Color = fromArgb(0xff, 0, 0, 0);
38
- export const blue: Color = fromArgb(0xff, 0x00, 0x00, 0xff);
39
- export const brown: Color = fromArgb(0xff, 0xa5, 0x2a, 0x2a);
40
- export const cyan: Color = fromArgb(0xff, 0x00, 0xff, 0xff);
41
- export const darkGray: Color = fromArgb(0xff, 0xa9, 0xa9, 0xa9);
42
- export const gray: Color = fromArgb(0xff, 0x80, 0x80, 0x80);
43
- export const green: Color = fromArgb(0xff, 0x00, 0x80, 0x00);
44
- export const lightGray: Color = fromArgb(0xff, 0xd3, 0xd3, 0xd3);
45
- export const magenta: Color = fromArgb(0xff, 0xff, 0x00, 0xff);
46
- export const orange: Color = fromArgb(0xff, 0xff, 0xa5, 0x00);
47
- export const purple: Color = fromArgb(0xff, 0x80, 0x00, 0x80);
48
- export const red: Color = fromArgb(0xff, 0xff, 0x00, 0x00);
49
- export const transparent: Color = fromArgb(0x00, 0xff, 0xff, 0xff);
50
- export const white: Color = fromArgb(0xff, 0xff, 0xff, 0xff);
51
- export const yellow: Color = fromArgb(0xff, 0xff, 0xff, 0x00);
52
- export const lightBlue: Color = fromArgb(0xff, 0xad, 0xd8, 0xe6);
1
+ export interface Color {
2
+ readonly a: number;
3
+ readonly r: number;
4
+ readonly g: number;
5
+ readonly b: number;
6
+ }
7
+
8
+ export function fromArgb(a: number, r: number, g: number, b: number): Color {
9
+ return { a: a, r: r, g: g, b: b };
10
+ }
11
+
12
+ export function toString6Hex(color: Color): string {
13
+ return (
14
+ ("00" + color.r.toString(16)).substr(-2) +
15
+ ("00" + color.g.toString(16)).substr(-2) +
16
+ ("00" + color.b.toString(16)).substr(-2)
17
+ );
18
+ }
19
+
20
+ export function fromString(s: string): Color | undefined {
21
+ if (s === null || s === undefined || s.length !== 9 || s[0] !== "#") {
22
+ return undefined;
23
+ }
24
+
25
+ const a: number = parseInt(s.substring(1, 1 + 2), 16);
26
+ const r: number = parseInt(s.substring(3, 3 + 2), 16);
27
+ const g: number = parseInt(s.substring(5, 5 + 2), 16);
28
+ const b: number = parseInt(s.substring(7, 7 + 2), 16);
29
+
30
+ if (isNaN(a) || isNaN(r) || isNaN(g) || isNaN(b)) {
31
+ return undefined;
32
+ }
33
+
34
+ return fromArgb(a, r, g, b);
35
+ }
36
+
37
+ export const black: Color = fromArgb(0xff, 0, 0, 0);
38
+ export const blue: Color = fromArgb(0xff, 0x00, 0x00, 0xff);
39
+ export const brown: Color = fromArgb(0xff, 0xa5, 0x2a, 0x2a);
40
+ export const cyan: Color = fromArgb(0xff, 0x00, 0xff, 0xff);
41
+ export const darkGray: Color = fromArgb(0xff, 0xa9, 0xa9, 0xa9);
42
+ export const gray: Color = fromArgb(0xff, 0x80, 0x80, 0x80);
43
+ export const green: Color = fromArgb(0xff, 0x00, 0x80, 0x00);
44
+ export const lightGray: Color = fromArgb(0xff, 0xd3, 0xd3, 0xd3);
45
+ export const magenta: Color = fromArgb(0xff, 0xff, 0x00, 0xff);
46
+ export const orange: Color = fromArgb(0xff, 0xff, 0xa5, 0x00);
47
+ export const purple: Color = fromArgb(0xff, 0x80, 0x00, 0x80);
48
+ export const red: Color = fromArgb(0xff, 0xff, 0x00, 0x00);
49
+ export const transparent: Color = fromArgb(0x00, 0xff, 0xff, 0xff);
50
+ export const white: Color = fromArgb(0xff, 0xff, 0xff, 0xff);
51
+ export const yellow: Color = fromArgb(0xff, 0xff, 0xff, 0x00);
52
+ export const lightBlue: Color = fromArgb(0xff, 0xad, 0xd8, 0xe6);