0.3.4 - 2026-10-11
| Change | Who is affected | What to do |
|---|---|---|
The global JHGrid from a <script> tag is now a function (the constructor); it used to be an object holding the exports | Code that detects the library with typeof JHGrid === 'object', which is now 'function' | Test with typeof JHGrid !== 'undefined' or typeof JHGrid === 'function' |
Every name reached through the global, such as JHGrid.JHGrid and JHGrid.CellRenderers, still resolves | Nobody | Nothing. The upgrade needs no code change |
Changed
-
The global
JHGridin the CDN builds (jhgrid.min.js,jhgrid.js) is the grid constructor. It used to be the module namespace object, so the constructor had to be taken out of it asJHGrid.JHGrid, and the same page of documentation called the library two different ways:new JHGrid(...)in the ESM examples andnew JHGrid.JHGrid(...)in the<script>ones.<script src="https://cdn.jsdelivr.net/gh/JH-Grid/JHGrid@latest/dist/jhgrid.min.js"></script> <script> const grid = new JHGrid({ container: '#grid', data: rows }); // the way to write it now const old = new JHGrid.JHGrid({ container: '#grid2', data: rows }); // still works </script>CellRenderers,CellEditors,registerCellRenderer,registerCellEditor,DataManager,Renderer,DEFAULT_THEME,computeHeaderCells,GRID_CLASSES,VERSION,SUPPORTED_BROWSERSand the locale packs are still properties of the global. The ESM build (jhgrid.esm.js) and the npm package are unchanged.
Docs
-
The framework section of
getting-started.mdis now one shared recipe. There are no framework wrapper packages, and the library is used the same way under any of them: create it once the element exists, keep the instance, and calldestroy()when the element goes away. -
api.md,browser-support.mdandarchitecture.mdopened straight into a table or a diagram. Each now starts with a sentence saying what the page is for.