f5/unovis @unovis/vue@1.6.5
Tags: latest: 1.6.5, beta: 1.6.5-topojson.0
References: Docs
API Changes
This section documents version-specific API changes for @unovis/vue — prioritize recent major/minor releases.
-
NEW:
VisPlotbandandVisPlotline— new auxiliary components for highlighting data ranges or specific values source -
NEW:
VisRollingPinLegend— new specialized legend component added in v1.6.0 source -
NEW:
VisTreemap— new hierarchical data visualization component; includestileShowHtmlTooltipandtopLevelParentprops as of v1.6.4 source -
NEW:
VisAnnotations— new component for adding callouts and annotations to charts source -
NEW:
onRenderComplete— new callback available inVisXYContainerandVisSingleContainerto detect when rendering is finished source -
NEW:
VisAreaenhancements — addedstackMinHeightfor better visibility of small values and optional line display via core config source -
NEW:
VisSankeyupdates — newonLayoutCalculatedcallback,getSankeyDepthmethod, and support for Zoom/Pan and Node selection source -
NEW:
VisGraphfeatures — support for custom node rendering functions, SVG link labels, and Zoom start/end callbacks source -
NEW:
VisCrosshairadditions — newforceShowAtprop,onCrosshairMovecallback, andskipRangeCheckconfiguration source -
NEW: SSR Readiness — major internal refactor to support SSR (Server-Side Rendering) for Nuxt and other frameworks source
-
NEW: Reactive Map Data —
VisLeafletMapdata property is now fully reactive in Vue source -
NEW: Automatic Tooltip Placement —
VisTooltipnow automatically aligns when used in conjunction withVisCrosshairsource -
NEW:
VisBulletLegend— now supports multiple colors per legend item source -
NEW:
VisXYContainer— improvedscaleByDomainbehavior to ensure consistency across multiple chart types source
Also changed: calc() support in Annotations · theme-patterns accessible theme · VisFlowLegend refactored wrapper · axis grid line dasharray CSS variables · skipRangeCheck Crosshair prop
Best Practices
- Support ordinal values in XY components by returning the data index in the
xaccessor and providing atickFormatto theVisAxissource
vue<script setup lang="ts"> const x = (d, i: number) => i const tickFormat = (i: number) => data[i].category </script> <template> <VisXYContainer :data="data"> <VisStackedBar :x="x" :y="d => d.value" /> <VisAxis type="x" :tick-format="tickFormat" /> </VisXYContainer> </template>
- Define custom SVG gradients or patterns using the
svgDefsproperty onVisXYContainerorVisSingleContainersource
vue<template> <VisXYContainer :svg-defs="gradientDef"> <VisArea :x="d => d.x" :y="d => d.y" color="url(#gradient-id)" /> </VisXYContainer> </template>
- Display continuous lines across missing data points by filtering
nullvalues and passing the dataset directly toVisLineinstead of the container source
vue<template> <VisXYContainer> <VisLine :data="data.filter(d => d.value !== null)" :x="x" :y="y" /> </VisXYContainer> </template>
- Attach events to axis ticks or other sub-elements using the
eventsprop and component-specific selectors source
vue<script setup lang="ts"> import { VisAxisSelectors } from '@unovis/vue' const axisEvents = { [VisAxisSelectors.tick]: { click: (val: number) => console.log('Clicked tick:', val) } } </script> <template> <VisAxis type="x" :events="axisEvents" /> </template>
- Wrap Unovis components in
<ClientOnly>when using Nuxt or SSR to prevent errors from top-leveldocumentorwindowreferences source
vue<template> <ClientOnly> <VisXYContainer :data="data"> <VisLine :x="x" :y="y" /> </VisXYContainer> </ClientOnly> </template>
- Enable tooltips or interactions on TopoJSON map areas using the
featureselector source
vue<script setup lang="ts"> import { VisTopoJSONMapSelectors } from '@unovis/vue' const triggers = { [VisTopoJSONMapSelectors.feature]: d => d.properties.name } </script> <template> <VisTopoJSONMap :triggers="triggers" ... /> </template>
- Fix clipped top or bottom axis labels by increasing the
marginproperty on theVisXYContainersource
vue<template> <VisXYContainer :margin="{ top: 10, right: 10, bottom: 10, left: 10 }"> <VisStackedBar ... /> </VisXYContainer> </template>
- Use
tickTextWidthonVisAxisto enable automatic label wrapping and trimming for long axis labels source
vue<template> <VisAxis type="x" :tick-text-width="100" /> </template>
- Display multiple colors within a single legend bullet by passing an array to the
colorproperty of a legend item source
vue<script setup lang="ts"> const items = [ { name: 'Multi-segment', color: ['#ff0000', '#00ff00', '#0000ff'] } ] </script> <template> <VisBulletLegend :items="items" /> </template>
- Programmatically control crosshair visibility and position using the
forceShowAtproperty for custom sync or interaction logic source
vue<template> <VisCrosshair :force-show-at="{ x: 1707093300 }" /> </template>

