Repository navigation
Releases: sregan1/SharePoint-Smart-Charts
Release list
v1.4.0
Installation
- Download
sharepoint-smart-charts.sppkg - Upload to your SharePoint App Catalog
- Deploy tenant-wide or to specific sites
A feature release: richer filtering (operators, multiple viewer filters, cross-chart filtering from another web part), waterfall totals, annotations, keyboard and screen-reader accessibility, SharePoint lists beyond 5,000 items, and the interface in 30 languages — plus a round of bug fixes from a full code review.
Added
- 30 languages — the interface is now translated into the same 30 languages as Smart Org Chart (Arabic, Chinese Simplified/Traditional, Czech, Danish, Dutch, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Norwegian Bokmål, Polish, Portuguese Brazil/Portugal, Romanian, Russian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese, plus English) and follows each user's Microsoft 365 display language.
- Filter operators — the author filter and viewer filters now support contains, equals, does not equal, greater than, less than, between (
low..high), is empty, and is not empty. Viewers can add multiple filter rows, and equals/does-not-equal offer a dropdown of the column's values. - Filter from another web part — new Dynamic Data consumer (Advanced > Filter from Another Web Part): rows are filtered to the value another web part publishes, e.g. a click on another chart.
- Waterfall total bar with configurable increase / decrease / total colors.
- Annotations — vertical markers with a note at a given X value on bar, line, and area charts.
- Y2 value prefix / suffix, and value prefix / suffix / abbreviation now also apply to axis ticks and tooltips on bar, line, and area charts.
- Accessibility — a "View as table" toggle, arrow-key navigation between data points (Enter selects) with screen-reader announcements, and a colorblind-safe palette.
- Session caching for SharePoint List and SharePoint File sources (previously REST/Graph only).
- SharePoint lists larger than 5,000 items now load in full (paged, up to 20,000 rows). Lookup and person columns are flattened to their display text instead of being dropped.
- SD / SEM error bars on averaged groups now use each group's own spread.
Changed
- "Cache API Results" is now "Cache Data" and applies to every network source (SharePoint List, SharePoint File, REST API, Microsoft Graph). Existing values are kept.
- SharePoint list cap raised from 5,000 to 20,000 rows (loaded in pages). Anything past the cap is flagged to editors and viewers.
- Value prefix / suffix / abbreviation now also format axis numbers and tooltips on Bar, Line, and Area charts, not just data labels.
- Documentation screenshots refreshed: viewer filter bar, color palettes (now shows all 8 palettes instead of being cropped), Advanced property pane, and the data source panel (now shows the Microsoft Graph tile).
Fixed
- Auto-refresh and read-mode loads no longer write the column mapping back to the page (which marked it dirty on every refresh).
- Error bars are aligned correctly on a time axis when some rows have unparseable dates.
- The Dual Y Axis group is no longer shown for horizontal bar charts, where it had no effect.
- A Chart.js runtime error now shows an inline message instead of taking down the whole web part.
- Theme changes after load now re-render the chart, and strong/dark section backgrounds are detected as dark.
- Viewers are now told when a source was truncated, and when a background refresh failed while older data is still shown.
- Heatmaps with values between 0 and 1 no longer render almost invisible, and duplicate cells are summed instead of overlapping.
- Abbreviated values no longer round up to "1,000K"; treemap labels stay readable on light palettes; very large datasets no longer risk a stack overflow in min/max.
- Removed the broken
npm testscript (no test runner is configured).
v1.3.1
No new chart types or data sources. Fixes a settings-persistence bug plus a data-loading bug, and changes X/Y Axis Label to default from the selected column instead of requiring manual entry.
Changed
- X Axis Label and Y Axis Label now default to the selected column(s) instead of showing blank until typed in — e.g. mapping "Revenue" to the Y axis labels the axis "Revenue" automatically; multiple Y columns are joined with a comma (e.g. "Revenue, Profit"). The property pane fields still work exactly as before as an optional override — type a custom label (e.g. "Sales ($)") to replace the auto-derived one.
Fixed
- Settings changed via the in-canvas data source panel (Site URL, List Name, and other inline fields) were silently lost on Publish — edits were applied to the web part's in-memory properties but never marked the page dirty, so the page's saved draft never picked them up and Publish reverted to the last-persisted value. Canvas-driven edits now correctly persist.
- Column mapping (X / Y / Label / Size columns) could silently reset to auto-picked defaults on load for SharePoint List, SharePoint File, REST API, and Microsoft Graph sources — the saved mapping was discarded because the column schema isn't known synchronously at mount for network sources; a valid persisted mapping is now trusted until the real schema arrives and can validate it.
Latest Build (v1.3.1.0)
Automated build from commit b4f2afe.
Upload sharepoint-smart-charts.sppkg to your SharePoint App Catalog to deploy.
v1.3.0
[1.3.0] — 2026-07-14
A hardening release. No new chart types or data sources — this release is a full code review pass fixing 43 issues found across data loading, chart rendering, click/tooltip interactivity, and the property pane, plus documentation for previously-undocumented v1.2.0 settings (Dual Y Axis, Error Bars, Significance Brackets) and new screenshots covering Microsoft Graph setup and a finished multi-web-part page.
Added
- Documentation for Dual Y Axis, Error Bars, and Significance Brackets — these v1.2.0 property pane groups had no README/User Guide coverage; both are now fully documented, including a new User Guide section 9
.xlsm/.xlsbsupport for Excel file uploads and SharePoint File URLs (previously only.xlsx/.xls)- CSV parse warnings: a partial parse (some rows malformed) now shows "N row(s) could not be parsed and were skipped" instead of silently dropping rows with no indication
- Fetch timeout (30s) and a clearer error for non-JSON responses on REST API and SharePoint File requests, so a hung or misbehaving endpoint no longer leaves the panel stuck on "Loading…" indefinitely
- Billions (B) abbreviation tier — "Abbreviate Numbers" now formats values ≥ 1 billion as e.g.
1.5B, in addition to the existing K/M tiers - Screenshots: Microsoft Graph source with Data Path mapped to a sample JSON response, SharePoint Admin Center API access screen showing Graph permission approval, and a finished page composing six Smart Data Visualization web parts into an IT operations dashboard
Changed
- Chart export filenames are now derived from the chart title (e.g.
Monthly Revenue.png) instead of the genericchart.png/data.csv, so multiple exports from a page with several web parts no longer collide - SharePoint list loads exclude a short list of always-useless internal fields (
ContentTypeId,GUID,OData__UIVersionString, and similar) from the column mapper - Property pane color fields (Reference Line Color, Threshold Color) now validate hex input and show an error for invalid values instead of silently degrading the chart
- Adopted stricter TypeScript union types (
SortDirection,AggregationType,XAxisType,TrendlineType,ReferenceLineType,LegendPosition,ThresholdDirection) across the web part's property interface - Scatter/bubble/heatmap category grouping and discovery now run in a single pass instead of one scan per category, for datasets with many distinct categories
ChartRendereris now memoized (React.memo) and number formatters are cached, and the read-mode viewer filter debounces its expensive recompute by 250ms instead of re-filtering on every keystroke
Fixed
- Numeric X-axis mapping silently reset on every page load: switching chart types reset a deliberately-mapped numeric X column (e.g. a bar chart of
YearvsSales) back to a text column on mount, and persisted the change — the reset now only fires when actually leaving a chart type that requires a numeric X axis Countaggregation rendered a blank chart: the generatedCountcolumn was never reachable as a Y column; charts now read it correctly, and a column literally namedCountno longer collides with the aggregation output- JPEG export was solid black, and dark-theme PNG export was invisible on a white background — both now composite onto an opaque background before export
- Chart clicks and tooltip extra columns showed the wrong row on Pie/Doughnut, Scatter/Bubble (including color-by-category and log/time-axis variants), and time-axis Bar/Line/Area charts, because filtered/partitioned chart elements were indexed directly into the unfiltered source data
- Microsoft Graph collections silently truncated at ~100 items with no warning — results now page through
@odata.nextLink(up to 50 pages) and show a truncation warning like the SharePoint list source - Auto-refresh and the manual Refresh button could reload from a stale URL after an inline data-source edit, and the wrong session-cache entry could be cleared
- Applying a bookmark while editing didn't persist — a later save could revert the chart to its pre-bookmark view
- Numeric values stored as text sorted alphabetically ("100" before "20") instead of numerically
- Excel date columns loaded as raw serial numbers (e.g.
45329) instead of dates - Per-series color/type overrides desynced when a Y column in the middle of the list was unchecked, silently reassigning colors to the wrong series
- Delimiter changes had no effect on an already-uploaded CSV/TSV file, since the Load button is hidden once a file loads
- A typo'd Data Path, or a null entry in a REST/Graph array, crashed with a raw JavaScript error instead of a readable message
- A SharePoint sharing link ("Copy link" URL) parsed as CSV garbage instead of a clear error explaining a direct file URL is needed
- Dual Y axis and log-scale toggles were miswired: enabling dual axis on a Horizontal Bar chart produced a broken second category axis; "Log Scale (X)" affected the Y axis instead on Scatter/Bubble, and was offered (with no effect) on Histogram
- The
monochromecolor palette's last two swatches were invalid (3-digit hex), producing an invalid color once transparency was applied - Pie/Doughnut legend text lost its color in dark theme
- Significance brackets silently never rendered on Horizontal Bar charts (now Bar chart only, matching where the bracket math is correct)
- Error bars drew wildly incorrect lengths on a logarithmic axis
- "Cache API Results" was offered for every data source even though only REST API and Microsoft Graph use it; now disabled for other sources
- A background auto-refresh could close the data source panel while an editor had it open
- A hand-edited or corrupted bookmark could crash the whole web part for viewers; malformed entries are now filtered out
- Clearing an upper drill level left lower levels in a broken, disabled-but-populated state
- Radar charts ignored the Y Axis Minimum/Maximum setting
- A manual "Load Data" click for REST/Graph sources didn't clear the session cache, so a page reload could resurrect stale cached data
- List discovery in the Site URL field fired one request per keystroke instead of debouncing
- The sheet picker and delimiter selection could persist after switching to a different data source type
Technical
package-solution.jsonfeature version corrected to match the solution version; developer URL corrected tohttps://
v1.2.0
What's New in v1.2.0
Added
- 2 new chart types (17 total): Violin Plot and Before-After Plot
- Violin Plot: distribution shape and density per category rendered as a smooth mirrored density curve — complements Box Plot by showing the full distribution shape, not just quartiles
- Before-After Plot: paired dot plot connecting a "before" value to an "after" value per data row; requires exactly two Y columns
- Logarithmic scale (Right Axis): a Log Scale (Right Axis) toggle in the Dual Y Axis property pane group independently log-scales the secondary axis
- R² in linear trendline label: the chart legend now shows the coefficient of determination for each linear trendline — e.g. Revenue (trend) (R²=0.94) — so fit quality is visible at a glance
- Significance brackets: a new Significance Brackets property pane group lets you annotate statistical comparisons between bar groups; accepts newline-delimited
col1,col2,labelformat or a JSON array
Changed
- Removed Simple / Advanced mode toggle: the property pane now always shows all three pages (Chart, Appearance, Advanced). The Show Advanced Options toggle has been removed; all settings and inline panels are always accessible when data is loaded
- Property pane fields are now conditionally hidden (not just disabled) for chart types where they don't apply
- KPI Tile sub-label now shows the aggregation method — e.g. Revenue • SUM • 12 rows
- Heatmap diverging color scale: blue for negative values, red for positive values
- Histogram bin labels: half-open interval notation (10–<20, 20–30)
- Refresh interval slider is disabled when data source is Upload File
- Updated hero chart image to a 2×2 composite of Bubble, Horizontal Bar, Radar, and Box Plot
Fixed
- Bar chart X axis showing 0–11 instead of category names: axis is now explicitly set to
categoryfor all non-numeric-axis chart types - Pie / Doughnut: null/non-numeric rows filtered before rendering; threshold color applied per-slice
- Before-After chart: clear validation message when fewer than two Y columns are selected
Installation
Download smart-data-visualization.sppkg and upload it to your SharePoint App Catalog (SharePoint Admin Center → Advanced → App Catalog → Apps for SharePoint). Check Make this solution available to all sites and click Deploy.
See the User Guide for full setup instructions.
v1.1.1
What's changed
Added
pm run ship\ script: runs \gulp clean && gulp bundle --ship && gulp package-solution --ship\ in a single command
Changed
- Removed the \webApiPermissionRequests\ declaration from \package-solution.json\ — deploying the package no longer triggers an admin trust/API approval dialog. To use the Microsoft Graph data source, a tenant admin must now manually grant the required scope(s) via SharePoint Admin Center → Advanced → API access. See the README for full instructions.
Fixed
- Switching from a Scatter, Bubble, or Histogram chart back to a category-axis chart type (Bar, Line, Area, etc.) no longer retains the numeric X column; the X axis now automatically resets to the first non-numeric column (e.g. country names, categories)
See CHANGELOG.md for the full history.
v1.1.0
What's New
6 new chart types (15 total)
KPI Tile, Histogram, Waterfall, Box Plot, Treemap, Heatmap
New data sources
Microsoft Graph, Excel sheet picker, result caching, auto-refresh
Data shaping & analytics
Group-by aggregation, trendlines, forecast, reference lines, date/time axis, conditional formatting
Interactivity
Viewer filter bar, details on demand, drill-down hierarchies, bookmarks, SPFx Dynamic Data, custom tooltip columns, color by category
UI improvements
Grouped chart type dropdown (all 15 always visible), Analytics and Reference Line groups auto-hidden for unsupported chart types, advanced options panel, dark theme support, full localization, accessibility
Bug fixes
10 bug fixes including scatter/bubble numeric X auto-correction, bookmark column validation, DataTable key fix, and more.
See CHANGELOG.md for the full list.
v1.0.0
Changelog
All notable changes to Smart Data Visualization are documented here.
[1.0.0] — 2026-06-07
Added
- 9 chart types: Bar (Vertical), Bar (Horizontal), Line, Area, Scatter, Bubble, Pie, Doughnut, Radar
- 4 data sources: Upload File (CSV / TSV / Excel), SharePoint List, SharePoint File (URL), REST API
- File upload persistence: uploaded data serialized to web part properties (up to 200 KB) — survives page reloads and Edit↔Preview switches
- Two-state file UI: "Choose File…" when no file loaded; filename banner with "Change File…" and "Clear" when a file is loaded
- Web part header: optional prominent title above the chart, toggled from the property pane Header group
- 7 color palettes: Office, Vibrant, Pastel, Monochrome, Traffic Light, Warm, Cool; per-series color overrides supported
- Data labels: optional value annotations with prefix, suffix, decimal control, and K/M abbreviation
- Stacked mode: toggle stacking on Bar and Line charts
- Data table: optional paginated tabular view below the chart (20 rows per page)
- Export bar: download chart as PNG, JPEG, CSV, or Excel from every view
- Axis controls: X/Y axis labels, Y axis min/max override, log scale, X label rotation, grid line toggle
- Chart height slider: configurable chart height in pixels
- Legend control: toggle on/off, choose position (Top, Bottom, Left, Right)
- Column mapping: X axis, Y axis (multi-select), Label, Size columns auto-discovered from loaded data
- Migration guard: web parts previously configured with the removed "Paste CSV" source gracefully fall back to Upload File
- Screenshot guide:
mockups/screenshot-guide.htmlwith Puppeteer automation (npm run screenshots) for regenerating documentation images - Sample data: six CSV files covering all nine chart types
- User Guide:
USER-GUIDE.mdwith step-by-step instructions for every feature - README: quick-start, no-build installation instructions, feature overview, and project structure
Technical
- SPFx 1.20.0 · React 17.0.1 · TypeScript 4.7.4
- Chart.js 4.x + react-chartjs-2 5.x + chartjs-plugin-datalabels 2.x
- PapaParse 5.x (CSV/TSV), xlsx 0.18.5 (Excel)
- @pnp/sp 3.22 (SharePoint list/file access)