New compiler and enhancements for IE – Handsontable Pro 1.11.0-beta1 (CE 0.32.0-beta1)

Aleksandra Budnik Release Notes / May 17, 2017

New compiler and enhancements for IE – Handsontable Pro 1.11.0-beta1 (CE 0.32.0-beta1)

We are happy to announce that today we have released Handsontable PRO 1.11.0-beta1 (Community Edition: 0.32.0-beta1). Learn more about what we have delivered within this version.

A new JavaScript compiler: Babel

This change was expected for a long time as we reached a dead end with Traceur, our previous transpiler. It seriously limited our development of Handsontable by not letting us to use the latest features of ES2015. We could have worked around this of course, but in the end Handsontable would have been much heavier than it is now. However, the size of the output file wasn’t the only thing that made us switch to Babel:

  • Traceur is not actively maintained anymore.
  • We couldn’t use Webpack.
  • We had to create workarounds in order to make our wrappers working.

We spent 8 straight weeks upgrading Handsontable Pro/CE and the hot-builder engine to work with the new transpiler. The output code is now 47KB larger but the performance and readability remained intact.

What’s most important, we can now use all the ES2015 features except Generators. We can debug the code faster thanks to sourceMaps (yep, we didn’t have that comfort before in our version of Traceur!) and get a better standardized code.

We expect to be able to easily implement new features of ES2015+ in the future. Also, our wrappers for React, Vue.js and Angular will be better integrated with commonJS, therefore building a new app for Node using Handsontable should now be a smooth experience.

Breaking changes:

  • The Bootstrap CSS files were merged with the default CSS file.
  • The /plugins directory was deleted (including the ‘removeRow’ plugin)
  • Some global variables were reorganized and/or removed.

Changes in Handsontable Community Edition (CE):

  • Fixed documentation for the cells config option (#4185).
  • Fixed a problem with the maxRows functionality (#4180).
  • Fixed a problem with the maxCols functionality (#4156).
  • Fixed a bug, where entering integer values to a dropdown caused the cell to be marked as invalid (#4143).
  • Added the TypeScript definitions to the repository (#4112).
  • Fixed a bug with getCoords throwing an error when used on non-cell elements (#4074).
  • Data copied from the table will no longer have a newline at the end (#3801).
  • Fixed a problem with scrolling on IE9+ (#2350).

Changes in Handsontable Pro:

  • Fixed a problem, where the ESC key did not work for the filtering menu.

Upgrade guide

In addition to the switch from Traceur to Babel, we adjusted the naming convention of global variables in validators, renderers, cell types, plugins and helpers. Make sure that your code is up to date with these changes.

Validators

Renderers

Cell types

Plugins

Helpers

Other

We will keep you posted!

Sometimes you need a punch in the face to start doing things properly. For us, the hit came from Alex from GrooveHQ ,who wrote a story about his angry customer who complained about the slow development of the app. The thing is that the development wasn’t slow at all. It was the lack of information about the progress that caused this situation.

I think that it is high time to admit that we neglected that part of Handsontable development. We focused too much on the technical part of the business while doing nothing to communicate changes to users.

Our plan to improve

From now on we will publish a new blog post after each release of Handsontable, regardless of whether it is a major, minor or a patch change. Also, starting from the end of June, we will send the updates via email to all existing customers of Handsontable Pro. Apart from that, you will always find fresh updates on our Twitter account.

We appreciate all Github issues and emails which helped us fix issues in the current release. Leave a comment or contact us to help us make Handsontable even better.