Grid – Change Log

Version 5.6.8

2024-03-04

FEATURES / ENHANCEMENTS

  • The List class now has a title property, which shows a title above the first item (8714)
  • The Print feature now prints background colors without users having to check the "Background graphics" option in the print dialog (8716)

BUG FIXES

  • 7297 – Not navigable to next month if selected date is next month
  • 8547TypeScript Improve constructor declarations
  • 8628HIGH PRIO Renderer of CheckColumn subclass does not have widgets param
  • 8648HIGH PRIO Pressing delete in GroupBar causes crash
  • 8694DatePicker should always navigate to the month of the selected date
  • 8697 – Vertical misalignment of filter field check box

FRAMEWORK SUPPORT

  • NodeJS: >= 14.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.7

2024-02-22

FEATURES / ENHANCEMENTS

  • New expandToLevel method for Tree to expand the tree to an arbitrary depth (8390)
  • A warning message is now shown when autoHeight is enabled for Grid with 200+ rows (8068)
  • The scrollIntoView option in the grid selection API now accepts a BryntumScrollOptions object to describe how to scroll. To the start or end, animated or snap etc. (8631)

API CHANGES

  • The StateTrackingManager (STM) will by default (if autoRecord is true) merge update actions on the same record (in same transaction), keeping the oldest, and the newest values. A transaction will almost always only contain one update action per record. If the previous behaviour is desired, you can configure the StateTrackingManager with autoRecordMergeUpdateActions set to false. If you're not using autoRecord, then the transaction action can be merged by calling the StateTrackingManager's new mergeTransactionUpdateActions function *before* the end of the transaction

BUG FIXES

  • 6148 – Row reorder should not trigger when dragging sideways
  • 7183 – Unexpected expansion of nodes when using search highlighting feature
  • 8223HIGH PRIO Group header should stay in the left most grid region
  • 8225HIGH PRIO isExport param is missing in Action column renderer params while exporting
  • 8375 – Make pinch -> CTRL / mousewheel opt outable
  • 8381 – Panel loses height immediately when collapsing code editor
  • 8393HIGH PRIO Incorrect indentation for tasks with no children placed after a task with children in name
  • 8395TYPESCRIPT DurationUnitDataField is missing from typings
  • 8399TYPESCRIPT DOCS Add a type of column config to DataField
  • 8423HIGH PRIO LWC Engine performance is too low with LWS enabled
  • 8429HIGH PRIO CellMenu acts on wrong row when using selectOnKeyboardNavigation: false
  • 8460 – Cannot read properties of null (reading 'constrainTo')
  • 8465HIGH PRIO Printing letter in landscape mode does not fit page
  • 8484 – Two widget columns with same widget type acts wrong on column hide/show
  • 8490 – Filter menu misaligns on selecting a value from Filter combo
  • 8495 – Removing a record while in TreeGrouped state does not remove it from the original store
  • 8512 – Dynamic column configuration / reactive data
  • 8520 – Grouping not refreshing when using tree grouping
  • 8539 – Crash when toggling full screen
  • 8541 – Checkbox column rendered incorrectly after removing filter
  • 8551HIGH PRIO Column reorder by drag and drop issues when children columns defined
  • 8552HIGH PRIO LWC tooltipRenderer cut custom tags in LWS
  • 8553DOCS Combo record prop wrong docs
  • 8557DOCS Event handlers are not searchable in docs
  • 8584 – It is possible to hide all columns with no chance to show them

FRAMEWORK SUPPORT

  • NodeJS: >= 14.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.6

2024-01-31

FEATURES / ENHANCEMENTS

  • Subgrids now support animated expansion and collapse with regionResize: { animateCollapseExpand: true } (4183)
  • Grid now saves the collapsed state of groups in its default state saving mechanism (8103)
  • Docs browser now shows code snippets for all events in the Events section (8213)
  • Bumped built-in FontAwesome Free to version 6.5.1
  • All frameworks demo applications have been verified and updated to be compatible with Node.js 20
  • Grid emptyText now accepts a DomConfig object block (8253)
  • New syncSort option for chained stores, to always keep chained store data in the same order as the master store (8286)
  • Grid now fires rowMouseEnter, rowMouseLeave, cellMouseEnter, and cellMouseLeave events (7282)
  • All context menu features which extend ContextMenuBase now include s reference to that feature in their menuContext object which is passed to processItems and event handlers

API CHANGES

  • To boost record creation performance, records now cache their id (it is accessed very frequently, helps performance a bit) and join their store(s) in a more efficient way. As a side effect, a record no longer has a stores array prior to joining a store, previously it was there as an empty array from start. We don't think this will affect any code, but wanted to share the change in case it does.

DEMOS

  • ANGULAR New "Filtering" demo (Angular) shows how the grid can be filtered (by filtering its store which reflects onto the grid). The demo is located in frameworks/angular/filtering folder (8109)
  • VUE-3-VITE New "Filtering" demo (Vue 3 + Vite) shows how the grid can be filtered (by filtering its store which reflects onto the grid). The demo is located in frameworks/vue-3-vite/filtering folder (8110)

BUG FIXES

  • 3627Splitter issues on touch devices
  • 6675 – Keyboard shortcut not triggering Collapse / Expand when tree column outputs a link
  • 7469 – Wrong value of expanded when calling store toJSON method
  • 7798HIGH PRIO REACT State Provider is not working
  • 7836TYPESCRIPT Missing layout classes and config types
  • 7847 – Undo not updating node to right position
  • 8062 – Widget column's menu is not opening consistently for some column
  • 8170 – Strange background color when selecting multiple rows
  • 8198DurationField does not show error tooltip when inputting invalid data
  • 8200 – Webpack build failed with .min.css file
  • 8227 – Should not set region when column is moved inside a parent column
  • 8229HIGH PRIO VUE Auto-size column doesn't work for Vue renderer
  • 8230 – Cell and header menu demo returns valid message when clicked
  • 8239ContextMenus aligned below click point instead of to the side
  • 8245HIGH PRIO ENTER key not working inside Fiddles in docs
  • 8249 – Group menu position issue
  • 8266namedItems improvements and add onAction for menu items
  • 8269HIGH PRIO Issue with appending child to a collapsed parent in a filtered tree store
  • 8281 – Updated task not appearing when it now matches filter after adding dependency
  • 8298HIGH PRIO Filter feature is not working for nested columns
  • 8303 – Grid cell menu with string namedItems not working
  • 8311validateOnInput config not being respected when using DateField
  • 8321HIGH PRIO TreeGrid node duplication on collapse/expand in Docs
  • 8362 – Menu is always displayed in the top left corner
  • 8373Cannot read properties of undefined (reading 'button')

FRAMEWORK SUPPORT

  • NodeJS: >= 14.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.5

2024-01-09

FEATURES / ENHANCEMENTS

  • It is now possible to show the CellMenu programmatically, via the new showMenuFor method. See the docs and updated contextmenu demo for more information (4827)

API CHANGES

  • TypeScript element parameter for ElementListenerConfig typedef and EventHelper.addListener method has been changed to EventTarget type (8139)
  • Point.from() method will return a point relative to the page coordinates instead of screen coordinates as of v6.0

DEMOS

  • ANGULAR New Master detail demo (Angular) shows a multi-level grid-in-grid scenario for master/detail view, powered by the RowExpander feature. The demo is located in frameworks/angular/master-detail folder (8108)
  • REACT + VITE New Master detail demo (React + Vite) shows a multi-level grid-in-grid scenario for master/detail view, powered by the RowExpander feature. The demo is located in frameworks/react-vite/master-detail folder (8107)
  • VUE 3 + VITE New Master detail demo (Vue 3 + Vite) shows a multi-level grid-in-grid scenario for master/detail view, powered by the RowExpander feature. The demo is located in frameworks/react-vite/master-detail folder

BUG FIXES

  • 2159ActionColumn actions renderer and tooltip fails when specified as functions and record argument is used
  • 4009 – Store allRecords getter does not return all records when filtered and grouped
  • 7403 – Make a guide on how to make a theme selector in frameworks
  • 7964REACT JSX doesn't work in Popups
  • 8012ActionColumn's onClick handler should have link in owner Grid instance in its params
  • 8116 – Disabled checkboxes can be selected with keyboard shortcut
  • 8123WidgetColumn leaks widgets and recreates new ones on column hide/show
  • 8129KeyMap should pass event and owning Widget to handlers
  • 8130 – Grid is missing a headerClick event
  • 8146 – Error when set percentage width in column
  • 8147 – Tree toggles nodes on pointerup instead of click
  • 8154Firefox Vertical scrolling in docs tree not working with trackpad
  • 8165 – Row selection not updated during ScrollManager auto scroll
  • 8175 – Error on tab press after clicking column header with FilterBar feature
  • 8179ascending config not working in Group feature
  • 8191PickerField with autoExpand : true does not show picker when clicking trigger icon

