argent-grid 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/AGENTS.md +70 -27
  2. package/e2e/advanced.spec.ts +1 -1
  3. package/e2e/benchmark.spec.ts +7 -7
  4. package/e2e/cell-renderers.spec.ts +152 -0
  5. package/e2e/debug-streaming.spec.ts +31 -0
  6. package/e2e/dnd.spec.ts +73 -0
  7. package/e2e/screenshots.spec.ts +1 -1
  8. package/e2e/visual.spec.ts +30 -9
  9. package/e2e/visual.spec.ts-snapshots/checkbox-renderer-mixed.png +0 -0
  10. package/e2e/visual.spec.ts-snapshots/debug.png +0 -0
  11. package/e2e/visual.spec.ts-snapshots/grid-column-group-headers.png +0 -0
  12. package/e2e/visual.spec.ts-snapshots/grid-default.png +0 -0
  13. package/e2e/visual.spec.ts-snapshots/grid-empty-state.png +0 -0
  14. package/e2e/visual.spec.ts-snapshots/grid-filter-popup.png +0 -0
  15. package/e2e/visual.spec.ts-snapshots/grid-scroll-borders.png +0 -0
  16. package/e2e/visual.spec.ts-snapshots/grid-sidebar-buttons.png +0 -0
  17. package/e2e/visual.spec.ts-snapshots/grid-text-filter.png +0 -0
  18. package/e2e/visual.spec.ts-snapshots/grid-with-selection.png +0 -0
  19. package/e2e/visual.spec.ts-snapshots/rating-renderer-varied.png +0 -0
  20. package/package.json +5 -5
  21. package/plan.md +30 -34
  22. package/src/lib/components/argent-grid.component.css +258 -549
  23. package/src/lib/components/argent-grid.component.html +272 -306
  24. package/src/lib/components/argent-grid.component.ts +585 -135
  25. package/src/lib/components/argent-grid.regressions.spec.ts +301 -0
  26. package/src/lib/components/argent-grid.selection.spec.ts +2 -2
  27. package/src/lib/components/set-filter/set-filter.component.spec.ts +191 -0
  28. package/src/lib/components/set-filter/set-filter.component.ts +7 -2
  29. package/src/lib/rendering/canvas-renderer.spec.ts +148 -1
  30. package/src/lib/rendering/canvas-renderer.ts +177 -286
  31. package/src/lib/rendering/render/cells.ts +122 -5
  32. package/src/lib/rendering/render/column-utils.ts +27 -5
  33. package/src/lib/rendering/render/hit-test.ts +6 -11
  34. package/src/lib/rendering/render/index.ts +15 -6
  35. package/src/lib/rendering/render/lines.ts +12 -6
  36. package/src/lib/rendering/render/primitives.ts +269 -7
  37. package/src/lib/rendering/render/types.ts +2 -1
  38. package/src/lib/rendering/render/walk.ts +39 -19
  39. package/src/lib/services/grid.service.spec.ts +76 -0
  40. package/src/lib/services/grid.service.ts +451 -114
  41. package/src/lib/themes/theme-quartz.ts +2 -2
  42. package/src/lib/types/ag-grid-types.ts +500 -0
  43. package/src/stories/Advanced.stories.ts +78 -17
  44. package/src/stories/ArgentGrid.stories.ts +50 -26
  45. package/src/stories/Benchmark.stories.ts +17 -15
  46. package/src/stories/CellRenderers.stories.ts +205 -31
  47. package/src/stories/Filtering.stories.ts +56 -16
  48. package/src/stories/Grouping.stories.ts +86 -13
  49. package/src/stories/Streaming.stories.ts +57 -0
  50. package/src/stories/Theming.stories.ts +23 -10
  51. package/src/stories/Tooltips.stories.ts +381 -0
  52. package/src/stories/benchmark-wrapper.component.ts +69 -29
  53. package/src/stories/story-utils.ts +88 -0
  54. package/src/stories/streaming-wrapper.component.ts +441 -0
  55. package/tsconfig.json +1 -0
package/plan.md CHANGED
@@ -29,11 +29,12 @@
29
29
  | **Accessibility (ARIA)**| Yes | Yes | **Partial (Headers only)** |
30
30
 
31
31
 
32
- ## 🚀 Status: Phase VI Complete - Enterprise Feature Parity
32
+ ## 🚀 Status: Phase VI Underway - Advanced UX
33
33
 
34
- **Phases I-VI**: ✅ Complete (100%)
35
- **Phase VII**: Next (Enterprise Row Models)
36
- **Phase VIII**: ⏳ Future (Final Polish)
34
+ **Phases I-V**: ✅ Complete (100%)
35
+ **Phase VI**: 🚧 Active (Advanced UX & Validation)
36
+ **Phase VII**: ⏳ Next (SSRM & Data Scale)
37
+ **Phase VIII**: ⏳ Future (AI & Formulas)
37
38
 
38
39
  ArgentGrid now has feature parity with AG Grid Enterprise for core features, and has successfully migrated to a Storybook-driven development workflow.
39
40
 
@@ -73,10 +74,10 @@ ArgentGrid now has feature parity with AG Grid Enterprise for core features, and
73
74
  - [x] Add "hamburger" or "ellipsis" menu to column headers.
74
75
  - [x] Support Sort, Filter, and "Hide Column" actions from menu.
75
76
  - [x] Integrate with existing `GridApi`.
