The behavior of the SpyLocation used by the RouterTestingModule has changed
to match the behavior of browsers. It no longer emits a 'popstate' event
when Location.go is called. In addition, simulateHashChange now
triggers both a hashchange and a popstate event.
Tests which use location.go and expect the changes to be picked up by
the Router should likely change to simulateHashChange instead.
Each test is different in what it attempts to assert so there is no
single change that works for all tests. Each test using the SpyLocation to
simulate browser URL changes should be evaluated on a case-by-case basis.
core
TypeScript versions older than 4.4.2 are no longer supported.
NodeJS versions older than v12.20.0 are no longer
supported due to the Angular packages using the NodeJS package exports
feature with subpath patterns.
The WrappedValue class can no longer be imported from @angular/core,
which may result in compile errors or failures at runtime if outdated
libraries are used that are still using WrappedValue. The usage of
WrappedValue should be removed as no replacement is available.
forms
A new type called FormControlStatus has been introduced, which is a union of all possible status strings for form controls. AbstractControl.status has been narrowed from string to FormControlStatus, and statusChanges has been narrowed from Observable<any> to Observable<FormControlStatus>. Most applications should consume the new types seamlessly. Any breakage caused by this change is likely due to one of the following two problems: (1) the app is comparing AbstractControl.status against a string which is not a valid status; or, (2) the app is using statusChanges events as if they were something other than strings.
router
The default url serializer would previously drop
everything after and including a question mark in query parameters. That
is, for a navigation to /path?q=hello?&other=123, the query
params would be parsed to just {q: 'hello'}. This is
incorrect because the URI spec allows for question mark characers in
query data. This change will now correctly parse the params for the
above example to be {v: 'hello?', other: '123'}.
Previously null and undefined inputs for routerLink were
equaivalent to empty string and there was no way to disable the link's
navigation.
In addition, the href is changed from a property HostBinding() to an
attribute binding (HostBinding('attr.href')). The effect of this
change is that DebugElement.properties['href'] will now return the
href value returned by the native element which will be the full URL
rather than the internal value of the RouterLinkhref property.
The router will no longer replace the browser URL when a new navigation
cancels an ongoing navigation. This often causes URL flicker and was
only in place to support some AngularJS hybrid applications. Hybrid
applications which rely on the navigationId being present on initial
navigations that were handled by the Angular router should instead
The behavior of the SpyLocation used by the RouterTestingModule has changed
to match the behavior of browsers. It no longer emits a 'popstate' event
when Location.go is called. In addition, simulateHashChange now
triggers both a hashchange and a popstate event.
Tests which use location.go and expect the changes to be picked up by
the Router should likely change to simulateHashChange instead.
Each test is different in what it attempts to assert so there is no
single change that works for all tests. Each test using the SpyLocation to
simulate browser URL changes should be evaluated on a case-by-case basis.
core
TypeScript versions older than 4.4.2 are no longer supported.
NodeJS versions older than v12.20.0 are no longer
supported due to the Angular packages using the NodeJS package exports
feature with subpath patterns.
The WrappedValue class can no longer be imported from @angular/core,
which may result in compile errors or failures at runtime if outdated
libraries are used that are still using WrappedValue. The usage of
WrappedValue should be removed as no replacement is available.
forms
A new type called FormControlStatus has been introduced, which is a union of all possible status strings for form controls. AbstractControl.status has been narrowed from string to FormControlStatus, and statusChanges has been narrowed from Observable<any> to Observable<FormControlStatus>. Most applications should consume the new types seamlessly. Any breakage caused by this change is likely due to one of the following two problems: (1) the app is comparing AbstractControl.status against a string which is not a valid status; or, (2) the app is using statusChanges events as if they were something other than strings.
router
The default url serializer would previously drop
everything after and including a question mark in query parameters. That
is, for a navigation to /path?q=hello?&other=123, the query
params would be parsed to just {q: 'hello'}. This is
incorrect because the URI spec allows for question mark characers in
query data. This change will now correctly parse the params for the
above example to be {v: 'hello?', other: '123'}.
Previously null and undefined inputs for routerLink were
equaivalent to empty string and there was no way to disable the link's
navigation.
In addition, the href is changed from a property HostBinding() to an
attribute binding (HostBinding('attr.href')). The effect of this
change is that DebugElement.properties['href'] will now return the
href value returned by the native element which will be the full URL
rather than the internal value of the RouterLinkhref property.
The router will no longer replace the browser URL when a new navigation
cancels an ongoing navigation. This often causes URL flicker and was
only in place to support some AngularJS hybrid applications. Hybrid
applications which rely on the navigationId being present on initial
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.
Dependabot commands and options
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 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)
Bumps @angular/language-service from 9.1.10 to 13.0.0.
Release notes
Sourced from
@angular/language-service
's releases.... (truncated)
Changelog
Sourced from
@angular/language-service
's changelog.... (truncated)
Commits
959f563
build: remove "ivy-only" bazel tag (#43862)730511b
build: rename "no-ivy-aot" tag to "view-engine-only" (#43862)e0a0d05
feat(core): update node version support range to support v16 (#43740)7a971ca
refactor(language-service): fix typo in method name (#43698)69957f7
feat(language-service): provide snippets for attribute (#43590)d66a2bc
refactor(language-service): Remove option and bundle generation for View Engi...263feba
fix(compiler-cli): handle nullable expressions correctly in the nullish coale...b1d6fad
refactor(compiler-cli): do not use__filename
or__dirname
global for ESM...8d7f109
refactor: make all imports compatible with ESM/CJS output. (#43431)c569b69
build: switch view engine language-service tests to v12.x packages (#43431)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
.Dependabot commands and options
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 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)