kalender 0.15.0
kalender: ^0.15.0 copied to clipboard
This Flutter package offers a Calendar Widget featuring Day, MultiDay, Month and Schedule views. Moreover, it empowers you to tailor the visual aspects of the calendar widget.
0.15.0 #
- feat: Added timezone support.
- feat: Use
linked_pageviewpackage for linked scrolling between multi-day header and body. PR #247 - fix: Wrong current date highlighting due to extension method issues. PR #260 / #251
- fix: Schedule body rendering issue.
- fix: SnapPoints calculation.
- fix:
EventLayoutDelegateCachenot being cleared whenheightPerMinutechanges. - fix:
MultiDayViewControllernow correctly exposes a page offset listener.
Breaking Changes #
- Added InternalDateTime and InternalDateTimeRange classes accessible through
kalender/extensions.dart. - Moved
asUtcandasLocalextensions to InternalDateTime. EventLayoutStrategynow takes aInternalDateTimeinstead of a DateTime.GenerateMultiDayLayoutFramenow takes aInternalDateTimeRangeinstead of a DateTime.CalendarEventstores start and end times in utc format.- Removed initial date from
CalendarControllerthis is now set in theViewConfigurationof theCalendarWidget. **** - Replaced
visibleDateTimeRangeUtcvalueNotifier in theCalendarControllerwith a nullableinternalDateTimeRange. (visibleDateTimeRangeis remains the same). - The
EventsController.eventsFromDateTimeRangenow usesInternalDateTimeRangeand takes a nullableLocationfrom the timezone package. - Changes to the
DefaultDateMapto accommodate different timezones, any custom implementations will need to be updated. EventTileUtilsmixin was also updated to use the new internal date time classes.PageNavigationFunctionswas renamed toPageIndexCalculatorand updated to use internal date time classes.- Multiple default components where updated to use the new internal date time classes instead of date time classes.
- ViewConfiguration renamed
selectedDatetoinitialDateTime. CalendarHeaderandCalendarBodyno longer takeValueNotifiersand will instead create and dispose ValueNotifiers created from values passed to them.
0.14.3 #
- feat: Made TextAlign and TextOverflow configurable for TimelineStyle. PR #242 Thanks to quaaantumdev
- fix: Various issues while dragging events on multi-day view. PR #240 Thanks to redninjacat.
- fix: Drag and drop issues. PR #238 Thanks to redninjacat.
- fix: erroneous warning in month_body PR #237 Thanks to redninjacat.
0.14.2 #
- fix: Tile and ResizeHandleWidget rebuild issues.
0.14.0 #
- feat: Custom onWillAcceptWithDetails functions for DragTargets. #213
API Change #
- Resize Handles are now only rendered when the cursor is hovering on a tile or when a tile is selected on mobile.
- Added a [ResizeHandles] abstract widget and [DefaultResizeHandles] widget that allows for more customization.
- Replaced vertical/horizontal resize handle positioners from [TileComponents] with a single [ResizeHandlePositioner].
0.13.0 #
- feat: Improved TimeLine and HourLines widgets. #216
- feat: Improved DayHeader and DayHeaderStyle. PR #218
- feat: Improved CalendarCallbacks. #133 / #30
- Added
onTappedWithDetail,onLongPressedandonLongPressedWithDetailcallbacks. - DeprecatedonMultiDayTapped. (UseonTappedWithDetailinstead). - Not providingonEventTappedandonEventTappedWithDetailwill remove internal gesture detectors for events, removing interference for GestureDetectors added to EventTileBuilders. - Added mixins (DayEventTileUtilsandMultiDayEventTileUtils) for EventTileBuilders that have their own gesture detectors. - AddedonEventCreateWithDetailas used in the new advanced example. - fix: DayDragTarget
calculateLocalCursorPosition, add scroll offset after converting to local coordinate space.
0.12.0 #
- feat: Added
eventComparatortodefaultMultiDayFrameGeneratorthanks to captaingerhard. PR #210
0.11.1 #
0.11.0 #
0.10.0 #
- feat: Added locale property to CalenderView allowing users to specify a language with the intl package. #172
- feat: Add string builder to MultiDayPortalOverlayButtonStyle for easy override of the text. #172
- fix: MultiDayPortalOverlayButtonStyle not using style overrides. #172
- fix: Overlap when scrolling. #174
- fix: ScheduleView reload issues. #170
0.9.0 #
0.8.0 #
Features #
- Reimplemented schedule view. discussion 122, #130
- The tile builder is no longer a required parameter, default tiles are now provided. (Highly recommended to override these.)
0.7.2 #
0.7.1 #
0.7.0 #
Features #
- Ability to limit the number of events in MultiDayHeader. #141 / #147
MultiDayHeaderConfigurationChanges:- Added
maximumNumberOfVerticalEvents - Added
generateMultiDayLayoutFrame
- Added
- Added
overlayBuilderstoMultiDayHeaderComponentsfor customizing the overlay.
- MonthBody limits the number of events displayed based on size constraints. #141 / #147
- Added
overlayBuilderstoMonthBodyComponentsfor customizing the overlay.
- Added
- Added a new callback
OnEventTappedWithDetail. #141 / #148
Migrations #
- Deprecated MultiDayEventLayoutStrategy this should be migrated to use the new
GenerateMultiDayLayoutFrame
Improvements #
- The
defaultMultiDayGenerateFrameimproves on thedefaultMultiDayLayoutStrategyby allowing events to fill empty spaces.
Fixes #
0.6.7 #
0.6.6 #
- fix: MultiDayHeaderWidget layout regressions.
- Added widget tests for MultiDayHeaderWidget.
0.6.5 #
- fix: SingleDayView RenderFlex overflow.
0.6.3 #
- fix: Event snapping not always working.
0.6.1 #
- Changed
VerticalTileResizeHandlePositionerto never use more than 1/4 of the height of the event tile on desktop.
0.6.0 #
- Package will use Semantic versioning from 0.6.0 onwards.
Breaking changes #
- The
EventsControlleris now an abstract class, useDefaultEventsController<T>instead. - The
ViewConfigurationno longer contains the configuration forinteractionandsnapping. These are now separate classes that are passed directly to theBody/Header.
What's new #
- There is a new callback
onTappedinCalendarCallbacks.- This is now called when the user taps on an empty space a calendar (Multiday body).
- There is a new callback
onMultiDayTappedinCalendarCallbacks.- This is called when the user taps on an empty space in the calendar (Multiday Header / Month body).
- MultiDayBodyConfiguration added
horizontalPaddingthis padding is located between events and the edge of day. - There is now a
CalendarInteractionandCalendarSnappingclass that can be passed to theCalendarBody/CalendarHeaderas a ValueNotifier. This allows the calendar view to change these behaviors without rebuilding the entire view. CalendarSnappingnow has aeventSnapStrategythat can be used to define custom snapping behavior when creating new events. #119
Fixes #
Boring stuff #
- Lots of new unit tests that run in multiple timezones to ensure there are no regressions.
- Example directory layout has changed.
0.5.0 #
Breaking changes: #
Version 0.5.0 has quite a few Breaking changes, there is no easy way to migrate to this version. Here are a few important things that have changed.
-
The CalendarView now takes a
headerCalendarHeader andbodyCalendarBody widgets. You can wrap these widgets in other widgets to style them as seen here -
Event tiles now make use of the Draggable widget provided by flutter. Take a look at the TileComponents for more details on how tiles work now. This opens some interesting possibilities for displaying multiple calendars.
-
The CalendarCallbacks (previously
CalendarEventHandlers) have been changed so more information is given when an interaction occurs. -
The schedule view has been removed, but will be reimplemented in the future.
What's new #
- Auto scroll/paging (https://github.com/werner-scholtz/kalender/issues/75 && https://github.com/werner-scholtz/kalender/issues/64)
- Calender can now accept Draggable's (https://github.com/werner-scholtz/kalender/issues/48)
- More information for the TileBuilder (https://github.com/werner-scholtz/kalender/issues/83)