Grid – Change Log

Version 6.2.1

2025-04-23

FEATURES / ENHANCEMENTS

  • DateField now reveals its expected format when input is in incorrect format
  • AggregateColumn now has a includeFilteredOutRecords which lets you include filtered out records in the aggregation (11105)

STYLING CHANGES

  • SlideToggle no longer has a fixed height defined in the CSS. This allows for more flexibility in styling and layout

LOCALE UPDATES

  • The DateField invalidFormat message is now updated to include the expected format. New value is format => 'Invalid date input, expected format is ' + format

BUG FIXES

  • 11063TreeColumn having redundant icon while LockRows enabled
  • 11070HIGH PRIO Online demos in codepen crashes
  • 11071 – Grid summary column resize issue
  • 11079 – Cell pasting is inconsistent based on a drag direction
  • 11084expandAll / collapseAll crashes when using GroupSummary feature
  • 11097 – Should not show "invalid field" while typing the field name
  • 11104 – Resizing Popup sometimes does not stop after mouse-up
  • 11117Toast progress aborted in demos after 5s

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.78.0
  • Remix: >= 2.15.0

Version 6.2.0

2025-04-10

FEATURES / ENHANCEMENTS

  • TabPanel now supports adding custom widgets to the tabBar via Container#tabBarItems. See updated live demo on the TabPanel docs page (10047)
  • Tabs in a TabPanel can now be reordered using drag-drop, by setting enableReordering to true on the tabBar (10489)
  • New MonthPicker widget for date picking and calendar control
  • We’ve improved search in the documentation with new context-aware algorithms, delivering more accurate and relevant results from the API, guides & examples
  • PdfExport feature was updated to support row expander. It requires upgrading PDF Export Server to latest version 2.0.0 which was recently released in a separate GitHub repository and Docker Hub (10533)
  • A new feature, RowEdit, allows editing of a whole record row at one time using a side docked editor panel (10690)
  • A new config for Panel, drawer marks a Panel as a docked, slide-in panel, which by default slides in over the contents of the browser viewport
  • Tabs in a TabPanel that contain invalid input fields will now have a red border to highlight the invalid state (10789)
  • RowReorder feature now allows drag-drop reordering of rows into new groups to update values of leaf nodes (5689)
  • Setting required on a Field now automatically appends a * to its label, if showRequiredIndicator is set to true (10835)
  • New CheckboxGroup widget added (2018)
  • Popups can now be resized on all sides and corners via the new resizable property (6856)
  • Decimal separator and group separator for formatted numbers can now be configured globally using new static properties on NumberFormat: decimalSeparator and groupSeparator (11016)
  • BREAKING Since most apps have a build process that includes a transpilation step, starting with v6.2.0 we use the minimum possible transpile polyfills for the source code inside the @bryntum/grid-thin npm package to ensure that it works for all currently supported frameworks. Previously, each source file was transpiled with more polyfills, which introduced unnecessary overhead from transpilation helper functions. After this change, the size of your built app should be reduced. If you encounter issues with your framework’s builder parsing the code, consider upgrading to a newer framework version that supports the latest ECMAScript specification (10797)

API CHANGES

  • The Widget.accessibility property has been removed. We now detect when keyboard control is being used, and this can be read from the new Widget.focusVisible property
  • Widget drag-drop is no longer done using the native HTML drag-drop (10793)
  • Popups are now draggable by default
  • The type of the value property on checkboxes was for legacy reasons String, it has now been changed to the more expected Boolean
  • BREAKING The AjaxHelper.fetch() utility function no longer applies credentials: 'include' by default, to better match how the native fetch API works. This change also affects AjaxStore, if used by your app to handle remote data (10886)

STYLING CHANGES

  • Grid cells with overflowing text now use ellipsis by default. If you prefer the old behavior where text is cropped, set Grid’s cellEllipsis property to false (2982)
  • Changed the showDirty indicator pseudo-element from :before to :after so both the rowReorder grip handle and the showDirty indicator can display simultaneously. If you have custom styles targeting :before for showDirty indicator, please update them to target :after instead (10966)
  • multiSelect Lists now display empty checkbox icons when unselected and checked checkboxes when selected

LOCALE UPDATES

  • Added translation keys Object.information and Object.showDetails, Object.to, Object.at, Object.on, Object.editing, Object.settings, Object.go
  • New locale key Toolbar.showOverflowingItems added for the tooltip shown for toolbar overflow scroll buttons
  • New locale key RowNumberColumn.rowNumber added for the RowNumberColumn header tooltip

DEMOS

  • New rowedit demo, which Demonstrates the RowEdit feature, that edits records in a docked panel. The new demo is located in examples/rowedit folder
  • New ai-review-grid demo showing how to use a FormulaProvider to populate field values using AI. Demo located in examples/ai-review-grid folder
  • New ai-ecommerce-grid demo showing how to use AI to generate SEO description + keywords in bulk. Demo located in examples/ai-ecommerce-grid folder

BUG FIXES

  • 10373Filter dropdown should include the sameDay and sameTime operators
  • 10623 – Misalignment dragging tab last
  • 10625ACCESSIBILITY Checkbox and Tab selector buttons have no visible focus rendition
  • 10868 – Previous filter not shown when filtering assigned resources

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.78.0
  • Remix: >= 2.15.0

Version 6.1.9

2025-04-07

FEATURES / ENHANCEMENTS

  • Added a new stateSettings config to control how column state is restored. It includes a restoreUnconfiguredColumns option to toggle whether columns not explicitly defined in the grid configuration should be restored (10943)

BUG FIXES

  • 8782Salesforce LWS support in Firefox
  • 11014 – Export Issue: Column Type ChipView is empty on export

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.78.0
  • Remix: >= 2.15.0

Version 6.1.8

2025-04-01

FEATURES / ENHANCEMENTS

  • We’ve launched nightly npm package builds on our Bryntum npm server. Versions follow the format X.Y.Z-nightly.YYYYMMDD (e.g. 6.1.8-nightly.20250330), reflecting the current version and publish date
  • When using the CellEdit feature, cells, which contain focusable elements may now be included in the cell-to-cell navigation by setting tabToFocusables property (6999)
  • A grid store filter, which results in only removal of a contiguous block of records within the visible viewport will now update the UI in the same way as a store remove operation (10706)
  • The CellCopyPaste feature now supports pasting into multiple non-contiguous cells (10696)
  • New applyDefaults method added to the Base class to allow setting default values for class configs/properties (10876)
  • AggregateColumn now lets you toggle aggregation on / off using the new enableAggregation field (10909)
  • PdfExport now has an isExporting property, which you can use to check if an export operation is ongoing (10947)
  • LockRows features now supports configuring the bottom grid section using the bottomGridConfig config (10958)
  • Combo widget now supports toggling multiSelect mode on / off at runtime
  • Panel header config now accepts an iconCls property to show an icon in the header
  • TreeNode allUnfilteredChildren property is now public, allowing you to retrieve all children of a node, ignoring any active store filters (11013)

