mirror of
https://github.com/flutter/samples.git
synced 2025-11-08 13:58:47 +00:00
Bumps [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) from 19.2.14 to 20.0.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/angular/angular/releases"><code>@angular/router</code>'s releases</a>.</em></p> <blockquote> <h2>20.0.3</h2> <p>No release notes provided.</p> <h2>20.0.2</h2> <h3>core</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="1e8158baee"><img src="https://img.shields.io/badge/1e8158baee-fix-green" alt="fix - 1e8158baee" /></a></td> <td>components marked for traversal resets reactive context (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61663">#61663</a>)</td> </tr> <tr> <td><a href="1cd23be57e"><img src="https://img.shields.io/badge/1cd23be57e-fix-green" alt="fix - 1cd23be57e" /></a></td> <td>unregister <code>onDestroy</code> in <code>outputToObservable</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61882">#61882</a>)</td> </tr> </tbody> </table> <h2>20.0.1</h2> <h3>compiler</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="66a0ec6510"><img src="https://img.shields.io/badge/66a0ec6510-fix-green" alt="fix - 66a0ec6510" /></a></td> <td>move defer trigger assertions out of parser (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61747">#61747</a>)</td> </tr> <tr> <td><a href="8ecb1ba027"><img src="https://img.shields.io/badge/8ecb1ba027-fix-green" alt="fix - 8ecb1ba027" /></a></td> <td>recover invalid parenthesized expressions (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61815">#61815</a>)</td> </tr> </tbody> </table> <h3>core</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="8c60cbfd1c"><img src="https://img.shields.io/badge/8c60cbfd1c-fix-green" alt="fix - 8c60cbfd1c" /></a></td> <td><code>takeUntilDestroyed</code> completes immediately if DestroyRef already destroyed (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61847">#61847</a>)</td> </tr> <tr> <td><a href="b1d960d082"><img src="https://img.shields.io/badge/b1d960d082-fix-green" alt="fix - b1d960d082" /></a></td> <td>produce an error when incremental hydration is expected, but not configured (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61741">#61741</a>)</td> </tr> <tr> <td><a href="b4ed62ddf6"><img src="https://img.shields.io/badge/b4ed62ddf6-fix-green" alt="fix - b4ed62ddf6" /></a></td> <td>properly handle the case where getSignalGraph is called on a componentless NodeInjector (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/60772">#60772</a>)</td> </tr> <tr> <td><a href="ddd22bea48"><img src="https://img.shields.io/badge/ddd22bea48-fix-green" alt="fix - ddd22bea48" /></a></td> <td>unregister <code>onDestroy</code> in <code>ResourceImpl</code> when <code>destroy()</code> is called (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61870">#61870</a>)</td> </tr> <tr> <td><a href="5c31e7e28d"><img src="https://img.shields.io/badge/5c31e7e28d-fix-green" alt="fix - 5c31e7e28d" /></a></td> <td>unregister <code>onDestroy</code> when observable errors in <code>toSignal</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61596">#61596</a>)</td> </tr> </tbody> </table> <h3>migrations</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="e9820a6d48"><img src="https://img.shields.io/badge/e9820a6d48-fix-green" alt="fix - e9820a6d48" /></a></td> <td>avoid trailing whitespaces in unused imports migration (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61698">#61698</a>)</td> </tr> </tbody> </table> <h3>service-worker</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="b93fa22f25"><img src="https://img.shields.io/badge/b93fa22f25-fix-green" alt="fix - b93fa22f25" /></a></td> <td>prevent duplicate fetches during concurrent update checks (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61443">#61443</a>)</td> </tr> <tr> <td><a href="9743bd1317"><img src="https://img.shields.io/badge/9743bd1317-fix-green" alt="fix - 9743bd1317" /></a></td> <td>update service worker to handle seeking better for videos (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/60029">#60029</a>)</td> </tr> </tbody> </table> <h2>20.0.0</h2> <p>Blog post: <a href="https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301">https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301</a></p> <h3>common</h3> <table> <thead> <tr> <th>Commit</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="2e5362a469"><img src="https://img.shields.io/badge/2e5362a469-feat-blue" alt="feat - 2e5362a469" /></a></td> <td>accept undefined inputs in NgTemplateOutlet (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61404">#61404</a>)</td> </tr> <tr> <td><a href="b7d3f3dbfc"><img src="https://img.shields.io/badge/b7d3f3dbfc-feat-blue" alt="feat - b7d3f3dbfc" /></a></td> <td>Allow passing ScrollOptions to ViewportScroller (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61002">#61002</a>)</td> </tr> <tr> <td><a href="74cceba587"><img src="https://img.shields.io/badge/74cceba587-feat-blue" alt="feat - 74cceba587" /></a></td> <td>throw error for suspicious date patterns (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/59798">#59798</a>)</td> </tr> <tr> <td><a href="255c79e048"><img src="https://img.shields.io/badge/255c79e048-fix-green" alt="fix - 255c79e048" /></a></td> <td>cleanup <code>updateLatestValue</code> if view is destroyed before promise resolves (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/58041">#58041</a>)</td> </tr> <tr> <td><a href="739cadae62"><img src="https://img.shields.io/badge/739cadae62-fix-green" alt="fix - 739cadae62" /></a></td> <td>Handle errors in async pipe subscriptions (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/60057">#60057</a>)</td> </tr> <tr> <td><a href="cbbea70fa3"><img src="https://img.shields.io/badge/cbbea70fa3-fix-green" alt="fix - cbbea70fa3" /></a></td> <td>issue a warning instead of an error when <code>NgOptimizedImage</code> exceeds the preload limit (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/60879">#60879</a>)</td> </tr> <tr> <td><a href="fc4a56d5c5"><img src="https://img.shields.io/badge/fc4a56d5c5-fix-green" alt="fix - fc4a56d5c5" /></a></td> <td>rename httpResource function in factory (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/60022">#60022</a>)</td> </tr> <tr> <td><a href="785a1110e6"><img src="https://img.shields.io/badge/785a1110e6-fix-green" alt="fix - 785a1110e6" /></a></td> <td>resolve host binding type issues (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/60481">#60481</a>)</td> </tr> </tbody> </table> <h3>compiler</h3> <p>| Commit | Description |</p> </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/router</code>'s changelog</a>.</em></p> <blockquote> <h1>20.0.3 (2025-06-11)</h1> <h1>20.0.2 (2025-06-06)</h1> <h3>core</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="1e8158baee">1e8158baee</a></td> <td>fix</td> <td>components marked for traversal resets reactive context (<a href="https://redirect.github.com/angular/angular/pull/61663">#61663</a>)</td> </tr> <tr> <td><a href="1cd23be57e">1cd23be57e</a></td> <td>fix</td> <td>unregister <code>onDestroy</code> in <code>outputToObservable</code> (<a href="https://redirect.github.com/angular/angular/pull/61882">#61882</a>)</td> </tr> </tbody> </table> <h1>20.1.0-next.0 (2025-06-04)</h1> <h3>compiler</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="5a76826d26">5a76826d26</a></td> <td>fix</td> <td>only report parser errors on invalid expression (<a href="https://redirect.github.com/angular/angular/pull/61793">#61793</a>)</td> </tr> <tr> <td><a href="e9fcbb8af1">e9fcbb8af1</a></td> <td>fix</td> <td>remove TypeScript from linker (<a href="https://redirect.github.com/angular/angular/pull/61618">#61618</a>)</td> </tr> </tbody> </table> <h3>compiler-cli</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="e62fb359d6">e62fb359d6</a></td> <td>feat</td> <td>add experimental support for fast type declaration emission (<a href="https://redirect.github.com/angular/angular/pull/61334">#61334</a>)</td> </tr> <tr> <td><a href="0cf1001715">0cf1001715</a></td> <td>feat</td> <td>support host directives with direct external references in fast type declaration emission (<a href="https://redirect.github.com/angular/angular/pull/61469">#61469</a>)</td> </tr> <tr> <td><a href="77fa204ad1">77fa204ad1</a></td> <td>fix</td> <td>rename flag for enabling fast type declaration emission (<a href="https://redirect.github.com/angular/angular/pull/61353">#61353</a>)</td> </tr> <tr> <td><a href="c439d6938d">c439d6938d</a></td> <td>fix</td> <td>symbol builder duplicating host directives (<a href="https://redirect.github.com/angular/angular/pull/61240">#61240</a>)</td> </tr> <tr> <td><a href="3e1baa5a95">3e1baa5a95</a></td> <td>fix</td> <td>typo in NG2026 message (<a href="https://redirect.github.com/angular/angular/pull/61325">#61325</a>)</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="8163a8995e">8163a8995e</a></td> <td>feat</td> <td>Add <code>destroyed</code> property on <code>DestroyRef</code> (<a href="https://redirect.github.com/angular/angular/pull/61849">#61849</a>)</td> </tr> <tr> <td><a href="4356e85456">4356e85456</a></td> <td>fix</td> <td>fakeAsync should not depend on module import order (<a href="https://redirect.github.com/angular/angular/pull/61375">#61375</a>)</td> </tr> <tr> <td><a href="583b9a7be5">583b9a7be5</a></td> <td>fix</td> <td>missing useExisting providers throwing for optional calls (<a href="https://redirect.github.com/angular/angular/pull/61137">#61137</a>)</td> </tr> <tr> <td><a href="8f65223bd8">8f65223bd8</a></td> <td>fix</td> <td>update min Node.js support to 20.19, 22.12, and 24.0 (<a href="https://redirect.github.com/angular/angular/pull/61499">#61499</a>)</td> </tr> <tr> <td><a href="b785256b9e">b785256b9e</a></td> <td>perf</td> <td>avoid intermediate arrays in definition (<a href="https://redirect.github.com/angular/angular/pull/61445">#61445</a>)</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="610bebfce9">610bebfce9</a></td> <td>fix</td> <td>Allow ControlState as reset arguments for <code>FormGroup</code>/<code>FormRecord</code> (<a href="https://redirect.github.com/angular/angular/pull/55860">#55860</a>)</td> </tr> </tbody> </table> <h3>language-service</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="cf55d1bdd4">cf55d1bdd4</a></td> <td>feat</td> <td>Support importing the external module's export about the angular metadata. (<a href="https://redirect.github.com/angular/angular/pull/61122">#61122</a>)</td> </tr> </tbody> </table> <h3>service-worker</h3> <table> <thead> <tr> <th>Commit</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><a href="c67dbda8ff">c67dbda8ff</a></td> <td>feat</td> <td>support notification closes (<a href="https://redirect.github.com/angular/angular/pull/61442">#61442</a>)</td> </tr> <tr> <td><a href="6e1df54799">6e1df54799</a></td> <td>feat</td> <td>support push subscription changes (<a href="https://redirect.github.com/angular/angular/pull/61856">#61856</a>)</td> </tr> </tbody> </table> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="8564cf48d8"><code>8564cf4</code></a> build: replace all <code>ng_package</code> with new rule from <code>rules_angular</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61862">#61862</a>)</li> <li><a href="4eb535863e"><code>4eb5358</code></a> docs(router): Update view transition types to dev preview (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61787">#61787</a>)</li> <li><a href="e910893fa6"><code>e910893</code></a> build: adjust bundling tests to use Angular CLI</li> <li><a href="88c70ebc7b"><code>88c70eb</code></a> refactor(platform-browser): replace <code>platform-browser-dynamic</code> with `platfor...</li> <li><a href="58532c7602"><code>58532c7</code></a> build: migrate router to use rules_js (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61543">#61543</a>)</li> <li><a href="30e081287d"><code>30e0812</code></a> fix(core): update min Node.js support to 20.19, 22.12, and 24.0 (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61500">#61500</a>)</li> <li><a href="3433021475"><code>3433021</code></a> build: move private testing helpers outside <code>platform-browser/testing</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61476">#61476</a>)</li> <li><a href="f7bfdc75dc"><code>f7bfdc7</code></a> refactor(router): add return types to exported functions (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61310">#61310</a>)</li> <li><a href="1b4b44e476"><code>1b4b44e</code></a> refactor: add explicit types for exports relying on inferred call return type...</li> <li><a href="4d35670aba"><code>4d35670</code></a> docs: rename <code>@nodoc</code> to <code>@docs-private</code> (<a href="https://github.com/angular/angular/tree/HEAD/packages/router/issues/61194">#61194</a>)</li> <li>Additional commits viewable in <a href="https://github.com/angular/angular/commits/20.0.3/packages/router">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!)