mirror of
https://github.com/flutter/samples.git
synced 2026-03-22 12:28:11 +00:00
Bumps [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) from 20.3.16 to 21.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@angular/forms</code>'s releases</a>.</em></p> <blockquote> <h2>VSCode Extension: 21.1.0</h2> <h2>21.1.0 (2026-01-12)</h2> <ul> <li>fix(vscode-extension): convert enum member kind in completions correctly (<a href="50674f8c28">50674f8c28</a>)</li> </ul> <h2>21.1.0</h2> <h3>common</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="d8790972be"><img src="https://img.shields.io/badge/d8790972be-feat-blue" alt="feat - d8790972be" /></a></td> <td>Add custom transformations for Cloudflare and Cloudinary image loaders</td> </tr> <tr> <td><a href="a6b8cb68af"><img src="https://img.shields.io/badge/a6b8cb68af-feat-blue" alt="feat - a6b8cb68af" /></a></td> <td>support custom transformations in ImageKit and Imgix loaders</td> </tr> </tbody> </table> <h3>compiler</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="640693da8e"><img src="https://img.shields.io/badge/640693da8e-feat-blue" alt="feat - 640693da8e" /></a></td> <td>Add support for multiple swich cases matching</td> </tr> <tr> <td><a href="0ad3adc7c6"><img src="https://img.shields.io/badge/0ad3adc7c6-fix-green" alt="fix - 0ad3adc7c6" /></a></td> <td>Support empty cases</td> </tr> </tbody> </table> <h3>core</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="99ad18a4ee"><img src="https://img.shields.io/badge/99ad18a4ee-feat-blue" alt="feat - 99ad18a4ee" /></a></td> <td>Add stability debugging utility</td> </tr> <tr> <td><a href="a0dfa5fa86"><img src="https://img.shields.io/badge/a0dfa5fa86-feat-blue" alt="feat - a0dfa5fa86" /></a></td> <td>support rest arguments in function calls</td> </tr> <tr> <td><a href="6e18fa8bc9"><img src="https://img.shields.io/badge/6e18fa8bc9-feat-blue" alt="feat - 6e18fa8bc9" /></a></td> <td>support spread elements in array literals</td> </tr> <tr> <td><a href="e407280ab5"><img src="https://img.shields.io/badge/e407280ab5-feat-blue" alt="feat - e407280ab5" /></a></td> <td>support spread expressions in object literals</td> </tr> <tr> <td><a href="06be8034bb"><img src="https://img.shields.io/badge/06be8034bb-fix-green" alt="fix - 06be8034bb" /></a></td> <td>Microtask scheduling should be used after any application synchronization</td> </tr> <tr> <td><a href="b4f584cf42"><img src="https://img.shields.io/badge/b4f584cf42-fix-green" alt="fix - b4f584cf42" /></a></td> <td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></td> </tr> </tbody> </table> <h3>forms</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="1ea5c97703"><img src="https://img.shields.io/badge/1ea5c97703-feat-blue" alt="feat - 1ea5c97703" /></a></td> <td>allow focusing bound control from field state</td> </tr> </tbody> </table> <h3>platform-browser</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="ec9dc94cee"><img src="https://img.shields.io/badge/ec9dc94cee-feat-blue" alt="feat - ec9dc94cee" /></a></td> <td>add <code>context</code> to <code>createApplication</code></td> </tr> <tr> <td><a href="ab67988d2e"><img src="https://img.shields.io/badge/ab67988d2e-feat-blue" alt="feat - ab67988d2e" /></a></td> <td>resolve JIT resources in <code>createApplication</code></td> </tr> </tbody> </table> <h3>router</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="5edceffd04"><img src="https://img.shields.io/badge/5edceffd04-feat-blue" alt="feat - 5edceffd04" /></a></td> <td>add controls for route cleanup</td> </tr> <tr> <td><a href="a03c82564d"><img src="https://img.shields.io/badge/a03c82564d-feat-blue" alt="feat - a03c82564d" /></a></td> <td>Add scroll behavior controls on router navigation</td> </tr> <tr> <td><a href="e44839b016"><img src="https://img.shields.io/badge/e44839b016-feat-blue" alt="feat - e44839b016" /></a></td> <td>Add standalone function to create a comptued for isActive</td> </tr> <tr> <td><a href="c25d749d85"><img src="https://img.shields.io/badge/c25d749d85-feat-blue" alt="feat - c25d749d85" /></a></td> <td>Execute RunGuardsAndResolvers function in injection context</td> </tr> <tr> <td><a href="1c00ab42f8"><img src="https://img.shields.io/badge/1c00ab42f8-feat-blue" alt="feat - 1c00ab42f8" /></a></td> <td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td> </tr> <tr> <td><a href="7003e8d241"><img src="https://img.shields.io/badge/7003e8d241-feat-blue" alt="feat - 7003e8d241" /></a></td> <td>Publish Router's integration with platform Navigation API as experimental</td> </tr> <tr> <td><a href="c84d372778"><img src="https://img.shields.io/badge/c84d372778-feat-blue" alt="feat - c84d372778" /></a></td> <td>Support wildcard params with segments trailing (<a href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/64737">#64737</a>)</td> </tr> </tbody> </table> <h3>upgrade</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="75fe8f8af9"><img src="https://img.shields.io/badge/75fe8f8af9-refactor-yellow" alt="refactor - 75fe8f8af9" /></a></td> <td>deprecate <code>VERSION</code> export</td> </tr> </tbody> </table> <h2>Deprecations</h2> <h3>upgrade</h3> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/angular/angular/blob/main/CHANGELOG.md"><code>@angular/forms</code>'s changelog</a>.</em></p> <blockquote> <h1>21.1.0 (2026-01-14)</h1> <h2>Deprecations</h2> <h3>upgrade</h3> <ul> <li><code>VERSION</code> from <code>@angular/upgrade</code> is deprecated. Please use the entry from <code>@angular/upgrade/static</code> instead.</li> </ul> <h3>common</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="d8790972be">d8790972be</a></td> <td>feat</td> <td>Add custom transformations for Cloudflare and Cloudinary image loaders</td> </tr> <tr> <td><a href="a6b8cb68af">a6b8cb68af</a></td> <td>feat</td> <td>support custom transformations in ImageKit and Imgix loaders</td> </tr> </tbody> </table> <h3>compiler</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="640693da8e">640693da8e</a></td> <td>feat</td> <td>Add support for multiple swich cases matching</td> </tr> <tr> <td><a href="0ad3adc7c6">0ad3adc7c6</a></td> <td>fix</td> <td>Support empty cases</td> </tr> </tbody> </table> <h3>core</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="99ad18a4ee">99ad18a4ee</a></td> <td>feat</td> <td>Add stability debugging utility</td> </tr> <tr> <td><a href="a0dfa5fa86">a0dfa5fa86</a></td> <td>feat</td> <td>support rest arguments in function calls</td> </tr> <tr> <td><a href="6e18fa8bc9">6e18fa8bc9</a></td> <td>feat</td> <td>support spread elements in array literals</td> </tr> <tr> <td><a href="e407280ab5">e407280ab5</a></td> <td>feat</td> <td>support spread expressions in object literals</td> </tr> <tr> <td><a href="06be8034bb">06be8034bb</a></td> <td>fix</td> <td>Microtask scheduling should be used after any application synchronization</td> </tr> <tr> <td><a href="b4f584cf42">b4f584cf42</a></td> <td>fix</td> <td>return <code>StaticProvider</code> for <code>providePlatformInitializer</code></td> </tr> </tbody> </table> <h3>forms</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="1ea5c97703">1ea5c97703</a></td> <td>feat</td> <td>allow focusing bound control from field state</td> </tr> </tbody> </table> <h3>platform-browser</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="ec9dc94cee">ec9dc94cee</a></td> <td>feat</td> <td>add <code>context</code> to <code>createApplication</code></td> </tr> <tr> <td><a href="ab67988d2e">ab67988d2e</a></td> <td>feat</td> <td>resolve JIT resources in <code>createApplication</code></td> </tr> </tbody> </table> <h3>router</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="5edceffd04">5edceffd04</a></td> <td>feat</td> <td>add controls for route cleanup</td> </tr> <tr> <td><a href="a03c82564d">a03c82564d</a></td> <td>feat</td> <td>Add scroll behavior controls on router navigation</td> </tr> <tr> <td><a href="e44839b016">e44839b016</a></td> <td>feat</td> <td>Add standalone function to create a comptued for isActive</td> </tr> <tr> <td><a href="c25d749d85">c25d749d85</a></td> <td>feat</td> <td>Execute RunGuardsAndResolvers function in injection context</td> </tr> <tr> <td><a href="1c00ab42f8">1c00ab42f8</a></td> <td>feat</td> <td>extend paramters of RedirectFunction to include paramMap and queryParamMap</td> </tr> <tr> <td><a href="7003e8d241">7003e8d241</a></td> <td>feat</td> <td>Publish Router's integration with platform Navigation API as experimental</td> </tr> <tr> <td><a href="c84d372778">c84d372778</a></td> <td>feat</td> <td>Support wildcard params with segments trailing (<a href="https://redirect.github.com/angular/angular/pull/64737">#64737</a>)</td> </tr> </tbody> </table> <h3>upgrade</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="75fe8f8af9">75fe8f8af9</a></td> <td>refactor</td> <td>deprecate <code>VERSION</code> export</td> </tr> </tbody> </table> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="1ea5c97703"><code>1ea5c97</code></a> feat(forms): allow focusing bound control from field state</li> <li><a href="532633301b"><code>5326333</code></a> fix(forms): Ensure the control instruction comes after the other bindings</li> <li><a href="8474277b49"><code>8474277</code></a> test(forms): improve test coverage for multiple pattern validators</li> <li><a href="5ad2e1bae0"><code>5ad2e1b</code></a> docs: replace old <a href="https://angular.io/license">https://angular.io/license</a> with <a href="https://angular.dev/license">https://angular.dev/license</a></li> <li><a href="03e2b36826"><code>03e2b36</code></a> refactor(core): update error message links to versioned docs (<a href="https://github.com/angular/angular/tree/HEAD/packages/forms/issues/66374">#66374</a>)</li> <li><a href="29f074a93f"><code>29f074a</code></a> fix(forms): Rename signal form [field] to [formField]</li> <li><a href="0c23d02944"><code>0c23d02</code></a> docs(forms): Clarify returning errors from submit functions</li> <li><a href="46dbd18566"><code>46dbd18</code></a> refactor(forms): remove <code>customError()</code></li> <li><a href="b2f417585a"><code>b2f4175</code></a> docs: update angular.io links to angular.dev in comments, TSDoc, and warnings</li> <li><a href="e7d99f02cb"><code>e7d99f0</code></a> fix(forms): clean up abort listener after timeout</li> <li>Additional commits viewable in <a href="https://github.com/angular/angular/commits/v21.1.0/packages/forms">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
web_embedding
This directory contains examples of how to embed Flutter in web apps (without iframes):
- element_embedding_demo: Modifies the index.html of a flutter app so it is
launched in a custom
hostElement. This is the most basic embedding example. - ng-flutter: A simple Angular app (and component) that replicates the above example, but in an Angular style.
Check the README.md of each example for more details on how to run it, and the
"Points of Interest" it may contain.
Community Contributions
Members of the community have graciously ported and contributed the following examples of Flutter Web embedding into other web frameworks:
| Author | Host Framework | Code |
|---|---|---|
| @p-mazhnik | React JS | p-mazhnik/flutter-embedding cra-flutter |
| @p-mazhnik | React Native | p-mazhnik/flutter-embedding expo-flutter |
(All contributions are welcome! Please, create an issue or open a PR to let us know how you've embedded a Flutter Web app with your favorite web framework (Vue? Svelte? Ember? Aurelia? jQuery? MooTools? Prototype?), so it can be added to the table above!)