API CHANGES

  • The rtl config property of widgets is now public. By default, widgets conform to the writing direction of the element they are rendered to. But with the now public rtl property, you can force a widget, and all descendant widgets to lay out from right to left (10859)
  • The Widget‘s elementAttributes config is now public allowing to specify attributes to assign to the root element of this widget (10940)

DEMOS

  • We have introduced UI localization for our Vanilla JavaScript demos, supporting all 45 currently available locales

BUG FIXES

  • 10206parentId field cannot be remapped
  • 10621HIGH PRIO Opening month picker in event editor closes entire editor in Safari
  • 10636groupRenderer not triggering for empty string values during Excel export
  • 10701TYPESCRIPT Update AjaxStore beforeRequest and afterRequest parameters docs
  • 10726Grid crashes and shows a blank section when scrolling to an invalid editor outside the viewport
  • 10763Grid not using correct AjaxHelper.DEFAULT_FETCH_OPTIONS for paged stores
  • 10795SALESFORCE Remove Map/Set polyfills
  • 10812Fillhandle disappears if mouseup happens outside browser window
  • 10814HIGH PRIO Column header misaligned if resize when used regions
  • 10825Grid crashes when reverting changes and reapplying filters on update
  • 10826 – Error when specifying labelWidth with 'label' for DateRangeField widget
  • 10840 – Cells still selected when returning false from a selectionChange listener
  • 10854 – Selecting multiple cells should copy all the selected cell Records when cellCopyPaste is disabled
  • 10874Grid error with finalizeCellEdit and sorting
  • 10889 – Export to excel should include group header
  • 10897 – Sticky elements not correctly accounted for when calculating visible rectangle
  • 10924React Editor popup cutoff on last row
  • 10938HIGH PRIO Incorrect CSS sourceMappingURL in Bryntum thin npm packages
  • 10944Grid colum with combo editor behaves different with picker title specified
  • 11002Grid Incorrect focus behaviour when editing grouping fields of records

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.78.0
  • Remix: >= 2.15.0

Version 6.1.7

2025-02-21

FEATURES / ENHANCEMENTS

  • Copied Model instances now have a copyOf property that points to the original instance (10587)
  • The Button class now accepts a split property, which means that its menu will only be shown when clicking on its arrow icon, and it will only toggle its pressed state and action its click handler when clicking on the main part (10678)
  • A new config, scrollAction for the CellEdit feature specifies what should happen if the cell editor is scrolled out of view, for example when using a mousewheel. The default value is null which preserves the current behaviour of continuing the edit (10760)
  • The CellEdit feature now supports rendering the editor as a floating element outside the cell element (10767)

API CHANGES

  • Tree stores got a new keepExpandedOnLoad config in v6.1.4, but it fell out of the changelog. When set to true, the tree will restore matching nodes expansion state after a reload (10017)

DEMOS

  • REACT-VITE "Vue Renderer" JavaScript demo has been updated to use to React + Vite. The new demo is located in examples/frameworks/vue-3-vite/vue-renderer folder (10680)
  • REACT-VITE New infinite-scroll demo showing how to load data on demand using RTK Query + lazyLoad feature of Bryntum Grid. Demo is located in examples/frameworks/react-vite/infinite-scroll folder (9886)
  • New Demo collapsible-inline-columns showing collapsing / expanding of inline columns. Demo is located in examples/collapsible-inline-columns folder (10266)

BUG FIXES

  • 9587HIGH PRIO StoreDataField change tracking not working when using store field
  • 10586TreeGroup check column not grouping null values with false
  • 10652 – Grid crashes on store.removeAll() when lazy-loading enabled
  • 10665VUE-3 Unexpected warnings from the wrapper
  • 10699deselectFilteredOutRecords not working on a Tree Grid
  • 10704 – Check column still changes when column is set to be readOnly
  • 10714 – Clicking on custom expand and collapse icon makes record selected
  • 10715StateProvider doesn’t preserve the scrollTop
  • 10739 – Horizontal time axis scroll position reset when entering time axis header using keyboard
  • 10761 – Using scrollable config in subGrid configuration breaks the SubGrid’s scrollability
  • 10763 – Grid not using correct AjaxHelper.DEFAULT_FETCH_OPTIONS
  • 10784 – Groups not collapsing when using a check column
  • 10785HIGH PRIO Exception when dragging linked record to an empty group
  • 10787 – Wrong width then using row reorder and selectable row
  • 10794 – Column filter not clearing correctly when empty input

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.78.0
  • Remix: >= 2.15.0

Version 6.1.6

2025-01-31

FEATURES / ENHANCEMENTS

  • ACCESSIBILITY TreeColumn cells in parent rows now include an aria-expanded value ensuring that row collapsed state is announced (4643)
  • Tabs in a TabPanel can now be closable which shows an X icon (8679)
  • ACCESSIBILITY FilterBar fields now have an aria-label defined to let screen readers announce context
  • ACCESSIBILITY Widget now has an announceAriaLive method letting you provide a text message to screen readers via an aria-live element
  • The CellEdit feature now supports using WebComponents as input elements making it possible to provide an Angular component as a cell editor (10471)

API CHANGES

  • DEPRECATED Widget ariaLive property was deprecated and will be removed in 7.0

DEMOS

  • ANGULAR New Angular celledit demo, which Demonstrates the CellEdit feature has been added. New demo is located in examples/frameworks/angular/celledit folder
  • REACT-VITE Added React Color cell editor to cell-edit example to demonstrate how to use popup editors. Updated the React version of the demo to 19.0.7 and Vite version to 6.0.9. Demo is located in examples/frameworks/react-vite/cell-edit folder

BUG FIXES

  • 73 – React components rendered inside the cells are not overflowing it
  • 1356 – Export summary rows to Excel
  • 4280 – Pressing shift shows cell focus outline
  • 9518 – Sort count is being shown when only 1 sort count is used along with grouping
  • 9946 – Resolve prototype pollution warnings from GitHub Advanced Security
  • 10215ACCESSIBILITY No records found after the filtering the scheduler not announced by the Voice-Over
  • 10407DateRangeField ignores clearable config
  • 10428 – Enable CSS targeting of column-specific filter UI fields
  • 10466 – Nested grid with chart demo race condition
  • 10490ACCESSIBILITY RowExpander column has no aria-label
  • 10495ACCESSIBILITY RowExpander button needs aria-label
  • 10516TimeField label misaligned if initial value has not been set
  • 10519 – Grid splitter has lower z-index than emptyText
  • 10591HIGH PRIO Not possible to provide ariaLabel in Column subclass
  • 10617Shift + Backspace clears text field value
  • 10624HIGH PRIO CellEdit freezes when tabbing into readonly row

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.38.0

Version 6.1.5

2024-12-25

