Skip to content

[pull] latest from ag-grid:latest#648

Merged
pull[bot] merged 27 commits intocode:latestfrom
ag-grid:latest
Mar 16, 2026
Merged

[pull] latest from ag-grid:latest#648
pull[bot] merged 27 commits intocode:latestfrom
ag-grid:latest

Conversation

@pull
Copy link

@pull pull bot commented Mar 16, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

alantreadway and others added 27 commits March 13, 2026 17:19
subrepo:
  subdir:   "external/ag-shared"
  merged:   "d10f30d4f8e"
upstream:
  origin:   "https://github.com/ag-grid/ag-shared.git"
  branch:   "latest"
  commit:   "e9920c1bb73"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/Homebrew/brew"
  commit:   "a0bd077aaf"
Pulls ag-shared from ag-charts (2026-03-13 sync). Adds 6 new skill
symlinks (ag-shared-sync-log, example, jira, rulesync, website-astro,
website-css), removes deleted code-reviewer agent, and regenerates
prompts.
subrepo:
  subdir:   "external/ag-shared"
  merged:   "0d6125d30b9"
upstream:
  origin:   "https://github.com/ag-grid/ag-shared.git"
  branch:   "latest"
  commit:   "0d6125d30b9"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/Homebrew/brew"
  commit:   "a0bd077aaf"
subrepo:
  subdir:   "external/ag-shared"
  merged:   "d0ca9e90128"
upstream:
  origin:   "https://github.com/ag-grid/ag-shared.git"
  branch:   "latest"
  commit:   "d0ca9e90128"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/Homebrew/brew"
  commit:   "a0bd077aaf"
subrepo:
  subdir:   "external/ag-shared"
  merged:   "5108f1c0ca8"
upstream:
  origin:   "https://github.com/ag-grid/ag-shared.git"
  branch:   "latest"
  commit:   "5108f1c0ca8"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/Homebrew/brew"
  commit:   "a0bd077aaf"
- Add 6 new skills to .rulesync/README.md (ag-shared-sync-log,
  example, jira, rulesync, website-astro, website-css)
- Add Documentation and Examples section with example, website-astro,
  website-css skills
- Remove code-reviewer agent from Everyday Development and Sub-Agents
  tables
subrepo:
  subdir:   "external/ag-shared"
  merged:   "39f720126e8"
upstream:
  origin:   "https://github.com/ag-grid/ag-shared.git"
  branch:   "latest"
  commit:   "39f720126e8"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/Homebrew/brew"
  commit:   "4135badedd"
subrepo:
  subdir:   "external/ag-shared"
  merged:   "8ba8e8e436e"
upstream:
  origin:   "https://github.com/ag-grid/ag-shared.git"
  branch:   "latest"
  commit:   "8ba8e8e436e"
git-subrepo:
  version:  "0.4.9"
  origin:   "https://github.com/Homebrew/brew"
  commit:   "4135badedd"
