Skip to content

Releases: vaadin/flow

More Vaadin Components added to Flow

27 Jul 11:17
Compare
Choose a tag to compare
Pre-release

New features

  • Two more Vaadin Components are added to Flow: vaadin-text-field and vaadin-form-layout

Fixes

  • General component generator improvements, leading to better component APIs
  • Template in template functionality works correctly now for big number of components, extending the base component

All changes

https://github.com/vaadin/flow/milestone/42?closed=1

Components API module and Converter improvements

20 Jul 10:56
Compare
Choose a tag to compare

New features

  • Created a new module - flow-components, that contains the component API for the Vaadin webcomponents. Those components are built on top of the generated API, and provide all the features and documentation that are not possible to auto generate. The first released component is VaadinButton.
  • ModelConverters can now work with list of beans.
  • ModelConverters now have a default implementation for the getApplicationType and getModelType methods, so the developer doesn't need to provide those in most cases.

Fixes

  • QueryParameters now work with parameters without values (like in http://somedomain?parameter).
  • Fixed an error with NPM builds that prevented clean projects to run.
  • Fixed a problem that prevented two-way binding to work for beans that were set from the server-side.
  • Update the used versions of NPM, Yarn and Node across the modules.

Breaking changes

  • With the addition of the flow-components module, the components from the flow-generated-components were all renamed to have a Generated prefix. So, for example, the generated VaadinButton is now called GeneratedVaadinButton, and the final implementation is called just VaadinButton. Also, the base package of the generated components were changed to com.vaadin.generated.

Demos

Tutorials

All changes

https://github.com/vaadin/flow/milestone/41?closed=1

Model converters and type-safe events for generated components

13 Jul 08:24
Compare
Choose a tag to compare

New features

  • Property-types not supported by the TemplateModel can now be converted using ModelConverters with @Convert-annotation.
  • Generated components now support readOnly-properties.
  • Events for generated components now support complex object-types.
  • Generated listeners now return the correct event-type instead of a generic one.
  • Code snippets of generated components are now parsed directly from the source code.
  • There is now a project skeleton to be used as a starting-point for new Flow-based applications: https://github.com/vaadin/flow-application-skeleton

Fixes

  • Now the generator generates documentation for method call parameters for generated components.
  • Inline-resources now work with frontend://-protocol.
  • History.pushState and History.replaceState don't reset the scroll position anymore.
  • When using @Id, you can use <style>-tags in the template without breaking Flow.

Breaking changes

  • TemplateModel doesn't accept empty beans anymore.

Tutorials

  • Updated the tutorial about ES5-compilation clarifying the usage of the index.html-file.

All changes

https://github.com/vaadin/flow/milestone/40?closed=1

Inlining resources and generator improvements

06 Jul 11:31
Compare
Choose a tag to compare

New features

  • Inlining of JavaScript and stylesheet files is now supported with LoadMode.INLINE
  • Generated components now support slots
  • webcomponents-loader is now being used instead of the full set of WebComponent polyfills
  • Generated components now automatically add the @Synchronized annotation to getters which are mapped to change events

Fixes

  • Vaadin Push JavaScript dependency is now served correctly in production mode

Tutorials

All changes

https://github.com/vaadin/flow/milestone/39?closed=1

Development Workflow Improvements and Components Demo Code Snippets

29 Jun 10:02
Compare
Choose a tag to compare

New features

  • Prevent browser from caching templates while developing
    • Now template changes are picked up after reload even if caching is not disabled in browser
  • Generated Components Demo now displays the code for each sample
  • Generated Components now produce protected API for methods that have a return type
    • This allows to see what is not supported, and create a workaround for those in an extending class

Fixes

  • Provide full bean name for proxied classes for easier debugging
  • Do not break client side engine if page.executeJavaScript() invocation throws an error
  • Do not scroll to page top for each server response, but only when the URL has changed

Tutorials

All changes

https://github.com/vaadin/flow/milestone/38?closed=1

Improved Java API generation

22 Jun 10:59
Compare
Choose a tag to compare
Pre-release

New features

  • New generated components: <paper-card>, <paper-progress>, and <paper-spinner>
  • Generated component demo has been improved
  • https://github.com/vaadin/flow-hello-world has been updated to better showcase that there are multiple ways of creating components
  • Added generator support for cases where a property or method parameter can have multiple types
  • Generated setters are fluid to allow chaining
  • Event handling in generated components is now more typesafe
  • All generated components are now defined to have a license header

Fixes

  • HTML imports included in the initial HTML page are now placed after the polyfill
  • Template parser will no longer try to load template files from the wrong location
  • Missing type information is ignored instead of causing the generator to fail
  • Prevent the page from being scrolled to the top already when clicking a router link
  • Code blocks in generated JavaDocs are formatted properly
  • Removed some cases where objects were created prematurely, most notably view instances that wouldn't be used
  • Fixed some weird cases related to anchor URLs

Tutorials

  • Fixed some cases where tutorial code didn't define any type parameter for the model type in PolymerTemplate implementations.
  • Updated the described DOM structure to be in sync with what the Java code in Creating a Component Based on Many Elements

All changes

https://github.com/vaadin/flow/milestone/37?closed=1

Component generator demo and metadata, URI resolving from JavaScript, and HTML imports in the initial HTML

15 Jun 10:46
Compare
Choose a tag to compare

New features

  • Component API generator enhancements
    • Added a flow-components-demo module that shows how the generated APIs are used
    • Updated to use Polymer Analyzer 2.0
    • Added metadata to generated classes, e.g. @HtmlImport, @Tag, JavaDocs, license header and version information
    • baseUrl setting is considered when determining the Java package of a generated class
  • @Id can be used for Element fields in addition to previously supported Component subclasses.
  • Server-side component instances are automatically created for corresponding elements in the HTML of PolymerTemplate instances.
    • Still only limited functionality, doesn't work together with e.g. <dom-repeat> or <dom-if>.
  • The webcomponents polyfill is loaded from the application's own bower_components directory instead of using an (outdated) version bundled with Flow.
  • Added window.vaadin.resolveUri for resolving Vaadin URIs from JavaScript.
  • Non-lazy HTML imports encountered during the initial request are added directly to the initial HTML instead of being injected dynamically from JavaScript.

Fixes

  • Hyphens and underscores are properly converted to camelCase in generated code.

Breaking changes

  • Initial HTML imports will be loaded at an earlier phase than previously. This will cause issues e.g. if the HTML import assumes that document.body is defined.

All changes

https://github.com/vaadin/flow/milestone/36?closed=1

Component API generator enablers

08 Jun 07:51
Compare
Choose a tag to compare
Pre-release

New features

  • Initial version of component API generation based on JSON metadata about a web component
    • Still missing automatic JSON generation from the analyzer
  • Updated Atmosphere to 2.4.5.vaadin2 to keep in sync with Vaadin Framework 8.x

Fixes

  • Fixed some cases where the effective server-side and client-side model values could become out of sync

All changes

https://github.com/vaadin/flow/milestone/35?closed=1

Also all thanks to @gerald24 for the first external contribution done to Flow :-)

