gravitee-io / gravitee-ui-components

🧱 Set of UI components used across the Gravitee.io ecosystem.
https://components.gravitee.io
Apache License 2.0
18 stars 12 forks source link

[gv-table] Refactoring of `gv-table` component #247

Open aelamrani opened 3 years ago

aelamrani commented 3 years ago

Context

Currently, the gv-table is configuration-based, this is very useful when working with a dataset with only a few basic columns but becomes a real pain with complex rows.

Goal

The goal of this issue is to rework the gv-table to provide a better Developer eXperience. A way to do that can be to use slot to define rows, allowing users to write them in plain HTML file instead of using a config attribute like today. However this is not a silver bullet and leads to questions we need to keep in mind when working on that:

Also, this component is quite used in the Gravitee.io ecosystem so we need to minimise the breaking change or start a fresh component to enable users to gradually migrate.

As of today, the Portal is using 13 gv-table, it could be a good start to take a look at them and use one as a real use case when developing the new version. It would help to:

Additional info / Comments

For any details discuss with @gcusnieux @gaetanmaisse

Related issues:

gaetanmaisse commented 3 years ago

After a few investigations, I confirm handling all the features and use-cases we have in mind will come with a pretty high cost.

Pragmatically, I think we should reorient this issue to find an external library we can use in our Angular apps. Then we can do some custom CSS/SASS to get the style we want (and expose it as part of this package) and write some documentation to advocate its usage in Gravitee.io ecosystem.

Here is a few potential candidates: