angular/packages
Andrew Scott 53ca936366 feat(router): Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877)
This exposes a new function from the router public API that allows
developers to create a `UrlTree` from _any_ `ActivatedRouteSnapshot`.
The current Router APIs only support creating a `UrlTree` from an
`ActivatedRoute` which is both active _and_ materially appears in the
`UrlTree` (it cannot be an empty path named outlet). This is because the
implementation of the current way of creating a `UrlTree` attempts to
look up the `UrlSegment` of the `ActivatedRoute` in the currently active
`UrlTree` of the router. When this doesn't work, the `UrlTree` creation
fails.

Note that this API does not replace the current one. That would actually be a
breaking change but should be done at some point in the future (v15). That is,
`router.navigate` should call this new function. At that point, we can
remove `_lastPathIndex`, `_urlSegment`, and `_correctedPathIndex` from
the `ActivatedRoute`, along with all of the logic associated with
determining what those should be. In addition, this would unblock a fix
for #26081 because the `applyRedirects` and `recognize` operations
could be combined into one.  Overall, this would simplify logic in the router
and reduce code size. It also exposes core routing capabilities as a helper function
which were previously private API, which is a necessary step towards #42953.

As a stress test for this new function, it _was_ swapped in as the
default for `UrlTree` creation in #45859 and tested internally. The
results indicate that this function behaves correctly.

resolves #42191 (Tested directly)
resolves #38276 (The test with a guard covers this case)
resolves #22763 (Tested directly)

PR Close #45877
2022-05-24 10:40:24 -07:00
..
animations feat(bazel): speed up dev-turnaround by bundling types only when packaging (#45405) 2022-04-21 11:09:39 -07:00
bazel perf(bazel): use allowedInputs to avoid fs.stat (#46069) 2022-05-24 10:39:17 -07:00
benchpress build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00
common docs: make structural directives guide generic (#44895) 2022-05-23 13:44:41 -07:00
compiler fix(compiler): exclude empty styles from emitted metadata (#45459) 2022-05-03 09:38:36 -07:00
compiler-cli refactor(compiler-cli): report better error when a ModuleWithProviders call occurs within Component.imports (#46009) 2022-05-23 13:50:05 -07:00
core feat(router): Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877) 2022-05-24 10:40:24 -07:00
docs refactor: fix various typos across different packages (#44523) 2022-01-07 18:11:10 +00:00
elements feat(core): drop support for Node.js 12 (#45286) 2022-03-08 12:05:03 -08:00
examples refactor(core): drop all .ngfactory and .ngsummary imports (#44957) 2022-02-07 15:31:49 -08:00
forms fix(forms): Warn on FormControls that are constructed with both options and asyncValidators. 2022-05-19 15:49:02 -07:00
language-service fix(language-service): Fix detection of Angular for v14+ projects (#45998) 2022-05-16 10:03:53 -07:00
localize build: lock file maintenance to avoid node module differences for babel types (#45967) 2022-05-20 14:18:09 -07:00
misc/angular-in-memory-web-api build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00
platform-browser perf(platform-browser): avoid including Testability by default in bootstrapApplication (#45885) 2022-05-10 13:34:28 -07:00
platform-browser-dynamic feat(bazel): speed up dev-turnaround by bundling types only when packaging (#45405) 2022-04-21 11:09:39 -07:00
platform-server refactor(core): make Testability compatible with tree-shaking (#45657) 2022-05-05 11:50:23 -07:00
private/testing test: remove Ivy/ViewEngine switch helpers and obsolete tests (#44120) 2021-11-24 19:42:39 +00:00
router feat(router): Add ability to create UrlTree from any ActivatedRouteSnapshot (#45877) 2022-05-24 10:40:24 -07:00
service-worker feat(bazel): speed up dev-turnaround by bundling types only when packaging (#45405) 2022-04-21 11:09:39 -07:00
upgrade feat(bazel): speed up dev-turnaround by bundling types only when packaging (#45405) 2022-04-21 11:09:39 -07:00
zone.js build: update to TypeScript 4.7 RC (#45966) 2022-05-13 09:36:46 -07:00
BUILD.bazel build: Auto-gen tsec tsconfig files (#43440) 2021-09-17 17:17:34 +00:00
circular-deps-test.conf.js refactor: replace deprecated String.prototype.substr() (#45397) 2022-03-24 11:48:09 -07:00
empty.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
goog.d.ts refactor(core): replace references to goog.LOCALE with goog.getLocale() (#43089) 2021-08-10 10:35:26 -07:00
license-banner.txt build: bump license year (#44590) 2022-01-04 12:05:25 -08:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
system.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
tsconfig-build.json build: enable useUnknownInCatchVariables (#44679) 2022-02-01 18:17:29 +00:00
tsconfig-legacy-saucelabs.json build: bundle spec files for saucelabs legacy job (#44281) 2021-11-30 11:56:04 -05:00
tsconfig-test.json build: switch devmode output to es2015 (#44505) 2022-01-05 23:20:20 +00:00
tsconfig-tsec-base.json build: update tsconfigs to use ES2020 as target and module (#43431) 2021-10-01 18:28:42 +00:00
tsconfig.json build: enable useUnknownInCatchVariables (#44679) 2022-02-01 18:17:29 +00:00
tsec-exemption.json build: Enable tsec checks for critical packages. (#43108) 2021-09-13 14:45:57 -07:00
types.d.ts build: update to jasmine 4.0 (#45558) 2022-04-11 16:25:28 +00:00

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT