@design-core/core 0.0.7 → 50.1.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 (113) hide show
  1. package/.github/workflows/DesignCoreQA.yml +3 -0
  2. package/core/designCore.js +1 -1
  3. package/core/dimensions/alignedDimension.js +7 -7
  4. package/core/dimensions/angularDimension.js +32 -32
  5. package/core/dimensions/{baseCircularDimension.js → circularDimensionBase.js} +19 -19
  6. package/core/dimensions/diametricDimension.js +10 -10
  7. package/core/dimensions/dimension.js +42 -42
  8. package/core/dimensions/{baseDimension.js → dimensionBase.js} +17 -17
  9. package/core/dimensions/{baseLinearDimension.js → linearDimensionBase.js} +9 -9
  10. package/core/dimensions/radialDimension.js +8 -8
  11. package/core/dimensions/rotatedDimension.js +8 -8
  12. package/core/entities/arc.js +22 -22
  13. package/core/entities/arctext.js +13 -13
  14. package/core/entities/circle.js +7 -7
  15. package/core/entities/hatch.js +28 -28
  16. package/core/entities/insert.js +5 -5
  17. package/core/entities/point.js +19 -19
  18. package/core/entities/polyline.js +3 -3
  19. package/core/entities/{basePolyline.js → polylineBase.js} +18 -18
  20. package/core/entities/text.js +4 -4
  21. package/core/lib/boundingBox.js +11 -11
  22. package/core/lib/canvas.js +6 -4
  23. package/core/lib/clipboard.js +2 -2
  24. package/core/lib/dxf/dxf.js +11 -11
  25. package/core/lib/dxf/dxfIterator.js +2 -2
  26. package/core/lib/entityManager.js +19 -19
  27. package/core/lib/inputManager.js +1 -1
  28. package/core/lib/matrix.js +1 -1
  29. package/core/lib/patterns.js +1 -1
  30. package/core/lib/polylineUtils.js +9 -9
  31. package/core/lib/renderers/cairoRenderer.js +5 -5
  32. package/core/lib/renderers/canvasRenderer.js +4 -4
  33. package/core/lib/renderers/pdfRenderer.js +7 -7
  34. package/core/lib/renderers/rendererBase.js +1 -1
  35. package/core/lib/scene.js +1 -1
  36. package/core/lib/selectionManager.js +18 -18
  37. package/core/lib/utils.js +5 -5
  38. package/core/properties/property.js +1 -1
  39. package/core/properties/propertyManager.js +37 -37
  40. package/core/tables/block.js +48 -46
  41. package/core/tables/dimStyle.js +5 -5
  42. package/core/tables/ltypeManager.js +1 -1
  43. package/core/tables/vport.js +2 -2
  44. package/core/tools/chamfer.js +6 -6
  45. package/core/tools/chamferFilletBase.js +4 -4
  46. package/core/tools/copy.js +8 -8
  47. package/core/tools/copybase.js +3 -3
  48. package/core/tools/copyclip.js +3 -3
  49. package/core/tools/cornerEntity.js +2 -2
  50. package/core/tools/cutclip.js +3 -3
  51. package/core/tools/explode.js +6 -6
  52. package/core/tools/extend.js +13 -13
  53. package/core/tools/fillet.js +6 -6
  54. package/core/tools/matchProp.js +1 -1
  55. package/core/tools/mirror.js +11 -11
  56. package/core/tools/move.js +5 -5
  57. package/core/tools/offset.js +29 -29
  58. package/core/tools/purge.js +10 -10
  59. package/core/tools/rotate.js +16 -16
  60. package/core/tools/scale.js +6 -6
  61. package/core/tools/trim.js +15 -15
  62. package/cspell.json +321 -0
  63. package/package.json +1 -1
  64. package/test/dimensions/alignedDimension.test.js +3 -3
  65. package/test/dimensions/angularDimension.test.js +7 -7
  66. package/test/dimensions/diametricDimension.test.js +9 -9
  67. package/test/dimensions/dimension.test.js +12 -12
  68. package/test/dimensions/{baseDimension.test.js → dimensionBase.test.js} +12 -12
  69. package/test/dimensions/{baseLinearDimension.test.js → linearDimensionBase.test.js} +7 -7
  70. package/test/dimensions/radialDimension.test.js +9 -9
  71. package/test/dimensions/rotatedDimension.test.js +4 -4
  72. package/test/entities/arc.test.js +10 -10
  73. package/test/entities/arctext.test.js +6 -6
  74. package/test/entities/circle.test.js +18 -18
  75. package/test/entities/hatch.test.js +39 -39
  76. package/test/entities/insert.test.js +9 -9
  77. package/test/entities/point.test.js +3 -3
  78. package/test/entities/{basePolyline.test.js → polylineBase.test.js} +131 -62
  79. package/test/entities/text.test.js +19 -19
  80. package/test/integration/exportIntegration.test.js +3 -3
  81. package/test/integration/userInputIntegration.test.js +5 -5
  82. package/test/lib/boundingBox.test.js +3 -3
  83. package/test/lib/canvas.test.js +9 -9
  84. package/test/lib/inputManager.test.js +4 -4
  85. package/test/lib/scene.test.js +9 -9
  86. package/test/lib/selectionManager.test.js +3 -3
  87. package/test/lib/snapping.test.js +1 -1
  88. package/test/properties/propertyManager.test.js +22 -22
  89. package/test/renderers/pdfRenderer.test.js +2 -2
  90. package/test/tables/block.test.js +63 -14
  91. package/test/tables/layerManager.test.js +2 -2
  92. package/test/test-helpers/hatchGridRenderer.js +3 -3
  93. package/test/test-helpers/test-helpers.js +6 -6
  94. package/test/tools/chamfer.test.js +60 -60
  95. package/test/tools/chamferFilletBase.test.js +36 -36
  96. package/test/tools/copy.test.js +6 -6
  97. package/test/tools/copybase.test.js +2 -2
  98. package/test/tools/copyclip.test.js +2 -2
  99. package/test/tools/cornerEntity.test.js +8 -8
  100. package/test/tools/cutclip.test.js +2 -2
  101. package/test/tools/erase.test.js +6 -6
  102. package/test/tools/explode.test.js +2 -2
  103. package/test/tools/extend.test.js +84 -84
  104. package/test/tools/fillet.test.js +62 -62
  105. package/test/tools/matchProp.test.js +6 -6
  106. package/test/tools/mirror.test.js +26 -26
  107. package/test/tools/move.test.js +7 -7
  108. package/test/tools/offset.test.js +65 -65
  109. package/test/tools/purge.test.js +4 -4
  110. package/test/tools/rotate.test.js +10 -10
  111. package/test/tools/scale.test.js +28 -28
  112. package/test/tools/trim.test.js +109 -109
  113. package/test/tools/zoom.test.js +5 -5
