New column chooser - #861
Open
haynesjm42 wants to merge 34 commits into
Open
Conversation
Add ColumnChooserPanel with a grouped-column GridModel and side-by-side layout showing both the grid and the new columnChooser component. Wire up route and tab entry in AppModel. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add RowDragModule to AG Grid community module registration (required for row drag features) - Add minWidth to ColumnChooser in test panel to prevent flex shrinking Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reworks the "Grids > Column Chooser" example into a fuller showcase of the new component and moves it above Column Filtering in the tab list. * Enriched the sales dataset with derived `email`, `region`, `tenure`, `commissionRate`, and `commission` fields (in `SalesService`), plus new `tenure`/`commission` column defs, so the demo has enough columns to make groups and the Column Library feel natural. * Reworked the columns to demonstrate both grouping mechanisms: real nested `ColumnGroup`s (Rep, Location, Sales, Compensation) drive the buckets and `lockColumnGroups`, while `chooserGroup` groups the optional Column Library. `Full Name` is locked via `hideable: false`, and every column carries a `chooserDescription`. * Fixed the embedded chooser to enable `showColumnLibrary` directly (it was only set on `colChooserModel`) and sized it to fit the full bucket + library layout. * Added a "Show chooser beside grid" demo toggle (with an info line clarifying the embed is a demo aid) alongside the `lockColumnGroups` toggle, both in the Wrapper options rail.
… 19.x in the resolutions block.
- Add a `libraryWidth` control (ColLibraryConfig); `width` now sizes the bucket column alone. - Drive the docked panel's dock size from `width` (+ library width when shown) rather than `panelConfig.defaultSize`. - Restore the default grid context menu, inserting the docked-panel chooser item after the standard one.
6 tasks
Gate ag-Grid ValidationModule to development builds, distinguish P&L columns by type in the Column Library, and fix comment typos.
haynesjm42
marked this pull request as ready for review
July 27, 2026 19:48
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.
Toolbox demos for the redesigned Column Chooser. Pairs with xh/hoist-react#4409.
What's here
Grids › Column Chooser(desktop/tabs/grids/ColumnChooserPanel.ts) - the primary example. A sales-rep grid with nested column groups, ahideable: falselocked column,chooserDescriptiontooltips, andchooserGroups for the Column Library. Wrapper options drive every chooser config live -lockColumnGroups,enableColumnPinning, per-presentationcommitOnChange/width/height, dockside, Library enable /collapseGroups/libraryWidth- each rebuilding theGridModelso the effect is visible immediately. Both presentations are wired: a popover button and a docked-panel button, plus acolChooserPanelcontext-menu item. The docked chooser starts open.Tests › Column Chooser(admin/tests/columnChooser/) - a stress harness.generateColumns.tsbuilds a hedge-fund blotter catalog sized small / medium / large (large ≈ 145 leaves) from cross-products (P&L type × period, risk measure × tenor), withchooserGroups sliced along a deliberately different axis than the visual column groups. Live column state renders beside the grid as JSON, and an Add Column dialog injects columns with arbitraryhideable/movable/pinned/excludeFromChoosersettings to probe edge cases.Supporting changes
Bootstrap.ts- registered ag-Grid'sRowDragModule, which the new chooser requires. Also registeredValidationModulein a new development-only block, since without it AG Grid reports a missing module as a bare numeric error code. AG Grid recommends keeping it out of production builds, so the block is gated on the build-timexhIsDevelopmentModeconstant (declared intypes.d.ts) rather than the runtimeXH.isDevelopmentMode, letting Webpack drop it from prod bundles.SalesService.groovy- derivedemail,region,tenure,commissionRate, andcommissionfields, hashed off the rep's name so values stay stable across reloads. Gives the demo enough columns to organize and hide.tenureCol,commissionRateCol,commissionCol) and awrapperOptionGroup()helper for labeled subsections in a Wrapper'soptionslist.Note for reviewers
CI will fail until xh/hoist-react#4409 merges and an
@xh/hoist87 snapshot publishes with the new chooser APIs -yarn lint:typesresolves^87.0.0-SNAPSHOTfrom npm, which does not yet have them. Verified locally against a hoist-react working copy:yarn lint:codeandyarn lint:typesboth clean.