Repository navigation
Releases
Releases · havit/Havit.Blazor
v4.29.1
What's Changed
Components
‼️ DictionaryStaticDataStore/StaticDataStore-IsLoadednow means "the store has data and the synchronous getters can be used", even if the data is stale (ShouldRefresh()/ invalidation). Previously an expired store reportedIsLoaded == false, which switched offIsLoadedrender guards although the data was still available. No API change;Clear()and "before first load" still returnfalse#1846‼️ HxInputFile/HxInputFileCore-UploadAsync()no longer hangs forever when the component is disposed: disposing during an upload (e.g. navigating away) or calling it on an already-disposed component now cancels the returned task (TaskCanceledException); a secondUploadAsync()while one is still in flight now throwsInvalidOperationException#1579HxInputFile/HxInputFileCore- fixed: disposing the component mid-upload now aborts the in-flight requests and no longer causes JS errors / unhandled promise rejections from callbacks to the disposed .NET reference #1578HxInputFile/HxInputFileCore- fixed: an upload containing a file overMaxFileSizenever completed (OnUploadCompleteddid not fire,UploadAsync()never returned), and two consecutive oversized files caused aMaximum call stack size exceedederror #1574 #1575HxGrid- fixed: a race in the progress-indicator delay timer could throwNullReferenceExceptionon a thread-pool thread and terminate the process #1817
Packages
- updated dependencies
Full Changelog: v4.28.1...v4.29.1
v4.28.1
What's Changed
Components
‼️ HxInputFile/HxInputFileCore- removed theFileCountproperty. It was never set and always returned0, and onHxInputFileit threwNullReferenceExceptionbefore the first render #1577HxInputFile/HxInputFileCore- fixed:Settings.UploadHttpMethodandDefaults.UploadHttpMethodwere ignored because the parameter's built-in"POST"default always took precedence. The usual Parameter → Settings → Defaults order now applies #1576HxScrollspy- fixed: disposing the component before its ScrollSpy instance was initialized could throw a JSTypeErrorduring disposal #1641- minor internal fixes
Full Changelog: v4.28.0...v4.28.1
v4.28.0
What's Changed
Components
‼️ HxInputDateRange- nativeDateOnlyRangesupport: the component is now generic (HxInputDateRange<TValue>) and binds directly toHavit.DateOnlyRangeorHavit.DateTimeRange#1807- existing
@bind-Valuemarkup keeps working, because the type is inferred - breaking: explicit C# references (
@reffields, subclasses, render-tree code) must change toHxInputDateRange<DateTimeRange>(or<DateOnlyRange>), and consumers must rebuild InputDateRangeSettings,InputDateRangePredefinedRangesItemandHxInputDateRange.Defaultsare non-generic and shared by both range types; predefined ranges stayDateTimeRange-based and are converted internally forDateOnlybindings
- existing
HxInputDate/HxInputDateRange- fixed: a date picked from the calendar was reported as invalid for cultures whose short date pattern has a quoted literal (e.g.bg-BGd.MM.yyyy 'г'.,tk-TM) #1806
Packages
Havit.Blazor.ApplicationInsights(v1.1.0) - telemetry calls made before the Application Insights JS SDK finishes loading are now held and replayed in order once it initializes, instead of hitting the snippet stubs (which could throw and shut down the circuit or drop telemetry); if the SDK never loads, calls are released after 15 s. The bootstrap script no longer useseval(), so'unsafe-eval'is no longer needed under CSP #1815- updated dependencies
Full Changelog: v4.27.0...v4.28.0
v4.27.0
What's Changed
Components
HxTreeView- newExpandOnSelectionparameter: selecting an item (by click or viaSelectedItem) expands its children; selection never collapses an item. Defaultfalse, so current behavior is unchanged #1773 by @jakakordez 💕HxGoogleTagManager- Static SSR / prerendering and enhanced navigation are now supported: the GTM script renders inline in SSR, a JS initializer pushes a virtual page view onenhancedload, and page views are deduplicated so rendering the tracker more than once is safe; newNonceparameter for CSP scenarios and newEnableInitialPageViewTracking(defaulttrue) to suppress the duplicate announcement of the landing page #1769HxGrid-RefreshDataAsyncon an already-disposed grid is now a silent no-op instead of throwingInvalidOperationException(behavior introduced in v4.25.0). Disposal during in-flight async work — navigating away whileOnInitializedAsyncis still awaiting data — is a routine Blazor scenario the caller cannot reliably guard against #1783HxTooltip- fixed: an empty-stringTextrendereddata-bs-title="", which made Bootstrap's tooltip initialization throw and could crash the Blazor circuit; setting the content later now also updates Bootstrap's internal config #1774HxMarkdown- fixed: trailing#characters are preserved in ATX headings when not preceded by whitespace (e.g.# C#,# Issue #123); valid closing hash sequences are still stripped #1770 by @stfulldev 💕HxSmartPasteButton- fixed: icon-only buttons no longer get spacing between the icon and the (empty) caption #1761 by @snowyukitty 💕HxInputBase- fixed XML documentation ofValidationMessageModeto state the actual default (Floating) #1771
Packages
Havit.Blazor.Storage(v1.0.2) - dropped theHavit.Coredependency (replaced with BCL throw helpers), so the package no longer pulls a non-trimmable transitive closure into Blazor WebAssembly payloads #1794- updated dependencies
v4.26.1
v4.26.0
What's Changed
HxEChart- newCssClass,AdditionalAttributesandWidthparameters for styling the chart container;Heightcan now be omitted (empty ornull) to let CSS/flex drive the height #1742- updated dependencies
Full Changelog: v4.25.1...v4.26.0
v4.25.1
What's Changed
HxEChart- improved rendering performance and memory footprint: chart options are no longer re-applied via JS interop when they haven't changed, and the full options JSON is no longer retained for the component's lifetime #1735- updated dependencies
Full Changelog: v4.25.0...v4.25.1
v4.25.0
What's Changed
New Packages
Havit.Blazor.ApplicationInsights(v1.0.0) — new package: Blazor wrapper for the Application Insights JavaScript SDK; supports auto route tracking, custom telemetry initializers, and authenticated user context #1246Havit.Blazor.Storage(v1.0.0) — new package: browser web storage (localStorage/sessionStorage) abstractions for Blazor #1417
Components
HxGridColumn- newFilterHeaderTemplateparameter for custom column header filter UI; newTabIndexparameter for accessibility #1386 by @optPrim3 💕HxGrid- multi-select checkbox click target enlarged to the entire cell for easier selection #1412 by @Allegon 💕HxGrid-RefreshDataAsyncnow throwsInvalidOperationExceptionwhen called on an already-disposed grid #1425HxInputNumber- fixed: minus sign was lost when typing a negative number into an auto-selected value #1406
Accessibility
- Removed the need for consumer-side
Accessibility.jspatches — accessibility improvements now built directly intoHxPager,HxCollapse,HxMultiSelect, andHxSidebar#1393 by @michael-melena 💕
v4.24.3
v4.24.2
What's Changed
HxTabPanel- fix: restoredpointercursor on tab headers (regression from #1372) #1380HxToast- fix:--hx-toast-container-marginchanged topaddingfor correct positioning #1381 by @alexax578 💕
Full Changelog: v4.24.1...v4.24.2