Stripped by setup-prompts.sh post-processing. The TOON block was
generated for OpenCode but adds noise for other tools reading
AGENTS.md. OpenCode loads rules from .opencode/memories/ directly.
…ng pivoting aggregations (#13250)

* DASH-11 Auto grid bump and publish trigger

* DASH-11 Auto grid bump and publish trigger

* DASH-11 Auto grid bump and publish trigger

* - Added deferred CTP params to IToolPanelColumnCompParams

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* Added new standalone deferred-state service

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* Wired deferred service into ColumnToolPanel

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* ts

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - Added pivot toggle interception hook
- Added factory method to create pivot panel with handler
- Wired callback in CTP when deferred mode is enabled

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - Added deferred pending-update support for pivot-mode column-state deltas
- Added internal callback to CTP params
- Updated model helpers to optionally defer pivot-mode state application
- Wired components to pass callback

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - Added CTP Apply/Cancel button bar (only when deferred mode is enabled and buttons configured)
- Wired button actions
- Added button enabled/disabled behaviour
- Added CTP-local styling for the button bar

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - add test

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - Added docs

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - Extended deferred state with visibility
- Wired visibility into CTP deferred lifecycle
- Routed non-pivot column state updates into deferred pending state
- Updated call sites

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - preserve pending agg funcs when Values drop-zone order changes
- Added deferred handling for agg function changes from Values drop-zone pill menu

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - update test

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - fix test

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - add more cases

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* make CTP checkbox semantics use pending pivot
  mode when deferred mode is on.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - update tests, docs

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* update select all behivour

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* update select all behaviour

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* add more tests, update example

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* fix test

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* fix test

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* ts fix

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* - stop disabled deferred Apply button highlighting on hover in Columns Tool Panel
  - preserve deferred value column ordering on Apply by syncing valueColsSvc order
  - ensure pivot-mode displayed value columns follow Values pill order when no pivot
    result columns are present
  - refresh pill drop zone UI immediately on remove-click so deferred removals are
    visually reflected
  - update deferred apply docs example:
      - add explicit server request/response logs with request ids
      - increase example runner height via exampleHeight in index.mdoc
      - keep example styling reset (no CSS height override)
      - enable strict pivot column order for predictable demo ordering
  - extend behavioural coverage for deferred mode:
      - value column reorder applies in staged order and matches displayed columns
      - remove-pill click updates deferred UI without applying immediately
      - stabilize test setup for pivot-mode deferred scenarios

* lint

* lint

* lint

* lint

* harden deferred Columns Tool Panel rebasing and preserve external updates

  - refactor deferred state handling to a patch-based model (applied snapshot + staged
    deltas) instead of full-state merge replay
  - preserve external grid updates during dirty deferred sessions by rebasing staged changes
    onto latest applied state
  - improve ordered-dimension reconciliation (row groups / pivots / values) with touched-id
    tracking and bounded merge placement
  - optimise Apply to submit only changed column state, and extend behavioural coverage for
    rebase + external-update regression paths

* stabilise deferred apply rebase semantics and expand regression coverage

  - rework ColumnToolPanelDeferredService rebasing to preserve staged intent across external updates, including touched-id metadata for ordered dimensions
  - harden ordered merge behaviour (touched-item placement + LIS-based moved-id detection) to avoid clobbering untouched external reorders
  - keep applyDeferredState change-elision path efficient while preserving deferred apply correctness
  - expand behavioural tests for external-update rebasing, repeated reorder scenarios, and pivot-toggle + deferred visibility apply

* remove virtual-list flake and align deferred value-column dirty-state expectation

* - Fixed deferred context-menu Add to values so it no longer emits { aggFunc: null }:
      - packages/ag-grid-enterprise/src/columnToolPanel/toolPanelContextMenu.ts
      - In deferred mode, if no agg function can be resolved, it now skips staging that state
        item instead of staging a removal-equivalent null agg.
  - Added deferred context-menu behavioural coverage (P3 gap):
      - testing/behavioural/src/columnToolPanel/deferred-apply-mode.test.ts
      - New tests cover:
          - deferred context-menu Add to values stages then applies
          - deferred context-menu Remove from values stages then applies removal

* remove unused method

* lint and add jsdoc

* wip setup

* docs(tool-panel-columns): align deferred SSRM example with read-only setup and extract fake
  server logic

* support legacy themes, add jsdoc

* lint

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* pr review + lint

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* Add a bunch of jsdoc comments

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* removed deferred-mode comments from files where deferred mode is not the primary purpose

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* destruct this

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* more jsdoc

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* remove freezing and cloning

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* add a test for mutation bug

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* back to start

* add flag

* add noop buttons and add localizations

* add strategies

* update example

* support strategy in valueDropZonePanel.ts

* support strategy in baseDropZonePanel.ts

* add beans to columnsToolPanelModule.ts

* add IColumnToolPanelEdits

* wip

* update bean names

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* update bean names

* update ColumnToolPanelFactory

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* expose ColumnToolPanelEditStrategyBean

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* expose getNextSortDirection

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* tie refresh to the actual local mutation point, independent of whether the underlying model fired events.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* refactor(column-tool-panel): thread edit params through tool panel actions

* Drop zone panel and its pills now use one consistent defer/sync mode instead of mixing service calls and bean fallbacks.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* ColumnToolPanel now acts as the single source of defer mode config and consistently passes it to all child components.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* updated to make pill interactions strategy-driven (sync vs deferred), while keeping most logic local to strategy classes.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* refresh to fix ghost pills

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* accept ColumnToolPanelEditParams and use shared base strategy helpers (getEdits()/getDeferredEdits()) so pivot pill updates and displayed items come from deferred
  draft state when deferApply is enabled, otherwise from live services.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* pivotModePanel.ts now takes { deferApply } params, routes toggle actions through the selected edit strategy (setPivotMode) instead of mutating grid options directly, and reads/de-syncs checkbox state
  from deferred draft pivot mode when applicable.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* rowGroupDropZonePanel.ts now accepts optional ColumnToolPanelEditParams, routes row-group updates through getEdits().setRowGroupColumns(...), and in deferred mode renders pills from
  getDeferredEdits().getDraftRowGroupColumns() instead of live rowGroupColsSvc.columns;

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* allow an optional sort-def override callback in setupSort(...), uses that override to render icons/order state (for deferred draft sort display), and exposes refresh() to force immediate icon recomputation after queued interactions

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* valueDropZonePanel.ts now takes optional ColumnToolPanelEditParams, uses getEdits().setValueColumns(...) for updates, and in deferred mode sources displayed value pills from   getDeferredEdits().getDraftValueColumns() rather than live valueColsSvc.columns

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* WIP: columnToolPanelEdits.ts is the core strategy file and currently the riskiest part: it centralizes deferred queues/draft getters (pivot mode, sort events, agg func, row/value/pivot lists), but commit() is still a placeholder so any deferred path that should avoid SSRM/service updates is incomplete until queued operations are applied in a deterministic order with proper event sources and
  then state reset.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* compute deferred draft sort from queued sort events only, with a baselineCleared flag to handle single-sort clears correctly.

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* wip

* refactor(column-tool-panel): add edit strategy utility

* refactor(context): align column tool panel strategy beans with non-dynamic typing

* feat(types): extend IColumnToolPanelEdits community interface surface

* refactor(column-tool-panel): centralize edit strategy access

* fix(drop-zones): use optional edit strategy with service fallbacks

* fix(column-tool-panel): keep deferred selection state in sync

* fix(drop-zones): respect deferred draft state for droppability

* fix(column-tool-panel): align context menu with deferred drafts

* fix(column-tool-panel): refresh pivot sections in deferred mode

* Fix deferred column tool panel agg state

* Refine deferred tool panel example handling

* AG-3471 Remove tool panel getter aliases

* AG-3471 Remove unused column tool panel edits interface

* AG-3471 Convert base tool panel edits to interface

* AG-3471 Refactor deferred tool panel edits

* AG-3471 Add deferred column tool panel regressions

* AG-3471 Add defer mode toggle for column tool panel

* AG-3471 Increase deferred apply example height

* AG-3471 Refresh tool panel strategy after defer toggle

* AG-3471 Preserve pivot labels across mode changes

* AG-3471 Log deferred apply server requests

* AG-3471 Keep deferred sections populated outside pivot mode

* AG-3471 Add defer mode locale key

* Extract column tool panel edit types

* Mirror column tool panel defer styles in legacy themes

* Narrow tool panel drop zone blocking to deferred mode

* Add header drop zone drag regressions

* Restore row group pill sort fallback without tool panel beans

* Add row group pill sorting regression coverage

* Fix drop zone drag typing and local bean names

* Remove deferred apply debug hooks from docs example

* Format column tool panel enterprise files

* AG-3471 Remove unused BeanName import

* Harden deferred column tool panel edits

 - Sync deferred pivot mode commits through grid options instead of mutating ColumnModel internals
 - Recompute deferred move targets from live primary order to keep repeated staged moves stable
 - Guard deferred sort progression when sortSvc is unavailable
 - Refresh pivot mode strategy on cancel to fully discard staged pivot mode state
 - Return optional edit strategies and guard callers that can run without tool panel edit beans
 - Centralise primary colDef order updates behind a guarded helper

* Fix tool panel context menu removals

 - Preserve existing columns that do not match the removal predicate when deactivating menu actions
 - Keep the cached edit strategy typed as present within the tool panel context menu
 - Add a regression covering mixed predicate results in removeColumnsFromList

* Add deferred column tool panel regressions

 - Cover pivotMode grid option sync after deferred pivot commits
 - Cover repeated deferred moves using live target indices between staged operations
 - Cover staged aggFunc reads before commit in deferred mode
 - Cover deferred multi-sort ordering and missing sort service handling
 - Assert pivot commits update grid options and ColumnModel through the supported path

* Remove debug hooks from read-only tool panel example

 - Delete the helper that wrapped tool panel editStrategy methods with console logging
 - Stop logging grid state changes from the read-only toggle handler
 - Remove deferred debug hook installation during example startup

* Add deferred bottom-move regression coverage

 - Cover moving a deferred primary column to the bottom of the list before commit
 - Assert the committed primary column order appends the moved column at the tail

* Fix deferred tool panel bottom-drop ordering

 - Append deferred column moves when the computed target index reaches the draft tail
 - Cover the bottom-drop path through columnMoveUtils.moveItem instead of direct strategy calls
 - Add small helpers to reduce repeated primary column order assertions in the deferred test

* Refine column tool panel strategy internals

 - Rename the synchronous edit bean and shared bean-name type to sync update strategy
 - Inline sort override handling inside _getDisplaySortForColumn and simplify sort indicator icon updates
 - Reuse a shared layout refresh helper in the column tool panel defer handlers
 - Destructure beans in deferred commit and replace nested ternaries with clearer control flow
 - Use existing special-column helpers instead of hard-coded ag-Grid column id prefixes

* Annotate read-only example html callback usage

 - Mark setReadOnly with ts-expect-error because the example invokes it from the page html

* Add deferred pivot mode behavioural regressions

 - Cover restoring pivot columns after disabling and re-enabling deferred pivot mode
 - Verify staged select-all follows deferred non-pivot visibility semantics
 - Keep deferred interactions UI-driven through visible tool panel controls and pills

* Fix deferred pivot mode state handling

 - Restore previous pivot column ids when deferred pivot mode is re-enabled
 - Branch select-all and column updates on drafted pivot mode during deferred edits
 - Keep deferred visibility actions aligned with the tool panel's staged mode

* Unify column tool panel update strategy

- replace separate sync and deferred edit beans with colToolPanelUpdateStrategy

- route tool panel, drop zones and context menu through defer-aware update methods

- rename public bean typing from edit strategy to update strategy

- remove obsolete edit utility and type modules after the migration

* Add deferred tool panel context menu tests

- cover deferred row group actions staying pending until Apply is clicked

- verify Cancel discards deferred value actions from the context menu

- assert deferred pivot actions apply only after confirming the tool panel changes

* Expand deferred column tool panel regressions

- restore deferred pivot, row group, value, label and sort behavioural coverage

- cover defer-mode toggles, cancel flows and external drop-zone interactions

- add commit-path assertion for deferred pivot mode state application

* Modernise tool panel context menu tests

- replace stale row-group UI tests with stable menu-click coverage

- remove invalid assumptions about column ids exposing field and headerName

- tighten AgColumn typings in context-menu test helpers and assertions

* Clean up deferred tool panel typings

- reorder type-only imports and wrap long deferred update strategy expressions

- assign read-only example toggle directly on window instead of using ts-expect-error

- keep column tool panel and drop-zone typing changes lint-compliant

* Add shared column tool panel update facade

- register a shared update bean for row grouping and columns tool panel modules
- expose colToolPanelUpdates in community bean and module typings
- reuse the synchronous update strategy as the facade fallback when no tool panel strategy is present

* Route tool panel UI through shared updates

- replace direct strategy casts and fallback branches with getColumnToolPanelUpdates
- route drop zones, pivot mode, select-all and context menus through one update entrypoint
- keep deferred sort and aggregation interactions on the shared update path

* Simplify shared update facade control flow

- replace the strategy and fallback callbacks with an explicit resolveUpdates helper
- keep facade methods linear while sharing the strategy lookup and fallback instance
- include the related context menu test tidy-up in the follow-up commit

* Refresh deferred tool panel UI after staged actions

- add a shared deferred tool panel refresh helper for open columns sidebars
- refresh row group, value and pivot drop zones after deferred context-menu edits
- refresh deferred tool panel layouts after checkbox and group selection state patches
- cover immediate pill updates for row group, value and pivot context-menu actions

* Reflect deferred checkbox edits in staged pills

- merge deferred columnState patches into staged row group, value and pivot getters
- preserve live grid state while exposing staged checkbox selections in drop zones
- add regressions for checkbox-driven row group, value and pivot pill rendering

* Normalise update helper imports

- reorder update helper imports after the shared facade refactor
- wrap the deferred row-group update call to match repository formatting
- keep export ordering in community entrypoints consistent with formatted output

* Handle null deferred function patches

- treat null rowGroup and pivot column-state patches as an unset deferred value
- narrow deferred patch callbacks to boolean-or-undefined for enterprise type-checking

* Remove unused deferred test binding

- drop an unused toolPanelGui destructure from the deferred pivot behavioural test
- keep the checkbox staging regression coverage unchanged while satisfying lint

* Restore deferred pivot test toggle binding

- add toolPanelGui back to the defer-mode toggle regression setup
- fix the ReferenceError in the immediate year-label toggle behavioural test

* Inline column tool panel update bean access

- replace getColumnToolPanelUpdates() calls with direct colToolPanelUpdates casts
- remove the columnToolPanelUpdateUtils wrapper file
- keep tool panel, drop zone and behavioural test callers aligned with the shared facade bean

* Inline column tool panel bean name literals

- remove exported bean-name aliases from the column tool panel community interface
- use literal bean names in context bean typing and community exports
- switch enterprise update beans to const literal beanName declarations

* Clean up read-only tool panel example

- change the gridReady callback to receive params explicitly in the example setup
- replace the window.setReadOnly assignment with a local function declaration

* test: cover deferred row group checkbox state

* fix: refresh deferred tool panel after pill updates

* fix: keep deferred tool panel drag state consistent

* Move column tool panel update strategy to community

* style: format deferred tool panel updates

* refactor: rename deferred column state strategy consumers

* refactor: rename shared column state update module

* lint

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* lint

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

* AG-3471 Fix deferred tool panel column reorder UI

* AG-3471 Fix column tool panel strategy bean wiring

* lint

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>

---------

Signed-off-by: Victor Musienko <8777372+sdwvit@users.noreply.github.com>
Co-authored-by: seanlandsman <sean@thelandsmans.com>
Use getByRole('option') instead of getByText() to uniquely target
the Radix Select dropdown item, avoiding ambiguity with the trigger
button text.
* AG-16586-batch-aggregation
Replace the standalone copy with a symlink to
external/ag-shared/prompts/.mcp.json so that MCP server
configuration stays in sync across repos automatically.
Symlink .rulesync/mcp.json to ag-shared source
* AG-16805-add-newRawValue-to-cell-changed

* AG-16805-add-newRawValue-to-cell-changed
* AG-16911 Decouple deferred pivot test fake server

* improve pr body
@pull pull bot locked and limited conversation to collaborators Mar 16, 2026
@pull pull bot added the ⤵️ pull label Mar 16, 2026
@pull pull bot merged commit 4553c62 into code:latest Mar 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants