@design-core/core 0.0.7 → 51.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.
- package/.github/workflows/DesignCoreQA.yml +3 -0
- package/core/designCore.js +1 -1
- package/core/dimensions/alignedDimension.js +7 -7
- package/core/dimensions/angularDimension.js +32 -32
- package/core/dimensions/{baseCircularDimension.js → circularDimensionBase.js} +19 -19
- package/core/dimensions/diametricDimension.js +10 -10
- package/core/dimensions/dimension.js +42 -42
- package/core/dimensions/{baseDimension.js → dimensionBase.js} +17 -17
- package/core/dimensions/{baseLinearDimension.js → linearDimensionBase.js} +9 -9
- package/core/dimensions/radialDimension.js +8 -8
- package/core/dimensions/rotatedDimension.js +8 -8
- package/core/entities/arc.js +22 -22
- package/core/entities/arctext.js +13 -13
- package/core/entities/circle.js +7 -7
- package/core/entities/hatch.js +210 -40
- package/core/entities/insert.js +11 -6
- package/core/entities/point.js +19 -19
- package/core/entities/polyline.js +3 -3
- package/core/entities/{basePolyline.js → polylineBase.js} +18 -18
- package/core/entities/text.js +4 -4
- package/core/lib/boundingBox.js +11 -11
- package/core/lib/canvas.js +13 -6
- package/core/lib/clipboard.js +2 -2
- package/core/lib/dxf/dxf.js +11 -11
- package/core/lib/dxf/dxfIterator.js +2 -2
- package/core/lib/entityManager.js +19 -19
- package/core/lib/inputManager.js +1 -1
- package/core/lib/matrix.js +1 -1
- package/core/lib/patterns.js +1 -1
- package/core/lib/polylineUtils.js +9 -9
- package/core/lib/renderers/cairoRenderer.js +5 -5
- package/core/lib/renderers/canvasRenderer.js +4 -4
- package/core/lib/renderers/pdfRenderer.js +7 -7
- package/core/lib/renderers/rendererBase.js +1 -1
- package/core/lib/scene.js +1 -1
- package/core/lib/selectionManager.js +18 -18
- package/core/lib/utils.js +5 -5
- package/core/properties/entityProperties.js +2 -1
- package/core/properties/flags.js +12 -0
- package/core/properties/property.js +8 -3
- package/core/properties/propertyManager.js +52 -37
- package/core/tables/block.js +50 -46
- package/core/tables/dimStyle.js +5 -5
- package/core/tables/ltypeManager.js +1 -1
- package/core/tables/vport.js +2 -2
- package/core/tools/chamfer.js +6 -6
- package/core/tools/chamferFilletBase.js +4 -4
- package/core/tools/copy.js +8 -8
- package/core/tools/copybase.js +3 -3
- package/core/tools/copyclip.js +3 -3
- package/core/tools/cornerEntity.js +2 -2
- package/core/tools/cutclip.js +3 -3
- package/core/tools/explode.js +6 -6
- package/core/tools/extend.js +13 -13
- package/core/tools/fillet.js +6 -6
- package/core/tools/matchProp.js +1 -1
- package/core/tools/mirror.js +11 -11
- package/core/tools/move.js +5 -5
- package/core/tools/offset.js +29 -29
- package/core/tools/purge.js +10 -10
- package/core/tools/rotate.js +16 -16
- package/core/tools/scale.js +6 -6
- package/core/tools/trim.js +15 -15
- package/cspell.json +323 -0
- package/package.json +1 -1
- package/test/dimensions/alignedDimension.test.js +3 -3
- package/test/dimensions/angularDimension.test.js +7 -7
- package/test/dimensions/diametricDimension.test.js +9 -9
- package/test/dimensions/dimension.test.js +12 -12
- package/test/dimensions/{baseDimension.test.js → dimensionBase.test.js} +12 -12
- package/test/dimensions/{baseLinearDimension.test.js → linearDimensionBase.test.js} +7 -7
- package/test/dimensions/radialDimension.test.js +9 -9
- package/test/dimensions/rotatedDimension.test.js +4 -4
- package/test/entities/arc.test.js +10 -10
- package/test/entities/arctext.test.js +6 -6
- package/test/entities/circle.test.js +18 -18
- package/test/entities/hatch.test.js +362 -39
- package/test/entities/insert.test.js +9 -9
- package/test/entities/point.test.js +3 -3
- package/test/entities/{basePolyline.test.js → polylineBase.test.js} +131 -62
- package/test/entities/text.test.js +19 -19
- package/test/integration/exportIntegration.test.js +3 -3
- package/test/integration/userInputIntegration.test.js +5 -5
- package/test/lib/boundingBox.test.js +3 -3
- package/test/lib/canvas.test.js +9 -9
- package/test/lib/clipboard.test.js +73 -0
- package/test/lib/inputManager.test.js +4 -4
- package/test/lib/scene.test.js +9 -9
- package/test/lib/selectionManager.test.js +3 -3
- package/test/lib/snapping.test.js +1 -1
- package/test/properties/flags.test.js +24 -0
- package/test/properties/propertyManager.test.js +93 -22
- package/test/renderers/pdfRenderer.test.js +2 -2
- package/test/tables/block.test.js +63 -14
- package/test/tables/layerManager.test.js +2 -2
- package/test/test-helpers/hatchGridRenderer.js +3 -3
- package/test/test-helpers/test-helpers.js +6 -6
- package/test/tools/chamfer.test.js +60 -60
- package/test/tools/chamferFilletBase.test.js +36 -36
- package/test/tools/copy.test.js +6 -6
- package/test/tools/copybase.test.js +2 -2
- package/test/tools/copyclip.test.js +2 -2
- package/test/tools/cornerEntity.test.js +8 -8
- package/test/tools/cutclip.test.js +2 -2
- package/test/tools/erase.test.js +6 -6
- package/test/tools/explode.test.js +2 -2
- package/test/tools/extend.test.js +84 -84
- package/test/tools/fillet.test.js +62 -62
- package/test/tools/matchProp.test.js +6 -6
- package/test/tools/mirror.test.js +26 -26
- package/test/tools/move.test.js +7 -7
- package/test/tools/offset.test.js +65 -65
- package/test/tools/purge.test.js +4 -4
- package/test/tools/rotate.test.js +10 -10
- package/test/tools/scale.test.js +28 -28
- package/test/tools/trim.test.js +109 -109
- package/test/tools/zoom.test.js +15 -17
package/test/tools/scale.test.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
134
|
-
core.scene.
|
|
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.
|
|
169
|
-
core.scene.
|
|
170
|
-
core.scene.
|
|
171
|
-
core.scene.
|
|
172
|
-
core.scene.
|
|
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.
|
|
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.
|
|
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.
|
|
240
|
-
core.scene.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
527
|
+
const previewItem = core.scene.selectionManager.selectedEntities[0];
|
|
528
528
|
expect(previewItem.points[0].x).not.toBeCloseTo(10);
|
|
529
529
|
});
|