DashHtml
1.5.0
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2026 DashHtml Contributors. MIT License.
Package Details
Author(s)
- DashHtml Contributors
Tags
HTML Dashboard Table Export CSV Excel PDF Report Infrastructure
Functions
New-DhDashboard Add-DhTable Set-DhTableLink Export-DhDashboard Get-DhTheme Add-DhSummary Add-DhHtmlBlock Add-DhCollapsible Add-DhFilterCard Add-DhBarChart Add-DhAlertBanner Add-DhPieChart Add-DhBullet Add-DhLineChart Add-DhEventFeed Add-DhStatusGrid Add-DhTabs Add-DhHeatmap Add-DhTopologyMap
Dependencies
This module has no dependencies.
Release Notes
1.5.0 — Tier A widgets: inline tabs, 2-D heatmaps, topology trees.
New cmdlets:
* Add-DhTabs - Inline tabbed content block. Local pivot within one
section of the dashboard flow (distinct from NavGroup
which partitions the whole page). Full W3C tabs
accessibility pattern (role=tablist / tab / tabpanel,
arrow-key navigation, focus-visible outline).
* Add-DhHeatmap - Rows × Columns matrix with a sequential or diverging
numeric colour scale. Distinct from Add-DhStatusGrid
(categorical RAG). -ColorScale 'sequential' | 'diverging',
-Min / -Max auto-fit, -Unit suffix on values, -ShowValues
to render the number inside each cell. Defaults to a
5000-cell ceiling with a soft 1000-cell warning.
* Add-DhTopologyMap - Parent-child tree visualisation (AD Forest → Domain → DC,
vCenter → Cluster → Host, network device hierarchies, etc.).
Recursive subtree-width layout — simple tidy tree, no
force-directed graph. Cycles rejected; missing parents
throw. Per-node Status / Icon / Badge / Tooltip /
LinkTableId / LinkFilter for click-to-jump navigation.
-Direction 'vertical' (default) or 'horizontal'.
Behaviour unchanged for everything else; fully backward compatible at the
API level. 308 Pester tests pass (up from 282 at 1.4.2).
------------------------------------------------------------------------------
1.4.2 — Small UX wins.
Added:
* Add-DhAlertBanner -NavGroup / -NavSubGroup — per-panel banners.
Without the params, banners remain page-global as in 1.4.x.
* Add-DhSummary per-tile Action=@{TableId?;Filter?;Url?;Label?} — the whole
tile becomes clickable, navigating to a registered table (with optional
pre-filter) or opening an external URL. Same shape as the AlertBanner
-Action. Adds .tile-clickable styling + keyboard activation (Enter/Space).
* New-DhDashboard -AutoRefresh '30s' / '5m' / '1h' / '300' — emits a
<meta http-equiv="refresh"> in <head>. Useful for wall-display ops
dashboards. Omit / pass '' to disable (default).
* Native hover tooltips (title="...") on pie slices and bar chart bars —
label / count / percentage shown on hover. No JS library, browser-native.
282 Pester tests pass (up from 266 at 1.4.1).
------------------------------------------------------------------------------
1.4.1 — Per-NavGroup summary strips + JS hoist fix.
Added:
* Add-DhSummary now accepts -NavGroup / -NavSubGroup / -Id, so each panel
in a two-tier nav can have its own KPI strip. Without -NavGroup, the
legacy top-of-page singleton behaviour is preserved. Multiple per-group
strips can coexist alongside one global strip.
* New example: Examples/Multi-Panel-Dashboard.ps1 — focused showcase of the
multi-summary feature.
* Invoke-Demo-DashHtml.ps1 moved to Examples/ and refreshed to exercise the
full v1.4 widget set (banner, gauge, bignumber, bullet, line, pie, status
grid, event feed, sparkline cells, per-group summary).
Fixed:
* JS hoist: pickThresholdClass / classToAccent / classToAccentBg and the
tile-builder helpers (buildTile, buildStandardTile, buildBignumberTile,
buildGaugeTile, tileFormatValue, tileDeltaHtml, tileSparklineHtml) were
nested inside renderSummary() and therefore unreachable from the bullet
and line-chart renderers at runtime. The latent ReferenceError didn't
surface in the Pester tests (which match emitted HTML text rather than
executing the JS), but a browser would have thrown when rendering those
blocks. All helpers are now at module scope and reused everywhere.
266 Pester tests pass (up from 257 at 1.4.0).
------------------------------------------------------------------------------
1.4.0 — KPI & Dashboard Primitives. Major widget expansion driven by the
IT-infrastructure KPI dashboard specification.
New cmdlets:
* Add-DhStatusGrid - rows x columns RAG matrix (services x regions etc.)
* Add-DhAlertBanner - top-of-page dismissible alert strip
* Add-DhEventFeed - chronological severity-tagged audit trail
* Add-DhPieChart - standalone pie / donut block
* Add-DhBullet - actual-vs-target with performance bands
* Add-DhLineChart - line / area chart with axes, multi-series, optional
dashed target / threshold annotation line
Add-DhSummary tile upgrades:
* Inline sparklines (line / area / bars) below the value
* Trend & delta indicators (Previous baseline, auto direction, TrendIsGood
inversion for "lower is better" metrics, percent / absolute / both)
* Style="bignumber" hero metric, full-width, large typography, optional Caption
* Style="gauge" semicircle SVG with threshold-coloured arc + central readout
Cross-cutting:
* Unified -Rag parameter (@{ Green; Amber; Red; NoData }) accepted on summary
items, gauge tiles, bullet items, and table columns; replaces or supplements
the legacy Thresholds=@(...) array shape.
* New Rag theme family using the Office/Excel-compatible RAG palette
(#375623 / #7F4B00 / #9C0006 / #595959) for strict-parity reports.
* Fourth cell-nodata state added across all six themes.
Other:
* Add-DhBarChart gains -Stacked + -SeriesField for multi-series breakdowns.
* Add-DhTable column CellType="sparkline" with SortBy reduction (last / avg /
max / min / sum) and SparklineStyle.
* Two example scripts (Examples/AD-Dashboard.ps1, Examples/vSphere-Dashboard.ps1)
mirror the spec's reference layouts.
* Bug fix: locale-sensitive [double]::TryParse calls in v1.4 normalisers now
use InvariantCulture; protects decimal values on locales like it-IT where
the period is a thousands separator.
Fully backward compatible at the API level. 257 Pester tests pass (up from 116
at the start of v1.4 work).
FileList
- DashHtml.nuspec
- DashHtml.psd1
- DashHtml.psm1
- Private\Build-DhTableSections.ps1
- Private\ConvertTo-DhJsonString.ps1
- Private\ConvertTo-DhRagThresholds.ps1
- Private\Get-DhCssAzureDark.ps1
- Private\Get-DhCssAzureLight.ps1
- Private\Get-DhCssBase.ps1
- Private\Get-DhCssCompanyDark.ps1
- Private\Get-DhCssCompanyLight.ps1
- Private\Get-DhCssDefaultDark.ps1
- Private\Get-DhCssDefaultLight.ps1
- Private\Get-DhCssGreyDark.ps1
- Private\Get-DhCssGreyLight.ps1
- Private\Get-DhCssRagDark.ps1
- Private\Get-DhCssRagLight.ps1
- Private\Get-DhCssVMwareDark.ps1
- Private\Get-DhCssVMwareLight.ps1
- Private\Get-DhJsContent.ps1
- Private\Get-DhThemeCss.ps1
- Public\Add-DhAlertBanner.ps1
- Public\Add-DhBarChart.ps1
- Public\Add-DhBullet.ps1
- Public\Add-DhCollapsible.ps1
- Public\Add-DhEventFeed.ps1
- Public\Add-DhFilterCard.ps1
- Public\Add-DhHeatmap.ps1
- Public\Add-DhHtmlBlock.ps1
- Public\Add-DhLineChart.ps1
- Public\Add-DhPieChart.ps1
- Public\Add-DhStatusGrid.ps1
- Public\Add-DhSummary.ps1
- Public\Add-DhTable.ps1
- Public\Add-DhTabs.ps1
- Public\Add-DhTopologyMap.ps1
- Public\Export-DhDashboard.ps1
- Public\Get-DhTheme.ps1
- Public\New-DhDashboard.ps1
- Public\Set-DhTableLink.ps1