@things-factory/figure-ui 10.1.175 → 10.1.177
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/modeller/editor-styles.ts +4 -6
- package/client/modeller/editor.ts +41 -39
- package/client/modeller/figure-links.ts +41 -12
- package/client/modeller/figure-parts.ts +31 -14
- package/client/modeller/figure-properties.ts +2 -2
- package/client/pages/figure-modeller-page.ts +34 -11
- package/dist-client/modeller/editor-styles.js +4 -6
- package/dist-client/modeller/editor-styles.js.map +1 -1
- package/dist-client/modeller/editor.d.ts +6 -10
- package/dist-client/modeller/editor.js +34 -37
- package/dist-client/modeller/editor.js.map +1 -1
- package/dist-client/modeller/figure-links.d.ts +7 -2
- package/dist-client/modeller/figure-links.js +45 -11
- package/dist-client/modeller/figure-links.js.map +1 -1
- package/dist-client/modeller/figure-parts.js +31 -14
- package/dist-client/modeller/figure-parts.js.map +1 -1
- package/dist-client/modeller/figure-properties.js +2 -2
- package/dist-client/modeller/figure-properties.js.map +1 -1
- package/dist-client/pages/figure-modeller-page.js +34 -11
- package/dist-client/pages/figure-modeller-page.js.map +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/test/browser/acceptance-page.js +2 -1
- package/test/browser/build.mjs +9 -1
- package/test/browser/editing-page.js +2 -1
- package/test/browser/links.check.mjs +24 -9
- package/test/browser/modeller.check.mjs +6 -0
- package/test/browser/parts.check.mjs +3 -12
- package/test/browser/places-mesh.check.mjs +4 -9
- package/test/browser/props.check.mjs +67 -12
- package/test/browser/row-preview.check.mjs +4 -0
- package/test/browser/screen.check.mjs +49 -19
- package/test/browser/serve-acceptance.mjs +2 -1
- package/test/place-words.test.ts +31 -0
- package/translations/en.json +6 -3
- package/translations/es.json +3 -0
- package/translations/ja.json +3 -0
- package/translations/ko.json +6 -3
- package/translations/ms.json +3 -0
- package/translations/zh.json +3 -0
|
@@ -78,8 +78,6 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
78
78
|
this.selected = '';
|
|
79
79
|
this.error = '';
|
|
80
80
|
this.tab = 'properties';
|
|
81
|
-
/** The capability group open: the canvas marks the places only while their group is in sight. */
|
|
82
|
-
this.capabilityOpen = false;
|
|
83
81
|
/** 「더 보기」 open, as this person left it last (chief architect 2026-10-16: kept per person). */
|
|
84
82
|
this.moreOpen = FigureEditor_1.storedMoreOpen();
|
|
85
83
|
/** What the middle shows: the parts being edited, or the figure placed on a board at eight sizes. */
|
|
@@ -107,7 +105,7 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
107
105
|
session: () => this.session,
|
|
108
106
|
selected: () => this.selected,
|
|
109
107
|
shown: () => this.shown(),
|
|
110
|
-
formsInSight: () => this.middle === 'edit' && this.tab === 'properties',
|
|
108
|
+
formsInSight: () => this.middle === 'edit' && (this.tab === 'properties' || this.tab === 'response'),
|
|
111
109
|
said: error => this.said(error)
|
|
112
110
|
});
|
|
113
111
|
this.keys = new ModellerKeys(this, {
|
|
@@ -757,9 +755,11 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
757
755
|
const shown = this.shown();
|
|
758
756
|
if (!shown)
|
|
759
757
|
return null;
|
|
758
|
+
const tab = section === 'shape' ? 'properties' : section === 'places' ? 'capability' : section;
|
|
760
759
|
return html `<figure-links
|
|
761
760
|
.revision=${shown}
|
|
762
761
|
.section=${section}
|
|
762
|
+
.active=${this.tab === tab}
|
|
763
763
|
.partId=${this.selected}
|
|
764
764
|
?locked=${unavailable}
|
|
765
765
|
@command=${(e) => this.linkCommand(e.detail.action)}
|
|
@@ -774,9 +774,10 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
774
774
|
>${slotted}</figure-links>`;
|
|
775
775
|
}
|
|
776
776
|
/**
|
|
777
|
-
* A part's groups in one order whatever its state (chief architect 2026-10-16): its size, its place
|
|
778
|
-
*
|
|
779
|
-
*
|
|
777
|
+
* A part's groups in one order whatever its state (chief architect 2026-10-16): its size, its place. The links draw
|
|
778
|
+
* the groups; the part's own numbers go into them by slot. How the part answers a size -- its rules, a position that
|
|
779
|
+
* follows, its row -- is the 「반응형」 tab's. A fastened part's place and turn are its fastening's: the place group
|
|
780
|
+
* says it in one line and the locked cells are not drawn (user 2026-10-16).
|
|
780
781
|
*/
|
|
781
782
|
renderPartGroups(shown, geometry, fields, unavailable, held) {
|
|
782
783
|
const groups = this.withSizeRow(groupFields(fields, this.selected), held);
|
|
@@ -794,27 +795,11 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
794
795
|
: nothing}
|
|
795
796
|
${place.length && !placeLocked
|
|
796
797
|
? html `<div slot="place" group-fields>${place.map(g => this.renderVector(g, unavailable, held))}${this.renderHeldAxes(place)}</div>`
|
|
797
|
-
: nothing}
|
|
798
|
-
${this.renderRepeat(shown, geometry, unavailable)}`);
|
|
798
|
+
: nothing}`);
|
|
799
799
|
}
|
|
800
|
-
/**
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
*/
|
|
804
|
-
renderCapability(asset, unavailable) {
|
|
805
|
-
return html `<section capability>
|
|
806
|
-
<details capability-fold ?open=${this.capabilityOpen} @toggle=${(e) => (this.capabilityOpen = e.target.open)}>
|
|
807
|
-
<summary><h3>${i18next.t('figure.label.tab-capability')}</h3></summary>
|
|
808
|
-
${this.selected ? this.renderLinks(unavailable, 'places') : nothing}
|
|
809
|
-
<figure-capability-panel
|
|
810
|
-
.asset=${asset}
|
|
811
|
-
.selected=${this.selected}
|
|
812
|
-
?locked=${unavailable}
|
|
813
|
-
@select-part=${(e) => this.choose(e.detail.id)}
|
|
814
|
-
@part-edit=${(e) => this.run(() => this.session.edit(e.detail.edit))}
|
|
815
|
-
></figure-capability-panel>
|
|
816
|
-
</details>
|
|
817
|
-
</section>`;
|
|
800
|
+
/** The 「반응형」 tab of a part: the links' response groups, its row's own section put in by slot. */
|
|
801
|
+
renderResponse(shown, geometry, unavailable) {
|
|
802
|
+
return this.renderLinks(unavailable, 'response', this.renderRepeat(shown, geometry, unavailable));
|
|
818
803
|
}
|
|
819
804
|
/**
|
|
820
805
|
* 「더 보기」: what few parts need, folded by default and left as this person last left it (chief architect
|
|
@@ -1764,7 +1749,7 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
1764
1749
|
@configure-size=${async (e) => {
|
|
1765
1750
|
this.middle = 'edit';
|
|
1766
1751
|
this.selected = e.detail.part;
|
|
1767
|
-
this.tab = '
|
|
1752
|
+
this.tab = 'response';
|
|
1768
1753
|
await this.updateComplete;
|
|
1769
1754
|
this.renderRoot.querySelector('figure-links')?.scrollIntoView({ block: 'nearest' });
|
|
1770
1755
|
}}
|
|
@@ -1781,7 +1766,7 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
1781
1766
|
.fan=${this.fanOf(shown, live)}
|
|
1782
1767
|
.ghost=${this.previewShown().ghost}
|
|
1783
1768
|
.highlight=${this.previewShown().highlight}
|
|
1784
|
-
.marks=${this.tab === '
|
|
1769
|
+
.marks=${this.tab === 'capability' ? this.slotMarks(view, asset) : NO_MARKS}
|
|
1785
1770
|
.palette=${view.palette ?? {}}
|
|
1786
1771
|
.context=${view.context ?? ''}
|
|
1787
1772
|
.selected=${this.selected}
|
|
@@ -1795,7 +1780,9 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
1795
1780
|
<aside slot="end">
|
|
1796
1781
|
<div tabs>
|
|
1797
1782
|
${this.renderTab('properties', 'tune', i18next.t('figure.label.properties'))}
|
|
1783
|
+
${this.renderTab('response', 'aspect_ratio', i18next.t('figure.label.tab-response'))}
|
|
1798
1784
|
${this.renderTab('motion', 'animation', i18next.t('figure.label.motion'))}
|
|
1785
|
+
${this.renderTab('capability', 'conveyor_belt', i18next.t('figure.label.tab-capability'))}
|
|
1799
1786
|
${this.renderTab('data', 'sensors', i18next.t('figure.label.tab-data'))}
|
|
1800
1787
|
${this.renderTab('verdict', 'insights', i18next.t('figure.label.maturity'), this.instances)}
|
|
1801
1788
|
</div>
|
|
@@ -1826,7 +1813,6 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
1826
1813
|
@part-edit=${(e) => this.run(() => this.session.edit(e.detail.edit))}
|
|
1827
1814
|
@part-live=${(e) => this.hold({}, e.detail.edit)}
|
|
1828
1815
|
></figure-material-panel>
|
|
1829
|
-
${this.renderCapability(asset, unavailable)}
|
|
1830
1816
|
${this.renderMore(part, view.palette ?? {}, unavailable)}`
|
|
1831
1817
|
: view.geometry.length === 0
|
|
1832
1818
|
? html `${this.renderSubject()}<section empty-figure>
|
|
@@ -1836,16 +1822,31 @@ let FigureEditor = class FigureEditor extends LitElement {
|
|
|
1836
1822
|
<slot name="figure"></slot>
|
|
1837
1823
|
</details>
|
|
1838
1824
|
</section>`
|
|
1839
|
-
: html `${this.renderSubject()}<slot name="figure"></slot
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1825
|
+
: html `${this.renderSubject()}<slot name="figure"></slot>`}
|
|
1826
|
+
</div>
|
|
1827
|
+
<div panel ?off=${tab !== 'response'}>
|
|
1828
|
+
${this.renderSubject()}
|
|
1829
|
+
${this.selected && part
|
|
1830
|
+
? this.renderResponse(shown, view.geometry, unavailable)
|
|
1831
|
+
: html `${this.renderGroups(groupFields(common), 'figure.label.group-figure-size', 'figure.label.design-inputs', unavailable)}
|
|
1832
|
+
${this.renderInstanceRange(shown, unavailable)}`}
|
|
1843
1833
|
</div>
|
|
1844
1834
|
<div panel ?off=${tab !== 'motion'}>
|
|
1845
1835
|
${this.renderSubject()}
|
|
1846
1836
|
${this.selected && part ? this.renderLinks(unavailable, 'motion') : html `<section><p hint>${i18next.t('figure.text.choose-a-part-to-move')}</p></section>`}
|
|
1847
1837
|
${this.renderControls(view, unavailable)}
|
|
1848
1838
|
</div>
|
|
1839
|
+
<div panel ?off=${tab !== 'capability'}>
|
|
1840
|
+
${this.renderSubject()}
|
|
1841
|
+
${this.selected && part ? this.renderLinks(unavailable, 'places') : nothing}
|
|
1842
|
+
<figure-capability-panel
|
|
1843
|
+
.asset=${asset}
|
|
1844
|
+
.selected=${this.selected}
|
|
1845
|
+
?locked=${unavailable}
|
|
1846
|
+
@select-part=${(e) => this.choose(e.detail.id)}
|
|
1847
|
+
@part-edit=${(e) => this.run(() => this.session.edit(e.detail.edit))}
|
|
1848
|
+
></figure-capability-panel>
|
|
1849
|
+
</div>
|
|
1849
1850
|
<div panel ?off=${tab !== 'data'}>
|
|
1850
1851
|
${this.renderSubject()}
|
|
1851
1852
|
<figure-data-panel
|
|
@@ -2086,10 +2087,6 @@ __decorate([
|
|
|
2086
2087
|
state(),
|
|
2087
2088
|
__metadata("design:type", String)
|
|
2088
2089
|
], FigureEditor.prototype, "overlay", void 0);
|
|
2089
|
-
__decorate([
|
|
2090
|
-
state(),
|
|
2091
|
-
__metadata("design:type", Object)
|
|
2092
|
-
], FigureEditor.prototype, "capabilityOpen", void 0);
|
|
2093
2090
|
__decorate([
|
|
2094
2091
|
state(),
|
|
2095
2092
|
__metadata("design:type", Object)
|