Calendar – Change Log

Version 5.6.8

2024-03-04

FEATURES / ENHANCEMENTS

  • The DayView (Calendar mode day or week) now offers an eventHeaderRenderer property, which is a callback to be configured by applications which need to customize the header portion of an event block. By default, the event's startTime time is displayed according to the configured timeFormat. This setting allows applications to place any content in the event block's header.
  • The DayView (Calendar mode day or week) now offers a timeAxisTimeFormat property which is a DateHelper format string to format the time ticks in the time axis on the left side of the view.

DEMOS

  • New filtering-advanced example showing how to add additional filtering fields to the SideBar

BUG FIXES

  • 8642DayView's timeFormat is used in event header *and* in the time axis generation
  • 8688dblclick beforeAutoCreate event does not receive a resourceRecord property
  • 8702HIGH PRIO Dragged event bar does not have identical content to event being moved

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

  • The DayResourceView (Calendar mode dayresource) now offers a resourceDateFilter property, which is a callback implemented by applications, which allows applications to filter out resource columns for dates depending upon any conditions the application requires. The callback is passed context about the resource and date. It must return true or false to show or not show the resource column for the passed resource and date
  • The DayView (Calendar mode day) now offers a dateFilter property, which is a callback implemented by applications, which allows applications to filter out columns for dates depending upon any conditions the application requires. The callback is passed context including the date. It must return true or false to show or not show the day column for the passed date
  • DayView (WeekView is a subclass of DayView) has a new config property showDayStartHour which causes the zero-minute tick of the configured day start (usually 12:00 AM) to be shown at the top of the time axis (8420)
  • Calendar views now have a syncCalendarDate property, which prevents the Calendar date from the following view date clicks (8501)

BUG FIXES

  • 8415highlightSelectedWeek makes week rows jump 1px
  • 8423HIGH PRIO LWC Engine performance is too low with LWS enabled
  • 8455 – Crash when drag creating in event-items demo
  • 8458 – Tools should have white color in tooltip header
  • 8539 – Crash when toggling full screen
  • 8540 – Crash when adding new event via context menu
  • 8564 – Returning false from beforeDragCreateEnd listener leaves the drag-create element in place
  • 8603 – Agenda View – Incorrect Order of Events after updating one event when recurring events are present
  • 8640REACT Update EquipmentStore to Store type in all demos, fixed grid store to be unchained and only combo store should be chained in all framework demos

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

  • 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

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
  • DEPRECATED ANGULAR REACT VUE BryntumProjectModel framework wrapper will be removed starting from 6.0.0 version. Use BryntumCalendarProjectModel instead. Check the upgrade guide for the details

BUG FIXES

  • 4605EventRenderer renders html as raw string when name is null
  • 5639 – Calendar drag create should fire beforeEventAdd like Scheduler
  • 8196displayName config has no effect for Scheduler as a Calendar mode
  • 8200 – Webpack build failed with .min.css file
  • 8337EventRenderer does not share well with resourceAvatars

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

  • DayView and WeekView now accept a new config, dashedSubticks which cause minor tick lines (at 30 and 15 minutes etc.) to be rendered as dashed lines

API CHANGES

  • DEPRECATED The Calendar tbar item toggleSideBar has been renamed toggleSidebar for naming consistency. The old name will continue to be recognized until v7.0, but it is recommended that if your app customizes that item in the tbar, you update your app to use the correct name

DEMOS

  • ANGULAR New "Drag equipment onto tasks" demo (Angular) demonstrates how to drag any DOM node and drop it onto a task to update some aspect of it. The demo is located in frameworks/angular/drag-onto-tasks folder (7985)
  • ANGULAR New "List view" demo (Angular) demonstrates the 'list' view type. The demo is located in frameworks/angular/listview folder (8106)
  • ANGULAR New "Using TimeRanges" demo (Angular) shows how to use the TimeRanges feature to add vertical zones to the calendar. The demo is located in frameworks/angular/timeranges folder (8075)
  • REACT + VITE New "Drag equipment onto tasks demo" (React + Vite) demonstrates how to drag any DOM node and drop it onto a task to update some aspect of it. The demo is located in frameworks/react-vite/drag-onto-tasks folder (7984)
  • REACT + VITE New "List view" demo (React + Vite) demonstrates the 'list' view type. The demo is located in frameworks/react-vite/listview folder (8105)
  • REACT + VITE New "Using TimeRanges" demo (React + Vite) shows how to use the TimeRanges feature to add vertical zones to the calendar. The demo is located in frameworks/react-vite/timeranges folder (8032)
  • VUE 3 + VITE New "List view" demo (Vue 3 + Vite) demonstrates the 'list' view type. The demo is located in frameworks/vue-3-vite/listview folder
  • VUE-3 + VITE New "Using TimeRanges" demo (Vue 3 + Vite) shows how to use the TimeRanges feature to add vertical zones to the calendar. The demo is located in frameworks/vue-3-vite/timeranges folder (8033)

BUG FIXES

  • 4500allDay event with long duration may become interday when dragged to main schedule
  • 7403 – Make a guide on how to make a theme selector in frameworks
  • 7947 – Setting defaultCalendar : null makes the 'add event' item of scheduleMenu disabled
  • 7964REACT JSX doesn't work in Popups
  • 8104onEventClick is not called by events relayed from DayView child views
  • 8140 – Modes should refresh when eventRenderer changed
  • 8144 – Setting highlightSelectedWeek to true isn't working
  • 8145toggleSidebar item has not consistent naming.
  • 8149LoadOnDemand should not request subsets of a range which is already loaded
  • 8157 – Crash in event tooltip when hovering one event and moving directly to another
  • 8158Tooltip realign crash

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

BUG FIXES

  • 8066ResourceFilter throws an error on deselectAll when it has a change listener
  • 8080 – Missing TimelineHistogram component in Angular / React / Vue packages
  • 8081 – Missing TreeGrid component in Angular / React / Vue packages
  • 8087 – Angular drag-from-grid demo broken

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

  • DayView zooming now also works using pinch-zoom gestures on touch devices. This is still controlled by the zoomOnMouseWheel config property
  • REACT New Resource view demo (React + Vite) shows per-resource calendar views. The demo is located in frameworks/react-vite/resourceview folder (7857)
  • VUE-3-VITE New Resource view demo (Vue 3 + Vite) shows per-resource calendar views. The demo is located in frameworks/vue-3-vite/resourceview folder (7890)
  • VUE-3-VITE New Drag equipment onto tasks demo (Vue 3 + Vite) demonstrates how to drag any DOM node and drop it onto a task to update some aspect of it. The demo is located in frameworks/vue-3-vite/drag-onto-tasks folder (7464)
  • REACT Documentation in "Quick start" and "Guide" is now updated with how to build a React application using 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-calendar, @bryntum/cra-template-javascript-calendar packages will not get any updates after 6.0.0 version

BUG FIXES

  • 6125EventTooltip hides when event menu shows
  • 7937 – Drag-create's newName function call needs more context
  • 7978nextActiveView is undefined error on deleting last visible event when sidebar date picker is showing events as dots
  • 7987 – List stops reacting to selection change if selection is programmatically updated
  • 7988EventTip adds its "reveal" class to its overTarget before the vetoable show event is fired
  • 7991 – List view event tooltip not always displaying
  • 8003minWidth of aligned widget calculated wrong when percentage is involved
  • 8004 – All-day bar created from resizing intra-day event does not inherit the event's resource/color
  • 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

  • VUE-3 New List view demo (Vue 3 + Vite) demonstrates the 'list' view type. The demo is located in frameworks/vue-3-vite/listview folder (7463)

BUG FIXES

  • 7092 – Feature mixin on-owner events are not exposed on class
  • 7725 – Grid cells in an event list do not stretch grid row elements

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

  • ANGULAR New "Resource view" demo shows per-resource calendar views. The demo is located in frameworks/angular/resourceview folder (7441)
  • DayView now has a hideEmptyDays option which hides date columns for dates which contain no events. Note that this should be used with care. It may result in no visible date columns if there are no events in the view's date range. This is in all DayView subclasses such as WeekView and DayResourceView (7804)
  • DayResourceView now has a hideEmptyResources option which hides resource columns for resources which have no scheduled events for the date
  • The WeekExpander feature now cooperates with the MonthView's autoRowHeight property. Empty week rows flex-shrink to a minimum height when a week row is expanded to show all events. Vertical overflow is avoided where possible (7854)

BUG FIXES

  • 5719YARN Can not install @bryntum product packages using yarn v2/v3
  • 7703NumberField limits typed input to minimumFractionDigits not maximumFractionDigits
  • 7750 – Vite error @charset must precede all other statements
  • 7754Frameworks Thin packages not working with pnpm
  • 7767 – List groups which start collapsed cannot be expanded using the UI
  • 7775 – Setting autoCreate to false doesn't prevent the dblclick event creation
  • 7820globalThis should be defined in locales to support LWC
  • 7823 – Inconsistent drag creation behavior in Calendar year view
  • 7846 – Clicking on event, changes the start date of the view

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
  • @bryntum/calendar-thin bundle includes scss theme files in sass/themes folder (7445)
  • Time ranges now support recurrence out of the box, you no longer have to subclass and mix RecurringTimeSpan manually (7217)
  • Calendar print feature allows printing Agenda View (3884)
  • There is a new event, dayCellPopulated which fires when an array of events has been gathered for a certain date. This event may be used to mutate the events array for that date (7715)
  • TypeScript Functions and events declarations in typings were improved to contain all available parameters and return type (6961, 4456)

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
  • BREAKING TypeScript ScrollOptions typedef has been renamed to BryntumScrollOptions to not interfere with TypeScript interface ScrollOptions. Check upgrading guide for the details (7385)
  • FRAMEWORKSDEPRECATED BryntumProjectModel wrapper component has been renamed to BryntumCalendarProjectModel. Please see the upgrade guide for details

BUG FIXES

  • 6619 – Calendar's inline-data demo should use ProjectModel wrapper
  • 7739 – Events with 0 duration still not displaying side by side

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

  • 1317 – Calendar fires 2 refresh events on adding a new event record
  • 4727 – Documentation for Calendar EventMenu items missing
  • 6206 – Wrong guide for customizing context menu
  • 7587onBeforeDragMoveEnd returns incorrect datetime on event record
  • 7607 – List should allow easy setting of selected items
  • 7666DayLayout not laying out zero-duration events
  • 7673 – Events not rendering after switching to Russian locale
  • 7678titleRenderer not honoured if editor is not floating
  • 7679 – Event blinks after drag create is completed
  • 7693 – Align anchor arrow colour detection wrong when mouse is over adjacent element
  • 7706EventEdit does not exit when clicking on sidebar DatePicker

