New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add event_dispatch library to primitives #55077
Commits on Mar 26, 2024
Commits on Mar 27, 2024
-
-
-
-
-
-
feat(primitives) Add event delegation library to queue events and rep…
…lay them when application is ready.
-
ci: fix build failures in patch branch (#55064)
This commit fixes various issues that seem to cause the 17.3.x patch to be red for weeks: - Eslint checking a file for aio/tools that is not part of a tsconfig— hence an error is being reported. - Audit-web-app importing some Lighthouse APIs that aren't available under the given path. PR Close #55064
-
refactor(compiler-cli): expand type of initializer parsing function (#…
-
refactor(compiler-cli): reflection should inspect ES private fields a…
…nd visibility (#54981) This commit changes the TypeScript reflection host to: * inspect / process ES private fields. e.g. `#someField` — those are ignored right now and we would want to check them to issue diagnostics. * determine an access level of a class member. E.g. a member may be public, may be private, may be ES private, or public readonly. This can then be used in various checks later. PR Close #54981
-
refactor(compiler-cli): support enforcing field access for initialize…
…r APIs (#54981) An initializer API like `input`, `output`, or signal queries may not be compatible with certain access levels. E.g. queries cannot work with ES private class fields. This commit introduces a check for access levels into the initializer API recognition— enforcing that every initializer API *clearly* specifies what type of access is allowed. PR Close #54981
-
fix(compiler-cli): report errors when initializer APIs are used on pr…
…ivate fields (#54981) This commit ensures that the new APIs like `input`, `model`, `output`, or signal-based queries are not accidentally used on fields that have a problematic visibility/access level that won't work. For example, queries defined using a private identifier (e.g. `#bla`) will not be accessible by the Angular runtime and therefore _dont_ work. This commit ensures: - `input` is only declared via public and protected fields. - `output` is only declared via public and protected fields. - `model` is only declared via public and protected fields. - signal queries are only declared via public, protected and TS private fields (`private` works, while `#bla` does not). Fixes #54863. PR Close #54981
-
refactor(compiler-cli): improve error message for uncaught `FatalDiag…
…nosticError` (#54981) For `FatalDiagnosticError` we are currently hiding the `message` string field in favor of the actual TS `diagnosticMessage`. This works as expected, but makes these errors hard to debug in certain environments (e.g. Jasmine). That is because `null` is the value of `message` at runtime. We fix this by just overriding the type, like we originally intended to do. In addition, we properly render message chains in the `Error#message` field— so that these errors, when uncaught, are somewhat reasonable and can be useful. PR Close #54981
-
release: bump Angular DevTools version to 1.0.12 (#55056)
Also fixes a typo in release docs for the Firefox `zip` command. PR Close #55056
-
fix(language-service): prevent underlying TS Service from handling te…
…mplate files (#55003) When the `angularOnly` option is disabled, the underlying TypeScript language service was previously used for all files including `.html` template files. This can result in incorrect responses including a large amount of invalid diagnostics for a template file. Checks have now been added to only use the Angular Language service for template files which can properly handle template files. Additionally, the check for a TypeScript file name has now been expanded to encompass all current file extension forms. PR Close #55003
-
refactor(language-service): use native Array flatMap (#55011)
The custom flatMap implementation can now be removed as Array contains a native implementation that is available for all supported Node.js versions. PR Close #55011
-
fix(router): RouterLinkActive will always remove active classes when …
…links are not active (#54982) Previously, `RouterLinkActive` would only add or remove the active classes when its active state changed. This means that if you accidentally add one of the active classes to the static class attribute, it won't get removed until the link becomes active and then deactives (because the class is added at creation time and never removed until the `RouterLinkActive` state changes from active to inactive). fixes #54978 PR Close #54982
-
fix(zone.js): should not clear onhandler when remove capture listener (…
-
refactor(compiler): Do not extract internal methods. (#54850)
internal methods are not exposed to end users and should not be extracted. PR Close #54850
-
-
refactor: fix a number of typos throughout the codebase (#55018)
Fix some typos detected using spellchecking tools, both in documentation and in code (comments, identifiers). PR Close #55018
-
fix(router): preserve replaceUrl when returning a urlTree from CanAct…
…ivate (#54042) This commit will fix the issue of the setting of NavigationExtras.replaceUrl being lost when returning a urlTree from a CanActivateFn. Fixes #53503 BREAKING CHANGE: When a a guard returns a `UrlTree` as a redirect, the redirecting navigation will now use `replaceUrl` if the initial navigation was also using the `replaceUrl` option. If this is not desirable, the redirect can configure new `NavigationBehaviorOptions` by returning a `RedirectCommand` with the desired options instead of `UrlTree`. PR Close #54042
-
fix(core):
ComponentFixture
stability should matchApplicationRef
(……#54949) This change aligns the stability of `ComponentFixture` with that of `ApplicationRef`, preventing confusing differences between the two as more APIs start using the `PendingTasks` that may not be tracked by `NgZone`. BREAKING CHANGE: `ComponentFixture.whenStable` now matches the `ApplicationRef.isStable` observable. Prior to this change, stability of the fixture did not include everything that was considered in `ApplicationRef`. `whenStable` of the fixture will now include unfinished router navigations and unfinished `HttpClient` requests. This will cause tests that `await` the `whenStable` promise to time out when there are incomplete requests. To fix this, remove the `whenStable`, instead wait for another condition, or ensure `HttpTestingController` mocks responses for all requests. Try adding `HttpTestingController.verify()` before your `await fixture.whenStable` to identify the open requests. Also, make sure your tests wait for the stability promise. We found many examples of tests that did not, meaning the expectations did not execute within the test body. In addition, `ComponentFixture.isStable` would synchronously switch to true in some scenarios but will now always be asynchronous. PR Close #54949
-
docs: explain difference between @Placeholder and @Loading (#54779)
Add a sentence to the `@loading` block documentation that emphasizes more that the `@loading` block will replace the `@placeholder` block once the deferred view starts loading. PR Close #54779
-
refactor(core): Provide scheduler for use and coordination with zone …
…change detection (#54952) This commit makes the zoneless scheduler (privately) available to applications that have ZoneJS-based change detection. This would catch any changes of interest (signal updates, `markForCheck` calls, attaching `Dirty` views) that happen outside the Angular Zone. See #53844 for additional information about why this is important. More details to come in the a future commit that makes this a public option. PR Close #54952
-
fix(core): Fix clearing of pending task in zoneless cleanup implement…
-