@@ -43,7 +43,7 @@ test.each(inputScenarios)('Scale.execute handles $desc', async (scenario) => {
43
43
  core.scene.clear();
44
44
  core.scene.selectionManager.reset();
45
45
 
46
- core.scene.addItem('Line', { points });
46
+ core.scene.addEntity('Line', { points });
47
47
  core.scene.selectionManager.addToSelectionSet(0);
48
48
 
49
49
  const origInputManager = core.scene.inputManager;
@@ -76,7 +76,7 @@ test('Scale.execute - cancel at base point does not scale', async () => {
76
76
  core.scene.clear();
77
77
  core.scene.selectionManager.reset();
78
78
 
79
- core.scene.addItem('Line', { points: [new Point(10, 0), new Point(20, 0)] });
79
+ core.scene.addEntity('Line', { points: [new Point(10, 0), new Point(20, 0)] });
80
80
  core.scene.selectionManager.addToSelectionSet(0);
81
81
 
82
82
  const origInputManager = core.scene.inputManager;
@@ -100,7 +100,7 @@ test('Scale.execute - cancel at factor prompt does not scale', async () => {
100
100
  core.scene.clear();
101
101
  core.scene.selectionManager.reset();
102
102
 
103
- core.scene.addItem('Line', { points: [new Point(10, 0), new Point(20, 0)] });
103
+ core.scene.addEntity('Line', { points: [new Point(10, 0), new Point(20, 0)] });
104
104
  core.scene.selectionManager.addToSelectionSet(0);
105
105
 
106
106
  const origInputManager = core.scene.inputManager;
@@ -130,8 +130,8 @@ test('Scale.execute - entity count unchanged after execute', async () => {
130
130
  core.scene.clear();
131
131
  core.scene.selectionManager.reset();
132
132
 
133
- core.scene.addItem('Line', { points: [new Point(5, 0), new Point(10, 0)] });
134
- core.scene.addItem('Circle', { points: [new Point(5, 0), new Point(10, 0)] });
133
+ core.scene.addEntity('Line', { points: [new Point(5, 0), new Point(10, 0)] });
134
+ core.scene.addEntity('Circle', { points: [new Point(5, 0), new Point(10, 0)] });
135
135
 
136
136
  const entityCount = core.scene.entities.count();
137
137
 
@@ -165,11 +165,11 @@ test('Test Scale.action - scale by factor 2 from origin', () => {
165
165
  core.scene.clear();
166
166
  core.scene.selectionManager.reset();
167
167
 
168
- core.scene.addItem('Line', { points: [new Point(5, 0), new Point(10, 0)] });
169
- core.scene.addItem('Circle', { points: [new Point(5, 0), new Point(10, 0)] });
170
- core.scene.addItem('Polyline', { points: [new Point(5, 0), new Point(10, 0)] });
171
- core.scene.addItem('Arc', { points: [new Point(5, 0), new Point(10, 0), new Point(5, 5)] });
172
- core.scene.addItem('Rectangle', { points: [new Point(5, 0), new Point(10, 0)] });
168
+ core.scene.addEntity('Line', { points: [new Point(5, 0), new Point(10, 0)] });
169
+ core.scene.addEntity('Circle', { points: [new Point(5, 0), new Point(10, 0)] });
170
+ core.scene.addEntity('Polyline', { points: [new Point(5, 0), new Point(10, 0)] });
171
+ core.scene.addEntity('Arc', { points: [new Point(5, 0), new Point(10, 0), new Point(5, 5)] });
172
+ core.scene.addEntity('Rectangle', { points: [new Point(5, 0), new Point(10, 0)] });
173
173
 
174
174
  for (let i = 0; i < core.scene.entities.count(); i++) {
175
175
  core.scene.selectionManager.addToSelectionSet(i);
@@ -193,7 +193,7 @@ test('Test Scale.action - scale by factor 0.5 from origin', () => {
193
193
  core.scene.clear();
194
194
  core.scene.selectionManager.reset();
195
195
 
196
- core.scene.addItem('Line', { points: [new Point(10, 0), new Point(20, 0)] });
196
+ core.scene.addEntity('Line', { points: [new Point(10, 0), new Point(20, 0)] });
197
197
 
198
198
  core.scene.selectionManager.addToSelectionSet(0);
199
199
 
@@ -214,7 +214,7 @@ test('Test Scale.action - scale from offset base point', () => {
214
214
  core.scene.clear();
215
215
  core.scene.selectionManager.reset();
216
216
 
217
- core.scene.addItem('Line', { points: [new Point(10, 10), new Point(20, 10)] });
217
+ core.scene.addEntity('Line', { points: [new Point(10, 10), new Point(20, 10)] });
218
218
 
219
219
  core.scene.selectionManager.addToSelectionSet(0);
220
220
 
@@ -236,8 +236,8 @@ test('Test Scale.action - entity count unchanged (in-place update)', () => {
236
236
  core.scene.clear();
237
237
  core.scene.selectionManager.reset();
238
238
 
239
- core.scene.addItem('Line', { points: [new Point(5, 0), new Point(10, 0)] });
240
- core.scene.addItem('Circle', { points: [new Point(5, 0), new Point(10, 0)] });
239
+ core.scene.addEntity('Line', { points: [new Point(5, 0), new Point(10, 0)] });
240
+ core.scene.addEntity('Circle', { points: [new Point(5, 0), new Point(10, 0)] });
241
241
 
242
242
  const entityCount = core.scene.entities.count();
243
243
 
@@ -259,7 +259,7 @@ test('Test Scale.action - scale factor 1 leaves points unchanged', () => {
259
259
  core.scene.clear();
260
260
  core.scene.selectionManager.reset();
261
261
 
262
- core.scene.addItem('Line', { points: [new Point(10, 20), new Point(30, 40)] });
262
+ core.scene.addEntity('Line', { points: [new Point(10, 20), new Point(30, 40)] });
263
263
 
264
264
  core.scene.selectionManager.addToSelectionSet(0);
265
265
 
@@ -280,7 +280,7 @@ test('Test Scale.action - scale 2D point (non-axis-aligned)', () => {
280
280
  core.scene.clear();
281
281
  core.scene.selectionManager.reset();
282
282
 
283
- core.scene.addItem('Line', { points: [new Point(5, 5), new Point(10, 10)] });
283
+ core.scene.addEntity('Line', { points: [new Point(5, 5), new Point(10, 10)] });
284
284
 
285
285
  core.scene.selectionManager.addToSelectionSet(0);
286
286
 
@@ -301,7 +301,7 @@ test('Test Scale.action - empty selection does not throw', () => {
301
301
  core.scene.clear();
302
302
  core.scene.selectionManager.reset();
303
303
 
304
- core.scene.addItem('Line', { points: [new Point(5, 0), new Point(10, 0)] });
304
+ core.scene.addEntity('Line', { points: [new Point(5, 0), new Point(10, 0)] });
305
305
  // deliberately do not add anything to the selection set
306
306
 
307
307
  const scale = new Scale();
@@ -361,7 +361,7 @@ test('Scale.execute - requests selection set when none pre-selected', async () =
361
361
  core.scene.clear();
362
362
  core.scene.selectionManager.reset();
363
363
 
364
- core.scene.addItem('Line', { points: [new Point(10, 0), new Point(20, 0)] });
364
+ core.scene.addEntity('Line', { points: [new Point(10, 0), new Point(20, 0)] });
365
365
  // Intentionally do NOT add to selection set — triggers the SELECTIONSET prompt
366
366
 
367
367
  const origInputManager = core.scene.inputManager;
@@ -396,7 +396,7 @@ test('Scale.execute - reference with zero length returns without scaling', async
396
396
  core.scene.clear();
397
397
  core.scene.selectionManager.reset();
398
398
 
399
- core.scene.addItem('Line', { points: [new Point(10, 0), new Point(20, 0)] });
399
+ core.scene.addEntity('Line', { points: [new Point(10, 0), new Point(20, 0)] });
400
400
  core.scene.selectionManager.addToSelectionSet(0);
401
401
 
402
402
  const origInputManager = core.scene.inputManager;
@@ -431,7 +431,7 @@ test('Scale.preview - no points set, adds no temp entities', () => {
431
431
  core.scene.clear();
432
432
  core.scene.selectionManager.reset();
433
433
 
434
- core.scene.addItem('Line', { points: [new Point(5, 0), new Point(10, 0)] });
434
+ core.scene.addEntity('Line', { points: [new Point(5, 0), new Point(10, 0)] });
435
435
  core.scene.selectionManager.addToSelectionSet(0);
436
436
 
437
437
  const scale = new Scale();
@@ -445,7 +445,7 @@ test('Scale.preview - referencePoint set, suppresses preview', () => {
445
445
  core.scene.clear();
446
446
  core.scene.selectionManager.reset();
447
447
 
448
- core.scene.addItem('Line', { points: [new Point(5, 0), new Point(10, 0)] });
448
+ core.scene.addEntity('Line', { points: [new Point(5, 0), new Point(10, 0)] });
449
449
  core.scene.selectionManager.addToSelectionSet(0);
450
450
 
451
451
  const scale = new Scale();
@@ -461,7 +461,7 @@ test('Scale.preview - mouse on base point (distance 0), draws line but skips sca
461
461
  core.scene.clear();
462
462
  core.scene.selectionManager.reset();
463
463
 
464
- core.scene.addItem('Line', { points: [new Point(5, 0), new Point(10, 0)] });
464
+ core.scene.addEntity('Line', { points: [new Point(5, 0), new Point(10, 0)] });
465
465
  core.scene.selectionManager.addToSelectionSet(0);
466
466
 
467
467
  const scale = new Scale();
@@ -475,7 +475,7 @@ test('Scale.preview - mouse on base point (distance 0), draws line but skips sca
475
475
  expect(core.scene.previewEntities.count()).toBeGreaterThanOrEqual(1);
476
476
 
477
477
  // Selected item points should be unchanged (scaling skipped)
478
- const previewItem = core.scene.selectionManager.selectedItems[0];
478
+ const previewItem = core.scene.selectionManager.selectedEntities[0];
479
479
  expect(previewItem.points[0].x).toBeCloseTo(5);
480
480
  });
481
481
 
@@ -483,7 +483,7 @@ test('Scale.preview - one point set, draws temp line and scales selected items',
483
483
  core.scene.clear();
484
484
  core.scene.selectionManager.reset();
485
485
 
486
- core.scene.addItem('Line', { points: [new Point(1, 0), new Point(2, 0)] });
486
+ core.scene.addEntity('Line', { points: [new Point(1, 0), new Point(2, 0)] });
487
487
  core.scene.selectionManager.addToSelectionSet(0);
488
488
 
489
489
  const scale = new Scale();
@@ -497,7 +497,7 @@ test('Scale.preview - one point set, draws temp line and scales selected items',
497
497
  expect(core.scene.previewEntities.count()).toBeGreaterThanOrEqual(1);
498
498
 
499
499
  // Preview item should have been scaled (x differs from original 1.0)
500
- const previewItem = core.scene.selectionManager.selectedItems[0];
500
+ const previewItem = core.scene.selectionManager.selectedEntities[0];
501
501
  expect(previewItem.points[0].x).not.toBeCloseTo(1);
502
502
  });
503
503
 
@@ -506,7 +506,7 @@ test('Scale.preview - reference mode uses referenceLength to compute factor', ()
506
506
  core.scene.selectionManager.reset();
507
507
 
508
508
  // Line at x=10..20, y=0
509
- core.scene.addItem('Line', { points: [new Point(10, 0), new Point(20, 0)] });
509
+ core.scene.addEntity('Line', { points: [new Point(10, 0), new Point(20, 0)] });
510
510
  core.scene.selectionManager.addToSelectionSet(0);
511
511
 
512
512
  const scale = new Scale();
@@ -516,7 +516,7 @@ test('Scale.preview - reference mode uses referenceLength to compute factor', ()
516
516
 
517
517
  // The default mouse scene position will give some distance from (0,0).
518
518
  // We can't control the mouse, so just verify the factor applied is
519
- // distance/referenceLength rather than raw distance: reload the selectedItems
519
+ // distance/referenceLength rather than raw distance: reload the selectedEntities
520
520
  // before and after with a known referenceLength to confirm scaling occurred.
521
521
  scale.preview();
522
522
 
@@ -524,6 +524,6 @@ test('Scale.preview - reference mode uses referenceLength to compute factor', ()
524
524
 
525
525
  // The preview item's first point should differ from the original (10,0)
526
526
  // because the factor (distance/10) is applied
527
- const previewItem = core.scene.selectionManager.selectedItems[0];
527
+ const previewItem = core.scene.selectionManager.selectedEntities[0];
528
528
  expect(previewItem.points[0].x).not.toBeCloseTo(10);
529
529
  });