BUG FIXES

  • 10393VUE-3-NUXT Basic demo doesn’t display the demo title
  • 10467 – Moving a column to the left section does not work when using LockRows
  • 10468emptyText should not show during store load
  • 10488HIGH PRIO grid-taskboard demo code is not available in online Code Editor
  • 10496ACCESSIBILITY Key navigation stuck after landing on a checkbox inside a grid cell
  • 10502ACCESSIBILITY Rating column cannot be edited using keyboard
  • 10504ACCESSIBILITY TimeField cannot stop editing using ESC key
  • 10510 – Configuring a store and items leaves a combo store misconfigured

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.38.0

Version 6.1.4

2024-12-09

FEATURES / ENHANCEMENTS

  • Starting with the 6.1.4 release, there are now trial versions of thin NPM packages available on our NPM server. These can be used to evaluate combining multiple products before purchasing a license. Please check the "What’s new" guide for the details

API CHANGES

  • For more similar behavior between browsers, DateHelper.parse now ignores very short strings and discards any dates with a year before 1900 when falling back to new Date() parsing. This affects DateFields using strictParsing: false (the default). Before this change, Chrome parsed '2' as Feb 2001, while Safari parsed it as Jan 0002

STYLING CHANGES

  • When dragging multiple grid rows, a new proxy showing each record was added. The old b-row-dragging-multiple CSS class is no longer used (10340)
  • Added a new config closeOnEscape to control whether pressing the ESC key will close the popup

DEMOS

  • ANGULAR Added new Angular basic-thin demo showing use of thin NPM packages. Demo is located in examples/frameworks/angular/basic-thin folder
  • REACT Added new React basic-thin demo showing use of thin NPM packages. Demo is located in examples/frameworks/react-vite/basic-thin folder
  • VUE-3 Added new Vue-3 basic-thin demo showing use of thin NPM packages. Demo is located in examples/frameworks/vue-3-vite/basic-thin folder
  • WEBPACK Added new Webpack basic-thin demo showing use of thin NPM packages. Demo is located in examples/frameworks/webpack/basic-thin folder
  • REACT Added new React renderer-context-react-19 demo showing use of context rendering with React 19 JSX components. Demo is located in examples/frameworks/react-vite/renderer-context-react-19 folder

BUG FIXES

  • 7065HIGH PRIO Export to PDF feature missing paper formats
  • 10364 – Restore expand on non-editable input click for TextAreaPickerField
  • 10367 – Context menu opened from keyboard throws in Salesforce
  • 10384 – Add missing percentage docs to Numberfield
  • 10386 – Adjust increment/decrement/error tooltip handling of percentage Numberfield
  • 10397 – Block ESC key from propagating in cell editor
  • 10413FillHandle only works on the first table selected when there are two or more tables on the page
  • 10414DatePicker doesn’t highlight today date
  • 10415DateField picker shows previously selected date after input is cleared
  • 10419 – Combo does not return record
  • 10424RTL Popups with centered set to true are not centered in RTL mode
  • 10429 – Keystrokes on actionable items in grid cells no longer work
  • 10446 – Records are duplicated when row is dropped to an empty group
  • 10448REACT JSX renderers are not supported with React 19
  • 10452 – Drop to a group with empty array field should clear the array field on the corresponding record

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.38.0

Version 6.1.3

2024-11-18

FEATURES / ENHANCEMENTS

  • Print feature is supported in Salesforce with LWS enabled (7917)
  • The RowExpander feature now exposes the refreshRow function, which when called with a record, refreshes the content of an already expanded row (10167)
  • A sort direction param was added to CollectionSorter´s sortFn function (10171)
  • Stores can now be configured with reapplySortersOnUpdate to trigger sort after a record is updated (877)
  • Store sorters can now be configured with a caseSensitive boolean if you want sorting to be case-insensitive (10267)
  • Salesforce LWC build now using generators instead of async/await as a workaround for Firefox bug. LWC bundle is now compiled with "chrome": "54" babel target (7849)
  • By configuring a data field with complexMapping : false, it can now point to a data property containing a dot (.), for example { "member.name" : "value" }. Previously (since v4.1), the dot was always interpreted as a nested object path (10168)

API CHANGES

  • The CellEdit beforeFinishCellEdit event now also includes an oldValue param
  • VUE 2 reached end of life on December 31, 2023. As a result, we will no longer be updating our Vue 2 components. While the components will continue to exist, we will remove them in a future release and recommend that you upgrade to Vue 3 for continued support

