Skip to content

refactor: control bar cleanup and filtering improvements#259

Draft
peymanvahidi wants to merge 15 commits into
mainfrom
refactor/control-bar-and-filtering
Draft

refactor: control bar cleanup and filtering improvements#259
peymanvahidi wants to merge 15 commits into
mainfrom
refactor/control-bar-and-filtering

Conversation

@peymanvahidi
Copy link
Copy Markdown
Collaborator

@peymanvahidi peymanvahidi commented May 14, 2026

Removes the 3D projection "Plane" (XY/XZ/YZ) dropdown and all projectionPlane plumbing from the web frontend. 3D Parquet files continue to load, z is silently discarded and only x / y are rendered. The Python protspace CLI is unaffected.

Changes:

  1. control-bar: remove plane selector UI, handlePlaneChange, projection-plane-change event, the projectionPlane property, the cross-element assignment that pushed plane onto the scatter-plot, and projectionPlane? from ScatterplotElementLike.
  2. scatter-plot: remove projectionPlane property, xz/yz coord remap, point.z write, and projectionPlane from change-detection gates. DataProcessor.processVisualizationData is now called with four args.
  3. data-processor: remove the projectionPlane parameter and the xz/yz branch. PlotDataPoint loses its optional z? field. Tests updated: xz/yz mapping tests removed, "preserves z" test replaced with "drops the z coordinate for 3D projections."
  4. control-bar helpers: delete the now-unused isProjection3D and getProjectionPlane helpers and their tests.
  5. scatter-plot (chore): drop stale "x/y/z" from the _updatePlotDataCoordinates fast-path comment, it now correctly says "x/y" after PlotDataPoint.z was removed in commit 3.

…lumbing

Drops the Plane (XY/XZ/YZ) <select>, handlePlaneChange, the
projection-plane-change CustomEvent, the projectionPlane @Property,
and the cross-element assignment that pushed the plane onto the
scatter-plot. Also drops projectionPlane? from ScatterplotElementLike.

Helpers isProjection3D and getProjectionPlane are no longer imported
here; they are deleted in a follow-up commit. The scatter-plot still
owns its projectionPlane property in this commit; cleaned up next.

Part of refactor for issue #196.
…gnment

Removes the projectionPlane Lit property, the xz/yz coordinate remap,
the point.z = coords[2] write (a write-only assignment with no readers),
and the projectionPlane entries in the _processData change-detection
gates. The data-processor call now passes four args; the unused fifth
parameter on data-processor itself is removed in a follow-up commit.

3D Parquet inputs now render using coords[0] / coords[1] only, matching
the historical default plane ('xy') that the property defaulted to in
production.

Part of refactor for issue #196.
Removes the projectionPlane parameter from
DataProcessor.processVisualizationData and the conditional xz/yz
coordinate remap. 3D projections now collapse to coords[0] / coords[1]
on every code path. PlotDataPoint loses its optional z field; nothing
consumed it (scatter-plot's only write was removed in the previous
commit).

Test changes:
- Delete xz and yz plane-mapping tests.
- Replace 'preserves z coordinate for 3D projections' with
  'drops the z coordinate for 3D projections (rendered as 2D)',
  pinning the new contract.

Part of refactor for issue #196.
…e helpers

After the plane selector removal in earlier commits, these helpers
have zero remaining callers in packages/ or app/. Removed both
functions and their describe blocks from the test file.

Part of refactor for issue #196.
Commit 7ae6f74 removed the optional z field from PlotDataPoint. The
fast-path comment in _updatePlotDataCoordinates still claimed
'overwrite x/y/z on existing PlotDataPoints' — it now correctly says
'overwrite x/y'. Comment-only; no behavior change.

Part of refactor for issue #196.
@peymanvahidi peymanvahidi marked this pull request as draft May 14, 2026 10:45
@peymanvahidi peymanvahidi marked this pull request as ready for review May 18, 2026 08:14
…ders

The numeric filter's placeholder text showed the data's min/max
("min (4)", "max (1630)"). Removed at user request; placeholders are
now just "min" / "max". This also drops the now-unused
computeNumericBounds helper and the _dataBounds/_boundsAnnotation state
that only existed to feed those hints.
@tsenoner tsenoner marked this pull request as draft May 18, 2026 20:44
@tsenoner
Copy link
Copy Markdown
Owner

The filtering logic needs a complete revisit.
BUG reproduction:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment