@bill_nee/dwg-reader 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +615 -0
  2. package/cordis.patch.yml +3 -0
  3. package/icon.svg +15 -0
  4. package/lib/index.js +355 -0
  5. package/locale/en.json +6 -0
  6. package/locale/zh.json +6 -0
  7. package/package.json +32 -4
  8. package/vendor/libredwg-web/lib/converter/converter.js +1102 -0
  9. package/vendor/libredwg-web/lib/converter/dwgColorToMLeaderRawColor.js +55 -0
  10. package/vendor/libredwg-web/lib/converter/entityConverter.js +2050 -0
  11. package/vendor/libredwg-web/lib/converter/index.js +3 -0
  12. package/vendor/libredwg-web/lib/converter/utils.js +46 -0
  13. package/vendor/libredwg-web/lib/database/classes/class.js +2 -0
  14. package/vendor/libredwg-web/lib/database/classes/index.js +2 -0
  15. package/vendor/libredwg-web/lib/database/codepage.js +101 -0
  16. package/vendor/libredwg-web/lib/database/common.js +2 -0
  17. package/vendor/libredwg-web/lib/database/database.js +2 -0
  18. package/vendor/libredwg-web/lib/database/entities/3dface.js +2 -0
  19. package/vendor/libredwg-web/lib/database/entities/arc.js +2 -0
  20. package/vendor/libredwg-web/lib/database/entities/arcAlignedText.js +2 -0
  21. package/vendor/libredwg-web/lib/database/entities/attdef.js +2 -0
  22. package/vendor/libredwg-web/lib/database/entities/attrib.js +2 -0
  23. package/vendor/libredwg-web/lib/database/entities/circle.js +2 -0
  24. package/vendor/libredwg-web/lib/database/entities/dimension.js +70 -0
  25. package/vendor/libredwg-web/lib/database/entities/ellipse.js +2 -0
  26. package/vendor/libredwg-web/lib/database/entities/entity.js +2 -0
  27. package/vendor/libredwg-web/lib/database/entities/hatch.js +54 -0
  28. package/vendor/libredwg-web/lib/database/entities/image.js +2 -0
  29. package/vendor/libredwg-web/lib/database/entities/index.js +38 -0
  30. package/vendor/libredwg-web/lib/database/entities/insert.js +2 -0
  31. package/vendor/libredwg-web/lib/database/entities/leader.js +2 -0
  32. package/vendor/libredwg-web/lib/database/entities/line.js +2 -0
  33. package/vendor/libredwg-web/lib/database/entities/lwpolyline.js +2 -0
  34. package/vendor/libredwg-web/lib/database/entities/mline.js +2 -0
  35. package/vendor/libredwg-web/lib/database/entities/mtext.js +2 -0
  36. package/vendor/libredwg-web/lib/database/entities/multileader.js +2 -0
  37. package/vendor/libredwg-web/lib/database/entities/ole2frame.js +2 -0
  38. package/vendor/libredwg-web/lib/database/entities/oleframe.js +2 -0
  39. package/vendor/libredwg-web/lib/database/entities/point.js +2 -0
  40. package/vendor/libredwg-web/lib/database/entities/polyline.js +19 -0
  41. package/vendor/libredwg-web/lib/database/entities/proxy.js +10 -0
  42. package/vendor/libredwg-web/lib/database/entities/ray.js +2 -0
  43. package/vendor/libredwg-web/lib/database/entities/section.js +2 -0
  44. package/vendor/libredwg-web/lib/database/entities/shape.js +2 -0
  45. package/vendor/libredwg-web/lib/database/entities/solid.js +2 -0
  46. package/vendor/libredwg-web/lib/database/entities/solid3d.js +2 -0
  47. package/vendor/libredwg-web/lib/database/entities/spline.js +2 -0
  48. package/vendor/libredwg-web/lib/database/entities/table.js +2 -0
  49. package/vendor/libredwg-web/lib/database/entities/text.js +23 -0
  50. package/vendor/libredwg-web/lib/database/entities/tolerance.js +2 -0
  51. package/vendor/libredwg-web/lib/database/entities/trace.js +2 -0
  52. package/vendor/libredwg-web/lib/database/entities/vertex.js +2 -0
  53. package/vendor/libredwg-web/lib/database/entities/viewport.js +2 -0
  54. package/vendor/libredwg-web/lib/database/entities/wipeout.js +2 -0
  55. package/vendor/libredwg-web/lib/database/entities/xline.js +2 -0
  56. package/vendor/libredwg-web/lib/database/header/header.js +2 -0
  57. package/vendor/libredwg-web/lib/database/header/index.js +3 -0
  58. package/vendor/libredwg-web/lib/database/header/variables.js +217 -0
  59. package/vendor/libredwg-web/lib/database/index.js +12 -0
  60. package/vendor/libredwg-web/lib/database/objects/common.js +2 -0
  61. package/vendor/libredwg-web/lib/database/objects/dictionary.js +19 -0
  62. package/vendor/libredwg-web/lib/database/objects/imageDef.js +2 -0
  63. package/vendor/libredwg-web/lib/database/objects/index.js +11 -0
  64. package/vendor/libredwg-web/lib/database/objects/layerFilter.js +2 -0
  65. package/vendor/libredwg-web/lib/database/objects/layerIndex.js +2 -0
  66. package/vendor/libredwg-web/lib/database/objects/layout.js +2 -0
  67. package/vendor/libredwg-web/lib/database/objects/mleaderStyle.js +2 -0
  68. package/vendor/libredwg-web/lib/database/objects/plotSetting.js +2 -0
  69. package/vendor/libredwg-web/lib/database/objects/spatialFilter.js +2 -0
  70. package/vendor/libredwg-web/lib/database/objects/xrecord.js +2 -0
  71. package/vendor/libredwg-web/lib/database/shared/index.js +2 -0
  72. package/vendor/libredwg-web/lib/database/shared/xdata.js +2 -0
  73. package/vendor/libredwg-web/lib/database/tables/appId.js +2 -0
  74. package/vendor/libredwg-web/lib/database/tables/blockRecord.js +2 -0
  75. package/vendor/libredwg-web/lib/database/tables/dimStyle.js +2 -0
  76. package/vendor/libredwg-web/lib/database/tables/index.js +9 -0
  77. package/vendor/libredwg-web/lib/database/tables/layer.js +2 -0
  78. package/vendor/libredwg-web/lib/database/tables/ltype.js +2 -0
  79. package/vendor/libredwg-web/lib/database/tables/style.js +2 -0
  80. package/vendor/libredwg-web/lib/database/tables/table.js +2 -0
  81. package/vendor/libredwg-web/lib/database/tables/vport.js +2 -0
  82. package/vendor/libredwg-web/lib/database/textEscapes.js +19 -0
  83. package/vendor/libredwg-web/lib/database/version.js +260 -0
  84. package/vendor/libredwg-web/lib/index.js +4 -0
  85. package/vendor/libredwg-web/lib/libredwg.js +1271 -0
  86. package/vendor/libredwg-web/lib/svg/box2d.js +104 -0
  87. package/vendor/libredwg-web/lib/svg/bspline.js +95 -0
  88. package/vendor/libredwg-web/lib/svg/color.js +371 -0
  89. package/vendor/libredwg-web/lib/svg/index.js +2 -0
  90. package/vendor/libredwg-web/lib/svg/polyline.js +70 -0
  91. package/vendor/libredwg-web/lib/svg/svgConverter.js +540 -0
  92. package/vendor/libredwg-web/lib/svg/transformBoundingBoxAndElement.js +20 -0
  93. package/vendor/libredwg-web/lib/svg/vector.js +27 -0
  94. package/vendor/libredwg-web/lib/types/common.js +2 -0
  95. package/vendor/libredwg-web/lib/types/enums.js +390 -0
  96. package/vendor/libredwg-web/lib/types/index.js +3 -0
  97. package/vendor/libredwg-web/wasm/libredwg-web.js +2 -0
  98. package/vendor/libredwg-web/wasm/libredwg-web.wasm +0 -0
  99. package/README.md +0 -3
