Skip to main content

syncfusion-javascript-linear-gauge

Create and customize Syncfusion TypeScript and JavaScript Linear Gauge components for displaying measurements and metrics. Use this skill when user needs to implement a linear gauge, display scalar values in a linear scale, create measurement interfaces, configure ranges and pointers, add annotations, handle user interactions, or customize gauge appearance. Covers installation, configuration, events, accessibility, printing, and internationalization.

소스 정보

저장소
syncfusion/javascript-ui-controls-skills
최근 소스 활동
2026년 9월 15일 05:08
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
10 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
syncfusion-javascript-linear-gauge
description
Create and customize Syncfusion TypeScript and JavaScript Linear Gauge components for displaying measurements and metrics. Use this skill when user needs to implement a linear gauge, display scalar values in a linear scale, create measurement interfaces, configure ranges and pointers, add annotations, handle user interactions, or customize gauge appearance. Covers installation, configuration, events, accessibility, printing, and internationalization.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Data Visualization"}
# Implementing Syncfusion EJ2 Linear Gauge in TypeScript and JavaScript The Syncfusion Essential JS 2 Linear Gauge visualizes measurements and metrics on a linear scale. It can display horizontal or vertical scales with axes, ranges, pointers, labels, annotations, tooltips, animations, and interactive pointer dragging. ## When to Use This Skill Use this skill when working with the Syncfusion EJ2 Linear Gauge in pure TypeScript or JavaScript. Typical use cases include: - **Creating a gauge**: Display a scalar value on a linear scale. - **Building measurement interfaces**: Show temperature, pressure, speed, capacity, utilization, or other metrics. - **Configuring axes**: Define minimum and maximum values, tick intervals, labels, and scale direction. - **Adding ranges**: Define colored zones for normal, warning, and critical values. - **Configuring pointers**: Display current, target, average, or threshold values. - **Customizing appearance**: Modify colors, fonts, backgrounds, borders, gradients, and animations. - **Handling interactions**: Respond to mouse, drag, value-change, load, and rendering events. - **Adding annotations**: Place text or trusted HTML content at specific gauge or axis positions. - **Updating values dynamically**: Use `setPointerValue()` for live data and programmatic updates. - **Exporting and printing**: Generate PNG, JPEG, SVG, or PDF output and print the gauge. - **Internationalization**: Apply culture-aware number and currency formatting. - **Accessibility**: Provide meaningful titles, pointer descriptions, visible values, and accessible controls. - **Responsive layouts**: Render gauges inside flexible dashboard, mobile, and fullscreen layouts. - **Migrating from EJ1**: Replace jQuery-based EJ1 Linear Gauge code with the EJ2 object model. ## Documentation and Navigation Guide Choose the reference that matches the task. ### API Reference **Read:** references/api-reference.md Use this reference when you need: - Linear Gauge classes and models - Properties, methods, and events - Axis, range, pointer, tick, label, annotation, and container models - Event argument interfaces - Optional feature modules - Direct API definitions ### Getting Started **Read:** references/getting-started.md Use this reference for: - Installing `@syncfusion/ej2-lineargauge` - Importing `LinearGauge` - Creating the host element - Initializing the first gauge - Understanding the basic configuration structure - Creating TypeScript and global JavaScript applications ### Configuring Axes and Scales **Read:** references/axis-and-scales.md Use this reference for: - Axis minimum and maximum values - Inversed axes - Opposed positioning - Axis-line customization - Major and minor tick marks - Label formatting and positioning - Multiple axes - Dynamic scale updates - Conditional label rendering ### Adding Ranges and Pointers **Read:** references/ranges-and-pointers.md Use this reference for: - Creating and styling ranges - Range positions, offsets, widths, and borders - Linear and radial range gradients - Bar and marker pointers - Image and text pointers - Pointer borders, opacity, and placement - Pointer animations - Drag-enabled pointers - Multiple pointers on one axis - Dynamic pointer and range updates ### Customization and Appearance **Read:** [references/customization-nd-appearance.md Use this reference for: - Gauge-area background, border, and margin - Internal container styling - Normal, RoundedRectangle, and Thermometer containers - Built-in themes - Semantic color schemes - Font and label customization - Dashed axis lines - Range and pointer borders - Solid and gradient backgrounds - Image and text pointers - Conditional labels through `axisLabelRender` - Additional content through annotations ### Interaction and Events **Read:** references/interaction-and-events.md Use this reference for: - `gaugeMouseDown` - `gaugeMouseMove` - `gaugeMouseUp` - `dragStart` - `dragMove` - `dragEnd` - `valueChange` - Draggable pointers - Form integration - Native range and number inputs - Value validation - Snap-to-interval behavior - Real-time updates - API polling - Timer and event cleanup ### Advanced Features **Read:** references/advanced-features.md Use this reference for: - Printing - PNG, JPEG, SVG, and PDF export - Base64 export - Custom export file names - Annotations - Complete-gauge animation - Pointer animation - Reduced-motion handling - Internationalization - Currency and number formatting - Scale-direction considerations - Accessibility - Migrating from Essential JavaScript 1 to EJ2 ### Responsive Design and Dimensions **Read:** references/dimensions-and-responsive.md Use this reference for: - Gauge-level width and height - Internal container dimensions - Percentage-based dimensions - Fixed dimensions - CSS media queries - `ResizeObserver` - Mobile-friendly dimensions - Responsive labels, ticks, ranges, and pointers - Multi-gauge layouts - Fullscreen rendering - Vertical gauges - Resize cleanup ## Required Package Use the pure TypeScript and JavaScript Linear Gauge package. ```bash npm install @syncfusion/ej2-lineargauge ``` Import the Linear Gauge in TypeScript. ```typescript import { LinearGauge } from '@syncfusion/ej2-lineargauge'; ``` For applications using the complete EJ2 global JavaScript bundle, initialize the component through: ```javascript ej.lineargauge.LinearGauge ``` Do not use Angular wrapper packages or Angular component modules in pure TypeScript and JavaScript examples. ```typescript // Do not use in pure TypeScript. import { LinearGaugeModule, LinearGaugeAllModule } from '@syncfusion/ej2-angular-lineargauge'; ``` ## Optional Feature Modules Some Linear Gauge features require module injection in TypeScript. ```typescript import { Annotations, GaugeTooltip, Gradient, ImageExport, LinearGauge, PdfExport, Print } from '@syncfusion/ej2-lineargauge'; LinearGauge.Inject( Annotations, GaugeTooltip, Gradient, ImageExport, PdfExport, Print ); ``` Inject only the modules required by the application. Use the following module mapping: ```text Annotations -> Annotations Tooltips -> GaugeTooltip Gradients -> Gradient Image export -> ImageExport PDF export -> PdfExport Printing -> Print ``` Global JavaScript bundles may already include these features, depending on how the scripts are packaged. ## Quick Start ### index.html ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Syncfusion EJ2 Linear Gauge</title> <style> * { box-sizing: border-box; } body { margin: 0; padding: 24px; background: #f8fafc; color: #111827; font-family: Arial, Helvetica, sans-serif; } main { width: min(100%, 1000px); margin: 0 auto; } h1 { margin: 0 0 8px; font-size: 26px; } .description { margin: 0 0 16px; line-height: 1.5; } .gauge-card { padding: 16px; border: 1px solid #cbd5e1; border-radius: 12px; background: #ffffff; } #gauge-container { display: block; width: 100%; height: 340px; } </style> </head> <body> <main> <h1>System Utilization</h1> <p class="description"> The Linear Gauge shows the current system utilization on a scale from 0 to 100. </p> <section class="gauge-card" aria-label="System utilization gauge" > <div id="gauge-container"></div> </section> </main> </body> </html> ``` ### index.ts ```typescript import { LinearGauge } from '@syncfusion/ej2-lineargauge'; const gauge: LinearGauge = new LinearGauge({ width: '100%', height: '100%', orientation: 'Horizontal', title: 'Current Utilization', titleStyle: { color: '#111827', fontFamily: 'Arial', size: '18px', fontWeight: '700' }, container: { width: 28, height: 0, type: 'RoundedRectangle', backgroundColor: '#e2e8f0', roundedCornerRadius: 8, border: { color: '#94a3b8', width: 1 } }, axes: [ { minimum: 0, maximum: 100, showLastLabel: true, majorTicks: { interval: 20, position: 'Outside', height: 10, width: 2, color: '#334155' }, minorTicks: { interval: 5, position: 'Outside', height: 5, width: 1, color: '#64748b' }, labelStyle: { format: '{value}%', position: 'Outside', offset: 8, font: { fontFamily: 'Arial', size: '13px', color: '#334155', fontWeight: '600' } }, ranges: [ { start: 0, end: 30, color: '#166534', position: 'Inside', startWidth: 15, endWidth: 15 }, { start: 30, end: 70, color: '#854d0e', position: 'Inside', startWidth: 15, endWidth: 15 }, { start: 70, end: 100, color: '#991b1b', position: 'Inside', startWidth: 15, endWidth: 15 } ], pointers: [ { value: 45, type: 'Bar', color: '#1e293b', width: 11, position: 'Cross', roundedCornerRadius: 4, animationDuration: 700, description: 'Current system utilization is 45 percent' } ] } ] }); gauge.appendTo('#gauge-container'); ``` ### index.js ```javascript var gauge = new ej.lineargauge.LinearGauge({ width: '100%', height: '100%', orientation: 'Horizontal', title: 'Current Utilization', titleStyle: { color: '#111827', fontFamily: 'Arial', size: '18px', fontWeight: '700' }, container: { width: 28, height: 0, type: 'RoundedRectangle', backgroundColor: '#e2e8f0', roundedCornerRadius: 8, border: { color: '#94a3b8', width: 1 } }, axes: [ { minimum: 0, maximum: 100, showLastLabel: true, majorTicks: { interval: 20, position: 'Outside', height: 10, width: 2, color: '#334155' }, minorTicks: { interval: 5, position: 'Outside', height: 5, width: 1, color: '#64748b' }, labelStyle: { format: '{value}%', position: 'Outside', offset: 8, font: { fontFamily: 'Arial', size: '13px', color: '#334155', fontWeight: '600' } }, ranges: [ { start: 0, end: 30, color: '#166534', position: 'Inside', startWidth: 15, endWidth: 15 }, { start: 30, end: 70, color: '#854d0e', position: 'Inside', startWidth: 15, endWidth: 15 }, { start: 70, end: 100, color: '#991b1b', position: 'Inside', startWidth: 15, endWidth: 15 } ], pointers: [ { value: 45, type: 'Bar', color: '#1e293b', width: 11, position: 'Cross', roundedCornerRadius: 4, animationDuration: 700, description: 'Current system utilization is 45 percent' } ] } ] }); gauge.appendTo('#gauge-container'); ``` ## Common Patterns ### Pattern 1: Temperature Gauge Use a vertical gauge with a Thermometer container when the data represents temperature. ```typescript import { LinearGauge } from '@syncfusion/ej2-lineargauge'; const currentTemperature: number = 24; const gauge: LinearGauge = new LinearGauge({ width: '100%', height: '500px', orientation: 'Vertical', container: { type: 'Thermometer', width: 30, backgroundColor: '#e2e8f0', border: { color: '#64748b', width: 1 } }, axes: [ { minimum: 0, maximum: 50, majorTicks: { interval: 10, position: 'Outside' }, minorTicks: { interval: 2, position: 'Outside' }, labelStyle: { format: '{value}°C', position: 'Outside' }, ranges: [ { start: 0, end: 15, color: '#2563eb', startWidth: 12, endWidth: 12 }, { start: 15, end: 30, color: '#166534', startWidth: 12, endWidth: 12 }, { start: 30, end: 50, color: '#991b1b', startWidth: 12, endWidth: 12 } ], pointers: [ {
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기