Socket
Socket
Sign inDemoInstall

vue-data-ui

Package Overview
Dependencies
0
Maintainers
1
Versions
425
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vue-data-ui

A user-empowering data visualization Vue 3 components library for eloquent data storytelling


Version published
Weekly downloads
1.1K
decreased by-37.68%
Maintainers
1
Install size
2.64 MB
Created
Weekly downloads
 

Readme

Source




vue-data-ui

npm MadeWithVueJs.com shield GitHub issues NPM npm Static Badge

Interactive documentation

A user-empowering data visualization Vue components library for eloquent data storytelling.

Available components

Charts

Mini charts

3d

Tables

Rating

Utilities

Installation

npm i vue-data-ui

You can declare components globally in your main.js:

import { createApp } from "vue";
import App from "./App.vue";
// Include the css;
import "vue-data-ui/style.css";

// You can declare Vue Data UI components globally
import { VueUiRadar } from "vue-data-ui";

const app = createApp(App);

app.component("VueUiRadar", VueUiRadar);
app.mount("#app");

Or you can import just what you need in your files:

<script setup>import {(VueUiRadar, VueUiXy)} from "vue-data-ui";</script>

Since 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.

<script setup>
import { ref } from "vue";
import { VueDataUi } from "vue-data-ui";
// Include the css;
import "vue-data-ui/style.css";

const config = ref({...});
const dataset = ref([...]);

</script>

<template>

  <VueDataUi
    component="VueUiXy"
    :config="config"
    :dataset="dataset"
  />

</template>

Typescript

Types are available in the 'vue-data-ui.d.ts' file under the types directory of the package.

Nuxt

This repo contains a boilerplate implementation of the vue-data-ui package in Nuxt

Customizable tooltips

Charts with tooltips have a config option to customize tooltip contents:


customFormat: ({ seriesIndex, datapoint, series, config }) => {
  return `<div>${ ... }</div>`;
}

Slots

#svg slot

Most Vue Data UI chart components include a #svg slot you can use to introduce customized svg elements (shapes, text, etc).

<VueUiXy :dataset="dataset" :config="config">
  <template #svg="{ svg }">
    <foreignObject x="100" y="0" height="100" width="150">
      <div>This is a custom caption</div>
    </foreignObject>
  </template>
</VueUiXy>

The svg slot also works when using the VueDataUi universal component, if the component it wraps supports it.

#legend slot (since v.2.0.41)

All charts expose a #legend slot except for:

  • VueUiHeatmap
  • VueUiRelationCircle
  • VueUiSparkHistogram
  • VueUiSparkStackbar
  • VueUiSparkbar
  • VueUiSparkgauge
  • VueUiSparkline
  • VueUiThermometer
  • VueUiTiremarks
  • VueUiWheel
  • VueUiDumbbell

The legend slot also works when using the VueDataUi universal component, if the component it wraps supports it. It is recommended to set the show legend config attribute to false, to hide the default legend.

<VueUiDonut :config="config" :dataset="dataset">
  <template #legend="{ legend }">
    <div v-for="item in legend">{{ legend.name }}</div>
  </template>
</VueUiDonut>

Tooltip #tooltip-before & #tooltip-after slots

Since v.2.0.57, it is possible to further customize tooltip contents with #tooltip-before and #tooltip-after slots. It is that easy to include an image, another chart or any other content into your tooltips. It's an alternative to the config option tooltip.customFormat, in case richer tooltip content is needed.

Both slots expose the following object:

{
  datapoint,
  seriesIndex,
  series,
  config,
}

The following charts bear these slots:

  • VueUiAgePyramid
  • VueUiCandlestick
  • VueUiDonut
  • VueUiGalaxy
  • VueUiHeatmap
  • VueUiMolecule
  • VueUiNestedDonuts
  • VueUiOnion
  • VueUiQuadrant
  • VueUiQuickChart
  • VueUiRadar
  • VueUiRings
  • VueUiScatter
  • VueUiTreemap
  • VueUiVerticalBar
  • VueUiXy *
  • VueUiwaffle

