SuperAPI AI Directory

syncfusion-vue-linear-gauge

Frontend & websites

View repository

Updated 10-16 05:49

About this skill

Implementing Linear Gauge

The Linear Gauge is a Syncfusion Vue component for visualizing numerical values along a linear axis. It renders using SVG for high performance and supports multiple pointers, ranges, annotations, and interactive features like drag-and-drop and tooltips.

When to Use Linear Gauge

  • Measurement displays: Temperature, pressure, speed, battery level
  • Dashboard metrics: KPIs displayed as gauge indicators
  • Real-time monitoring: Updates to pointer values as data changes
  • Multi-level indicators: Multiple pointers showing different metrics on same axis
  • Annotated ranges: Highlighting safe/warning/danger zones

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Package installation and setup
  • Basic component initialization
  • Vue 3 and Vue 2 compatibility
  • Theming and CSS imports
  • First working example

Axis Configuration

📄 Read: references/axis-configuration.md

  • Axis properties (min, max, interval, line style)
  • Label formatting and positioning
  • Axis ranges (visible range)
  • RTL support
  • Multiple axes

Pointers and Ranges

📄 Read: references/pointers-and-ranges.md

  • Marker pointers (shape, size, position)
  • Bar pointers (width, offset)
  • Range bars and ranges
  • Color styling for different elements
  • Performance with multiple elements

Annotations and Customization

📄 Read: references/annotations-and-customization.md

  • Adding text and HTML annotations
  • Annotation positioning and alignment
  • CSS class customization
  • Dynamic style updates
  • Theme integration

Interactions and Events

📄 Read: references/interactions-and-events.md

  • Pointer drag-and-drop functionality
  • Tooltip configuration
  • Event handling (valueChange, drag, resize)
  • Animation behavior
  • Print and export functionality

Advanced Features

📄 Read: references/advanced-features.md

  • Animation configuration
  • Internationalization (i18n) support
  • Accessibility compliance (WCAG, ARIA)
  • Component methods and references
  • Performance optimization
  • Browser compatibility

Troubleshooting

📄 Read: references/troubleshooting.md

  • Common issues and solutions
  • Data binding and updates
  • Event handling gotchas
  • Styling and CSS issues
  • Known limitations

Quick Start Example

<template>
  <ejs-lineargauge id="linearGauge" :axes="axes" :pointers="pointers">
  </ejs-lineargauge>
</template>

<script>
import { LinearGaugeComponent as EjsLineargauge, AxesDirective, AxisDirective, PointersDirective, PointerDirective } from '@syncfusion/ej2-vue-gauges';

export default {
  components: {
    'ejs-lineargauge': EjsLineargauge,
    'e-axes': AxesDirective,
    'e-axis': AxisDirective,
    'e-pointers': PointersDirective,
    'e-pointer': PointerDirective
  },
  data() {
    return {
      axes: [{
        minimum: 0,
        maximum: 100,
        line: { width: 2 },
        pointers: [{
          value: 60,
          type: 'Marker',
          markerType: 'Triangle',
          width: 15,
          border: { width: 2, color: '#F8F8F8' },
          color: '#F262CC'
        }],
        ranges: [{
          start: 0,
          end: 35,
          color: '#3DA58A'
        }, {
          start: 35,
          end: 70,
          color: '#FDD835'
        }, {
          start: 70,
          end: 100,
          color: '#F6464F'
        }]
      }],
      pointers: []
    };
  }
};
</script>

Common Patterns

Pattern 1: Update Pointer Value Programmatically

// Get gauge instance and update pointer value
const gauge = document.getElementById('linearGauge').ej2_instances[0];
gauge.setPointerValue(0, 0, 75); // axis index, pointer index, new value

Pattern 2: Multiple Pointers on Same Axis

data() {
  return {
    axes: [{
      minimum: 0,
      maximum: 100,
      pointers: [
        {
          value: 45,
          type: 'Marker',
          markerType: 'Triangle',
          color: '#FF0000'
        },
        {
          value: 70,
          type: 'Bar',
          width: 8,
          color: '#00FF00'
        }
      ]
    }]
  };
}

Pattern 3: Reactive Data Binding

<template>
  <div>
    <input v-model.number="pointerValue" type="range" min="0" max="100">
    <ejs-lineargauge :axes="axes"></ejs-lineargauge>
  </div>
</template>

<script>
export default {
  data() {
    return {
      pointerValue: 50,
      axes: [{
        minimum: 0,
        maximum: 100,
        pointers: [{
          value: this.pointerValue,
          type: 'Marker'
        }]
      }]
    };
  },
  watch: {
    pointerValue(newVal) {
      const gauge = document.getElementById('linearGauge').ej2_instances[0];
      gauge.setPointerValue(0, 0, newVal);
    }
  }
};
</script>

Key Props and Configuration

Prop Purpose Common Values
minimum Axis lower bound 0, -50, -100
maximum Axis upper bound 100, 50, 360
interval Tick mark interval 10, 20, 25, 50
type Pointer shape 'Marker' | 'Bar'
markerType Marker appearance 'Circle' | 'Triangle' | 'Diamond' | 'Rectangle'
value Pointer position 0-100 (numeric)
width Pointer thickness 2-20 (pixels)
color Fill color '#FF0000', 'red'
startValue Range start numeric value
endValue Range end numeric value