ttpg-darrell 1.1.9 → 1.1.10

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 (43) hide show
  1. package/build/cjs/lib/adjacency/adjacency.d.ts +7 -8
  2. package/build/cjs/lib/adjacency/adjacency.js +40 -53
  3. package/build/cjs/lib/adjacency/adjacency.js.map +1 -1
  4. package/build/esm/lib/adjacency/adjacency.d.ts +7 -8
  5. package/build/esm/lib/adjacency/adjacency.js +40 -53
  6. package/build/esm/lib/adjacency/adjacency.js.map +1 -1
  7. package/package.json +1 -1
  8. package/build/cjs/lib/color-lib/color-mapping-rotating.d.ts +0 -1
  9. package/build/cjs/lib/color-lib/color-mapping-rotating.js +0 -72
  10. package/build/cjs/lib/color-lib/color-mapping-rotating.js.map +0 -1
  11. package/build/cjs/lib/parse/parse-color/parse-color.d.ts +0 -7
  12. package/build/cjs/lib/parse/parse-color/parse-color.js +0 -51
  13. package/build/cjs/lib/parse/parse-color/parse-color.js.map +0 -1
  14. package/build/cjs/lib-ext/color-mapping/color-extract.d.ts +0 -1
  15. package/build/cjs/lib-ext/color-mapping/color-extract.js +0 -127
  16. package/build/cjs/lib-ext/color-mapping/color-extract.js.map +0 -1
  17. package/build/cjs/lib-ext/color-mapping/color-mapping-linear-centered.d.ts +0 -1
  18. package/build/cjs/lib-ext/color-mapping/color-mapping-linear-centered.js +0 -230
  19. package/build/cjs/lib-ext/color-mapping/color-mapping-linear-centered.js.map +0 -1
  20. package/build/cjs/lib-ext/color-mapping/color-mapping-linear.d.ts +0 -1
  21. package/build/cjs/lib-ext/color-mapping/color-mapping-linear.js +0 -217
  22. package/build/cjs/lib-ext/color-mapping/color-mapping-linear.js.map +0 -1
  23. package/build/cjs/lib-ext/color-mapping/color-mapping-ridge.d.ts +0 -1
  24. package/build/cjs/lib-ext/color-mapping/color-mapping-ridge.js +0 -216
  25. package/build/cjs/lib-ext/color-mapping/color-mapping-ridge.js.map +0 -1
  26. package/build/cjs/lib-ext/color-mapping/color-mapping.d.ts +0 -15
  27. package/build/cjs/lib-ext/color-mapping/color-mapping.data.d.ts +0 -7
  28. package/build/cjs/lib-ext/color-mapping/color-mapping.data.js +0 -790
  29. package/build/cjs/lib-ext/color-mapping/color-mapping.data.js.map +0 -1
  30. package/build/cjs/lib-ext/color-mapping/color-mapping.js +0 -54
  31. package/build/cjs/lib-ext/color-mapping/color-mapping.js.map +0 -1
  32. package/build/cjs/lib-ext/color-mapping/raw-linear.d.ts +0 -1
  33. package/build/cjs/lib-ext/color-mapping/raw-linear.js +0 -167
  34. package/build/cjs/lib-ext/color-mapping/raw-linear.js.map +0 -1
  35. package/build/cjs/lib-ext/image/cell/cell-parser/cell-parser.test.d.ts +0 -1
  36. package/build/cjs/lib-ext/image/cell/cell-parser/cell-parser.test.js +0 -212
  37. package/build/cjs/lib-ext/image/cell/cell-parser/cell-parser.test.js.map +0 -1
  38. package/build/esm/lib/parse/parse-color/parse-color.d.ts +0 -7
  39. package/build/esm/lib/parse/parse-color/parse-color.js +0 -44
  40. package/build/esm/lib/parse/parse-color/parse-color.js.map +0 -1
  41. package/build/esm/lib-ext/image/cell/cell-parser/cell-parser.test.d.ts +0 -1
  42. package/build/esm/lib-ext/image/cell/cell-parser/cell-parser.test.js +0 -210
  43. package/build/esm/lib-ext/image/cell/cell-parser/cell-parser.test.js.map +0 -1
@@ -3,10 +3,10 @@
3
3
  */
4
4
  export type AdjacencyNodeType = string;
