There's a need for a component supporting complex and dynamic tables with features like:
Sorting
Global filtering
Frozen/pinned columns
Selectable rows (rows with checkboxes)
Nested tables
Row editing
etc.
What alternatives have you tried?
The existing cvi-ng-table component is good for static tables. It also uses a visual design which is outdated by now. It could still be kept for simple solutions and backward compatibility.
Does this feature request involve any updates to the reference design?
No
Implementation details
Here're some technical prerequisites for the component architecture and requirements in case a third party dependency is used:
accessibility – the component should be perfectly accessible and ideally should use table markup (read this for an explanation);
if a third party dependency is used, it should have all of its own styles removed to provide maximum flexibility for CVI's own styling and zero conflicts with other frameworks' implementations of the same styles;
it should provide custom template options (eg component API should allow to project HTML to a cell);
it should work in tandem with other CVI components (eg pagination should be exported as a separate component, and it should be abstract enough to be usable within other contexts as well);
component usage and API should be as simple and intuitive as possible;
it should be easy to extend with new functionality (eg virtual scrolling, single cell editing, etc).
if a third party dependency is used, the component should be implemented as a separate package within this repo so that the dependency would end up installed only to a project which explicitly wishes to use the component.
Summary
There's a need for a component supporting complex and dynamic tables with features like:
etc.
What alternatives have you tried?
The existing
cvi-ng-table
component is good for static tables. It also uses a visual design which is outdated by now. It could still be kept for simple solutions and backward compatibility.Does this feature request involve any updates to the reference design?
No
Implementation details
Here're some technical prerequisites for the component architecture and requirements in case a third party dependency is used:
table
markup (read this for an explanation);if a third party dependency is used, the component should be implemented as a separate package within this repo so that the dependency would end up installed only to a project which explicitly wishes to use the component.