Change log
Grid
Release history for Bryntum Grid
Version 5.1.0, 2022-07-21
FEATURES / ENHANCEMENTS
- A row expander feature has been added to Grid, which also makes it available for Scheduler and Scheduler Pro. The feature makes it possible to expand and collapse each row by either a separate expander column or a grid cell event. The expanded rows content is rendered by a rendering function that the implementor provides in the feature config (Fixed #2374)
- Updated the built-in version of FontAwesome Free to
6.1.1
- Our TypeScript typings for string types that have a predefined set of alternatives was improved to only accept
those alternatives. For example previously the
dock
config which was previously declared asdock: string
is nowdock : 'top'|'right'|'bottom'|'left'
- Create React App templates now available
KeyMap
is a mixin that allows for standardized and customizable keyboard shortcuts functionality.KeyMap
is by default mixed in toWidget
and therefore available to allWidget
's child classes. There is a new guide **Guides/Customization/Keyboard shortcuts** describing how to customize currently integrated keyboard shortcuts (Fixed #4300, Fixed #4313, Fixed #4328)
API CHANGES
- [DEPRECATED] The
breakpoints
config of theCore.widget.mixin.Responsive
mixin is deprecated in favor of its newresponsive
config. Theresponsive
config is more easily customized when used in the default configuration of widgets - [DEPRECATED] The
responsiveWidthChange
andresponsiveHeightChange
events of theCore.widget.mixin.Responsive
mixin are deprecated in favor of its newresponsiveStateChange
event - [BREAKING] [ANGULAR] Angular wrappers now use the more modern module bundle by default, instead of the legacy umd bundle. Hence application imports must be changed to match. This will slightly improve application size and performance (Fixed #2786)
- [BREAKING]
grid.lite.umd.js
bundle is no longer available - [BREAKING] WebComponents has been removed from
grid.module.js
ES modules bundle. New bundle with WebComponents isgrid.wc.module.js
BUG FIXES
- Fixed #4687 - Grid RowExpander: Content overflows to the next row when browser window is narrow
- Fixed #4688 - Make button text in **rowexpander** demo not selectable
- Fixed #4696 - Parents sorted below children in docs
- Fixed #4697 - Too dark code background in docs
- Fixed #4934 - Selection column in the wrong place when using grouped headers
- Fixed #4936 - Combo with
autoexpand: true
closes immediately on first click of dropdown arrow
Version 5.0.7, 2022-07-13
FEATURES / ENHANCEMENTS
- Added preventable
beforeSelectionChange
event which fires before selection changes (Fixed #4705)
BUG FIXES
- Fixed #4746 - Vertical scroll jumps up when clicked on top of horizontal scrollbar
- Fixed #4758 - Allow cancelling an export process
- Fixed #4836 - Check column not rendered correctly on
readOnly
mode - Fixed #4865 - [LWC] Exception when clicking on modal over the component
- Fixed #4871 - Error when committing changes with nested
responseDataProperty
path - Fixed #4872 - Aborted fetch should reject the promise
- Fixed #4874 -
WidgetColumn
should be readOnly if record isreadOnly
- Fixed #4879 - Grid Vue demo error rendering
- Fixed #4915 - Cell tooltip remains when hovering over blank cells
- Fixed #4916 -
Fullscreen
is not working on mobile Safari
Version 5.0.6, 2022-06-20
BUG FIXES
- Fixed #841 - Add
searchAllRecords
flag to store search functions - Fixed #4146 -
TaskEditor
clears time when editing events with datetime picker - Fixed #4254 - Grid with checkbox column should be
readonly
if bound to a data field andcellEdit
is not enabled - Fixed #4750 - Splitter overlays
bbar
- Fixed #4755 - Wrong element focused if tabbing over cells where
beforeCellEditStart
returnsfalse
- Fixed #4778 - Body mask now tracks grid resize to maintain cover of the body
- Fixed #4779 - Crash when adding empty
bbar
- Fixed #4788 -
GridRow
Chevron Stops Responding on Touch Device with5.0.X
- Fixed #4804 - Radiobutton hover effect incorrectly positioned in Material theme when on RTL
- Fixed #4808 - Typings are wrong for async functions
Version 5.0.5, 2022-05-30
FEATURES / ENHANCEMENTS
- Added
paste
andcopy
events to theRowCopyPaste
feature (Fixed #4552) - Added
filterStyles
config to thePdfExport
feature to simplify styles processing (Fixed #3103)
BUG FIXES
- Fixed #2275 - Export to PDF fails when Grid headers are hidden
- Fixed #4350 - Fixed various panel collapse issues
- Fixed #4444 - Tooltip not displayed when calling
showBy
targeting a widget - Fixed #4545 - [LWC] Columns and row reordering features don't work
- Fixed #4567 - Using too new
replaceChildren
API in Row - Fixed #4607 - [VUE] Incorrect prop types in Vue wrapper
- Fixed #4630 - Column reorder triggers double repaint
- Fixed #4636 - Model field is not exposed correctly if data is not preloaded to the store
- Fixed #4638 -
mergeCells
causes fail in export
Version 5.0.4, 2022-05-11
API CHANGES
- Container's
autoUpdateRecord
config was made public. Set it totrue
to update record fields when child fields change (Fixed #4073) - Model's
clearChanges
function parameterincludeDescendants
made public. Set it tofalse
to not clear changes on a node's descendants (Fixed #4565)
BUG FIXES
- Fixed #3930 - Exception when collapsing tree scrolled to the bottom
- Fixed #4294 - Not possible to reach horizontal time axis scrollbar
- Fixed #4541 - Grid splitter too dark in Stockholm theme
- Fixed #4559 - Grid region splitter buttons not centered
- Fixed #4562 - [REACT] React wrappers have incorrect source mapping urls
Version 5.0.3, 2022-04-26
FEATURES / ENHANCEMENTS
AggregateColumn
now has aincludeParentInChangeSet
config which will trigger parent row changes to appear in the modification tracking and in sync requests (Fixed #3969)
API CHANGES
- New Vue 2/3 wrapper config option
relayStoreEvents
(defaults tofalse
). When set totrue
, the events fired by stores are relayed to the Bryntum Grid instance - [REACT] React wrappers now include TypeScript definitions (Fixed #3378)
BUG FIXES
- Fixed #100 - Splitter has wrong color
- Fixed #4127 - [LWC]
DomHelper.isInView()
throws - Fixed #4222 - [LWC] Performance degradation in 5.0 release
- Fixed #4289 - Using
TreeGroup
modifies tasks - Fixed #4324 - Widget column with button doesn't pass text into child widget
- Fixed #4432 - [LWC] Mouse events do not work
- Fixed #4459 - Bryntum Grid search feature limited to 1000 matches
- Fixed #4461 - [Vue] wrapper triggers doubled
dataChange
events with different params - Fixed #4496 -
createOnUnmatched
doc is wrong - Fixed #4523 - Docs do not tell how to disable certain menu items
- Fixed #4535 - Error appeared when state try to apply selection on already removed record
Version 5.0.2, 2022-04-13
API CHANGES
- Deprecated
showByPoint()
in Widget, it will be removed in version 6.0. UseshowBy()
instead
BUG FIXES
- Fixed #2796 - Allow customizing Roboto path in material theme
- Fixed #3941 - Field picker is not aligned on scroll
- Fixed #4097 - Bug when restore state for
filterBar
column with date type - Fixed #4134 - [REACT] Basic React Data Grid demo - React cell editor does not work
- Fixed #4248 - Grid splitter arrows artefact
- Fixed #4308 - Problems with rendering React component in column renderer and as cell editor
- Fixed #4321 - Dragging between groups in the Grid should change group field of the dragged records
- Fixed #4326 - Grid region splitter buttons not touchable
- Fixed #4351 - Listeners object breaks click functionality
- Fixed #4360 - Wrong color of checkbox checkmark in Stockholm theme
- Fixed #4364 - When editing cell, editing doesn't end when click outside of the grid
- Fixed #4366 - Dragging column header to edge should trigger scroll
- Fixed #4368 - Filterbar live demo in docs has misaligned fields
- Fixed #4373 - Panel collapse arrow pointing in wrong direction initially
- Fixed #4377 - Change radio button to use
<div>
for the selected circle - Fixed #4406 - Fixed items in disabled
fieldset
/radiogroup
not being disabled - Fixed #4408 - Column
filterFn
function works incorrectly if multiple columns share field - Fixed #4412 - Batch column updates do not show until next column update
- Fixed #4464 - Search feature not searching on date and duration fields
- Fixed #4467 - Changing the tree column causes expand icon sync issues
- Fixed #4482 - Grid not refreshed when supplying empty array to
store.filter()
withreplace: true
Version 5.0.1, 2022-03-04
BUG FIXES
- Fixed #4246 - Docs splitter is too wide when hovered
- Fixed #4249 -
DateTimeField
does not update if required - Fixed #4270 -
CellTooltip
should not cache async fetched cell content - Fixed #4278 -
cellContextMenu
not working - Fixed #4282 - Examples browser scrolls to top after fully loaded
- Fixed #4288 - Right editor border not visible when starting editing
Version 5.0.0, 2022-02-21
We are thrilled to announce version 5.0 of our Grid product. This release marks a big milestone for us, after more than a year of development. This update contains a new RadioButton widget, new TreeGroup and MergeCells features as well as bug fixes and other enhancements requested by our community. A big thanks to our customers who helped us with testing our alpha & beta versions
You are most welcome to join us on March 16th, at 9am PST (6pm CET) for a 5.0 walkthrough webinar, demonstrating all the shiny new features Click here to register
We hope you will enjoy this release and we are looking forward to hearing your feedback of what you would like us to develop next
/ Mats Bryntse, CEO @Bryntum
FEATURES / ENHANCEMENTS
- Each product has a new "thin" JavaScript bundle. The thin bundle only contains product specific code, letting you combine multiple Bryntum products without downloading the shared code multiple times (previously only possible with custom-built bundles from sources). Find out more in the What's new guide (Fixed #2805)
- Each theme is now available in a version that only has product specific CSS in it, called a
thin
version. These files are name[product].[theme].thin.css
-grid.stockholm.thin.css
for example. They are intended for using when you have multiple different bryntum products on the same page, to avoid including shared CSS multiple times Read more about it in theWhat's new
section in docs (Fixed #3276) - Using the new
MergeCells
feature and the correspondingmergeCells
config on columns it is now possible to have cells spanning multiple rows. Applies to sorted columns, cells that have the same value are merged into a single cell. Try it out in the newmerge-cells
demo (Fixed #196) - A new
deselectOnClick
config was added toGridSelection
to allow single click toggling of a row / cell selected state (Fixed #3577) Model
has a newreadOnly
field that is respected by UI level editing features to disallow editing records havingreadOnly : true
. It does not directly affect the datalayer, meaning that you can still programmatically edit the records (Fixed #665)- Grid has a new
TreeGroup
feature that can transform a tree on the fly. It generates a new tree structure based on an array of field names (or functions), each entry yields a new level in the resulting tree. Check it out in the newtree-grouping
demo (Fixed #3543) window
references are replaced withglobalThis
which is supported in all modern browsers and across different JS environments (Fixed #4071)- A new function called
downloadTestCase()
was added to Bryntum widgets, it is intended to simplify creating test cases for reporting issues on Bryntum's support forum. Running it collects the current value for the configs your app is using, inlines the current dataset and compiles that into a JavaScript app that is then downloaded. The app will most likely require a fair amount of manual tweaking to reproduce the issue, but we are hoping it will simplify the process for you. Rungrid.downloadTestCase()
on the console in a demo to try it - Updated FontAwesome Free to version 6, which includes some new icons sponsored by Bryntum in the charts category: https://fontawesome.com/search?m=free&c=charts-diagrams&s=solid
- When configured with a StateProvider and
stateId
, Grid state is stored automatically as stateful properties change (Fixed #1859)
API CHANGES
- [BREAKING] Grid's
selectionMode
config is now merged with the default settings (previously it overwrote defaults) See upgrade guide for more details - [BREAKING] Store´s remove method now returns an empty array if no records were removed (previously returned
null
) - [BREAKING] TreeStore´s
beforeRemove
andremove
events now only includeparent
when removing a single node - The List widget now uses UL and LI elements to represent its items, may affect your styling if you use DIV in your style rules
- [BREAKING] TextAreaField was renamed to TextAreaPickerField to serve only as a picker-type field. A new TextAreaField widget was added which is used in Gantt's NotesTab
- [BREAKING] TextAreaPickerField's
inline
config has been removed, use TextAreaField instead - [BREAKING] React wrappers now use the modern module bundle by default, instead of the legacy umd bundle. Hence application imports must be changed to match. This will slightly improve application size and performance (Fixed #2787)
- Store's
toJSON()
method now ignores all local filters and returns all records (Fixed #4101) - The following previously deprecated Core configs, functions etc. where removed:
- Config
DatePicker#editOnHover
- no replacement, no longer relevant - Argument
newId.deep
forModel#copy()
- previously replaced by separatedeep
argument - Config
DateDataField#dateFormat
- previously replaced byformat
config - Config
ContextMenuBase#menuConfig
- previously replaced bymenu
config - Function
ObjectHelper.allKeys()
- previously replaced bykeys()
function - Function
StringHelper.capitalizeFirstLetter()
- previously replaced bycapitalize()
function - Function
StringHelper.lowercaseFirstLetter()
- previously replaced byuncapitalize()
function - Argument
config.element
forScrollManager#startMonitoring()
- previously replaced byconfig.scrollables
arg - Config
Button#menuIconCls
- previously replaced bymenuIcon
config - Config
Tooltip.html
no longer handles returningfalse
as a way of flagging the tooltip content as async - previously replaced by theshowAsyncMessage
config - Param
record
of theStore#move
event - previously replaced with therecords
param - Old
TreeNode#insertChild()
signature - previously replaced with current(childRecord, before, silent)
signature - Argument
returnAll
forDomHelper.createElement
- previously replaced byoptions.returnAll
- The following previously deprecated Grid configs, functions etc. where removed:
- Array form of the
Column#cellMenuItems
config - previously replaced by object form - Array form of the
Column#headerMenuItems
config - previously replaced by object form - Config
Grid#showRemoveRowInContextMenu
- in favor of CellMenu feature items configuration - Returning
false
fromCellTooltip#tooltipRenderer
no longer flags it as async - previously replaced with returning a Promise ContextMenu
feature - previously replaced byHeaderMenu
andCellMenu
features- Param
record
of allRowReorder
events - previously replaced byrecords
- Event
Grid#beforeExport
- in favor ofbeforePdfExport
event (Fixed #3240) - Event
Grid#export
- in favor ofpdfExport
event
BUG FIXES
- Fixed #758 - State mixin to use configurable's
onConfigChange
hook - Fixed #1404 - Tapping cell should select row, not start cell editing
- Fixed #3088 -
ColumnStore
remove method is very slow - Fixed #3575 - No selection when disabling
multiSelect
- Fixed #3947 - Inconsistent right / bottom padding in
MessageDialog
- Fixed #3952 - Wrong border bottom color for panel header
- Fixed #4022 - Panel collapse icon
- Fixed #4039 - Popup with grid hides when picking item in grid cell menu if
animateRemovingRows
istrue
- Fixed #4045 - Arrow down in FilterBar number field should not navigate to grid cells
- Fixed #4079 - CellEdit instantUpdate regression
- Fixed #4086 - Allow derived classes to adjust delayable method options
- Fixed #4143 - Autoheight demo throws when trying to edit notes
- Fixed #4233 - Cut task remains grayed out after copying
Version 4.3.9, 2022-02-17
BUG FIXES
- Fixed #4127 - [LWC]
DomHelper.isInView()
throws in Salesforce - Fixed #4130 - fi-FI locale uses
\u2212
as the negation symbol which won't parse - Fixed #4131 -
DurationField
uses wrong unit after clearing and using step trigger - Fixed #4170 -
Column
interface is missingstatic get type()
- Fixed #4195 -
AjaxStore
loads despite autoLoad being false when filterBar used and there is a configured filter - Fixed #4201 - Cannot load non-extensible data objects with
transformFlatData
- Fixed #4209 -
transformFlatData
not working ifchildren : true
is present
Version 4.3.8, 2022-02-07
BUG FIXES
- Fixed #4098 -
AggregateColumn
doesn't gather all child node values, so can calculate inaccurately - Fixed #4108 - Combo should expand when clicking empty space if editable is
false
+multiSelect
- Fixed #4119 - Wrong position of cell editors in scrolled subgrids
Version 4.3.7, 2022-02-02
FEATURES / ENHANCEMENTS
- CellEdit
autoEdit
now leaves editing state after pressing Enter, you can control this behavior with the neweditNextOnEnterPress
flag. (Fixed #4032) - CellEdit can now be configured to stop editing after clicking another cell via its new
continueEditingOnCellClick
config (Fixed #4046) - Added public
dragStart
/drag
/drop
events to Splitter class (Fixed #4060)
API CHANGES
- TreeColumn icons are now always rendered before the
b-tree-cell-value
text content element. Might effect your styling if you relied on icon position in the DOM - [DEPRECATED] Grid
beforeExport
andexport
events (triggered byPdfExport
feature) were deprecated in favor of thebeforePdfExport
andpdfExport
events respectively. The old events names will be dropped in v5.0.0
BUG FIXES
- Fixed #3197 - Grid Filter Popup has hardcoded width which breaks rendering when fields have a big width
- Fixed #3770 - Fix handling of initially collapsed panels with configured size
- Fixed #4028 - On demand load issue in tree grid when using
syncDataOnLoad
- Fixed #4029 -
autoEdit
should not react when CTRL / CMD key is used to copy & paste - Fixed #4030 -
RowCopyPaste
broken - Fixed #4041 -
TextArea
ignores arrowDown key press - Fixed #4051 -
CellTooltip
does not update on next show for the same row, when its record is mutated - Fixed #4080 - Sub-menu closes when moving over gap
- Fixed #4082 - Relayed listeners do not trigger onFunctions
Version 4.3.6, 2022-01-13
FEATURES / ENHANCEMENTS
- Clearing and changing the content of a TreeStore is much easier and faster now using the
clearChildren
andreplaceChildren
API of theTreeNode
class. Changing the column set of a Grid should use these APIs on the store'srootNode
- The Grid now fires
beforeRenderRow
andrenderRow
events to allow customization of rows (Fixed #3960)
BUG FIXES
- Fixed #935 - text-overflow of grid column header broken in material theme
- Fixed #3795 - Grid Search feature does not handle TreeColumn's rendering inside a cell
- Fixed #3897 - [TypeScript] Missing ArrayDataField
- Fixed #3933 - An error when using multiSelect filter field config for tree column
- Fixed #3945 - Cannot select text in popup
- Fixed #3950 - PasswordField styles broken
- Fixed #3958 - Fix panel collapser docs for
direction
config - Fixed #3962 - Tree parent / leaf icon indent mismatch
- Fixed #3975 - Restore state works incorrect with filterBar
- Fixed #3976 - Grid Column needs a maxWidth config
- Fixed #3978 - Clicking selected day cell in datepicker causes refresh
- Fixed #3987 - StoreSync fails when using tree data with lazy loaded parent nodes
- Fixed #3989 - Tree grid + filterbar + multiselect not working
- Fixed #3990 - Chrome & Content Security Policy causes failure because of debug code section
- Fixed #4008 - Filter icon disappears when a column is hidden
Version 4.3.5, 2021-12-24
BUG FIXES
- Fixed #2944 -
transformFlatData
not compatible withsyncDataOnLoad
in a tree store - Fixed #3752 - Restoring state after
filterBy
on grid (or scheduler) crashes - Fixed #3863 - Export server executable for windows does not work
- Fixed #3896 - [TypeScript] Wrong typings of model class configs
- Fixed #3902 -
AjaxStore
re-requests the current page if thepageStartParam
being requested is zero - Fixed #3906 - When using selection mode
rowCheckboxSelection
overrides checkbox property - Fixed #3907 - [TypeScript] Cannot pass Scheduler instance to
Store.relayAll
- Fixed #3908 - ActionColumn: tooltip not displayed when using rendered config
- Fixed #3909 -
showCheckAll
config in CheckColumn not working - Fixed #3910 - Error when collapsing expanded nodes in TreeGrid with empty children array
- Fixed #3912 -
Grid.column.ActionColumn
renderer not working - Fixed #3928 - DateHelper
k
format behaves incorrectly - Fixed #3938 -
revertChanges
not working for number column having an undefined value
Version 4.3.4, 2021-12-13
FEATURES / ENHANCEMENTS
- Updated
angular-renderer
Angular demo to use Angular 13 (Fixed #3742) - RowReorder
gridRowBeforeDropFinalize
andgridRowDrop
events now include information about the original position of the dragged tree nodes when reordering nodes in a tree grid (Fixed #3810)
BUG FIXES
- Fixed #3621 - [TypeScript] Improve typings of mixins
- Fixed #3816 -
move
event is not triggered when moving a node in aTreeStore
- Fixed #3850 - [TypeScript] Missing static properties in typings
- Fixed #3853 - Cannot set row height for scheduler webcomponent
- Fixed #3855 - Setting a ModelDataField in a record could recurse infinitely
Version 4.3.3, 2021-11-30
FEATURES / ENHANCEMENTS
- Grid´s
ColumnReorder
feature now firesbeforeColumnDragStart
,columnDragStart
,beforeColumnDropFinalize
,columnDrop
events which let you veto move operations (Fixed #3667) - New
aggregation-column
demo showing the Aggregate Column (Fixed #3818)
API CHANGES
- AggregateColumn now subclasses NumberColumn instead of Column
BUG FIXES
- Fixed #3616 -
Filter
bar field remains after hiding a column - Fixed #3630 - Whitespace seen when adding many new rows quickly
- Fixed #3637 - When tooltip uses a
forSelector
andtrackMouse
, moving within its active target - Fixed #3648 - [DOCS] Content navigation is broken
- Fixed #3654 - Format of date
FilterBar
field should default to date format of column - Fixed #3670 - STM
resetQueue
error if a transaction is being recorded - Fixed #3671 - Parent column receives an autogenerated field
- Fixed #3707 -
ExcelExporter
export method should return a Promise - Fixed #3710 - Allow to configure
dragTouchStartDelay
forRowReorder
feature - Fixed #3743 - [DOCS]
web.config
file for Windows IIS server - Fixed #3817 - Adding a node to a collapsed parent does not refresh grid properly
Version 4.3.2, 2021-10-29
FEATURES / ENHANCEMENTS
RowCopyPaste
feature now firesbeforeCopy
andbeforePaste
events to let you prevent the actions (Fixed #3303)
BUG FIXES
- Fixed #3611 -
CellEdit
does not tolerate dot delimited field names in accord with how its host Grid does - Fixed #3616 - Filter bar field remains after hiding a column
- Fixed #3622 - Edited cell is not marked when initial cell value is
0
orundefined
Version 4.3.1, 2021-10-21
FEATURES / ENHANCEMENTS
- A group column can now be
sealed
meaning you are not allowed to drop columns into it (Fixed #3536) - Bumped builtin Font Awesome Free to version 5.15.4
BUG FIXES
- Fixed #361 - Sorting
ColumnStore
should rerender content automatically - Fixed #3522 - Filter bar header field disappears when moving parent column in grouped headers
- Fixed #3535 - Crash when dragging column header to locked side
- Fixed #3561 - Crash after right clicking columns on Gantt Predecessor / Successor, only works on the first one
- Fixed #3567 - Minified css bundle contains unicode chars
- Fixed #3581 - Toolable docs link broken
- Fixed #3582 - Columns autoWidth feature not working when table is embedded in a div with
display: none
style - Fixed #3587 - Possible to select unselectable row using checkbox
Version 4.3.0, 2021-10-12
FEATURES / ENHANCEMENTS
- WidgetColumn now offers two-way binding by configuring the column's field widget with a name corresponding to a
Model
field name. See this demonstrated in theexamples/widgetcolumn
example - Panels can now be collapsed when configured as
collapsible
(Fixed #914) - [BREAKING]
@babel/preset-env
config targetchrome: 75
is now used for the UMD bundle. This decreases bundle size and improves performance for modern browsers (Fixed #3201) - Legacy Angular demos for versions 1-5 were removed due to incompatibility with the new UMD bundle format
API CHANGES
- [DEPRECATED] Buttons
menuIconCls
config was deprecated in favor of the newmenuIcon
config, which better matches the naming of other configs
BUG FIXES
- Fixed #3480 - Make
dataChange
event work for Grid - Fixed #3511 - Crash when adding a new column to a grid starting out with no columns
Version 4.2.7, 2021-10-01
FEATURES / ENHANCEMENTS
- Buttons that have a menu now show a caret down arrow icon, see
menuIconCls
in Button docs (Fixed #3426) - Grid now fires
subGridExpand
+subGridCollapse
events after toggling the sub gridcollapsed
state (Fixed #3459) ComboBox
can now be configured to accept unmatched typed filter strings to create a new record. Use thecreateOnUnmatched
config to enable this. This may be configured as a function to create the new record in an app-specific way (Fixed #3249)
BUG FIXES
- Fixed #3272 - Expanding last node sometimes doesn't increase scroll size
- Fixed #3415 - Generate unique phantom ids across all stores
- Fixed #3439 - Filtering out all child rows should hide parent row chevron icon
- Fixed #3443 - Not possible to use filter feature with grouped headers in grid
- Fixed #3458 - Document nested fields
Version 4.2.6, 2021-09-15
FEATURES / ENHANCEMENTS
- You can now control if the widget tooltip should be shown when the widget is disabled using the
showTooltipWhenDisabled
config
BUG FIXES
- Fixed #3145 - Adding filters shows wrong date filter value
- Fixed #3179 - Tooltip is not shown for a disabled button
- Fixed #3387 - Group header incorrect when showing summary in header
- Fixed #3408 - Updated typings to support spread operator for method parameters
Version 4.2.5, 2021-09-08
FEATURES / ENHANCEMENTS
- The
GroupSummary
feature has a new config (and property) calledtarget
that can be used to render summaries to group headers (target : 'header'
) instead of to group footers (the default,target : 'footer'
). Try it out in the updatedgroupsummary
demo (Fixed #3312) - The API documentation now better communicates when a field or property accepts multiple input types but uses a single
type for output. For example date fields on models, which usually accepts a
String
orDate
but always outputs aDate
(Fixed #2933)
BUG FIXES
- Fixed #2756 - Row height is not recalculated when collapsing group when using
collapseToHeader
- Fixed #2951 - Store is not filtered if filterBar combo is initialized with multiple values
- Fixed #3322 - Add
dataChange
event to framework guides - Fixed #3355 - Column cell tooltip misplaced with
hideDelay = 0
- Fixed #3364 - Grid select all records not working when store is grouped and filtered
- Fixed #3373 - Combo blank entry is less tall
Version 4.2.4, 2021-08-27
BUG FIXES
- Fixed #2983 - Row Selection Checkbox disappears with Group Summary feature
- Fixed #3096 - Slider#showTooltip: false does not disable tooltip
- Fixed #3220 - Sorting column by nested field does not work
- Fixed #3259 - Splitter should support block containers
- Fixed #3265 - Docs are not scrolled to the referenced member
- Fixed #3277 - Crash when hiding parent column
- Fixed #3301 - Copy/Paste should not react if cell or editor text is selected
- Fixed #3302 - TreeStore#move does not update tree contents properly
- Fixed #3305 - Guides look bad in the docs search results
- Fixed #3306 - Doc browser does not scroll to member
Version 4.2.3, 2021-08-05
FEATURES / ENHANCEMENTS
- The PdfExport feature now supports configuring its ExportDialog to pre-select columns to export or to customize any of the child widgets (Fixed #2052)
- [NPM] Bryntum Npm server now supports remote private repository access for Artifactory with username and password authentication (Fixed #2864)
- [TYPINGS] Type definitions now contain typed
features
configs and properties (Fixed #2740)
API CHANGES
- [DEPRECATED] PdfExport feature
export
event is deprecated and will be removed in 4.3.0. Useexport
event on the Grid instead - [DEPRECATED] Grid
beforeExport
event signature is deprecated and will be removed in 4.3.0. New signature wraps config object to the corresponding key
BUG FIXES
- Fixed #1596 - Collapsed groups disappear when using filterBar
- Fixed #1698 - Export dialog is not configurable
- Fixed #2600 - PdfExport feature export() method should take column exportable flag into account
- Fixed #2693 - exporterType : 'multipage' not respected
- Fixed #3206 - Selection is not updated when triggering contextmenu on expander icon
- Fixed #3209 - Filterbar feature uses wrong column looking for filter fn
- Fixed #3247 - Scroller position reset to 0 when filtering using FilterBar with no results
Version 4.2.2, 2021-07-21
FEATURES / ENHANCEMENTS
- [NPM] Bryntum Npm server now supports
npm token
command for managing access tokens for CI/CD (Fixed #2703)
BUG FIXES
- Fixed #365 - Re-assigning columns is not compatible with checkbox selection model
- Fixed #2170 - Cell tooltip hides & shows infinitely if it doesn't fit in the viewport
- Fixed #3039 - Fixed incorrect
dragcancel
firing when only a click (and no drag) occurred - Fixed #3162 - LoadOnDemand feature cannot be disabled in runtime
- Fixed #3167 - LWC bundle is missing from trial packages
- Fixed #3178 - Syntax highlighter messes up code snippets in docs
- Fixed #3192 - Filterbar combo width does not stretch to match column
Version 4.2.1, 2021-07-07
FEATURES / ENHANCEMENTS
- [FRAMEWORKS] Added
rowCopyPasteFeature
to frameworks wrappers (Fixed #3135)
BUG FIXES
- Fixed #3043 - syncDataOnLoad does not work correctly with trees
- Fixed #3136 - [NPM] Running
npm install
twice creates modifiedpackage-lock.json
file
Version 4.2.0, 2021-06-30
FEATURES / ENHANCEMENTS
- List can now render a grouped store, which can be used by Combo for a grouped combo UI (Fixed #2459)
- Added a new
Responsive
mixin that can be mixed into widgets to allow responsive behaviour (Fixed #2672) - [BREAKING]
Grid.util.ScrollManager
was moved to the Core package and renamed toCore.util.ScrollManager
. It is untangled from the Grid and allows managing scrolling of any DOM element. (Fixed #2883) - Added a new
bubbleEvents
config to specify events that should always bubble. Useful for example on fields in a container, to bubblechange
events and catch them in a listener on the container - Added "Replacing Font Awesome with Material Icons" guide
API CHANGES
- [BREAKING]
GlobalEvents
is no longer exposed onwindow
. If you use it in your application, import it instead
LOCALE UPDATES
removeRows
label of CellMenu & GridBase was removed- Value of
removeRow
label of CellMenu & GridBase was updated to say just 'Remove' - RowCopyPaste locales were updated to just say 'Copy', 'Cut' & 'Paste'.
copyRows
,cutRows
&pasteRows
keys were removed
BUG FIXES
- Fixed #2643 - Code editor shows all code in one line
- Fixed #2940 - Ok and Cancel button order should match OS
- Fixed #3036 - Hidden columns are exported anyway
- For more details, see What's new and Upgrade guide in docs
Version 4.1.6, 2021-06-23
FEATURES / ENHANCEMENTS
- GridSelection has a new selectionMode option
preserveSelectionOnPageChange
which preserves the selected records while moving between pages in a paged dataset (Fixed #3079)
BUG FIXES
- Fixed #110 - Group and Sort features should support custom sorting functions
- Fixed #278 - Calling tree store removeAll(true) unbinds rootNode from store
- Fixed #2756 - Row height is not recalculated when collapsing group
- Fixed #3005 - [VUE-3] Problem with Critical Paths due to Vue Proxy and double native events firing bug
- Fixed #3008 - Remove childElementCount usages, unsupported in LWC
- Fixed #3018 - QuickFind feature should encode HTML
- Fixed #3026 - [VUE-2] and [VUE-3] typescript type declarations are missing
- Fixed #3028 - Parent task turned into leaf after removing child task
- Fixed #3029 - Child nodes not removed after collapsing parent node in tree grid
Version 4.1.5, 2021-06-09
FEATURES / ENHANCEMENTS
- Grid now has a
minHeight
of10em
by default. This assures that the Grid will get a size even if no other sizing rules are applied for the element it is rendered to. When the defaultminHeight
is driving the height, a warning is shown on the console to let the dev know that sizing rules are missing. The warning is not shown if aminHeight
is explicitly configured (Fixed #2915) - [TYPINGS] API singleton classes are correctly exported to typings (Fixed #2752)
BUG FIXES
- Fixed #2724 - CellEditor won't close properly after invalid search in combo list
- Fixed #2757 - React and Vue column renderers do not sync the value
- Fixed #2985 - RowReorder drag proxy element misplaced
- Fixed #2990 - [ANGULAR] Preventable async events don't work
Version 4.1.4, 2021-05-28
FEATURES / ENHANCEMENTS
- Grid can now be configured to clear its row / cell selection after a new dataset is loaded. This is
configured using the
selectionMode#preserveSelectionOnDatasetChange
config of the GridSelection mixin - Grid can now be configured to preserve its vertical scroll state after a new dataset is loaded. This is
controlled by the
preserveScrollOnDatasetChange
flag - Grid RowReorder feature now allows for async finalization of a drop. See updated docs or
rowreorder
demo for guidance. (Fixed #2716) - TypeScript definitions updated to use typed
Partial<>
parameters where available - Buttons now has a new style
b-transparent
that renders them without background or borders (Fixed #2853) - [NPM] repository package
@bryntum/grid
now includes source code (Fixed #2723) - [NPM] repository package
@bryntum/grid
now includes minified versions of bundles (Fixed #2842) - [FRAMEWORKS] Frameworks demos packages dependencies updated to support Node v12
BUG FIXES
- Fixed #2104 - "Core" code not isomorphic
- Fixed #2783 - CellMenu not triggered on iPhone's with 3D touch enabled
- Fixed #2828 - Memory leak when replacing project instance
- Fixed #2834 - Core should not use b-fa for icon prefix
- Fixed #2874 - Filter field should not grow when X is shown
- Fixed #2884 - Check all checkbox checked state should be updated after page change
- Fixed #2908 - [ANGULAR] Add custom-tag rendering of tooltip, header, etc. to angular-renderer demo
- Fixed #2936 - Filter added to nested column does not update filter field
- Fixed #2937 - Clicking next page doesn't scroll to top
Version 4.1.3, 2021-05-13
FEATURES / ENHANCEMENTS
- Improved PDF Export feature API. It exposes methods allowing to take control over requests and responses (Fixed #2726)
- Grid's row checkbox selection with checkbox can now also select tree node children when a parent node is selected (Fixed #1951)
- Column now has a 'tooltip' config for showing a tooltip when hovering the column header (Fixed #2794)
- Bumped the built in version of FontAwesome Free to 5.15.3 and added missing imports to allow stacked icons etc
- Bumped the
@babel/preset-env
config target tochrome: 75
for the Module bundle. This decreased bundle sizes and improved performance for modern browsers - Updated Angular Wrappers to be compatible with Angular 6-7 in production mode for target
es2015
BUG FIXES
- Fixed #2478 - Normal grid cannot be expanded after restoring its collapsed state
- Fixed #2581 - PDF Export server doesn't load local resources via HTTPS
- Fixed #2597 - Pointer position is out of sync with column right edge when reducing column width
- Fixed #2694 - [REACT] Grid - column resizing broken
- Fixed #2731 - Column drag proxy is misplaced in absolutely positioned web component
- Fixed #2762 - TimeField step defaults to day unit
- Fixed #2778 - Wrong module declaration in typings file
- Fixed #2795 - Row selection lost after collapse / expand parent node
- Fixed #2801 - Filter bar misrendered in docs example
- Fixed #2816 - Not possible to use renderer on Checkbox column
- Fixed #2856 - Column filter's "operator" argument never changes after setting
Version 4.1.2, 2021-04-27
BUG FIXES
- Fixed #2677 - Fixed improper toolbar overflow handling of buttons with menus
Version 4.1.1, 2021-04-23
FEATURES / ENHANCEMENTS
- Added new
enableUndoRedoKeys
config to Grid which triggers undo / redo upon pressing CTRL-Z key combination (Fixed #2532) - Popups can now be maximized to fill the visible viewport
- New Vue 3 Vue Renderer demo
- New Vue 3 TreeGrid demo
- New config
autoHeight
on Tab Panel to set the height of all tabs to match the tab with the highest content - The Context menu base class (ContextMenuBase.js) now supports triggering a context menu to be shown programmatically
using the new
showContextMenu
method - The summary feature now supports summing only selected rows (Fixed #2631)
- Display field can now accept a template formatting its value, which can now also be markup (Fixed #2641)
BUG FIXES
- Fixed #109 - Slider label should not have right margin
- Fixed #491 - Store loadChildren should remove existing children
- Fixed #1083 - Summary not updated after filtering with filter bar
- Fixed #1339 - Issue when destroying the grid with custom React components
- Fixed #1861 - Store filter method does not support nested fields
- Fixed #1987 - DOCS: React guide needs a section on how to listen for events
- Fixed #2293 - Search in a tree grid by a full matched string produces Object object in cell content
- Fixed #2410 - List hide/show methods lose parent promises
- Fixed #2482 - MultiSelect Combo set value doesn't work when configured filterSelected : true
- Fixed #2542 - selectionMode with checkbox column does not handle selection mutating inside selectionChange listener
- Fixed #2569 - Grid scroll not working after store.add when store is filtered
- Fixed #2596 - Vue-3: Implement Vue component support for column (cell) renderer
- Fixed #2616 - Varying padding-left in Panel
- Fixed #2636 - [WRAPPERS] Features are not updated at runtime
- Fixed #2659 - Context menus do not work with extra wrapper around lwc container element
- Fixed #2671 - parentIndex field has incorrect value after clearing filters
- Fixed #2678 - Column autoWidth and cell edit causes editor to be misaligned
- Fixed #2679 - on-owner events should be added to owner too in docs
- Fixed #2681 - Yarn. Package trial alias can not be installed
- Fixed #2687 - Excel Export ignores nested fields
- Fixed #2729 - Action Column Causes Grouping Header to Disappear
Version 4.1.0, 2021-04-02
FEATURES / ENHANCEMENTS
- We are happy to announce that Bryntum Grid now can be directly installed using our npm registry
We've updated all our frameworks demos to use
@bryntum
npm packages. See them inexamples/frameworks
folder Please refer to "Npm packages" guide in docs for registry login and usage information - Added new Vue 3 Simple demo to show how to use Bryntum Grid in Vue 3 (Fixed #13155 - Implement demos with VUE 3 support)
- Added new Vue Cell Renderer demo to show Vue Components as cell renderers (Partially fixed #946 - Vue: Support components in renderers)
- Added new Bryntum Grid Big Dataset demo in React 17 demo . The example also implements theme switching (Fixed #1823 and Fixed #2213)
- Bryntum demos were updated with XSS protection code.
StringHelper.encodeHtml
andStringHelper.xss
functions were used for this - CellEdit#startEditing will now cancel any ongoing editing before starting the editing (previously just ignored this situation)
- Model fields can now be marked with
alwaysWrite
to ensure important data fields are always included when updates are committed by an AjaxStore (Fixed #848) - Refactored
TabPanel
base class toPanel
fromContainer
. ThePanel
class's algorithm for handling docked items (such astbar
andbbar
) was enhanced to work with the newtabBar
config ofTabPanel
using the newstrips
config. Thestrips
config is liketools
except it is designed for toolbars. The items instrips
have adock
config to specify the edge to which they dock ('top'
,'left'
,'bottom'
, or'right'
) or, alternatively,'header'
or'pre-header'
to position the toolbar in the panel's header after or before the title, respectively. These items also use theirweight
config to determine their docking order. The higher the item'sweight
, the closer it will be to the panel's central body element (Fixed #1837) - Refactored the tab strip of
TabPanel
into aTabBar
widget that extendsToolbar
. This uses the newtabBar
config ofTabPanel
to add an item to the newstrips
config ofPanel
. ThetabBar
uses itsweight
config to order it along withtbar
andbbar
of thePanel
. ThetabBar
also inherits theoverflow
feature ofToolbar
(Fixed #1827) - Panel now has a
bodyCls
config to place CSS classes on the body element - Summary feature now offers a
refresh
method to update summaries. See updated summary demo for sample usage - DatePicker now supports
cellRenderer
to output custom contents into the date cells (Fixed #2498) showValue
config of PercentColumn class defaults tofalse
now- The
ColumnPicker
feature now has a new config,createColumnsFromData
which means that data fields in the grid's model class are interrogated and new columns may be added from the column menu to represent those fields - It is now possible to use automatic height for cells, see the new
autoHeight
config onColumn
. Please note that enabling it comes with a pretty hefty performance hit, since all the cells has to be measured in DOM. Check it out in the newautoheight
demo (Fixed #2236) - Widgets now offer
requestFullscreen
andexitFullscreen
methods, which ensure tooltips and other floating sub-widgets will be visible while in fullscreen mode - CellEdits
cancelCellEdit()
method now includes anevent
parameter if the cancellation was triggered by a DOM event (Fixed #2311) - Column´s header text is now HTML encoded by default. Can be disabled by using the new
htmlEncodeHeaderText
config (Fixed #2765) - Added a compact mode to the FilterBar feature, that overlays the filtering fields on the headers (Fixed #2132)
API CHANGES
- [BREAKING] Removed RequireJS demos and integration guides in favor of modern ES6 Modules technology (Fixed #1963)
- [BREAKING] Angular wrapper
onGridEvents
event renamed toonCatchAll
- [BREAKING] Angular wrapper feature names are now suffixed with
Feature
- [BREAKING]
init
method is no longer required in Lightning Web Components and was removed from the LWC bundle - [DEPRECATED] React, Angular, Vue wrappers
gridInstance
property renamed toinstance
- [DEPRECATED] The
cellSelector
param of the Grid cellClick / cellDblClick / cellContextMenu / cellMouseOver / cellMouseOut events was deprecated and will be removed in 5.0 - [DEPRECATED] The
Store
move
event'srecord
property was deprecated in favor ofrecords
, but if the array form has been used, only contains the first record. This property will be removed in a future version - Internal DOM structure of the DatePicker header was refactored and simplified. This may affect your styling if you have relied on the presence of certain elements or CSS classes
- DatePicker#editOnHover config was deprecated and it has no effect on the widget
- Returning
false
from an on-function now prevents the listeners for that event from being triggered - The
Store.move()
API now accepts an array of records to move as well as a single record. The correspondingStore
move
event now has an extrarecords
property referencing all records which have been moved
BUG FIXES
- Fixed #400 - Tooltips and floating widgets are not visible if Scheduler is fullscreen
- Fixed #876 -
store.query
should search through all records when searchAllRecords is true - Fixed #951 - Tooltips not shown for widgets inside a web component with shadow root
- Fixed #1059 - Slider cannot be used as a widget in a column
- Fixed #1525 - Improve Localization guide
- Fixed #1689 - Investigate sharing static resource between multiple LWC on the same page
- Fixed #1819 - DatePicker styling issues
- Fixed #1893 - [REACT] JSX renderer not supported for TreeColumn
- Fixed #2109 - Row selection in check column not possible if grid is readonly
- Fixed #2153 - Select all checkbox in Check column does not react on click
- Fixed #2194 - Setting
title
on item in aTabPanel
now updates the text of the tab in the tab bar - Fixed #2211 - Add test coverage for XSS
- Fixed #2225 - Store.originalCount should ignore special group records
- Fixed #2235 - Number column does not accept key typed if its cell has the same value
- Fixed #2285 - React Components not being rendered within Scheduler cells when columns are sorted
- Fixed #2295 - Not possible to type in negative numbers to the number field
- Fixed #2304 - CheckColumn does not respect "text" config
- Fixed #2305 - Editing code in online demos throws error
- Fixed #2306 - Grid#selectRow fails if first column is hidden
- Fixed #2321 - [LWC] input arrows do not work
- Fixed #2328 - Calling store.load on paged grid changes the page number
- Fixed #2354 - Column filter icon tooltip displays the valueField instead of the displayField
- Fixed #2359 - Update readme files in all framework demos in all products
- Fixed #2367 - Bug when dragging child column to last index of its parent
- Fixed #2379 - Add minified version of *.lite.umd.js to the bundle
- Fixed #2384 - Child nodes loaded on demand are not sorted
- Fixed #2385 - Keyboard Navigation Broken When Restoring Column Hidden State
- Fixed #2390 - Support sorting after Store#add
- Fixed #2407 - Grid/Scheduler not working in IE11
- Fixed #2423 - Cannot define responsiveLevels in class definition
- Fixed #2426 - Double clicking tree expander icon should not start editing
- Fixed #2432 - Setting combobox value to non-matched value should sync input value to that value
- Fixed #2435 - TabPanel issues
- Fixed #2474 - Empty text not shown when using autoHeight
- Fixed #2486 - Month/year picker is not aligned to date picker properly
- Fixed #2505 - Clicking tree node expander icon should not focus row
- Fixed #2511 - Applying empty store state doesn't clear filters/sorters/groupers
- Fixed #2522 - Percent column never displays a value
- Fixed #2526 - Grid CheckAll checkbox un-checks after drag and drop
- Fixed #2527 - Inconsistent Behaviour with Select All when Collapsed Groups
- Fixed #2531 - React JSX Column renderer buggy in grouping grid
- Fixed #2539 - toggleNode event 'collapse' param showing is undefined
- Fixed #2546 - [VUE] Widget column doesn't render widget after stopped grouping
- Fixed #2547 - Vue dashboard demo visual issues
- Fixed #2548 - [VUE] Cell renderer does not update on sort
- Fixed #2551 - Removing row makes grid to render several empty lines
Version 4.0.8, 2021-01-27
FEATURES / ENHANCEMENTS
- Grid now exposes a firstVisibleRow and lastVisibleRow returning first/last visible row records in the grid viewport
- Added sliding toggle widget, which is a styled checkbox (Fixed #2242)
BUG FIXES
- Fixed #2195 - Action column buttons needs a softer color
- Fixed #2223 - Static request params should be merged with params specified in URL
- Fixed #2250 - Group Renderer does not allow direct changes to cellElement for feature config
- Fixed #2260 - CheckColumn ignores headerRenderer
- Fixed #2280 - Grid header is rendered incorrectly in LWC
Version 4.0.7, 2021-01-12
FEATURES / ENHANCEMENTS
- The
params
config of AjaxStore was made public (Fixed #2216) DateField
now supports entering of time if it is configured withkeepTime: 'entered'
and if the fieldformat
includes time info
BUG FIXES
- Fixed #2127 - Unable to Edit Number Column Cell Decimal Values
- Fixed #2135 - Template columns not rendering properly after grouping the grid
- Fixed #2160 - ActionColumn action handler runs more than once
- Fixed #2177 - Display of the date column filter tooltip is inconsistent
- Fixed #2186 - "responsive" event is not fired for the smallest level on load
- Fixed #2187 - Cell editing finalized after server response with autoSync
- Fixed #2198 - Enter key should skip group header rows
- Fixed #2207 - After removing last record in a group, the Group renderer is called for the empty group
Version 4.0.6, 2020-12-29
FEATURES / ENHANCEMENTS
- The Grid can now remove filtered out records from its row selection using the new
selectionMode.deselectFilteredOutRecords
flag (Fixed #2112) - ActionColumn is now usable when its Grid is readOnly, and its actions are optionally disabled based on the
new
disableIfGridReadOnly
config value (defaults to false)
BUG FIXES
- Fixed #1894 - Click on chapter works only first time
- Fixed #1990 - Grid subclasses can now configure its store (e.g.,
modelClass
) in itsstatic get configurable()
- Fixed #2039 - ordinalSuffix yields incorrect result for numbers ending with 11, 12, and 13
- Fixed #2107 - Excel export fails to export while using groupSummary
- Fixed #2115 - DurationField should respect useAbbreviation config
- Fixed #2155 - Cell tooltip shows up empty sometimes
- Fixed #2156 - ActionColumn crashes if Grid#hideHeaders is true
- Fixed #2161 - Docs should handle URI encoding
- Fixed #2168 - Grid title header misstyled like a column header
- Fixed #2169 - Properties missing type in docs
Version 4.0.5, 2020-12-15
FEATURES / ENHANCEMENTS
- Added specific CSS class for ColumnPicker submenu -
b-column-picker-menu
(Fixed #2057)
API CHANGES
- ContextMenu features now accept a
menu
config to merge into their default configuration for their Menus. ThemenuConfig
property is deprecated in keeping with slimming our API footprint
BUG FIXES
- Fixed #2049 - Allow overriding fields for filter feature on column basis
- Fixed #2553 - Column.resizeToFitContent has poor performance with multiple columns
Version 4.0.4, 2020-12-09
FEATURES / ENHANCEMENTS
- A new config
discardPortals
on the React wrapper, that controls the behaviour of cell renderers using React components. Set tofalse
(default) to enhance performance. Set totrue
to limit memory consumption - Added new Vue Export to Excel demo
- Added new React TreeGrid demo
- Custom sorting functions defined on columns (see
Column#sortable
) can now be applied when programmatically sorting the store by that columns field, see the newSort#prioritizeColumns
config (Fixed #1303) - Custom filtering functions defined on columns (see
Column#filterable
) can now be applied when programmatically filtering the store by that columns field, see the newFilter#prioritizeColumns
andFilterBar#prioritizeColumns
configs (Fixed #1925) - DurationField now offers
min
/max
configs (Fixed #1997)
API CHANGES
- CellEdit#doAddNewAtEnd method was made public by mistake, it is now private
BUG FIXES
- Fixed #1754 - Click on Action Column items not triggering anything when cellEdit feature is disabled
- Fixed #1812 - Make tables look better in docs
- Fixed #1857 - Subgrid cannot be expanded after applying collapsed state
- Fixed #1869 - Very low performance of React cell renderers
- Fixed #1896 - Revise column state attributes
- Fixed #1902 - Combo filter should use exact match for string values
- Fixed #1917 - Field error tooltip contains wrong information
- Fixed #1922 - Make public some API used by
destroy
- Fixed #1928 - Aligned Popups can lose their configurations on drag
- Fixed #1936 - ENTER key on last row cell should add a new row if
addNewAtEnd
is enabled - Fixed #1946 - Multi sort UI is broken for Duration column (any column with
sortable
function) - Fixed #1957 - Date filter is applied incorrectly when restoring from state
- Fixed #1988 - Docs left panel shrinks when filtered
- Fixed #2026 - Row reorder broken when header menu is disabled
Version 4.0.3, 2020-11-17
FEATURES / ENHANCEMENTS
- A new config,
collapseToHeader
on theGroupSummary
feature makes the headers row of a collapsed group contain the summary data for the group. Be aware that the group title is limited in width in a collapsed group header with this set so that it does not overflow into summary cells. (Fixed #1355) - Added supported for reverting model changes (Fixed #1874)
BUG FIXES
- Fixed #1719 - No scrollbar if all data filtered
- Fixed #1811 - Number field
changeOnSpin
flag doesn't work as expected - Fixed #1831 - Null entries should not swap positions when sorting
- Fixed #1836 - Combo's picker loses anchoring after typing
- Fixed #1850 - Column sortable function not called when sorting from context menu
- Fixed #1858 - Pressing space on a CheckColumn should not trigger scroll
- Fixed #1878 - initClass method should be public
- Fixed #1884 - Load mask not hidden after loading fails
Version 4.0.2, 2020-11-04
BUG FIXES
- Fixed #1350 - Excel export turns numbers into text
- Fixed #1511 - DatePicker selects wrong month
- Fixed #1563 - Editor class fires "complete" event twice
Version 4.0.1, 2020-11-03
FEATURES / ENHANCEMENTS
- Improved API Docs with a new fiddle panel for live demos, you can now update the code of any live demo and instantly see the result. Also added TOC to guides and a class hierarchy
- Columns can now supply a custom
filterField
to control which widget handles the filtering Makes it possible to have list based filtering, where you pick a value from a Combo to filter (Fixed #1772)
API CHANGES
- Store#query and Store#find no longer calls the supplied filtering method for special group header records
- Renamed and documented events
columnShow
/columnHide
for Grid.data.ColumnStore
BUG FIXES
- Fixed #124 - Pressed button border overlaps badge
- Fixed #913 - Docs: Navigating back after visiting bad link has no effect
- Fixed #405 - Crash when typing *foo* into grid column filter
- Fixed #890 - Tooltip / container with text content should not use display flex
- Fixed #1322 - Extra rows appearing when stop grouping
- Fixed #1323 - Not possible to escape out of invalid or empty number field editor
- Fixed #1408 - Promise rejection when an example tooltip load is aborted
- Fixed #1672 - Right click a grid cell when another window is active on Mac and then removing the record fails with exception
- Fixed #1705 - Wrong region size on export
- Fixed #1706 - Toolbar should not be exported
- Fixed #1712 - Skip non-exportable columns in export dialog window
- Fixed #1777 - List always focuses first item when clicking unfocused list
- Fixed #1782 - Incorrect group size displayed
Version 4.0.0, 2020-10-19
FEATURES / ENHANCEMENTS
- [BREAKING] Dropped Support for Edge 18 and older. Our Edge <=18 fixes are still in place and active, but we will not be adding more fixes. Existing fixes will be removed in a later version
- Context menu features refactoring: simplified naming by removing the word "Context" in feature names and in event names, introduced named objects for menu items, split context menu features by area of responsibility. Please check out the upgrade guide for details (Fixed #128)
- ContextMenu feature has been split into CellMenu and HeaderMenu (Fixed #8440)
- Added "Customize context menus" and "Replace context menus" guides (Fixed #1312)
- Added a new Grid Feature
StickyCells
. When using highly structured cell content, this allows row content identified by a selector to be pinned to the grid top while the row is scrolling off the top but is still visible:features : { stickyCells : { contentSelector : '.myClass' } }
- Field widgets now support a
hint
(andhintHtml
) config to display non-interactive text overlaying the input element - The RowReorder feature was updated to allow dragging multiple rows at once (Fixed #1402)
- Added a
precision
config to Model fields of typenumber
, to control the number of digits they hold. Input is rounded to the specified precision. Makes it easier to match up with a backend using floating numbers of a certain precision (Fixed #1320) - Grid now extends
Panel
instead ofContainer
. This allows you to easily add toolbars to it (Fixed #1417) - Added XSS protection functions:
StringHelper.encodeHtml
andStringHelper.xss
- Added
grid.lite.umd.js
module that does not includePromise
polyfill. This module is primarily intended to be used with Angular to preventzone.js
polyfills overwrite - Added experimental support for Salesforce Locking Service (Fixed #359). The distributed bundle only supports modern browsers (no IE11 or non-chromium based Edge), since Salesforce drops support for these in January 1st 2021 too
- Added Lightning Web Component demo, see
examples/salesforce/src/lwc
API CHANGES
- [BREAKING] The
Core/adapter
directory has been removed. There are no Widget adapters. All Widget classes register themselves with theWidget
class, and theWidget
class is the source of Widgettype
mapping and Widget registration and lookup byid
- [BREAKING] GridState now stores subGrid state in a new format so end users might observe their width/collapsed states not being restored
- [BREAKING] The
Default
,Light
andDark
themes were renamed toClassic
,Classic-Light
andClassic-Dark
This change highlights the fact that they are variations of the same theme, and that it is not the default theme (Stockholm is our default theme since version 2.0) - [DEPRECATED]
ContextMenu
feature was deprecated. Instead 2 new features were introduced:CellMenu
andHeaderMenu
- [DEPRECATED]
showRemoveRowInContextMenu
config was deprecated in favour ofCellMenu
configuration - [DEPRECATED] Providing
cellMenuItems
andheaderMenuItems
column configs as an array was deprecated. It has to be a named object now - [DEPRECATED] The
capitalizeFirsLetter()
andlowerCaseFirstLetter()
functions inStringHelper
was deprecated in favor ofcapitalize()
anduncapitalize()
- [DEPRECATED] The
record
property of RowReorder events is now deprecated in favor ofrecords
since the feature now supports dragging multiple rows - Model fields in derived classes are now merged with corresponding model fields (by name) in super classes. This allows
serialization and other attributes to be inherited when a derived class only wants to change the
defaultValue
or other attribute of the field - The
dateFormat
config fortype='date'
model fields has been simplified toformat
- Arrow down from column header now navigates to first fully visible cell in that column, instead of the previous behavior of opening the column menu
- Stores
json
accessor (which returns a JSON string) andtoJSON()
function (an array of objects) was both documented and made public. Useful if you need access to the data of all records to serialize yourself. Output oftoJSON()
can be directly plugged intostore.data
, and the output ofjson
can be consumed by setting the same property - Widget reference moved from
reference
attribute todata-reference
. Change only affects CSS selectors, JS API remain intact - The following previously deprecated members/classes where removed:
-
StateTrackingManager.getStoreById()
-Store.isVisible()
-Rectangle.round()
-InstancePlugin.pluggedInto
-Editor.allowInvalid
-FlagField
-Widget.visible
-startCellEdit
eventsgrid
param -cancelCellEdit
eventsgrid
param
BUG FIXES
- Fixed #963 - Double clicking other cell during async finalizeCellEdit causes crash
- Fixed #1268 - Exception when editing date cell
- Fixed #1324 - Grouping demo should use combo to pick colors
- Fixed #1325 - Crash after menu hidden
- Fixed #1400 - DateHelper typo
- Fixed #1405 - Crash when dragging row up to grid header
- Fixed #1414 - Checkbox tooltip is not localized in the demo
- Fixed #1425 - Strange Swedish date format
- Fixed #1479 - Examples thumbnails are missing
- Fixed #1484 - Step triggers not horizontally centered
- Fixed #1488 - b-masked CSS class still found after removing mask
- Fixed #1504 - Arrow down from column header should jump to first fully visible cell in that column
- Fixed #1512 - Typing text into inferred number data field in demos produce NaN
- Fixed #1514 - NumberColumn outputs 0 for null/undefined field value
- Fixed #1540 - Unquoted column.id in selectors
- Fixed #1544 - Classic-dark theme white background in example browser
- Fixed #1545 - Mini demo in example browser fails to load for classic themes in IE11
- Fixed #1548 - [ANGULAR] Investigate zone.js loading order and set it to Angular default
- Fixed #1600 - Down key in TextAreaField does not respect inline config
- Fixed #1637 - Number field triggers reset value
- Fixed #1645 - Angular example throws an error on expired trial version
- Fixed #1676 - Vuestic demo issues
- Fixed #1684 - MessageDialog yesButton missing from docs
Version 3.1.9, 2020-08-26
BUG FIXES
- Fixed #1424 - Date picker next button leads to wrong year
- Fixed 1352 - Filters removed on data load
Version 3.1.8, 2020-08-11
API CHANGES
- Mask
progress
andmaxProgress
are now public properties (Fixed #1060)
BUG FIXES
- Fixed #967 - ActionColumn icon is not centered
- Fixed #975 - STM doesn't update store changes properly
- Fixed #1244 - Initial export options are shown incorrectly in the export dialog
- Fixed #1301 - Prevent using filterBar and filter features together
Version 3.1.7, 2020-07-24
FEATURES/ENHANCEMENTS
- Added new exporter: MultiPageVertical. It fits content horizontally and then generates vertical pages to fit vertical content. (Fixed #1092)
BUG FIXES
- Fixed #953 - Load mask appearing on top of export progress
- Fixed #973 - Export feature does not respect left grid section width
- Fixed #1172 - Wrapper should not relay store events to the instance
- Fixed #1176 - Destroying scheduler on touchstart fails
- Fixed #1180 - Exported grid should end with the last row
- Fixed #1211 - Badge example in docs not working
- Fixed #1215 - PdfExport should not rely on loadMask of the grid
Version 3.1.6, 2020-07-10
FEATURES/ENHANCEMENTS
- Added Docker image of the PDF Export Server. See server README for details. (Fixed #905)
API CHANGES
- [DEPRECATED] To avoid risk of confusing the Grid instance with the calculation engine,
gridEngine
has been deprecated in favor ofgridInstance
in all framework wrappers (Angular, React, Vue). Fixed #776
BUG FIXES
- Fixed #842 - Column renderer should return a value to update cell content
- Fixed #881 - Tooltip is blinking in Firefox when hoverDelay is specified
- Fixed #884 - Slider crops its marker
- Fixed #907 - Error when combining Grid rowCheckboxSelection and summary feature
- Fixed #944 - ExportDialog should respect PdfExport feature configuration
- Fixed #964 - Sorting and filter parameters not URL encoded
- Fixed #1086 - Sort triggered after column resize
- Fixed #1100 - Widgets having show animation does not get the b-animating CSS class
- Fixed #1135 - Incorrect Sorting behaviour for Duration column
- Fixed #1137 - eventColor should not apply background to dashed eventStyle
Version 3.1.5, 2020-06-09
FEATURES/ENHANCEMENTS
- Added a new
beforeGridRowDropFinalize
event to RowReorderFeature to allow a single event to set validity (Fixed #808) - Removed React and Vue CDN demos in favor of existing framework examples (Fixed #840)
- Updated Font Awesome Free to v5.13.0
- ScrollManager class was made public, allowing control of how drag-scroll gestures behave (Fixed #870)
- Updated Vue Integration Guide (Fixed #672)
- Added
indentSize
config toGrid.column.TreeColumn
(Fixed #775) - Tooltip#beforeShow event now includes access to the event that triggered it to show (via
source.triggeredByEvent
) (Fixed #799)
API CHANGES
- To fix locale inheritance problems some Grid locale strings were moved from the
Grid
section to theGridBase
section in localization files. Any custom localizations for Grid should be updated accordingly. (Fixed #780) - Column renderers can now request a lower height than the configured
rowHeight
. To allow this, they are now called withsize : { height : null }
instead ofsize : { height : rowHeight }
. As before, set your desired height there The largest requested height for a row will be used. If none is requested it will use the configured row height - Removed not used localizations
GridBase.serverResponseLabel
,Tree.noTreeColumn
,Grid.featureNotFound
,Grid.invalidFeatureNameFormat
,ColumnStore.columnTypeNotFound
,TemplateColumn.noTemplate
,TemplateColumn.noFunction
- Renamed localization
PdfExport.Waiting for response from server...
toPdfExport.Waiting for response from server
BUG FIXES
- Fixed #653 - Grouped schedule grid corrupted after group collapse / expand
- Fixed #742 - Not persistable data change may initiate a commit with an empty object
- Fixed #781 - Grouping breaks when removing last record in group
- Fixed #828 - Tree node with link does not cover cell fully
- Fixed #831 - Clicking parent node (with href set) expander should not trigger the link
- Fixed #844 - Drag drop does not finalize properly if mouse up happens above an iframe
- Fixed #854 - Allow renderers to set lower row height
- Fixed #861 - Crash if calling refreshColumn on a hidden column
- Fixed #885 - Page scrolls when expanding date picker with keyboard
Version 3.1.4, 2020-05-19
BUG FIXES
- Fixed #521 - Blank records added on stop grouping of filtered grid
- Fixed #761 - Tooltip does not show first time when loadingMsg is empty and loading remote content
- Fixed #769 - Popup is not aligned to target properly with constrainTo
- Fixed #777 - Show / hide filter bar is not working when after removing a column
- Fixed #782 - Crash after collapse all with empty tree
- Fixed #785 - Code editor not working reliably
Version 3.1.3, 2020-05-14
FEATURES/ENHANCEMENTS
- Added Vue.js and Vuetify.js integrated examples (Fixed #374)
- Added
triggerEvent
config toGrid.feature.CellEdit
(Fixed #496) - Added new
ActionColumn
component (Fixed #504) - Added new Vue demos
BUG FIXES
- Fixed #493 - Export file name is not configurable
- Fixed #581 - Example label text cannot be selected
- Fixed #594 - gridRowDrop reorder event fires before row has been moved
- Fixed #595 - Crash when double clicking example image in examples browser
- Fixed #596 - Font Awesome should be bound to font-weight 900
- Fixed #670 - Editor Sass syntax error
- Fixed #680 - Crash if collapsing parent node with left section collapsed
- Fixed #759 - Cell editor not aligned after window resizing
Version 3.1.2, 2020-04-17
FEATURES/ENHANCEMENTS
- The grid.module.js bundle is now lightly transpiled to ECMAScript 2015 using Babel to work with more browsers out of the box
Version 3.1.1, 2020-03-27
FEATURES/ENHANCEMENTS
- Buttons now support having a link via the new
href
andtarget
config options
API CHANGES
- NumberField now reports
undefined
if the input field is empty - ObjectHelper#setPath method became chainable and returns the passed object instance
BUG FIXES
- Fixed #030 - Region resize splitter problems on touch devices
- Fixed #330 - Id collision happens when you add or move records after filters are cleared
- Fixed #411 - Setting icon classes on TreeColumn doesn't work properly
- Fixed #420 - Fixed Store sort does not respect ascending flag
- Fixed #422 - Theme switching leaks elements and crashes if changing multiple times with slow network
- Fixed #434 - Cell tooltip not working reliably
- Fixed #437 - removeAll on chained store clears master store
- Fixed #439 - required attribute has no effect on NumberField
- Fixed #445 - React: Scheduler crashes when features object passed as prop
- Fixed #451 - collapseAll does not update selection bug
- Fixed #453 - NaN seen in grid group summary demo bug
Version 3.1.0, 2020-03-10
FEATURES/ENHANCEMENTS
- Added
httpVerbs
anduseRestMethods
to AjaxStore to be able to use GET, POST, PUT, DELETE verbs for Store crud actions (Fixed #387) - Font Awesome 5 Pro was replaced with Font Awesome 5 Free as the default icon font (MIT / SIL OFL license)
parentIndex
is now a public field of TreeNode (Fixed #358)CheckColumn
+ selection model now supports a check-all checkbox in the column header
BUG FIXES
- Fixed #340 - Crash when selecting row if checkbox column is hidden
- Fixed #341 - Crash when removing multiple rows fast
- Fixed #342 - Crash if groupsummary is enabled without grid being grouped
- Fixed #344 - Crash after Enter keydown in filter bar
- Fixed #379 - STM manager doesn't undo row reordering
- Fixed #401 - Filtering a large, sorted dataset, when scrolled to the end, throws an error
Version 3.0.4, 2020-02-24
FEATURES/ENHANCEMENTS
- Added new Angular 9 example that shows how to use Angular Component as grid cell renderer (Fixed #304)
BUG FIXES
- Fixed #293 - Multiselect setting not honored in check box column
- Fixed #305 - 'b-text' class is not applied for widget column with button config for zero value
- Fixed #306 - Wrong row selection on click after Grid loses focus
- Fixed #327 - Export generates empty pages
- Fixed #332 - Setting rowHeight to 0 crashes the grid
- Fixed #348 - Tooltip misaligned after clicking add in tasks demo
Version 3.0.3, 2020-02-13
FEATURES/ENHANCEMENTS
- Tab panel now supports hiding tabs (Fixed #78)
- ScrollManager now has a
startScrollDelay
and waits before scrolling is started when mouse is moved close to an edge of an element monitored by the ScrollManager (Fixed #252)
BUG FIXES
- Fixed #202 - Columns sub-menu does not scroll for many columns
- Fixed #228 - iPad vertical scroll not working
- Fixed #246 - Dragging splitter should cancel cell editing
Version 3.0.2, 2020-01-29
FEATURES/ENHANCEMENTS
- PDF export server was refactored. Removed websocket support until it is implemented on a client side
Added logging. Added configuration file (see
app.config.js
) which can be overridden by CLI options Multipage export performance was increased substantially (seemax-workers
config in server readme) (Fixed #112)
Version 3.0.1, 2020-01-16
FEATURES/ENHANCEMENTS
- Added to the documentation what editor types columns support (Fixed #55)
- PDF Export feature uses "Grid" as the default file name (Fixed #117)
- Store can now remove individual filters by filter id or Filter instance using
store.removeFilter
(Fixed #462)
API CHANGES
- To show async content in a tooltip, you can now either return a
Promise
from theTooltip#getHtml
method or you can now set aPromise
yielding a string as the value theTooltip#html
property. See the What's new guide in the docs or more information - [DEPRECATED] Setting
Tooltip#html
to false to show loading message is deprecated. UseTooltip#showAsyncMessage
instead, see the What's new guide in the docs for more information
BUG FIXES
- Fixed #2 - Not possible to enter 00:00 into time field
- Fixed #27 - Crash when clicking time picker forward
- Fixed #28 - Crash after changing locale in celledit demo
- Fixed #88 - Crash after reordering column in grouping demo
- Fixed #113 - Cannot right click demo header
- Fixed #122 - Showing async tooltips is broken
- Fixed #133 - Not possible to set activeTab in 'beforeshow' listener of Card layout
- Fixed #158 - Pasting code into demo code editor keeps styling/formatting from IDE
- Fixed #170 - Grid Ext JS demo broken online
- Fixed #171 - Grid Ext JS demo broken
- Fixed #189 - DOCS: Public configs should not link to private configs/classes
Version 3.0.0, 2019-12-20
FEATURES/ENHANCEMENTS
- New Ionic Themes demo which shows using and changing included themes. (Fixed #9394)
- Grids styling for its horizontally scrolling elements was updated with
overscroll-behaviour: contain auto
. This prevents accidental history navigation while scrolling horizontally using trackpads/on touch devices - Grid
Column
s may be configured with afinalizeCellEdit
method which validates cell edits in that column It must returntrue
orfalse
. It may also be anasync
function whose resolution yieldstrue
orfalse
- Added support for exporting the Grid to PDF and PNG. It is showcased in the new
export
demo. The feature requires a special export server, which you can find in the examples/_shared/server folder. You will find more instructions in the README.md file in the new demo. (Fixed #6268) - Added
leadingZeroes
config option for NumberField (Fixed #7524) - Localization. Common localizable words and phrases may now be added to a common
Object
block of properties and will be accessible to all classes - Added support for named listeners (Fixed #43)
API CHANGES
- [BREAKING] (for those who build from sources): "Common" package was renamed to "Core", so all our basic classes
should be imported from
lib/Core/
- [BREAKING] Model no longer considers
null
as a valid id on records. It is now handled the same way as if id was undefined, meaning that a generated id will be assigned instead. If you usenull
as id on a record in your code, this change might be breaking We recommend to always supply an id for records from your backend, and there is a new setting onStore
to enforce that. Configuring Store withallowNoId: false
will make it throw if a record without id is loaded (Fixed #8570) - NumberField no longer uses native stepping with the arrow keys, instead it implements its own with configurable
behaviour. See the new
changeOnSpin
config - DateHelpers default date format was made configurable (assign to DateHelper.defaultFormat) and changed from
YYYY-MM-DDTHH:mm:ss.SSSZ
toYYYY-MM-DDTHH:mm:ssZ
to better match client expectations
BUG FIXES
- Fixed #9434 - Tooltips are broken on Android devices
- Fixed #14 - Record id 0 breaks Store#indexOf
- Fixed #24 - Inconsistent record 'changes' object after update
- Fixed #9212 - Adding FilePicker as widget for column
- Fixed #102 - Tree column not indented in exported Excel file
Version 2.3.0, 2019-11-05
FEATURES/ENHANCEMENTS
- Widget's tooltip configuration now uses a shared singleton Tooltip instance by default. Use
newInstance: true
if a new Tooltip instance is required for the widget (Fixed #7033) - Added a basic Splitter widget that allows resizing sibling elements/widgets in a flexbox layout (Fixed #9138)
- Combobox is now able to filter its store using remote filter requests as the user types. See
the
filterParamName
config. (Fixed #9256) - DatePicker panel now has month and year selection combos which appear on hover (Fixed #9259)
- TextField class now supports adding minlength, maxlength, tabindex attributes, as well as any other HTML attribute through the new 'inputAttributes' config (Fixed #9296)
- Widgets may now adopt a preexisting DOM node to use as their encapsulating
element
. This reduces DOM footprint when widgets are being placed inside existing applications, or when used inside UI frameworks which provide a DOM node. See theadopt
config option (Fixed #9414) Container
s now support removal and adding and inserting of child widgets. See the API docs forContainer
Container
s can now get/set values from/to all nested widgets using the newvalues
property. Also addedContainer#isValid
to check validity of all nested fields- Adding event listeners now accepts an
expires
option which is for how many milliseconds the event listener persists before it is removed. This is useful for capturing potential future events which may or may not happen - A new thinner version of Grid called
GridBase
was added. It is a Grid without default features, allowing smaller custom builds using for example WebPack. See the newcustom-build
demo for a possible setup (Fixed #7883) - The Group features
groupRenderer
is now applied to all columns in a group header, allowing more control over the rendering (Fixed #8751) - Column filtering using the FilterBar feature can now be done using any field through the new
filterable.filterField
config (Fixed #8799) - Added new 'Paged Grid demo with php backend' that shows how to use a paged store for Grid with remote sorting and filtering (Fixed #9213)
- A new Column type: 'aggregate' has been added. When used in a Tree, it aggregates the value of that column's field from child nodes. (Fixed #9227)
- The CellEdit feature now allows a
beforeCellEditStart
to inject an input field into theeditor
property of the passededitorContext
to use the specified input field to edit the cell (Fixed #9281) - Grids checkbox selection now offers a mode
rowCheckboxSelection
where selection is only done when clicking on a checkbox (Fixed #9313) - Support for disabling features at runtime has been improved, all features except Tree can now be disabled at any time (Fixed #8187, #9353) ### DATA LAYER CHANGES
- Added support for paged stores, remote sorting and remote filtering (Fixed #4504)
- Stores can now be configured with
syncDataOnLoad: true
, which will make them apply the difference between a new dataset and its existing data rather than doing a full replace. Especially useful in scenarios wherestore.data
is bound to something that applies the entire dataset on changes, for example a React state - Fields can be added/removed from a Model at runtime, using the new
Model.addField()
andModel.removeField()
functions (Fixed #9328) ColumnStore
can be configured withautoAddField : true
to automatically add the fields used by its columns to Grids store- Added new Angular 7 and Angular 8 integration examples (Fixed #9069)
- Experimental: The React wrapper has been updated to support using React components (JSX) in cell renderers and as cell editors. Please check out the updated React demos to see how it works, and read up on it in the updated integration guide (Fixed #7334, Fixed #9043, Fixed #9244)
API CHANGES
- The behaviour of
Store#add()
in a tree store has been changed to take theparentId
of the records being added into consideration. Previously all nodes added this way was appended to root, but they can now be added to any parent in the tree. For examplestore.add({ name : 'New kid', parentId : 5 })
will add the new node to parent with id 5. To actually add to root, useparentId : null
(or even better, use the TreeNode api) Model.convertEmptyParentToLeaf
was changed to accept either a boolean or a config object, for control over if conversion happens on load or on CRUD or both (Fixed #8973)- ResizeHelper can be configured with
dynamicHandleSize : true
to automatically shrink virtual handles from their configured size towards 1 to enable resizing elements that do no fit full handles - The validation behaviour for
required
fields was slightly changed to not flag initially empty fields as invalid, they are instead flagged on blur or when checking validity - [DEPRECATED]
InstancePlugin#pluggedInto
was deprecated in favour of already existingInstancePlugin#client
- The
Grid#selectRow()
method now accepts a single, object parameter to describe the required´selection type and associated actions to avoid long, unwieldy method signatures. The previous signature will be recognized until version 3.0
BUG FIXES
- Fixed #8280 - Chained Tree store API inconsistency
- Fixed #8846 - Exception from onStoreUpdateRecord with fullRowRefresh: false
- Fixed #8911 - AjaxStore syncing modifications returns field names in the JSON object
- Fixed #9018 - Hovering splitter should add hover styling to parallel splitters
- Fixed #9176 - Filterbar and group feature duplicate records
- Fixed #9235 - Summary feature should be disableable
- Fixed #9257 - Uncaught TypeError: Converting circular structure to JSON when comparing two records as fields
- Fixed #9271 - Tooltip listeners config not honored
- Fixed #9277 - Filter icon missing if sort is disabled
- Fixed #9332 - Readonly status reset after schedule click
- Fixed #9334 - Grid doesn't clear b-cell-dirty on grid.store.commit()
- Fixed #9352 - DateHelper wrong quarter calculation
- Fixed #9354 - Column header disappears on reordering
- Fixed #9356 - Combo should not mutate incoming value array
- Fixed #9357 - Splitter collapse/expand buttons misplaced
- Fixed #9371 - isMove in
add
event is not a boolean but always an object. Documentation corrected - Fixed #9375 - Rendering broken with a cluster of really high rows and scrolling to bottom
- Fixed #9404 - insertChild should trigger beforeAdd with records as array
- Fixed #9412 - Exception when the sole record in a grid is removed in a cancelCellEdit listener
- Fixed #9428 - Store#filter, contrary to the documented API, clears filters when passed a function
Version 2.2.5, 2019-09-13
FEATURES/ENHANCEMENTS
- New date format introduced called
d1
. It represents the first character of the day name, for example "W" from "Wednesday" (Fixed #9201)
BUG FIXES
- Fixed #9191 - Reloading store when different combination of groups expanded breaks grouping
- Fixed #9194 - DateHelper cannot parse date strings without separator
- Fixed #9200 - Crash if calling removeAll and there is no data initially
- Fixed #9208 - Scroller missing docs for Events / Delayable
- Fixed #9216 - DOCS: Nested configs look broken
Version 2.2.4, 2019-09-09
FEATURES/ENHANCEMENTS
- New demo showing a stock list with rapid data updates every 20ms (Fixed #9171)
- Store has a new config
useRawData
. By specifying it astrue
you guarantee the data loaded is valid as is, which bypasses duplicate id detection, default values and field processing. This in turn gives a nice performance boost when loading large datasets (about 30% faster initial rendering time on the bigdataset demo with 10,000 records) - Pressing space key in a grid column header now show the column menu (Fixed #8855)
- Added
contextMenuTriggerEvent
config for Grid to set event which triggers context menus andtriggerEvent
config for ContextMenu to override Grids setting for which triggers context menu (Fixed #8757)
BUG FIXES
- Fixed #8669 - Mask loses alignment to Grid body element after scrolling
- Fixed #8797 - Records are not shown in the tree after clearing filters if they were added while the tree was filtered
- Fixed #8890 - DOCS: Store#indexOf returns -1
- Fixed #8891 - Combo should fire select event only per user action. The select event now has a
userAction
flag which is passed astrue
orfalse
- Fixed #9137 - Previous scheduled event animation exit not canceled by initiating new animated event update
- Fixed #9155 - SubGrid region size changes after column resizing
- Fixed #9158 - Crash when reloading store if a group is collapsed
- Fixed #9178 - Checkbox column is broken after a group is collapsed/expanded
Version 2.2.3, 2019-08-27
FEATURES/ENHANCEMENTS
- Date formats can now include arbitrary text wrapped in {}, for example
"h {o'clock}"
->"10 o'clock"
(Fixed #8612) - Combos
store
config now accepts a store config object (Fixed #8769) - Grids
columns
config now accepts a store config object (Fixed #8862) - Fields
readOnly
handling and styling was improved - Model
fields
field definitions can now specify that a field isreadOnly: true
API CHANGES
- Widgets
visible
setter was deprecated, usehidden
instead. To determine if a widget actually is visible, you can useisVisible
(Fixed #8820) store.isVisible
was deprecated, usestore.isAvailable
instead
BUG FIXES
- Fixed #7736 - Text of selected item gets into the input in Combo with multiselect
- Fixed #7737 - Select input text and hit backspace removes selected items in Combo with multiselect
- Fixed #7739 - There is no place to type in Combo with multiselect
- Fixed #8351 - STYLING: Missing pressed / active state color
- Fixed #8439 - STYLING: Stockholm theme tab body html color
- Fixed #8444 - Panel#widgetMap should include tools
- Fixed #8521 - If one menu item has an icon all other menu items should align properly
- Fixed #8692 - View is not refreshed when record with existed Id is added
- Fixed #8734 - Online code editor duplicates panels on change
- Fixed #8812 - RowReorder feature should support indicating drop validity
- Fixed #8813 - Row reorder feature should highlight target parent node when reordering in a tree
- Fixed #8886 - beforesort event is not fired
- Fixed #8914 - Grid#collapseAll when scrolled to the bottom of the dataset breaks row rendering
- Fixed #9026 - RowReorder feature events should be public
- Fixed #9031 - "No rows to display" text overflows locked grid
- Fixed #9060 - STYLING: Wrong slider label color in Material theme
- Fixed #9063 - Code editor panel not scrollable with mouse
- Fixed #9106 - Moving a record within a tree store causes its descendant records to be registered as added
- Fixed #9116 - DOCS: 'scrollable' property missing in Widget docs
Version 2.2.2, 2019-08-15
FEATURES/ENHANCEMENTS
- Added two new classes which wrap file input: FileField and FilePicker. FileField is a default field without extra styling. FilePicker is more advanced component which looks like a common button
API CHANGES
- Adding a child record to a parent in a tree store now triggers the same events (
beforeAdd
,add
,change
) no matter which function is used (store.add()
,node.appendChild()
,node.insertChild()
) - [BREAKING] Stores
beforeRemoveChild
event was removed. Removing child records in a tree store now triggers same events as when removing records in a flat store (beforeRemove
,remove
,change
)
BUG FIXES
- Fixed #8336 - Switching locale repaints view multiple times
- Fixed #8794 - relations not initialized if the foreign id field uses a complex mapping as its dataSource
- Fixed #8896 - ScrollManager not working with touch devices
- Fixed #8912 - DateHelper.formatDelta doesn't round to hours
- Fixed #8940 - Scrollable.scrollIntoView with block : 'center' and highlight fails if the target is a Rectangle and cannot reach the center
- Fixed #8945 - STYLING: Checkbox hover issue in Material theme
- Fixed #8963 - ES6 syntax in the eval block
- Fixed #8968 - Grid. Changed record Id it is not updated in DomDataStore
- Fixed #8970 - Vertical mode: Dragging elements vertically does not work reliably
- Fixed #8974 - Id should be unique in Tree store
- Fixed #8983 - childrenField does not work unless the store is configured with tree:true
- Fixed #9025 - isParent doesn't take convertEmptyParentToLeaf into account
- Fixed #9029 - React app in trial distribution should not throw when styles are missing
- Fixed #9037 - Document chained stores as the official way of sharing stores between widgets
- Fixed #9040 - Custom Toast styling
- Fixed #9044 - Make tree crud events consistent
Version 2.2.1, 2019-07-24
BUG FIXES
- Fixed #8836 - Destroying a popup from a child button fails with an exception
- Fixed #8883 - averageRowHeight not recalculated when a row set is rerendered
- Fixed #8895 - Scheduler events disappearing on scroll
- Fixed #8938 - Ionic demo not runnable online
Version 2.2.0, 2019-07-19
FEATURES / ENHANCEMENTS
- AjaxStore now supports a 'writeAllFields' config to send all fields when a modified record is committed (Fixed #8909)
- ButtonGroup now supports configuring
toggleGroup
andcolor
on a per group basis (Fixed #8833) - Popup now has a
modal
config (Fixed #8297) - DateField now supports configuring its
picker
(Fixed #8828)
API CHANGES
- Toggling a button in a
toggleGroup
now triggerstoggle
on all buttons in that group (Fixed #8834) - Docs changed to clarify that removing a child node from a tree triggers
beforeChildRemove
and notbeforeRemove
(Fixed #8571)
BUG FIXES
- Fixed #7872 - Row reordering needs a handle or gesture on touch
Version 2.1.3, 2019-07-04
FEATURES / ENHANCEMENTS
- Nodes rendered in a TreeColumn now support two new attributes
href
andtarget
to easily render links - Common.widget.DatePicker was made public
BUG FIXES
- Fixed #8804 - Error / warnings in console of web components demo
- Fixed #8825 - Initial sorters applied too late in tree stores
- Fixed #8865 - Column headers duplicated when reordering
Version 2.1.2, 2019-06-27
FEATURES / ENHANCEMENTS
- Added a
pressedIcon
config to Button, to easily display another icon for pressed toggle buttons (Fixed #8781)
BUG FIXES
- Fixed #8482 - Using beginBatch/endBatch prevents related stores being updated
- Fixed #8562 - Datefield fails to parse input date when 'L' format is used in De, Nl and Ru locales
- Fixed #8699 - scrollEnd event is not fired properly on scrollable
- Fixed #8706 - Orphaned resize handles seen after mouse out of an event bar
- Fixed #8707 - Resizing column expands collapsed section
Version 2.1.1, 2019-06-14
BUG FIXES
- Fixed #8674 - Crash if disabling ColumnReorder on touch device
- Fixed #8676 - Filter feature performs double filtering
- Fixed #8486 - Crash when trying to revert focus to a Grid cell that no longer exists
Version 2.1.0, 2019-06-12
FEATURES / ENHANCEMENTS
- Added a new ButtonGroup container (Fixed #8013)
- Bumped built in FontAwesome to version 5.8.2
- Slider styling adjusted for Stockholm theme
- Tree parent cells styling changed to use bolder font
- Demos now have a built in code editor that allows you to edit their code (Chrome only) and CSS (Fixed #7210)
throttled
option added toEventHelper.on
. For rapidly repeating events (Such aswheel
orscroll
ormousemove
), this is the number of milliseconds to delay subsequent handler calls after first invocation which happens immediatelyDateField
now has astep
config which is a time delta by which to increment and decrement the value when forward and back triggers in the field UI are clicked (Fixed #8081)- Grid cellEdit action is now preventable using
beforeCellEditStart
event (Fixed #8459) Button
now has amenu
config which specifies a menu to show when pressed. This may be an array of menu item configs, or a widget config. If a widget config, thetype
defaults tomenu
, but it could be any type, eg'popup'
(Fixed #8020)
API CHANGES
- [DEPRECATED] The
widgets
config to specify child components of aContainer
has been deprecated in favour ofitems
. The processing ofwidgets
will be removed in a future version (Fixed #8375) - [DEPRECATED] The 'grid' param in the events triggered by the CellEdit feature has been removed in favor of
source
param which points to the Grid instance - TreeColumn now htmlEncodes its contents by default, just like regular Columns
- Model batch behaviour has been changed to no longer apply changes until
endBatch()
is called. Ending the batch will trigger the samebeforeUpdate
andupdate
events as normal field changes does - Returning
false
from thebeforeUpdate
listener or calling the new Model'scancelBatch()
function will cancel the data update, rejecting the changes - Widget querying now matches registered type, whereas previously it matched lowercase class name (Fixed #8464)
BUG FIXES
- Fixed #5725 - White space lost when using Search feature
- Fixed #7552 - Editing is cancelled on click in uneditable cell, should be applied instead
- Fixed #7579 - Fire beforeUpdate event when batch updating
- Fixed #7892 - Inserting/appending child nodes using empty array returns undefined
- Fixed #8244 - Edge: View scrolls when typing up/down arrows in percent done field
- Fixed #8246 - Safari highlights disabled button on click
- Fixed #8373 - When copying tree branch child ids are not cleared which leads to id collisions
- Fixed #8469 - Dragging columns in a grid which is a picker of a cell editor cancels editing
- Fixed #8489 - QuickFind not compatible with columns using renderer + htmlEncode set to false
- Fixed #8497 - Crash when pressing space after deleting row
- Fixed #8500 - STYLING: Wrong color of empty text in dark theme
- Fixed #8501 - Tree column + quick find not compatible
- Fixed #8528 - Crash when trying to scroll event into that is inside a collapsed parent
- Fixed #8546 - scrollEventIntoView/scrollResourceEventIntoView should focus event element
- Fixed #8552 - Tooltip is not shown if to remove pointer before hoverDelay is over
- Fixed #8559 - STYLING: Datepicker back/forward icons are not visible in Material theme
- Fixed #8563 - DateField should hide its picker on Enter key press
- Fixed #8582 - Button Tooltip shown even if no tipText is defined
- Fixed #8592 - Column order is reset when a new column drag happens
- Fixed #8593 - Column header size is wrong after state restoring Fixed #8613 - Context menu is broken on Android devices and in emulation mode
- Fixed #8622 - STYLING: ButtonGroup has wrong border style for pressed button
- Fixed #8633 - Checkbox column keeps focus style on checked grid cell
- Fixed #8666 - Filtering a tree store should not include the root node
- Fixed #8675 - Filter feature should reset before searching
Version 2.0.3, 2019-05-23
FEATURES / ENHANCEMENTS
- SubGrids can now be configured with 'maxWidth' and 'minWidth' which are respected by the regionResize feature
API CHANGES
- The action for the
refresh
event triggered by StoreendBatch()
was changed to'batch'
to allow listeners to determine the cause of the refresh
BUG FIXES
- Fixed #8367 - event.userAction should be true for changes made by user
- Fixed #8376 - Reordering rows in tree removes new record from changeset
- Fixed #8382 - Setting maxWidth on locked subGrid config breaks region resizing
- Fixed #8389 - Badge is using wrong font
- Fixed #8399 - Grouped grid broken after adding + scrolling
- Fixed #8409 - 'normal' subGrid loses default config if configuring only locked subGrid
- Fixed #8412 - Setting store.modelClass.idField has no effect
- Fixed #8419 - Store 'beforeload' listener not working for 'autoLoad' case
- Fixed #8437 - STYLING: TextField and subclasses have wrong cursor
Version 2.0.2, 2019-05-10
FEATURES / ENHANCEMENTS
- ResizeHelper now aborts resize operations if Escape key is pressed (Fixed #7496)
BUG FIXES
- Fixed #7818 - Material checkbox invisible when unchecked
- Fixed #7953 - Grid's response to store changes should tolerate the grid not being layed out
- Fixed #8317 - Column lines out of sync when zooming out
- Fixed #8324 - Wrong URL hash separator in Doc's search
- Fixed #8327 - Empty columns does not respect header width when autosizing
- Fixed #8335 - Tooltip with trackMouse misaligns when constrained on scrolled page
- Fixed #8338 - Folders should be rendered first in the docs tree
- Fixed #8358 - Column menu needs to be scrollable in case it contains more items than fit on screen
- Fixed #8368 - Crash in tree when pressing shift-right with no row selected
Version 2.0.1, 2019-05-03
FEATURES / ENHANCEMENTS
- Docs now display an icon on entries that are expandable (Fixed #7212)
fetchOptions
config added to AjaxStore to get complete control over the fetch API options used by AjaxStore (Fixed #7895)
API CHANGES
- To avoid reserving a commonly used field name,
TreeNode#level
was renamed tochildLevel
. It was also made public to avoid future collisions (Fixed #7972)
BUG FIXES
- Fixed #7858 - Can't iterate over columns of a subGrid
- Fixed #7903 - Rendering fails when using 'em' column width
- Fixed #7919 - Row reordering should be enabled only in leftmost section
- Fixed #7941 - resizeToFitContent prevents last column in grouped header to fill its parent column
- Fixed #8003 - Delayable::requestAnimationFrame() doesn't work as documented
- Fixed #8016 - Crash when dragging row over active cell editor
- Fixed #8085 - Crash when clicking empty tree area with 'expandOnCellClick'
- Fixed #8086 - Crash when destroying a scheduler that had a context menu open
- Fixed #8087 - Crash in TimeField docs
- Fixed #8090 - Crash in multi-region demo if a region is empty
- Fixed #8091 - Columns / cell widths out of sync after moving column to new region
- Fixed #8102 - Rows disappear when sorting with collapsed grouped rows
- Fixed #8151 - vue_cli does not compile with scheduler.material.css
- Fixed #8164 - Calling Combo#clear when it has no value should be a no-op
- Fixed #8177 - Button badge should not be shown for empty string
- Fixed #8186 - Disable row reorder on touch devices
- Fixed #8192 - Destroying Panel doesn't destroy its tbar / bbar
- Fixed #8196 - DOCS: Bad look of search tag if typing then clicking outside search field
- Fixed #8220 - DragHelper doesn't take page scroll into account if cloneTarget is true
- Fixed #8221 - Drag proxy misplaced if page is scrolled
- Fixed #8222 - Calling appendChild on a leaf should convert to parent, add child and refresh UI
- Fixed #8238 - Store::includes() always return true if Store is a tree and model instance has been passed
- Fixed #8274 - Grid's filter menu needs a scrollAction setting
- Fixed #8290 - Exception is thrown when providing empty items array to combo field
- Fixed #8294 - Combo's isValid should check required and selection count
Version 2.0.0, 2019-03-27
FEATURES / ENHANCEMENTS
- New demo using Ionic added (Fixed #7450)
- New demo showing cascading combos
- Included a new default theme called "stockholm"
- Removed flatpickr as our time picker for
TimeField
and replaced with our own implementation (Fixed #7396) - Added TimeField horizontal spin triggers (Fixed #7326)
Checkbox
now has preventablebeforeChange
event (Fixed #7631);CheckColumn
now has preventablebeforeToggle
event (Fixed #7632);- Grid now supports multiple regions for columns, as opposed to only two previously (locked and normal). Check out the new multi-regions demo to see how it works (Fixed #7642)
- Cell editor now looks for a field setter when completing edit (Fixed #7754)
- Added support for custom filtering functions on columns (see
filterable
). Used by Filter and´FilterBar features (Fixed #7580) - Combo will mark itself as invalid while an unmatched filter string is being typed when configured
validateFilter : true
(Fixed #7785) - New Row reordering feature + demo added, disabled by default (Fixed #7490)
- Added API support for repainting a single column
- 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'sappendChild
/insertChild
andremoveChild
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 itsremove
event to signal that child nodes are being removed from the store's collection. If you listen foradd
orremove
events, or thechange
event'saction : 'add'
oraction : 'remove'
to signify records being added to or removed from a dataset, the differentiator will be that there will be anisExpand : true
or anisCollapse : true
property on the event when it is due to node expand or collapse CheckColumn
now firestoggle
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 andgrid.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 respecthoverDelay
when moving mouse within the samefromElement
, useful when populating cell tooltips async (Fixed #7730) - In addition to specifying row height through data (see
GridRowModel
) we also made thesize
parameter ofColumn#renderer()
public. Setsize.height
in a renderer to specify the desired row height. The largest collected height for that row will be used. Uses Grids configuredrowHeight
as the min value - [BREAKING] TimeField's and DateField's
pickerFormat
config was removed in favour of usingformat
also for the picker - [BREAKING] Grid now renders it contents on
paint
instead of onrender
, to allow it to initialize correct when embedded in tab panels and similar. Because of this change, therender
event was removed - [BREAKING]
idField
config was removed fromStore
, it was not used in the codebase and did not work as intended The config is still available and working onModel
, set it on your subclass (MyModelClass.idField = 'MyId'
). If you really want to remap id to another field in your data without subclassingModel
you can still do it using thefields
config onStore
:new Store({ fields : [{ name : 'id', dataSource : 'MyId' }] });
- [BREAKING] The
AjaxStore#exception
event no longer includes therequest
object. Instead it includes a reference to the fetch Response object through theresponse
property - [BREAKING] The
AjaxStore#loadChildren
event no longer includes therequest
object. Instead it includes a reference to the fetch Response object through theresponse
property - [BREAKING] The
response
property of theAjaxStore#loadChildren
event was renamed tojson
, andresponse
refers to the fetch Response object - [BREAKING] The
AjaxStore#afterRequest
event no longer includes therequest
object. Instead it includes a reference to the fetch Response object through theresponse
property - [BREAKING] The
response
property of theAjaxStore#afterRequest
event was renamed tojson
, andresponse
refers to the fetch Response object - [BREAKING] The
response
property of theAjaxStore#load
event was renamed tojson
, andresponse
refers to the fetch Response object - [BREAKING] The
response
property of theAjaxStore#exception
event was renamed tojson
, andresponse
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
BUG FIXES
- Fixed #6685 - AjaxStore + AjaxHelper should offer way to pass headers + params
- Fixed #7356 - Group headers should not be included in selection
- Fixed #7513 - ScrollManager should support scrolling in just one direction
- Fixed #7545 - STYLING: links have bad color in grid cells in dark theme
- Fixed #7588 - Panel last focus trap in wrong place. Cannot TAB into bbar
- Fixed #7602 - NumberField spinners not disabled with field
- Fixed #7643 - Date field cannot handle some valid date formats
- Fixed #7660 - QuickFind not working in IE11
- Fixed #7672 - Error when adding filter to scrolled grid
- Fixed #7680 - Input fields need to disable autocomplete
- Fixed #7718 - Combo does not trigger input
- Fixed #7726 - DOCS: Complete list of defaults
- Fixed #7728 - Double clicking to fit empty column makes it 0 width
- Fixed #7729 - Also measure column header width when autosizing columns
- Fixed #7735 - defaultValues should respect mapping
- Fixed #7817 - Investigate performance when dragging events
- Fixed #7822 - DOM not repainted properly when moving a record in the store
- Fixed #7823 - Replace toFixed polyfill with ObjectHelper.toFixed
- Fixed #7829 - Relaying events should return the relayed return value
- Fixed #7856 - Region splitter not working if subGrids use flex
Version 1.2.4, 2019-02-19
FEATURES / ENHANCEMENTS
- Updated
readme.md
to better describe the projects folder structure and different included bundles
BUG FIXES
- Fixed #7628 - Columns do not support "listeners" config
- Fixed #7644 - Row record cls should allow passing space separated classes
Version 1.2.3, 2019-02-14
BUG FIXES
- Fixed #7530 - STYLING: Links have wrong color in Material popups
- Fixed #7549 - toFixed override breaks native behavior
- Fixed #7589 - Id for filterBy functions should work
- Fixed #7591 - commit event is not fired on the local ajax store
- Fixed #7608 - react_build demo is broken
Version 1.2.2, 2019-01-28
BUG FIXES
- Fixed #7546 - webcomponent element never passes visibility check
Version 1.2.1, 2019-01-17
BUG FIXES
- Fixed #5869 -
htmlEncode : true
on a TreeColumn should escape only the value, not the entire internal tree markup - Fixed #7354 - Angular demo does't work in IE11
- Fixed #7369 - Locked grid broken after dragging column from right to left section
- Fixed #7370 - [EDGE] Investigate Angular + trial bundle
- Fixed #7387 - isModified is true after setting original start date
- Fixed #7402 - Bundle aliases for angular demos not updated
- Fixed #7403 - TimeFields clock icon not updating live
- Fixed #7409 - React Typescript demo doesn't work in IE11
- Fixed #7422 - Cannot read property 'atob' of undefined
- Fixed #7433 - cellEdit#startEditing should automatically scroll row into view
- Fixed #7446 - Crash when clicking document and picker is auto-destroyed
- Fixed #7447 - Crash when scrolling causing widget realign
- Fixed #7452 - Trial demos do not work in Edge
- Fixed #7474 - Can scroll to beneath rows
- Fixed #7486 - Selecting multiple rows in GridTree not working correctly
- Fixed #7491 - Tooltip tries to realign itself even when mouse is not over Tooltip's element
- Fixed #7503 - Drag drop breaks if event start is aligned with viewport left edge
- Fixed #7516 - Typings generation misses
implements
if noextends
- Fixed #7629 - Angular demo won't build from release package
Version 1.2.0, 2018-12-19
FEATURES / ENHANCEMENTS
- Full TypeScript typings included as
build/grid.d.ts
. Typings define modulebryntum-grid
to avoid possible name collisions, so we had to also rename import in the angular demo - Added React + TypeScript demo (Fixed #7283)
- StateTrackingManager now offers undoAll/redoAll methods (Fixed #7208)
- Store now fires a
beforeRemove
event prior to removing records in both theremove
andremoveAll
methods - Built in version of FontAwesome was bumped to 5.5.0
- CellEdit feature now automatically starts editing when typing if configured with
startEditOnCharacterPress
(Fixed #7294) - Added a new guide on how to listen for events (Fixed #7196)
- Docs updated to state that locales should be included before the umd bundle to have effect (Fixed #7205)
- Added a custom column to the
columntypes
demo - Added a custom widget used as an editor to the
celledit
demo - Sorting has a new config
useLocaleCompare
that makes it uselocaleCompare
for comparisons, which makes it sort in a locale specific order (Fixed #7113) - Store now throws an exception if trying to set data with duplicate ids (Fixed #7272)
- The context menu for headers and cells now accepts a
processCellItems
/procesHeaderItems
function that allows processing of the items before the menu is shown
API CHANGES
- Fixed #7004 - Add preventable beforeAdd, beforeRemove events to Store
BUG FIXES
- Fixed #7373 - [IE11] Grid scrolls when pressing up/down arrow keys instead of navigating to the next/previous row
- Fixed #7216 - Improve state handling
- Fixed #7215 - Moving node to new parent does not update tree correctly
- Fixed #7244 - [IE11] Fullscreen button works incorrectly
- Fixed #7246 - Salesforce demo doesn't work
- Fixed #7253 - Model constructor from object doesn't work with mapped fields
- Fixed #7257 - Strange date formatting with bundle
- Fixed #7261 - Eventdragdrop doesn't work in trial umd bundle
- Fixed #7275 - Last column in locked side of grid allows its resize handle to overflow
- Fixed #7311 - Angular demo does not work in Edge
- Fixed #7317 - Formatting date with 'hh A' format yields "00 PM" at noon
- Fixed #7325 - Angular production buid doesn't work with trial sources
- Fixed #7340 - DOCS: Config options not grouped correctly
- Fixed #7346 - react_build demo is missing .babelrc config
- Fixed #7357 - Summary bar doesn't take grouped headers into account
- Fixed #7360 - 'undefined' seen in load mask after store loading fails
- Fixed #7364 - Adding a record with children to an empty tree does not render correctly
- Fixed #7380 - STYLING: Region splitter bg-color is too close to stripe row color in material theme
Version 1.1.2, 2018-11-23
BUG FIXES
- Fixed #7141 - Ripple ripples twice on tap on touch devices
- Fixed #7142 - The final resize handle causes extra scrollWidth in grid headers
- Fixed #7175 - Drag drop with dropTarget specified not working on touch devices
- Fixed #7184 - Empty grid should be scrollable horizontally
- Fixed #7190 - STYLING: Grid column header doesn't read 'align' value in Material theme
- Fixed #7193 - Right click on non-hideable column to hide some other column throws JS error
- Fixed #7195 - Production build broken in angular demo
- Fixed #7206 - Grouped headers with all flex columns
- Fixed #7207 - resizeToFitContent should populate all renderer params
- Fixed #7227 - Wrong count in group row when using groupSummary feature
Version 1.1.1, 2018-11-15
API CHANGES
Column#resizeToMatchWidestString()
was renamed toColumn#resizeToFitContent()
and made public. Call it on a column to resize it to fit its contents
BUG FIXES
- Fixed #7030 - Group by field without column
- Fixed #7127 - Adding records to blank grid does not update scrollbars
- Fixed #7136 - Duration field should spin on up/down keys
- Fixed #7156 - Tooltips which are
trackMouse: true
should continue to track and avoid contact with the mouse during their hide timeout - Fixed #7163 - Striped rows missing in dragfromgrid demo
Version 1.1.0, 2018-11-09
FEATURES / ENHANCEMENTS
- Angular demo bumped to Angular 7
- Built in FontAwesome version bumped to 5.4.1, scope changed from .fa -> .b-fa to not affect icons outside of our widgets
- New Export to Excel demo (Fixed #6961)
API CHANGES
- The
WidgetContainer
mixin has been removed. TheContainer
subclass is the base for all Widgets which need to contain other Widgets - The
Container
class now has alayoutStyle
config which is an object-based config which may be used to apply CSS style properties to thecontentElement
of theContainer
By default, Containers use flexbox layout, so this may be eg{flexDirection : 'column'}
- There is a new
Panel
class which extendsContainer
and offers the ability to dock headers (which may contain title and clickable tools) to any border. ThePanel
subclass is now the immediate superclass ofPopup
Popup
now has aclosable
config which causes the display of a close icon, which, when clicked, invokes the close method (See thecloseAction
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-onlyinput
element and editing the text in a dropdown upon click if an expand trigger. Configuring the fieldinline: false
renders the field as atextarea
element - Grid's
selectionMode
config may now containcheckbox : true
to indicate that a row's selected status is indicated by a checkbox - The
CellEdit
plugin now has aaddNewAtEnd
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 acceptsmultiSelect: 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
'sincludes
method now accepts astring
ornumber
to check for presence of the given value as anid
Combo
now acceptsitems
as an object where property names are the field values, and the property values are the displayed text values- The
Container
class now has alayout
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 thecontentElement
- The
TabPanel
class now fires atabchange
event when the active tab is changed - When defining a
Model
subclass, it is no longer necessary to include the superclass'sfields
in any declaredfields
getter. The new class will automatically inherit the fields of its inheritance chain upon first instantiation. The same goes for specifying aModel
subclass'sdefaults
- 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'scontentEl
, but it does not participate in the layout. Rather it is absolutely positioned. Developers may use theX
andY
configs directly, or theshowBy
andalignTo
APIs remove
method on aStore
had third parameterfromClear
documented It was removed fom documentation- Grid now has a
showDirty
config which, when configured astrue
, 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 #5850 - Tree row flashes when selecting a parent node, which toggles collapse
- Fixed #6098 -
Scroller
has a newaddPartner
method which pairs scrollers together so that they keep their scroll position synced in the passed axes - Fixed #6199 - DOCS: Empty groups should not be visible in docs after filtering
- Fixed #6227 - No way to clear grouping if grouped column is hidden
- Fixed #6627 - Tree node methods, insertChild, removeChild, appendChild do not work
- Fixed #6686 - Dark Theme: sorted header has black text
- Fixed #6710 - Crash when dragging column on touch device
- Fixed #6727 - Recent theming change regressions
- Fixed #6731 - Our CSS rules should be all scoped to apply inside .b-widget
- Fixed #6777 - Tooltip max-width conflict of interest
- Fixed #6796 - The esmodule examples do not render correctly in IE11
- Fixed #6888 - Combo picker misaligns when resizing window
- Fixed #6903 - Crash in demo browser when opening
https://bryntum.com/examples/grid/index.umd.html
- Fixed #6904 -
https://bryntum.com/examples/grid/theme/
gives 404 for FontAwesome - Fixed #6907 - TextField without label gets blank
id
attribute - Fixed #6909 - Double tap creates event on wrong place on touch device
- Fixed #6971 - DOCS: Docs tree content can overflow its grid
- Fixed #6989 - Event resize throws exceptions when dependency store is empty and dependencies feature is enabled
- Fixed #6998 - STYLING: Too noticable border for unchecked checkbox
- Fixed #7002 - Checkbox column check change should update full row
- Fixed #7061 - Tooltip dismissDelay does not work
- Fixed #7051 - New tooltip config
hideOnDelegateChange
to hide tip between subtargets of forElement - Fixed #7075 - Cell editing focus loss should commit value, not reject
- Fixed #7097 - Adding columns not working as expected
Version 1.0.4, 2018-10-08
BUG FIXES
- Fixed #6518 - If selected record is removed, it should be deselected
- Fixed #6768 - "No rows to display" shown for scheduler with auto loading store
- Fixed #6772 - Menu should have proper padding
- Fixed #6861 - Online webcomponents demo doesn't load polyfill for firefox
- Fixed #6876 - Floating widget should support being 'draggable'
- Fixed #6486 - Alignment with axisLock should fall back further then the opposite edge'
Version 1.0.3, 2018-10-01
FEATURES / ENHANCEMENTS
- Added demos for Angular 1, 2, 4, 5 and 6
BUG FIXES
- Fixed #6781 - Add polyfills to WebComponents demo to make it work across all browsers
- Fixed #6805 - contextmenu click on a grid row that is sliding due to record removal should not invoke the ContextMenu
- Fixed #6826 - Cache buster needed for docs app.js
Version 1.0.2, 2018-09-24
FEATURES / ENHANCEMENTS
- Fixed #6041 - Improve transaction demo
BUG FIXES
- Fixed #6779 - Link to react_build demo gives 404
- Fixed #6794 - Examples online do not work in edge
- Fixed #6797 - Widgets have no link to the parent if they configured as instances
- Fixed #6799 - Widget's anchor config must be able to update widget state dynamically
- Fixed #6808 - Locales broken in react demo
Version 1.0.1, 2018-09-20
FEATURES / ENHANCEMENTS
- Web Components demo has been added to the trial build (Fixed #6761)
BUG FIXES
- Fixed #6700 - Links to examples in docs not working online
- Fixed #6717 - 404s seen in docs
- Fixed #6734 - Crash in column drag drop toolbar
- Fixed #6762 - Grid docs throws error on opening customization/styling page
- Fixed #6740 - EventResize tip misaligned when Scheduler is rendered in a scrolled document
- Fixed #6756 - Error thrown if TimeRanges feature configured with timeRanges data block and Scheduler uses CrudManager
- Fixed #6752 - Group header should include child count
- 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-rc-1, 2018-09-10
BUG FIXES
- Fixed #6692 - Cls .b-grid-row-updating not removed when update finished
- Fixed #6524 - Editing broken in tree demo
- Fixed #6691 - Trial watermark doesn't look correct in IE11
- Fixed #6682 - Drag drop not working on iPhone
Version 1.0.0-beta-5, 2018-09-01
FEATURES / ENHANCEMENTS
- grid.modules.js bundle and related demos are now included in trial
BUG FIXES
- Fixed #6596 - Dark theme text color bug in event editor time field
Version 1.0.0-beta-4, 2018-08-23
BUG FIXES
- Fixed #6609 - Trigger (icon) layout bad in DateField in Material
- Fixed #6640 - TimeField clock broken
- Fixed #6651 - Demo browser data should have cache buster
Version 1.0.0-beta-3, 2018-08-21
BUG FIXES
- Fixed #6592 - Column widths out of sync on mobile device
- Fixed #6604 - "element.closest is not a function", when operating on a text element
- Fixed #6606 - Tooltips close when not supposed to
- Hidden columns included when determining row width in Safari
Version 1.0.0-beta-2, 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
FEATURES / ENHANCEMENTS
- Release process improvements