5
5
  /**
6
- * Edge between two nodes.
6
+ * Directed link between two nodes.
7
7
  * Paths cannot end with a transit node; they must connect two non-transit nodes.
8
8
  */
9
- export type AdjacencyEdgeType = {
9
+ export type AdjacencyLinkType = {
10
10
  src: AdjacencyNodeType;
11
11
  dst: AdjacencyNodeType;
12
12
  distance: number;
@@ -15,15 +15,14 @@ export type AdjacencyEdgeType = {
15
15
  export type AdjacencyPathType = {
16
16
  node: AdjacencyNodeType;
17
17
  distance: number;
18
- path: ReadonlyArray<AdjacencyEdgeType>;
18
+ path: ReadonlyArray<AdjacencyLinkType>;
19
19
  };
20
20
  export declare class Adjacency {
21
- private readonly _srcNodeToOutgoingEdges;
22
- addEdge(edge: AdjacencyEdgeType): this;
23
- hasEdge(edge: AdjacencyEdgeType): boolean;
24
- removeEdge(edge: AdjacencyEdgeType): this;
21
+ private readonly _srcNodeOutgoingLinks;
22
+ addLink(link: AdjacencyLinkType): this;
23
+ hasLink(link: AdjacencyLinkType): boolean;
25
24
  /**
26
- * Remove all edges starting from the given node.
25
+ * Remove all links starting OR ENDING from the given node.
27
26
  *
28
27
  * @param node
29
28
  */
@@ -4,65 +4,52 @@ exports.Adjacency = void 0;
4
4
  const heap_1 = require("../heap/heap");
5
5
  class Adjacency {
6
6
  constructor() {
7
- this._srcNodeToOutgoingEdges = new Map();
7
+ this._srcNodeOutgoingLinks = new Map();
8
8
  }
9
- addEdge(edge) {
10
- // Create the src->edge set if missing.
11
- let outgoingEdges = this._srcNodeToOutgoingEdges.get(edge.src);
12
- if (!outgoingEdges) {
13
- outgoingEdges = new Set();
14
- this._srcNodeToOutgoingEdges.set(edge.src, outgoingEdges);
15
- }
16
- // Only add edge if new.
17
- let found = false;
18
- for (const existingEdge of outgoingEdges) {
19
- if (existingEdge.src === edge.src &&
20
- existingEdge.dst === edge.dst &&
21
- existingEdge.distance === edge.distance) {
22
- found = true;
23
- break;
24
- }
25
- }
26
- if (!found) {
27
- edge = Object.freeze(edge); // make immutable
28
- outgoingEdges.add(edge);
9
+ addLink(link) {
10
+ // Create the src->link set if missing.
11
+ let outgoingLinks = this._srcNodeOutgoingLinks.get(link.src);
12
+ if (!outgoingLinks) {
13
+ outgoingLinks = new Set();
14
+ this._srcNodeOutgoingLinks.set(link.src, outgoingLinks);
29
15
  }
16
+ // Add immutable link.
17
+ link = Object.freeze(link); // make immutable
18
+ outgoingLinks.add(link);
30
19
  return this;
31
20
  }
32
- hasEdge(edge) {
33
- const outgoingEdges = this._srcNodeToOutgoingEdges.get(edge.src);
34
- if (outgoingEdges) {
35
- for (const existingEdge of outgoingEdges) {
36
- if (existingEdge.src === edge.src &&
37
- existingEdge.dst === edge.dst &&
38
- existingEdge.distance === edge.distance) {
21
+ hasLink(link) {
22
+ const outgoingLinks = this._srcNodeOutgoingLinks.get(link.src);
23
+ if (outgoingLinks) {
24
+ for (const outgoingLink of outgoingLinks) {
25
+ if (outgoingLink.src === link.src &&
26
+ outgoingLink.dst === link.dst &&
27
+ outgoingLink.distance === link.distance &&
28
+ outgoingLink.isTransit === link.isTransit) {
39
29
  return true;
40
30
  }
41
31
  }
42
32
  }
43
33
  return false;
44
34
  }
45
- removeEdge(edge) {
46
- const outgoingEdges = this._srcNodeToOutgoingEdges.get(edge.src);
47
- if (outgoingEdges) {
48
- for (const existingEdge of outgoingEdges) {
49
- if (existingEdge.src === edge.src &&
50
- existingEdge.dst === edge.dst &&
51
- existingEdge.distance === edge.distance) {
52
- outgoingEdges.delete(existingEdge);
53
- break;
54
- }
55
- }
56
- }
57
- return this;
58
- }
59
35
  /**
60
- * Remove all edges starting from the given node.
36
+ * Remove all links starting OR ENDING from the given node.
61
37
  *
62
38
  * @param node
63
39
  */
64
40
  removeNode(node) {
65
- this._srcNodeToOutgoingEdges.delete(node);
41
+ this._srcNodeOutgoingLinks.delete(node);
42
+ for (const outgoingLinks of this._srcNodeOutgoingLinks.values()) {
43
+ const dele = new Set();
44
+ for (const link of outgoingLinks) {
45
+ if (link.dst === node) {
46
+ dele.add(link);
47
+ }
48
+ }
49
+ for (const link of dele) {
50
+ outgoingLinks.delete(link);
51
+ }
52
+ }
66
53
  return this;
67
54
  }
68
55
  /**
@@ -92,16 +79,16 @@ class Adjacency {
92
79
  // Mark as explored.
93
80
  toExplore.delete(closest.node);
94
81
  explored.add(closest.node);
95
- // Walk the outgoing edge destinations.
96
- const outgoingEdges = this._srcNodeToOutgoingEdges.get(closest.node);
97
- if (outgoingEdges) {
98
- for (const outgoingEdge of outgoingEdges) {
99
- const dst = outgoingEdge.dst;
82
+ // Walk the outgoing link destinations.
83
+ const outgoingLinks = this._srcNodeOutgoingLinks.get(closest.node);
84
+ if (outgoingLinks) {
85
+ for (const outgoingLink of outgoingLinks) {
86
+ const dst = outgoingLink.dst;
100
87
  if (!explored.has(dst)) {
101
- const distance = closest.distance + outgoingEdge.distance;
88
+ const distance = closest.distance + outgoingLink.distance;
102
89
  const path = [
103
90
  ...closest.path,
104
- outgoingEdge,
91
+ outgoingLink,
105
92
  ];
106
93
  if (distance <= maxDistance) {
107
94
  // This dst is new and within range, add it to to-explore list.
@@ -124,8 +111,8 @@ class Adjacency {
124
111
  ...nodeToAdjacencyPath.values(),
125
112
  ]
126
113
  .filter((adjacencyPathType) => {
127
- const lastEdge = adjacencyPathType.path[adjacencyPathType.path.length - 1];
128
- return lastEdge !== undefined && !lastEdge.isTransit;
114
+ const lastLink = adjacencyPathType.path[adjacencyPathType.path.length - 1];
115
+ return lastLink !== undefined && !lastLink.isTransit;
129
116
  })
130
117
  .map((adjacencyPathType) => {
131
118
  return Object.freeze(adjacencyPathType);
@@ -1 +1 @@
1
- {"version":3,"file":"adjacency.js","sourceRoot":"","sources":["../../../../src/lib/adjacency/adjacency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adjacency.js","sourceRoot":"","sources":["../../../../src/lib/adjacency/adjacency.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@
3
3
  */
4
4
  export type AdjacencyNodeType = string;
5
5
  /**
6
- * Edge between two nodes.
6
+ * Directed link between two nodes.
7
7
  * Paths cannot end with a transit node; they must connect two non-transit nodes.
8
8
  */
9
- export type AdjacencyEdgeType = {
9
+ export type AdjacencyLinkType = {
10
10
  src: AdjacencyNodeType;
11
11
  dst: AdjacencyNodeType;
12
12
  distance: number;
@@ -15,15 +15,14 @@ export type AdjacencyEdgeType = {
15
15
  export type AdjacencyPathType = {
16
16
  node: AdjacencyNodeType;
17
17
  distance: number;
18
- path: ReadonlyArray<AdjacencyEdgeType>;
18
+ path: ReadonlyArray<AdjacencyLinkType>;
19
19
  };
20
20
  export declare class Adjacency {
21
- private readonly _srcNodeToOutgoingEdges;
22
- addEdge(edge: AdjacencyEdgeType): this;
23
- hasEdge(edge: AdjacencyEdgeType): boolean;
24
- removeEdge(edge: AdjacencyEdgeType): this;
21
+ private readonly _srcNodeOutgoingLinks;
22
+ addLink(link: AdjacencyLinkType): this;
23
+ hasLink(link: AdjacencyLinkType): boolean;
25
24
  /**
26
- * Remove all edges starting from the given node.
25
+ * Remove all links starting OR ENDING from the given node.
27
26
  *
28
27
  * @param node
29
28
  */
@@ -1,65 +1,52 @@
1
1
  import { Heap } from "../heap/heap";
2
2
  export class Adjacency {
3
3
  constructor() {
4
- this._srcNodeToOutgoingEdges = new Map();
4
+ this._srcNodeOutgoingLinks = new Map();
5
5
  }
6
- addEdge(edge) {
7
- // Create the src->edge set if missing.
8
- let outgoingEdges = this._srcNodeToOutgoingEdges.get(edge.src);
9
- if (!outgoingEdges) {
10
- outgoingEdges = new Set();
11
- this._srcNodeToOutgoingEdges.set(edge.src, outgoingEdges);
12
- }
13
- // Only add edge if new.
14
- let found = false;
15
- for (const existingEdge of outgoingEdges) {
16
- if (existingEdge.src === edge.src &&
17
- existingEdge.dst === edge.dst &&
18
- existingEdge.distance === edge.distance) {
19
- found = true;
20
- break;
21
- }
22
- }
23
- if (!found) {
24
- edge = Object.freeze(edge); // make immutable
25
- outgoingEdges.add(edge);
6
+ addLink(link) {
7
+ // Create the src->link set if missing.
8
+ let outgoingLinks = this._srcNodeOutgoingLinks.get(link.src);
9
+ if (!outgoingLinks) {
10
+ outgoingLinks = new Set();
11
+ this._srcNodeOutgoingLinks.set(link.src, outgoingLinks);
26
12
  }
13
+ // Add immutable link.
14
+ link = Object.freeze(link); // make immutable
15
+ outgoingLinks.add(link);
27
16
  return this;
28
17
  }
29
- hasEdge(edge) {
30
- const outgoingEdges = this._srcNodeToOutgoingEdges.get(edge.src);
31
- if (outgoingEdges) {
32
- for (const existingEdge of outgoingEdges) {
33
- if (existingEdge.src === edge.src &&
34
- existingEdge.dst === edge.dst &&
35
- existingEdge.distance === edge.distance) {
18
+ hasLink(link) {
19
+ const outgoingLinks = this._srcNodeOutgoingLinks.get(link.src);
20
+ if (outgoingLinks) {
21
+ for (const outgoingLink of outgoingLinks) {
22
+ if (outgoingLink.src === link.src &&
23
+ outgoingLink.dst === link.dst &&
24
+ outgoingLink.distance === link.distance &&
25
+ outgoingLink.isTransit === link.isTransit) {
36
26
  return true;
37
27
  }
38
28
  }
39
29
  }
40
30
  return false;
41
31
  }
42
- removeEdge(edge) {
43
- const outgoingEdges = this._srcNodeToOutgoingEdges.get(edge.src);
44
- if (outgoingEdges) {
45
- for (const existingEdge of outgoingEdges) {
46
- if (existingEdge.src === edge.src &&
47
- existingEdge.dst === edge.dst &&
48
- existingEdge.distance === edge.distance) {
49
- outgoingEdges.delete(existingEdge);
50
- break;
51
- }
52
- }
53
- }
54
- return this;
55
- }
56
32
  /**
57
- * Remove all edges starting from the given node.
33
+ * Remove all links starting OR ENDING from the given node.
58
34
  *
59
35
  * @param node
60
36
  */
61
37
  removeNode(node) {
62
- this._srcNodeToOutgoingEdges.delete(node);
38
+ this._srcNodeOutgoingLinks.delete(node);
39
+ for (const outgoingLinks of this._srcNodeOutgoingLinks.values()) {
40
+ const dele = new Set();
41
+ for (const link of outgoingLinks) {
42
+ if (link.dst === node) {
43
+ dele.add(link);
44
+ }
45
+ }
46
+ for (const link of dele) {
47
+ outgoingLinks.delete(link);
48
+ }
49
+ }
63
50
  return this;
64
51
  }
65
52
  /**
@@ -89,16 +76,16 @@ export class Adjacency {
89
76
  // Mark as explored.
90
77
  toExplore.delete(closest.node);
91
78
  explored.add(closest.node);
92
- // Walk the outgoing edge destinations.
93
- const outgoingEdges = this._srcNodeToOutgoingEdges.get(closest.node);
94
- if (outgoingEdges) {
95
- for (const outgoingEdge of outgoingEdges) {
96
- const dst = outgoingEdge.dst;
79
+ // Walk the outgoing link destinations.
80
+ const outgoingLinks = this._srcNodeOutgoingLinks.get(closest.node);
81
+ if (outgoingLinks) {
82
+ for (const outgoingLink of outgoingLinks) {
83
+ const dst = outgoingLink.dst;
97
84
  if (!explored.has(dst)) {
98
- const distance = closest.distance + outgoingEdge.distance;
85
+ const distance = closest.distance + outgoingLink.distance;
99
86
  const path = [
100
87
  ...closest.path,
101
- outgoingEdge,
88
+ outgoingLink,
102
89
  ];
103
90
  if (distance <= maxDistance) {
104
91
  // This dst is new and within range, add it to to-explore list.
@@ -121,8 +108,8 @@ export class Adjacency {
121
108
  ...nodeToAdjacencyPath.values(),
122
109
  ]
123
110
  .filter((adjacencyPathType) => {
124
- const lastEdge = adjacencyPathType.path[adjacencyPathType.path.length - 1];
125
- return lastEdge !== undefined && !lastEdge.isTransit;
111
+ const lastLink = adjacencyPathType.path[adjacencyPathType.path.length - 1];
112
+ return lastLink !== undefined && !lastLink.isTransit;
126
113
  })
127
114
  .map((adjacencyPathType) => {
128
115
  return Object.freeze(adjacencyPathType);
@@ -1 +1 @@
1
- {"version":3,"file":"adjacency.js","sourceRoot":"","sources":["../../../../src/lib/adjacency/adjacency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adjacency.js","sourceRoot":"","sources":["../../../../src/lib/adjacency/adjacency.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ttpg-darrell",
3
- "version": "1.1.9",
3
+ "version": "1.1.10",
4
4
  "description": "TTPG TypeScript library",
5
5
  "main": "./build/cjs/index.js",
6
6
  "module": "./build/esm/index.js",
@@ -1 +0,0 @@
1
- export {};
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- /**
4
- * Create game objects using given source colors, screenshot then use the
5
- * lib-ext extract tool to read color values.
6
- */
7
- const api_1 = require("@tabletop-playground/api");
8
- const shuffle_1 = require("../shuffle/shuffle");
9
- // Clear the world before (re)creating objects.
10
- for (const obj of api_1.world.getAllObjects()) {
11
- if (obj !== api_1.refObject) {
12
- obj.destroy();
13
- }
14
- }
15
- const templateId = "83FDE12C4E6D912B16B85E9A00422F43"; // cube
16
- const cube = api_1.world.createObjectFromTemplate(
17
- templateId,
18
- new api_1.Vector(0, 0, api_1.world.getTableHeight() + 4)
19
- );
20
- if (!cube) {
21
- throw new Error("Failed to create object");
22
- }
23
- cube.setRoughness(1);
24
- cube.setMetallic(0);
25
- cube.snapToGround();
26
- const border = new api_1.Border();
27
- const ui = new api_1.UIElement();
28
- ui.position = new api_1.Vector(-4, 0, 2);
29
- ui.widget = border.setChild(
30
- new api_1.LayoutBox().setOverrideWidth(25).setOverrideHeight(25)
31
- );
32
- cube.addUI(ui);
33
- // Look straight down at result.
34
- const player = api_1.world.getAllPlayers()[0];
35
- if (player) {
36
- console.log(player.getPosition());
37
- console.log(player.getRotation());
38
- const z = api_1.world.getTableHeight() + 40;
39
- player.setPositionAndRotation([-10, -25, z], [-90, 0, 0]);
40
- }
41
- const n = 16;
42
- let colors = [];
43
- for (let r = 0; r < n; r++) {
44
- for (let g = 0; g < n; g++) {
45
- for (let b = 0; b < n; b++) {
46
- const color = new api_1.Color(
47
- r / (n - 1),
48
- g / (n - 1),
49
- b / (n - 1)
50
- );
51
- colors.push(color);
52
- }
53
- }
54
- }
55
- colors = new shuffle_1.Shuffle().shuffle(colors);
56
- console.log("|colors|:", colors.length);
57
- function setToNextColor() {
58
- const color = colors.shift();
59
- if (color) {
60
- console.log(color.toHex(), colors.length);
61
- api_1.world.setSlotColor(0, color);
62
- cube === null || cube === void 0 ? void 0 : cube.setPrimaryColor(color);
63
- border.setColor(color);
64
- }
65
- return color !== undefined;
66
- }
67
- const handle = setInterval(() => {
68
- if (!setToNextColor()) {
69
- clearInterval(handle);
70
- }
71
- }, 3000);
72
- //# sourceMappingURL=color-mapping-rotating.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color-mapping-rotating.js","sourceRoot":"","sources":["../../../../src/lib/color-lib/color-mapping-rotating.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { Color } from "@tabletop-playground/api";
2
- export declare const HEX_COLOR_REGEX: RegExp;
3
- export declare class ParseColor {
4
- private readonly _hexColorRegex;
5
- parseColor(hexColor: string): Color | undefined;
6
- parseColorOrThrow(hexColor: string): Color;
7
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParseColor = exports.HEX_COLOR_REGEX = void 0;
4
- const api_1 = require("@tabletop-playground/api");
5
- exports.HEX_COLOR_REGEX = /^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
6
- class ParseColor {
7
- constructor() {
8
- this._hexColorRegex = new RegExp(exports.HEX_COLOR_REGEX);
9
- }
10
- parseColor(hexColor) {
11
- var _a;
12
- const m = hexColor.match(this._hexColorRegex);
13
- const hexStr =
14
- (_a = m === null || m === void 0 ? void 0 : m[1]) !== null &&
15
- _a !== void 0
16
- ? _a
17
- : "";
18
- if (!m) {
19
- return undefined;
20
- }
21
- if (hexStr.length !== 3 && hexStr.length !== 6 && hexStr.length !== 8) {
22
- return undefined;
23
- }
24
- let r = 0;
25
- let g = 0;
26
- let b = 0;
27
- let a = 1;
28
- if (hexStr.length === 3) {
29
- r = Number.parseInt(hexStr.substring(0, 1), 16) / 15;
30
- g = Number.parseInt(hexStr.substring(1, 2), 16) / 15;
31
- b = Number.parseInt(hexStr.substring(2, 3), 16) / 15;
32
- } else {
33
- r = Number.parseInt(hexStr.substring(0, 2), 16) / 255;
34
- g = Number.parseInt(hexStr.substring(2, 4), 16) / 255;
35
- b = Number.parseInt(hexStr.substring(4, 6), 16) / 255;
36
- }
37
- if (hexStr.length === 8) {
38
- a = Number.parseInt(hexStr.substring(6, 8), 16) / 255;
39
- }
40
- return new api_1.Color(r, g, b, a);
41
- }
42
- parseColorOrThrow(hexColor) {
43
- const color = this.parseColor(hexColor);
44
- if (!color) {
45
- throw new Error(`bad hexColor "${hexColor}"`);
46
- }
47
- return color;
48
- }
49
- }
50
- exports.ParseColor = ParseColor;
51
- //# sourceMappingURL=parse-color.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-color.js","sourceRoot":"","sources":["../../../../../src/lib/parse/parse-color/parse-color.ts"],"names":[],"mappings":";;;AAAA,kDAAiD;AAEpC,QAAA,eAAe,GAAG,2CAA2C,CAAC;AAE3E,MAAa,UAAU;IAAvB;QACqB,mBAAc,GAAW,IAAI,MAAM,CAAC,uBAAe,CAAC,CAAC;IAsC1E,CAAC;IApCG,UAAU,CAAC,QAAgB;;QACvB,MAAM,CAAC,GAA4B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,MAAM,GAAW,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpE,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACrD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;YACrD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;YACtD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;YACtD,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,WAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAC9B,MAAM,KAAK,GAAsB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAvCD,gCAuCC"}
@@ -1 +0,0 @@
1
- export {};