STYLING CHANGES

  • Certain color adjustment functions in SASS has been deprecated and will be removed from SASS in a future version. To be prepared for that, we have replaced our usages of these functions with the new ones. In general, this should not affect the look of components, with reservation for minor color variations (for more information, see https://sass-lang.com/documentation/breaking-changes/color-functions)

DEMOS

  • Renamed "theme" demo to "custom-theme". The updated demo is located in examples/custom-theme folder (10155)

BUG FIXES

  • 9018HIGH PRIO Localization doesn’t work for Microsoft Dynamics CRM Online
  • 9691columnDrag event param insertBefore does not get updated once we set context.valid to false
  • 10084 – Error in currency format
  • 10127 – Store changes not being tracked as expected when using a tree store with filters
  • 10177 – Spamming row expander causes crash
  • 10204 – Remove tbar, bbar and header from cloned grid in LockRows feature
  • 10234HIGH PRIO Correct formatting of NumberField percentage with decimal digits
  • 10255 – Error when replacing data with parentId property
  • 10258showAnimation does not animate the Popup
  • 10260React flushSync was called from inside a lifecycle method runtime error
  • 10263 – Card layout activeItem yields the hidden, previous activeItem in show listeners
  • 10273DOCS beforeFinishCellEdit event value param points to the old value
  • 10278TYPESCRIPT Define the GridSelectionMode type
  • 10285HIGH PRIO Combobox does not clear unmatched initial value
  • 10309 – Error in Combo grouping after updating to 6.1.0

VERSIONS SUPPORT

  • NodeJS: >= 20.0.0
  • TypeScript: >= 3.6.0
  • Angular: >= 9.0.0
  • React: >= 16.0.0
  • Vue: >= 3.0.0
  • Ionic: >= 5.0.0
  • Vite: >= 4.0.0
  • Webpack: >= 4.0.0
  • Sass: >= 1.38.0

Version 6.1.2

2024-10-11

FEATURES / ENHANCEMENTS

  • toggleCollapse method on the Group feature now accepts an array of records/ids (9749)
  • Implemented support for headerRenderer to return JSX and updated the "Using React Context with renderers" example to demonstrate its usage. The demo is located in frameworks/react-vite/renderer-context folder. (7342)

API CHANGES

  • Store has a new better way of chaining tree stores. By using chainTree() instead of chain(), the chained store will be a full tree store with links to the nodes in the original store. This will let you expand / collapse and filter the tree in one store without affecting the other (9171, 9177, 9178, 10130)
  • When using both the RowCopyPaste and the CellCopyPaste feature, copying row data and pasting it into cells, the copied data will now be inserted as new rows.
  • DEPRECATED The makeChained function in Store was deprecated in favor of chain and chainTree. It will be removed in 7.0.0
  • DEPRECATED The groupRecord param of the Group feature´s toggleGroup and beforeToggleGroup events is deprecated in favor of the groupRecords param, since you can now toggle multiple group records. The param will be removed in 7.0.0

DEMOS

  • REACT-VITE "Basic" TypeScript and JavaScript demos have been updated to use to React + Vite. The new demo is located in examples/frameworks/react-vite/basic folder (9932)
  • VUE-3-VITE "Basic" (Vue 3 + Vite) demo has been updated to use TypeScript. The demo is located in examples/frameworks/vue-3-vite/basic folder (9808)

BUG FIXES

  • 9241 – Implement support for configuration with rows higher than paper size
  • 9412HIGH PRIO php demo cannot handle remote filter properly
  • 10106 – Row reorder handle was misaligned
  • 10107 – Pasting rowCopy data into cells failed in some cases

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.1.1

2024-09-27

API CHANGES

  • Popups now realign automatically when scrolling if anchor is configured.

BUG FIXES

  • 9566TYPESCRIPT Nullable child items need type null for TS apps
  • 9914HIGH PRIO animateTreeNodeToggle with locked columns places rows incorrectly

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.1.0

2024-09-18

FEATURES / ENHANCEMENTS

  • Group feature now offers to show a checkbox in group row headers via selectionMode.showCheckAllInGroupRows (2208)
  • Model now supports fields being calculated via the new calculate property (3070)
  • The regular non-Ajax Store now has the ability to accept remote paging, sorting and filtering (6860, 8180, 9363, 9887)
  • The FilterBar feature now supports remote filtering without using AjaxStore (7477)
  • AjaxStore has new configs that lets you transform incoming and outgoing data: transformLoadedData, transformCreationData, transformModificationData, transformRemovalData (8314)
  • Column.type instance member is now public (9229)
  • The TreeGroup feature now supports summaries in each group parent row using the Column sum config. See this in action in the updated tree-grouping demo (9716)
  • ExcelExport feature got a minor refactoring, and now uses more feature-rich write-excel-file library (6089)

BUG FIXES

  • 9319 – Exceptions when copy-pasting records in Grid demo with charts
  • 9468 – Crash when selecting date in fullscreen docs fiddle
  • 9876DateRangeField picker wrongly scrolls right one month when picker is shown (Firefox only)
  • 9955 – Aggregation demo total column shows only $0
  • 9959 – Grid crashes when deleting records with group checkbox selected
  • 10043DayTime includes end on startTime and start on endTime

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.0.6

2024-09-13

FEATURES / ENHANCEMENTS

  • Added a ignoreLinkRecords config to StoreChain, to avoid importing linked records from a master store, such as when you group by an array field (9840)

DEMOS

  • ANGULAR Added new demo showing how to create a custom theme by modifying scss variables. The demo is located in the frameworks/angular/custom-theme folder
  • VUE-3 Added new demo showing how to create a custom theme by modifying scss variables. The demo is located in the frameworks/vue-3/custom-theme folder
  • REACT-VITE Added new demo showing how to create a custom theme by modifying scss variables. The demo is located in the frameworks/react-vite/custom-theme folder
  • REACT-VITE New renderer context demo showing how to configure React renderers to use the React Context. The demo is located in the frameworks/react-vite/renderer-context folder (Fixed 8923)

BUG FIXES

  • 8998 – Printing Gantt with more than 3000 records causing application to crash
  • 9298LazyLoad beforeLoad event isn’t triggered
  • 9671HIGH PRIO REACT Grid column renderer flickering when row is updated
  • 9746SALESFORCE RowExpander doesn’t expand records in Salesforce
  • 9748 – View is not updating on adding resources using add method with lock rows feature and grouping
  • 9758aria-readonly not properly set on Grid cell
  • 9767 – Column filter returns undesired results
  • 9872 – Records are not persisted when group is collapsed
  • 9896 – Grid not rendering any data in Firefox 115 ESR
  • 9905 – Accessibility issue in date picker widget, toolbar buttons should not have role="presentation"
  • 9913 – Grouping from header menu is broken
  • 9927Accessibility DatePicker doesn’t announce selection status and week day name for selected date in date picker
  • 9950RowExpander will often become detached from record
  • 9988 – Exception when moving record with empty group value
  • 10006 – Placeholder should not be visible after selecting an item in combo with no label

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.0.5

2024-08-30

FEATURES / ENHANCEMENTS

  • DatePicker now supports selecting ranges by tapping twice on touch devices when multiSelect is enabled

BUG FIXES

  • 5233ANGULAR Frameworks wrappers components not triggering some events
  • 9572 – Default currency from locale not used
  • 9712store.createRecord() behavior different with useRawData
  • 9718VUE-3 Preventable events don’t work in Vue wrapper
  • 9738TYPESCRIPT FieldTrigger class missing docs for its activation key
  • 9754EventHelper.onTransitionEnd calls its handler using globalThis if globalThis.callback exists
  • 9770FillHandle not moving to active cell after Enter key press
  • 9771beforeClose event should handle asynchronous listeners
  • 9772Container should be able to track presence of changes to its fields
  • 9779ActionColumn does not call onClick handler for items created by a renderer
  • 9781AjaxStore events, which contain url should read back the url property so that handlers can mutate it
  • 9797lazyLoad with TreeGrid hangs
  • 9801 – Lock rows feature display broken with grouping and filtering
  • 9802 – Text cells show as dirty changes when reverting values to empty string
  • 9805HIGH PRIO Grid freezes when row reordering in column using an array field
  • 9819 – Font awesome tree arrows too big on touch screen
  • 9851 – Crash on array column when grouping

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.0.4

2024-08-02

FEATURES / ENHANCEMENTS

  • The difference between Model.fields and Model.allFields was clarified in the documentation (9700)

BUG FIXES

  • 8328Panel fields items not being populated from record config
  • 9672 – Incorrect docs for navigate event
  • 9680RatingColumn value not exported to Excel

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.0.3

2024-07-26

FEATURES / ENHANCEMENTS

  • Store now fires beforeFilter event before filters are changed (9652)
  • The plugin processing has been updated to correctly handle multiple plugin configurations

BUG FIXES

  • 9653TypeScript Mappings for Store sort method
  • 9657 – Docs fiddle code editor is too narrow

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.0.2

2024-07-24

FEATURES / ENHANCEMENTS

  • Bumped the built-in version of FontAwesome Free to v6.6.0, which includes a new table-cells-row-unlock icon sponsored by Bryntum
  • The getCount() function of Store now accepts an options object, letting an app control how records in the store are counted (for example if filtered out records should be included in the count or not) (8737)
  • Added a totalCount property to Store and AjaxStore. It replaces the existing allCount property, but has a better defined behavior, and the name also matches the total property that is expected to be passed in the dataset when using paging

API CHANGES

  • DEPRECATED Store.allCount and Store.originalCount was deprecated. Their behavior was not well documented or clear, we recommend using Store.totalCount or Store.getCount(options) instead to count the records in the store in the way your app needs
  • DEPRECATED The Store.getCount(true/false) signature has been deprecated. Use Store.getCount(options) instead for better control of how records are counted
  • GridRowModel now has a new fixed field built-in (used by LockRows feature)

DEMOS

  • REACT-REMIX "Basic" (React + Remix) demo shows using Grid component in Remix. The demo is located in frameworks/react-remix/basic folder (4912)

BUG FIXES

  • 8835FillHandle RTL issues
  • 9462 – Summary row cells misaligned when using variable column flex
  • 9481 – Filter lost when no results present with remote filtering
  • 9521 – Deleting a row while cell editing makes the value disappear in the next row
  • 9530LoadMask only masks top grid section when using LockRows feature
  • 9545 – Getting Undefined if no value passed to items property of filter
  • 9548TYPESCRIPT mergeRenderer is not well documented
  • 9573 – Column custom ariaLabel is reverted to the default on focus in Cell

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.0.1

2024-07-05

FEATURES / ENHANCEMENTS

  • PERFORMANCE New refreshOnlyAffectedSummaries property added to the Summary feature which only refreshes column summaries affected by a record update. (9511)

BUG FIXES

  • 9077 – Filter combo not showing correct text when set to false when filtering ManuallyScheduled column
  • 9198 – Grid printing does not handle auto height rows
  • 9295 – Grid Print hangs if the store has no visible records
  • 9419 – Column lines showing on header when columnLines is set to false
  • 9436DOCS Improve docs and type for colors property
  • 9445 – Button rendered in cell HTML prevents selection
  • 9463Rowreorder handle misplaced in right-aligned column
  • 9480 – Incorrect tooltip and filter icon when no option is selected in multiSelect Filter combo
  • 9489 – Styling issue for ColumnManager Popup
  • 9495 – Fill Handle Issue when change column definitions
  • 9510 – Exiting grouping breaks the Stripe feature

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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 6.0.0

2024-06-28

We are thrilled to announce version 6.0 of our Grid product. This release marks a significant milestone for us after more than two years of dedicated development. In this update, we are excited to bring you:

  • Lazy loading of rows as you scroll, for huge datasets
  • Support for freezing rows
  • New DateRangeField widget
  • Support for rendering widgets into grid column headers
  • Drag-drop of rows between different Grids and TreeGrids
  • Improved TypeScript typings
  • A new code editor in the examples for easy fiddling
  • Cool new demos
  • Bug fixes and other enhancements requested by our community

A special thanks to everyone who helped us by testing our alpha and beta versions. Your feedback and support have been invaluable

FEATURES / ENHANCEMENTS

  • The List widget now offers a tooltipTemplate method to show a tooltip text for each list item (887)
  • Stores now have support for lazy loading of data, which when used in the Grid, loads new records while scrolling (1804, 8001)
  • Added a new DateRangeField widget for picking a range of dates (1888)
  • Convert button to menuitem on Toolbar overflow where appropriate (2298)
  • Programmatically expanding & collapsing a Panel was made easier by adding expandPanel() and collapsePanel() methods (5871)
  • The RowCopyPaste feature has been enhanced in two ways. It now creates clones of the copied records immediately on a copy action. This makes the copied data unaffected by any Store changes between the time of copying and the time of pasting. Additionally, when copy-pasting between different Grid instances, the complete record will be copied, not just the fields that have a corresponding column, as it was previous (6379)
  • PDF export server has been moved from examples/_shared/server folder to its own GitHub repository: https://github.com/bryntum/pdf-export-server (6820)
  • Columns now support having widgets rendered into their header via the new headerWidgets config. See it in action in the nested-grid-with-chart demo (6855)
  • The default format for NumberField and NumberColumn now includes all numeric-related configs from the current locale, like decimals separator, grouping separator etc. (6948)
  • The ColumnReorder feature has a new property stretchedDragProxy which displays a full-height transparent element while you reposition the column (7870)
  • The AjaxStore's commit function now queues calls being made while already committing instead of aborting and returning false. Previously, when a commit was finished, all Store changes were cleared. Now, only changes related to the actual commit will be cleared, so any changes being made after the commit call and before the commit finishes will be left untouched (7980)
  • Elevate tabIndex config from TextField to Field (8010)
  • ButtonGroup should allow multiple toggled buttons (8142)
  • Add tabIndex config to Button (8166)
  • STYLING The DatePicker no longer uses a background color in its header, for a cleaner look (8187)
  • DOCS Documented step triggers for DateField, NumberField, TimeField & DurationField (8270)
  • Grid state mechanism now supports the TreeGroup feature (8364)
  • The RowReorder feature now supports dragging rows into other grid instances (9225)
  • ACCESSIBILITY Buttons without text now adds the tooltip text to the aria-label attribute (9360)
  • DurationField now accepts step as a duration string (e.g. "15min")
  • New columnCollapseToggle event fired by Grid when a group column is collapsed or expanded. The collapsible-columns demo was updated to use this event (previously used private event), so if you copied code from this demo, you may want to review and update your code.
  • The code editor in examples is now implemented with the VS Code engine. Code folding, search and replace, full undo/redo is now available when editing examples
  • To better follow readability recommendations, NumberColumn now defaults to aligning its content to the end (right for LTR, left for RTL)
  • TypeScript Class configs Config (e.g. ButtonConfig) now provide type declarations for listeners parameter in .d.ts files
  • TypeScript Class configs Config (e.g. ButtonConfig) types now have optional parameters in .d.ts files. *Config type can be used instead of Partial<*Config> declaration
  • PercentColumn now offers to render a circular percent indicator via the new mode config
  • The Filter feature now supports columns with a filterable config in the new multi-filter UI
  • Bumped the built-in version of FontAwesome Free to v6.5.2, which includes a new table-cells-row-lock icon sponsored by Bryntum
  • Angular Bryntum Angular wrapper now exports Bryntum...Props types (e.g. BryntumGridProps) which match the configs available for a wrapper component (e.g. BryntumGridComponent). Wrappers code is now delivered with documentation inside, that helps in setting up the components
  • The Group feature has a new headerHeight property to easily change group header row heights.
  • EventHelper no longer mutates the DOM event object to fix browser quirks and add utility properties. It now wraps the DOM event with a Proxy, which exposes all the properties of the DOM event and also accepts any new properties added to it. The original DOM event is available in the browserEvent property
  • New alwaysMultiSelect selection mode added to Grid, where all row or cell (configurable) clicks adds to the current selection. Click on a selected row or cell deselects it
  • The RowCopyPaste feature is now configurable with cutOnly, which translates all copy actions into cut actions and prevents the Copy context menu option

API CHANGES

  • VUE-3 Bryntum Vue-3 wrapper now exports Bryntum...Props types (e.g. BryntumGridProps) which match the configs available for a wrapper component (e.g. <bryntum-grid>). Wrappers code is now delivered with documentation and TypeScript sources inside (3085)
  • BREAKING Previously, when returning undefined from a column renderer, the actual cell will not be updated. There is a config on Grid.column.Column which controls this behaviour – alwaysClearCell. Since 6.0, alwaysClearCell will default to true, requiring columns that relies on the previous behaviour to be configured with alwaysClearCell set to false (5622)
  • DEPRECATED The WidgetHelper utility class has been deprecated and will be removed in a future release. Use the corresponding widget class instead – Widget, Toast or Mask (6103)
  • DEPRECATED The beforeExpand, expand, beforeCollapse and collapse events triggered by the RowExpander feature are now deprecated. Use the new beforeRowExpand, rowExpand, beforeRowCollapse and rowCollapse events on Grid instead (7845)
  • BREAKING DateColumn now warns when not using a DateDataField in the underlying field definition of the Model. A DateDataField will be created in this case, which results in the value provided to the DateColumn renderer method will now always be Date objects (previously String type if data was not parsed) (8226)
  • STYLING Tooltips with pure text contents (non-HTML) are now shown with less body padding (8287)
  • BREAKING The useRawData setting on Store is now enabled by default, but with all sub-settings disabled. This means that the incoming data object will be used as is, without being cloned. Which will boost data loading performance, but is potentially a breaking change if the data object is reused / used in other parts of the application (8335)
  • To allow defining multiple filters with same property but different operator, filter ids are now generated by combining property and operator (property-operator, previously only property). For example value-=and value-< (8482)
  • BREAKING In 6.0.0-alpha-2 we changed the default value for useRawData on stores to true. This boosted record creation performance by not cloning the incoming data object. However, this change has lead to some issues, and we are now taking a step back. It will once again default to false when supplying data inline, and instead only to true when data is loaded remotely using an AjaxStore (9289)
  • The RowCopyPaste feature’s events copy and beforePaste has gotten their parameters slightly changed. The parameter records now contains clones of the copied records, and the original copied records can be found in the parameter originalRecords (these parameters are wrapped in a single event object)
  • Field´s highlightExternalChange default value is now false
  • BREAKING keepDate config of the TimeField class now defaults to true (previously false)
  • DEPRECATED @bryntum/babel-preset-react-app, @bryntum/cra-template-typescript-grid, @bryntum/cra-template-javascript-grid npm packages are deprecated, and will not get any further updates. Versions prior to 6.0.0 are still accessible
  • BREAKING The following previously deprecated APIs were removed:
    • BrowserHelper.supportsPassive (v5.0.0)
    • CalendarPanel.showWeekNumber (v4.0.0)
    • DomHelper.up() (v5.3.9)
    • DomHelper.focusWithoutScrolling() (v5.6.4)
    • DomHelper.addClasses() (v5.0.0)
    • DomHelper.removeClasses() (v5.0.0)
    • FieldFilterPicker.fields array form (v5.3.0)
    • FieldFilterPickerGroup.fields array form (v5.3.0)
    • LocaleManager.registerLocale() (v5.3.0)
    • LocaleManager.extendLocale() (v5.3.0)
    • NumberField.decimalPrecision (v3.1.0)
    • NumberField.leadingZeroes (v3.1.0)
    • PickerField.autoClose (v5.5.5)
    • Breakpoint typedef (v5.0.0)
    • Responsive.responsiveHeightChange event (v5.0.0)
    • Responsive.responsiveWidthChange event (v5.0.0)
    • Responsive.breakpoints config (v5.0.0)
    • record param for the Store.move event (v4.1.4)
    • Store.storeId (v3.0.0)
    • Widget.showByPoint() (v5.0.2)
    • The gridRowBeforeDragStart, gridRowDragStart, gridRowDrag, gridRowBeforeDropFinalize, gridRowDrop, gridRowAbort events triggered directly on the RowReorder feature (v5.3.3)
    • record param for the gridRowDrop event (v4.0.0)
    • Grid.navigateLeft() argument (v5.2.1)
    • Grid.navigateRight() argument (v5.2.1)
    • Grid.navigateUp() argument (v5.2.1)
    • Grid.navigateDown() argument (v5.2.1)
    • Filter.isMulti (v5.6.0)
    • Grid.selectionModel.rowCheckboxSelection (v5.3.3)
    • PdfExport.enableDirectRendering (v5.2.0)
  • The Point utility class has a from() function that creates a Point from an Event. The coordinates for that Point are now in client space, not screen space
  • BREAKING The following default values were changed:
    • Combo.clearTextOnSelection now defaults to true
    • Column.alwaysClearCell now defaults to true
    • Store.fireRemoveEventForMoveAction now defaults to false
    • Grid.animateTreeNodeToggle now defaults to true
    • RegionResize.animateCollapseExpand now defaults to true
  • BREAKING The following previously deprecated APIs were removed:
    • Store.idField (v2.0.0)
    • TextAreaPickerField.inline (v4.3.7)
    • event argument of Grid.navigateUp/Down/Left/Right() (v5.2.1)
  • BREAKING The following menu item keys have been renamed:
    • editFilter -> filterEdit
    • disableFilter -> filterDisable
    • removeFilter -> filterRemove
  • BREAKING The Grid.util.Location class has been renamed to Grid.util.GridLocation to not match the native Location class name
  • FilterBar feature now uses = operator by default when filtering in NumberColumn (previously used * operator)
  • Duration.toString(true) now uses a shorter representation without space ('5d', previous '5 d')
  • The CheckColumn minWidth config was changed to 30px
  • BREAKING The source event param in all RowReorder events have been changed to the Grid instance to conform with how other events are fired

STYLING CHANGES

  • The Stockholm theme got some slight tweaks to panel header (removed bottom border) and tab panel styling (replaced active tab background with thick bottom border) for a more modern look (8440)
  • New ui for Panel called plain which uses a single background color for the panel and no border/background for header or toolbars
  • MessageDialog now uses the new plain rendition
  • The b-grid-empty CSS class is now added to the root Grid element when there are no rows (previously this CSS class was put on the body container element)

LOCALE UPDATES

  • New locale key for the LockRows feature, unlockRow

DEMOS

  • VUE-3-VITE New demo showing how to use FieldFilterPickerGroup to filter a Grid store, synchronized with the Grid Filter feature. The demo is located in frameworks/vue-3-vite/fieldfilters folder (8836)
  • columns demo has be updated to show how to add, remove, rename, rearrange and resize columns (9214)
  • New nested-grid-with-chart demo showing how to embed custom widgets such as a 3rd party charting library
  • New drag-between-grids demo showing how to drag rows between different Grid instances
  • New drag-between-trees demo showing how to drag rows between different TreeGrid instances
  • New grid-taskboard demo showing how to combine the Grid and TaskBoard widgets

BUG FIXES

  • 4933 – Toggleable button loses state when moved to toolbar overflow menu
  • 5074HIGH PRIO Returning undefined from column renderer produces unexpected content
  • 6441 – Instance config values should not be overridden by responsive configs
  • 6854 – Pressed state lost as button in ButtonGroup enters an overflow menu
  • 7760HIGH PRIO TypeScript Type intersection with any might be wrong
  • 7826FilterBar Combo field icons missing padding
  • 7827 – Misalignment when using FilterBar with compactMode for non-left aligned columns
  • 8171FieldFilterPickerGroup config limitToProperty should also apply to configured filters
  • 8329HIGH PRIO PDF generated using Gantt Print Feature showing duplicate tasks
  • 8409 – Crash when selecting date in DateRangeField with null value
  • 8459HIGH PRIO Carousel should support swipe gesture scrolling for mobile/touch
  • 8463 – Widgets in overflow menu fire events twice
  • 8510 – Should be possible to add FilterBar only for an individual column
  • 8513 – Example Code editor does not destroy old example widgets when new code is evaluated
  • 8523SlideToggle inside overflow menu triggers 2 change events
  • 8559DurationField not working with FilterBar
  • 8569LockRows feature should leave the store unchanged
  • 8580 – Event disappears if dropped on locked row
  • 8582 – Locked row styling tweaks
  • 8586HIGH PRIO Records disappeared on "Add" button click and quickly scroll to bottom and top
  • 8589 – Cutting from locked rows and pasting to normal rows doesn’t paste to the normal rows and vice versa
  • 8604 – Code editor should have dark splitter in dark theme
  • 8605 – Crash when adding ?code=1 to example URL to show editor initially
  • 8612 – Code panel collapse animation reveals vertical placeholder at the end of the animation
  • 8613 – Duplicate row numbers when using LockRows + RowNumber column
  • 8614LockRows feature does a full render before setting up locking
  • 8615 – Cell widths out of sync with locked rows + autoWidth columns
  • 8616 – Lock rows feature will trigger a filter after every change to the data
  • 8621 – Nested grid with chart demo: Outer grid not updated when editing inner grid data
  • 8698 – Panel header changes size when collapsing / expanding panel in Stockholm theme
  • 8813HIGH PRIO Toolbar items lose their value when moved into toolbar overflow menu
  • 9058LockRows feature does not support Group feature
  • 9066CellEdit not compatible with LockRows
  • 9080LockRows not compatible with checkbox selection
  • 9085REACT 6.0.0-alpha-3 thin packages "Can't resolve 'vs/editor/editor.main'" error on build
  • 9101 – Crash in lock-rows demo when using "Fix by color" field
  • 9103Nested-grid-with-chart demo not updating nested grid when outer grid changes
  • 9105 – Grid Infinite Scroll demo crash on applying filter
  • 9108 – No option to enter value for a filter in Infinite Scroll Demo
  • 9138LockRows not compatible with remote data
  • 9284Checkbox‘s overflow twin lacks text
  • 9318 – Item cannot be dropped last in drag between grids demo
  • 9320 – Group header menu should not show option to lock/unlock the row
  • 9333 – Grid drag-between-trees demo throws when dragging to empty TreeGrid
  • 9334 – Grid drag-between-grid demo shows wrong drop position when dragging to empty Grid
  • 9369TreeGroup on name and using parentRenderer resulting in crash
  • 9419 – Column lines showing on header when columnLines is set to false
  • 9444 – MessageDialog prompt is not setting value for textField

FRAMEWORK SUPPORT

  • NodeJS: >= 20.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.13

2024-06-26

FEATURES / ENHANCEMENTS

  • Filter feature column header tooltips now display localized text for active filter operators, e.g. equals instead of = (9338)
  • ACCESSIBILITY ActionColumn actions now support ariaLabel attribute to add a descriptive text for screenreaders (9377)
  • Added documentation for two new Grid events: horizontalScroll and horizontalScrollEnd (5064)

API CHANGES

  • ContextMenus no longer call event.preventDefault() if there are no items to show (meaning native context menu will be shown). To prevent native menus from showing, please use the new preventNativeMenu config option
  • Column grid property is now public (9409)

DEMOS

  • VUE-3-NUXT "Basic" (NUXT) demo shows using Grid component in NUXT. The demo is located in frameworks/vue-3-nuxt/basic folder (9200)

BUG FIXES

  • 9369TreeGroup on name and using parentRenderer resulting in crash
  • 9375 – Grid navigation fails when no cell is focused
  • 9376 – Activate button in Action Column with Spacebar
  • 9384 – Cell menu disabled when Grid is readOnly
  • 9390HIGH PRIO Buttons in grid WidgetColumn cells cannot be invoked using keyboard

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.12

2024-06-13

FEATURES / ENHANCEMENTS

  • The refreshRows() method available on Grid now optionally accepts an array of records, to only refresh the corresponding rows (9179)
  • New events beforeExcelExport and beforeCSVExport are added, which will be triggered before Excel and CSV export respectively (8511)

API CHANGES

  • Combo dropdowns now auto width around visible content, but match at least the width of the Combo’s input area (9252)
  • VUE REACT When using wrappers for Vue or React, syncDataOnLoad is by default set to true on all stores configured on the wrapped Widget. Starting from 5.6.12, stores with a configured readUrl will have their syncDataOnLoad default to null

BUG FIXES

  • 8762TypeScript incorrect declaration of GridConfig comparing to the docs
  • 8890 – Nested relation field does not call custom setter for field
  • 8955fillHandleBeforeDragFinalize params from and to not correct when dragging from bottom to top cell
  • 9065HIGH PRIO Copy/paste keyboard shortcuts do not work with Salesforce Locker
  • 9111CellEdit throws exception when autocompleting field in Safari
  • 9235 – Grid row reorder proxy does not stay in view when triggering side scrolling
  • 9246HIGH PRIO id field on model is not persistent anymore
  • 9248 – RowReorder showGrip interferes with rendering of group headers
  • 9253Accessibility Editing not started when pressing Enter on cells in a PercentColumn
  • 9254 – First added tab to a TabPanel does not initially get the b-active rendition
  • 9257Accessibility aria-readonly attribute should be set on readOnly row cells
  • 9263 – Unable to use "is one of" operator in Grid filter feature when using AjaxStore and filterParam
  • 9273 – Tree Grouping support for rounding values when tree-grouping NumberColumn
  • 9343HIGH PRIO Crash on restoring grid state when a column has autoWidth configured
  • 9362 – Summary row disappears after moving column with empty data store

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.11

2024-05-21

FEATURES / ENHANCEMENTS

  • A new static boolean property, Widget.accessibility was added, which, when set to true causes tooltips to be activated on focus in addition to mouseover (5539)
  • Vanilla JavaScript documentation has a new section on Multiple Products, showing how to use multiple components in a single page using thin components (8756)
  • You can now configure enableRecurringEvents with a defaultAction parameter, to always choose a predefined action, single to always only process the selected event, or future to change all future events (7606)
  • AjaxStore has a new config called includeChildrenInRemoveRequest, that controls if a remove request includes the id of a removed parent and all its children, or just the id of the removed parent (8099)
  • Column now supports configuring its ariaLabel and cellAriaLabel DOM attributes

API CHANGES

  • Added HTML encoding strings displayed by various widgets such as FilePicker tooltip, Slider, Tooltip and others.
  • You can now prevent a SubGrid from being fully expanded by providing a maxWidth to it in the subGridConfigs object. This will also automatically hide the expand button inside the Grid splitter (8775)
  • After a docs regression, several APIs flagged to be hidden in subclasses were still visible in the docs. These APIs are now correctly hidden (9140)

BUG FIXES

  • 8148HIGH PRIO State is not saving in grouped column headers when reordering child to another group
  • 8319HIGH PRIO Grouping rows should not have Stripe color
  • 9011VUE-3 Filter field is not editable once filtered when data is loaded using AjaxStore.readUrl
  • 9050 – Menu detached from submenu after hiding column
  • 9057DOCS FieldFilterPicker docs inline example doesn’t apply filter at initial startup
  • 9064VULNERABILITY Fixed a bug regarding menu item texts not being HTML-encoded
  • 9075 – Error when hiding/showing a combo type column filter
  • 9091 – Grid Column ignores field’s set value when field is localized
  • 9106 – Autocomplete icon in FilterBar in Safari
  • 9109 – Nbr items empty in master-detail demo
  • 9126headerRenderer is not taken into account while exporting data into Excel file
  • 9137 – Popup focus should go to descendant widget instead of maximizable
  • 9146HIGH PRIO Incorrectly generated snippets for on-owner events
  • 9160hasChanges should always return a boolean value
  • 9170clearChildren does not convert parent to leaf when convertEmptyParentToLeaf is enabled
  • 9172 – Crash when pressing F3 with QuickFind enabled
  • 9197 – Crash when using TreeGroup with hidden column
  • 9199 – Nested grid demo crashes when grouped
  • 9210TreeGroup node toggle fails when a group field is an array

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.10

2024-04-24

FEATURES / ENHANCEMENTS

  • CalendarPanel (and its subclass DatePicker) may now be configured with a nonWorkingDays object, which is separate from weekend days while weekend days continue to exist in their fixed position (8914)
  • Store has a new hasChanges property, it is cheaper than changes to use if you only need to know if there are changes or not
  • AjaxStore has a new paramsInBody config that allows sending parameters in the request body instead of the URL query string (4058)
  • Model (=records) has a new getUnmodified() function that returns the unmodified value of a field (9029)

BUG FIXES

  • 7860 – Allow specifying custom default operator by data type for Grid filter feature
  • 8725HIGH PRIO TreeGroup ID collision when multiple groups are applied and column with array data is at the top
  • 8751HIGH PRIO Not possible to increase the width of the last column
  • 8896DOCS Beef up docs about not supporting non-standard operators
  • 8910filterFn does not work with onChange in FilterField config
  • 8926DEMO Crash when dragging equipment using touch gesture
  • 8947 – Empty treegrid demo
  • 8959 – Floating widget doesn’t realign if target transitions
  • 8965HIGH PRIO Toolbar overflow synced excessively
  • 8984 – Filtering crashes when combo widget column has a value
  • 8992ANGULAR implement support of ViewEncapsulation.ShadowDom
  • 8993 – The anchor gap between an aligned, anchored widget and its target allows a mouseout to be fired
  • 9035 – Crash when pressing Cancel button in Excel import demo

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.9

2024-04-09

FEATURES / ENHANCEMENTS

  • The MergeCells feature has a new shouldMerge hook that can be implemented in an app to control which cells should be included in a detected range (8724)
  • Records that relates to other records with the use of the Model class’s static relations config can now propagate their changes to the related records stores. This is useful if you have multiple widgets that you want to refresh when a related record changes. For example, showing row details in a nested grid using the RowExpander. See this in action in the Nested grids demo. The new behaviour is opt-in, you need to set the new propagateRecordChanges property on the RelationConfig object (8671)
  • The FillHandle feature will now draw the fill handle in the bottom right corner even when the cell selection ends on the last column (8826)

LOCALE UPDATES

  • Added Brazilian Portuguese translation ('PtBr') (8747)

DEMOS

  • VUE-3-VITE New "Summary" demo (Vue 3 + Vite) shows the Summary feature. The demo is located in frameworks/vue-3-vite/summary folder (8385)
  • ANGULAR New "Summary" demo (Angular) shows the Summary feature. The demo is located in frameworks/angular/summary folder (8386)
  • REACT-VITE New "Paged grid with mocked Ajax" demo (React + Vite) shows that the grid can access large data sets page by page. Uses remote sorting and filtering with mocked Ajax. The demo is located in frameworks/react-vite/paged folder (8662)
  • VUE-3-VITE New "Paged grid with mocked Ajax" demo (Vue 3 + Vite) shows that the grid can access large data sets page by page. Uses remote sorting and filtering with mocked Ajax. The demo is located in frameworks/vue-3-vite/paged folder (8663)
  • ANGULAR New "Paged grid with mocked Ajax" demo (Angular) shows that the grid can access large data sets page by page. Uses remote sorting and filtering with mocked Ajax. The demo is located in frameworks/angular/paged folder (8664)
  • VUE-3-VITE New "Scaling" demo (Vue 3 + 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/vue-3-vite/scaling folder (8413)
  • ANGULAR New "Scaling" demo (Angular) 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/angular/scaling folder (8414)

BUG FIXES

  • 6646 – State of columns is not restored for columns w/o ids
  • 7267 – Request for improved API for custom cell editors
  • 7662 – Resizing a solitary flex Column with maxWidth does not work
  • 8519HIGH PRIO VUE 3 Repeated cell content on grid scrolling with Vue renderers 8519
  • 8652LWC Selection breaks when click outside Grid
  • 8672TypeScript Bbar and Tbar type error
  • 8700 – Cannot set value manually for widget column fields
  • 8748 – Cannot disable or hide file picker badge (now doable with showBadge config)
  • 8759TOUCH Pressing enter in cell editor does not move editor to the next cell
  • 8761 – Popup positioning incorrect when maximized with centered and maximizable
  • 8791 – Nested grid should have exposed relation property on its records
  • 8807dragSelect does not work in Salesforce
  • 8808Model.clearChanges() doesn’t update the UI
  • 8815DateTimeField editor on Column throws an error on start editing
  • 8821 – Grid columns not scrolling into view when using keyboard navigation on column header
  • 8823HIGH PRIO The RowNumberColumn documentation does not display the description of configs
  • 8824DOCS Class disappears after hiding public members
  • 8840 – List "Select all" text not localized dynamically
  • 8846HIGH PRIO Vue-3 Crash when filtering in column header with config vue: true on column
  • 8856 – Action OnClick not working when using svg + path
  • 8867 – The rowexpander-regions demo shows linked records generated ids
  • 8875DateHelper startOf week method does not return correct output for Sunday
  • 8880 – Modal masks for multiple popups are not working
  • 8912isPaged property on AjaxStore should be boolean
  • 8946 – Broken layout in Tree Grid Demo in Vue3 + Vite

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.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

Older versions

  • Full release version history can be found here.