FRAMEWORK SUPPORT

  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.4

2023-12-21

API CHANGES

  • DEPRECATED The DomHelper.focusWithoutScrolling method is deprecated because the native focus method now supports the preventScroll option on all platforms.

DEMOS

  • ANGULAR Added new "Tree Grid" Angular demo which is located in the "examples/frameworks/angular/tree" folder
  • REACT + VITE Added new "Tree Grid" React + Vite demo which is located in the "examples/frameworks/react-vite/tree" folder
  • VUE 3 + VITE Added new "Tree Grid" Vue 3 + Vite demo which is located in the "examples/frameworks/vue-3-vite/tree" folder

BUG FIXES

  • 6224 – Add event for ColumnResize to catch user resize action
  • 7884pdfExport.exportDialog.bbar buttons config doesn't propagate
  • 7919 – Improve CellEdit validation docs
  • 8028 – Store min/max functions returning inconsistent values
  • 8040 – Gantt doesn't immediately display remotely appended rows when using { overscroll : true }
  • 8047 – Animated tree node collapse causes crash in docs
  • 8072DOCS Update documentation of beforeClose event return from Popup
  • 8081 – Missing TreeGrid component in Angular / React / Vue packages
  • 8085 – LWC does not support W3C standard HTMLElement.replaceChildren

FRAMEWORK SUPPORT

  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.3

2023-12-13

FEATURES / ENHANCEMENTS

  • The Toast class has a side config which may be specified as 'top' to show the toast at the top of the screen (7910)
  • FillHandle feature now fires a number of useful events while dragging which allows you to cancel the start, or the finalization of the flow. See FillHandle feature documentation for more information (7932)
  • FillHandle feature now also operates on leaf nodes in AggregationColumn
  • VUE-3-VITE New "Master detail" demo (VUE 3 + Vite) shows a multi-level grid-in-grid scenario for master/detail view, powered by the RowExpander feature. The demo is located in frameworks/vue-3-vite/master-detail folder (7781)
  • REACT Documentation in "Quick start" and "Guide" is now updated with how to build React application in Vite for higher efficiency and better performance in development

API CHANGES

  • DEPRECATED Please kindly note that @bryntum/babel-preset-react-app and @bryntum/cra-template-typescript-grid, @bryntum/cra-template-javascript-grid packages will not get any updates after 6.0.0 version

BUG FIXES

  • 1334 – Should be possible to delete a chip with backspace key
  • 1335 – Typed text not removed after selecting value in multiselect combo
  • 1966DOCS Copying code to the FiddlePanel code element in docs does not remove formatting
  • 7681LWC Defects of floating widgets in a Bryntum Grid inside a lightning-modal
  • 7888 – Dock start/end in footer configuration crashes the app
  • 7912 – Reloading tree store data throws exception in Grid
  • 7918 – Multi value grouping cannot use field path name into a StoreDataField
  • 7923AjaxStore commit requests not always sent
  • 7942 – Separator for combo box not working
  • 7969 – Headers and cells misaligned when using showGrip
  • 7976 – Content lost if setting showDirty while scrolled down
  • 7977 – Should not enable cell replication for non-editable columns / cells
  • 7982 – Widen splitter in all relevant splits on hover
  • 7997 – The documentation of NumberFormat is wrong
  • 7999 – Animated tree expands rows inserted at wrong index
  • 8023Salesforce Toast doesn't shown in Salesforce app
  • 8036 – Copy to clipboard doesn't work in some code blocks

FRAMEWORK SUPPORT

  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.2

2023-11-24

FEATURES / ENHANCEMENTS

  • New rowLines config added to toggle display of row lines in the Grid
  • Added support for wrapping time when reaching min/max using steppers in the time picker (7580)
  • REACT Docs and demos for custom column editors updated to show how to handle async setState() calls, to avoid loosing column editor values

BUG FIXES

  • 7092 – Feature mixin on-owner events are not exposed on class
  • 7887RowExpander with widget doesn't work with Vite non-link CSS imports
  • 7894 – Grid CellMenu does not show when clicking top border of a row
  • 8213NumberFormatConfig typescript class is missing several configs due to docs issue in NumberFormat

FRAMEWORK SUPPORT

  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.1

2023-11-17

FEATURES / ENHANCEMENTS

  • REACT New Cell Edit demo (React + Vite) showing how to use various grid cell editors. The demo is located in frameworks/react-vite/cell-edit folder
  • REACT New Scaling demo (React + Vite) shows how setting the font-size affects the size of the grid and widgets. Made possible since grid is styled using 'em' for sizes. The demo is located in frameworks/react-vite/scaling folder
  • Added support for filtering TimeColumns (7692)
  • Added option to maintain scroll position during remote changes when the viewport is near the end of the scrollable range. Configure grid with preserveScroll : { overscroll : true } to opt-in to the new behavior (7759)
  • Added support to programmatically refresh a Grid column header via the new refreshHeader and refreshHeaders methods (7843)

LOCALE UPDATES

  • There is a new locale key selectATime : 'Select time' which may be used by FieldFilterPicker's time input

BUG FIXES

  • 4911parentIndex is ignored with enabled transformFlatData
  • 5719YARN Can not install @bryntum product packages using yarn v2/v3
  • 7459 – Made pageSize a property
  • 7471 – Overriding feature's keyMap from Widget doesn't work
  • 7703NumberField limits typed input to minimumFractionDigits not maximumFractionDigits
  • 7733 – Event cellMouseOut emits only once
  • 7750 – Vite error @charset must precede all other statements
  • 7752 – Print code throws trying to access stylesheet internals
  • 7754Frameworks Thin packages not working with pnpm
  • 7783 – Detached expanded row body when sorting with spanRegions
  • 7791Salesforce RowExpander throws error when collapse the record
  • 7802 – Collapsible columns not opening
  • 7810 – Undo/redo with outdent error
  • 7817Checkbox column remains groupable even when specifically set to false
  • 7820globalThis should be defined in locales to support LWC
  • 7833 – Select all checkbox not functional when all grid groups are collapsed
  • 7834 – Error in TreeGroup with filters
  • 7853 – Data unavailable when resourceStore groups in collapsed state

FRAMEWORK SUPPORT

  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.6.0

2023-10-26

FEATURES / ENHANCEMENTS

  • This release introduces a new set of npm packages and framework components, that allows combining multiple Bryntum products in the same application. These packages contain the product specific code only, as opposed to the current packages that has all code for the products each product builds upon (for example Scheduler contains Grid & Core). The new packages are called thin packages, and moving forward it will be the recommended way of using Bryntum products in npm based applications (for all supported frameworks). See the "What's new" guide for more information
  • Grouping may now group by an array field, which means that one record can be a member of more than one group. Linked records are used when a record must appear more than once in a store (5185)
  • The RowExpander feature now supports configuring different widget content for different regions (7035)
  • New RowResize feature allowing user to drag bottom row border to change row height (2843)
  • @bryntum/grid-thin bundle includes scss theme files in sass/themes folder (7445)
  • The List widget now supports collapse / expand of groups (7405)
  • Added preserveScroll config to Grid, preventing vertical viewport movement during remote changes (7353)
  • TypeScript Functions and events declarations in typings were improved to contain all available parameters and return type (6961, 4456)
  • ExcelExport feature now supports exporting to CSV file (5612)
  • Added a Print feature based on PdfExport feature which allows using browser print dialog and not rely on backend (6218)
  • The RowExpander feature has been improved with support for a single expanded element or widget that span over several Grid regions (7314)
  • Grid has a new config animateTreeNodeToggle. When set to true, expanding and collapsing of tree nodes is animated
  • Infer field types for auto fields when using FieldFilterPicker with store data present (7691)

API CHANGES

  • BREAKING Core.util.helper.Point class has been moved to solve circular module dependencies. It is now a named export of the Core.util.helper.Rectangle module. Check upgrading guide for the details
  • values API of the ExportDialog class is reverted to the default implementation in Container. If you have customized dialog fields you need to review your configuration. See upgrade guide for more details (5907)
  • isMulti is now the default mode for the Grid Filter plugin. To configure the filter pickers inside the column filter editor popup, provide a GridFieldFilterPickerGroup configuration using the Filter feature's pickerConfig config option. Configure legacyMode : true to use the previous UI instead (6685)
  • DEPRECATED The Filter feature context menu items disableFilter, removeFilter, and editFilter will be renamed filterDisable, filterRemove, and filterEdit, respectively, in 6.0.0 If you are customizing the CellMenu to hide or replace any of these menu items, you will need to change their names accordingly
  • Grid summary cells are now layed out using CSS grid layout instead of using a <table>. If custom renderers are used which rely on table layout, these will need updating

