Skip to content

H5Web 18

Latest

Choose a tag to compare

@axelboc axelboc released this 19 Oct 13:03
· 27 commits to main since this release
30875f9

Full Changelog: v17.0.0...v18.0.0

This is the final version of H5Web on React 18. As such, we now enforce stricter peer dependencies on react@18.x and react-dom@18.x. The next version, aptly numbered H5Web 19, will move to React 19 ... at long last! 🥳

@h5web/app

Viewer

  • 🎉 Support float16 data #2045 by @NAThompson
  • 🐛 < Matrix > Fix sizing of cells with fixed-length strings #2029
  • 🐛 Fix sidebar disappearing on small screen and in the VS Code extension #2022
  • 🐛 Fix select-to-zoom with Ctrl key on Mac #2058
  • 🐛 Fix opening a group with many child groups in the explorer #2059
    • We were too eager in detecting supported NeXus groups (to show NX badges). Now we show an NX badge on a child group only if we can tell easily that it's a supported NeXus group (e.g. NX_class=NXdata attribute).
  • ⚡ Optimize phase/amplitude computations #2054 by @NAThompson
  • ⚡ Optimise array bounds computations #2055 by @NAThompson

API

  • ⚠️ {Breaking} The suspense fetch stores (valuesStore, entitiesStore, etc.) available through useDataContext() have been removed. The new way to query data from the provider is with Tanstack Query. If you only use our custom data access hooks (useDatasets, useValues, etc.) and never the suspense stores directly, you shouldn't need to change anything; otherwise, please check out the updated documentation. — #2046 #2049 #2051 #2052 #2053
    • ✨ [useDataContext] Provide three query factories via the queries object: queries.entity(), queries.value() and query.attrValues() for use with Tanstack Query's hooks (useQuery, etc.)
    • [useDataContext] Provide queryClient instance for advanced use cases, like cancelling queries or running queries manually
    • [useDataContext] Provide progressStore to allow subscribing to the progress of value queries
    • Add hook useAttrValue for querying an attribute's value
    • Re-export Tanstack Query's hooks and utilities to avoid having to install the library in consumer applications: useQuery, useQueries, useSuspenseQuery, useSuspenseQueries, queryOptions, hashKey, CancelledError.
    • ⚠️ {Breaking} getAttributeValue is now asynchronous and meant to be used inside a custom query function
  • 🎉 Rewrite HsdsProvider from the ground up — #1926 #2061 #2067 #2075 #2083
    • ⚠️ {Breaking} Require hsds@1.x
    • ⚠️ {Breaking} Rename prop filepath to domain
    • ✨ Support hsds@1.x
    • ✨ Follow soft and external links
    • ✨ Request datasets as binary when possible for performance and to avoid JSON serialization issues (NaN and Infinity serialised as strings, int64 cast to float64, etc.)
    • ⚡ Retrieve metadata of entities and attributes in batches to reduce number of requests and increase speed
    • Support reference and opaque HDF5 datatypes
    • Make fetcher prop optional
  • [H5GroveProvider] Fetch float16 data as binary instead of JSON and return Float16Array instead of plain number array #2064

@h5web/lib

  • 🎉 Support Float16Array throughout #2045 by @NAThompson
  • ✨ [DimensionMapper] Add prop withSlicingControls to show next/previous buttons and stride input below every slider #2062
    • Add prop defaultStride to allow changing the default stride
    • Add --h5w-slicingControls-* CSS variables for customization
  • ✨ [HeatmapVis] Add prop ignoredColor to set a color for ignored values (instead of transparent) #2065
  • 🐛 Fix support for three >= 0.183 #2032
  • 🐛 Fix select-to-zoom with Ctrl key on Mac #2058
  • 🐛 [DimensionMapper] The slicing sliders now update when the dimMapping prop changes #2084
  • ⚡ Optimise array bounds computations #2055
  • Expose utility getAxisOffsets to compute the space needed around the visualization for the title, axes labels, etc. — useful for implementing advanced layouts 079c700 #2024 by @PeterC-DLS
  • Expose utility createArrayFromView to create a fresh ndarray from a sliced and/or transposed ndarray view b35a934 #2024 by @PeterC-DLS
  • [SelectionTool] Prop children is now optional
  • [ErrorBars] Change default value of prop visible to true
  • TiledHeatmapMesh (experimental) must now be wrapped in a TiledHeatmapProvider and the TilesApi#get function can be async, so you no longer need to implement a suspense fetch store

Screenshots

Float16 support

image

New Contributors