Class: Hooks

Hooks

handsontable/src/pluginHooks.js, line 1293

Methods

handsontable/src/pluginHooks.js, line 1369

add(key, callback, context){Hooks}

Adds a listener (globally or locally) to a specified hook name.
If the context parameter is provided, the hook will be added only to the instance it references.
Otherwise, the callback will be used everytime the hook fires on any Handsontable instance.
You can provide an array of callback functions as the callback argument, this way they will all be fired
once the hook is triggered.

Parameters:
Name Type Default Description
key String

Hook name.

callback function | Array

Callback function or an array of functions.

context Object null optional

The context for the hook callback to be added - a Handsontable instance or leave empty.

See:
Returns: {Hooks} Instance of Hooks.
Example
// single callback, added locally
Handsontable.hooks.add('beforeInit', myCallback, hotInstance);

// single callback, added globally
Handsontable.hooks.add('beforeInit', myCallback);

// multiple callbacks, added locally
Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback], hotInstance);

// multiple callbacks, added globally
Handsontable.hooks.add('beforeInit', [myCallback, anotherCallback]);
handsontable/src/pluginHooks.js, line 1315

createEmptyBucket(){Object}

Returns a new object with empty handlers related to every registered hook name.

Returns: {Object} The empty bucket object.
Example
Handsontable.hooks.createEmptyBucket();
// Results:
{
...
afterCreateCol: [],
afterCreateRow: [],
beforeInit: [],
...
}
handsontable/src/pluginHooks.js, line 1572

deregister(key)

Deregisters a hook name (removes it from the list of known hook names).

Parameters:
Name Type Description
key String

Hook name.

Example
Handsontable.hooks.deregister('myHook');
handsontable/src/pluginHooks.js, line 1540

destroy(context)

Destroy all listeners connected to the context. If no context is provided, the global listeners will be destroyed.

Parameters:
Name Type Default Description
context Object null optional

A Handsontable instance.

Example
// destroy the global listeners
Handsontable.hooks.destroy();

// destroy the local listeners
Handsontable.hooks.destroy(hotInstance);
handsontable/src/pluginHooks.js, line 1329

getBucket(context){Object}

Get hook bucket based on the context of the object or if argument is undefined, get the global hook bucket.

Parameters:
Name Type Default Description
context Object null optional

A Handsontable instance.

Returns: {Object} Returns a global or Handsontable instance bucket.
handsontable/src/pluginHooks.js, line 1617

getRegistered(){Array}

Returns an array of registered hooks.

Returns: {Array} An array of registered hooks.
Example
Handsontable.hooks.getRegistered();

// Results:
[
...
  'beforeInit',
  'beforeRender',
  'beforeSetRangeEnd',
  'beforeDrawBorders',
  'beforeChange',
...
]
handsontable/src/pluginHooks.js, line 1450

has(key, context){Boolean}

Checks whether there are any registered listeners for the provided hook name.
If the context parameter is provided, it only checks for listeners assigned to the given Handsontable instance.

Parameters:
Name Type Default Description
key String

Hook name.

context Object null optional

A Handsontable instance.

Returns: {Boolean} true for success, false otherwise.
handsontable/src/pluginHooks.js, line 1592

isRegistered(key){Boolean}

Returns a boolean depending on if a hook by such name has been registered.

Parameters:
Name Type Description
key String

Hook name.

Returns: {Boolean} true for success, false otherwise.
Example
Handsontable.hooks.isRegistered('beforeInit');

// Results:
true
handsontable/src/pluginHooks.js, line 1404

once(key, callback, context)

Adds a listener to a specified hook. After the hook runs this listener will be automatically removed from the bucket.

Parameters:
Name Type Default Description
key String

Hook/Event name.

callback function | Array

Callback function.

context Object null optional

A Handsontable instance.

See:
Example
Handsontable.hooks.once('beforeInit', myCallback, hotInstance);
handsontable/src/pluginHooks.js, line 1556

register(key)

