Commit Graph
93 Commits
Author SHA1 Message Date
sadpandajoe 4f44ae5441 fix(plugin-chart-table): correct last probe-vs-gutter framing in sticky test comment
The MOCKED_SCROLLBAR_PROBE_SIZE comment still described the mock as
distinguishing the JS probe from the CSS gutter reservation, the same
probe-vs-gutter framing already retracted and corrected everywhere else in
this file and RCA.md. Reword it to match: the mock detects reintroduction of
the removed maxWidth - scrollBarSize subtraction, not a gutter/probe
mismatch.

Refs #21063
2026-09-05 18:07:29 +00:00
sadpandajoe 7eaed06b08 fix(plugin-chart-table): clarify load-bearing vs secondary fix, remove any casts in sticky test
Some comments (useSticky.tsx, useSticky.test.tsx, RCA.md) still framed the
scrollbar-gutter/scrollBarStyles matching as the mechanism that prevents the
reported clipping, contradicting this branch's own hit-testing conclusion
that it's the unconditional width: maxWidth change that's load-bearing, with
gutter/style matching kept only as an unverified, secondary consistency
measure for combined horizontal+vertical scrolling. Rewrite those comments
and RCA sections to say so explicitly, and fix a getScrollBarSize.test.ts
comment that still described the removed maxWidth - scrollBarSize
subtraction as the header's "shrink amount".

Also remove the `as any` casts from the sticky regression test: type
`columns` as `Column<Row>[]` and pass `useSticky` directly, letting
`headerGroups`/`rows`/`cells` infer their existing react-table types (already
declared in `src/DataTable/types/react-table.d.ts`) instead of bypassing
type-checking of the exercised contract.

Refs #21063
2026-09-05 18:03:43 +00:00
sadpandajoe 0246d4599e fix(plugin-chart-table): verify sticky totals fix with real hit-testing, pin scrollBarStyles regression
The previous round's RCA claimed clipping based on comparing clientWidth to
scrollWidth on an overflow:hidden element, but scrollbar-gutter's reserved
space is phantom for overflow:hidden (never rendered as a real scrollbar),
so it doesn't move the actual clip boundary. Real-browser hit-testing
(document.elementFromPoint sweeps in headed Chromium) shows that comparison
doesn't demonstrate clipping. Retract that claim in RCA.md and replace it
with the structural reason the fix is correct regardless of any browser's
scrollbar-probe accuracy: the shared colgroup is always bounded by the
sizer's clientWidth, which is always bounded by maxWidth, so an unconditional
width: maxWidth on header/footer can never be narrower than the table it
must display.

Also add a /** @jsxImportSource @emotion/react */ pragma to useSticky.tsx so
its css prop is observable in this repo's Jest/Babel setup the same way
webpack/SWC already observes it in production, and use that to extend the
regression test to assert header/footer actually receive the
scrollBarStyles-generated class (previously only the inline width/
scrollbarGutter half was pinned, so the test passed with or without the
scrollBarStyles addition).

Refs #21063
2026-09-05 17:44:03 +00:00
sadpandajoe 0270e32719 fix(plugin-chart-table): match scrollbar styling on sticky header/footer
scrollbar-gutter: stable's reserved width depends on whether custom
::-webkit-scrollbar styling is applied to that element (verified in both
headless and headed Chromium: 15px unstyled vs 8px styled, matching
CUSTOM_SCROLLBAR_SIZE). The previous fix reserved the gutter on the
header/footer wrappers without also giving them the same custom scrollbar
CSS the body/sizer carry, so they reserved a different (larger) amount and
could still clip the shared colgroup's rightmost column.

