From 8b349db49510195032c33080df03c3c46f26b881 Mon Sep 17 00:00:00 2001 From: etowahadams Date: Mon, 6 May 2024 15:40:38 -0400 Subject: [PATCH] feat: tooltip --- ...er-interaction.md => user-interaction.mdx} | 38 +++++++++++++++++- static/img/doc_images/tooltip.png | Bin 0 -> 24160 bytes 2 files changed, 37 insertions(+), 1 deletion(-) rename docs/{user-interaction.md => user-interaction.mdx} (77%) create mode 100644 static/img/doc_images/tooltip.png diff --git a/docs/user-interaction.md b/docs/user-interaction.mdx similarity index 77% rename from docs/user-interaction.md rename to docs/user-interaction.mdx index 6c98c12..baacccc 100644 --- a/docs/user-interaction.md +++ b/docs/user-interaction.mdx @@ -1,6 +1,8 @@ --- title: User Interaction --- +import {TableWrapper} from '@site/react-components/DocComponments/table' +import GoslingSchema from './assets/gosling.schema.json' ## Zooming and Panning @@ -131,4 +133,38 @@ Users can use **brushing** to select a subset of the data items using a rectangl ... // other tracks ] } -``` \ No newline at end of file +``` + +## Tooltip + +A track can take a `"tooltip"` property to show a tooltip when the user hovers over the track. The tooltip can display the values of the data fields in the track. The tooltip property takes an array of objects, where each objects has the following properties: + + + +Here is an example of a tooltip being used in a track definition: + + + +Corresponding specification: + +```javascript +"tracks": [ + { + ..., + // highlight-start + "tooltip": [ + {"field": "start", "type": "genomic", "alt": "Start Position"}, + {"field": "end", "type": "genomic", "alt": "End Position"}, + { + "field": "peak", + "type": "quantitative", + "alt": "Value", + "format": ".2" + }, + {"field": "sample", "type": "nominal", "alt": "Sample"} + ], + // highlight-end + } +] + +``` diff --git a/static/img/doc_images/tooltip.png b/static/img/doc_images/tooltip.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed69051e97091f2a8e54d04fa9d3a60bdd99d04 GIT binary patch literal 24160 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 Lyosz*w~6>4p=NNW literal 0 HcmV?d00001