Registers a hook name (adds it to the list of the known hook names). Used by plugins.
It is not necessary to call register, but if you use it, your plugin hook will be used returned by
the getRegistered method. (which itself is used in the demo http://docs.handsontable.com/tutorial-callbacks.html).

Parameters:
Name Type Description
key String

The hook name.

Example
Handsontable.hooks.register('myHook');
handsontable/src/pluginHooks.js, line 1428

remove(key, callback, context){Boolean}

Removes a listener from a hook with a given name. If the context argument is provided, it removes a listener from a local hook assigned to the given Handsontable instance.

Parameters:
Name Type Default Description
key String

Hook/Event name.

callback function

Callback function (needs the be the function that was previously added to the hook).

context Object null optional

Handsontable instance.

See:
Returns: {Boolean} Returns true if hook was removed, false otherwise.
Example
Handsontable.hooks.remove('beforeInit', myCallback);
handsontable/src/pluginHooks.js, line 1476

run(context, key, p1, p2, p3, p4, p5, p6){*}

Runs all local and global callbacks assigned to the hook identified by the key parameter.
It returns either a return value from the last called callback or the first parameter (p1) passed to the run function.

Parameters:
Name Type Description
context Object

Handsontable instance.

key String

Hook/Event name.

p1 * optional

Parameter to be passed as an argument to the callback function.

p2 * optional

Parameter to be passed as an argument to the callback function.

p3 * optional

Parameter to be passed as an argument to the callback function.

p4 * optional

Parameter to be passed as an argument to the callback function.

p5 * optional

Parameter to be passed as an argument to the callback function.

p6 * optional

Parameter to be passed as an argument to the callback function.

See:
Returns: {*} Either a return value from the last called callback or p1.
Example
Handsontable.hooks.run(hot, 'beforeInit');

Events

handsontable/src/pluginHooks.js, line 1245

afterAddChild

Fired after adding a children to the NestedRows structure.

Parameters:
Name Type Description
parent Object

The parent object.

element Object | undefined

The element added as a child. If undefined, a blank child was added.

index Number | undefined

The index within the parent where the new child was added. If undefined, the element was added as the last child.

handsontable/src/pluginHooks.js, line 1276

afterBeginEditing

Fired after the editor is opened and rendered.

Parameters:
Name Type Description
row Number

Row index of the edited cell.

column Number

Column index of the edited cell.

handsontable/src/pluginHooks.js, line 51

afterCellMetaReset

Callback fired after resetting a cell's meta.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 59

afterChange

Callback fired after one or more cells has been changed. Its main use case is to save the input.

Note: For performance reasons, the changes array is null for "loadData" source.

Parameters:
Name Type Description
changes Array

2D array containing information about each of the edited cells [[row, prop, oldVal, newVal], ...].

source String optional

String that identifies source of hook call
(list of all available sources).

handsontable/src/pluginHooks.js, line 72

afterChangesObserved

Fired after observing changes.

handsontable/src/pluginHooks.js, line 915

afterColumnMove

Fired after change order of the logical indexes.

Parameters:
Name Type Description
columns Array

Array of visual column indexes that were moved.

target Number

Visual column index being a target for moved columns.

handsontable/src/pluginHooks.js, line 953

afterColumnResize

Fired after rendering the table with modified column sizes.

Parameters:
Name Type Description
currentColumn Number

Index of the resized column.

newSize Number

Calculated new column width.

isDoubleClick Boolean

Flag that determines whether there was a double-click.

handsontable/src/pluginHooks.js, line 871

afterColumnSort

Fired after sorting the column.

Parameters:
Name Type Description
column Number

Sorted column index.

order Boolean

Soring order where:

  • true means ascending order
  • false means descending order
  • undefined means original order
handsontable/src/pluginHooks.js, line 80

afterContextMenuDefaultOptions

Fired after setting up the Context Menu's default options. These options are a collection which user can select by setting
an array of keys or an array of objects in contextMenu option.

Parameters:
Name Type Description
predefinedItems Array

Array of objects containing information about the pre-defined Context Menu items.

handsontable/src/pluginHooks.js, line 122

afterContextMenuHide

Fired after hiding the Context Menu.

Parameters:
Name Type Description
context Object

The Context menu instance.

handsontable/src/pluginHooks.js, line 131

afterContextMenuShow

Fired after opening the Context Menu.

Parameters:
Name Type Description
context Object

The Context Menu instance.

handsontable/src/pluginHooks.js, line 140

afterCopyLimit

Fired after reaching the copy limit while copying data.

Parameters:
Name Type Description
selectedRows Number

Count of selected copyable rows.

selectedColumns Number

Count of selected copyable columns.

copyRowsLimit Number

Current copy rows limit.

copyColumnsLimit Number

Current copy columns limit.

handsontable/src/pluginHooks.js, line 164

afterCreateCol

Callback is fired after a new column was created.

Parameters:
Name Type Description
index Number

Represents the index of first newly created column in the data source array.

amount Number

Number of newly created columns in the data source array.

source String optional

String that identifies source of hook call
(list of all available sources).

handsontable/src/pluginHooks.js, line 187

afterCreateRow

Callback is fired after a new row was created.

Parameters:
Name Type Description
index Number

Represents the index of first newly created row in the data source array.

amount Number

Number of newly created rows in the data source array.

source String optional

String that identifies source of hook call
(list of all available sources).

handsontable/src/pluginHooks.js, line 198

afterDeselect

Fired after the current cell is deselected.

handsontable/src/pluginHooks.js, line 205

afterDestroy

Fired after destroying the Handsontable instance.

handsontable/src/pluginHooks.js, line 1266

afterDetachChild

Fired after detaching a child from its parent in the NestedRows plugin.

Parameters:
Name Type Description
parent Object

An object representing the parent from which the element was detached.

element Object

The detached element.

handsontable/src/pluginHooks.js, line 212

afterDocumentKeyDown

Fired on a keydown event on the document body.

Parameters:
Name Type Description
event Event

A keydown event.

handsontable/src/pluginHooks.js, line 100

afterDropdownMenuDefaultOptions

Fired after setting up the Context Menu's default options. These options are a collection which user can select by setting
an array of keys or an array of objects in contextMenu option.

Parameters:
Name Type Description
predefinedItems Array

Array of objects containing information about the pre-defined Context Menu items.

handsontable/src/pluginHooks.js, line 1207

afterDropdownMenuHide

Fired after hiding the dropdown menu.

Parameters:
Name Type Description
instance DropdownMenu

The DropdownMenu instance.

handsontable/src/pluginHooks.js, line 1198

afterDropdownMenuShow

Fired after opening the dropdown menu.

Parameters:
Name Type Description
instance DropdownMenu

The DropdownMenu instance.

handsontable/src/pluginHooks.js, line 1020

afterFilter

Fired after applying filtering.

Parameters:
Name Type Description
formulasStack Array

An array of objects with added formulas.

handsontable/src/pluginHooks.js, line 220

afterGetCellMeta

Callback fired after getting the cell settings.

Parameters:
Name Type Description
row Number

Row index.

col Number

Column index.

cellProperties Object

Object containing the cell properties.

handsontable/src/pluginHooks.js, line 230

afterGetColHeader

Callback fired after retrieving information about a column header and appending it to the table header.

Parameters:
Name Type Description
col Number

Column index.

TH Element

Header's TH element.

handsontable/src/pluginHooks.js, line 984

afterGetColumnHeaderRenderers

Fired after getting the column header renderers.

Parameters:
Name Type Description
array Array

Array of the column header renderers.

handsontable/src/pluginHooks.js, line 239

afterGetRowHeader

Callback fired after retrieving information about a column header and appending it to the table header.

Parameters:
Name Type Description
row Number

Row index.

TH Element

Header's TH element.

handsontable/src/pluginHooks.js, line 992

afterGetRowHeaderRenderers

Fired after getting the row header renderers.

Parameters:
Name Type Description
array Array

Array of the row header renderers.

handsontable/src/pluginHooks.js, line 248

afterInit

Callback fired after Handsontable instance is initiated.

handsontable/src/pluginHooks.js, line 255

afterLoadData

Callback fired after new data is loaded (by loadData method) into the data source array.

Parameters:
Name Type Description
firstTime Boolean

flag that determines whether the data has been loaded during the initialization.

handsontable/src/pluginHooks.js, line 1123

afterModifyTransformEnd

Fired after the end of the selection is being modified. (e.g. moving the selection with the arrow keys).

Parameters:
Name Type Description
coords WalkontableCellCoords

Coords of the freshly selected cell.

rowTransformDir Number

-1 if trying to select a cell with a negative row index. 0 otherwise.

colTransformDir Number

-1 if trying to select a cell with a negative column index. 0 otherwise.

handsontable/src/pluginHooks.js, line 1113

afterModifyTransformStart

Fired after the start of the selection is being modified. (e.g. moving the selection with the arrow keys).

Parameters:
Name Type Description
coords WalkontableCellCoords

Coords of the freshly selected cell.

rowTransformDir Number

-1 if trying to select a cell with a negative row index. 0 otherwise.

colTransformDir Number

-1 if trying to select a cell with a negative column index. 0 otherwise.

handsontable/src/pluginHooks.js, line 263

afterMomentumScroll

Fired after a scroll event, which is identified as a momentum scroll (e.g. on an iPad).

handsontable/src/pluginHooks.js, line 279

afterOnCellCornerDblClick

Fired after a dblclick event is triggered on the cell corner (the drag handle).

Parameters:
Name Type Description
event Object

dblclick event object.

Since:
  • 0.30.0
handsontable/src/pluginHooks.js, line 270

afterOnCellCornerMouseDown

Fired after a mousedown event is triggered on the cell corner (the drag handle).

Parameters:
Name Type Description
event Object

mousedown event object.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 288

afterOnCellMouseDown

Callback fired after clicking on a cell or row/column header.
In case the row/column header was clicked, the index is negative.
For example clicking on the row header of cell (0, 0) results with afterOnCellMouseDown called
with coords {row: 0, col: -1}.

Parameters:
Name Type Description
event Object

mousedown event object.

coords Object

Coordinates object containing the row and column indexes of the clicked cell.

TD Element

Cell's TD (or TH) element.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 302

afterOnCellMouseOver

Callback fired after hovering a cell or row/column header with the mouse cursor.
In case the row/column header was hovered, the index is negative.
For example, hovering over the row header of cell (0, 0) results with afterOnCellMouseOver called
with coords {row: 0, col: -1}.

Parameters:
Name Type Description
event Object

mouseover event object.

coords Object

Hovered cell's coordinate object.

TD Element

Cell's TD (or TH) element.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 1157

afterPluginsInitialized

Fired after initializing all the plugins.

handsontable/src/pluginHooks.js, line 1068

afterRedo

Fired after the redo action. Contains information about the action that is being redone.

Parameters:
Name Type Description
action Object

The action object. Contains information about the action being redone. The actionType
property of the object specifies the type of the action in a String format. (e.g. 'remove_row').

Since:
  • 0.26.2
handsontable/src/pluginHooks.js, line 316

afterRemoveCol

Callback is fired when one or more columns are removed.

Parameters:
Name Type Description
index Number

Is an index of starter column.

amount Number

Is an amount of removed columns.

handsontable/src/pluginHooks.js, line 325

afterRemoveRow

Callback is fired when one or more rows are removed.

Parameters:
Name Type Description
index Number

Is an index of starter row.

amount Number

Is an amount of removed rows.

handsontable/src/pluginHooks.js, line 334

afterRender

Callback fired after the Handsontable table is rendered.

Parameters:
Name Type Description
isForced Boolean

Is true if rendering was triggered by a change of settings or data; or false if
rendering was triggered by scrolling or moving selection.

handsontable/src/pluginHooks.js, line 357

afterRenderer

Fired after finishing rendering the cell (after the renderer finishes).

Parameters:
Name Type Description
TD Element

Currently rendered cell's TD element.

row Number

Row index.

col Number

Column index.

prop String | Number

Column property name or a column index, if datasource is an array of arrays.

value String

Value of the rendered cell.

cellProperties Object

Object containing the cell's properties.

Since:
  • 0.11.0
handsontable/src/pluginHooks.js, line 933

afterRowMove

Fired after change order of the logical indexes.

Parameters:
Name Type Description
rows Array

Array of visual row indexes that were moved.

target Number

Visual row index being a target for moved rows.

handsontable/src/pluginHooks.js, line 974

afterRowResize

Fired after rendering the table with modified row sizes.

Parameters:
Name Type Description
currentRow Number

Index of the resized row.

newSize Number

Calculated new row height.

isDoubleClick Boolean

Flag that determines whether there was a double-click.

handsontable/src/pluginHooks.js, line 371

afterScrollHorizontally

Fired after the horizontal scroll event.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 379

afterScrollVertically

Fired after the vertical scroll event.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 387

afterSelection

Callback fired after one or more cells are selected (e.g. during mouse move).

Parameters:
Name Type Description
r Number

Selection start row index.

c Number

Selection start column index.

r2 Number

Selection end row index.

c2 Number

Selection end column index.

handsontable/src/pluginHooks.js, line 398

afterSelectionByProp

Callback fired after one or more cells are selected. The p argument represents the source object property name instead of the column number.

Parameters:
Name Type Description
r Number

Selection start row index.

p String

Selection start data source object property name.

r2 Number

Selection end row index.

p2 String

Selection end data source object property name.

handsontable/src/pluginHooks.js, line 409

afterSelectionEnd

Callback fired after one or more cells are selected (e.g. on mouse up).

Parameters:
Name Type Description
r Number

Selection start row index.

c Number

Selection start column index.

r2 Number

Selection end row index.

c2 Number

Selection end column index.

handsontable/src/pluginHooks.js, line 420

afterSelectionEndByProp

Callback fired after one or more cells are selected (e.g. on mouse up). The p argument represents the data source object
property name instead of the column number.

Parameters:
Name Type Description
r Number

Selection start row index.

p String

Selection start data source object property index.

r2 Number

Selection end row index.

p2 String

Selection end data source object property index.

handsontable/src/pluginHooks.js, line 432

afterSetCellMeta

Called after cell meta is changed.

Parameters:
Name Type Description
row Number

Row index.

col Number

Column index.

key String

The updated meta key.

value *

The updated meta value.

Since:
  • 0.11.0
handsontable/src/pluginHooks.js, line 444

afterSetDataAtCell

Called after cell data was changed.

Parameters:
Name Type Description
changes Array

An array of changes in format [[row, col, oldValue, value], ...].

source String optional

String that identifies source of hook call
(list of all available sources).

Since:
  • 0.28.0
handsontable/src/pluginHooks.js, line 455

afterSetDataAtRowProp

Called after cell data was changed.

Parameters:
Name Type Description
changes Array

An array of changes in format [[row, prop, oldValue, value], ...].

source String optional

String that identifies source of hook call
(list of all available sources).

Since:
  • 0.28.0
handsontable/src/pluginHooks.js, line 1180

afterTrimRow

Fired after trimming rows in the TrimRows plugin.

Parameters:
Name Type Description
rows Array

Indexes of trimmed rows.

handsontable/src/pluginHooks.js, line 1048

afterUndo

Fired after the undo action. Contains information about the action that is being undone.

Parameters:
Name Type Description
action Object

The action object. Contains information about the action being undone. The actionType
property of the object specifies the type of the action in a String format. (e.g. 'remove_row').

Since:
  • 0.26.2
handsontable/src/pluginHooks.js, line 1189

afterUntrimRow

Fired after untrimming rows in the TrimRows plugin.

Parameters:
Name Type Description
rows Array

Indexes of untrimmed rows.

handsontable/src/pluginHooks.js, line 466

afterUpdateSettings

Fired after calling the updateSettings method.

handsontable/src/pluginHooks.js, line 473

afterValidate

A plugin hook executed after validator function, only if validator function is defined.
Validation result is the first parameter. This can be used to determinate if validation passed successfully or not.

Returning false from the callback will mark the cell as invalid.

Parameters:
Name Type Description
isValid Boolean

true if valid, false if not.

value *

The value in question.

row Number

Row index.

prop String | Number

Property name / column index.

source String optional

String that identifies source of hook call
(list of all available sources).

Since:
  • 0.9.5
handsontable/src/pluginHooks.js, line 1149

afterViewportColumnCalculatorOverride

Fired inside the viewportColumnCalculatorOverride method. Allows modifying the row calculator parameters.

Parameters:
Name Type Description
calc Object

The row calculator.

handsontable/src/pluginHooks.js, line 1141

afterViewportRowCalculatorOverride

Fired inside the viewportRowCalculatorOverride method. Allows modifying the row calculator parameters.

Parameters:
Name Type Description
calc Object

The row calculator.

handsontable/src/pluginHooks.js, line 1234

beforeAddChild

Fired before adding a children to the NestedRows structure.

Parameters:
Name Type Description
parent Object

The parent object.

element Object | undefined

The element added as a child. If undefined, a blank child was added.

index Number | undefined

The index within the parent where the new child was added. If undefined, the element was added as the last child.

handsontable/src/pluginHooks.js, line 491

beforeAutofill

Fired before populating the data in the autofill feature.

Parameters:
Name Type Description
start Object

Object containing information about first filled cell: {row: 2, col: 0}.

end Object

Object containing information about last filled cell: {row: 4, col: 1}.

data Array

2D array containing information about fill pattern: [["1', "Ted"], ["1', "John"]].

handsontable/src/pluginHooks.js, line 1086

beforeAutofillInsidePopulate

Fired from the populateFromArray method during the autofill process. Fired for each "autofilled" cell individually.

Parameters:
Name Type Description
index Object

Object containing row and col properties, defining the number of rows/columns from the initial cell of the autofill.

direction String

Declares the direction of the autofill. Possible values: up, down, left, right.

input Array

Array of arrays. Contains an array of rows with data being used in the autofill.

deltas Array

The deltas array passed to the populateFromArray method.

handsontable/src/pluginHooks.js, line 501

beforeCellAlignment

Fired before aligning the cell contents.

Parameters:
Name Type Description
stateBefore
range
type String

Type of the alignment - either horizontal or vertical

alignmentClass String

String defining the alignment class added to the cell.
Possible values:

  • htLeft,
  • htCenter,
  • htRight,
  • htJustify
    for horizontal alignment,
  • htTop,
  • htMiddle,
  • htBottom
    for vertical alignment.
handsontable/src/pluginHooks.js, line 524

beforeChange

Callback fired before one or more cells is changed. Its main purpose is to alter changes silently before input.

Parameters:
Name Type Description
changes Array

2D array containing information about each of the edited cells.

source String optional

String that identifies source of hook call
(list of all available sources).

Example
// To disregard a single change, set changes[i] to null or remove it from array using changes.splice(i, 1).
...
new Handsontable(document.getElementById('example'), {
  beforeChange: function(changes, source) {
    // [[row, prop, oldVal, newVal], ...]
    changes[0] = null;
  }
});
...

// To alter a single change, overwrite the desired value to changes[i][3].
...
new Handsontable(document.getElementById('example'), {
  beforeChange: function(changes, source) {
    // [[row, prop, oldVal, newVal], ...]
    changes[0][3] = 10;
  }
});
...

// To cancel all edit, return false from the callback or set array length to 0 (changes.length = 0).
...
new Handsontable(document.getElementById('example'), {
  beforeChange: function(changes, source) {
    // [[row, prop, oldVal, newVal], ...]
    return false;
  }
});
...
handsontable/src/pluginHooks.js, line 566

beforeChangeRender

Fired right before rendering the changes.

Parameters:
Name Type Description
changes Array

Array in form of [row, prop, oldValue, newValue].

source String optional

String that identifies source of hook call
(list of all available sources).

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 906

beforeColumnMove

Fired before change order of the logical indexes.

Parameters:
Name Type Description
columns Array

Array of visual column indexes to be moved.

target Number

Visual column index being a target for moved columns.

handsontable/src/pluginHooks.js, line 942

beforeColumnResize

Fired before rendering the table with modified column sizes.

Parameters:
Name Type Description
currentColumn Number

Index of the resized column.

newSize Number

Calculated new column width.

isDoubleClick Boolean

Flag that determines whether there was a double-click.

Returns: {Number} Returns a new column size or undefined, if column size should be calculated automatically.
handsontable/src/pluginHooks.js, line 858

beforeColumnSort

Fired before sorting the column. If you return false value then sorting will be not applied by
Handsontable (useful for server-side sorting).

Parameters:
Name Type Description
column Number

Sorted column index.

order Boolean

Soring order where:

  • true means ascending order,
  • false means descending order,
  • undefined means original order.
handsontable/src/pluginHooks.js, line 90

beforeContextMenuSetItems

Fired before setting up the Context Menu's items but after filtering these options by user (contextMenu option). This hook
can by helpful to determine if user use specified menu item or to set up one of the menu item to by always visible.

Parameters:
Name Type Description
menuItems Array

Array of objects containing information about to generated Context Menu items.

handsontable/src/pluginHooks.js, line 152

beforeCreateCol

Callback is fired before a new column was created.

Parameters:
Name Type Description
index Number

Represents the index of first newly created column in the data source array.

amount Number

Number of newly created columns in the data source array.

source String optional

String that identifies source of hook call
(list of all available sources).

Since:
  • 0.28.0
handsontable/src/pluginHooks.js, line 175

beforeCreateRow

Callback is fired before a new row was created.

Parameters:
Name Type Description
index Number

Represents the index of first newly created row in the data source array.

amount Number

Number of newly created rows in the data source array.

source String optional

String that identifies source of hook call
(list of all available sources).

Since:
  • 0.28.0
handsontable/src/pluginHooks.js, line 1256

beforeDetachChild

Fired before detaching a child from its parent in the NestedRows plugin.

Parameters:
Name Type Description
parent Object

An object representing the parent from which the element is to be detached.

element Object

The detached element.

handsontable/src/pluginHooks.js, line 577

beforeDrawBorders

Fired before drawing the borders.

Parameters:
Name Type Description
corners Array

Array specifying the current selection borders.

borderClassName String

Specifies the border class name.

handsontable/src/pluginHooks.js, line 111

beforeDropdownMenuSetItems

Fired before setting up the Dropdown Menu's items but after filtering these options by user (dropdownMenu option). This hook
can by helpful to determine if user use specified menu item or to set up one of the menu item to by always visible.

Parameters:
Name Type Description
menuItems Array

Array of objects containing information about to generated Dropdown Menu items.

handsontable/src/pluginHooks.js, line 1010

beforeFilter

Fired before applying filtering.

Parameters:
Name Type Description
formulasStack Array

An array of objects with added formulas.

Returns: {Boolean} If hook returns false value then filtering won't be applied on the UI side (server-side filtering).
handsontable/src/pluginHooks.js, line 586

beforeGetCellMeta

Callback fired before getting cell settings.

Parameters:
Name Type Description
row Number

Row index.

col Number

Column index.

cellProperties Object

Object containing the cell's properties.

handsontable/src/pluginHooks.js, line 596

beforeInit

Callback fired before Handsontable instance is initiated.

handsontable/src/pluginHooks.js, line 604

beforeInitWalkontable

Callback fired before Walkontable instance is initiated.

Parameters:
Name Type Description
walkontableConfig Object

Walkontable configuration object.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 613

beforeKeyDown

Callback fired before keydown event is handled. It can be used to overwrite default key bindings.
Caution - in your beforeKeyDown handler you need to call event.stopImmediatePropagation() to prevent default key behavior.

Parameters:
Name Type Description
event Event

Original DOM event.

Since:
  • 0.9.0
handsontable/src/pluginHooks.js, line 623

beforeOnCellMouseDown

Fired after the user clicked a cell, but before all the calculations related with it.

Parameters:
Name Type Description
event Event

The mousedown event object.

coords WalkontableCellCoords

WalkontableCellCoords object containing the coordinates of the clicked cell.

TD Element

TD element.

handsontable/src/pluginHooks.js, line 633

beforeOnCellMouseOver

Fired after the user moved cursor over a cell, but before all the calculations related with it.

Parameters:
Name Type Description
event Event

The mouseover event object.

coords WalkontableCellCoords

WalkontableCellCoords object containing the coordinates of the clicked cell.

TD Element

TD element.

blockCalculations Object

Contain keys 'row' and 'column' with boolean value.

handsontable/src/pluginHooks.js, line 1058

beforeRedo

Fired before the redo action. Contains information about the action that is being redone.

Parameters:
Name Type Description
action Object

The action object. Contains information about the action being redone. The actionType
property of the object specifies the type of the action in a String format. (e.g. 'remove_row').

Since:
  • 0.26.2
handsontable/src/pluginHooks.js, line 644

beforeRemoveCol

Callback is fired when one or more columns are about to be removed.

Parameters:
Name Type Description
index Number

Index of starter column.

amount Number

Amount of columns to be removed.

logicalCols Array optional

Consists of logical indexes of processed columns.

handsontable/src/pluginHooks.js, line 654

beforeRemoveRow

Callback is fired when one or more rows are about to be removed.

Parameters:
Name Type Description
index Number

Index of starter column.

amount Number

Amount of columns to be removed.

logicalRows Array optional

Consists of logical indexes of processed rows.

handsontable/src/pluginHooks.js, line 664

beforeRender

Callback fired before Handsontable table is rendered.

Parameters:
Name Type Description
isForced Boolean

If true rendering was triggered by a change of settings or data; or false if
rendering was triggered by scrolling or moving selection.

handsontable/src/pluginHooks.js, line 343

beforeRenderer

Fired before starting rendering the cell.

Parameters:
Name Type Description
TD Element

Currently rendered cell's TD element.

row Number

Row index.

col Number

Column index.

prop String | Number

Column property name or a column index, if datasource is an array of arrays.

value String

Value of the rendered cell.

cellProperties Object

Object containing the cell's properties.

Since:
  • 0.24.2
handsontable/src/pluginHooks.js, line 924

beforeRowMove

Fired before change order of the logical indexes.

Parameters:
Name Type Description
rows Array

Array of visual row indexes to be moved.

target Number

Visual row index being a target for moved rows.

handsontable/src/pluginHooks.js, line 963

beforeRowResize

Fired before rendering the table with modified row sizes.

Parameters:
Name Type Description
currentRow Number

Index of the resized row.

newSize Number

Calculated new row height.

isDoubleClick Boolean

Flag that determines whether there was a double-click.

Returns: {Number} Returns the new row size or undefined if row size should be calculated automatically.
handsontable/src/pluginHooks.js, line 681

beforeSetRangeEnd

Callback fired before setting range is ended.

Parameters:
Name Type Description
coords Array

WalkontableCellCoords array.

handsontable/src/pluginHooks.js, line 673

beforeSetRangeStart

Callback fired before setting range is started.

Parameters:
Name Type Description
coords Array

WalkontableCellCoords array.

handsontable/src/pluginHooks.js, line 1000

beforeStretchingColumnWidth

Fired before applying stretched column width to column.

Parameters:
Name Type Description
stretchedWidth Number

Calculated width.

column Number

Column index.

Returns: {Number} Returns new width which will be applied to the column element.
handsontable/src/pluginHooks.js, line 689

beforeTouchScroll

Fired before the logic of handling a touch scroll, when user started scrolling on a touch-enabled device.

handsontable/src/pluginHooks.js, line 1038

beforeUndo

Fired before the undo action. Contains information about the action that is being undone.

Parameters:
Name Type Description
action Object

The action object. Contains information about the action being undone. The actionType
property of the object specifies the type of the action in a String format. (e.g. 'remove_row').

Since:
  • 0.26.2
handsontable/src/pluginHooks.js, line 696

beforeValidate

A plugin hook executed before validator function, only if validator function is defined.
This can be used to manipulate the value of changed cell before it is applied to the validator function.

Notice: this will not affect values of changes. This will change value ONLY for validation!

Parameters:
Name Type Description
value *

Value of the cell.

row Number

Row index.

prop String | Number

Property name / column index.

source String optional

String that identifies source of hook call
(list of all available sources).

Since:
  • 0.9.5
handsontable/src/pluginHooks.js, line 713

beforeValueRender

Callback fired before cell value is rendered into the DOM (through renderer function).

Parameters:
Name Type Description
value *

Cell value to render.

Since:
  • 0.29.0
handsontable/src/pluginHooks.js, line 1133

beforeValueRender

Fired before rendering a cell value.

Parameters:
Name Type Description
value Mixed

The rendered value.

handsontable/src/pluginHooks.js, line 722

construct

Callback fired after Handsontable instance is constructed (via new operator).

Since:
  • 0.16.1
handsontable/src/pluginHooks.js, line 1225

hiddenColumn

Used to check whether the provided column index is hidden.

Parameters:
Name Type Description
column Number

The column index in question.

handsontable/src/pluginHooks.js, line 1216

hiddenRow

Used to check whether the provided row index is hidden.

Parameters:
Name Type Description
row Number

The row index in question.

handsontable/src/pluginHooks.js, line 730

init

Callback fired after Handsontable instance is initiated but before table is rendered.

Since:
  • 0.16.1
handsontable/src/pluginHooks.js, line 1164

manualRowHeights

Used when saving/loading the manual row heights state.

Parameters:
Name Type Description
state Array

The current manual row heights state.

handsontable/src/pluginHooks.js, line 883

modifyAutofillRange

Fired after setting range of autofill.
Both arguments are provided in the following format:

[startRow, startColumn, endRow, endColumn]
Parameters:
Name Type Description
startArea Array

Array of coordinates of the starting point for the drag-down operation.

entireArea Array

Array of coordinates of the entire area of the drag-down operation.

handsontable/src/pluginHooks.js, line 738

modifyCol

Fired when a column index is about to be modified by a callback function.

Parameters:
Name Type Description
col Number

Column index.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 764

modifyColHeader

Fired when a column header index is about to be modified by a callback function.

Parameters:
Name Type Description
column Number

Column header index.

Since:
  • 0.20.0
handsontable/src/pluginHooks.js, line 1029

modifyColumnHeaderHeight

Used to modify the column header height.

Parameters:
Name Type Description
col Number

Column index.

Since:
  • 0.25.0
handsontable/src/pluginHooks.js, line 773

modifyColWidth

Fired when a column width is about to be modified by a callback function.

Parameters:
Name Type Description
width Number

Current column width.

col Number

Column index.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 897

modifyCopyableRange

Fired to allow modifying the copyable range with a callback function.

Parameters:
Name Type Description
copyableRanges Array

Array of objects defining copyable cells.

Since:
  • 0.19.0
handsontable/src/pluginHooks.js, line 811

modifyData

Fired when a data was retrieved or modified.

Parameters:
Name Type Description
row Number

Row height.

column Number

Column index.

valueHolder Object

Object which contains original value which can be modified by overwriting .value property.

ioMode String

String which indicates for what operation hook is fired (get or set).

Since:
  • 0.28.0
handsontable/src/pluginHooks.js, line 783

modifyRow

Fired when a row index is about to be modified by a callback function.

Parameters:
Name Type Description
row Number

Row index.

Since:
  • 0.11
handsontable/src/pluginHooks.js, line 792

modifyRowHeader

Fired when a row header index is about to be modified by a callback function.

Parameters:
Name Type Description
row Number

Row header index.

Since:
  • 0.20.0
handsontable/src/pluginHooks.js, line 1078

modifyRowHeaderWidth

Used to modify the row header width.

Parameters:
Name Type Description
rowHeaderWidth Number

Row header width.

handsontable/src/pluginHooks.js, line 801

modifyRowHeight

Fired when a row height is about to be modified by a callback function.

Parameters:
Name Type Description
height Number

Row height.

row Number

Row index.

Since:
  • 0.11.0
handsontable/src/pluginHooks.js, line 823

modifyRowSourceData

Fired when a data was retrieved or modified.

Parameters:
Name Type Description
row Number

Row logical index.

Since:
  • 0.28.0
handsontable/src/pluginHooks.js, line 1105

modifyTransformEnd

Fired when the end of the selection is being modified. (e.g. moving the selection with the arrow keys).

Parameters:
Name Type Description
delta WalkontableCellCoords

Cell coords object declaring the delta of the new selection relative to the previous one.

handsontable/src/pluginHooks.js, line 1097

modifyTransformStart

Fired when the start of the selection is being modified. (e.g. moving the selection with the arrow keys).

Parameters:
Name Type Description
delta WalkontableCellCoords

Cell coords object declaring the delta of the new selection relative to the previous one.

handsontable/src/pluginHooks.js, line 832

persistentStateLoad

Fired after loading data using the Persistent State plugin.

Parameters:
Name Type Description
key String

Key string.

valuePlaceholder Object

Object containing the loaded data.

handsontable/src/pluginHooks.js, line 841

persistentStateReset

Fired after resetting data using the Persistent State plugin.

Parameters:
Name Type Description
key String

Key string.

handsontable/src/pluginHooks.js, line 849

persistentStateSave

Fired after resetting data using the Persistent State plugin.

Parameters:
Name Type Description
key String

Key string.

value Mixed

Value to save.

handsontable/src/pluginHooks.js, line 1172

skipLengthCache

Used to skip the length cache calculation for a defined period of time.

Parameters:
Name Type Description
delay Number

The delay in milliseconds.

handsontable/src/pluginHooks.js, line 747

unmodifyCol

Fired when a column index is about to be de-modified by a callback function.

Parameters:
Name Type Description
col Number

Column index.

Since:
  • 0.23.0
handsontable/src/pluginHooks.js, line 756

unmodifyRow

Fired when a row index is about to be de-modified by a callback function.

Parameters:
Name Type Description
row Number

Logical row index.

Since:
  • 0.26.2