Yet another set of misc changes and fixes

01 Jun 14:49
Compare
Choose a tag to compare

New features

  • HTML template corresponding to each PolymerTemplate is parsed to verify that there's actually an element corresponding to any @Id annotation value.
  • Integrated initial version of a code generator that will eventually be used for generating Java APIs for all Core Elements
  • Imported contribution guidelines from Vaadin Framework 8 and adjusted to suit Flow
  • BootstrapListener now has access to VaadinUriResolver.

Fixes

  • Fixed a case where @Id injected elements were not fully functional in all cases
  • Fixed path resolution on Windows for legacy AngularTemplate cases.
  • PolymerTemplate no longer inherits a broken implementation of HasChildView.setChildView(View).

Breaking changes

  • PolymerTemplate no longer directly inherits HasChildView.
  • Some constants have been moved between com.vaadin.server.Constants and com.vaadin.shared. ApplicationConstants.

Demos

All changes

https://github.com/vaadin/flow/milestone/34?closed=1

Production mode and bugfixes

26 May 12:27
Compare
Choose a tag to compare
Pre-release

New features

  • When not in production mode, frontend:// URLs will be resolved based on the assumed location of the original file instead of resolving to a URL in /es6/ or /es5/. Thanks to this, changes to the application's own template files are used immediately without any separate build steps.
  • New flow-server-production-mode dependency that automatically sets the app to run in production mode if present on the classpath.

Fixes

  • All traces of Polymer 1 have been removed.
  • Model objects exposed to JavaScript are created with the standard Object prototype so that e.g. toString is available.
  • Model objects exposed to JavaScript will no longer have enumerable properties for Flow metadata.
  • Removed excessive logging about excessive imports.
  • Fixed an IE11 compatibility issue
  • The UI.getElement() now works as any other element.

Breaking changes

  • com.vaadin.flow.dom.EventRegistrationHandle has been renamed to com.vaadin.shared.Registration for consistency with Vaadin Framework 8.
  • Node.attachExistingElement has been removed.
  • Prerendering has been removed

Demos

  • All demos updated to not need rebuilding to pick up changes to HTML template files

Tutorials

  • Updated Maven setup tutorial to reflect recent changes

All changes

https://github.com/vaadin/flow/milestone/33?closed=1