All Changes since Vaadin Flow 24.4
New features
-
Automatic Flow main layouts
DocsVaadin Flow automatically adds the Flow routes to the router layout that is marked with
AtLayout
new annotation.
Includes the following commits:-
Automatic Flow layout
Commit · Pull requestAutomatically match layout for both flow and hilla route. format Add server layout usage information to routes.tsx template This reverts commit bad2fec. Have OutletElement as a tsx file in flow-react jar Add javadoc for auto layout getParentLayout method.
-
Add collectMenuItemsList() to MenuRegistry
Commit · Pull request · Issue -
Get menu views api
Commit · Pull request · IssueCreate MenuRegistry for getting automatic menu views for population.
-
Filter client routes by authentication and role
Commit · Pull requestAdd filtering of menu client routes by checking authentication and roles. Do not check for routes in ClientRoutesProvider as the results are generated from the same source data as the data read/generated by MenuRegistry.
-
Generate layout.json
Commit · Pull requestGenrate a layout.json for Hilla to automatically enable server layouts part of vaadin/hilla#2709.
-
-
Flow components as children for React-based component
Doc · Commit · Pull request · IssueAllows having Flow Components as children in a ReactAdapterComponent (Flow wrapper for React component).
-
HotSwap improvements
Provides a single endpoint for hotswap tools that internally chooses the best strategy of UI update - full page reload or UI component reload.
Includes the following commits:
-
API for reloading current route target
Commit · Pull request -
Add a common API to integrate with hotswap tools
Commit · Pull request
-
-
Record support in Binder
Commit · Pull requestProvides an API to use Java Records as bean types for read-only beans in Binder.
-
Daily Active Users license model
Draft Docs · Commit · Pull requestVaadin introduces the Daily Active Users license model that limits the end-users number in some Vaadin subscription plans.
Integrates with License Checker to add support for Daily Active User license model. -
Add alternative translate methods to I18NProvider
Commit · Pull request · IssueAdds static
I18NProvider#translate
methods for alternative way to get translation. Compares to calling getTranslation viaVaadinService.getCurrent().getInstantiator().getI18NProvider()
.translate
methods throws IllegalStateException without active VaadinService. -
Speedup startup time by excluding jars
Commit · Pull request · IssueOptimize class scanning of VaadinServletContextInitializer by excluding some commonly used jars and add support for vaadin.blocked-jar boolean property in META-INF/VAADIN/package.properties to exclude whole jar content from the class scanner.
-
Added HasLabelAsText interface to NativeButtonElement.
Commit · Pull request -
Filterable class scanning of JAR
Commit · Pull request · IssueThis change improves optimization of class scanning of
VaadinServletContextInitializer
by reading optional configuration file within a JAR dependency. Configuration file is a regular properties file that can containvaadin.allowed-packages
orvaadin.blocked-packages
to exclude/include packages being scanned byVaadinServletContextInitializer
. Package exclusion/inclusion effects only classes in the JAR/module whereMETA-INF/VAADIN/package.properties
is located at. Notice that this is only affecting the performance of the class scanning of Vaadin specific annotations and types and this feature is not meant to be used for excluding packages from the whole application. E.g. excludingVaadinServiceInitListener
in a Spring application is not stopping Spring and Vaadin initializing it anyway, although some time-consuming actions likeDevModeServletContextListener
would still exclude it for optimization. -
Add raw html table and related components
Commit · Pull request -
Create converters for numeric values from NumberField
Commit · Pull request · IssueThis pull request introduces converter classes which converts between Numeric data types. This change addresses the need for such converters as outlined in issue #5134. With the availability of a NumberField in Vaadin, it is essential to have converters that facilitate the use of various number formats with this component.
-
Add ValueContext.getBinder()
Commit · Pull requestoriginal authors: @archiecobbs and @mstahv
-
Load Lumo utility CSS by default
Commit · Pull requestThe imports have been manually defined in all new starter projects for a long time so this is not supposed to break much anything.
-
Upgrade to TypeScript 5.5
Commit · Pull request -
Add application identifier to build info
Commit · Pull requestGets or computes an application identifier during production build and store it into flow-build-info.json.
-
Refresh browser using dev-tools connection
Commit · Pull requestUses the dev-tools websocket connection to refresh the UI when PUSH is not available, instead of forcing a page reload.
-
Push and replace without navigation callback
Commit · Pull request · IssueAdd feature to support replace and push without getting a callback to the server for the change.
-
Add CompletableFuture WebStorage API
Commit · Pull request · IssueAdds CompletableFuture methods for WebStorage.getItem.
-
Strongly cache Copilot files
Commit · Pull requestSpeeds up every reload as there is no need to check if the files have changed.
-
Create Fieldset - Legend Java API
Commit · Pull request · IssueJava API to create a and html tag without using a custom Java class to group fields.
-
Add option to not modify readonly files during copy, add logging of time
Commit · Pull request · IssueAllows to skip setting writable flag on copied files by providing the vaadin.frontend.disableWritableFlagCheckOnCopy system property. This may improve performance in certain scenarios with Windows OS.
-
Add download progress listener to FileDownloader
Commit · Pull request -
Make proxy reading method public
Commit · Pull request