Repository navigation
feat(dashboard): expand drill-in — table/list row→record + scatter/treemap/sankey drill-through - #1859
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
…Config.mode Wire onClick handlers for the scatter, treemap and sankey chart families so they open the same filtered-record drill drawer the bar/line/pie/funnel charts already use. Add a `mode: 'filter' | 'record'` discriminator to DrillDownConfig to formalize drill-through (aggregate→list) vs drill-to-record (row→record), ahead of wiring table/list row drill. Also fixes a stale comment that claimed scatter/funnel had no click wiring. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Clicking a row in an object-backed table/list widget now opens that record in
a detail drawer (Sheet) or dialog — the mainstream list-row → record interaction
(Salesforce list views, Power BI 'see records'). Object-backed table/list
widgets get this on by default; authors opt out with `drillDown:{enabled:false}`.
- RecordDetailDrawer renders the clicked record read-only, reusing the table's
field labels + cell formatting via a new shared `recordFields` module (so a
value reads identically in the cell and the drawer).
- ObjectDataTable refactored onto the shared helpers and wires onRowClick when
drill is enabled; an author-supplied onRowClick still wins.
- Completes the drill chain: the chart/KPI drill-through record lists now drill
into a record too (rendered as a dialog so it stacks over the drawer).
- vitest: exclude in-repo `.wt-*` git worktrees so sibling-branch test copies
don't get globbed into runs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Extract the scatter/treemap/sankey Recharts-click → drill-event mapping into pure, unit-tested functions (chartDrillEvents) and add a registry guard for supportsDrillDown covering the newly drillable types. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
xuyushun441-sys
force-pushed
the
feat/dashboard-drill-expansion
branch
from
June 21, 2026 12:03
689bc4c to
6e94074
Compare
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
❌ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
This was referenced Jun 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Drill-in was only fully realized on a couple of widgets. This expands it to the gaps, and formalizes the two interaction semantics mainstream BI/low-code platforms separate (Power BI drill-through vs Salesforce list-row → record).
DrillDownConfiggains amodediscriminator:'filter'(default) — drill-through: aggregate bucket (pivot cell / chart segment / KPI) → filtered record list.'record'— drill-to-record: a table/list row → that record's detail. Default for table/list.Changes
1. Chart drill-through completion — scatter / treemap / sankey now wire
onClickand reuse ObjectChart's existing drill drawer. Radar is intentionally excluded (a polar polygon has no single clickable category point). The Recharts-payload → drill-event mapping is extracted to pure, unit-tested functions (chartDrillEvents.ts). Fixes a stale comment that claimed scatter/funnel had no click wiring.2. Table/list drill-to-record — clicking a row in an object-backed table/list opens that record read-only in a
RecordDetailDrawer(Sheet, or Dialog). Field labels + cell formatting are shared with the table via a newrecordFieldsmodule so a value reads identically in the cell and the drawer. Object-backed table/list widgets get this on by default; authors opt out withdrillDown:{enabled:false}. An author-suppliedonRowClickalways wins.3. Completes the drill chain — the chart/KPI drill-through record lists now drill into a record too (rendered as a dialog so it stacks over the outer drawer), matching Power BI's segment → list → record path.
4. Config panel —
scatter/treemap/sankey/table/listadded toDRILL_DOWN_TYPESso the drill toggle is offered for them.5. vitest — exclude in-repo
.wt-*git worktrees so sibling-branch test copies aren't globbed into runs.Verification
plugin-dashboard+plugin-chartsfull suites 107 passed / 0 failed. Integration test renders the realdata-tableand asserts the record drawer opens on row click; authoronRowClickpreserved; disabled / filter-mode tables don't drill.type-checkclean across affected packages + downstream consumers (app-shell / components / react), 29 turbo tasks.🤖 Generated with Claude Code