Release date: December 15, 2019
Improvements
- 
	
		[Scheduler] DayPilot.Scheduler.scrollToResource() accepts DayPilot.Row as well. 
	(build 4113)
- 
	
		[Scheduler] DayPilot.Scheduler.rows.find(func, startIndex) added. 
	(build 4114)
- 
	
		[Scheduler]
	
	DayPilot.Row.hidden 
	(build 4115)
- 
	
		[Scheduler] DayPilot.Scheduler.eventVersionsReserveSpace implemented (boolean; default false). 
	(build 4118)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.onLinkClick/ed 
	(build 4120)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.onTimeHeaderRightClick/ed and timeHeaderRightClickHandling added. 
	(build 4122)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.onEventMoving supports args.left.height and args.right.height. 
	(build 4123)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.onEventResizing supports args.left.height and args.right.height. 
	(build 4123)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.onTimeRangeSelecting supports args.left.height and args.right.height. 
	(build 4123)
- 
	
		[Scheduler]
	
	SchedulerConfig.rowHeaderColumnsMode added (TypeScript definitions) 
	(build 4126)
- 
	
		[Scheduler]
	
	ResourceData updated for tabular mode (TypeScript declarations) 
	(build 4128)
- 
	
		[Calendar]
	
	CalendarConfig.columnWidthSpec added (TypeScript). 
	(build 4130)
- 
	
		[Scheduler]
	
	SchedulerConfig.contextMenuLink added (TypeScript) 
	(build 4131)
- 
	
	DayPilot.DatePicker.zIndex added 
	(build 4132)
- 
	
	DayPilot.Modal.form() supports "date" and "select" field types. 
	(build 4132)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.rows.selection.clear() optimized for a small number of selected rows. 
	(build 4133)
- 
	
		[Scheduler]
	
	Event containers (DayPilot.Event.data.container) can be combined with forced lines (DayPilot.Event.data.line). The "line" value of the first event in a container will determine the container line position (Scheduler). 
	(build 4137)
- 
	
	DayPilot.Modal.form() returns a merged result. 
	(build 4148)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.events.update() accepts event data object (in addition to DayPilot.Event) 
	(build 4149)
Fixes
- 
	
		[Scheduler]
	
	Calling DayPilot.Scheduler.getViewPort() with empty timeline caused an error (Uncaught TypeError: Cannot read property 'x' of null) - fixed. The values of viewport.start and viewport.end will be null in this case.
	(build 4121)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.onBeforeRowHeaderExport call fixed (regression).
	(build 4124)
- 
	
		[Scheduler]
	
	SchedulerConfig.eventMovingStartEndFormat and eventResizingStartEndFormat fixed, eventVersionsReserveSpace added (TypeScript definitions)
	(build 4126)
- 
	
		[Month]
	
	Padding of cell header (.month_default_cell_header) fixed (Month)
	(build 4129)
- 
	
		[Scheduler]
	
	Vertical event positions fixed after Scheduler width change with auto cell width enabled.
	(build 4134)
- 
	
		[Scheduler]
	
	Disabled cells fixed for viewType: "Days" mode (Scheduler).
	(build 4147)
- 
	
		[Scheduler]
	
	DayPilot.Scheduler.onTimeRangeSelecting: args.html fixed (reset properly).
	(build 4151)
API Changes
[Scheduler] When the resource id is used to find a row, an exact match is required (including type), i.e. 2 !== "2". Affected methods and properties:
This rule has been already applied when matching events to resources (resources[].id vs. events.list[].resource).
Known Issues