Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
40e0363
feat(grid)!: replace frozen panes with pinning and sticky docking
ghiscoding Sep 8, 2026
ef7197f
chore: remove legacy frozen code from slickgrid and services
ghiscoding Sep 8, 2026
93e791c
chore: increase unit tests coverage
ghiscoding Sep 8, 2026
9e681fc
chore: remove all legacy frozen stuff from codebase
ghiscoding Sep 8, 2026
aca989c
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Sep 8, 2026
f7d1b9b
chore: reimplement pinning in header menu, fix column resize, remove …
ghiscoding Sep 8, 2026
d790054
chore: fix all framework demos & horizontal/vertical scrollers
ghiscoding Sep 9, 2026
869c653
chore(tests): fix Vitest warning about vmThread
ghiscoding Sep 9, 2026
10fc72e
chore: fix failing React Cypress test
ghiscoding Sep 9, 2026
96b1d94
chore: increase unit test coverage
ghiscoding Sep 9, 2026
893bcc9
docs: update agents.md file to correctly separate RTK/VEXP
ghiscoding Sep 9, 2026
8ce44cb
chore: fix toggle pin row top/bottom
ghiscoding Sep 9, 2026
690c04e
chore: add `pinnable` flag to disable column pinning
ghiscoding Sep 9, 2026
96e2116
chore: replicate new sticky example to all frameworks
ghiscoding Sep 9, 2026
26cc6ed
chore: improve scrolling perf for pinning and sticky
ghiscoding Sep 9, 2026
6e8efcb
chore: fix issue with mousewheel going left outside viewport
ghiscoding Sep 9, 2026
a37c647
chore(css): remove unnecessary column header float
ghiscoding Sep 9, 2026
adb8b86
chore: make Pinning work with Grouping and fix all UI bugs
ghiscoding Sep 10, 2026
288bafb
chore: add Pin Through Here left/right to Header Menu
ghiscoding Sep 10, 2026
2d8f6a3
chore: rename Pin Columns Left/Right and add test coverage
ghiscoding Sep 10, 2026
4bd4b15
chore: pane rename and old names cleanup
ghiscoding Sep 11, 2026
f02914f
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Sep 11, 2026
77e28d6
chore: add top/bottom/left/right pinning in same example
ghiscoding Sep 11, 2026
a10ee37
chore: dropzone should always be full grid width
ghiscoding Sep 11, 2026
ffd925f
chore: pinning should also work with colspan
ghiscoding Sep 11, 2026
3cc7251
chore: increase test coverage and fix missed cypress tests
ghiscoding Sep 11, 2026
a7e68c4
chore: colspan should spread outside pinning boundary
ghiscoding Sep 12, 2026
aeed7da
chore: column name behind column being resized should show over
ghiscoding Sep 12, 2026
d72b395
chore: rendered-order export/picker fixes
ghiscoding Sep 12, 2026
0fd661d
chore: improve pinning/colspan tests
ghiscoding Sep 12, 2026
c44c576
chore: add missing attributes for a11y
ghiscoding Sep 12, 2026
c67f95a
chore: revisit horizontal scrolling with sticky columns
ghiscoding Sep 12, 2026
3776e8b
chore: simplify SlickGrid error messages & update tests
ghiscoding Sep 12, 2026
6011d51
chore: update error messages in cypress tests
ghiscoding Sep 12, 2026
032ae34
chore: add mocking to avoid jsdom warnings
ghiscoding Sep 12, 2026
f39d3e8
chore: add mocking to avoid jsdom warnings
ghiscoding Sep 12, 2026
a425c24
chore: move Header Menu Sort commands to top of list & change icons
ghiscoding Sep 12, 2026
4861a0c
chore: adjust examples & cypress tests to resolve failures
ghiscoding Sep 12, 2026
bdb10c1
chore: improve sticky horizontal scroll perf
ghiscoding Sep 13, 2026
6f23075
chore: remove Docking Controller public API from barrel
ghiscoding Sep 13, 2026
c3930da
chore: more cleanup and leftover pinning/sticky progress tasks
ghiscoding Sep 14, 2026
c4830b5
chore: add showPinningCommands in header menu options
ghiscoding Sep 15, 2026
5af9009
chore: final code cleanup and Firefox fixes
ghiscoding Sep 15, 2026
358a603
Merge remote-tracking branch 'origin/master' into feat/pinning-and-st…
ghiscoding Sep 15, 2026
369629b
chore(tests): add missing slickgrid line coverage
ghiscoding Sep 15, 2026
639af10
chore: try to add `minCenterRowCount` but not entirely implemented
ghiscoding Sep 15, 2026
f2c806f
chore: improve Firefox perf for grid pinning
ghiscoding Sep 15, 2026
7787ac8
Merge remote-tracking branch 'origin/feat/pinning-and-sticky' into fe…
ghiscoding Sep 15, 2026
05682cf
chore: complete the `minCenterRowCount` fix
ghiscoding Sep 15, 2026
592bbec
chore: resolve vitest error for missing entries
ghiscoding Sep 15, 2026
96ed4e3
chore: add missing a11y attributes
ghiscoding Sep 16, 2026
11fd743
docs: update v11 migration guide
ghiscoding Sep 16, 2026
cc00c4f
chore: fix header title grouping scroll & resize
ghiscoding Sep 17, 2026
37eed2c
chore: rowspan styling fixes & failing cypress tests
ghiscoding Sep 17, 2026
d7db20d
chore: remove extra failing cypress test
ghiscoding Sep 17, 2026
5422755
chore: increase unit test coverage
ghiscoding Sep 17, 2026
43756af
chore: apply fixes from fork Claude audit report
ghiscoding Sep 18, 2026
d2df7e8
chore: resolve recent cypress failures
ghiscoding Sep 19, 2026
44a1df4
chore: resolve recent cypress failures
ghiscoding Sep 19, 2026
007900e
chore: input filter shouldn't lose while typing
ghiscoding Sep 19, 2026
e44dedd
chore: replicate commits from main SlickGrid repo
ghiscoding Sep 19, 2026
078e7d2
chore: colspan and grouping should spread left to right over pinning
ghiscoding Sep 19, 2026
6d8387f
chore: add more grid unit tests and rename constant to align with main
ghiscoding Sep 19, 2026
ab7ee2c
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Sep 19, 2026
ccc6b5a
chore: add more unit tests coverage
ghiscoding Sep 19, 2026
ee35621
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Sep 20, 2026
464d772
fix(grid): resolve row references by id and mirror bottom docking
ghiscoding Sep 22, 2026
332884c
perf(grid): reduce docking lookup and layout work
ghiscoding Sep 22, 2026
c11cbb3
refactor(grid): centralize docking list replacement
ghiscoding Sep 22, 2026
be5d4fb
docs: document id-based row pinning and docking semantics
ghiscoding Sep 22, 2026
0c7c1a2
fix(grid): make setColumns() report rejection
ghiscoding Sep 22, 2026
174a7df
style(grid): format docking sources
ghiscoding Sep 22, 2026
603f629
fix(examples): follow the data with pinned rows
ghiscoding Sep 22, 2026
e72366f
docs(grid): condense narrative docking comments to their intent
ghiscoding Sep 22, 2026
58896c2
test: restore the assertions the pinning rewrite weakened
ghiscoding Sep 22, 2026
287253f
test(grid): cover docking row resolution and sync cache
ghiscoding Sep 22, 2026
e7c6758
fix(grid): clip a cross-band colspan instead of painting it over the …
ghiscoding Sep 22, 2026
cd9bcce
fix(grid): follow a docked centre column that is resized past the vie…
ghiscoding Sep 22, 2026
da9d617
test: stop forcing clicks that the runner's own pre-click scroll was …
ghiscoding Sep 22, 2026
59cea8d
test(grid): keep cross-band colspan host clipped
ghiscoding Sep 22, 2026
7dfacc4
chore: increase unit test coverage & fix Cypress failure
ghiscoding Sep 22, 2026
173a411
docs: require complete line coverage for changed files
ghiscoding Sep 22, 2026
26cd17a
fix(grid): correct four docking geometry measurements
ghiscoding Sep 22, 2026
43c2936
perf(grid): publish the docking scroll offset once
ghiscoding Sep 22, 2026
4f66557
perf(grid): measure a chrome cell's box once per class signature
ghiscoding Sep 22, 2026
39ec4dc
fix(grid): remove the colspan host fallback
ghiscoding Sep 22, 2026
48732f6
fix(examples): survive a column-picker hide from the pre-header
ghiscoding Sep 22, 2026
96a070f
test(examples): scope pre-header picker name assertions
ghiscoding Sep 22, 2026
78f9e07
fix(grid): clear stale row transforms in proxy mode
ghiscoding Sep 22, 2026
f1800b1
fix(grid): inherit the docking scroll offset in proxy mode
ghiscoding Sep 23, 2026
453ad11
test(examples): ignore empty pre-header spacers in title assertions
ghiscoding Sep 23, 2026
14630ab
fix(grid): draw a cross-band colspan as one cell at the boundary
ghiscoding Sep 23, 2026
d5149f7
test(cypress): restore colspan separator assertions
ghiscoding Sep 23, 2026
a2aad97
test(cypress): align colspan boundary assertions
ghiscoding Sep 23, 2026
0879b39
test(cypress): align colspan boundary assertions
ghiscoding Sep 23, 2026
4ebfcc8
refactor(grid): drop the pre-proxy horizontal scroll path
ghiscoding Sep 23, 2026
cb498b6
refactor(grid): centralize pinning rejection alerts
ghiscoding Sep 23, 2026
f29eadd
refactor(grid): drop two redundancies found by the LOC audit
ghiscoding Sep 24, 2026
5808b5a
perf(core): reconcile two-sided sticky columns in one pass
ghiscoding Sep 24, 2026
0cb645c
fix(grid): stop the proxy scrollbar painting over the last row after …
ghiscoding Sep 24, 2026
4765a15
fix(grid): reveal Firefox/Linux scrollbar beside docked rows
ghiscoding Sep 24, 2026
c2da722
fix(grid): render docked rows beneath Firefox scrollbar
ghiscoding Sep 25, 2026
4b1b2cd
feat(grid): support pinned and sticky columns in right-to-left grids
ghiscoding Sep 25, 2026
e5550e1
feat(grid): cover RTL cross-band colspans and lock direction after cr…
ghiscoding Sep 26, 2026
750b792
refactor(grid): place sticky and centre chrome through one branch
ghiscoding Sep 26, 2026
e136272
fix(grid): never render docked rows without their scroll owner
ghiscoding Sep 26, 2026
e6e95fb
refactor(grid): remove the sticky reparenting renderer
ghiscoding Sep 26, 2026
e952323
test(grid): assert the sticky docked-row overlay, not the clipped one
ghiscoding Sep 26, 2026
9ad0235
fix(grid): keep docked sticky cells opaque on unstriped rows
ghiscoding Sep 26, 2026
e0c3071
chore: add colspan pinning & sticky to RTL example
ghiscoding Sep 26, 2026
bd4b926
chore: resolve invalid returned type
ghiscoding Sep 26, 2026
fdca334
chore: increase unit test coverage
ghiscoding Sep 26, 2026
8287562
chore: improve RTL example demo and fix Cypress failures
ghiscoding Sep 26, 2026
e244195
fix(grid): mask scrollbar strip in docked headers
ghiscoding Sep 26, 2026
6e4245c
fix(grid): align sticky columns during resize
ghiscoding Sep 26, 2026
f1475f1
docs: improve v11 migration guide
ghiscoding Sep 27, 2026
09d7b7b
fix(grid): draw pinning separators on the inner edge in right-to-left…
ghiscoding Sep 28, 2026
48d002f
fix(grid): align cross-band colspan fragments with docking bands
ghiscoding Sep 28, 2026
77b909e
chore: resolve Cypress failures with RTL examples
ghiscoding Sep 28, 2026
0ae9db2
chore: run Prettier formatting
ghiscoding Sep 28, 2026
91405b1
perf(common): cache pinned header group measurements
ghiscoding Sep 29, 2026
244075d
fix(grid): keep the pinned band's header separator when a sticky colu…
ghiscoding Sep 29, 2026
7640903
fix(grid): keep a pinned column in its band whatever its sticky flag …
ghiscoding Sep 29, 2026
240d1fe
perf(grid): remove dead scroll-time transform writes and a quadratic …
ghiscoding Sep 29, 2026
cea329d
fix(common): align docking paths with SlickGrid fork
ghiscoding Sep 29, 2026
59a7e1d
fix(common): align pinning contracts with SlickGrid fork
ghiscoding Sep 30, 2026
8a0c712
chore: resolve cypress failures
ghiscoding Sep 30, 2026
e050c41
fix(common): ignore empty pinning options for docking
ghiscoding Sep 30, 2026
aadb623
chore: resolve pinning cypress failure
ghiscoding Sep 30, 2026
c5b053a
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Sep 30, 2026
d8e3ce0
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Sep 30, 2026
1882f50
chore: resolve pinning cypress failure
ghiscoding Sep 30, 2026
3818714
fix: keep docked colspan continuations aligned on scroll
ghiscoding Sep 30, 2026
0b8f110
chore(demo): make sure navbar dropdown has higher z-index than grid
ghiscoding Sep 30, 2026
22e5d49
docs: udpate pinning progress file
ghiscoding Sep 30, 2026
c411242
fix(pinning): preserve layout after restoring docked columns
ghiscoding Sep 30, 2026
ea513c7
refactor(grid): align docking width calculation with SlickGrid fork
ghiscoding Oct 1, 2026
f5dbce6
chore: simplify styling for pinning/sticky features
ghiscoding Oct 1, 2026
714ed00
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Oct 1, 2026
a490c25
fix(pinning): refresh resize geometry when canvas width is unchanged
ghiscoding Oct 1, 2026
8b6d8d1
fix(pinning): cache unresolved row references
ghiscoding Oct 1, 2026
c681a6c
docs(pinning): refresh LOC and performance audit evidence
ghiscoding Oct 1, 2026
1b2a10b
perf(grid): skip the docked geometry refresh when only the row count
ghiscoding Oct 2, 2026
3494f09
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Oct 2, 2026
4028297
chore: merge current interfaces together
ghiscoding Oct 3, 2026
3a60dbe
refactor: externalize menu condition matcher to simplify code
ghiscoding Oct 3, 2026
2b0941a
chore: cleanup code a little and run Prettier
ghiscoding Oct 3, 2026
6276451
chore: remove unwanted Cypress retries unset
ghiscoding Oct 3, 2026
3d7fabd
Merge branch 'master' into feat/pinning-and-sticky
ghiscoding Oct 3, 2026
cea79e3
refactor: rename `column.pinning` to `column.pinned`
ghiscoding Oct 3, 2026
d56f0f6
refactor: use `dequal` for a render signature instead of stringified
ghiscoding Oct 3, 2026
b7cd4bd
docs: improve documentation
ghiscoding Oct 3, 2026
846495e
refactor: merge both pinning icons into a single icon
ghiscoding Oct 6, 2026
eeee73b
docs: remove invalid link to animated gif in pinning docs
ghiscoding Oct 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,282 changes: 1,282 additions & 0 deletions .agents/plans/pinning-sticky-progress.md

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions .agents/skills/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Repository AI Skills

Portable project skills live under `.agents/skills/<skill-name>/SKILL.md` and can be discovered
by Cursor and other Agent Skills-compatible tools.

Available portable skills

- [`pinning-sticky/SKILL.md`](pinning-sticky/SKILL.md) — configuration and maintenance guidance
for permanent pinning and sticky docking.
- [`create-slickgrid-package/SKILL.md`](create-slickgrid-package/SKILL.md) — guidance for creating
optional SlickGrid packages and external resources.
- [`read-docs-and-interfaces/SKILL.md`](read-docs-and-interfaces/SKILL.md) — repository documentation
and TypeScript interface discovery.
- [`webmcp/SKILL.md`](webmcp/SKILL.md) — WebMCP API, demo, and test guidance.

New cross-agent skills should use the portable structure above.

Project implementation plans live under `.agents/plans/`:

- [`formatted-data-cache-implementation.md`](../plans/formatted-data-cache-implementation.md)
- [`pinning-sticky-progress.md`](../plans/pinning-sticky-progress.md)
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: create-slickgrid-package
description: Create a new optional SlickGrid Universal package or external resource in the monorepo.
---

## Create a new SlickGrid‑Universal package

New packages in the slickgrid‑universal monorepo are typically created when adding a new optional **External Resource** (i.e. a plugin or component that integrates with the grid but is not part of the core). This skill documents the recommended steps and minimal references for doing so. Use `SlickEmptyWarningComponent` ([packages/empty-warning-component](packages/empty-warning-component)) as a simple reference implementation.
Expand Down
63 changes: 63 additions & 0 deletions .agents/skills/pinning-sticky/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: pinning-sticky
description: Configure, document, review, or change SlickGrid permanent pinning and scroll-activated sticky docking.
---

