abstract-image 3.2.5 → 3.3.2

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 (132) hide show
  1. package/CHANGELOG.md +38 -27
  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/lib/exporters/__tests__/exception/png-unsupported.test.js +1 -1
  22. package/lib/exporters/__tests__/exception/png-unsupported.test.js.map +1 -1
  23. package/lib/exporters/__tests__/png-export-image/test-defs/png-createPNG.js +1 -1
  24. package/lib/exporters/__tests__/png-export-image/test-defs/png-createPNG.js.map +1 -1
  25. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-png.d.ts.map +1 -1
  26. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-png.js +2 -2
  27. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-png.js.map +1 -1
  28. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-url.d.ts +3 -0
  29. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-url.d.ts.map +1 -0
  30. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-url.js +33 -0
  31. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-url.js.map +1 -0
  32. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary.js +1 -1
  33. package/lib/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary.js.map +1 -1
  34. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-binary.js +1 -1
  35. package/lib/exporters/__tests__/svg-export-image/test-defs/svg-binary.js.map +1 -1
  36. package/lib/exporters/__tests__/svg-export-image.test.d.ts +2 -0
  37. package/lib/exporters/__tests__/svg-export-image.test.d.ts.map +1 -0
  38. package/lib/exporters/__tests__/svg-export-image.test.js +35 -0
  39. package/lib/exporters/__tests__/svg-export-image.test.js.map +1 -0
  40. package/lib/exporters/png-export-image.js +2 -2
  41. package/lib/exporters/png-export-image.js.map +1 -1
  42. package/lib/exporters/react-svg-export-image.d.ts.map +1 -1
  43. package/lib/exporters/react-svg-export-image.js +23 -11
  44. package/lib/exporters/react-svg-export-image.js.map +1 -1
  45. package/lib/exporters/svg-export-image.d.ts.map +1 -1
  46. package/lib/exporters/svg-export-image.js +46 -15
  47. package/lib/exporters/svg-export-image.js.map +1 -1
  48. package/lib/model/component.d.ts +11 -2
  49. package/lib/model/component.d.ts.map +1 -1
  50. package/lib/model/component.js.map +1 -1
  51. package/package.json +4 -2
  52. package/src/__stories__/react-svg-export/example-1.stories.tsx +54 -54
  53. package/src/__stories__/svg-export/example-1.stories.tsx +42 -42
  54. package/src/exporters/__tests__/dxf2d-export-image/export-test-def.ts +11 -11
  55. package/src/exporters/__tests__/dxf2d-export-image/export.test.tsx +13 -13
  56. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-ellipse.ts +405 -405
  57. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-group.ts +166 -166
  58. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-line.ts +80 -80
  59. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-polygon.ts +114 -114
  60. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-polyline.ts +103 -103
  61. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-rectangle.ts +125 -125
  62. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-text-growth-directions.ts +214 -214
  63. package/src/exporters/__tests__/dxf2d-export-image/test-defs/dxf2d-text.ts +97 -97
  64. package/src/exporters/__tests__/eps-export-image/export-test-def.ts +11 -11
  65. package/src/exporters/__tests__/eps-export-image/export.test.tsx +13 -13
  66. package/src/exporters/__tests__/eps-export-image/test-defs/eps-ellipse.ts +50 -50
  67. package/src/exporters/__tests__/eps-export-image/test-defs/eps-empty-text.ts +60 -60
  68. package/src/exporters/__tests__/eps-export-image/test-defs/eps-group.ts +74 -74
  69. package/src/exporters/__tests__/eps-export-image/test-defs/eps-line.ts +45 -45
  70. package/src/exporters/__tests__/eps-export-image/test-defs/eps-polygon.ts +65 -65
  71. package/src/exporters/__tests__/eps-export-image/test-defs/eps-polyline.ts +58 -58
  72. package/src/exporters/__tests__/eps-export-image/test-defs/eps-rectangle.ts +46 -46
  73. package/src/exporters/__tests__/eps-export-image/test-defs/eps-text-growth-directions.ts +138 -138
  74. package/src/exporters/__tests__/eps-export-image/test-defs/eps-text.ts +60 -60
  75. package/src/exporters/__tests__/exception/png-unsupported.test.tsx +25 -25
  76. package/src/exporters/__tests__/exception/react-svg-direction-exception.test.tsx +65 -65
  77. package/src/exporters/__tests__/exception/svg-direction-exception.test.tsx +65 -65
  78. package/src/exporters/__tests__/png-export-image/export-test-def.ts +11 -11
  79. package/src/exporters/__tests__/png-export-image/export.test.tsx +13 -13
  80. package/src/exporters/__tests__/png-export-image/test-defs/png-createPNG.tsx +26 -26
  81. package/src/exporters/__tests__/react-svg-export-image/export-test-def.tsx +13 -13
  82. package/src/exporters/__tests__/react-svg-export-image/export.test.tsx +13 -13
  83. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-png.tsx +26 -27
  84. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary-url.tsx +26 -0
  85. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-binary.tsx +25 -25
  86. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-callback.tsx +60 -60
  87. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-ellipse.tsx +28 -28
  88. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-empty-text.tsx +35 -35
  89. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-group.tsx +44 -44
  90. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-line.tsx +26 -26
  91. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-polygon.tsx +32 -32
  92. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-polyline.tsx +33 -33
  93. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-rectangle.tsx +27 -27
  94. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-subimage.tsx +36 -36
  95. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-bold.tsx +50 -50
  96. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-growth-directions.tsx +80 -80
  97. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-italic.tsx +65 -65
  98. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text-sub.tsx +35 -35
  99. package/src/exporters/__tests__/react-svg-export-image/test-defs/react-svg-text.tsx +35 -35
  100. package/src/exporters/__tests__/svg-export-image/export-test-def.ts +11 -11
  101. package/src/exporters/__tests__/svg-export-image/export.test.tsx +13 -13
  102. package/src/exporters/__tests__/svg-export-image/test-defs/svg-binary.tsx +25 -25
  103. package/src/exporters/__tests__/svg-export-image/test-defs/svg-ellipse.ts +27 -27
  104. package/src/exporters/__tests__/svg-export-image/test-defs/svg-empty-text.ts +34 -34
  105. package/src/exporters/__tests__/svg-export-image/test-defs/svg-group.ts +44 -44
  106. package/src/exporters/__tests__/svg-export-image/test-defs/svg-line.ts +26 -26
  107. package/src/exporters/__tests__/svg-export-image/test-defs/svg-polygon.ts +32 -32
  108. package/src/exporters/__tests__/svg-export-image/test-defs/svg-polyline.ts +33 -33
  109. package/src/exporters/__tests__/svg-export-image/test-defs/svg-rectangle.ts +27 -27
  110. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-bold.ts +50 -50
  111. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-growth-directions.ts +80 -80
  112. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text-italic.ts +65 -65
  113. package/src/exporters/__tests__/svg-export-image/test-defs/svg-text.ts +35 -35
  114. package/src/exporters/dxf2d-export-image.ts +218 -218
  115. package/src/exporters/eps-export-image.ts +154 -154
  116. package/src/exporters/index.ts +3 -3
  117. package/src/exporters/png-export-image.ts +12 -12
  118. package/src/exporters/react-svg-export-image.tsx +315 -305
  119. package/src/exporters/svg-export-image.ts +309 -300
  120. package/src/index.ts +11 -11
  121. package/src/model/__tests__/color/export-test-def.ts +13 -13
  122. package/src/model/__tests__/color/export.test.tsx +14 -14
  123. package/src/model/__tests__/color/test-defs/color-from-string.ts +46 -46
  124. package/src/model/__tests__/color/test-defs/color-to-string.ts +35 -35
  125. package/src/model/__tests__/color/test-defs/color-undefined-2.ts +8 -8
  126. package/src/model/__tests__/color/test-defs/color-undefined.ts +8 -8
  127. package/src/model/abstract-image.ts +25 -25
  128. package/src/model/color.ts +52 -52
  129. package/src/model/component.ts +279 -266
  130. package/src/model/index.ts +5 -5
  131. package/src/model/point.ts +11 -11
  132. package/src/model/size.ts +11 -11
@@ -1,13 +1,13 @@
1
- /**
2
- * Defines a data-type that represents a single test for the Docx render function
3
- */
4
-
5
- import * as AbstractImage from "../../../../src/index";
6
-
7
- export type ExportTestDef = {
8
- readonly name: string;
9
- readonly only?: boolean;
10
- readonly skip?: boolean;
11
- readonly abstractColor: {} | AbstractImage.Color | undefined;
12
- readonly expectedColor: {} | undefined;
13
- };
1
+ /**
2
+ * Defines a data-type that represents a single test for the Docx render function
3
+ */
4
+
5
+ import * as AbstractImage from "../../../../src/index";
6
+
7
+ export type ExportTestDef = {
8
+ readonly name: string;
9
+ readonly only?: boolean;
10
+ readonly skip?: boolean;
11
+ readonly abstractColor: {} | AbstractImage.Color | undefined;
12
+ readonly expectedColor: {} | undefined;
13
+ };
@@ -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);