syncfusion-react-accumulation-chart — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-react-accumulation-chart (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive skill for implementing Syncfusion's React Accumulation Chart components (AccumulationChartComponent), which provide circular and hierarchical data visualizations including Pie, Doughnut, Funnel, and Pyramid charts with rich interactive features, export capabilities, and full accessibility support.
Use this skill when you need to:
The Syncfusion React Accumulation Chart component provides four primary chart types:
Key Features:
📄 Read: references/getting-started.md
📄 Read: references/pie-doughnut-charts.md
📄 Read: references/funnel-pyramid-charts.md
📄 Read: references/data-labels.md
📄 Read: references/legend.md
📄 Read: references/tooltip.md
📄 Read: references/grouping.md
📄 Read: references/annotations.md
📄 Read: references/customization.md
📄 Read: references/accessibility.md
📄 Read: references/empty-points.md
📄 Read: references/appearance-theming.md
📄 Read: references/export-print.md
📄 Read: references/api-reference.md
Here's a minimal example to create a basic pie chart:
import {
AccumulationChartComponent,
AccumulationSeriesCollectionDirective,
AccumulationSeriesDirective,
Inject,
AccumulationLegend,
AccumulationDataLabel,
AccumulationTooltip,
PieSeries
} from '@syncfusion/ej2-react-charts';
function App() {
const data = [
{ x: 'Chrome', y: 61.3, text: 'Chrome: 61.3%' },
{ x: 'Safari', y: 24.6, text: 'Safari: 24.6%' },
{ x: 'Edge', y: 5.0, text: 'Edge: 5.0%' },
{ x: 'Firefox', y: 4.8, text: 'Firefox: 4.8%' },
{ x: 'Others', y: 4.3, text: 'Others: 4.3%' }
];
return (
<AccumulationChartComponent
id='pie-chart'
title='Browser Market Share'
legendSettings={{ visible: true }}
tooltip={{ enable: true }}
enableSmartLabels={true}
>
<Inject services={[
AccumulationLegend,
AccumulationDataLabel,
AccumulationTooltip,
PieSeries
]} />
<AccumulationSeriesCollectionDirective>
<AccumulationSeriesDirective
dataSource={data}
xName='x'
yName='y'
radius='90%'
dataLabel={{
visible: true,
position: 'Outside',
name: 'text'
}}
/>
</AccumulationSeriesCollectionDirective>
</AccumulationChartComponent>
);
}<AccumulationChartComponent
id='doughnut-chart'
legendSettings={{ visible: true, position: 'Right' }}
>
<Inject services={[AccumulationLegend, PieSeries]} />
<AccumulationSeriesCollectionDirective>
<AccumulationSeriesDirective
dataSource={data}
xName='category'
yName='value'
innerRadius='40%' // Creates doughnut hole
radius='100%'
/>
</AccumulationSeriesCollectionDirective>
</AccumulationChartComponent><AccumulationChartComponent id='funnel-chart'>
<Inject services={[FunnelSeries, AccumulationDataLabel]} />
<AccumulationSeriesCollectionDirective>
<AccumulationSeriesDirective
dataSource={salesData}
xName='stage'
yName='count'
type='Funnel'
neckWidth='25%'
neckHeight='5%'
gapRatio={0.08}
dataLabel={{ visible: true, position: 'Outside' }}
/>
</AccumulationSeriesCollectionDirective>
</AccumulationChartComponent><AccumulationSeriesDirective
dataSource={data}
xName='x'
yName='y'
startAngle={270} // Start from bottom
endAngle={90} // End at bottom (semi-circle)
radius='100%'
innerRadius='40%'
dataLabel={{ visible: true, position: 'Inside' }}
/><AccumulationSeriesDirective
dataSource={data}
xName='product'
yName='sales'
explode={true} // Enable click-to-explode
explodeOffset='10%' // Distance when exploded
explodeIndex={2} // Explode third slice by default
explodeAll={false} // Don't explode all at once
/>#### Core Properties
| Property | Type | Default | Description | |
|---|---|---|---|---|
dataSource | Object[] \ | DataManager | '' | Data source for the chart |
series | AccumulationSeriesModel[] | - | Collection of series configurations | |
title | string | null | Main title of the chart | |
subTitle | string | null | Subtitle displayed below the main title | |
width | string | null | Width of the chart ('100px', '100%') | |
height | string | null | Height of the chart ('100px', '100%') | |
theme | AccumulationTheme | 'Material' | Visual theme (Material, Bootstrap5, Fluent, Tailwind, etc.) | |
background | string | null | Background color (hex or rgba) | |
backgroundImage | string | null | Background image URL |
#### Feature Properties
| Property | Type | Default | Description |
|---|---|---|---|
enableSmartLabels | boolean | true | Prevent label overlapping with smart positioning |
enableAnimation | boolean | true | Enable animations for chart rendering |
enableBorderOnMouseMove | boolean | true | Show border on mouse hover |
enableExport | boolean | true | Enable export functionality (JPEG, PNG, SVG, PDF) |
useGroupingSeparator | boolean | false | Use thousand separators in numbers |
enablePersistence | boolean | false | Persist component state across page reloads |
enableRtl | boolean | false | Enable right-to-left rendering |
enableHtmlSanitizer | boolean | false | Sanitize untrusted HTML values |
#### Interactive Properties
| Property | Type | Default | Description |
|---|---|---|---|
selectionMode | AccumulationSelectionMode | 'None' | Point selection mode ('None', 'Point') |
selectionPattern | SelectionPattern | 'None' | Pattern for selected points (Chessboard, Dots, etc.) |
highlightMode | AccumulationHighlightMode | 'None' | Point highlighting mode ('None', 'Point') |
highlightPattern | SelectionPattern | 'None' | Pattern for highlighted points |
highlightColor | string | '' | Color for highlighted points |
isMultiSelect | boolean | false | Allow multiple point selection |
selectedDataIndexes | IndexesModel[] | [] | Initially selected point indexes |
#### Layout Properties
| Property | Type | Default | Description |
|---|---|---|---|
center | PieCenterModel | {x: '50%', y: '50%'} | Center position of pie chart |
margin | MarginModel | - | Chart margins (left, right, top, bottom) |
border | BorderModel | - | Chart border (color, width) |
legendSettings | LegendSettingsModel | - | Legend configuration |
tooltip | TooltipSettingsModel | - | Tooltip configuration |
annotations | AccumulationAnnotationSettingsModel[] | - | Chart annotations |
centerLabel | CenterLabelModel | - | Label at chart center |
#### Accessibility Properties
| Property | Type | Default | Description |
|---|---|---|---|
accessibility | AccessibilityModel | - | Accessibility configuration for screen readers |
focusBorderColor | string | null | Custom focus border color |
focusBorderWidth | number | 1.5 | Focus border width in pixels |
focusBorderMargin | number | 0 | Focus border margin in pixels |
locale | string | 'en-US' | Localization culture string |
| Property | Type | Default | Description |
|---|---|---|---|
type | string | 'Pie' | Chart type ('Pie', 'Funnel', 'Pyramid') |
dataSource | Object[] | - | Data array for the series |
xName | string | - | Property name for category/label values |
yName | string | - | Property name for numeric values |
radius | string | '80%' | Outer radius of pie/doughnut |
innerRadius | string | '0%' | Inner radius (doughnut hole) |
startAngle | number | 0 | Starting angle (0-360 degrees) |
endAngle | number | 360 | Ending angle (0-360 degrees) |
explode | boolean | false | Enable click-to-explode functionality |
explodeAll | boolean | false | Explode all slices initially |
explodeIndex | number | - | Index of slice to explode by default |
explodeOffset | string | '30%' | Distance when slice is exploded |
neckWidth | string | '20%' | Funnel neck width |
neckHeight | string | '20%' | Funnel neck height |
gapRatio | number | 0 | Gap between funnel/pyramid segments (0-1) |
width | string | '80%' | Funnel/pyramid width |
height | string | '80%' | Funnel/pyramid height |
groupTo | string | - | Value/count threshold for grouping |
groupMode | string | 'Value' | Grouping mode ('Value', 'Point') |
pointColorMapping | string | - | Property name for point colors |
borderRadius | number | 0 | Corner radius for rounded slices |
applyPattern | boolean | false | Apply pattern fills to slices |
| Method | Parameters | Description | ||
|---|---|---|---|---|
export() | type: ExportType, fileName: string | Export chart (JPEG, PNG, SVG, PDF) | ||
print() | id?: string[] \ | string \ | Element | Print chart |
calculateBounds() | - | Calculate chart bounds | ||
setAnnotationValue() | annotationIndex: number, content: string | Update annotation dynamically |
| Event | Args Type | Description |
|---|---|---|
load | IAccLoadedEventArgs | Before chart loads |
loaded | IAccLoadedEventArgs | After chart loads |
seriesRender | IAccSeriesRenderEventArgs | Before series renders |
pointRender | IAccPointRenderEventArgs | Before each point renders |
textRender | IAccTextRenderEventArgs | Before data labels render |
legendRender | ILegendRenderEventArgs | Before legend renders |
legendClick | IAccLegendClickEventArgs | When legend item is clicked |
annotationRender | IAnnotationRenderEventArgs | Before annotation renders |
tooltipRender | ITooltipRenderEventArgs | Before tooltip renders |
pointClick | IPointEventArgs | When point is clicked |
pointMove | IPointEventArgs | When mouse moves over point |
chartMouseClick | IMouseEventArgs | When chart is clicked |
chartMouseDown | IMouseEventArgs | On mouse down event |
chartMouseUp | IMouseEventArgs | On mouse up event |
chartMouseMove | IMouseEventArgs | When mouse moves over chart |
chartMouseLeave | IMouseEventArgs | When mouse leaves chart |
chartDoubleClick | IMouseEventArgs | When chart is double-clicked |
animationComplete | IAccAnimationCompleteEventArgs | After animation completes |
selectionComplete | IAccSelectionCompleteEventArgs | After selection completes |
resized | IAccResizeEventArgs | After window resize |
beforeResize | IAccBeforeResizeEventArgs | Before window resize |
beforePrint | IPrintEventArgs | Before print starts |
beforeExport | IExportEventArgs | Before export starts |
afterExport | IAfterExportEventArgs | After export completes |
| Property | Purpose | Example Values |
|---|---|---|
type | Chart type | 'Pie', 'Funnel', 'Pyramid' |
radius | Outer size | '90%', '100%' |
innerRadius | Doughnut hole | '0%' (pie), '40%' (doughnut) |
startAngle / endAngle | Slice range | 0 to 360 |
explode | Enable explode | true, false |
neckWidth / neckHeight | Funnel neck | '25%', '5%' |
gapRatio | Segment spacing | 0 to 1 |
enableSmartLabels | Smart positioning | true, false |
When building comprehensive dashboards, combine Accumulation Charts with:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.