Also corrects the RCA: real, non-headless browser testing shows unmodified
master's original scrollBarSize-based computation does not diverge from
the body/sizer's reservation under any real condition reproduced in this
investigation (only headless Chromium's synthetic scrollbar probe showed a
difference, which turned out to be a headless-only rendering artifact, not
representative of a real user's browser). The fix still removes a real,
demonstrated defect class -- relying on two independently-measured
scrollbar-space numbers to agree -- rather than the exact historical
trigger, which remains unpinned.
2026-09-05 17:12:57 +00:00
sadpandajoe dd6a9099bc fix(plugin-chart-table): stop clipping sticky totals row on resize
The sticky header/footer wrapper width was narrowed by a separately
JS-measured scrollbar size, while the column widths shared via colgroup
were computed against the browser's own `scrollbar-gutter: stable`
reservation used by the body div. These two numbers aren't guaranteed to
agree, and when the probe overstates the real reservation the fixed-layout
table overflows its `overflow: hidden` wrapper, clipping the rightmost
column -- typically the totals row once a chart is resized enough to need
a vertical scrollbar.

Header and footer now reserve space via the same `scrollbar-gutter`
property the body already uses, so all three always agree.

Fixes #21063
2026-09-05 16:47:23 +00:00
Raphael Sales c1ca29fe09 fix(core): render duration values instead of NaN:NaN:NaN (#43839)
Signed-off-by: Raphael Sales <raphaelsales1337@gmail.com>
2026-09-04 14:49:59 -07:00
Endi Monan 0d025daaf7 fix(plugin-chart-table): defer search until IME composition ends (#43756) 2026-09-04 13:33:30 -07:00
Enzo MartellucciandClaude Sonnet 5 f63a0e9d9c feat(conditional-formatting): add manual min/max color-range bounds (#43820)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 17:07:48 +02:00
Gabriel Torres Ruiz 0bca5af7a9 fix(table): hide the Time Grain control in raw records mode (#43802) 2026-09-03 17:42:48 -03:00
Evan RusackasandClaude Opus 4.8 ca63bb532d fix(plugin-chart-table): preserve comparison arrow when a column-specific formatter entry is missing (#43494)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-27 03:30:17 -07:00
DmitryandDmitry Kucher f9530f31ab fix(table): keep each metric's own aggregate in the summary row by default (#43421)
Co-authored-by: Dmitry Kucher <dima@virtuman.com>
2026-08-25 10:10:02 -07:00
Joe Li a8a8b51afb fix(plugin-chart-table): guard row-indexed comparison-color lookups against undefined entries (#43139) 2026-08-24 11:45:25 -07:00
Evan RusackasandClaude Code f7a2f0ec50 feat(table): allow choosing Sum or Average for the "Show summary" totals row (#43027)
Co-authored-by: Claude Code <noreply@anthropic.com>
2026-08-13 13:15:23 -07:00
b18015f63b feat: Color Picker replaces the color selection drop-down list in conditional formatting (#42053)
Co-authored-by: rusackas <evan@rusackas.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-08-08 02:00:56 +03:00
Joe LiandJuliann Forbes ae66b697e5 fix(plugin-chart-table): align sticky header column dividers with table body (#42573)
Co-authored-by: Juliann Forbes <juliann@preset.io>
2026-08-06 15:40:44 -07:00
Đỗ Trọng Hải e4ef84ca72 feat(build): migrate from Prettier to Oxfmt for performant code formatting (#42434) 2026-08-04 00:27:05 +07:00
Evan RusackasandClaude Opus 4.8 cec033e59c fix(table): pick totals query positionally so all_records percent metrics don't shift it (#42428)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-29 15:47:57 -07:00
Evan RusackasandClaude Sonnet 5 e54eccd5fb chore(a11y): enable jsx-a11y/prefer-tag-over-role as error (#42078)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-26 17:38:55 -07:00
c5935b6904 feat(table/pivot-table): correct non-additive totals/subtotals via DB rollup [SIP-216] (#41184)
Co-authored-by: Superset Dev <dev@superset.apache.org>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com>
2026-07-22 10:06:05 -07:00
Đỗ Trọng Hải d65a816b39 chore(lint): toggle import/no-named-as-default to error level + fix all violations (#42214)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-07-20 10:22:15 -07:00
PRATHAMESH HUKKERIandPrathamesh Hukkeri 15bc73facf test(table): add regression test for pagination reset on cell click (#42155)
Co-authored-by: Prathamesh Hukkeri <prathamesh04@users.noreply.github.com>
2026-07-20 10:15:29 -07:00
Durgaprasad M L ff1cf5f24e fix(table): hide search dropdown when search box is disabled (#41772) 2026-07-18 10:23:54 -07:00
e063f5093c feat(frontend): upgrade Ant Design from v5 to v6 (#41636)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com>
2026-07-13 10:13:30 -07:00
189f258e0c fix(drill): coerce temporal drill filter values (#40180)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Superset Dev <dev@superset.apache.org>
2026-07-11 15:24:51 -07:00
Ville Brofeldt 44c1ad5c71 fix: delint frontend files (#41802) 2026-07-06 21:54:33 +02:00
jackandEvan Rusackas 6c2c814b5c fix(dashboard): not filterable column now not emitting cross-filters in table charts (#30827)
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-07-02 10:42:53 -07:00
innovarkandSBIN2010 b3197c9b5e fix(table-chart): fix "Search by" control visibility and improve table controls layout (#36073)
Co-authored-by: SBIN2010 <Sbin2010@mail.ru>
2026-07-01 17:22:36 -07:00
Evan Rusackas 725265502f perf(frontend): migrate lodash imports to lodash-es for tree-shaking (#41511) 2026-06-30 00:09:39 +07:00
Kamil Gabryjelski 2d78a8733c fix(plugin-chart-ag-grid-table): show correct percent-metric totals in summary row (#41247)
Signed-off-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
2026-06-24 19:21:00 +02:00
c1d08bf27c fix(table): respect row limit with server pagination (#41024)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Claude <noreply@anthropic.com>
2026-06-23 12:17:12 -07:00
e18cd1f50c fix(table): preserve percentage format for small numbers when d3SmallNumberFormat is unset (#37980)
Co-authored-by: Superset Dev <dev@superset.apache.org>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-19 08:49:40 -07:00
Nitish Agarwal f88f1fad04 fix(table): sort metric columns numerically regardless of display format (#39775) 2026-06-14 21:14:44 -07:00
Jean Massucatto fc0245bdb0 fix(charts): show non-filterable columns in metric section for table … (#39524) 2026-06-02 18:31:42 +02:00
f98edc351e chore(deps): coordinated bump jest 30.3→30.4 + jest-environment-jsdom 29→30 (#40206)
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 11:35:19 +07:00
a60860c969 fix(table): fall back to datasource columns for conditional formatting when query results are empty (#39345)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-05-08 16:10:41 -07:00
cb74438865 fix(viz): correct table chart drill-to-detail temporal boundaries and null handling (#39668)
Co-authored-by: Samuelinto <samuel.mantilla@mail.utoronto.ca>
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 11:46:18 -04:00
Jean Massucatto 9c3c8dcc0b fix(table): restore dropdown arrow visibility on paginated table page… (#39305) 2026-04-30 05:56:51 -07:00
Sam Firke 3395620b6e fix(table chart): fix rerender bug that continuously cleared search box (#39707) 2026-04-28 08:40:56 -03:00
Maxime BeaucheminandClaude Opus 4.6 c2d96e0dce fix(table): fix cross-filter not clearing on second click in Interactive Table (#39253)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 10:30:36 -07:00
Enzo Martellucci aba7e6dae4 fix(table): cross-filtering breaks after renaming column labels via Custom SQL (#38858) 2026-04-10 06:02:18 +02:00
João Pedro Alves Barbosa 02ffb52f4a fix(table): improve conditional formatting text contrast (#38705) 2026-03-22 18:59:15 -03:00
Michael S. Molina 357e35dc62 refactor(core): reorganize superset-core packages into feature-based structure (#38448) 2026-03-05 17:41:15 -03:00
Vanessa Giannoni f4acce5727 fix(table): preserve time grain aggregation when temporal column casing changes (#37893) 2026-02-19 16:46:39 -08:00
Levis Mbote c175346808 fix(table-charts): Prevent time grain from altering Raw Records in Tables + Interactive Tables (#37561) 2026-02-19 10:24:09 +01:00
SBIN2010 33441ccf3d feat: add formatting column and formatting object to conditional formating table (#35897) 2026-02-19 02:07:15 +03:00
Michael S. Molina 19ec7b48a0 fix: Conditional formatting painting empty cells (#37894) 2026-02-12 10:22:00 -03:00
Đỗ Trọng Hải 563d9f1a3f chore(lint): migrate Jest lint rules from eslint to oxlint (#37787)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-08 16:44:42 +07:00
SBIN2010 c4e7c3b03b refactor: consolidating ColorSchemeEnum settings into one place (#37591) 2026-02-07 23:04:20 -08:00
Evan RusackasandClaude Opus 4.5 fc5506e466 chore(frontend): comprehensive TypeScript quality improvements (#37625)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 13:16:57 -08:00
Jamile Celento 3347b9bf6c fix(table): only show increase/decrease color options when time comparison enabled (#37362) 2026-01-28 13:32:30 +01:00