Version 5.5.4

2023-10-05

FEATURES / ENHANCEMENTS

  • There is a new Calendar config activeDateCls which is a CSS class name which gets added to the currently active date's cell in all modes (7535)

BUG FIXES

  • 7478 – Unable to scroll after quickly navigating in Agenda view
  • 7487DateResourceView does not render ResourceTimeRanges
  • Partially fixed 7491ExternalEventSource dropExternal event should be preventable
  • 7512ExternalEventSource: eventRecord not always set in externalDrop event
  • 7513 – Calendar tries to sync assignments on drag-create start
  • 7520viewContainer should be a config to allow reconfiguration
  • 7553 – Incorrect Swedish translation in Calendar
  • 7567overflowPopup should inherit the eventSorter of its owner
  • 7599autoRowHeight and maxEventsPerCell do not work together
  • 7600 – Event filter is not working when Calendar is read only

Version 5.5.3

2023-09-15

BUG FIXES

  • 4782 – React calendar issue when setting state
  • 7059beforeDragMoveEnd and beforeDragResizeEnd has not correct event ids
  • 7178dragMoveEnd listener in DayResourceView not having updated data

Version 5.5.2

2023-08-30

FEATURES / ENHANCEMENTS

  • New demo drag-onto-tasks showing how to drag custom objects onto an event
  • YearView may now show "No events" in its cell tooltip (5530)

LOCALE UPDATES

  • There is a new locale key noEvents : 'No events' which may be used by YearView's cell tooltip

BUG FIXES

  • 6993DatePicker doesn't trigger dateChange for grayed days when disableOtherMonthCells false
  • 7331 – Cannot set day and date in two separate statements
  • 7332 – Crash when double clicking calendar icon in dual-dayview demo

Version 5.5.1

2023-08-16

BUG FIXES

  • 7179beforeAutoCreate missing parameter in new DayResourceView
  • 7199timeFormat localization is ignored
  • 7224isCreating flag gets "stuck" if the edit is vetoed
  • 7256 – Incorrect number of events
  • 7260 – Event not rendered on overflowClickAction expand

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.

BUG FIXES

  • 7221VUE Vue vite app doesn't compile with Bryntum vue wrappers
  • 7224isCreating flag gets "stuck" if the edit is vetoed

Version 5.4.2

2023-07-26

BUG FIXES

  • 4163 – Inconsistent undo/redo behavior in calendar demo
  • 6995VUE An exception when use workingTime config in calendar timeline view
  • 7127 – Id collision error when creating new event using an external button on EventList mode
  • 7166 – Properly maintain b-selected-date class in ResourceView day headers
  • 7169 – Events hidden behind other events when switching modes
  • 7185 – Event sort works incorrect in Month View
  • 7196autoCreate step not always propagated into TimeField step
  • 7208 – Calendar's active date not changing with Datepicker

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

BUG FIXES

  • 6077TypeScript Model constructors should allow second param
  • 7085beforeEventEdit event should handle async handlers
  • 7106ExternalEventResource drag drop crashes if no resource on DayResourceView
  • 7107 – Extra horizontal scrollbars shown in resourceview in narrow window
  • 7132 – Calendar ResourceFilter change listener has wrong 'oldValue' on select

Version 5.4.0

2023-06-30

FEATURES / ENHANCEMENTS

  • 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
  • Calendar has a new mode, dayresourceview which shows columns of events for each selected resource for each day in its range. Check it out in the new date-resource example
  • The CalendarDrag feature now has a new config removeFromExternalStore. It defaults to true meaning that when an event is dropped on the Calendar from an outside event store, the record is removed from that store. If set to false, the record is *not* removed, and a __clone__ of the dragged record is inserted at the drop position.
  • The ExternalEventSource feature now allows a droppable property to be specified. If a grid is configured as the external UI, then dropping will Just Work. If the event source is just DOM elements, there are dragMoveExternal and dropExternal events. (6826)
  • 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

BUG FIXES

  • 6957 – Unexpected drag proxy in dragfromgrid demo
  • 6963 – Drag from Grid demo exception when dragging
  • 7002 – Clarify granularity level of dayStartTime and dayEndTime in API docs
  • 7003 – Set coreHours to the dayStart and end if they went through rounding
  • 7007 – ResourceView overwrites configuration with values from itself.
  • 7019 – Align constrained doesn't work in some cases.
  • 7020 – Drag from ExternalEventSource into Calendar with no resources throws Error
  • 7057 – CalendarRow cell width mismatch on narrow Calendars
  • 7068 – The "Select all" item in List is not internationalized

Version 5.3.8

2023-06-28

BUG FIXES

  • 6981 – Applying german locale after init makes ResourceView show wrong week

Version 5.3.7

2023-06-20

FEATURES / ENHANCEMENTS

  • New Event items demo. The example shows how to attach an arbitrary list of items (guests) to an event. The demo is located in examples/event-items folder

API CHANGES

  • When changing timeZone on a Calendar, the date range that the Calendar is currently displaying will not change unless the active view is a DayView and the selected days events center point will, when converted to a different time zone, be changed to a different day
  • The DayView methods zoomTo and zoomBy now return a Promise that may be awaited if postprocessing the updated UI state is required

BUG FIXES

  • 6467 – Replace separate view live demos to enable drag drop
  • 6839 – Calendar currentTime indicator is not converted to timeZone
  • 6871overflowPopup : null should make YearView switch to DayView in Calendar
  • 6872FilterField should tolerate its field value being null/undefined
  • 6880WeekView's all day row horizontal scroll may become out of sync if no all day events exist and the minDayWidth is set to cause horizontal overflow.
  • 6973 – Calendar editEvent(eventRecord) crashes without startDate and endDate

Version 5.3.6

2023-05-26

API CHANGES

  • Event bar colors are set in an event element using the --cal-event-color CSS property, not by setting a color name CSS class
  • All day event bars (and all event bars which are rendered using the renderData option solidBar : true) which do not have an iconCls may now show the default circular "bullet" icon before the text. To enable this, configure that mode (or the Calendar's modeDefaults) with showBullet : { bar : true }
  • The durationUnit used in the new record when drag-creating events now matches the unit specified in the dragUnit property of the active view. The defaults have not changed, so in a DayView, the duration of drag-created events will be in hours and in all other views, (including the all day CalendarRow in a DayView) in days (6798)
  • The EventTooltip feature may now be configured with revealEventsInCluster : false which means that when hovering a narrow event which is sharing day column width with other, overlapping events the hovered event does not expand to the full width (6410)

LOCALE UPDATES

  • DayView and WeekView may now be configured with how to snap an autoCreate pointer date to an autoCreate.step point. The autoCreate.snapType may be configured as 'round' (the default), 'floor' or 'ceil' (6739)

BUG FIXES

  • 6771 – No cell content should be shown for "other month" cells in MonthView
  • 6772 – Event colour source should be taken from correct resource
  • 6779MonthView events bars not conforming to eventColor renderer values.
  • 6781 – Remove erroneous dayCellRenderer docs from AgendaView
  • 6828CalendarDrag should not create an AllDayZone if the allDayEvents widget has been configured away

Version 5.3.5

2023-05-11

FEATURES / ENHANCEMENTS

  • The ResourceFilter widget may now be configured to also filter the resourceStore by configuring filterResources as true (6698)
  • DayView and WeekView event renderers now accept a bodyColor property to the renderData which specifies the background color of the body part of the event block (6690)
  • The EventStore setting removeUnassignedEvent now defaults to false for the Calendar product. This means that removing all assignments from an event will *not* remove it from the event store (6732)

BUG FIXES

  • 6093 – Resource filter not respected on initial loading
  • 6516 – Calendar state save and restore may include the date
  • 6683 – Calendar sidebar collapses when Combo dropdown clicked
  • 6701IONIC Scrollbar width could not be determined under Ionic framework
  • 6702 – Setting EventList listRangeItems item to null causes error
  • 6705 – Crash in shifted demo
  • 6708showEvents : 'count' in YearView doesn't work
  • 6714 – When DayView has daySelector : true, the time axis is not accounted for
  • 6733 – Crash if calendar sidebar is destroyed while loading
  • 6744DayView allDayEvents should be able to be configured as expanded

Version 5.3.4

2023-04-28

BUG FIXES

  • 4631eventDrag not working well if data mapping used for start/end dates
  • 6588ListView bugs when asked to display arbitrary date range as opposed to range config
  • 6627 – Zero duration all Day Event shown incorrectly
  • 6629 – Fix hiding context menus inside LWC components on scroll
  • 6633PickerField editable:false doesn't work inside WebComponent
  • 6651 – Calendar: after zoom, scroll jumps on click-n-drag event creation
  • 6652 – Minified UMD bundle does not export bryntum namespace

Version 5.3.3

2023-04-21

FEATURES / ENHANCEMENTS

  • VUE-3 Added a new Vue-3 demo, "Scheduler Timeline". Demo is located in the examples/frameworks/vue-3/calendar-scheduler folder
  • VUE-3 Added a new Vue-3 demo showing binding to inline data arrays, "Scheduler Timeline Inline data". Demo is located in the examples/frameworks/vue-3/calendar-scheduler-inline folder
  • CalendarDatePicker now offers an eventFilter config to match other Calendar widgets (6591)
  • ANGULAR Bryntum Calendar now ships with two npm Angular wrapper packages to support different versions of Angular framework. Existing @bryntum/calendar-angular package is now designed to work with Angular 12 and newer versions, which use the IVY rendering engine. New @bryntum/calendar-angular-view package is designed to work with Angular 11 and older versions, which use the View Engine rendering. Check Upgrading and Angular integration guides in documentation for more information (6270)
  • ANGULAR angular-7 demo has been upgraded to use Angular 11 and @bryntum/calendar-angular-view package. Demo is located in examples/frameworks/angular/angular-11 folder

BUG FIXES

  • 4516 – Calendar doesn't accept project instance
  • 5532 – Fix documentation of Vue 3 demo documentation
  • 6498 – Allow application intervention in event positioning within DayView
  • 6583YearView doesn't render recurring events which are allDay
  • 6612 – Duplicate tooltip renderer called
  • 6614 – + n more count incorrect when overflowing events start below the bottom of the cell
  • 6622DayView does not change date on header click

Version 5.3.2

2023-04-04

FEATURES / ENHANCEMENTS

  • Elements rendered by the TaskNonWorkingTime feature elements now trigger taskNonWorkingTimeClick, taskNonWorkingTimeDblClick and taskNonWorkingTimeContextMenu events on the Gantt instance. (5679)
  • There is a new Calendar event: beforeAutoCreate. This is a preventable event which fires before a UI-initiated create gesture is actioned. This allows a single point of validation for UI-initiated event creation (6472)
  • ScheduleMenu is now enabled by default, allowing easier event creation using context menu on empty schedule space.

BUG FIXES

  • 6395ANGULAR Cannot use StateProvider with a production build
  • 6417schedule<DomEvent> events do not bubble out of ResourceView to the Calendar
  • 6458 – Event dragging in Scheduler child mode does not relay onBeforeEventDrag event correctly
  • 6513 – Event tooltip should not show when double clicking event inside scheduler
  • 6514ScheduleMenu not working inside Scheduler mode
  • 6515 – Clicking EventList row for event who's startDate is before visible range changes visible range

Version 5.3.1

2023-03-17

API CHANGES

  • Date parsing was made more forgiving in regard to character used to separate date parts. For example these strings are now all acceptable as HH:mm: 10:20, 10 20, 10-20, 10/20 (6344)

BUG FIXES

  • 6351 – Components do not render into containers not already in DOM
  • 6368MonthView event sorter gets order wrong

Version 5.3.0

2023-03-02

FEATURES / ENHANCEMENTS

  • CSS changes in Scheduler has cut the size of Calendar's standalone CSS-bundles roughly in half (Calendar includes Schedulers styling to allow using Scheduler as a mode). See Schedulers upgrade guide for more information
  • Support for Time zone conversion has been added to all Bryntum scheduling products. Simply set a IANA time zone identifier as value for the timeZone config and that's it. But, since time zones is not supported natively in JavaScript we strongly recommend to read our Time zone guide (1533)
  • Localization demos updated to show up-to-date localization approach
  • New TimeRanges feature, that shades time ranges and displays a header in the gutter of day and week views. Try it out in the new timeranges demo (5113)
  • AjaxHelper.fetch now supports using request body to pass parameters for non-GET requests. Please check addQueryParamsToBody argument in the method documentation (2855)
  • We have added support for resourceTimeRanges to be added to a project. These are rendered only into subviews of a ResourceView which have matching resource ids (5835)
  • DayView and WeekView have a new sixMinuteTicks config. When set to true, the time axis is subdivided into six minute ticks instead of the default five minute ticks (5645)
  • Lots (but not all) of the not so informative object types in our TypeScript typings have been replaced with more specific types. Objects that in our JavaScript are used as maps are now declared as Record<keyType, valueType>, and for functions that accept object arguments many are replaced with anonymous type declarations, such as { foo: string, bar: number } (Partially fixed 5176)
  • YearView and the Calendar's datePicker may now show more than 4 dots when showEvents is 'dots' by setting the maxDots config on the year mode or the datePicker config. Note that increasing this value may produce a cluttered UI (6238)
  • YearView and the Calendar's datePicker may now be configured with eventCountTip : true which causes a tooltip to appear to display the event count for the day when a cell is hovered

API CHANGES

  • DEPRECATED LocaleManager.registerLocale and LocaleManager.extendLocale are deprecated. LocaleHelper.publishLocale should be used instead.
  • DayView's hourHeightBreakpoints now accepts an array of heights instead of an object. The object form is still supported, but might get deprecated in the future

LOCALE UPDATES

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

BUG FIXES

  • 4764 – Calendar multiEventSelect not working
  • 5988 – Calendar timezone demo UTC time incorrect
  • 6225 – Calendar collapses and expands event on each subsequent click or double click
  • 6255EventTooltip Placement Issue for Overlapping Events

Version 5.2.10

2023-02-17

FEATURES / ENHANCEMENTS

  • Added support for adding different core hours times for each day (6043)

API CHANGES

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

BUG FIXES

  • 5791EventHelper's listeners for .b-using-keyboard break iOS dragging
  • 6177EventSelection's isEventSelectable not called by Calendar's EventSelection mixin

Version 5.2.9

2023-01-30

FEATURES / ENHANCEMENTS

  • The event editor of the EventEdit feature may be reconfigured to not be a popup by configuring the editorConfig with floating : false or by adding an appendTo config. In this situation, the editor is displayed as a side-docked overlay. See the new docked-editor example. (5873)

BUG FIXES

  • 6019TypeScript Feature classes and configs have on event handlers exposed on owner class

Version 5.2.8

2023-01-19

BUG FIXES

  • 5918DatePicker's month field does not update when locale changed at init time
  • 5934 – Agenda view shows events in wrong year
  • 5962 – Day zoom demo slider shows value with decimals when devicePixelRatio is not 1

Version 5.2.7

2023-01-11

FEATURES / ENHANCEMENTS

  • Internal code improvements and bugfixes

Version 5.2.6

2022-12-28

FEATURES / ENHANCEMENTS

  • REACT React wrapper now supports React components in widgets and tooltips (774)

BUG FIXES

  • 5789 – Determining whether an event is interDay must consult the view's dayTime to handle shifted days
  • 5821constrainTo not applied unless component is shown using alignTo
  • 5827 – Error when navigating to view with event starting on hidden non working day

Version 5.2.5

2022-12-16

FEATURES / ENHANCEMENTS

  • ListView now offers a resourceColumn in which is displayed a read-only ChipView depicting the resources assigned to the event

API CHANGES

  • The EventStore loadDateRange event would previously only fire when a different date range of events was requested from the store. Not as the documentation states "when a range of events is requested". This now fires whenever a date range of events is requested. A changed flag is set in the event if the range is a new date range

BUG FIXES

  • 3954 – Fixed dragging all-day events with dayStartShift in effect.
  • 4530loadOnDemand with sidebar date picker using showEvents : true causes an infinite loop
  • 4920 – Calendar throws error when dragging event from overflow popup
  • 5672 – Double click on calendar date throws exception
  • 5685 – Non-draggable events are draggable in overflow popup
  • 5763loadOnDemand feature needs refresh method
  • 5780 – ICS export datetime stamp is not UTC

Version 5.2.4

2022-11-28

FEATURES / ENHANCEMENTS

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

BUG FIXES

  • 2125 – Recurrence edit confirmation should not be displayed when drag creating a recurring event
  • 4220 – Fixed calendar drag create in day/week view on DST days.
  • 5595 – Fix panel collapse icon directions
  • 5606 – Calendar events duplicated in UI when events start date is changed.

Version 5.2.3

2022-11-17

BUG FIXES

  • 5051 – Field does not show its invalid state unless it is hovered
  • 5533DayViewDragZone moves proxy element in the wrong direction in RTL mode

Version 5.2.2

2022-11-08

FEATURES / ENHANCEMENTS

  • In DayViews, events with a duration such that relative to the hourHeight, the element is too small to contain wrapped text will automatically change to a compact rendition. If the hourHeight changes (such as by zooming), the rendition will be corrected as appropriate (1948)
  • DayView now has a currentTimeIndicatorRenderer which allows a customized current time indicator to be used (4972)
  • The emptyText config of the agenda mode may now be an HTML string (5046)

API CHANGES

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

BUG FIXES

  • 5484 – Add day of week indicator class name to Calendar cells
  • 5495AgendaColumn needs to be autoHeight if using a custom eventRenderer
  • 5528dayNumberClick and monthNameClick events are not firing for specific modes
  • 5536allDayEvents : null in DayView children of resourceView leaves all day rows in the timeaxes

Version 5.2.1

2022-10-28

FEATURES / ENHANCEMENTS

  • DatePicker now fully supports two modes of multiSelect. Setting it to true means that multiple, discontinuous ranges may be selected. Setting it to 'range' means that one single range of one or more consecutive dates may be selected. (5368)

API CHANGES

  • Added includeWeekendsButton to Calendar with default value of false. Changed text of button to "Weekends" from "Full". (5459)

BUG FIXES

  • 5149 – Angular demos now use component-local styles using ViewEncapsulation.None
  • 5374 – Text cropped in calendar events
  • 5392 – Crash when clicking mode selector button in small screen in web component
  • 5433 – Today button does not reset small and large calendar to today
  • 5440 – Allow custom eventSorter function for views including OverflowPopup
  • 5455 – LTS date format does not parse seconds
  • 5460 – The duplicate event option breaks assignment of events to resources

Version 5.2.0

2022-10-13

FEATURES / ENHANCEMENTS

  • Calendar DayView now shows all week days above the detail area (2899)
  • Calendar responds to platform differences (via the Responsive mixin) and provides a significantly improved User Experience on small screens. This responsive behavior is also compatible with saving the calendar state In particular, on small screens:
  • The calendar sidebar automatically switches to overlay mode
  • The mode selection area switches to a menu button with radio items instead of the button group
  • The calendar description text is shortened
  • Improved year view layout (4617)
  • Calendar uses a new Calendar.widget.ModeSelector instead of a Core.widget.ButtonGroup on its toolbar
  • The ModeSelector supports a popup mode which, when popup: true, displays the available calendar modes in a menu instead of the regular button group. This switch is made by default on small displays via the new responsive behavior described above.
  • When the active mode of the calendar supports it, the mode selector displays a Full button to allow the user to toggle between full weeks and work weeks.
  • Calendar views now have a descriptionFormat config to simplify changing the description responsively. If a descriptionRenderer is provided, it takes precedence over the descriptionFormat
  • Calendar added the navigatorPlacement config to allow the forward/backward/Today buttons to appear on the sidebar instead of the toolbar
  • Menu has a separator config to make it easier to visually separate menu items
  • The responsive state objects used in the responsive config of the Responsive mixin now support a once property to allow configs to only be set on first activation of the state
  • The Core.helper.DateHelper class has a new method formatRange method which can format date ranges, as well as new formatting options for week numbers
  • A new config, emptyCellRenderer allows MonthView and CalendarRow (The all day row in a DayView or WeekView) to display a clickable button in cells which contain no events. There is a new emptyCellClick event. (4413)

Version 5.1.5

2022-10-12

FEATURES / ENHANCEMENTS

  • DatePicker now fully supports two modes of multiSelect. Setting it to true means that multiple, discontinuous ranges may be selected. Setting it to 'range' means that one single range of one or more consecutive dates may be selected. (5368)
  • New records are assigned a generated id if none is provided. The generated id is meant to be temporary (a phantom id), and should be replaced by the backend on commit. Previously the id was based on a global counter incremented with each assignment. That simplistic scheme assured no two records got the same id during a session, but if an application serialized the generated id (note, they should not) and then reloaded it, it would eventually collide with a new generated id. To prevent this, the generated ids are now based on a random UUID instead
  • Stores now by default show a warning on console when loading records that has generated ids, as a reminder that it should be replaced by the backend on commit

BUG FIXES

  • 4434 – The EventMenu context menu's "Delete event" option doesn't handle recurring events properly
  • 4488 – Overflowed events with custom propagateEndDate not marked with right arrow
  • 4645 – Improve error message "Bryntum bundle included twice"
  • 4654REACT Bryntum widget wrappers don't accept all component properties in React 18
  • 4729 – Can't clear multi-select options in combo with keyboard navigation only
  • 5333syncCurrentTimeIndicator throws an error if "today" is a hidden non working day
  • 5346 – Deleting the base of a repeating event causes exception
  • 5347 – Allow defaultCalendar to be explicitly configured as null
  • 5370EventEditor resourceField store cannot be reconfigured

Version 5.1.4

2022-09-29

FEATURES / ENHANCEMENTS

  • The showEvents config of Calendar's sidebar DatePicker and Calendar's YearView may now be 'dots' to show events as a series of event-coloured dots. Maximum of three in YearView and four in DatePicker. (5234)

API CHANGES

  • DEPRECATED The events config of the sidebar DatePicker has been renamed to showEvents. The events property is deprecated but will continue to work during its deprecation period

BUG FIXES

  • 5164 – Calendar listview doesn't respect columns order when rendering
  • 5311 – Enable app to change load parameters sent by loadOnDemand feature
  • 5313 – Multiday event not displaying if hideNonWorkingDays is true

Version 5.1.3

2022-09-09

BUG FIXES

  • 415 – Improve docs on formatting currency values on NumberField
  • 2742 – Configurable time axis tick amount/unit showing the Hours Between 15 Minutes
  • 5156 – Calendar Overflow Popup is hidden behind other nearby components on the page
  • 5165 – Keyboard operations from overflowPopup in ResourceView throw errors, or silently fail

Version 5.1.2

2022-08-29

FEATURES / ENHANCEMENTS

  • Configs that accept configuration options for a widget (or other class) are now (mostly) documented to accept a typed config object rather than a plain object. For example instead of {Object} tooltip - A tooltip configuration object, it is now {TooltipConfig} tooltip - A tooltip configuration object. This improves our TypeScript typings (transforms to Partial<TooltipConfig> in typings) when using such configs, but also improves our docs by linking to the configs of the type
  • We added the config offsetStartsBeforeEvents to AgendaView which, when set to false, removes the alignment of the textual content of event bars when there is an arrow indicating that the event is continued from a previous cell (5044)

BUG FIXES

  • 2124 – UI issues related to recurring events
  • 3433 – Changing minDayWidth of the week view makes dragged events misaligned
  • 4766 – Focus changes when clicking scroll down resources list
  • 4769EventTooltip tools which are not active are hidden (For example if Calendar is readOnly)
  • 4781 – Calendar events are not being displayed correctly when ending at midnight
  • 4793 – Wrong sidebar styling for classic theme in calendar demos
  • 4897ResourceFilter should continue to filter when its own Store is filtered
  • 4988scheduleMenu doesn't catch resourceRecord correctly in scheduler timeline mode
  • 5007zoomOnMousewheel zooming has to be synced between multiple DayViews in ResourceView
  • 5017TypeScript Property type is missing in DataFieldConfig
  • 5018Vue Prop Validation fails for String options
  • 5024eventRenderer renderData object needs an iconStyle property for apps to override defaults
  • 5079 – Sidebar datepicker should not have a background color
  • 5111 – Mouse events not being triggered properly in events on same day
  • 5120EventTip throws error when shown on contextmenu

Version 5.1.1

2022-07-28

BUG FIXES

  • 4904eventsPerCell not recalculated on month change when sixWeeks is false
  • 4951timeFormat doesn't work in resourceView
  • 4958 – List store reload needs to reset selection if no incoming records match previous selection

Version 5.1.0

2022-07-21

FEATURES / ENHANCEMENTS

  • The new config eventListTimeFormat is available for views which extend EventList (EventList and AgendaView). This config specifies the format for rendering time values next to event bars (4375)
  • Our TypeScript typings for string types that have a predefined set of alternatives was improved to only accept those alternatives. For example previously the dock config which was previously declared as dock: string is now dock : 'top'|'right'|'bottom'|'left'
  • Create React App templates now available
  • Configuring the CrudManager was made a little easier by introducing shortcuts for setting load and sync urls using the new loadUrl and syncUrl configs
  • Updated the built-in version of FontAwesome Free to 6.1.1
  • KeyMap is a mixin that allows for standardized and customizable keyboard shortcuts functionality. KeyMap is by default mixed in to Widget and therefore available to all Widget's child classes. There is a new guide **Guides/Customization/Keyboard shortcuts** describing how to customize currently integrated keyboard shortcuts (4300, 4313, 4328)
  • Calendar's MonthView has a new config : hideOtherMonthCells Hide day cells which are not part of the current displayed month
  • Calendar's MonthView has a new config : disableOtherMonthCells Disable all pointer interaction with day cells which are not part of the current displayed month

API CHANGES

  • BREAKING ANGULAR Angular wrappers now use the more modern module bundle by default, instead of the legacy umd bundle. Hence application imports must be changed to match. This will slightly improve application size and performance (2786)
  • BREAKING calendar.lite.umd.js bundle is no longer available
  • BREAKING WebComponents has been removed from calendar.module.js ES modules bundle. New bundle with WebComponents is calendar.wc.module.js

BUG FIXES

  • 3554 – Prevent navigating when clicking "other month" day cells in month view
  • 4696 – Parents sorted below children in docs
  • 4697 – Too dark code background in docs
  • 4941 – Calendar doesn't propagate dynamic readOnly setting to child views

Version 5.0.7

2022-07-13

BUG FIXES

  • 4610 – Make calendar.assignments public
  • 4856OverflowPopup disappears when right click one of its items
  • 4857OverflowZone's drag proxy only required if owner.isYearView
  • 4864MonthView resize event using left edge leaves the event name rendered at the old position
  • 4895LWC DragCreate in all day header throws
  • 4916Fullscreen is not working on mobile Safari

Version 5.0.6

2022-06-20

BUG FIXES

  • 4597 – Calendar autoCreate.startHour cannot be fractional
  • 4808 – Typings are wrong for async functions

Version 5.0.5

2022-05-30

FEATURES / ENHANCEMENTS

  • New Angular demo that shows how to drag events from an unplanned event grid to calendar (Partial fix of 4587)

BUG FIXES

  • 4350 – Fixed various panel and calendar sidebar collapse issues
  • 4607VUE Incorrect prop types in Vue wrapper

Version 5.0.4

2022-05-11

BUG FIXES

  • 4499 – Resource avatars demo not showing any event bars
  • 4529 – Sync is triggered when Scheduler is used as Calendar mode, after double clicking to create new event
  • 4544 – Calendar fires an eventundefined event upon key down
  • 4548 – Not possible to hide delete button on the event editor
  • 4562REACT React wrappers have incorrect source mapping urls

Version 5.0.3

2022-04-26

FEATURES / ENHANCEMENTS

  • WRAPPERS ProjectModel wrapper component reference can now be used as project parameter for Bryntum Calendar wrapper component in Angular applications (4238)
  • WRAPPERS Calendar has a new ProjectModel framework wrapper available for React and Angular. It simplifies sharing data between multiple Bryntum components (4382)
  • ANGULAR New demo showing use of inline data and ProjectModel wrapper. Demo located in examples/frameworks/angular/inline-data folder
  • REACT New demo showing use of inline data and ProjectModel wrapper. Demo located in examples/frameworks/react/javascript/inline-data folder
  • VUE-3 New demo showing use of inline data for Calendar wrapper. Demo located in examples/frameworks/vue-3/javascript/inline-data folder

API CHANGES

  • The validateResponse flag on CrudManager has been changed to default to true. When enabled, it validates CrudManager responses from the backend and outputs a message on console if the format isn't valid. This is helpful during the development phase, but can be turned off in production
  • New Vue 2/3 wrapper config option relayStoreEvents (defaults to false). When set to true, the events fired by stores are relayed to the Bryntum Grid instance
  • REACT New basic React demo with TypeScript. Demo located in examples/frameworks/react/typescript/basic folder
  • REACT React wrappers now include TypeScript definitions (3378)

BUG FIXES

  • 4127LWC DomHelper.isInView() throws
  • 4222LWC Performance degradation in 5.0 release
  • 4316DatePicker's events : 'count' option should sync with the current filtered state of the eventStore
  • 4432LWC Mouse events do not work
  • 4461Vue wrapper triggers doubled dataChange events with different params

Version 5.0.2

2022-04-13

FEATURES / ENHANCEMENTS

  • A new example (megadataset) has been added showcasing rapid view generation upon navigation through 100,000 event records
  • ResourceFilter in Sidebar should be configurable with custom selection (2006)
  • AgendaView's time rendering is now configurable with an eventTimeRenderer config (4437)

BUG FIXES

  • 3469loadOnDemand causes fetch loop when involving Scheduler
  • 4279 – Calendar Resource Filter works incorrectly after one of resources removed
  • 4303MonthView autoRowHeight -> false can result in incorrect eventsPerCell count
  • 4307 – Order of data setting must be enforced when data set through setConfig
  • 4315MonthView doesn't refresh on prev/next click is it contains a cell for the new date
  • 4323 – Calendar features should tolerate being invoked upon non-Calendar views
  • 4331 – Resource view items can sometimes disappear when filtering by resource
  • 4353 – Resource avatar hidden while dragging
  • 4406 – Fixed items in disabled fieldset/radiogroup not being disabled
  • 4451 – Removing a resource causes crash in agenda mode

Older versions

  • Full release version history can be found here.