76
- - [ ] **Context Menus**:
77
+ - [x] **Context Menus**:
77
78
  - [x] Right-click cell interaction.
78
79
  - [x] Default actions: Copy, Export, Reset Columns.
79
- - [ ] Support for user-defined custom context menu items.
80
+ - [x] Support for user-defined custom context menu items via `getContextMenuItems`.
80
81
  - [x] **Excel-like Range Selection**:
81
82
  - [x] Drag-to-select rectangular ranges of cells.
82
83
  - [x] Visual selection box rendered on Canvas.
@@ -89,39 +90,34 @@ ArgentGrid now has feature parity with AG Grid Enterprise for core features, and
89
90
  - [x] **True Excel Export**: Implementation using `exceljs` for native `.xlsx` files with styles.
90
91
  - [x] **Integrated Sparklines**: Mini-charts rendered directly in cells using the Canvas engine.
91
92
 
92
- ### Phase VI: UX Polish & Extensibility 🚧
93
- - [x] **String-Based Cell Renderers**: Support for cellRenderer functions returning plain text (HTML tags stripped).
93
+ ### Phase VI: Advanced UX & Developer Experience 🚧
94
+ - [x] **String-Based Cell Renderers**: Support for cellRenderer functions returning plain text.
94
95
  - [x] Basic cellRenderer support
95
96
  - [x] HTML tag stripping (plain text only)
96
- - [x] Documentation of limitations (no colors, backgrounds, borders)
97
- - [ ] Async cellRenderer (Promise<string>) - Future
98
- - [ ] Registered renderer names (cellRenderer: 'myRenderer') - Future
99
- - [x] **Context Menu API**: Full implementation of `getContextMenuItems` to allow dynamic, user-defined menu actions.
100
- - [x] Right-click cell interaction
101
- - [x] Default actions: Copy, Export, Reset Columns
102
- - [x] User-defined custom context menu items (PR #11)
103
- - [x] **State Persistence**: Save/Restore user grid state (order, width, filters) to LocalStorage. (PR #12)
104
- - [x] getState(), setState()
105
- - [x] saveState(), restoreState(), clearState(), hasState()
106
- - [x] LocalStorage integration
107
- - [x] Documentation: STATE-PERSISTENCE-GUIDE.md
108
- - [x] **Advanced Filtering**: Set Filter (Excel-style checkboxes) and Multi-Filter support. (PR #13, #14)
109
- - [x] Set filter logic (matchesSetFilter)
110
- - [x] getUniqueValues() method
111
- - [x] SetFilterComponent UI
112
- - [x] UI integration in floating filters
113
- - [ ] Multi-filter support - Future
114
- - [ ] **Advanced Keyboard Navigation**: Full cell-to-cell navigation (Arrows, Tab, Page Up/Down) matching AG Grid behavior.
115
-
116
- ### Phase VII: Enterprise Row Models ⏳ NEXT
97
+ - [ ] Registered renderer names (cellRenderer: 'myRenderer')
98
+ - [x] **Context Menu API**: Full implementation of `getContextMenuItems`.
99
+ - [x] **State Persistence**: Save/Restore user grid state to LocalStorage.
100
+ - [x] **Advanced Filtering (Part 1)**: Set Filter (Excel-style checkboxes).
101
+ - [ ] **Tooltips**: High-performance tooltips for cells and headers.
102
+ - [ ] Hover detection on Canvas coordinates.
103
+ - [ ] Support for `tooltipField` and `tooltipValueGetter` in `ColDef`.
104
+ - [ ] **Multi-Filter Support**: Combine Set Filter with Text/Number filters.
105
+ - [ ] **Advanced Editing & Validation**:
106
+ - [ ] **Cell Editor Validation**: Built-in constraints for user input.
107
+ - [ ] **Bulk Editing**: Drag-to-fill or copy-paste range of values.
108
+ - [ ] **Advanced Keyboard Navigation**: Full cell-to-cell navigation (Arrows, Tab, Page Up/Down).
109
+
110
+ ### Phase VII: Enterprise Data Scale ⏳ NEXT
117
111
  - [ ] **Server-Side Row Model (SSRM)**: Loading and aggregating millions of rows on the server.
118
- - [ ] **Infinite Row Model**: Standard infinite scrolling for large flat datasets.
112
+ - [ ] **Infinite Row Model**: Standard lazy loading for large flat datasets.
113
+ - [ ] **Column Virtualization**: Performance optimization for grids with 100+ columns.
119
114
  - [ ] **Tree Data**: Advanced hierarchical structures with path-based navigation.
120
115
 
121
- ### Phase VIII: Final Polish ⏳ FUTURE
122
- - [ ] **Advanced Accessibility**: Full ARIA compliance and screen reader optimization for the Canvas viewport.
123
- - [ ] **Touch & Mobile Support**: Optimized interactions for mobile devices.
124
- - [ ] **Web Workers**: Move data processing to background threads for even better responsiveness.
116
+ ### Phase VIII: Next-Gen Analytics & AI ⏳ FUTURE
117
+ - [ ] **Formula Engine**: Excel-like formula support in cells.
118
+ - [ ] **AI Toolkit**: Integrated LLM support for data analysis and grid configuration.
119
+ - [ ] **Full Accessibility (ARIA)**: Deep ARIA compliance for Canvas-rendered content.
120
+ - [ ] **Touch & Mobile Support**: Optimized touch interactions.
125
121
 
126
122
  ## 🎉 Project Milestone: PHASE VI COMPLETE!
127
123