* VueUiXy slots specifically expose the following additional attributes:


{
  ...,
  bars,
  lines,
  plots
}

<VueUiDonut :config="config" :dataset="dataset">
  <template #tooltip-before={ datapoint, seriesIndex, dataset, config }">
    <div>
      This content shows first
    </div>
  </template>
  <template #tooltip-after={ datapoint, seriesIndex, dataset, config }">
    <div>
      This content shows last
    </div>
  </template>
</VueUiDonut>

The #tooltip-before & #tooltip-after slots also works when using the VueDataUi universal component, if the component it wraps supports them.

Config

If for some reason you can't access the documentation website and need to get the default config object for a component:

import { getVueDataUiConfig } from "vue-data-ui";

const defaultConfigXy = getVueDataUiConfig("vue_ui_xy");

Available components : details

Type definitions are available in the vue-data-ui.d.ts file in the dist/types directory.

Universal component

Namedataset typeconfig typeemits / exposed methodsslotscustom tooltip
VueDataUi(depends on component)(depends on component)(depends on component)(depends on component)(depends on component)

Quick chart

From the dataset you pass into the props, this component will produce the most adapted chart (either a line, bar or donut chart)

Namedataset typeconfig typeemits / exposed methodsslotscustom tooltip
VueUiQuickChartVueUiQuickChartDatasetVueUiQuickChartConfig@selectDatapoint, @selectLegend, generatePdf, generateImage#legend, #tooltip-before, #tooltip-after

Mini charts

Namedataset typeconfig typeemits / exposed methodsslotscustom tooltip
VueUiSparklineVueUiSparklineDatasetItem[]VueUiSparklineConfig@selectDatapoint#svg
VueUiSparkbarVueUiSparkbarDatasetItem[]VueUiSparkbarConfig@selectDatapoint
VueUiSparkStackbarVueUiSparkStackbarDatasetItem[]VueUiSparkStackbarConfig@selectDatapoint
VueUiSparkHistogramVueUiSparkHistogramDatasetItem[]VueUiSparkHistogramConfig@selectDatapoint
VueUiSparkGaugeVueUiSparkGaugeDatasetVueUiSparkGaugeConfig
VueUiSparkTrendnumber[]VueUiSparkTrendConfig

Charts