@@ -0,0 +1,55 @@
1
+ import { Dwg_Color_Method } from '../types/index.js';
2
+ /** MLEADER / MLEADERSTYLE packed raw-color type flags (DXF high byte). */
3
+ const RAW_COLOR_TYPE_BY_LAYER = 0xc0;
4
+ const RAW_COLOR_TYPE_BY_BLOCK = 0xc1;
5
+ const RAW_COLOR_TYPE_RGB = 0xc2;
6
+ const RAW_COLOR_TYPE_ACI = 0xc3;
7
+ const RAW_COLOR_TYPE_WINDOW_BG = 0xc8;
8
+ /**
9
+ * Converts a libredwg {@link Dwg_Color} (CMC) to the DXF MLEADER raw-color int32
10
+ * used by group codes 91/92/93/94 and {@link decodeMLeaderStyleRawColor}.
11
+ *
12
+ * Libredwg stores MLeader component colors as packed int32 in {@link Dwg_Color.rgb}
13
+ * with {@link Dwg_Color.method} mirroring the high-byte type flag (0xC0..0xC8).
14
+ */
15
+ export function dwgColorToMLeaderRawColor(color) {
16
+ if (color == null)
17
+ return undefined;
18
+ const methodNum = color.method;
19
+ const method = color.method != null && methodNum !== 0
20
+ ? methodNum
21
+ : ((color.rgb >>> 24) & 0xff);
22
+ const index = color.index;
23
+ if (color.rgb != null &&
24
+ method >= RAW_COLOR_TYPE_BY_LAYER &&
25
+ method <= RAW_COLOR_TYPE_WINDOW_BG &&
26
+ ((color.rgb >>> 24) & 0xff) === method) {
27
+ return color.rgb >> 0;
28
+ }
29
+ if (method === Dwg_Color_Method.ByLayer || index === 256) {
30
+ return (RAW_COLOR_TYPE_BY_LAYER << 24) >> 0;
31
+ }
32
+ if (method === Dwg_Color_Method.ByBlock || index === 0) {
33
+ return (RAW_COLOR_TYPE_BY_BLOCK << 24) >> 0;
34
+ }
35
+ if (method === Dwg_Color_Method.None) {
36
+ return (RAW_COLOR_TYPE_WINDOW_BG << 24) >> 0;
37
+ }
38
+ if (method === Dwg_Color_Method.TrueColor) {
39
+ const rgb = color.rgb != null ? color.rgb & 0xffffff : undefined;
40
+ if (rgb != null) {
41
+ return ((RAW_COLOR_TYPE_RGB << 24) | rgb) >> 0;
42
+ }
43
+ }
44
+ if (method === Dwg_Color_Method.ForegroundColor) {
45
+ return ((RAW_COLOR_TYPE_ACI << 24) | 7) >> 0;
46
+ }
47
+ if (method === Dwg_Color_Method.Entities && index > 0 && index < 256) {
48
+ return ((RAW_COLOR_TYPE_ACI << 24) | (index & 0xff)) >> 0;
49
+ }
50
+ if (index > 0 && index < 256) {
51
+ return ((RAW_COLOR_TYPE_ACI << 24) | (index & 0xff)) >> 0;
52
+ }
53
+ return (RAW_COLOR_TYPE_BY_BLOCK << 24) >> 0;
54
+ }
55
+ //# sourceMappingURL=dwgColorToMLeaderRawColor.js.map