1717
1818[ Interactive documentation] ( https://vue-data-ui.graphieros.com/ )
1919
20- A user-empowering data visualization Vue components library.
20+ A user-empowering data visualization Vue components library for eloquent data storytelling .
2121
22- Available components:
22+ Available components
2323
2424## Charts
2525
@@ -94,8 +94,8 @@ npm i vue-data-ui
9494
9595You can declare components globally in your main.js:
9696
97- ```
98- import { createApp } from ' vue'
97+ ``` js
98+ import { createApp } from " vue" ;
9999import App from " ./App.vue" ;
100100// Include the css;
101101import " vue-data-ui/style.css" ;
@@ -106,20 +106,18 @@ import { VueUiRadar } from "vue-data-ui";
106106const app = createApp (App);
107107
108108app .component (" VueUiRadar" , VueUiRadar);
109- app.mount(' #app' );
109+ app .mount (" #app" );
110110```
111111
112112Or you can import just what you need in your files:
113113
114- ```
115- <script setup>
116- import { VueUiRadar, VueUiXy } from "vue-data-ui";
117- </script>
114+ ``` js
115+ < script setup> import {(VueUiRadar , VueUiXy )} from " vue-data-ui" ;< / script>
118116```
119117
120118Since v.2.0.38, you can also use the "VueDataUi" universal component, just specifying which component you are using. You can of course use the slots provided, if the target component has them.
121119
122- ```
120+ ``` js
123121< script setup>
124122import { ref } from " vue" ;
125123import { VueDataUi } from " vue-data-ui" ;
@@ -155,7 +153,7 @@ Types are available in the 'vue-data-ui.d.ts' file under the types directory of
155153
156154Charts with tooltips have a config option to customize tooltip contents:
157155
158- ```
156+ ``` js
159157
160158customFormat : ({ seriesIndex, datapoint, series, config }) => {
161159 return ` <div>${ ... } </div>` ;
@@ -169,17 +167,14 @@ customFormat: ({ seriesIndex, datapoint, series, config }) => {
169167
170168Most Vue Data UI chart components include a #svg slot you can use to introduce customized svg elements (shapes, text, etc).
171169
172- ```
170+ ``` html
173171<VueUiXy :dataset =" dataset" :config =" config" >
174172 <template #svg =" { svg }" >
175173 <foreignObject x =" 100" y =" 0" height =" 100" width =" 150" >
176- <div>
177- This is a custom caption
178- </div>
174+ <div >This is a custom caption</div >
179175 </foreignObject >
180176 </template >
181177</VueUiXy >
182-
183178```
184179
185180The svg slot also works when using the VueDataUi universal component, if the component it wraps supports it.
@@ -202,12 +197,10 @@ All charts expose a #legend slot except for:
202197The legend slot also works when using the VueDataUi universal component, if the component it wraps supports it.
203198It is recommended to set the show legend config attribute to false, to hide the default legend.
204199
205- ```
200+ ``` html
206201<VueUiDonut :config =" config" :dataset =" dataset" >
207202 <template #legend =" { legend }" >
208- <div v-for="item in legend">
209- {{ legend.name }}
210- </div>
203+ <div v-for =" item in legend" >{{ legend.name }}</div >
211204 </template >
212205</VueUiDonut >
213206```
@@ -260,7 +253,7 @@ The following charts bear these slots:
260253
261254```
262255
263- ```
256+ ``` html
264257<VueUiDonut :config =" config" :dataset =" dataset" >
265258 <template #tooltip-before ={ datapoint, seriesIndex, dataset, config } " >
266259 <div>
@@ -281,9 +274,110 @@ The #tooltip-before & #tooltip-after slots also works when using the VueDataUi u
281274
282275If for some reason you can't access the documentation website and need to get the default config object for a component:
283276
284- ```
277+ ``` js
285278import { getVueDataUiConfig } from " vue-data-ui" ;
286279
287280const defaultConfigXy = getVueDataUiConfig (" vue_ui_xy" );
281+ ```
288282
283+ # Available components : details
284+
285+ Type definitions are available in the ` vue-data-ui.d.ts ` file in the ` dist/types ` directory.
286+
287+ ### Universal component
288+
289+ | Name | dataset type | config type | emits / exposed methods | slots | custom tooltip |
290+ | ----------- | ---------------------- | ---------------------- | ----------------------- | ---------------------- | ---------------------- |
291+ | ` VueDataUi ` | (depends on component) | (depends on component) | (depends on component) | (depends on component) | (depends on component) |
292+
293+ ### Quick chart
294+
295+ From the dataset you pass into the props, this component will produce the most adapted chart (either a line, bar or donut chart)
296+
297+ | Name | dataset type | config type | emits / exposed methods | slots | custom tooltip |
298+ | ----------------- | ------------------------ | ----------------------- | ------------------------------------------------------------------- | ---------------------------------------------- | -------------- |
299+ | ` VueUiQuickChart ` | ` VueUiQuickChartDataset ` | ` VueUiQuickChartConfig ` | ` @selectDatapoint ` , ` @selectLegend ` , ` generatePdf ` , ` generateImage ` | ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
300+
301+ ### Mini charts
302+
303+ | Name | dataset type | config type | emits / exposed methods | slots | custom tooltip |
304+ | --------------------- | ---------------------------------- | --------------------------- | ----------------------- | ------ | -------------- |
305+ | ` VueUiSparkline ` | ` VueUiSparklineDatasetItem[] ` | ` VueUiSparklineConfig ` | ` @selectDatapoint ` | ` #svg ` | ❌ |
306+ | ` VueUiSparkbar ` | ` VueUiSparkbarDatasetItem[] ` | ` VueUiSparkbarConfig ` | ` @selectDatapoint ` | ❌ | ❌ |
307+ | ` VueUiSparkStackbar ` | ` VueUiSparkStackbarDatasetItem[] ` | ` VueUiSparkStackbarConfig ` | ` @selectDatapoint ` | ❌ | ❌ |
308+ | ` VueUiSparkHistogram ` | ` VueUiSparkHistogramDatasetItem[] ` | ` VueUiSparkHistogramConfig ` | ` @selectDatapoint ` | ❌ | ❌ |
309+ | ` VueUiSparkGauge ` | ` VueUiSparkGaugeDataset ` | ` VueUiSparkGaugeConfig ` | ❌ | ❌ | ❌ |
310+ | ` VueUiSparkTrend ` | ` number[] ` | ` VueUiSparkTrendConfig ` | ❌ | ❌ | ❌ |
311+
312+ ### Charts
313+
314+ | Name | dataset type | config type | emits / exposed methods | slots | custom tooltip |
315+ | --------------------- | ---------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------- |
316+ | ` VueUiAgePyramid ` | ` Array<Array<string / number>> ` | ` VueUiSparklineConfig ` | ` generatePdf ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
317+ | ` VueUiCandlestick ` | ` Array<Array<string / number>> ` | ` VueUiCandlestickConfig ` | ` generatePdf ` , ` generateImage ` , ` generateCsv ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
318+ | ` VueUiChestnut ` | ` VueUiChestnutDatasetRoot[] ` | ` VueUiChestnutConfig ` | ` @selectRoot ` , ` @selectBranch ` , ` @selectNut ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` | ❌ |
319+ | ` VueUiDonut ` | ` VueUiDonutDatasetItem[] ` | ` VueUiDonutConfig ` | ` @selectDatapoint ` , ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #dataLabel ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
320+ | ` VueUiDonutEvolution ` | ` VueUiDonutEvolutionDatasetItem[] ` | ` VueUiDonutEvolutionConfig ` | ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , | ❌ |
321+ | ` VueUiGalaxy ` | ` VueUiGalaxyDatasetItem[] ` | ` VueUiGalaxyConfig ` | ` @selectDatapoint ` , ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` ,` #tooltip-before ` , ` #tooltip-after ` | ✅ |
322+ | ` VueUiGauge ` | ` VueUiGaugeDataset ` | ` VueUiGaugeConfig ` | ` generatePdf ` , ` generateImage ` | ` #svg ` , ` #legend ` , | ❌ |
323+ | ` VueUiHeatmap ` | ` VueUiHeatmapDatasetItem[] ` | ` VueUiHeatmapConfig ` | ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
324+ | ` VueUiMolecule ` | ` VueUiMoleculeDatasetNode[] ` | ` VueUiMoleculeConfig ` | ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
325+ | ` VueUiMoodRadar ` | ` VueUiMoodRadarDataset ` | ` VueUiMoodRadarConfig ` | ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` | ❌ |
326+ | ` VueUiNestedDonuts ` | ` VueUiNestedDonutsDatasetItem[] ` | ` VueUiNestedDonutsConfig ` | ` @selectDatapoint ` , ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
327+ | ` VueUiOnion ` | ` VueUiOnionDatasetItem[] ` | ` VueUiOnionConfig ` | ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
328+ | ` VueUiQuadrant ` | ` VueUiQuadrantDatasetItem[] ` | ` VueUiQuadrantConfig ` | ` @selectLegend ` , ` @selectPlot ` , ` @selectSide ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
329+ | ` VueUiRadar ` | ` VueUiRadarDataset ` | ` VueUiRadarConfig ` | ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
330+ | ` VueUiRings ` | ` VueUiRingsDatasetItem[] ` | ` VueUiRingsConfig ` | ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
331+ | ` VueUiScatter ` | ` VueUiScatterDatasetItem[] ` | ` VueUiScatterConfig ` | ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
332+ | ` VueUiThermometer ` | ` VueUiThermometerDataset ` | ` VueUiThermometerConfig ` | ` generatePdf ` , ` generateImage ` | ` #svg ` | ❌ |
333+ | ` VueUiTiremarks ` | ` VueUiTiremarksDataset ` | ` VueUiTiremarksConfig ` | ` generatePdf ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ❌ |
334+ | ` VueUiVerticalBar ` | ` VueUiVerticalBarDatasetItem[] ` | ` VueUiWheelConfig ` | ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
335+ | ` VueUiWaffle ` | ` VueUiWaffleDatasetItem[] ` | ` VueUiWaffleConfig ` | ` @selectLegend ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
336+ | ` VueUiWheel ` | ` VueUiWheelDataset ` | ` VueUiWheelConfig ` | ` generatePdf ` , ` generateImage ` | ` #svg ` | ❌ |
337+ | ` VueUiXy ` | ` VueUiXyDatasetItem[] ` | ` VueUiXyConfig ` | ` @selectLegend ` , ` @selectX ` , ` getData ` , ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #svg ` , ` #legend ` , ` #tooltip-before ` , ` #tooltip-after ` | ✅ |
338+
339+ ### 3D charts
340+
341+ | Name | dataset type | config type | emits / exposed methods | slots | custom tooltip |
342+ | ------------ | ------------------- | ------------------ | ------------------------------ | ------ | -------------- |
343+ | ` VueUi3dBar ` | ` VueUi3dBarDataset ` | ` VueUi3dBarConfig ` | ` generatePdf ` , ` generateImage ` | ` #svg ` | ❌ |
344+
345+ ### Data tables
346+
347+ | Name | dataset type | config type | emits / exposed methods | slots |
348+ | --------------------- | ---------------------------------- | --------------------------- | --------------------------------------------- | --------------------------------------------------------------- |
349+ | ` VueUiTable ` | ` VueUiTableDataset ` | ` VueUiTableConfig ` | ❌ | ❌ |
350+ | ` VueUiTableHeatmap ` | ` VueUiTableHeatmapDatasetItem[] ` | ` VueUiTableHeatmapConfig ` | ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ` #caption ` , ` #rowTitle ` , ` #cell ` , ` #sum ` , ` #average ` , ` #median ` |
351+ | ` VueUiTableSparkline ` | ` VueUiTableSparklineDatasetItem[] ` | ` VueUiTableSparklineConfig ` | ` generatePdf ` , ` generateCsv ` , ` generateImage ` | ❌ |
352+
353+ ### Rating
354+
355+ | Name | dataset type | config type | emits / exposed methods |
356+ | ------------- | -------------------- | ------------------- | ----------------------------------- |
357+ | ` VueUiRating ` | ` VueUiRatingDataset ` | ` VueUiRatingConfig ` | ` @rate ` , ` getData ` ,` toggleReadonly ` |
358+ | ` VueUiSmiley ` | ` VueUiRatingDataset ` | ` VueUiSmileyConfig ` | ` @rate ` , ` getData ` ,` toggleReadonly ` |
359+
360+ ### Utilities
361+
362+ | Name | dataset type | config type | emits / exposed methods | slots |
363+ | ----------------- | ------------------------- | ----------------------- | -------------------------------------- | ------------------------------------------------------- |
364+ | ` VueUiAccordion ` | ❌ | ` VueUiAccordionConfig ` | ❌ | ` #arrow ` , ` #title ` , ` #content ` |
365+ | ` VueUiAnnotator ` | ` VueUiAnnotatorDataset ` | ` VueUiAnnotatorConfig ` | ` @toggleOpenState ` , ` @saveAnnotations ` | ❌ |
366+ | ` VueUiCursor ` | ❌ | ` VueUiCursorConfig ` | ❌ | ❌ |
367+ | ` VueUiDashboard ` | ` VueUiDashboardElement[] ` | ` VueUiDashboardConfig ` | ` @change ` | ❌ |
368+ | ` VueUiDigits ` | ` number ` | ` VueUiDigitsConfig ` | ❌ | ❌ |
369+ | ` VueUiKpi ` | ` number ` | ` VueUiKpiConfig ` | ❌ | ` #title ` , ` #value ` , ` #comment-before ` , ` #comment-after ` |
370+ | ` VueUiMiniLoader ` | ❌ | ` VueUiMiniLoaderConfig ` | ❌ | ❌ |
371+ | ` VueUiScreenshot ` | ❌ | ` VueUiScreenshotConfig ` | ` @postImage ` , ` shoot ` , ` close ` | ❌ |
372+ | ` VueUiSkeleton ` | ❌ | ` VueUiSkeletonConfig ` | ❌ | ❌ |
373+ | ` VueUiIcon ` | see below |
374+
375+ ### Icons
376+
377+ Tailor made icons are available through the VueUiIcon component:
378+
379+ ``` html
380+ <VueUiIcon name =" arrowRight" :size =" 24" stroke =" #6376DD" />
289381```
382+
383+ All names of available icons are available in the vue-data-ui.d.ts file under the ` VueUiIconName ` type.
0 commit comments