@things-factory/figure-ui 10.1.65 → 10.1.67
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/client/graphql/index.ts +0 -45
- package/client/modeller/figure-history-panel.ts +6 -145
- package/client/modeller/figure-v3-capability.ts +2 -2
- package/client/modeller/figure-v3-clips.ts +2 -2
- package/client/modeller/figure-v3-controls.ts +2 -2
- package/client/modeller/figure-v3-first-save.ts +1 -1
- package/client/modeller/figure-v3-links.ts +6 -6
- package/client/modeller/figure-v3-material.ts +11 -11
- package/client/modeller/figure-v3-parts.ts +7 -10
- package/client/modeller/figure-v3-preview.ts +3 -3
- package/client/modeller/figure-v3-properties.ts +5 -6
- package/client/modeller/figure-v3-verdict.ts +9 -10
- package/client/modeller/figure-view.ts +2 -3
- package/client/modeller/modeller-route.ts +2 -3
- package/client/modeller/scene-budget.ts +0 -14
- package/client/modeller/side-panel-styles.ts +5 -5
- package/client/modeller/v3-align.ts +16 -6
- package/client/modeller/v3-canvas.ts +12 -12
- package/client/modeller/v3-clips.ts +1 -1
- package/client/modeller/v3-controls.ts +1 -1
- package/client/modeller/v3-editor.ts +21 -21
- package/client/modeller/v3-fields.ts +1 -1
- package/client/modeller/v3-figure-facts.ts +1 -1
- package/client/modeller/v3-first-save.ts +3 -4
- package/client/modeller/v3-gizmo.ts +5 -5
- package/client/modeller/v3-help.ts +1 -1
- package/client/modeller/v3-joint-fan.ts +4 -5
- package/client/modeller/v3-keys.ts +1 -1
- package/client/modeller/v3-links.ts +9 -12
- package/client/modeller/v3-maturity.ts +22 -26
- package/client/modeller/v3-refusals.ts +17 -0
- package/client/modeller/v3-renderer.ts +1 -1
- package/client/modeller/v3-stage-model.ts +2 -2
- package/client/modeller/v3-thumbnail.ts +1 -3
- package/client/pages/figure-v3-modeller-page.ts +8 -11
- package/client/types.ts +2 -31
- package/dist-client/graphql/index.js +0 -45
- package/dist-client/graphql/index.js.map +1 -1
- package/dist-client/modeller/figure-history-panel.d.ts +4 -37
- package/dist-client/modeller/figure-history-panel.js +8 -154
- package/dist-client/modeller/figure-history-panel.js.map +1 -1
- package/dist-client/modeller/figure-v3-capability.d.ts +1 -1
- package/dist-client/modeller/figure-v3-capability.js +1 -1
- package/dist-client/modeller/figure-v3-capability.js.map +1 -1
- package/dist-client/modeller/figure-v3-clips.d.ts +2 -2
- package/dist-client/modeller/figure-v3-clips.js +2 -2
- package/dist-client/modeller/figure-v3-clips.js.map +1 -1
- package/dist-client/modeller/figure-v3-controls.d.ts +1 -1
- package/dist-client/modeller/figure-v3-controls.js +2 -2
- package/dist-client/modeller/figure-v3-controls.js.map +1 -1
- package/dist-client/modeller/figure-v3-first-save.d.ts +1 -1
- package/dist-client/modeller/figure-v3-first-save.js +1 -1
- package/dist-client/modeller/figure-v3-first-save.js.map +1 -1
- package/dist-client/modeller/figure-v3-links.d.ts +5 -5
- package/dist-client/modeller/figure-v3-links.js +6 -6
- package/dist-client/modeller/figure-v3-links.js.map +1 -1
- package/dist-client/modeller/figure-v3-material.d.ts +6 -6
- package/dist-client/modeller/figure-v3-material.js +11 -11
- package/dist-client/modeller/figure-v3-material.js.map +1 -1
- package/dist-client/modeller/figure-v3-parts.d.ts +6 -8
- package/dist-client/modeller/figure-v3-parts.js +1 -1
- package/dist-client/modeller/figure-v3-parts.js.map +1 -1
- package/dist-client/modeller/figure-v3-preview.js.map +1 -1
- package/dist-client/modeller/figure-v3-properties.d.ts +4 -5
- package/dist-client/modeller/figure-v3-properties.js +5 -6
- package/dist-client/modeller/figure-v3-properties.js.map +1 -1
- package/dist-client/modeller/figure-v3-verdict.d.ts +2 -2
- package/dist-client/modeller/figure-v3-verdict.js +9 -10
- package/dist-client/modeller/figure-v3-verdict.js.map +1 -1
- package/dist-client/modeller/figure-view.d.ts +2 -3
- package/dist-client/modeller/figure-view.js.map +1 -1
- package/dist-client/modeller/modeller-route.d.ts +2 -3
- package/dist-client/modeller/modeller-route.js +2 -3
- package/dist-client/modeller/modeller-route.js.map +1 -1
- package/dist-client/modeller/scene-budget.d.ts +0 -11
- package/dist-client/modeller/scene-budget.js +0 -12
- package/dist-client/modeller/scene-budget.js.map +1 -1
- package/dist-client/modeller/side-panel-styles.d.ts +2 -2
- package/dist-client/modeller/side-panel-styles.js +5 -5
- package/dist-client/modeller/side-panel-styles.js.map +1 -1
- package/dist-client/modeller/v3-align.d.ts +9 -5
- package/dist-client/modeller/v3-align.js +13 -3
- package/dist-client/modeller/v3-align.js.map +1 -1
- package/dist-client/modeller/v3-canvas.d.ts +4 -4
- package/dist-client/modeller/v3-canvas.js +9 -9
- package/dist-client/modeller/v3-canvas.js.map +1 -1
- package/dist-client/modeller/v3-clips.js.map +1 -1
- package/dist-client/modeller/v3-controls.js.map +1 -1
- package/dist-client/modeller/v3-editor.d.ts +13 -13
- package/dist-client/modeller/v3-editor.js +19 -18
- package/dist-client/modeller/v3-editor.js.map +1 -1
- package/dist-client/modeller/v3-fields.js.map +1 -1
- package/dist-client/modeller/v3-figure-facts.d.ts +1 -1
- package/dist-client/modeller/v3-figure-facts.js +1 -1
- package/dist-client/modeller/v3-figure-facts.js.map +1 -1
- package/dist-client/modeller/v3-first-save.js +3 -4
- package/dist-client/modeller/v3-first-save.js.map +1 -1
- package/dist-client/modeller/v3-gizmo.d.ts +5 -5
- package/dist-client/modeller/v3-gizmo.js +1 -1
- package/dist-client/modeller/v3-gizmo.js.map +1 -1
- package/dist-client/modeller/v3-help.d.ts +1 -1
- package/dist-client/modeller/v3-help.js +1 -1
- package/dist-client/modeller/v3-help.js.map +1 -1
- package/dist-client/modeller/v3-joint-fan.js +4 -5
- package/dist-client/modeller/v3-joint-fan.js.map +1 -1
- package/dist-client/modeller/v3-keys.js.map +1 -1
- package/dist-client/modeller/v3-links.d.ts +5 -7
- package/dist-client/modeller/v3-links.js +6 -8
- package/dist-client/modeller/v3-links.js.map +1 -1
- package/dist-client/modeller/v3-maturity.d.ts +7 -7
- package/dist-client/modeller/v3-maturity.js +20 -24
- package/dist-client/modeller/v3-maturity.js.map +1 -1
- package/dist-client/modeller/v3-refusals.d.ts +6 -0
- package/dist-client/modeller/v3-refusals.js +18 -0
- package/dist-client/modeller/v3-refusals.js.map +1 -1
- package/dist-client/modeller/v3-renderer.js +1 -1
- package/dist-client/modeller/v3-renderer.js.map +1 -1
- package/dist-client/modeller/v3-stage-model.js.map +1 -1
- package/dist-client/modeller/v3-thumbnail.js +1 -3
- package/dist-client/modeller/v3-thumbnail.js.map +1 -1
- package/dist-client/pages/figure-v3-modeller-page.d.ts +4 -5
- package/dist-client/pages/figure-v3-modeller-page.js +8 -11
- package/dist-client/pages/figure-v3-modeller-page.js.map +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/tsconfig.fui.tsbuildinfo +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/types.d.ts +2 -29
- package/dist-client/types.js +3 -0
- package/dist-client/types.js.map +1 -1
- package/docs/v3-product-cutover.md +14 -24
- package/package.json +5 -5
- package/test/browser/modeller-page.js +6 -7
- package/test/browser/modeller.check.mjs +9 -16
- package/test/fixtures/joint-column.json +1138 -0
- package/test/fixtures/joint-roller.json +872 -0
- package/test/fixtures/robot-arm-6dof.json +2776 -0
- package/test/i18n-prefix-guard.test.ts +0 -31
- package/test/modeller-route.test.ts +2 -3
- package/test/v3-align.test.ts +9 -4
- package/test/v3-clips.test.ts +1 -1
- package/test/v3-controls.test.ts +1 -1
- package/test/v3-fields.test.ts +4 -4
- package/test/v3-first-save.test.ts +1 -1
- package/test/v3-gizmo.test.ts +5 -5
- package/test/v3-joint-fan.test.ts +12 -42
- package/test/v3-keys.test.ts +1 -1
- package/test/v3-layout.test.ts +4 -5
- package/test/v3-links.test.ts +3 -3
- package/test/v3-material.test.ts +3 -3
- package/test/v3-maturity.test.ts +8 -9
- package/test/v3-parts-wiring.test.ts +3 -3
- package/test/v3-preview.test.ts +1 -1
- package/test/v3-product-write.test.ts +1 -1
- package/test/v3-properties.test.ts +3 -3
- package/test/v3-refusals.test.ts +12 -0
- package/test/v3-release-panel.test.ts +5 -5
- package/test/v3-scene-canvas.test.ts +2 -2
- package/test/v3-theme.test.ts +2 -2
- package/test/v3-verdict.test.ts +2 -2
- package/test/v3-view.test.ts +2 -2
- package/translations/en.json +2 -143
- package/translations/ja.json +2 -143
- package/translations/ko.json +2 -143
- package/translations/ms.json +2 -143
- package/translations/zh.json +2 -143
- package/client/modeller/figure-source.ts +0 -437
- package/client/modeller/part-edits.ts +0 -312
- package/dist-client/modeller/figure-source.d.ts +0 -238
- package/dist-client/modeller/figure-source.js +0 -193
- package/dist-client/modeller/figure-source.js.map +0 -1
- package/dist-client/modeller/part-edits.d.ts +0 -89
- package/dist-client/modeller/part-edits.js +0 -270
- package/dist-client/modeller/part-edits.js.map +0 -1
- package/test/expect.ts +0 -57
- package/test/figure-source.test.ts +0 -511
- package/test/part-edits.test.ts +0 -350
|
@@ -26,7 +26,7 @@ import { ScrollbarStyles } from '@operato/styles';
|
|
|
26
26
|
import { alignChanges, boxOf, canMirror, mirrorChanges } from './v3-align.js';
|
|
27
27
|
import { paletteRecipe } from './v3-palette.js';
|
|
28
28
|
import { nudgeOf } from './v3-stage-model.js';
|
|
29
|
-
import { inDeclaredRoom, narrowingRetryOf, partRefusalOf, placementRefusalOf, sizeRangeRefusalOf } from './v3-refusals.js';
|
|
29
|
+
import { inDeclaredRoom, inputRangeRefusalOf, narrowingRetryOf, partRefusalOf, placementRefusalOf, sizeRangeRefusalOf } from './v3-refusals.js';
|
|
30
30
|
import { instanceRangeOf, instanceRangeToDeclare, proportionToFollow, rangeDiffers, rangeWith, turnsAboutAJoint, valueNow } from './v3-links.js';
|
|
31
31
|
import { jointFanOf } from './v3-joint-fan.js';
|
|
32
32
|
import { jointDragOf } from './v3-joint-drag.js';
|
|
@@ -39,16 +39,16 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
39
39
|
this.selected = '';
|
|
40
40
|
this.error = '';
|
|
41
41
|
this.tab = 'properties';
|
|
42
|
-
/** What the middle shows: the parts being edited, or the figure placed on a board at eight sizes
|
|
42
|
+
/** What the middle shows: the parts being edited, or the figure placed on a board at eight sizes. */
|
|
43
43
|
this.middle = 'edit';
|
|
44
44
|
/**
|
|
45
|
-
* How the workbench shows the figure
|
|
45
|
+
* How the workbench shows the figure, in the board's own state names. The viewer's, kept in
|
|
46
46
|
* their browser, never in the figure.
|
|
47
47
|
*/
|
|
48
48
|
this.view = FigureV3Editor_1.storedView();
|
|
49
49
|
/**
|
|
50
|
-
* Parts hidden on the workbench — the author's view while working, not the asset's visibility. Not saved
|
|
51
|
-
*
|
|
50
|
+
* Parts hidden on the workbench — the author's view while working, not the asset's visibility. Not saved: a part
|
|
51
|
+
* hidden here is still in the figure, still checked, still drawn on a board.
|
|
52
52
|
*/
|
|
53
53
|
this.hiddenParts = new Set();
|
|
54
54
|
/** A value in hand -- typed, held on a spinner, scrubbed, dragged -- drawn at once and recorded on release. */
|
|
@@ -68,7 +68,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
68
68
|
/*
|
|
69
69
|
The session's history is the only one. With the canvas focused the scene took Ctrl+Z as well, undoing on its own
|
|
70
70
|
board the last value the canvas had written -- which the canvas then told as a drag: an undo of a drag on a
|
|
71
|
-
|
|
71
|
+
part placed by a rule wrote the drag again (2026-09-25). Heard first (capture) and kept from the scene.
|
|
72
72
|
*/
|
|
73
73
|
e.stopPropagation();
|
|
74
74
|
if (action === 'translate' || action === 'rotate' || action === 'scale')
|
|
@@ -143,7 +143,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
143
143
|
min-width: 0;
|
|
144
144
|
min-height: 0;
|
|
145
145
|
}
|
|
146
|
-
/* The side: tabs over one panel at a time, each using the whole height
|
|
146
|
+
/* The side: tabs over one panel at a time, each using the whole height. */
|
|
147
147
|
aside {
|
|
148
148
|
display: flex;
|
|
149
149
|
flex-direction: column;
|
|
@@ -307,7 +307,8 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
307
307
|
this.changed();
|
|
308
308
|
}
|
|
309
309
|
catch (error) {
|
|
310
|
-
|
|
310
|
+
const say = (key, params) => i18next.t(key, params);
|
|
311
|
+
this.error = sizeRangeRefusalOf(error, say) ?? inputRangeRefusalOf(error, say) ?? (error instanceof Error ? error.message : String(error));
|
|
311
312
|
}
|
|
312
313
|
finally {
|
|
313
314
|
/* Committed or refused, the value in hand is gone: the figure as it stands is drawn again. */
|
|
@@ -400,7 +401,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
400
401
|
}
|
|
401
402
|
/**
|
|
402
403
|
* The list's own operations, as V3 part edits — each one step of the session's history. The copy and the moved
|
|
403
|
-
* part stay selected
|
|
404
|
+
* part stay selected.
|
|
404
405
|
*/
|
|
405
406
|
duplicatePart(id) {
|
|
406
407
|
this.run(() => {
|
|
@@ -487,7 +488,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
487
488
|
return this.requestUpdate();
|
|
488
489
|
}
|
|
489
490
|
/*
|
|
490
|
-
A part whose place is worked out
|
|
491
|
+
A part whose place is worked out has no numbers for the gizmo to write: the drag is added beside
|
|
491
492
|
its rule (`nudge-part`). A part a joint or a fastening places, or a size that is worked out, is refused -- said in
|
|
492
493
|
words, not by the part silently springing back (user, 2026-09-24: 「기즈모 컨트롤도 전혀 작동이 안되는군」).
|
|
493
494
|
*/
|
|
@@ -495,7 +496,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
495
496
|
if (!body)
|
|
496
497
|
return this.requestUpdate();
|
|
497
498
|
const { by, turn } = nudgeOf(body, result);
|
|
498
|
-
/* A size worked out from the figure's: the drag's factor beside its rule, so it still follows
|
|
499
|
+
/* A size worked out from the figure's: the drag's factor beside its rule, so it still follows. */
|
|
499
500
|
const grow = {};
|
|
500
501
|
if (result.scale)
|
|
501
502
|
['x', 'y', 'z'].forEach((axis, i) => Math.abs(result.scale[i] - 1) > 1e-6 && (grow[axis] = Math.round(result.scale[i] * 1e6) / 1e6));
|
|
@@ -531,7 +532,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
531
532
|
this.session.apply(changes);
|
|
532
533
|
});
|
|
533
534
|
}
|
|
534
|
-
/** A mirrored copy: duplicate, then place the copy on the other side — two steps
|
|
535
|
+
/** A mirrored copy: duplicate, then place the copy on the other side — two steps. */
|
|
535
536
|
mirror(axis) {
|
|
536
537
|
this.run(() => {
|
|
537
538
|
const id = this.selected;
|
|
@@ -577,7 +578,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
577
578
|
</div>`;
|
|
578
579
|
}
|
|
579
580
|
/**
|
|
580
|
-
* A part's name
|
|
581
|
+
* A part's name. It renames every value the part owns, and what refers to them follows
|
|
581
582
|
* (figure-model's rename-part), as one step of the history.
|
|
582
583
|
*/
|
|
583
584
|
/**
|
|
@@ -612,7 +613,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
612
613
|
: String(error);
|
|
613
614
|
}
|
|
614
615
|
}
|
|
615
|
-
/** Size response, fastening and motion for the selected part
|
|
616
|
+
/** Size response, fastening and motion for the selected part, as authoring commands. */
|
|
616
617
|
renderLinks(unavailable, section) {
|
|
617
618
|
let asset;
|
|
618
619
|
try {
|
|
@@ -638,7 +639,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
638
639
|
@v3-part-edit=${(e) => this.run(() => this.session.edit(e.detail.edit))}
|
|
639
640
|
></figure-v3-links>`;
|
|
640
641
|
}
|
|
641
|
-
/** The figure's controls: try a value, name it, set its range and travel time, keep the pose
|
|
642
|
+
/** The figure's controls: try a value, name it, set its range and travel time, keep the pose. */
|
|
642
643
|
renderControls(view, unavailable) {
|
|
643
644
|
let asset;
|
|
644
645
|
try {
|
|
@@ -840,8 +841,8 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
840
841
|
</button>`;
|
|
841
842
|
}
|
|
842
843
|
/**
|
|
843
|
-
* The parts list, one row per part the author made: a repeat is one row with how many copies it makes now
|
|
844
|
-
*
|
|
844
|
+
* The parts list, one row per part the author made: a repeat is one row with how many copies it makes now
|
|
845
|
+
* (user, 2026-09-24: the conveyor's sixteen rollers were sixteen rows).
|
|
845
846
|
*/
|
|
846
847
|
partRows(geometry) {
|
|
847
848
|
const rows = new Map();
|
|
@@ -874,7 +875,7 @@ let FigureV3Editor = class FigureV3Editor extends LitElement {
|
|
|
874
875
|
}
|
|
875
876
|
}
|
|
876
877
|
/**
|
|
877
|
-
* A repeat: which way its copies run, how many there are now, and how far apart
|
|
878
|
+
* A repeat: which way its copies run, how many there are now, and how far apart.
|
|
878
879
|
* The pitch of a row that fills its length is edited as a number (`set-repeat` makes it the part's own the first
|
|
879
880
|
* time); a row of a fixed count says its pitch cannot be set yet (figure-model refuses it the same way).
|
|
880
881
|
*/
|