The GitHub Actions job "Benchmarks" on texera.git/main has succeeded.
Run started by GitHub user github-merge-queue[bot] (triggered by 
github-merge-queue[bot]).

Head commit for run:
1fbd34627026c10e67a9c20a686e37e1f0b8d7f0 / yangzhang75 <[email protected]>
feat(gui): open a step to inspect its settings read-only on the Form View 
(#8442)

### What changes were proposed in this PR?

Closes #8025. Part of the Form View stack (parent issue #8011). Its base
#8441 (PR13) is merged, so this PR sits directly on main.

Lets a reader open a step on the embedded workflow preview to inspect
its settings, read-only.

- Clicking a step on the read-only canvas highlights it and opens the
operator's own property panel; clicking empty canvas dismisses it.
Selection reuses the canvas highlight stream rather than teaching the
editor a second click mode.
- The panel is truly read-only: it carries the `inert` attribute (which
blocks pointer AND keyboard AND focus, unlike `pointer-events:none`),
and the graph is modification-disabled. The panel itself stays the
scroll container so a long panel is still readable.
- The property panel is mounted with `[hidden]`, not `*ngIf`: it shows
its operator by REACTING to the highlight stream (no initial pull), so
it must already be subscribed when the click fires. Mounting it on
selection subscribes too late and opens empty.
- The Form View stays silent on the shared co-editor channel
(`updateSharedModelAwareness("currentlyEditing", undefined)`), so
inspecting a step from the form never shows this session as editing a
graph on the other view.
- Adds a `persistPlacement` input to the property editor (default
`true`, canvas unchanged). The Form View mounts it with
`persistPlacement=false`, so its `ngOnInit` skips the `#right-container`
docked-panel restore that only exists in the canvas layout and would
otherwise throw.

Turning the panel live to choose what to expose is the authoring PR
(#8026).

### Any related issues, documentation, discussions?

Closes #8025. Part of the Form View feature (parent issue #8011).

### How was this PR tested?

Unit tests (vitest). Direct-construction tests cover the
selection/dismiss logic (open on single highlight, clear on empty-canvas
unhighlight, silence on the co-editor channel, close button). A TestBed
rendered test covers the panel markup with the property editor stubbed
(it is a heavy child with its own spec; the stub carries only the two
bound inputs). The property-editor spec covers the new
`persistPlacement` guard: `ngOnInit` does not read `#right-container`
and `ngOnDestroy` does not persist geometry when
`persistPlacement=false`. 100% statement and function coverage on the
changed source. `ng test`, `ng build gui` (AOT), eslint and prettier all
pass.

#### Screenshot

A step opened read-only on the Form View: the property panel showing the
operator's settings, inert.

<img width="1176" height="445" alt="Screenshot 2026-09-10 at 9 43 28 AM"
src="https://github.com/user-attachments/assets/9f55b511-3ea7-41d8-9d03-80e6e928c6e3";
/>


### Was this PR authored or co-authored using generative AI tooling?

Yes. Co-authored with Claude (Anthropic), reviewed line by line by the
author before submission.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01FVvP3ttj22f9LB4p9u2anY

Co-authored-by: Claude Opus 4.8 <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/34527740124

With regards,
GitHub Actions via GitBox

Reply via email to