# Pinning and Sticky Docking

Use this skill when configuring, documenting, reviewing, or changing SlickGrid permanent pinning
or scroll-activated sticky docking.

## Canonical configuration

- Use the nested `GridOption.pinning` shape for permanent pins:
`columns.left/right` and `rows.top/bottom`.
- Column references may be numeric boundaries or explicit IDs/indexes. Explicit arrays may be
non-contiguous, for example `columns.left: ['account', 'status']`.
- Row references may be indexes, string `datasetIdPropertyName` values, or `{ id }` values.
An in-range numeric row reference is interpreted as an index first; use `{ id: 5 }` to target
a numeric dataset id. ID references follow a row through sorting and filtering, while index
- Pinning and sticky bands follow reading order in RTL: `left` is the leading band (displayed on
the right side), and `right` is the trailing band (displayed on the left). `sticky: true` always
docks at the leading edge.
references remain positional. Non-contiguous rows are valid, for example `rows.top: [0, 2, 4]`.
- `Column.pinned` is the per-column permanent-pin form. `Column.pinnable` only controls whether
built-in pinning commands are exposed.
- Do not infer pinning from drag operations across center/pinned bands. Reordering stays within a
band; pinning and unpinning are explicit through configuration, APIs, or menus.

## Sticky behavior

- Use `Column.sticky` and `GridOption.stickyRows` for scroll-activated docking. Sticky state is
scroll-dependent and is not serialized in Grid State/Presets; permanent pinning is serialized.
- Multiple active top sticky rows stack in natural dataset order. They do not push each other out.
- Sticky row capacity uses the current viewport, not a fixed row count. The default row budget is
60% of viewport height after permanent pinned rows are accounted for, and measured row heights
determine how many candidates fit. `docking.maxRowViewportHeightPercent` and
`docking.overflowStrategy` control this behavior.
- Permanent pinned rows remain part of the normal dataset height. When non-contiguous rows are
pinned, unpinned rows are laid out contiguously so skipped indexes do not create blank gaps.

## Maintenance verification

When changing this feature:

1. Check the shared interfaces and the root documentation first:
`packages/common/src/interfaces/`, `docs/grid-functionalities/pinning.md`, and
`docs/grid-functionalities/sticky.md`.
2. Keep the equivalent pinning/sticky documentation aligned in Angular, Aurelia, React, and Vue.
3. Add or update focused common tests for resolver/layout behavior, then preserve the existing
Vanilla and framework Cypress coverage for pinning, sticky docking, resizing, editing,
selection, grouping, spans, RTL, and variable row heights.
4. Treat `DockingController` as an internal implementation module; do not make it part of the
public API without an explicit API decision.
5. Keep fast vertical-scroll blanking as a separate virtual-rendering task; do not conflate it
with sticky-row activation or docking-layout refresh.

## Source documentation

- [Implementation progress](../../plans/pinning-sticky-progress.md)
- [Pinning](../../../docs/grid-functionalities/pinning.md)
- [Sticky docking](../../../docs/grid-functionalities/sticky.md)
- [Grid State and Presets](../../../docs/grid-functionalities/grid-state-preset.md)
- [v11 migration guide](../../../docs/migrations/migration-to-11.x.md)
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: read-docs-and-interfaces
description: Find the right SlickGrid documentation, interfaces, demos, and tests for a requested feature or API.
---

# Skill: Read Docs & Interfaces

Purpose
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
name: webmcp
description: Discover, configure, or review SlickGrid WebMCP tools, documentation, interfaces, demos, and tests.
---

# Skill: WebMCP / AI Toolkit

Purpose
Expand Down
12 changes: 0 additions & 12 deletions .github/skills/SKILLS.md

This file was deleted.

13 changes: 13 additions & 0 deletions .rtk/filters.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Project-local RTK filters — commit this file with your repo.
# Filters here override user-global and built-in filters.
# Docs: https://github.com/rtk-ai/rtk#custom-filters
schema_version = 1

# Example: suppress build noise from a custom tool
# [filters.my-tool]
# description = "Compact my-tool output"
# match_command = "^my-tool\\s+build"
# strip_ansi = true
# strip_lines_matching = ["^\\s*$", "^Downloading", "^Installing"]
# max_lines = 30
# on_empty = "my-tool: ok"
28 changes: 28 additions & 0 deletions .zed/debug.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Project-local debug tasks
//
// For more documentation on how to configure debug tasks,
// see: https://zed.dev/docs/debugger
[
{
"label": "Vitest - Debug Current Test File",
"adapter": "JavaScript",
"type": "node",
"request": "launch",
"program": "$ZED_WORKTREE_ROOT/node_modules/vitest/vitest.mjs",
"args": [
"run",
"$ZED_RELATIVE_FILE",
"--no-watch",
"--config",
"./test/vitest.config.mts"
],
"cwd": "$ZED_WORKTREE_ROOT",
"console": "integratedTerminal",
"skipFiles": [
"<node_internals>/**",
"**/node_modules/**"
],
"smartStep": true,
"stopOnEntry": false
}
]
2 changes: 2 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ The framework has many options; ensure new options do not contradict or interfer
- When changing shared behavior, check all four framework wrappers and relevant demos.
- Never edit generated `dist/` output unless explicitly requested.
- When drafting a pull request, follow `.github/pull_request_template.md`, including its conventional-commit title requirement and applicable sections and checklist items.
- Return PR titles and descriptions as raw Markdown inside a fenced markdown code block so they can be copied directly.
- Keep interactions and commit messages concise while preserving clarity.

## Testing and quality
Expand All @@ -44,6 +45,7 @@ The framework has many options; ensure new options do not contradict or interfer
- Run the corresponding root CI command: `pnpm angular:cypress:ci`, `pnpm aurelia:cypress:ci`, `pnpm react:cypress:ci`, or `pnpm vue:cypress:ci` (for example, `pnpm aurelia:cypress:ci`). These commands use each framework's Cypress config and are preferred for validating framework-specific E2E suites.
- Add or update tests for behavior changes, especially in core packages.
- Maintain 100% statement, branch, function, and line coverage for changed production code. Scope coverage collection to the changed source files while including all tests needed to exercise them; passing tests alone is not sufficient.
- Before committing, verify 100% line coverage for every changed production source file with unit tests. Do not rely on aggregate coverage: scope the report to the changed files and include all relevant tests. For changed test, documentation, or configuration files that are not production-code coverage targets, run the applicable tests or checks instead.
- While actively iterating with the user, prefer cheap validation such as TypeScript diagnostics, targeted browser/manual checks, or focused benchmarks. Do not run Vitest entire test suite after every small prompt or exploratory edit; save focused Vitest runs for stable checkpoints, when the user asks, or final validation before handing off.
- Run the smallest relevant checks first, then broader checks when practical:

Expand Down
11 changes: 8 additions & 3 deletions demos/aurelia/src/assets/i18n/en/aurelia-slickgrid.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"CLEAR_ALL_FILTERS": "Clear all Filters",
"CLEAR_ALL_GROUPING": "Clear all Grouping",
"CLEAR_ALL_SORTING": "Clear all Sorting",
"CLEAR_PINNING": "Unfreeze Columns/Rows",
"CLEAR_PINNING": "Unpin Columns/Rows",
"CLONE": "Clone",
"COLLAPSE_ALL_GROUPS": "Collapse all Groups",
"COLUMNS": "Columns",
Expand All @@ -28,7 +28,11 @@
"FILTER_SHORTCUTS": "Filter Shortcuts",
"FROM_TO_OF_TOTAL_ITEMS": "{{from}}-{{to}} of {{totalItems}} items",
"FORCE_FIT_COLUMNS": "Force fit columns",
"FREEZE_COLUMNS": "Freeze Columns",
"PIN_COLUMN": "Column Pinning",
"PIN_COLUMNS_LEFT": "Pin Columns Left",
"PIN_COLUMNS_RIGHT": "Pin Columns Right",
"PIN_LEFT": "Pin Left",
"PIN_RIGHT": "Pin Right",
"INVALID_FLOAT": "The number must be valid and have a maximum of {{maxDecimal}} decimals.",
"GREATER_THAN": "Greater than",
"GREATER_THAN_OR_EQUAL_TO": "Greater than or equal to",
Expand Down Expand Up @@ -63,7 +67,8 @@
"SYNCHRONOUS_RESIZE": "Synchronous resize",
"TOGGLE_FILTER_ROW": "Toggle Filter Row",
"TOGGLE_PRE_HEADER_ROW": "Toggle Pre-Header Row",
"UNFREEZE_COLUMNS": "Unfreeze Columns",
"UNPIN_COLUMN": "Unpin Column",
"UNPIN_COLUMNS": "Unpin All Columns",
"X_OF_Y_SELECTED": "# of % selected",
"X_OF_Y_MASS_SELECTED": "{{x}} of {{y}} selected",
"BILLING": {
Expand Down
11 changes: 8 additions & 3 deletions demos/aurelia/src/assets/i18n/fr/aurelia-slickgrid.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"CLEAR_ALL_FILTERS": "Supprimer tous les filtres",
"CLEAR_ALL_GROUPING": "Supprimer tous les groupes",
"CLEAR_ALL_SORTING": "Supprimer tous les tris",
"CLEAR_PINNING": "Dégeler les colonnes/rangées",
"CLEAR_PINNING": "Désépingler les colonnes/rangées",
"CLONE": "Cloner",
"COLLAPSE_ALL_GROUPS": "Réduire tous les groupes",
"COLUMNS": "Colonnes",
Expand All @@ -28,7 +28,11 @@
"FILTER_SHORTCUTS": "Raccourcis de filtre",
"FROM_TO_OF_TOTAL_ITEMS": "{{from}}-{{to}} de {{totalItems}} éléments",
"FORCE_FIT_COLUMNS": "Ajustement forcé des colonnes",
"FREEZE_COLUMNS": "Geler les colonnes",
"PIN_COLUMN": "Épinglage de colonne",
"PIN_COLUMNS_LEFT": "Épingler les colonnes à gauche",
"PIN_COLUMNS_RIGHT": "Épingler les colonnes à droite",
"PIN_LEFT": "Épingler à gauche",
"PIN_RIGHT": "Épingler à droite",
"GREATER_THAN": "Plus grand que",
"GREATER_THAN_OR_EQUAL_TO": "Plus grand ou égal à",
"GROUP_BY": "Grouper par",
Expand Down Expand Up @@ -63,7 +67,8 @@
"SYNCHRONOUS_RESIZE": "Redimension synchrone",
"TOGGLE_FILTER_ROW": "Basculer la ligne des filtres",
"TOGGLE_PRE_HEADER_ROW": "Basculer la ligne de pré-en-tête",
"UNFREEZE_COLUMNS": "Dégeler les colonnes",
"UNPIN_COLUMN": "Désépingler la colonne",
"UNPIN_COLUMNS": "Désépingler toutes les colonnes",
"X_OF_Y_SELECTED": "# de % sélectionnés",
"X_OF_Y_MASS_SELECTED": "{{x}} de {{y}} sélectionnés",
"BILLING": {
Expand Down
10 changes: 8 additions & 2 deletions demos/aurelia/src/examples/locales/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ export const localeFrench = {
TEXT_EXPORT_TO_TEXT_FORMAT: 'Exporter en format texte',
TEXT_FILTER_SHORTCUTS: 'Raccourcis de filtre',
TEXT_FORCE_FIT_COLUMNS: 'Ajustement forcé des colonnes',
TEXT_PIN_COLUMN: 'Épinglage de colonne',
TEXT_PIN_COLUMNS_LEFT: 'Épingler les colonnes à gauche',
TEXT_PIN_COLUMNS_RIGHT: 'Épingler les colonnes à droite',
TEXT_PIN_LEFT: 'Épingler à gauche',
TEXT_PIN_RIGHT: 'Épingler à droite',
TEXT_GROUP_BY: 'Grouper par',
TEXT_HIDE_COLUMN: 'Cacher la colonne',
TEXT_LAST_UPDATE: 'Dernière mise à jour',
Expand All @@ -32,10 +37,11 @@ export const localeFrench = {
TEXT_SORT_ASCENDING: 'Trier par ordre croissant',
TEXT_SORT_DESCENDING: 'Trier par ordre décroissant',
TEXT_STARTS_WITH: 'Commence par',
TEXT_UNFREEZE_COLUMNS: 'Dégeler les colonnes',
TEXT_UNPIN_COLUMN: 'Désépingler la colonne',
TEXT_UNPIN_COLUMNS: 'Désépingler toutes les colonnes',
TEXT_X_OF_Y_SELECTED: '# de % sélectionné',
TEXT_X_OF_Y_MASS_SELECTED: '{{x}} de {{y}} sélectionnés',
TEXT_CLEAR_PINNING: 'Dégeler les colonnes/rangées',
TEXT_CLEAR_PINNING: 'Désépingler les colonnes/rangées',
TEXT_EQUAL_TO: 'Égal à',
TEXT_GREATER_THAN: 'Plus grand que',
TEXT_GREATER_THAN_OR_EQUAL_TO: 'Plus grand ou égal à',
Expand Down
2 changes: 0 additions & 2 deletions demos/aurelia/src/examples/slickgrid/example07.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ export class Example07 {
...this.gridOptions1,
enableHeaderMenu: true,
enableFiltering: true,
// frozenColumn: 2,
// frozenRow: 2,
headerButton: {
onCommand: (_e: any, args) => this.handleOnCommand(_e, args, 2),
},
Expand Down
10 changes: 5 additions & 5 deletions demos/aurelia/src/examples/slickgrid/example14.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,14 @@ <h3>

<hr />

<h3>Grid 2 <small>(with Header Grouping &amp; Frozen/Pinned Columns)</small></h3>
<h3>Grid 2 <small>(with Header Grouping &amp; Pinned Columns)</small></h3>

<div class="col-sm 12">
<button class="btn btn-outline-secondary btn-sm btn-icon" click.trigger="setFrozenColumns2(-1)" data-test="remove-frozen-column-button">
<i class="mdi mdi-close"></i> Remove Frozen Columns
<button class="btn btn-outline-secondary btn-sm btn-icon" click.trigger="setPinnedColumns2(-1)" data-test="remove-pinned-column-button">
<i class="mdi mdi-close"></i> Remove Pinned Columns
</button>
<button class="btn btn-outline-secondary btn-sm btn-icon" click.trigger="setFrozenColumns2(2)" data-test="set-3frozen-columns">
<i class="mdi mdi-pin-outline"></i> Set 3 Frozen Columns
<button class="btn btn-outline-secondary btn-sm btn-icon" click.trigger="setPinnedColumns2(2)" data-test="set-3pinned-columns">
<i class="mdi mdi-pin-outline"></i> Set 3 Pinned Columns
</button>
</div>

Expand Down
11 changes: 0 additions & 11 deletions demos/aurelia/src/examples/slickgrid/example14.scss

This file was deleted.

18 changes: 11 additions & 7 deletions demos/aurelia/src/examples/slickgrid/example14.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { ExcelExportService } from '@slickgrid-universal/excel-export';
import { PdfExportService } from '@slickgrid-universal/pdf-export';
import { type AureliaGridInstance, type Column, type GridOption, type ItemMetadata } from 'aurelia-slickgrid';
import './example14.scss'; // provide custom CSS/SASS styling

export class Example14 {
aureliaGrid1!: AureliaGridInstance;
Expand Down Expand Up @@ -56,6 +55,7 @@ export class Example14 {
preHeaderPanelHeight: 28,
gridHeight: 275,
gridWidth: 800,
rowHeight: 33,
enablePdfExport: true,
enableExcelExport: true,
excelExportOptions: {
Expand All @@ -68,6 +68,9 @@ export class Example14 {
getRowMetadata: (item: any, row: number) => this.renderDifferentColspan(item, row),
},
},
headerMenu: {
showPinningCommands: true,
},
gridMenu: {
iconButtonContainer: 'preheader', // we can display the grid menu icon in either the preheader or in the column header (default)
},
Expand Down Expand Up @@ -104,15 +107,16 @@ export class Example14 {
explicitInitialization: true,
gridHeight: 275,
gridWidth: 800,
frozenColumn: 2,
rowHeight: 33,
pinning: { columns: { left: 2 } },
enablePdfExport: true,
enableExcelExport: true,
excelExportOptions: {
exportWithFormatter: false,
},
externalResources: [new ExcelExportService(), new PdfExportService()],
gridMenu: { hideClearFrozenColumnsCommand: false },
headerMenu: { hideFreezeColumnsCommand: false },
gridMenu: { hideClearPinningCommand: false },
headerMenu: { showPinningCommands: true },
};
}

Expand All @@ -124,7 +128,7 @@ export class Example14 {
id: i,
num: i,
title: 'Task ' + i,
duration: '5 days',
duration: '5 days with some long text to test column span',
percentComplete: Math.round(Math.random() * 100),
start: '01/01/2009',
finish: '01/05/2009',
Expand All @@ -134,8 +138,8 @@ export class Example14 {
return mockDataset;
}

setFrozenColumns2(frozenCols: number) {
this.gridObj2.setOptions({ frozenColumn: frozenCols });
setPinnedColumns2(pinnedCols: number) {
this.gridObj2.setOptions({ pinning: { columns: { left: pinnedCols } } });
this.gridOptions2 = this.gridObj2.getOptions();
}

Expand Down
4 changes: 2 additions & 2 deletions demos/aurelia/src/examples/slickgrid/example15.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,10 +193,10 @@ export class Example15 {
},
gridMenu: {
hideForceFitButton: true,
hideClearFrozenColumnsCommand: false,
hideClearPinningCommand: false,
},
headerMenu: {
hideFreezeColumnsCommand: false,
showPinningCommands: true,
},
enablePagination: true,
pagination: {
Expand Down
Loading
Loading