1
0
mirror of https://github.com/flutter/samples.git synced 2026-06-25 23:58:44 +00:00
Files
samples/web_embedding
dependabot[bot] 0f4c6632f0 Bump @angular/animations from 21.2.17 to 22.0.2 in /web_embedding/ng-flutter (#2860)
Bumps [@angular/animations](https://github.com/angular/angular/tree/HEAD/packages/animations) from 21.2.17 to 22.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/angular/angular/releases">@​angular/animations's releases</a>.</em></p>
<blockquote>
<h2>22.0.2</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="94ea403563"><img src="https://img.shields.io/badge/94ea403563-fix-green" alt="fix - 94ea403563" /></a></td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a href="6c1f3e9d49"><img src="https://img.shields.io/badge/6c1f3e9d49-fix-green" alt="fix - 6c1f3e9d49" /></a></td>
<td>skip transfer cache for uncacheable HTTP traffic (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="6f1171991a"><img src="https://img.shields.io/badge/6f1171991a-fix-green" alt="fix - 6f1171991a" /></a></td>
<td>restrict possible event handler check to property names longer than 2 characters</td>
</tr>
</tbody>
</table>
<h3>core</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="528a34f766"><img src="https://img.shields.io/badge/528a34f766-fix-green" alt="fix - 528a34f766" /></a></td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a href="e17e8d5422"><img src="https://img.shields.io/badge/e17e8d5422-fix-green" alt="fix - e17e8d5422" /></a></td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a href="59dea13f80"><img src="https://img.shields.io/badge/59dea13f80-fix-green" alt="fix - 59dea13f80" /></a></td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
<tr>
<td><a href="3a48abc15c"><img src="https://img.shields.io/badge/3a48abc15c-fix-green" alt="fix - 3a48abc15c" /></a></td>
<td>preserve leave animation for sibling instances sharing a TNode</td>
</tr>
<tr>
<td><a href="93d0a5f95c"><img src="https://img.shields.io/badge/93d0a5f95c-fix-green" alt="fix - 93d0a5f95c" /></a></td>
<td>prevent unsubscribe during emit from throwing off other listeners</td>
</tr>
<tr>
<td><a href="b32ee7ceb3"><img src="https://img.shields.io/badge/b32ee7ceb3-fix-green" alt="fix - b32ee7ceb3" /></a></td>
<td>treat iframe credentialless as security-sensitive</td>
</tr>
<tr>
<td><a href="f902d1d35e"><img src="https://img.shields.io/badge/f902d1d35e-perf-orange" alt="perf - f902d1d35e" /></a></td>
<td>detect existing signal dependency without checking all producer links</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="6867f77ec7"><img src="https://img.shields.io/badge/6867f77ec7-fix-green" alt="fix - 6867f77ec7" /></a></td>
<td>distinguish repeated transfer cache params</td>
</tr>
<tr>
<td><a href="7ef1399068"><img src="https://img.shields.io/badge/7ef1399068-fix-green" alt="fix - 7ef1399068" /></a></td>
<td>skip transfer cache for fetch credentialed requests (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="15314c1736"><img src="https://img.shields.io/badge/15314c1736-fix-green" alt="fix - 15314c1736" /></a></td>
<td>migration skip any target are not build or test</td>
</tr>
</tbody>
</table>
<h2>22.0.1</h2>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="c4b5fa3c92"><img src="https://img.shields.io/badge/c4b5fa3c92-fix-green" alt="fix - c4b5fa3c92" /></a></td>
<td>escape CSS string-terminating characters in escapeCssUrl</td>
</tr>
<tr>
<td><a href="dfff57ede9"><img src="https://img.shields.io/badge/dfff57ede9-fix-green" alt="fix - dfff57ede9" /></a></td>
<td>Limits date format string length</td>
</tr>
<tr>
<td><a href="3c2892c8df"><img src="https://img.shields.io/badge/3c2892c8df-fix-green" alt="fix - 3c2892c8df" /></a></td>
<td>prevent prototype pollution in formatDateTime</td>
</tr>
<tr>
<td><a href="1d87c49f6e"><img src="https://img.shields.io/badge/1d87c49f6e-fix-green" alt="fix - 1d87c49f6e" /></a></td>
<td>use cryptographically secure SHA-256 for transfer cache key generation</td>
</tr>
</tbody>
</table>
<h3>compiler</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="1ee224ca30"><img src="https://img.shields.io/badge/1ee224ca30-fix-green" alt="fix - 1ee224ca30" /></a></td>
<td>disallow i18n event attributes</td>
</tr>
<tr>
<td><a href="a56f1cdf8f"><img src="https://img.shields.io/badge/a56f1cdf8f-fix-green" alt="fix - a56f1cdf8f" /></a></td>
<td>more robust logic to check if regex can be optimized</td>
</tr>
<tr>
<td><a href="5946c18275"><img src="https://img.shields.io/badge/5946c18275-fix-green" alt="fix - 5946c18275" /></a></td>
<td>sanitize <code>href</code>/<code>xlink:href</code> attributes of any element of the MathML namespace</td>
</tr>
<tr>
<td><a href="393b84caf8"><img src="https://img.shields.io/badge/393b84caf8-fix-green" alt="fix - 393b84caf8" /></a></td>
<td>sanitize two-way properties</td>
</tr>
</tbody>
</table>
<h3>compiler-cli</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="3d9ca2f173"><img src="https://img.shields.io/badge/3d9ca2f173-fix-green" alt="fix - 3d9ca2f173" /></a></td>
<td>bind switch exhaustive check expressions</td>
</tr>
</tbody>
</table>
<h3>core</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">@​angular/animations's changelog</a>.</em></p>
<blockquote>
<h1>22.0.2 (2026-06-17)</h1>
<h3>common</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="94ea403563">94ea403563</a></td>
<td>fix</td>
<td>escape anchor fragment in shadow DOM name selector</td>
</tr>
<tr>
<td><a href="6c1f3e9d49">6c1f3e9d49</a></td>
<td>fix</td>
<td>skip transfer cache for uncacheable HTTP traffic (<a href="https://redirect.github.com/angular/angular/pull/69316">#69316</a>)</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="6f1171991a">6f1171991a</a></td>
<td>fix</td>
<td>restrict possible event handler check to property names longer than 2 characters</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="528a34f766">528a34f766</a></td>
<td>fix</td>
<td>avoid caching missing locale data</td>
</tr>
<tr>
<td><a href="e17e8d5422">e17e8d5422</a></td>
<td>fix</td>
<td>escape overlapping comment delimiters in escapeCommentText</td>
</tr>
<tr>
<td><a href="59dea13f80">59dea13f80</a></td>
<td>fix</td>
<td>guard against DOM clobbering in declareExperimentalWebMcpTool</td>
</tr>
<tr>
<td><a href="3a48abc15c">3a48abc15c</a></td>
<td>fix</td>
<td>preserve leave animation for sibling instances sharing a TNode</td>
</tr>
<tr>
<td><a href="93d0a5f95c">93d0a5f95c</a></td>
<td>fix</td>
<td>prevent unsubscribe during emit from throwing off other listeners</td>
</tr>
<tr>
<td><a href="b32ee7ceb3">b32ee7ceb3</a></td>
<td>fix</td>
<td>treat iframe credentialless as security-sensitive</td>
</tr>
<tr>
<td><a href="f902d1d35e">f902d1d35e</a></td>
<td>perf</td>
<td>detect existing signal dependency without checking all producer links</td>
</tr>
</tbody>
</table>
<h3>http</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="6867f77ec7">6867f77ec7</a></td>
<td>fix</td>
<td>distinguish repeated transfer cache params</td>
</tr>
<tr>
<td><a href="7ef1399068">7ef1399068</a></td>
<td>fix</td>
<td>skip transfer cache for fetch credentialed requests (<a href="https://redirect.github.com/angular/angular/pull/69316">#69316</a>)</td>
</tr>
</tbody>
</table>
<h3>migrations</h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="15314c1736">15314c1736</a></td>
<td>fix</td>
<td>migration skip any target are not build or test</td>
</tr>
</tbody>
</table>
<h1>22.1.0-next.0 (2026-06-10)</h1>
<h2>Deprecations</h2>
<h3>http</h3>
<ul>
<li><code>HttpClient.jsonp</code>, <code>HttpClientJsonpModule</code>, and related JSONP classes/functions are deprecated. Use standard HTTP requests 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="1ad6824d0d">1ad6824d0d</a></td>
<td>fix</td>
<td>skip transfer cache for uncacheable HTTP traffic (<a href="https://redirect.github.com/angular/angular/pull/69017">#69017</a>)</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="25c744c4d0">25c744c4d0</a></td>
<td>fix</td>
<td>support foreign components defined outside top-level scope</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="aeb55c8bc1">aeb55c8bc1</a></td>
<td>fix</td>
<td>allow passing uninvoked signals as foreign component props</td>
</tr>
<tr>
<td><a href="7c60a98b3c">7c60a98b3c</a></td>
<td>fix</td>
<td>support import aliases in foreignImports (<a href="https://redirect.github.com/angular/angular/pull/68674">#68674</a>)</td>
</tr>
</tbody>
</table>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="a97d5ec22d"><code>a97d5ec</code></a> build: update minimum supported Node.js versions</li>
<li><a href="ad717dff1d"><code>ad717df</code></a> refactor(core): use the <code>@Service</code> decorator where possible.</li>
<li><a href="b8d3f36ed9"><code>b8d3f36</code></a> feat(compiler-cli): add support for Node.js 26.0.0</li>
<li><a href="667219230a"><code>6672192</code></a> test: remove duplicate tests (<a href="https://github.com/angular/angular/tree/HEAD/packages/animations/issues/67518">#67518</a>)</li>
<li><a href="d550bf713a"><code>d550bf7</code></a> build: update minimum supported Node.js versions</li>
<li>See full diff in <a href="https://github.com/angular/angular/commits/v22.0.2/packages/animations">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular/animations&package-manager=npm_and_yarn&previous-version=21.2.17&new-version=22.0.2)](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 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>
2026-06-18 06:42:04 +00:00
..

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!)