Skip to content

Hypergrid v3.1.0

Compare
Choose a tag to compare
@joneit joneit released this 25 Nov 22:53
· 57 commits to master since this release
fff78e6

Minor version update

This is a "minor version update," meaning it's interface-backwards-compatible with v3.0.* but introduces a new feature, the maximumColumnWidth prop (see below) as well as bug fixes, simplified license, and tutorial improvements.

Synopsis

  1. Fix bug in getSelectedRows
  2. renderLastSelection now bails on missing rows
  3. Update keys down array when shift key changes
  4. Update keys down array whenever referenced by mouse event handlers
  5. Implement maximumColumnWidth prop
  6. Capture off-grid mouseup during scrollbar thumb drag
  7. Retain scrollbar thumb's .hover CSS class throughout drag
  8. Normalize mouse wheel metrics across platforms and browsers
  9. Fix jsdocs type: options.contextAttributes
  10. Reorganize and update the Tutorial
  11. Updated copyright notice
  12. Updated license

1. Fix getSelectedRows [bug]

When all rows selected, SelectionModel.prototype.getSelectedRows returns inaccurate list. Addresses Issue #764 (see).

2. renderLastSelection now bails on missing rows [bug]

When the selection included rows that are now missing, Renderer.prototype.renderLastSelection previously threw an error. It now aborts without rendering.

3. Update keys down array when shift key changes [bug]

Addresses Issue #770 (see).

4. Update keys down array whenever referenced by mouse event handlers [bug]

Addresses Issue #769 (see).

5. Implement maximumColumnWidth prop [new feature]

Addresses Issue #761 (see). This is a new feature, hence the minor version number bump (3.1.0).

6. Capture off-grid mouseup during scrollbar thumb drag [enhancement]

Addresses finbars Issue #6 (see) into Hypergrid.

7. Retain scrollbar thumb's .hover CSS class throughout drag [enhancement]

Merges finbars Issue #7 (see) into Hypergrid.

8. Normalize mouse wheel metrics across platforms and browsers [enhancement]

The following platforms and browsers are supported by assigning multiplicative factors to each (webkit on macOS = 1.0):

  • macOS
    • webkit (Chrome/Safari/Opera)
    • moz (Firefox)
  • Windows
    • webkit (Chrome/Opera)
    • moz (Firefox)
    • IE 11
    • Edge

Measurements were taken with default wheel system settings. The macOS measurements were taken on 10.13.6 (High Sierra). The Windows measurements were taken on Windows 10 and Windows 7 SP 1 (which yielded identical results with the exception of IE 11 on W7 which was ~20% faster compared to to IE11 on W10 but not enough to be a concern, especially with < 1% browser market share).

Normalization can be turned off:

  • Before instantiation:
    var FinBar = require('finbars'); // or Hypegrid.modules.finbars or fin.Hypergrid.require('finbars')
    delete FinBar.normals;
  • For a specific grid instance:
    grid.sbVScroller.normal = grid.sbHScroller.normal = 1;

In any case (with or without normalization), the application layer can still apply its own (additional) factor using grid.properties.wheelVFactor and grid.properties.wheelHFactor.

9. Fix jsdocs typo: options.contextAttributes [docs]

Option was renamed (from canvasContextAttributes) before merge of v2.1.5 but jsdoc comments unfortunately got out of sync, disappointing anyone trying the option using the erroneous name in the docs.

10. Reorganize and update the Tutorial

The tutorial has been moved to a new home with its own more frequent release schedule:

https://fin-hypergrid.github.io/tutorial

The current release features new Help tabs for instructions on how to use the tutorial user interface (previously mixed in with the tutorial itself, which was confusing).

11. Updated copyright notice

The copyright notice was updated from "© 2015 Openfin" to "© 2015 Openfin and The Hypergrid Authors" in:

  • ./LICENSE file
  • jsdoc-template-hypergrid submodule (which puts the copyright notice at the bottom of every doc page) (See a separate PR in another repo.)

12. Updated license

The following restriction has been removed from the license:

You may not redistribute the software or modifications as part of any application that can be described as a development toolkit, library or framework.

This change makes the license back into a plain vanilla MIT license (per ./package.json).

Published to npm

This release has been published (as of 10/29/2018) as a module to the npm registry.

Pre-bundled build files

A bundled build of this release is available on the CDN.