@mlightcad/common 1.2.3 → 1.2.5

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 (67) hide show
  1. package/dist/common.js +1478 -0
  2. package/dist/common.umd.cjs +1 -0
  3. package/lib/AcCmColor.d.ts +201 -0
  4. package/lib/AcCmColor.d.ts.map +1 -0
  5. package/lib/AcCmColor.js +641 -0
  6. package/lib/AcCmColor.js.map +1 -0
  7. package/lib/AcCmColorUtil.d.ts +41 -0
  8. package/lib/AcCmColorUtil.d.ts.map +1 -0
  9. package/lib/AcCmColorUtil.js +90 -0
  10. package/lib/AcCmColorUtil.js.map +1 -0
  11. package/lib/AcCmErrors.d.ts +56 -0
  12. package/lib/AcCmErrors.d.ts.map +1 -0
  13. package/lib/AcCmErrors.js +70 -0
  14. package/lib/AcCmErrors.js.map +1 -0
  15. package/lib/AcCmEventDispatcher.d.ts +101 -0
  16. package/lib/AcCmEventDispatcher.d.ts.map +1 -0
  17. package/lib/AcCmEventDispatcher.js +97 -0
  18. package/lib/AcCmEventDispatcher.js.map +1 -0
  19. package/lib/AcCmEventManager.d.ts +66 -0
  20. package/lib/AcCmEventManager.d.ts.map +1 -0
  21. package/lib/AcCmEventManager.js +133 -0
  22. package/lib/AcCmEventManager.js.map +1 -0
  23. package/lib/AcCmLodashUtils.d.ts +145 -0
  24. package/lib/AcCmLodashUtils.d.ts.map +1 -0
  25. package/lib/AcCmLodashUtils.js +293 -0
  26. package/lib/AcCmLodashUtils.js.map +1 -0
  27. package/lib/AcCmLogUtil.d.ts +80 -0
  28. package/lib/AcCmLogUtil.d.ts.map +1 -0
  29. package/lib/AcCmLogUtil.js +72 -0
  30. package/lib/AcCmLogUtil.js.map +1 -0
  31. package/lib/AcCmObject.d.ts +150 -0
  32. package/lib/AcCmObject.d.ts.map +1 -0
  33. package/lib/AcCmObject.js +204 -0
  34. package/lib/AcCmObject.js.map +1 -0
  35. package/lib/AcCmPerformanceCollector.d.ts +89 -0
  36. package/lib/AcCmPerformanceCollector.d.ts.map +1 -0
  37. package/lib/AcCmPerformanceCollector.js +119 -0
  38. package/lib/AcCmPerformanceCollector.js.map +1 -0
  39. package/lib/AcCmStringUtil.d.ts +44 -0
  40. package/lib/AcCmStringUtil.d.ts.map +1 -0
  41. package/lib/AcCmStringUtil.js +58 -0
  42. package/lib/AcCmStringUtil.js.map +1 -0
  43. package/lib/AcCmTaskScheduler.d.ts +188 -0
  44. package/lib/AcCmTaskScheduler.d.ts.map +1 -0
  45. package/lib/AcCmTaskScheduler.js +256 -0
  46. package/lib/AcCmTaskScheduler.js.map +1 -0
  47. package/lib/index.d.ts +12 -0
  48. package/lib/index.d.ts.map +1 -0
  49. package/lib/index.js +12 -0
  50. package/lib/index.js.map +1 -0
  51. package/lib/loader/AcCmFileLoader.d.ts +95 -0
  52. package/lib/loader/AcCmFileLoader.d.ts.map +1 -0
  53. package/lib/loader/AcCmFileLoader.js +275 -0
  54. package/lib/loader/AcCmFileLoader.js.map +1 -0
  55. package/lib/loader/AcCmLoader.d.ts +125 -0
  56. package/lib/loader/AcCmLoader.d.ts.map +1 -0
  57. package/lib/loader/AcCmLoader.js +116 -0
  58. package/lib/loader/AcCmLoader.js.map +1 -0
  59. package/lib/loader/AcCmLoadingManager.d.ts +166 -0
  60. package/lib/loader/AcCmLoadingManager.d.ts.map +1 -0
  61. package/lib/loader/AcCmLoadingManager.js +172 -0
  62. package/lib/loader/AcCmLoadingManager.js.map +1 -0
  63. package/lib/loader/index.d.ts +3 -0
  64. package/lib/loader/index.d.ts.map +1 -0
  65. package/lib/loader/index.js +3 -0
  66. package/lib/loader/index.js.map +1 -0
  67. package/package.json +1 -1
@@ -0,0 +1,641 @@
1
+ /**
2
+ * @fileoverview This module provides color handling functionality for AutoCAD files,
3
+ * including color representation, color name mapping, and color index conversion.
4
+ *
5
+ * The module supports various color formats including RGB values, named colors,
6
+ * AutoCAD color indices, and special values like "ByLayer" and "ByBlock".
7
+ *
8
+ * @module AcCmColor
9
+ * @version 1.0.0
10
+ */
11
+ var __values = (this && this.__values) || function(o) {
12
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
13
+ if (m) return m.call(o);
14
+ if (o && typeof o.length === "number") return {
15
+ next: function () {
16
+ if (o && i >= o.length) o = void 0;
17
+ return { value: o && o[i++], done: !o };
18
+ }
19
+ };
20
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
21
+ };
22
+ var __read = (this && this.__read) || function (o, n) {
23
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
24
+ if (!m) return o;
25
+ var i = m.call(o), r, ar = [], e;
26
+ try {
27
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
28
+ }
29
+ catch (error) { e = { error: error }; }
30
+ finally {
31
+ try {
32
+ if (r && !r.done && (m = i["return"])) m.call(i);
33
+ }
34
+ finally { if (e) throw e.error; }
35
+ }
36
+ return ar;
37
+ };
38
+ /**
39
+ * Mapping of CSS color names to their corresponding RGB values.
40
+ * These are standard web color names that can be used for color representation.
41
+ *
42
+ * @internal
43
+ */
44
+ var _colorKeywords = {
45
+ aliceblue: 0xf0f8ff,
46
+ antiquewhite: 0xfaebd7,
47
+ aqua: 0x00ffff,
48
+ aquamarine: 0x7fffd4,
49
+ azure: 0xf0ffff,
50
+ beige: 0xf5f5dc,
51
+ bisque: 0xffe4c4,
52
+ black: 0x000000,
53
+ blanchedalmond: 0xffebcd,
54
+ blue: 0x0000ff,
55
+ blueviolet: 0x8a2be2,
56
+ brown: 0xa52a2a,
57
+ burlywood: 0xdeb887,
58
+ cadetblue: 0x5f9ea0,
59
+ chartreuse: 0x7fff00,
60
+ chocolate: 0xd2691e,
61
+ coral: 0xff7f50,
62
+ cornflowerblue: 0x6495ed,
63
+ cornsilk: 0xfff8dc,
64
+ crimson: 0xdc143c,
65
+ cyan: 0x00ffff,
66
+ darkblue: 0x00008b,
67
+ darkcyan: 0x008b8b,
68
+ darkgoldenrod: 0xb8860b,
69
+ darkgray: 0xa9a9a9,
70
+ darkgreen: 0x006400,
71
+ darkkhaki: 0xbdb76b,
72
+ darkmagenta: 0x8b008b,
73
+ darkolivegreen: 0x556b2f,
74
+ darkorange: 0xff8c00,
75
+ darkorchid: 0x9932cc,
76
+ darkred: 0x8b0000,
77
+ darksalmon: 0xe9967a,
78
+ darkseagreen: 0x8fbc8f,
79
+ darkslateblue: 0x483d8b,
80
+ darkslategray: 0x2f4f4f,
81
+ darkturquoise: 0x00ced1,
82
+ darkviolet: 0x9400d3,
83
+ deeppink: 0xff1493,
84
+ deepskyblue: 0x00bfff,
85
+ dimgrey: 0x696969,
86
+ dodgerblue: 0x1e90ff,
87
+ firebrick: 0xb22222,
88
+ floralwhite: 0xfffaf0,
89
+ forestgreen: 0x228b22,
90
+ fuchsia: 0xff00ff,
91
+ gainsboro: 0xdcdcdc,
92
+ ghostwhite: 0xf8f8ff,
93
+ gold: 0xffd700,
94
+ goldenrod: 0xdaa520,
95
+ gray: 0x808080,
96
+ green: 0x008000,
97
+ greenyellow: 0xadff2f,
98
+ grey: 0x808080,
99
+ honeydew: 0xf0fff0,
100
+ hotpink: 0xff69b4,
101
+ indianred: 0xcd5c5c,
102
+ indigo: 0x4b0082,
103
+ ivory: 0xfffff0,
104
+ khaki: 0xf0e68c,
105
+ lavender: 0xe6e6fa,
106
+ lavenderblush: 0xfff0f5,
107
+ lawngreen: 0x7cfc00,
108
+ lemonchiffon: 0xfffacd,
109
+ lightblue: 0xadd8e6,
110
+ lightcoral: 0xf08080,
111
+ lightcyan: 0xe0ffff,
112
+ lightgoldenrodyellow: 0xfafad2,
113
+ lightgray: 0xd3d3d3,
114
+ lightgreen: 0x90ee90,
115
+ lightgrey: 0xd3d3d3,
116
+ lightpink: 0xffb6c1,
117
+ lightsalmon: 0xffa07a,
118
+ lightseagreen: 0x20b2aa,
119
+ lightskyblue: 0x87cefa,
120
+ lightslategray: 0x778899,
121
+ lightslategrey: 0x778899,
122
+ lightsteelblue: 0xb0c4de,
123
+ lightyellow: 0xffffe0,
124
+ lime: 0x00ff00,
125
+ limegreen: 0x32cd32,
126
+ linen: 0xfaf0e6,
127
+ magenta: 0xff00ff,
128
+ maroon: 0x800000,
129
+ mediumaquamarine: 0x66cdaa,
130
+ mediumblue: 0x0000cd,
131
+ mediumorchid: 0xba55d3,
132
+ mediumpurple: 0x9370db,
133
+ mediumseagreen: 0x3cb371,
134
+ mediumslateblue: 0x7b68ee,
135
+ mediumspringgreen: 0x00fa9a,
136
+ mediumturquoise: 0x48d1cc,
137
+ mediumvioletred: 0xc71585,
138
+ midnightblue: 0x191970,
139
+ mintcream: 0xf5fffa,
140
+ mistyrose: 0xffe4e1,
141
+ moccasin: 0xffe4b5,
142
+ navajowhite: 0xffdead,
143
+ navy: 0x000080,
144
+ oldlace: 0xfdf5e6,
145
+ olive: 0x808000,
146
+ olivedrab: 0x6b8e23,
147
+ orange: 0xffa500,
148
+ orangered: 0xff4500,
149
+ orchid: 0xda70d6,
150
+ palegoldenrod: 0xeee8aa,
151
+ palegreen: 0x98fb98,
152
+ paleturquoise: 0xafeeee,
153
+ palevioletred: 0xdb7093,
154
+ papayawhip: 0xffefd5,
155
+ peachpuff: 0xffdab9,
156
+ peru: 0xcd853f,
157
+ pink: 0xffc0cb,
158
+ plum: 0xdda0dd,
159
+ powderblue: 0xb0e0e6,
160
+ purple: 0x800080,
161
+ rebeccapurple: 0x663399,
162
+ red: 0xff0000,
163
+ rosybrown: 0xbc8f8f,
164
+ royalblue: 0x4169e1,
165
+ saddlebrown: 0x8b4513,
166
+ salmon: 0xfa8072,
167
+ sandybrown: 0xf4a460,
168
+ seagreen: 0x2e8b57,
169
+ seashell: 0xfff5ee,
170
+ sienna: 0xa0522d,
171
+ silver: 0xc0c0c0,
172
+ skyblue: 0x87ceeb,
173
+ slateblue: 0x6a5acd,
174
+ slategrey: 0x708090,
175
+ snow: 0xfffafa,
176
+ springgreen: 0x00ff7f,
177
+ steelblue: 0x4682b4,
178
+ tan: 0xd2b48c,
179
+ teal: 0x008080,
180
+ thistle: 0xd8bfd8,
181
+ tomato: 0xff6347,
182
+ turquoise: 0x40e0d0,
183
+ violet: 0xee82ee,
184
+ wheat: 0xf5deb3,
185
+ white: 0xffffff,
186
+ whitesmoke: 0xf5f5f5,
187
+ yellow: 0xffff00,
188
+ yellowgreen: 0x9acd32
189
+ };
190
+ /**
191
+ * AutoCAD color index array mapping index values (1-255) to RGB color values.
192
+ * Each value corresponds to a color. Index 1 is red, that is 16711680 or 0xFF0000.
193
+ * Index 0 and 256, while included in this array, are actually reserved for inheritance
194
+ * values in AutoCAD so they should not be used for index color lookups:
195
+ * - Index 0: "ByBlock" - entity uses color of the block reference
196
+ * - Index 256: "ByLayer" - entity uses color specified in the layer
197
+ *
198
+ * @internal
199
+ */
200
+ var AUTO_CAD_COLOR_INDEX = [
201
+ 0, 16711680, 16776960, 65280, 65535, 255, 16711935, 16777215, 8421504,
202
+ 12632256, 16711680, 16744319, 13369344, 13395558, 10027008, 10046540, 8323072,
203
+ 8339263, 4980736, 4990502, 16727808, 16752511, 13382400, 13401958, 10036736,
204
+ 10051404, 8331008, 8343359, 4985600, 4992806, 16744192, 16760703, 13395456,
205
+ 13408614, 10046464, 10056268, 8339200, 8347455, 4990464, 4995366, 16760576,
206
+ 16768895, 13408512, 13415014, 10056192, 10061132, 8347392, 8351551, 4995328,
207
+ 4997670, 16776960, 16777087, 13421568, 13421670, 10000384, 10000460, 8355584,
208
+ 8355647, 5000192, 5000230, 12582656, 14679935, 10079232, 11717734, 7510016,
209
+ 8755276, 6258432, 7307071, 3755008, 4344870, 8388352, 12582783, 6736896,
210
+ 10079334, 5019648, 7510092, 4161280, 6258495, 2509824, 3755046, 4194048,
211
+ 10485631, 3394560, 8375398, 2529280, 6264908, 2064128, 5209919, 1264640,
212
+ 3099686, 65280, 8388479, 52224, 6736998, 38912, 5019724, 32512, 4161343,
213
+ 19456, 2509862, 65343, 8388511, 52275, 6737023, 38950, 5019743, 32543,
214
+ 4161359, 19475, 2509871, 65407, 8388543, 52326, 6737049, 38988, 5019762,
215
+ 32575, 4161375, 19494, 2509881, 65471, 8388575, 52377, 6737074, 39026,
216
+ 5019781, 32607, 4161391, 19513, 2509890, 65535, 8388607, 52428, 6737100,
217
+ 39064, 5019800, 32639, 4161407, 19532, 2509900, 49151, 8380415, 39372,
218
+ 6730444, 29336, 5014936, 24447, 4157311, 14668, 2507340, 32767, 8372223,
219
+ 26316, 6724044, 19608, 5010072, 16255, 4153215, 9804, 2505036, 16383, 8364031,
220
+ 13260, 6717388, 9880, 5005208, 8063, 4149119, 4940, 2502476, 255, 8355839,
221
+ 204, 6710988, 152, 5000344, 127, 4145023, 76, 2500172, 4129023, 10452991,
222
+ 3342540, 8349388, 2490520, 6245528, 2031743, 5193599, 1245260, 3089996,
223
+ 8323327, 12550143, 6684876, 10053324, 4980888, 7490712, 4128895, 6242175,
224
+ 2490444, 3745356, 12517631, 14647295, 10027212, 11691724, 7471256, 8735896,
225
+ 6226047, 7290751, 3735628, 4335180, 16711935, 16744447, 13369548, 13395660,
226
+ 9961624, 9981080, 8323199, 8339327, 4980812, 4990540, 16711871, 16744415,
227
+ 13369497, 13395634, 9961586, 9981061, 8323167, 8339311, 4980793, 4990530,
228
+ 16711807, 16744383, 13369446, 13395609, 9961548, 9981042, 8323135, 8339295,
229
+ 4980774, 4990521, 16711743, 16744351, 13369395, 13395583, 9961510, 9981023,
230
+ 8323103, 8339279, 4980755, 4990511, 3355443, 5987163, 8684676, 11382189,
231
+ 14079702, 16777215, 0
232
+ ];
233
+ /**
234
+ * Clamps a value between a minimum and maximum value.
235
+ *
236
+ * @param {number} value - The value to clamp.
237
+ * @param {number} min - The minimum value.
238
+ * @param {number} max - The maximum value.
239
+ * @returns {number} The clamped value.
240
+ * @internal
241
+ */
242
+ function clamp(value, min, max) {
243
+ return Math.max(min, Math.min(max, value));
244
+ }
245
+ /**
246
+ * Represents a color in AutoCAD, supporting various color formats.
247
+ *
248
+ * @class AcCmColor
249
+ * @version 1.0.0
250
+ */
251
+ var AcCmColor = /** @class */ (function () {
252
+ /**
253
+ * Constructs a new AcCmColor instance.
254
+ * Initializes the color to "ByLayer" (index 256) and null RGB values.
255
+ */
256
+ function AcCmColor() {
257
+ this._colorIndex = 256;
258
+ this._color = null;
259
+ this._colorName = null;
260
+ }
261
+ Object.defineProperty(AcCmColor.prototype, "color", {
262
+ /**
263
+ * Gets the current color value.
264
+ *
265
+ * @returns {number | null} The color value (RGB or index).
266
+ */
267
+ get: function () {
268
+ return this._color;
269
+ },
270
+ /**
271
+ * Sets the color value.
272
+ *
273
+ * @param {number | null} value - The color value to set (RGB or index).
274
+ */
275
+ set: function (value) {
276
+ if (value == null) {
277
+ this._color = null;
278
+ }
279
+ else {
280
+ this._color = Math.round(clamp(value, 0, 256 * 256 * 256 - 1));
281
+ this._colorIndex = this.getColorIndexByValue(this._color);
282
+ this._colorName = this.getColorNameByValue(this._color);
283
+ }
284
+ },
285
+ enumerable: false,
286
+ configurable: true
287
+ });
288
+ Object.defineProperty(AcCmColor.prototype, "hexColor", {
289
+ /**
290
+ * Gets the hexadecimal representation of the current color.
291
+ *
292
+ * @returns {string} The hexadecimal color string (e.g., "0xFFFFFF").
293
+ */
294
+ get: function () {
295
+ // Ensure the number is a valid RGB value
296
+ if (this._color && this._color > 0 && this._color <= 0xffffff) {
297
+ var hexString = this._color.toString(16).toUpperCase();
298
+ // Pad the string with leading zeros if necessary
299
+ while (hexString.length < 6) {
300
+ hexString = '0' + hexString;
301
+ }
302
+ return "0x".concat(hexString);
303
+ }
304
+ return '';
305
+ },
306
+ enumerable: false,
307
+ configurable: true
308
+ });
309
+ Object.defineProperty(AcCmColor.prototype, "cssColor", {
310
+ /**
311
+ * Gets the CSS RGB color string representation.
312
+ *
313
+ * @returns {string} The CSS RGB color string (e.g., "rgb(255,255,255)").
314
+ */
315
+ get: function () {
316
+ return "rgb(".concat(this.red, ",").concat(this.green, ",").concat(this.blue, ")");
317
+ },
318
+ enumerable: false,
319
+ configurable: true
320
+ });
321
+ Object.defineProperty(AcCmColor.prototype, "red", {
322
+ /**
323
+ * Gets the red component of the current color.
324
+ *
325
+ * @returns {number | null} The red component (0-255).
326
+ */
327
+ get: function () {
328
+ return this.color ? (this.color >> 16) & 255 : null;
329
+ },
330
+ enumerable: false,
331
+ configurable: true
332
+ });
333
+ Object.defineProperty(AcCmColor.prototype, "green", {
334
+ /**
335
+ * Gets the green component of the current color.
336
+ *
337
+ * @returns {number | null} The green component (0-255).
338
+ */
339
+ get: function () {
340
+ return this.color ? (this.color >> 8) & 255 : null;
341
+ },
342
+ enumerable: false,
343
+ configurable: true
344
+ });
345
+ Object.defineProperty(AcCmColor.prototype, "blue", {
346
+ /**
347
+ * Gets the blue component of the current color.
348
+ *
349
+ * @returns {number | null} The blue component (0-255).
350
+ */
351
+ get: function () {
352
+ return this.color ? this.color & 255 : null;
353
+ },
354
+ enumerable: false,
355
+ configurable: true
356
+ });
357
+ Object.defineProperty(AcCmColor.prototype, "colorIndex", {
358
+ /**
359
+ * Gets the AutoCAD color index value. The index value will be in the range 0 to 256.
360
+ * 0 and 256 are special values.
361
+ *
362
+ * @returns {number | null} The color index.
363
+ */
364
+ get: function () {
365
+ return this._colorIndex;
366
+ },
367
+ /**
368
+ * Sets the AutoCAD color index value. If value less than 0 is set, 0 will be used. If value greater than
369
+ * 256 is set, 256 will be used.
370
+ * - 0 indicates that the entity uses the color of the BlockReference that's displaying it. If the entity
371
+ * is not displayed through a block reference (for example, it is directly owned by the model space
372
+ * block table record) and its color is 0, then it will display as though its color were 7.
373
+ * - 256 indicates that the entity uses the color specified in the layer table record it references.
374
+ *
375
+ * @param {number | null} value - The color index to set (0-256).
376
+ */
377
+ set: function (value) {
378
+ if (value == null) {
379
+ this._colorIndex = null;
380
+ }
381
+ else {
382
+ this._colorIndex = clamp(value, 0, 256);
383
+ if (this._colorIndex > 0 && this._colorIndex < 256) {
384
+ this._color = AUTO_CAD_COLOR_INDEX[value];
385
+ this._colorName = this.getColorNameByValue(this._color);
386
+ }
387
+ else {
388
+ // If it is ByBlock and ByLayer, value of color and colorName can't be inferenced.
389
+ this._color = null;
390
+ this._colorName = null;
391
+ }
392
+ }
393
+ },
394
+ enumerable: false,
395
+ configurable: true
396
+ });
397
+ Object.defineProperty(AcCmColor.prototype, "colorName", {
398
+ /**
399
+ * Gets the name of the current color.
400
+ *
401
+ * @returns {string | null} The color name.
402
+ */
403
+ get: function () {
404
+ return this._colorName;
405
+ },
406
+ /**
407
+ * Sets the color by name.
408
+ *
409
+ * @param {string | null} value - The color name to set.
410
+ */
411
+ set: function (value) {
412
+ if (value) {
413
+ var color = _colorKeywords[value.toLowerCase()];
414
+ if (color !== undefined) {
415
+ // red
416
+ this._colorName = value;
417
+ this._color = color;
418
+ this._colorIndex = this.getColorIndexByValue(this._color);
419
+ }
420
+ else {
421
+ // unknown color
422
+ console.warn('Unknown color: ' + value);
423
+ }
424
+ }
425
+ else {
426
+ this._colorName = null;
427
+ }
428
+ },
429
+ enumerable: false,
430
+ configurable: true
431
+ });
432
+ Object.defineProperty(AcCmColor.prototype, "hasColorName", {
433
+ /**
434
+ * Checks if the color has a name.
435
+ *
436
+ * @returns {boolean} True if the color has no name, false otherwise.
437
+ */
438
+ get: function () {
439
+ return this._colorName == null;
440
+ },
441
+ enumerable: false,
442
+ configurable: true
443
+ });
444
+ Object.defineProperty(AcCmColor.prototype, "hasColorIndex", {
445
+ /**
446
+ * Checks if the color has an index.
447
+ *
448
+ * @returns {boolean} True if the color has no index, false otherwise.
449
+ */
450
+ get: function () {
451
+ return this._colorIndex == null;
452
+ },
453
+ enumerable: false,
454
+ configurable: true
455
+ });
456
+ Object.defineProperty(AcCmColor.prototype, "isByLayer", {
457
+ /**
458
+ * Checks if the color is set to "ByLayer".
459
+ *
460
+ * @returns {boolean} True if the color is "ByLayer", false otherwise.
461
+ */
462
+ get: function () {
463
+ return this.colorIndex == 256;
464
+ },
465
+ enumerable: false,
466
+ configurable: true
467
+ });
468
+ /**
469
+ * Sets the color to "ByLayer".
470
+ *
471
+ * @returns {AcCmColor} The current instance.
472
+ */
473
+ AcCmColor.prototype.setByLayer = function () {
474
+ this.colorIndex = 256;
475
+ return this;
476
+ };
477
+ Object.defineProperty(AcCmColor.prototype, "isByBlock", {
478
+ /**
479
+ * Checks if the color is set to "ByBlock".
480
+ *
481
+ * @returns {boolean} True if the color is "ByBlock", false otherwise.
482
+ */
483
+ get: function () {
484
+ return this.colorIndex == 0;
485
+ },
486
+ enumerable: false,
487
+ configurable: true
488
+ });
489
+ /**
490
+ * Sets the color to "ByBlock".
491
+ *
492
+ * @returns {AcCmColor} The current instance.
493
+ */
494
+ AcCmColor.prototype.setByBlock = function () {
495
+ this.colorIndex = 0;
496
+ return this;
497
+ };
498
+ /**
499
+ * Sets the color using a scalar value (RGB).
500
+ *
501
+ * @param {number} scalar - The scalar value (0-255).
502
+ * @returns {AcCmColor} The current instance.
503
+ */
504
+ AcCmColor.prototype.setScalar = function (scalar) {
505
+ this.setRGB(scalar, scalar, scalar);
506
+ return this;
507
+ };
508
+ /**
509
+ * Sets the color using RGB values.
510
+ *
511
+ * @param {number} r - The red component (0-255).
512
+ * @param {number} g - The green component (0-255).
513
+ * @param {number} b - The blue component (0-255).
514
+ * @returns {AcCmColor} The current instance.
515
+ */
516
+ AcCmColor.prototype.setRGB = function (r, g, b) {
517
+ var red = Math.round(clamp(r, 0, 255));
518
+ var green = Math.round(clamp(g, 0, 255));
519
+ var blue = Math.round(clamp(b, 0, 255));
520
+ this.color = (red << 16) + (green << 8) + blue;
521
+ return this;
522
+ };
523
+ /**
524
+ * Sets the color by name.
525
+ *
526
+ * @param {string} style - The color name to set.
527
+ * @returns {AcCmColor} The current instance.
528
+ */
529
+ AcCmColor.prototype.setColorName = function (style) {
530
+ var color = _colorKeywords[style.toLowerCase()];
531
+ if (color !== undefined) {
532
+ // red
533
+ this.color = color;
534
+ }
535
+ else {
536
+ // unknown color
537
+ console.warn('Unknown color ' + style);
538
+ }
539
+ return this;
540
+ };
541
+ /**
542
+ * Clones the current AcCmColor instance.
543
+ *
544
+ * @returns {AcCmColor} A new AcCmColor instance with the same color and index.
545
+ */
546
+ AcCmColor.prototype.clone = function () {
547
+ var clonedColor = new AcCmColor();
548
+ clonedColor.colorIndex = this.colorIndex;
549
+ clonedColor.color = this.color;
550
+ clonedColor._colorName = this._colorName;
551
+ return this;
552
+ };
553
+ /**
554
+ * Copies the color from another AcCmColor instance.
555
+ *
556
+ * @param {AcCmColor} color - The color to copy from.
557
+ * @returns {AcCmColor} The current instance.
558
+ */
559
+ AcCmColor.prototype.copy = function (color) {
560
+ this.colorIndex = color.colorIndex;
561
+ this.color = color.color;
562
+ this._colorName = color._colorName;
563
+ return this;
564
+ };
565
+ /**
566
+ * Checks if two AcCmColor instances are equal.
567
+ *
568
+ * @param {AcCmColor} c - The color to compare with.
569
+ * @returns {boolean} True if the colors and their indices are the same.
570
+ */
571
+ AcCmColor.prototype.equals = function (c) {
572
+ return (c.color == this.color &&
573
+ c.colorIndex == this.colorIndex &&
574
+ c._colorName == this._colorName);
575
+ };
576
+ /**
577
+ * Returns a string representation of the color.
578
+ *
579
+ * @returns {string} The color name or hexadecimal string.
580
+ */
581
+ AcCmColor.prototype.toString = function () {
582
+ if (this.isByLayer) {
583
+ return 'ByLayer';
584
+ }
585
+ else if (this.isByBlock) {
586
+ return 'ByBlock';
587
+ }
588
+ else if (this.colorName) {
589
+ return this.colorName;
590
+ }
591
+ else {
592
+ return this.hexColor;
593
+ }
594
+ };
595
+ /**
596
+ * Finds the color name associated with a given RGB value.
597
+ *
598
+ * @private
599
+ * @param {number} target - The RGB value to find a name for.
600
+ * @returns {string | null} The color name if found, null otherwise.
601
+ */
602
+ AcCmColor.prototype.getColorNameByValue = function (target) {
603
+ var e_1, _a;
604
+ try {
605
+ for (var _b = __values(Object.entries(_colorKeywords)), _c = _b.next(); !_c.done; _c = _b.next()) {
606
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
607
+ if (value === target) {
608
+ return key;
609
+ }
610
+ }
611
+ }
612
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
613
+ finally {
614
+ try {
615
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
616
+ }
617
+ finally { if (e_1) throw e_1.error; }
618
+ }
619
+ return null;
620
+ };
621
+ /**
622
+ * Finds the AutoCAD color index associated with a given RGB value.
623
+ *
624
+ * @private
625
+ * @param {number} target - The RGB value to find an index for.
626
+ * @returns {number | null} The color index if found, null otherwise.
627
+ */
628
+ AcCmColor.prototype.getColorIndexByValue = function (target) {
629
+ var length = AUTO_CAD_COLOR_INDEX.length - 1;
630
+ for (var index = 1; index < length; ++index) {
631
+ if (AUTO_CAD_COLOR_INDEX[index] === target) {
632
+ return index;
633
+ }
634
+ }
635
+ return null;
636
+ };
637
+ AcCmColor.NAMES = _colorKeywords;
638
+ return AcCmColor;
639
+ }());
640
+ export { AcCmColor };
641
+ //# sourceMappingURL=AcCmColor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcCmColor.js","sourceRoot":"","sources":["../src/AcCmColor.ts"],"names":[],"mappings":"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"}