* provide onValidationError callback
* linter fixes
* docu fixes
* textmode - invoke callback also when no errors
This to cover situation of changes that fixes validations
* fixed cautom validation example
* Fix#727: exposing Focus and Blur events through JSONEditor options
* Comments for onFocus and onBlur exposed events
* Fixing lint issues
* Fix for #727: Updated code for emitting onFocus and onBlur events
* Seperating FocusTarget out as a seperate class
* Fixing an issue that kept on setting the focus to the last element in the editor instead of passing it out
* Moving the add() method of FocusTracker into its constructor and renaming its remove() to destroy()
* removing a flag not needed anymore and making FocusTracker.target a required input
* updating focus tracker's focus checking condition
* Emitting onBlur callback when FocusTracker is being destroyed
* fixing lint issues
* Switch JSON path tests to strict equality
The tests for `stringifyPath` and `parsePath` were using
[`assert.deepEqual`](https://nodejs.org/api/assert.html#assert_assert_deepequal_actual_expected_message),
which was causing the tests to pass when they should not have. Beyond
that, the `deepEqual` method is deprecated. The suggested replacement is
[`assert.deepStrictEqual`](https://nodejs.org/api/assert.html#assert_assert_deepstrictequal_actual_expected_message),
which causes the tests to fail where they should.
The difference between the two methods is the different between `==` and
`===`. `deepEqual` would coerce the input `"2"` to `2`, so the test was
passing even though the output was of the wrong type (string instead of
number).
* Coerce numeric indices to numbers in parsePath
This fixes a regression introduced in
3e7e1cebfd.