LOCALE UPDATES

  • There is a new locale key selectValue : 'Select value' which is used by the FieldFilterPicker when creating filters on relation-type fields
  • There is a new locale key for the Object class. 'None' is used to label group header rows which are for child records who's group field value is an empty array

BUG FIXES

  • 7493 – Multi group demo hangs when editing Skills
  • 7494 – Grouping indicator not shown when grouped by Skills
  • 7502 – Row resizing breaks row reordering
  • 7503 – Non-filterable column has a Filter option in its context menu
  • 7504 – Multi-group demo hints not showing in Firefox
  • 7515RowExpander refreshOnRecordChange creates duplicate instances of widgets
  • 7527 – Summary row obscures docked scrollbar
  • 7546RowExpander getExpandedRecord crashes when called from expanded widget paint listener
  • 7638 – Added hidden property to filterBar feature in docs
  • 7646 – Facet filters do not apply on iOS
  • 7648 – Export to CSV: blank space after each comma
  • 7649 – Collapsing/Expanding rapidly a tree cell throws error
  • 7654 – Records with no skills disappear in multi-grouping demo
  • 7656 – Field filters grid example doesn't render on iOS
  • 7675 – Use polyfill for ResizeObserver in RowExpander for SalesForce non LWS support
  • 7689 – Moving columns in a multi region grid with a state provider is broken
  • 7695 – Print feature not printing correctly when changing the splitter position
  • 7697 – Add filter in config for filterBar feature
  • 7724 – Slider styling is wrong when placed on a Toolbar in Classic light theme

FRAMEWORK SUPPORT

  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 2.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0

Version 5.5.5

2023-10-23

BUG FIXES

  • 279ObjectHelper.isEqual fails if compared object has cyclic links
  • 2024 – Slider tooltip should be configurable
  • 7250 – Merge Cells feature has CSS bugs when resizing merged columns in rtl
  • 7415 – transformFlatData loses tasks if child sorted before parent
  • 7588 – Add "aria-pressed" only for toggle button and not all buttons
  • 7611 – The rowCopyPaste feature doesn't work with collapsed nodes
  • 7620 – Headers and cells are misaligned in row reorder demo
  • 7638 – Added hidden property to filterBar feature in docs
  • 7641 – Bryntum Combo and Tag Combo empty text appearing null
  • 7651showDirty indicator jumps to wrong cell during edit
  • 7653 – Grid goes blank when scrolling to top record
  • 7657 – Event cellMouseOver emits only once
  • 7676 – Store should have changes if record's StoreDataField has number type changes
  • 7690Salesforce Error when open Grid in Firefox if LWS enabled
  • 7694FilterBar removes typed text

Version 5.5.4

2023-10-05

FEATURES / ENHANCEMENTS

  • Added preserveScroll config to Grid, preventing vertical viewport movement during remote changes (7353)
  • FilterBar feature now can keep a column filter when the column is hidden, via the new clearStoreFiltersOnHide config (7568)

BUG FIXES

  • 7374 – Split feature doesn't work in REACT
  • 7472TreeGrid with transformFlatData and custom idField no longer works
  • 7518 – Scroll breaks if data filtered with preserveScrollOnDatasetChange enabled
  • 7534 – Combo value not updated in the input is some cases
  • 7547RowReorder feature not working inside nested grid
  • 7554 – Missing field type in custom GridRowModel in lockedcolumnstree example
  • 7560 – Pressing ENTER key on Cancel button in MessageDialog triggers OK click
  • 7572SalesForce Combobox stops working after clicked clear in column filter
  • 7581 – Undo does not work when reparenting to the top of the tree grid
  • 7584 – Editing a related column does not refresh the UI
  • 7593 – Selection checkbox stays checked if beforeSelectionChange returns false

Version 5.5.3

2023-09-15

FEATURES / ENHANCEMENTS

  • The RegionResize feature now allows hiding splitter expand/collapse buttons by using the new showSplitterButtons property (6770)
  • REACT New Facet Filtering demo (React + Vite) shows a filter panel that can filter to specific data values. The demo is located in frameworks/react-vite/facet-filter folder
  • REACT New Filtering demo (React + Vite) shows how the grid can be filtered (by filtering its store which reflects onto the grid). The demo is located in frameworks/react-vite/filtering folder
  • REACT New Summary demo (React + Vite) shows how to sum up selected rows. The demo is located in frameworks/react-vite/summary folder

BUG FIXES

  • 7031 – Removing columns corrupts the events rendering
  • 7076 – Scheduler zoomIn/zoomOut doesn't keep center well
  • 7368CellEdit's editor's beforeCancel event returning false is ignored
  • 7394RowExpander crash when filtering paged AjaxStore with syncDataOnLoad
  • 7396TreeGroup bug with cell updates when custom renderer used
  • 7402 – Setting '->' in toolbar giving error
  • 7407 – Hiding a dynamically added column when splitting horizontally causes crash
  • 7468allowedFieldNames not working with store.fields

Version 5.5.2

2023-08-30

BUG FIXES

  • 7128 – Group icon not showing when sorting is disabled
  • 7237 – Poor performance on very large grid selections
  • 7330 – Resizing subgrids not working for more than 2 subgrids
  • 7351findByField method does not pick up empty string
  • 7382 – Slider cannot not be enabled after being disabled

Version 5.5.1

2023-08-16

FEATURES / ENHANCEMENTS

  • RegionResize splitter dragging can now be disabled by configuring the feature´s enableDragging config to false (7271)

API CHANGES

  • The 3rd argument of the Field's setError method made public, it marks error as "temporary" and it will be removed upon the next user interaction (5178).

BUG FIXES

  • 3504 – Issue in DurationField setting units
  • 3663 – Renderer for Check Column not called when exporting
  • 6911Grid Weird behaviour when setting store.data with syncDataOnLoad & grouping on
  • 7189LWC Combobox list closes when clicked on scroller
  • 7245 – Disabling multiSort feature not working

Version 5.5.0

2023-07-31

This release is a replacement for the 5.4.3 patch release. It was changed to a minor version because of some larger changes behind the scenes to pave the way for future support for live updates in Scheduler Pro and Gantt.

FEATURES / ENHANCEMENTS

  • VUE-3 New demo showing basic Vue 3 + Vite 4 setup. Demo is located in examples/frameworks/vue-3-vite/basic folder

BUG FIXES

  • 7221VUE Vue vite app doesn't compile with Bryntum vue wrappers
  • 7225VULNERABILITY Searching html tag changes the value of searched cell

Version 5.4.2

2023-07-26

FEATURES / ENHANCEMENTS

  • The function of Column.finalizeCellEdit config can now return an arbitrary string to indicate an error message of the failed validation (6845)
  • The Split feature now relays listeners to all splits, and it also relays a (configurable) subset of the grid's configs at runtime (7200, 7201)

BUG FIXES

  • 6866 – Not possible to switch am/pm in time picker in mobile Safari
  • 6939 – Merge Cells feature has CSS bugs when resizing merged columns
  • 6985 – Applying a default/initial filter to resources in tree group doesn't clear afterwards
  • 6998LWC Column reorder does not work when state provider is used
  • 7170 – Toggling features while split does not reflect on other splits
  • 7202 – Column mistakenly added to vertical split

Version 5.4.1

2023-07-13

FEATURES / ENHANCEMENTS

  • We have created a public repository to showcase Salesforce demos. All previous demos are merged into one Lightning Application which is easy to install to a new scratch org. You can find more information in updated guides and in this repository: https://github.com/bryntum/bryntum-salesforce-showcase#bryntum-salesforce-showcase
  • We have created a public Salesforce org where this app is preinstalled. You can find link to it and login credentials on the updated examples page
  • Added facet filtering demo showing how to filter by specific data values. Demo is located in examples/facet-filter folder
  • Grid now fires splitterDragStart and splitterDragEnd events when resizing a SubGrid using the splitter (7121)

BUG FIXES

  • 6077TypeScript Model constructors should allow second param
  • 6987REACT React component is not rendered correctly on expand / collapse
  • 7103SlideToggle in grid should animate when toggled manually
  • 7115TreeCombo triggers an error when passing empty default value array
  • 7128 – Group icon not showing when sorting is disabled
  • 7134 – Select all is not working when the grid contains group summaries
  • 7139 – Reordering to the selected row crashes
  • 7142 – Non existing import path within GroupBar scss file

