microsoft / microsoft/SandDance
Metadata on data rows and columns
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.1k
- Forks
- 573
- Avg merge
- 8d 9h
- Merged PRs (30d)
- 4
Description
While this isn't a necessary feature for the data displayed on the screen (or maybe it would), it would form the core for other features in the system that focus around allowing custom rendering of items related to marks on the screen.
There are two potential avenues I see (there may be more) for how to attach data (note, this applies to JSON objects, in that I'm not sure how this would be reflected in flat delimited formats):
A reserved property in JSON
Something like this:
{
id: 1,
// Other properties
__metadata: {
// Whatever you want.
}
}
Where __metadata is a reserved property name and ignored by SandDance when applied to data rows. This wouldn't apply to columns (although the next one would)
Dedicated wrapper type for data and metadata
The load method, instead of taking an array of objects (or a DataView), would take an array of data-container objects, with an optional metadata property, something like (in TypeScript):
interface DataRow {
data: unknown,
metadata: unknown
}
The interface 👆 would be specifically for data rows, for columns, wherever those are defined, they would have a specific property on them allowing metadata to be attached to them.
The load method would then take a DataView, or an array of DataRow objects.
Note, this is strongly related to #158 in that whatever mechanism is used to define column data (or attach/modify existing column data) would be expanded to include metadata for the column (the referenced issue doesn't have a mechanism for data).
Then, when there are rendering methods exposed that are related to marks on the screen, it would be passed the following:
- The data itself
- The metadata for the row
- The data for the columns
- The metadata for the columns
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by reviewing the load method and the existing DataView/data-row handling, then compare the column-data mechanism discussed in #158. The work is done when the metadata representation and the data passed to mark-related rendering methods are defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- data-visualization
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100