Model can now define which fields to persist (Fixed #7846)
multi-regions demo to see how it works (Fixed #7642)

AjaxStore now offers a headers config to pass headers to the underlying server request

API CHANGES

Made the grid.columns property public and added docs. It is a readonly property to get the ColumnStore of the Grid

When a store is maintaining a tree structure, it now has a rootNode property which is an invisible node which is at
the root of the tree. All additions and removals to the dataset must be through the TreeNode API, *not* Store's add/remove
API. So use a record's appendChild/insertChild and removeChild methods.

[BREAKING] When, in a tree Store, a parent node is expanded, the Store will fire its add event to signal
the child nodes being inserted into the store's collection. When a parent node is collapsed, the Store will fire its remove event to signal that child nodes are being removed from the store's collection. If you listen for add or remove events, or the change event's action : 'add' or action : 'remove' to signify records being added to or
removed from a dataset, the differentiator will be that there will be an isExpand : true or an isCollapse : true property on the event when it is due to node expand or collapse.

CheckColumn now fires toggle event after new data is set to the record.

The functions to show and hide load masks for Grid were made public and added to the documentation. Call grid.maskBody('msg') to show a load mask and grid.unmaskBody() to hide it.

Configuring a tooltip with hideDelay : 0 will now hide it immediately, as opposed to earlier with a timeout of 0.
This in turn makes tooltip respect hoverDelay when moving mouse within the same fromElement, useful when populating
cell tooltips async (Fixed #7730)

In addition to specifying row height through data (see GridRowModel) we also made the size parameter of Column#renderer() public. Set size.height in a renderer to specify the desired row height. The largest collected
height for that row will be used. Uses Grids configured rowHeight as the min value.

[BREAKING] TimeField's and DateField's pickerFormat config was removed in favour of using format also for the picker

[BREAKING] Grid now renders it contents on paint instead of on render, to allow it to initialize correct when
embedded in tab panels and similar. Because of this change, the render event was removed.

[BREAKING] idField config was removed from Store, it was not used in the codebase and did not work as intended. The
config is still available and working on Model, set it on your subclass (MyModelClass.idField = 'MyId'). If you
really want to remap id to another field in your data without subclassing Model you can still do it using the fields config on Store: new Store({ fields : [{ name : 'id', dataSource : 'MyId' }] });

[BREAKING] The AjaxStore#exception event no longer includes the request object. Instead it includes a reference to the fetch Response object through the response property.

[BREAKING] The AjaxStore#loadChildren event no longer includes the request object. Instead it includes a reference to the fetch Response object through the response property.

[BREAKING] The response property of the AjaxStore#loadChildren event was renamed to json, and response refers to the fetch Response object.

[BREAKING] The AjaxStore#afterRequest event no longer includes the request object. Instead it includes a reference to the fetch Response object through the response property.

[BREAKING] The response property of the AjaxStore#afterRequest event was renamed to json, and response refers to the fetch Response object.

[BREAKING] The response property of the AjaxStore#load event was renamed to json, and response refers to the fetch Response object.

[BREAKING] The response property of the AjaxStore#exception event was renamed to json, and response refers to the fetch Response object.

[BREAKING] The AjaxStore now sends POST data as raw JSON (based on the Fetch API). To keep using the 1.x behavior which posts form data, set AjaxStore#sendAsFormData to true on your stores

FEATURES / ENHANCEMENTS

API CHANGES

The WidgetContainer mixin has been removed. The Container subclass is the base for
all Widgets which need to contain other Widgets.

The Container class now has a layoutStyle config which is an object-based config which
may be used to apply CSS style properties to the contentElement of the Container.
By default, Containers use flexbox layout, so this may be eg {flexDirection : 'column'}

There is a new Panel class which extends Container and offers the ability to dock
headers (which may contain title and clickable tools) to any border. The Panel subclass
is now the immediate superclass of Popup

Popup now has a closable config which causes the display of a close icon, which, when clicked, invokes the close
method (See the closeAction config)

Form fields may contain multiple clickable "triggers" be configuring them with a triggers config. This is an object-based configuration which specifies each trigger
with a CSS class for applying icon styling and a handler for executing the click action.

There is a new TextAreaField input field which may be used to edit multi-line data.
By default, it works in single line mode displaying the text in a read-only input element
and editing the text in a dropdown upon click if an expand trigger. Configuring the field inline: false renders the field as a textarea element.

Grid's selectionMode config may now contain checkbox : true to indicate that a row's selected status is indicated
by a checkbox.

The CellEdit plugin now has a addNewAtEnd config which indicates that when tabbing off the last column in the last
row, a new row should automatically be inserted, and editing should continue in the first editable cell of the new row.

The Combo now accepts multiSelect: true to allow selection of multiple values from
the dropdown. Selected values are shown in the form of "Chips" (formerly known as "Tags") in
an inline display to the left of the input area. These Chips may be deleted either by
tapping the close icon in them, or selecting them using keyboard action and deleting them
using the delete key.

Date parsing and formatting previously used Moment.js internally, but in this version it has been replaced with custom
code for performance reasons. Tokens used for formatting and parsing are similar to those used in Moment.js, in most
cases you should not need to adjust your code at all.

Collection's includes method now accepts a string or number to check for presence
of the given value as an id.

Combo now accepts items as an object where property names are the field values, and
the property values are the displayed text values.

The Container class now has a layout config which may describe a helper class to be used
to render child items, and apply certain CSS classes to specify layout. The only ones implemented
as of 1.1 are 'card' which implements slide-in displaying of multiple child widgets,
and 'fit' which fits a single child widget into the contentElement

The TabPanel class now fires a tabchange event when the active tab is changed.

When defining a Model subclass, it is no longer necessary to include the superclass's fields in any declared fields getter. The new class will automatically inherit the fields
of its inheritance chain upon first instantiation. The same goes for specifying a Model subclass's defaults.

An Editor class has been introduced which is a positioned Container which encapsulates
an input field for performing inline edits.

The positioned: true config indicates that a widget may be rendered into another
widget's contentEl, but it does not participate in the layout. Rather it is absolutely
positioned. Developers may use the X and Y configs directly, or the showBy and alignTo APIs.

remove method on a Store had third parameter fromClear documented.
It was removed fom documentation.

Grid now has a showDirty config which, when configured as true, displays a
triangular "dirty" flag in the corner of a cell which contains a uncommitted change.

BUG FIXES

Fixed #5848 - Confusing when using keyboard up/down in grid and cursor is over

Fixed #6736 - Longpress->contextmenu not working in some places in iOS

Version 1.0.0, 2018-09-13

We're happy to announce the first v1.0.0 release of our new Grid component. The Grid is a modern and high performance data table component. Built from the ground up with pure javascript, supporting any framework you are already using (incl. React, Angular and Vue). Please see our website and documentation for a full presentation.

Version 1.0.0-rc1, 2018-09-10

KNOWN ISSUES

Ticket #6143 - When editing number field in Edge (rating column, percent column), view is scrolling

Version 1.0.0-beta2, 2018-07-26

We're happy to announce the first v1.0.0-beta2 release of our Grid product. The Bryntum Grid is a powerful and high performance table component for the web. Since it is built with pure JavaScript, it works with the framework you are already using. Please
see our website and documentation for a full presentation.

KNOWN ISSUES

Ticket #6143 - When editing number field in Edge (rating column, percent column), view is scrolling

FEATURES / ENHANCEMENTS

Release process improvements

API CHANGES

BUG FIXES

Version 1.0.0-alpha2, 2018-07-02

KNOWN ISSUES

Ticket #6143 - When editing number field in Edge (rating column, percent column), view is scrolling