Version 5.4.0

2023-06-30

FEATURES / ENHANCEMENTS

  • The RowCopyPaste feature has been enhanced to use a page-global internal clipboard and also supports the browser's native Clipboard API if accessible. This means that it is possible to copy and paste row between multiple instances of Grid or Grid-based components. It is also possible to copy a row and paste it inside a Spreadsheet app like Excel
  • Two new widgets for editing colors has been added in this release. Firstly, there is the ColorPicker, which lets the user select from a range of pre-defined colors. It is not built for stand-alone usage, but meant to be used in a Menu or as a picker for a PickerField. There is also the ColorField which can be used as a normal form field to display and edit a color value. It uses the ColorPicker as its color picker (2939)
  • A new column, ColorColumn, has also been added. It renders a colored element which the user can click and select a new color from the ColorPicker's pre-defined range of colors
  • The RowExpander now supports rendering widgets inside the expanded row. This makes it possible to expand a row and show more details in a nested grid. Two new demos has been added to demonstrate this – Master-detail and Nested grids (3591)
  • Columns can now display data in related records (defined using the relation system) using a . in the field name, for example team.name (6639)
  • On a similar note, columns can now also display (and allow editing of) nested data using a . in the field name, for example address.city when given record.data = { address : { city : 'Stockholm' } }. Define the top level field (address) on your Model with type: 'object' to wire it up correctly
  • Widget has a new config, maximizeOnMobile which takes effect only on floating widgets on a mobile device. It causes the widget to be maximized instead of positioned in order to accommodate the mobile virtual keyboard. This will make event editing much easier to use on mobile devices (6522)
  • On mobile devices, type : 'checkbox' is rendered as a slidetoggle widget. The API and value is the same, it is just a more appropriate UI for the platform
  • Grid has a new Split feature, that allows splitting the grid into multiple parts (horizontally, vertically or both ways). Try it out in the new split demo (3917)
  • The MergeCells feature now supports merging cells in any column, not only sorted columns. Opt in to the new behavior by configuring the feature with sortedOnly: false (5012, 6429)
  • For a slightly better docs experience for most users, the docs browser now by default hides some more obscure APIs normally only used when implementing own widgets and features. Advanced users in need of these APIs can still opt in to see them using the Show menu in the docs browser
  • Updated columntypes demo to show how to use a SlideToggle widget in a WidgetColumn (2256)
  • Button now adds a type attribute specified by the Button´s behaviorType value (defaults to button). See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button for more info (7032)

API CHANGES

  • The RowCopyPaste feature's copyRows and pasteRows has been made asynchronous due to the enhancements mentioned above
  • The RowCopyPaste feature's beforeCopy and beforePaste events are now asynchronously preventable
  • The CellCopyPaste feature's beforeCopy and beforePaste events are now asynchronously preventable
  • The underlying store created when using StoreDataField now defaults to using syncDataOnLoad : true. You can use the new store config to supply a custom configuration object used when creating the store

BUG FIXES

  • 5943 – Undo/redo does not catch cut-pasting row
  • 6884 – Detail row becomes empty after several sorting operations on the main column
  • 6946 – Missing gap between filter fields
  • 6947 – Grid split example issue
  • 6955 – Grid localization example does not render on iPad Safari
  • 6958 – Scheduler split demo throws an exception
  • 7014Checkbox cell is not accessible with keyboard
  • 7062 – Adding a column to a split Grid not reflected in splits
  • 7080 – "No color" looks like white color and checkmark not updating
  • 7081 – Child widgets with autoHeight stops collapse animation

Version 5.3.8

2023-06-28

API CHANGES

  • A new config has been added to the RowExpander feature that re-activates the previous behaviour of scrolling the expanding row into view. The config is called autoScroll and defaults to false (7027)
  • Grid now supports toggling hideHeaders and hideFooters during runtime to control visibility of header / footer
  • Grid now supports configuring away its horizontal scrollbar using its new hideHorizontalScrollbar config

BUG FIXES

  • 2002 – Sorters/filters are not refreshed up after changing store
  • 5427parentId appears as a modification after undoing a delete
  • 5507 – Undo action with STM not keeping the actions after deleting a node
  • 6694beforeColumnDropFinalize event lacks information on where column is being placed
  • 6924exportProgressMask does not change value on PDF Export
  • 6962 – Demos use deprecated sum Boolean parameter in columns config
  • 7021ViewPresetCombo not showing name from custom presets base
  • 7039 – Crash when filtering and hide/show columns
  • 7048 – YY year format shows only single digit
  • 7054 – Possible to resize a region with regionResize disabled
  • 7055 – Grid Column Header align right !== end in material theme
  • 7060PERFORMANCE Prevent partnering header which is hidden
  • 7070 – Filtering demo describes filterable example function incorrectly
  • 7071columnDrag event payload insertBefore property is incorrect

Version 5.3.7

2023-06-20

FEATURES / ENHANCEMENTS

  • A new config for the Sort feature, toggleOnHeaderClick makes it possible to specify that sorting should only occurs when clicking on the icon (6827)
  • MenuItem item event now includes a domEvent param (6863)

BUG FIXES

  • 5436 – Undo does not work when deleting selected children and parent
  • 5494 – Collapsed/expanded state bug when using undo/redo on tree grid
  • 5927 – Error when scrolling and then switching to collapsed tree structure
  • 6673 – Bug when undoing a cut operation
  • 6788 – Irregular behaviour with last locked column and hidden locked columns
  • 6844 – Filter field not updated when replacing column with same id
  • 6877LWC Cannot read properties of undefined (reading 'host')
  • 6896 – Tree Grid search highlighting throws an error in lazy loaded implementation
  • 6907 – Cell navigation with keyboard ignores visible column order
  • 6912REACT Custom column editor lose value in React 18
  • 6954 – Merged cell value is not displayed in classic-dark nor material theme
  • 6969 – Grid TreeColumn text should be truncated when a column is too small
  • 6976 – Not possible to control group row height when combined with GroupSummary feature
  • 6996CellCopyPaste feature docs are misleading
  • 7010 – Zoom level state not restored when timeline is collapsed
  • 7025Combo should handle being destroyed in item/select/change listeners
  • 7028 – Incorrect examples for fields config in FieldFilterPicker docs

Version 5.3.6

2023-05-26

FEATURES / ENHANCEMENTS

  • Grid now fires new splitterExpandClick and splitterCollapseClick events which lets you prevent the default behavior when clicking the collapse/expand icons inside the grid splitter (6677)

BUG FIXES

  • 6409 – Group feature should restore groupers when re-enabling
  • 6704 – Inconsistent work of CheckColumn when selectAll enabled
  • 6756LWC Grid does not render due to scrollBarWidth calculation
  • 6760CellCopyPaste feature paste is off by number of hidden columns
  • 6791 – Columns are not exported correctly if they exceed total grid row subgrid size
  • 6799 – Grid throws when applying column state with non-existing region
  • 6805includeInSubset creates duplicate records in the store
  • 6807 – Splitter cannot resize neighbor widgets in react apps

Version 5.3.5

2023-05-11

FEATURES / ENHANCEMENTS

  • Grid now fires a new columnDrag event which lets you mark a drop position as invalid (6634)
  • Column widths and hide/show state are synced between partnered schedulers with identical column sets (6682)

API CHANGES

  • In a group header row, the expand/collapse icon is now a separate element rather than a pseudo-element of the header cell

BUG FIXES

  • 6384 – Inconsistent tool order in header of inline collapsed panel
  • 6495 – ReorderFeature – gripOnly doesn't work when first column is a checkbox column
  • 6544 – Not possible to return a DOMConfig array in a TreeColumn renderer
  • 6565 – Event trigger from widget button doesn't go up to grid if bubbles enabled
  • 6656 – Grouping beforeToggleGroup event should include the instigating UI event
  • 6672 – Drag proxy misrendered in row reordering in Safari
  • 6701IONIC Scrollbar width could not be determined under Ionic framework
  • 6703 – Allow selecting text in row expander body
  • 6715 – Grid cell unhovered when moving over inner element

Version 5.3.4

2023-04-28

FEATURES / ENHANCEMENTS

  • Store now has a startGroupsCollapsed property meaning that all groups begin collapsed. (6642)

API CHANGES

  • Checkbox selection column is no longer hideable by the user by default (can be toggled in code by setting hideable to true) (6650)