Namedataset typeconfig typeemits / exposed methodsslotscustom tooltip
VueUiAgePyramidArray<Array<string / number>>VueUiSparklineConfiggeneratePdf, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiCandlestickArray<Array<string / number>>VueUiCandlestickConfiggeneratePdf, generateImage, generateCsv#svg, #legend, #tooltip-before, #tooltip-after
VueUiChestnutVueUiChestnutDatasetRoot[]VueUiChestnutConfig@selectRoot, @selectBranch, @selectNut, getData, generatePdf, generateCsv, generateImage#svg, #legend
VueUiDonutVueUiDonutDatasetItem[]VueUiDonutConfig@selectDatapoint, @selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend, #dataLabel, #tooltip-before, #tooltip-after
VueUiDonutEvolutionVueUiDonutEvolutionDatasetItem[]VueUiDonutEvolutionConfig@selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend,
VueUiDumbbellVueUiDumbbellDataset[]VueUiDumbbellConfiggetData, generatePdf, generateCsv, generateImage#svg, #legend,
VueUiGalaxyVueUiGalaxyDatasetItem[]VueUiGalaxyConfig@selectDatapoint, @selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend,#tooltip-before, #tooltip-after
VueUiGaugeVueUiGaugeDatasetVueUiGaugeConfiggeneratePdf, generateImage#svg, #legend,
VueUiHeatmapVueUiHeatmapDatasetItem[]VueUiHeatmapConfiggeneratePdf, generateCsv, generateImage#svg, #tooltip-before, #tooltip-after
VueUiMoleculeVueUiMoleculeDatasetNode[]VueUiMoleculeConfiggetData, generatePdf, generateCsv, generateImage#svg, #tooltip-before, #tooltip-after
VueUiMoodRadarVueUiMoodRadarDatasetVueUiMoodRadarConfiggetData, generatePdf, generateCsv, generateImage#svg, #legend
VueUiNestedDonutsVueUiNestedDonutsDatasetItem[]VueUiNestedDonutsConfig@selectDatapoint, @selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiOnionVueUiOnionDatasetItem[]VueUiOnionConfig@selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiQuadrantVueUiQuadrantDatasetItem[]VueUiQuadrantConfig@selectLegend, @selectPlot, @selectSide, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiRadarVueUiRadarDatasetVueUiRadarConfig@selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiRingsVueUiRingsDatasetItem[]VueUiRingsConfig@selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiScatterVueUiScatterDatasetItem[]VueUiScatterConfiggetData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiStripPlotVueUiStripPlotDataset[]VueUiStripPlotConfig@selectDatapoint, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiThermometerVueUiThermometerDatasetVueUiThermometerConfiggeneratePdf, generateImage#svg
VueUiTiremarksVueUiTiremarksDatasetVueUiTiremarksConfiggeneratePdf, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiTreemapVueUiTreemapDatasetItem[]VueUiTreemapConfig@selectLegend, @selectDatapoint, getData, generatePdf, generateCsv, generateImage#svg, #rect, #legend, #tooltip-before, #tooltip-after
VueUiVerticalBarVueUiVerticalBarDatasetItem[]VueUiWheelConfig@selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiWaffleVueUiWaffleDatasetItem[]VueUiWaffleConfig@selectLegend, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after
VueUiWheelVueUiWheelDatasetVueUiWheelConfiggeneratePdf, generateImage#svg
VueUiXyVueUiXyDatasetItem[]VueUiXyConfig@selectLegend, @selectX, getData, generatePdf, generateCsv, generateImage#svg, #legend, #tooltip-before, #tooltip-after

3D charts

Namedataset typeconfig typeemits / exposed methodsslotscustom tooltip
VueUi3dBarVueUi3dBarDatasetVueUi3dBarConfiggeneratePdf, generateImage#svg

Data tables

Namedataset typeconfig typeemits / exposed methodsslots
VueUiTableVueUiTableDatasetVueUiTableConfig
VueUiTableHeatmapVueUiTableHeatmapDatasetItem[]VueUiTableHeatmapConfiggeneratePdf, generateCsv, generateImage#caption, #rowTitle, #cell, #sum, #average, #median
VueUiTableSparklineVueUiTableSparklineDatasetItem[]VueUiTableSparklineConfiggeneratePdf, generateCsv, generateImage

Rating

Namedataset typeconfig typeemits / exposed methods
VueUiRatingVueUiRatingDatasetVueUiRatingConfig@rate, getData,toggleReadonly
VueUiSmileyVueUiRatingDatasetVueUiSmileyConfig@rate, getData,toggleReadonly

Utilities

Namedataset typeconfig typeemits / exposed methodsslots
VueUiAccordionVueUiAccordionConfig#arrow, #title, #content
VueUiAnnotatorVueUiAnnotatorDatasetVueUiAnnotatorConfig@toggleOpenState, @saveAnnotations
VueUiCursorVueUiCursorConfig
VueUiDashboardVueUiDashboardElement[]VueUiDashboardConfig@change
VueUiDigitsnumberVueUiDigitsConfig
VueUiKpinumberVueUiKpiConfig#title, #value, #comment-before, #comment-after
VueUiMiniLoaderVueUiMiniLoaderConfig
VueUiScreenshotVueUiScreenshotConfig@postImage, shoot, close
VueUiSkeletonVueUiSkeletonConfig
VueUiIconsee below

Icons

Tailor made icons are available through the VueUiIcon component:

<VueUiIcon name="arrowRight" :size="24" stroke="#6376DD" />

All names of available icons are available in the vue-data-ui.d.ts file under the VueUiIconName type.

Keywords

FAQs

Last updated on 13 May 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc