Let's Talk about DT

Hi members,

I’m sorry I complained about dash-table in @HashRocketSyntax 's post Pros & Cons of Dash.

But I think it’s time to redesign DT, because Dash is already very different from it was a few years ago, and now with more users, people are starting to pay attention to some details.

Here are some of my ideas.

  1. Name each of the cells, as Excel does, since we now have pattern-matching callbacks, which makes more sense. This way, we can give the cell more interaction, such as drilling. Operations between cells as well, so that we can do some calculus in the front end that change some cells according to user’s input, without having to use pandas and pass the whole table of data each time.

  2. Add APIs like fig.add_traces, fig.update_layout to DT so that we can keep our code clean. You know, the table component also occupies half of your page and is just as complex as the figure component. It should have the same treatment.

  3. Add state management and keyboard monitoring. As a place for input, it should allow me to regret my typing or pasting. And you know, the users want to enter some newlines. I also want to know when a cell is changed.

  4. Treat rows and columns separately. You know, we usually use DT along with some relational model. So far, I haven’t seen any mainstream database that considers rows and columns together. So don’t give up the chance to select-all, for that useless, column select feature.

  5. After adding these above features, I think the implementation of the filter box may also become less restrictive. Since it can point to a specific cell, I don’t necessarily need to learn a certain syntax to filter an array. There is also the demand of merging cells or rows or columns. If I can point to specific cells, then I just need to point one of the same values ​​to the other, and then hide the pointed ones. There is also the collapsing feature. Since it can locate the cell, is it an idea to add the inheritance relationship to the cell property?

  6. As @chubukov said, the process of adjusting the format is very painful. But if the cell can have more spaces for callback operations, then can I let the users set the format? Or I make an unformatted table, format it with the mouse, then I grab the adjusted result.

  7. That formatting function, if we can’t take both text and date into account, is better not to add it, because its partial supports will make me embarrassed when using list comprehensions.

  8. That dash-pivottable has not been updated for a long time, it is a great project, since it is also a table stuff, may consider it to be merged into DT?

  9. I know we have already implemented selected_cells, is it possible to add hovered_cells by the way? And I don’t want to write callbacks to achieve row and column highlighting, it would be nice to have it built in.