BUG FIXES

  • 6267 – Persist expanded state when pasting tree nodes
  • 6584 – Row select blinking on mobile after first select
  • 6640LWC Context menu only opens once
  • 6652 – Minified UMD bundle does not export bryntum namespace
  • 6653 – Unhandled mouse event exceptions in Salesforce on Safari
  • 6657 – Drag proxy misrendered in row reordering

Version 5.3.3

2023-04-21

FEATURES / ENHANCEMENTS

  • The CellEdit feature's autoEdit functionality now triggers a beforeCellRangeDelete event which by returning false, can prevent the deletion on multiple cell values. When only deleting a single value, the already existing beforeCellEditStart event is used as before
  • ANGULAR Bryntum Grid now ships with two npm Angular wrapper packages to support different versions of Angular framework. Existing @bryntum/grid-angular package is now designed to work with Angular 12 and newer versions, which use the IVY rendering engine. New @bryntum/grid-angular-view package is designed to work with Angular 11 and older versions, which use the View Engine rendering. Check Upgrading and Angular integration guides in documentation for more information (6270)
  • ANGULAR angular-9, angular-10 and angular-11 demos have been added to show use of @bryntum/grid-angular-view package with Angular 9, 10 and 11. Demos are located in subfolders inside examples/frameworks/angular/ folder
  • ANGULAR angular-12, angular-13 and angular-14 demos have been added for Angular 12, 13 and 14. Demos are located in subfolders inside examples/frameworks/angular/ folder
  • ANGULAR basic demo has been upgraded to use Angular 15. Demo is localed in located in examples/frameworks/angular/basic/ folder
  • ANGULAR legacy angular-6, angular-7 and angular-8 demos has been removed

API CHANGES

  • Removed skipRefresh argument from Grid's toggleCollapse() function, since it was not working and there was no code to back it up
  • DEPRECATED Events triggered by the RowReorder feature have been deprecated and now instead trigger on the owning Grid instance (all other features follow this pattern). Old events fired by RowReorder will be removed in 6.0 (6579)

BUG FIXES

  • 5758 – Tree column autoHeight not working
  • 6166createOnUnmatched only creates new record on Enter key press
  • 6483 – Grid header alignment Issue when using 3+ levels headers
  • 6524FillHandle feature does not work in Salesforce
  • 6528 – TypeError r.ion is not a function
  • 6533 – Datasync issue on remotely filtered and paged Store with syncDataOnLoad
  • 6548Backspace key not working in cell editor with combo combo
  • 6549 – Grid header misalignment when material theme used
  • 6620 – Dynamically created SubGrid's xScroller does not have a reference to the outer Y scroller

Version 5.3.2

2023-04-04

FEATURES / ENHANCEMENTS

  • Grid's ColumnStore now uses syncDataOnLoad : true (and it is not intended to be changed by apps), which improves performance for state changes when binding to <bryntum-grid columns=""> in frameworks (Partial fix 6340)
  • The backends for the php and php-paging demos were updated to work with PHP 8

API CHANGES

  • The docs for the Grid's selectionChange and beforeSelectionChange events mistakenly showed that the deselected, selected and selection params included records or cells, when they only included records. That have been fixed, and we also added deselectedCells, selectedCells and cellSelection params to same events.
  • Context menu items for copying and pasting rows (from the RowCopyPaste feature) are no longer combined with menu items for copying and pasting cells (from CellCopyPaste). To show both cell & row copy items in the same menu, enable the rowOptionsOnCellContextMenu config.

BUG FIXES

  • 6058 – Widget's showAnimation config not working properly
  • 6120store.load() doesn't work if TreeGroup feature used
  • 6321 – Built-in DateField validation not working properly
  • 6357 – Double entries of copy/paste
  • 6358 – Hard to select row in advanced demo
  • 6360selectedRecords need to include records from selected cells
  • 6380 – Cannot drop into collapsed group if store is filtered
  • 6392 – Tree Scheduler with initial filters on the resource store renders too early
  • 6395 – Fixed angular production build of StateProvider helper classes
  • 6428FullScreen.request method should move floatRoot into the fullscreened element
  • 6433 – Escape key not working in example filter field
  • 6443SubGrid hiding does not work properly
  • 6447 – Filter feature column tooltips not working with array-valued relation filters
  • 6478 – Grid Region still resizable when resizable is set to false
  • 6484 – Invisible cells repainted with wrong data
  • 6500 – Right click on Grid WebComponent throws an error
  • 6507dropOnLeaf does not work properly on a scrolled page
  • 6509 – Column readOnly should prevent editing

Version 5.3.1

2023-03-17

FEATURES / ENHANCEMENTS

  • Tree store now applies filters/sorters to any new data when calling applyChangeset() (6155)

API CHANGES

  • Removed obsolete config keepUncommittedChanges for chained stores. It did not affect chained store behavior
  • expanded field was moved to Model class from GridRowModel
  • Date parsing was made more forgiving in regard to character used to separate date parts. For example these strings are now all acceptable as HH:mm: 10:20, 10 20, 10-20, 10/20 (6344)

BUG FIXES

  • 5325 – Multi-level sort with custom sorting fn not working
  • 6086 – Checkbox columns are always unchecked
  • 6229 – Exception when reconfiguring store on a grouped and filtered view
  • 6282 – Checkbox missing right margin
  • 6286 – Horizontal scroll resets when scrolling back up
  • 6301 – Grouping is broken after record remove is cancelled
  • 6312 – Splitter does not move after updating to 5.3.0
  • 6314VUE Columns prop has wrong type in BryntumGrid wrapper component
  • 6327 – Examples filter field clearing does not refresh example list
  • 6328'move' event oldParent should pass rootNode when moving a node from the rootNode
  • 6331 – Prevent checkbox column to be scrolled out of view
  • 6342 – Tooltip remains visible when moved by multiple rows across empty cells
  • 6351 – Components do not render into containers not already in DOM
  • 6355StateProviderConfig TypeScript missing listeners property
  • 6365VUE3 Tree Grid Demo is buggy
  • 6370 – Task editor closes when changing active tab programmatically
  • 6386 – Wrong sorting when grouped by custom groupSortFn

Version 5.3.0

2023-03-02

FEATURES / ENHANCEMENTS

  • The CSS with predefined colors for Button, Checkbox, Radio, SlideToggle & Toast was changed to reduce file sizes (cuts away ~15% of the size of Grid's standalone CSS-bundles), while also making it easier for us to add more colors in the future
  • The Grid's selection functionality has been greatly improved as of this release. In addition to row and checkbox selection it now also supports cell selection, column selection and RowNumberColumn selection. The ability to select by dragging the pointer has also been added. All the selection settings are now fully changeable at runtime. For full details of the new selection functionality, please check out or new selection demo (497, 1915, 3123, 3334, 3970, 4628, 4932)
  • The new FillHandle feature brings spreadsheet like fill functionality to the Grid. When enabled, a Grid selection range will get a fill handle along with a fill border. This handle can then be dragged over new cells in any direction. The cells being dragged over will be filled with values calculated from the original selection
  • The CellEdit feature has been updated with support for editing multiple rows simultaneously. The multiEdit config is true by default. Simply select multiple rows, edit the last one and then hit Ctrl+Enter to apply the new value to all selected rows
  • The new CellCopyPaste feature adds the ability to cut, copy and paste individual cell values or ranges of cell values
  • Keyboard focused column headers now has same focus indicator as cells (4707)
  • There is a new store field type (StoreDataField) which can be used for fields on records that holds arrays. The array will be converted to a store, manipulating the store will flag the record as modified. On serialization the store will be converted back to an array
  • Selection in a Grid with a TreeStore has been improved by addition of the includeParents config. Set it to all or true to auto select a parent if all its children gets selected. If one gets deselected, the parent will also be deselected. Set it to some to select a parent if one of its children gets selected. The parent will be deselected if all its children gets deselected (5726)
  • Localization demos updated to show up-to-date localization approach
  • AjaxHelper.fetch now supports using request body to pass parameters for non-GET requests. Please check addQueryParamsToBody argument in the method documentation (2855)
  • New TreeCombo widget added
  • The model relation system, a data layer concept used internally to link a ResourceTimeRange to a Resource in Scheduler, was made public. It allows you to define one-to-many relations between models in a relations block when subclassing Model (3222)
  • The CellCopyPaste feature can now repeat the copied pattern into a larger selection target. Copy one cell or a range of cells, then select a new range of cells and paste into that. If the selected range matches the copied pattern in size (n times bigger, must fit completely), all the selected cells will be filled with values (6003)
  • Lots (but not all) of the not so informative object types in our TypeScript typings have been replaced with more specific types. Objects that in our JavaScript are used as maps are now declared as Record<keyType, valueType>, and for functions that accept object arguments many are replaced with anonymous type declarations, such as { foo: string, bar: number } (Partially fixed 5176)

API CHANGES

  • DEPRECATED LocaleManager.registerLocale and LocaleManager.extendLocale are deprecated. LocaleHelper.publishLocale should be used instead.
  • DEPRECATED With the introduction of cell selection, Grid's selectionMode config no longer has the row setting. Instead, it is the default mode and can be omitted. Specifying cell : true will enable cell selection and disable row selection – both cannot be used at the same time.
  • DEPRECATED The rowCheckboxSelection setting of Grid's selectionMode config was renamed to checkboxOnly, to better indicate its purpose. The old name is still supported, but will be removed in a future release
  • DEPRECATED The type of the fields config for GridFieldFilterPicker and GridFieldFilterPickerGroup widgets has changed from array of FieldOptions to Object map of FieldOptions keyed by field name. The array type is now deprecated. The fields supplied in this config (if any) will now be merged with fields found in the configured grid's columns, instead of overwriting them

LOCALE UPDATES

  • Locales format and process for applying locales have been simplified
  • New locales for 31 languages have been added. Currently available languages are listed in the localization guide (Guides/Customization/Localization)

BUG FIXES

  • 3213Cmd/Ctrl + Right click weird behavior
  • 3733selectedRecords are in wrong order after shift selection
  • 4595 – Select all checkbox should not select filtered out records
  • 5097 – Selected row gets deselected after page change with preserveSelectionOnPageChange: true
  • 5844 – Selection styling not applied after clicking a cell
  • 5863 – Cell drag does not work on spreadsheet demo on 5.3.0
  • 5864 – Cut & Paste column does not work on column header
  • 5865 – Wrong redo icon
  • 5866 – Copy and paste buttons disabled when selecting row
  • 5867 – Name column width too narrow
  • 5992Checkbox column background color to bright in Classic-Dark theme
  • 6054 – Not persisted field marked as dirty in the grid, but not persisted in modified data
  • 6194 – Crash when editing started and grid scrolled quickly
  • 6205 – Crash when ancestor node of active cell is collapsed
  • 6207Treegrid cut operation optimization
  • 6208 – Row should be selected when clicking outside a checkbox in a checkcolumn cell
  • 6243reapplySortersOnAdd doesn't work for tree store
  • 6246 – Crash when pasting rows if one of the copied tasks is removed
  • 6267 – Persist expanded state when pasting tree nodes

Version 5.2.10

2023-02-17

FEATURES / ENHANCEMENTS

  • Search feature now supports not showing the hit index numbers (6124)

API CHANGES

  • Recently browsers have added support for Unicode 15, which changes the output of Intl.DateTimeFormat when formatting time to include AM/PM. Those browsers now use "thin space" (\u202f) instead of regular space. This affects the DateHelper.format() function, but likely you do not need to take any action in your application. It also affects DateHelper.parse(), which has been updated to support the new unicode space (6193)

BUG FIXES

  • 4586 – Cannot drag row to last position in online demo
  • 5637 – Allow dropping to closed groups
  • 6039 – Resource order not applied with syncDataOnLoad
  • 6087Checkbox column state changed only on second click when its field is not defined in the Model
  • 6088CellEdit feature throws if passed context points to non-existent record
  • 6092 – Wrong type for FetchOptions
  • 6100 – Row get deselected when click inside another row's actionable cell
  • 6102 – Changing the column position then setting back to the initial position makes oldValue undefined
  • 6126 – Tree Grid Search doesn't highlight cells after search function returns no results
  • 6134 – Store ordering is broken after synchronizing changes
  • 6144applyChangeset on a filtered store does not update the view
  • 6169 – Filter feature should not show menu items for group headers and footers
  • 6186 – Should be possible to get the previous parent in move event

Version 5.2.9

2023-01-30

FEATURES / ENHANCEMENTS

  • New demo showing how to import Excel files into the grid (5984)

API CHANGES

  • As of version 6.0, remove event will no longer be fired when moving a node in a tree store. To enable this behavior now (recommended), you can set a new fireRemoveEventForMoveAction on your tree store to false (5371)

BUG FIXES

  • 5526 – Cannot open 2nd mask using static call
  • 5860 – Docs UI is broken on a small window
  • 5869 – Clicking checkbox column checkbox should not select/deselect
  • 5967TreeColumn needs separate renderer docs
  • 5970DragHelper is too eager stopping event propagation
  • 6004RowReorder and rowCheckboxSelection mode improvements
  • 6013 – Default 'sum' operation on aggregate columns does not sum decimal numbers
  • 6014 – Button menu listeners get duplicated when changing the menu
  • 6019TypeScript Feature classes and configs have on event handlers exposed on owner class
  • 6023 – Group header counter is wrong when dropping rows from one group to another
  • 6024 – Go to next/previous hit API does not work consistent
  • 6045 – Missing localization "Expand" in RowExpander
  • 6053 – Cut and paste within a tree crashes the grid
  • 6069 – Params lost if defined in class config

Version 5.2.8

2023-01-19

BUG FIXES

  • 5386 – Improved panel collapse animation when collapsed panel header is perpendicular to expanded
  • 5804 – Material panel toolbar padding not symmetric
  • 5884 – Grid doesn't show fetched data after clearing filter
  • 5893 – Row rendering breaks when collapsing groups
  • 5895 – Groups disappear when changing grouped field value in a filtered view
  • 5911FilterBar should not override data of filter field using chained store
  • 5959 – Reordering a row selects it when rowCheckboxSelection: true

Version 5.2.7

2023-01-11

FEATURES / ENHANCEMENTS

  • The updated tree demo shows using different Model classes for the rows (5888)
  • Tree feature now supports expanding to multiple nodes (2287)
  • Search feature now supports providing the "fields" to restrict the search to for performance (2294)

API CHANGES

  • When using remote filtering for the AjaxStore, the date filter value is now always serialized in the local timezone. Previously (but undocumented) it was using the UTC timezone. The serialization format is YYYY-MM-DDThh:mm:ss.ms (5896)

BUG FIXES

  • 5179 – Bad UX when typing into date field
  • 5253 – Moved collapsed column doesn't have red text when drop is prohibited
  • 5774 – Reordering row is not possible to do in the last row
  • 5876fitMode generates unexpected result for ActionColumn
  • 5883 – Unexpected error with empty columns with specific configuration

Version 5.2.6

2022-12-28

FEATURES / ENHANCEMENTS

  • REACT React wrapper now supports React components in widgets and tooltips (774)
  • The RowCopyPaste feature will now paste copied or cut row(s) *below* selected or provided reference record. Previously the documentation stated that the copied or cut row(s) would be pasted above the reference record. However, the behaviour was inconsistent and cut-paste was done above while copy-paste was done below (4890)

BUG FIXES

  • 5019 – Grid ExtJS Modern App integration demo fails on Cell click
  • 5486 – Horizontal scrollbar overlaps when the view becomes smaller
  • 5790 – Column headers should not show pointer cursor if not sortable
  • 5805 – Visual bug with MergeCells in multipage export
  • 5812 – Horizontal scroll not working when mergeCells feature is enabled
  • 5830 – "No records to display" label is wrongly rendered
  • 5838 – Combo clearable trigger doesn't reset validation

Version 5.2.5

2022-12-16

FEATURES / ENHANCEMENTS

  • TreeStore now supports indent and outdent operations (5547)
  • RowCopyPaste feature supports copying rows in a tree. Copied records will have same hierarchy
  • Paste after cut and copy behavior is unified, records are moved below the paste target
  • Added field orderedParentIndex to resolve position of the child in the ordered children array (5353)
  • Store now applies filters/sorters to any new data when calling applyChangeset() (5534)

API CHANGES

  • DEPRECATED Currently, when returning undefined from a column renderer, the actual cell will not be updated. There is a new config on Grid.column.Column which controls this behaviour – alwaysClearCell. In 5.2.5 this will default to false giving the same behaviour as previously. But in 6.0, alwaysClearCell will default to true, requiring columns that relies on the previous behaviour to be configured with alwaysClearCell set to false

BUG FIXES

  • 5128 – Check column with supplied field should be filterable and sortable
  • 5267 – Copy action not copying child resources
  • 5288 – Columns get displaced when we try to resize that column while editing
  • 5521 – Column sorting in empty cell editor mode merge cell values
  • 5572 – Using sort feature triggers autoLoad for AjaxStore
  • 5635LWC event in filterOnInput reports wrong target
  • 5646 – Selection column sometimes not draggable
  • 5647 – Columns sometimes collapse when resizing
  • 5674 – Combo not sized the same when editable vs non-editable
  • 5688LWC Cannot add property isActive, object is not extensible
  • 5692 – Combos should be able to share Stores
  • 5698 – Examples text overlaps
  • 5700FinalizeCellEdit launch multiple times when clicked outside of grid with non-resolved promise
  • 5706syncDataOnLoad + threshold, scroll error
  • 5730index is ignored when insert into filtered store
  • 5732 – Combo should update value collection silently when replacing store
  • 5778 – Dragging resources to the last row causes crash in group

Version 5.2.4

2022-11-28

FEATURES / ENHANCEMENTS

  • We recently launched a new homepage over at bryntum.com, and have now slightly updated the styling for demos and docs to better match it (new logo, new header color, new font). Please note that this is not a change to our themes, only the look of the demos, and it won't affect your application

BUG FIXES

  • 5594 – Grid splitter collapse/expand hover artefacts
  • 5595 – Fix panel collapse icon directions
  • 5617 – Collapsing locked subgrid not working if minWidth is set
  • 5620 – Sort & Filter icons not visible in grid column when there is not enough space and material theme is used

Version 5.2.3

2022-11-17

BUG FIXES

  • 5256 – FireFox doesn't have horizontal scrollbars in demos on Windows
  • 5518 – Undo does not recognise zero and null values as a change
  • 5537tabPanel.add() crashes the app
  • 5551 – Store allRecords includes group footers twice
  • 5569 – Grouping the store does not trigger state save
  • 5570 – Crash when searching if focused cell is out of view

Version 5.2.2

2022-11-08

FEATURES / ENHANCEMENTS

  • The emptyText config may now be an HTML string (5046)

API CHANGES

  • DEPRECATED The behaviour of the store.data getter will be changed in 6.0. Currently, it returns the **initial** raw dataset, in 6.0 it will be changed to have the more expected behaviour of returning the data objects for the **current** state instead (5499)

BUG FIXES

  • 5489 – Left region goes momentarily full width when resized to 0
  • 5490 – Readonly Grid with widget-type column makes buttons disabled
  • 5491onToolClick not working correctly (even with callOnFunctions: true)
  • 5531 – Column rename not compatible with Filter feature

Version 5.2.1

2022-10-28

API CHANGES

  • TreeNode.isRoot property is now public (5471)

BUG FIXES

  • 4443MergeCells set true resources are not collapsing correctly
  • 5149 – Angular demos now use component-local styles using ViewEncapsulation.None
  • 5363 – Row reorder with non-direct parent/child don't match structure
  • 5402 – Text overflows editor after opening cell editor
  • 5403 – Pagination does not work when remote sort is used.
  • 5404TabPanel triggers focus error when removing tab
  • 5409Field's fetchInputValue ignores the inputValueAttr setting
  • 5426 – Mapped field does not return null value
  • 5428 – Changing column name should not trigger rerendering
  • 5444 – Error when compiling TS Scheduler with filterType: string config
  • 5451DatePicker animation glitch
  • 5463 – Crash when resizing code editor panel to small width
  • 5473TabPanel without tabs throwing an error
  • 5479 – An error when using remote filtering with syncDataOnLoad enabled
  • 5480EventHelper has globally visible breaking side effects

Version 5.2.0

2022-10-13

FEATURES / ENHANCEMENTS

  • Grid group columns now support collapsing and expanding. Try it out in the new collapsible-columns demo (4878)
  • Grid columns can now be renamed by using the new Rename menu option in the column header or by focusing on the header and pressing F2 (5112)
  • Menu has a separator config to make it easier to visually separate menu items
  • The responsive state objects used in the responsive config of the Responsive mixin now support a once property to allow configs to only be set on first activation of the state
  • The Core.helper.DateHelper class has a new method formatRange method which can format date ranges, as well as new formatting options for week numbers
  • The TreeGroup feature was reworked to work better in Gantt, and as a bonus it also works in Scheduler. It now displays a new tree structure with links to the leafs in the original structure, rather than actually restructuring the original store. In Grid this should have almost no impact, but for very advanced use cases it can be worth knowing
  • PdfExport feature is refactored to render content directly. This significantly improves performance and robustness by eliminating component scrolling. This behavior is enabled by default. You can revert to the old behavior by setting enableDirectRendering config on the export feature to false. (4449)
  • Added new GridFieldFilterPicker and GridFieldFilterPickerGroup widgets, providing UI to manage a set of CollectionFilters based on a Grid's columns
  • New fieldfilters demo showing how to add multi-filter UI to a Grid

API CHANGES

  • DEPRECATED The DomHelper.up() function was deprecated, use native element.closest() instead

BUG FIXES

  • 2512 – Implement ignoreParentReadOnly config on Widget
  • 4907 – Export dialog is not usable on narrow screen if component has a lot of columns
  • 5237 – Moving a grouped header into another subgrid breaks headers
  • 5240 – Reordering and then collapsing columns breaks header layout
  • 5292 – Export dialog takes too much time to open in groupedheaders demo
  • 5297 – Export feature settings A6 landscape gives odd blank pages
  • 5301 – Exporting dialog freezes
  • 5360 – Clearing tree groups twice causes crash

Version 5.1.5

2022-10-12

FEATURES / ENHANCEMENTS

  • Added a preventable beforeCancelCellEdit event to the grid (1832)
  • New records are assigned a generated id if none is provided. The generated id is meant to be temporary (a phantom id), and should be replaced by the backend on commit. Previously the id was based on a global counter incremented with each assignment. That simplistic scheme assured no two records got the same id during a session, but if an application serialized the generated id (note, they should not) and then reloaded it, it would eventually collide with a new generated id. To prevent this, the generated ids are now based on a random UUID instead
  • Stores now by default show a warning on console when loading records that has generated ids, as a reminder that it should be replaced by the backend on commit

BUG FIXES

  • 4645 – Improve error message "Bryntum bundle included twice"
  • 4654REACT Bryntum widget wrappers don't accept all component properties in React 18
  • 5341Picker is shown for Combo with keyStrokeFilterDelay after clearing value
  • 5343AggregateColumn not working if added after Grid is painted
  • 5348RadioGroup live demo broken
  • 5358 – Event being triggered multiple times after changing hidden property
  • 5383 – Error triggered when adding new tab after remove a tab
  • 5384 – Error after removing tab the index is not updated

Version 5.1.4

2022-09-29

FEATURES / ENHANCEMENTS

  • The RowReorder feature now has a dropOnLeaf config which in a TreeGrid enables creation of parents simply by drag and dropping a row on a leaf. The feature has also been visually updated – when dragging and targeting into a row the targeted row will get a border and a different background. The arrow which previously indicated to which parent a row would be added, has been removed (4582)
  • Added a preventable beforeToggleGroup event that is triggered before groups are toggled using the UI (5218)

BUG FIXES

  • 227RowReorder: Not possible to drop a row as a child of an empty parent node
  • 4974AjaxStore continuously making remote requests after store grouping when sortParamName is set
  • 5031TypeScript Column type property is not defined
  • 5032 – Column doesn't set column type according to data type
  • 5170 – When first region has width and last region is collapsed, Grid doesn't resize with container
  • 5173FilterBar doesn't work for startDate/endDate columns when date has hour/minute provided
  • 5191 – Column's tooltip config (field) incorrectly processed
  • 5209 – Rows remain selected after reorder on touch device
  • 5210 – Crash when reordering rows on a touch device
  • 5213DatePicker can't move months if min date is after current date
  • 5214AjaxStore continuously making remote requests after store sorting with syncDataOnLoad set to true
  • 5217 – Update RowReorder SASS to facilitate custom theming
  • 5220 – Should be able to drop a row as a child of an another row
  • 5261StateProvider doesn't save state for grouped columns
  • 5275 – Error message returned from backend not displayed
  • 5282 – Make AjaxStore urls changeable
  • 5285 – Error after sorting with custom id model field

Version 5.1.3

2022-09-09

BUG FIXES

  • 415 – Improve docs on formatting currency values on NumberField
  • 3680 – Support Salesforce Winter 22 release
  • 5096Datepicker year select doesn't allow to configure year options
  • 5125 – Setting an initial value for activeTab on a TabPanel no longer animates that tab into view
  • 5142 – Drag and drop support for the rowexpander
  • 5161 – Grid doesn't destroy existing column models when assigning new data to columns
  • 5174RowExpander triggers an error when configured in Vue example
  • 5182TimeField should keep date if user types in the value
  • 5201Store sort uses localeCompare for non-string types

Version 5.1.2

2022-08-29

FEATURES / ENHANCEMENTS

  • Grid Columns now accept a cellEditor property as a config object to allow customization of the floating Editor Widget which encapsulates its editor input field (2465)
  • An application's filters on a store may now be configured with an internal property. This indicates that they are fixed, and must not be ingested and modified by filtering UIs such as the Filter and FilterBar features (4980)
  • Configs that accept configuration options for a widget (or other class) are now (mostly) documented to accept a typed config object rather than a plain object. For example instead of {Object} tooltip - A tooltip configuration object, it is now {TooltipConfig} tooltip - A tooltip configuration object. This improves our TypeScript typings (transforms to Partial<TooltipConfig> in typings) when using such configs, but also improves our docs by linking to the configs of the type
  • Added a keepDate config to the TimeField. By default, it is false and sets date component of the field value to January 1st. Set it to true to keep original value intact and only change the time component (5058)
  • Added a new project-summary demo showing how to combine multiple Grid features to provide a visually nice looking list of data

BUG FIXES

  • 3238 – Columns in the column store may not reflect the order they appear in visually
  • 3552 – Opened dropdown list not re-positioned when scroll the entire app
  • 4656 – Error when deleting rows out of visible area in large data sets
  • 4661OnToggle in the CheckColumn not working
  • 4929autoHeight cells with no content should not cause rows to collapse below the configured rowHeight
  • 4946 – Mask is not aligned properly to the grid body if bbar is enabled
  • 4999AjaxStore beforeRequest doesn't allow to make changes in request body
  • 5010 – Group expanders still visible after stopping grouping
  • 5017TypeScript Property type is missing in DataFieldConfig
  • 5018Vue Prop Validation fails for String options
  • 5026 – Auto filled combo in filter bar does not select picked values
  • 5067readOnly disables Slider fields and makes them unfocusable
  • 5072grid.startEditing() should be supported
  • 5080 – TAB from an actionable location inside a grid cell should navigate right (or left with shift key)
  • 5088 – Crash when entering number into paging toolbar page field
  • 5089 – Grid readOnly value should not be saved in its state
  • 5104Docs Wrong docs for toggleCollapse function in Group feature

Version 5.1.1

2022-07-28

BUG FIXES

  • 4637mergeCells is not reactive to row height
  • 4798 – Grid row freezes when reordering multiple rows
  • 4979 – Some keys do not work in cell editor

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 (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 as dock: string is now dock : '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 to Widget and therefore available to all Widget's child classes. There is a new guide **Guides/Customization/Keyboard shortcuts** describing how to customize currently integrated keyboard shortcuts (4300, 4313, 4328)

API CHANGES

  • DEPRECATED The breakpoints config of the Core.widget.mixin.Responsive mixin is deprecated in favor of its new responsive config. The responsive config is more easily customized when used in the default configuration of widgets
  • DEPRECATED The responsiveWidthChange and responsiveHeightChange events of the Core.widget.mixin.Responsive mixin are deprecated in favor of its new responsiveStateChange 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 (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 is grid.wc.module.js

BUG FIXES

  • 4687 – Grid RowExpander: Content overflows to the next row when browser window is narrow
  • 4688 – Make button text in **rowexpander** demo not selectable
  • 4696 – Parents sorted below children in docs
  • 4697 – Too dark code background in docs
  • 4934 – Selection column in the wrong place when using grouped headers
  • 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 (4705)

BUG FIXES

  • 4746 – Vertical scroll jumps up when clicked on top of horizontal scrollbar
  • 4758 – Allow cancelling an export process
  • 4836 – Check column not rendered correctly on readOnly mode
  • 4865LWC Exception when clicking on modal over the component
  • 4871 – Error when committing changes with nested responseDataProperty path
  • 4872 – Aborted fetch should reject the promise
  • 4874WidgetColumn should be readOnly if record is readOnly
  • 4879 – Grid Vue demo error rendering
  • 4915 – Cell tooltip remains when hovering over blank cells
  • 4916Fullscreen is not working on mobile Safari

Version 5.0.6

2022-06-20

BUG FIXES

  • 841 – Add searchAllRecords flag to store search functions
  • 4146TaskEditor clears time when editing events with datetime picker
  • 4254 – Grid with checkbox column should be readonly if bound to a data field and cellEdit is not enabled
  • 4750 – Splitter overlays bbar
  • 4755 – Wrong element focused if tabbing over cells where beforeCellEditStart returns false
  • 4778 – Body mask now tracks grid resize to maintain cover of the body
  • 4779 – Crash when adding empty bbar
  • 4788GridRow Chevron Stops Responding on Touch Device with 5.0.X
  • 4804 – Radiobutton hover effect incorrectly positioned in Material theme when on RTL
  • 4808 – Typings are wrong for async functions

Version 5.0.5

2022-05-30

FEATURES / ENHANCEMENTS

  • Added paste and copy events to the RowCopyPaste feature (4552)
  • Added filterStyles config to the PdfExport feature to simplify styles processing (3103)

BUG FIXES

  • 2275 – Export to PDF fails when Grid headers are hidden
  • 4350 – Fixed various panel collapse issues
  • 4444 – Tooltip not displayed when calling showBy targeting a widget
  • 4545LWC Columns and row reordering features don't work
  • 4567 – Using too new replaceChildren API in Row
  • 4607VUE Incorrect prop types in Vue wrapper
  • 4630 – Column reorder triggers double repaint
  • 4636 – Model field is not exposed correctly if data is not preloaded to the store
  • 4638mergeCells causes fail in export

Version 5.0.4

2022-05-11

API CHANGES

  • Container's autoUpdateRecord config was made public. Set it to true to update record fields when child fields change (4073)
  • Model's clearChanges function parameter includeDescendants made public. Set it to false to not clear changes on a node's descendants (4565)

BUG FIXES

  • 3930 – Exception when collapsing tree scrolled to the bottom
  • 4294 – Not possible to reach horizontal time axis scrollbar
  • 4541 – Grid splitter too dark in Stockholm theme
  • 4559 – Grid region splitter buttons not centered
  • 4562REACT React wrappers have incorrect source mapping urls

Version 5.0.3

2022-04-26

FEATURES / ENHANCEMENTS

  • AggregateColumn now has a includeParentInChangeSet config which will trigger parent row changes to appear in the modification tracking and in sync requests (3969)

API CHANGES

  • New Vue 2/3 wrapper config option relayStoreEvents (defaults to false). When set to true, the events fired by stores are relayed to the Bryntum Grid instance
  • REACT React wrappers now include TypeScript definitions (3378)

BUG FIXES

  • 100 – Splitter has wrong color
  • 4127LWC DomHelper.isInView() throws
  • 4222LWC Performance degradation in 5.0 release
  • 4289 – Using TreeGroup modifies tasks
  • 4324 – Widget column with button doesn't pass text into child widget
  • 4432LWC Mouse events do not work
  • 4459 – Bryntum Grid search feature limited to 1000 matches
  • 4461Vue wrapper triggers doubled dataChange events with different params
  • 4496createOnUnmatched doc is wrong
  • 4523 – Docs do not tell how to disable certain menu items
  • 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. Use showBy() instead

BUG FIXES

  • 2796 – Allow customizing Roboto path in material theme
  • 3941 – Field picker is not aligned on scroll
  • 4097 – Bug when restore state for filterBar column with date type
  • 4134REACT Basic React Data Grid demo – React cell editor does not work
  • 4248 – Grid splitter arrows artefact
  • 4308 – Problems with rendering React component in column renderer and as cell editor
  • 4321 – Dragging between groups in the Grid should change group field of the dragged records
  • 4326 – Grid region splitter buttons not touchable
  • 4351 – Listeners object breaks click functionality
  • 4360 – Wrong color of checkbox checkmark in Stockholm theme
  • 4364 – When editing cell, editing doesn't end when click outside of the grid
  • 4366 – Dragging column header to edge should trigger scroll
  • 4368 – Filterbar live demo in docs has misaligned fields
  • 4373 – Panel collapse arrow pointing in wrong direction initially
  • 4377 – Change radio button to use <div> for the selected circle
  • 4406 – Fixed items in disabled fieldset/radiogroup not being disabled
  • 4408 – Column filterFn function works incorrectly if multiple columns share field
  • 4412 – Batch column updates do not show until next column update
  • 4464 – Search feature not searching on date and duration fields
  • 4467 – Changing the tree column causes expand icon sync issues
  • 4482 – Grid not refreshed when supplying empty array to store.filter() with replace: true

Older versions

  • Full release version history can be found here.