rename "extensions" to "plugins" for consistency (in code and file paths)
rename to names that better describe class purpose - WalkontableCellFilter => WalkontableAbstractFilter, WalkontableCellStrategy => WalkontableAbstractStrategy
move Handsontable.SelectionPoint => WalkontableCellCoords, add simpler interface (row, col) and isValid method with a spec
- namespace Handsontable.PluginHooks is now Handsontable.hooks
- new methods in Handsontable.hooks: register, deregister, isRegistered, getRegistered (+tests)
- change demo/callbacks.html to use getRegistered
- change the existing plugins to use Handsontable.hooks.register
- remove hooks registered by the plugins from src/pluginHooks.js
- rename Handsontable.PluginHooks to Handsontable.hooks
bugfix: lookup in the global object, where the additional hook names get registered
remove one unneccessary API "instance.hooks" (use instance.addHook or Handsontable.hooks.add)
context menu changes:
- new hook (afterContextMenuDefaultOptions), useful tu add new options to the context menu for your plugins (test included)
- context menu now accepts "name" parameter as a function (previously only as a string) (test included)
merged cells initial release:
- cell merging & unmerging through a context menu option
- new class WalkontableCellRange
refactor to use WalkontableCellCoords class instead of existing places where `{row: r, col: c}` and `[r, c]` was used:
- remove public method `getCornerCoords` (use `WalkontableCellRange.getTopLeftCorner` and `WalkontableCellRange.getBottomRightCorner` if needed)
- change `grid.getCornerCoords`, `grid.getCellsAtCoords`, `grid.populateFromArray`, `selection.setRangeStart`, `selection.setRangeEnd`, `selection.inInSelection`, `autofill.showBorder`, `Handsontable.TableView.prototype.getCellAtCoords`, `Handsontable.TableView.prototype.scrollViewport`, `WalkontableTable.getCell`, `WalkontableSelection.add`, `Walkontable.scrollViewport`, `WalkontableScroll.scrollViewport` parameter to be an instance of WalkontableCellCoords
- change return value of `WalkontableTable.getCoords` to be an instance of WalkontableCellCoords
- change plugin hooks `onCellMouseDown`, `onCellMouseOver` second parameter to be an instance of WalkontableCellCoords
- rename WalkontableCellCoords _row, _col properties to row, col
- remove WalkontableCellCoords methods coords(), arr(), row(), col()
Refactoring:
- add a new public method getSelectedRange
- replace priv.selStart, priv.selEnd with priv.selRange
- use WalkontableCellRange to normalize topLeft, bottomRight corner throughout the code
- add a method WalkontableCellRange.prototype.isIncluding
- add a method WalkontableCellRange.prototype.expand (+ tests)
- remove method grid.getCornerCoords
- add tests to WalkontableCellCoords
merge cells (continued):
- Ctrl+M unmerges cell if pressed on a merged cell
- keyboard navigation (with/without Shift) now respects merged cells (still some problems when selecting multiple cells with Shift)
- add method WalkontableSelection.replace (+test)
Merge cells demo page
remove unused method `grid.getCellsAtCoords`
- replace run `afterGetColWidth` with execute `modifyColWidth`
- replace run/execute `beforeGet`, `beforeSet` with execute `modifyRow`
- remove `datamap.getVars` and `datamap.setVars`
bugfix: replace removed HOT.hooks with public method call HOT.runHooks
Changed CellInfoCollection to an actual collection (it now extends an array object). Removed beforeInit listener and cleaned up code.
Fixed a bug with selecting a range of cells which contains merged cells.