https://github.com/angular/angular

sort by:
Revision Author Date Message Commit Date
67f0cf5 release: cut the v17.3.2 release 28 March 2024, 16:56:43 UTC
2f9d94b fix(migrations): account for variables in imports initializer (#55081) Fixes that the control flow migration was throwing an error if the `imports` of a component are initialized to an identifier. Fixes #55080. PR Close #55081 28 March 2024, 16:40:33 UTC
ee76001 refactor(compiler-cli): support ignoring specific doc entries during extraction (#55053) This commit adds support for ignoring specific doc entries when extracting doc entries. This allows us to drop e.g. `InputFunction` from the API docs, given that the `input` API entry holds all the relevant information. `InputFunction` only exists for type purposes in the `.d.ts`. PR Close #55053 28 March 2024, 16:38:43 UTC
b63afb9 refactor(core): improve API documentation for query initializer APIs (#55053) Similar to `input`, `model`, `output`, the query initializer APIs are also explicitly denoted as such. This allows angular.dev to display them more readable and compactly. PR Close #55053 28 March 2024, 16:38:43 UTC
658fb0a refactor(core): improve API documentation for `output` (#55053) This improves the API documentatino for `output` in angular.dev, similar to how we improved the API for `input`. Angular.dev can now show these documentation entries more readable if annotated explicitly as initializer API. Note: output API is short enough that we want to include the types in the code snippet previews. PR Close #55053 28 March 2024, 16:38:42 UTC
f8aa778 refactor(core): improve API documentation for `model` (#55053) Improves the API documentation for `model`, similarly to how we updated the `input` function. PR Close #55053 28 March 2024, 16:38:41 UTC
60ed00a refactor(core): improve API documentation for `input` after angular.dev support (#55053) This commit improves the API documentation for `input` after we added support for initializer APIs in angular.dev docs generation. Changes: - Rename `ReadT` to `T`. This conceptually makes it easy to talk about inputs of type `T` if there is no transform involved. The common case. - Rename `WriteT` to `TransformT`. This makes it clear that this is the type that the "transform" needs to handle. - Improves the "overall" description of the input function so that it can be shown as a general overview for the API site. - Improves usage notes to be a little more helpful, yielding more useful content in the API docs usage notes section. - Add short JSDoc description for each individual overload. PR Close #55053 28 March 2024, 16:38:40 UTC
c7ff3d1 refactor(docs-infra): support initializer API functions (#55053) This commit ensures that extracted initializer API functions are showing up in angular.dev and can be filtered. PR Close #55053 28 March 2024, 16:38:39 UTC
aeb20f9 refactor(compiler-cli): support extracting initializer API functions (#55053) This commit adds support for extracting initializer API functions. Initialixer API functions are functions conceptually that can are intended to be used as class member initializers. Angular started introducing a few of these for the new signal APIs, like `input`, `model` or signal-based queries. These APIs are currently confusingly represented in the API docs because the API extraction: - does not properly account for call signatures of interfaces - does not expose information about sub-property objects and call signatures (e.g. `input.required`) - the docs rendering syntax highlighting is too bloated and confusing with all types being included. This commit adds support for initializer API functions, namely two variants: - interface-based initializer APIs. e.g. `export const input: InputFunction`- which is a pattern for `input` and `input.required`. - function-based simpler initializer APIs with overloads. e.g. `contentChildren` has many signatures but doesn't need to be an interface as there are no sub-property call signatures. PR Close #55053 28 March 2024, 16:38:38 UTC
708ba81 fix(core): establish proper injector resolution order for `@defer` blocks (#55079) This commit updates the `@defer` logic to establish proper injector resolution order. More specifically: - Makes node injectors to be inspected first, similar to how it happens when `@defer` block is not used. - Adds extra handling for the Router's `OutletInjector`, until we replace it with an `EnvironmentInjector`. Resolves #54864. Resolves #55028. Resolves #55036. PR Close #55079 28 March 2024, 16:23:42 UTC
fb5a288 refactor(devtools): prevent exeception on state serializer (#55061) `Object.getPrototypeOf(obj)` returns `null` if `obj` is an empty object. `Object.getOwnPropertyDescriptors` throws on `null`/`undefined` PR Close #55061 28 March 2024, 16:14:25 UTC
5b67c94 refactor(compiler-cli): improve error message for uncaught `FatalDiagnosticError` (#55070) 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 #55070 28 March 2024, 16:13:09 UTC
b478dfb fix(compiler-cli): report errors when initializer APIs are used on private fields (#55070) 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 #55070 28 March 2024, 16:13:08 UTC
75d1cae refactor(compiler-cli): support enforcing field access for initializer APIs (#55070) 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 #55070 28 March 2024, 16:13:07 UTC
53fe455 refactor(compiler-cli): reflection should inspect ES private fields and visibility (#55070) 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 #55070 28 March 2024, 16:13:06 UTC
1470b7d refactor(compiler-cli): expand type of initializer parsing function (#55070) Updates the function that parses initializer APIs to check any `Expression`, instead of expecting a class member. This will be useful for the upcoming changes. PR Close #55070 28 March 2024, 16:13:05 UTC
7663199 docs: link to http security now at best-practices/security (#55060) fixes #55058 PR Close #55060 27 March 2024, 18:32:09 UTC
519e781 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 27 March 2024, 18:09:17 UTC
1af2be9 docs(docs-infra): replace link by HTTPsecurity tab (#55029) Replace a broke link by content of HTTP Client Security Tab. Fixes #54918 & #54922 PR Close #55029 27 March 2024, 17:50:25 UTC
a893f0b fix(zone.js): should not clear onhandler when remove capture listener (#54602) Close #54581 Should not clear `onHandler` when remove capture event listeners. PR Close #54602 27 March 2024, 17:40:06 UTC
93ce4d0 refactor(compiler-cli): properly preserve file overview comments (#54983) This commit updates the logic for preserving file overview comments to be more reliable and less dependent on previous transforms. Previously, with the old import manager, we had a utility called `addImport` that always separated import statements and non-import statements. This meant that the non-emitted statement from Tsickle for the synthetic file-overview comments no longer lived at the beginning of the file. `addImports` tried to overcome this by adding another new non-emitted statement *before* all imports. This then was later used by the transform (or was assumed!) to attach the synthetic file overview comments if the original tsickle AST Node is no longer at the top. This logic can be improved, because the import manager shouldn't need to bother about this fileoverview non-emitted statement, and the logic for re-attaching the fileoverview comment should be local. This commit fixes this and makes it a local transform. PR Close #54983 27 March 2024, 17:18:30 UTC
ed271eb test(compiler-cli): add tests to verify import generation in TCB files/blocks (#54983) This commit adds some unit tests verifying the import generation in TCB files and inline blocks. We don't seem to have any unit tests for these in general. This commit adds some, verifying some characteristics we would like to guarantee. PR Close #54983 27 March 2024, 17:18:30 UTC
6734b59 refactor(compiler-cli): rename `ImportManagerV2` to `ImportManager` (#54983) To ease review and to allow for both instances to co-exist, `ImportManagerV2` was introduced. This commit renames it to `ImportManager` now that we deleted the older one. PR Close #54983 27 March 2024, 17:18:29 UTC
789326d refactor(compiler-cli): delete old unused `ImportManager` (#54983) This commit deletes the older and now unused `ImportManager`. PR Close #54983 27 March 2024, 17:18:29 UTC
4b63716 test(compiler-cli): enable incremental re-use type checking with signal inputs (#54983) Enables the incremental type-checking test that we never enabled when we landed signal inputs. Now that we fixed incremental re-use by re-using the existing user imports for inline type check blocks, the test is passing and can be enabled. PR Close #54983 27 March 2024, 17:18:29 UTC
308b194 refactor(compiler-cli): switch jit transforms to use new import manager (#54983) Switches the JIT transforms to use the new import manager. PR Close #54983 27 March 2024, 17:18:29 UTC
62510a7 refactor(compiler-cli): update type check generation code to use new import manager (#54983) Updates the type-check block generation code (also for inline type check blocks) to use the new import manager. This is now a requirement because the translator utilities from the reference emit environment expect an import manager that follows the new contract established via `ImportGenerator<TFile, TExpression>`. For type check files, we can simply print new imports as we don't expect existing imports to be updated. That is because type check files do not have any _original_ source files (or in practice— those are empty). For type check blocks inline, or constructors, imports _may_ be re-used. This is great as it helps fixing some incrementality bugs that we were seeing in the type check code. That is, sometimes the type check block code may generate imports conditionally for e.g. `TemplateRef`, or animations. Those then **prevent** incremental re-use if TCB code switches between those continously. We tried to account for that with signal inputs by always pre-generating such imports. This fixed the issue for type-check files, but for inline type check blocks this is different as we would introduce new imports in user code that would then be changed back in subsequential edit iterations. See: https://github.com/angular/angular/pull/53521#pullrequestreview-1778130879. In practice, the assumption was that we would be fine since user code is most likely containing imports to `@angular/core` already. That is a true assumption, but unfortunately it doesn't help with incremental re-use because TypeScript's structural change detection does not dedupe and expects 1:1 exact imports from their old source files. https://github.com/microsoft/TypeScript/pull/56845 To improve incremental re-use for the type check integration, we should re-use original source file imports when possible. This commit enables this. To update imports and execute inline operations, we are now uisng `magic-string` (which is then bundled) as it simplifies the string manipulatuons. PR Close #54983 27 March 2024, 17:18:29 UTC
ece2dee refactor(compiler-cli): use new import manager for ngtsc transforms (#54983) This commit switches ngtsc's JS and DTS transform to use the new import manager. This is a drop-in replacement as we've updated the translator helpers in the previous commit to align with the new API suggested by the `ImportManagerV2` (to be renamed then). PR Close #54983 27 March 2024, 17:18:29 UTC
4d8d324 refactor(compiler-cli): update `ImportGenerator` abstraction for new manager (#54983) `ImportGenerator` is the abstraction used by the translator functions to insert imports for `ExternalExpr` in an AST-agnostic way. This was built specifically for the linker which does not use any of the complex import managers- but rather re-uses `ngImport` or uses `ngImport.Bla`. This commit also switches the linker AST-agnostic generator to follow the new signatures. This was rather trivial. PR Close #54983 27 March 2024, 17:18:29 UTC
3253576 refactor(compiler-cli): introduce new implementation of `ImportManager` (#54983) This commit introduces a new implementation of `ImportManager` that has numerous benefits: - It allows efficient re-use of original source file imports. * either fully re-using original imports if matching * updating existing import declarations to include new symbols. - It allows efficient re-use of previous generated imports. - The manager can be used for schematics and migrations. The implementation is a rework of the import manager that we originally built for schematics in Angular Material, but this commit improved it to be more flexible, more readable, and "correct". In follow-ups we can use this for schematics/migrations. PR Close #54983 27 March 2024, 17:18:29 UTC
365fd50 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 27 March 2024, 17:16:23 UTC
d1d9f55 docs: update compat table with 17.3 (#54882) PR Close #54882 27 March 2024, 16:58:11 UTC
7763387 docs: reduce confusion on tutorial intro and reorder how resources are introduced (#55051) PR Close #55051 27 March 2024, 16:56:44 UTC
0ec68a2 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 27 March 2024, 16:55:41 UTC
2ad5dcf [17.3.x]: build: follow-up fixes for AIO lighthouse checks (#55065) * build: follow-up fixes for AIO lighthouse checks Looks like the latest versions of Lighthouse and puppeteer are not compatible with our Chromium version from dev-infra. This commit reverts the updates, and fixes the jobs. Update payload size; now matching — seems expected 27 March 2024, 14:46:46 UTC
9aff43b 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 27 March 2024, 11:58:46 UTC
fa46844 fix(devtools): issue where backendReady race condition causes Angular not detected error (#54805) Previously, a race condition could cause DevTools to enter a state where it can't detect an application on reload. This was caused by a sequencing issue between the content script connection, the devtools panel connection and an event "backendReady" that lets DevTools know when a particular frame is ready to be inspected. This commit replaces the previously stored backendReady boolean with a promise, so that the devtools panel can eventually run a callback to connect to a content script when that content script emits it's backendReady message. PR Close #54805 26 March 2024, 16:19:16 UTC
cd00ec5 Revert "Revert "refactor(devtools): implement multiframe support in devtools page (#53934)" (#54629)" (#54805) This reverts commit 133319eba0008cb556f587bfc873c3eb55e1d2a5. PR Close #54805 26 March 2024, 16:19:14 UTC
821012d Revert "Revert "refactor(devtools): implement iframe support for Angular DevTools' browser code (#53934)" (#54629)" (#54805) This reverts commit dd9f9d7d4490907b148e27abfd7622d31f55c15f. PR Close #54805 26 March 2024, 16:19:14 UTC
8958e0b Revert "fix(http): exclude caching for authenticated HTTP requests (#54746)" (#55033) This reverts commit 2258ac7a32bf83dc3e33a7ff9526b501ea95e33d. Closes: #55031 PR Close #55033 26 March 2024, 16:16:34 UTC
4bb332e refactor(common): request low quality placeholder images (#54899) For every built-in load, this commit adds a parameter to load low quality placeholder images. Using 20/100 as base value. PR Close #54899 25 March 2024, 18:17:34 UTC
64f202c fix(http): manage different body types for caching POST requests (#54980) This update enhances the encoding handling of request bodies to generate the necessary cache key for transfer cache functionality. Closes #54956 PR Close #54980 25 March 2024, 18:17:03 UTC
cf34d2b docs: unescape html entities (#55016) adev supports regular characters in place of entity. Let's use them to make the ease the work for the editors. PR Close #55016 25 March 2024, 18:16:35 UTC
ec4483c test(zone.js): fix zone.js test listener removal (#55017) The test was checking the wrong set of listeners because of a typo. PR Close #55017 25 March 2024, 18:16:06 UTC
1f7e81a refactor(http): use nullish coalescing operator in HttpRequest.clone() (#54939) Refactor how boolean options are handled in HttpRequest.clone() method by using nullish coalescing operator PR Close #54939 22 March 2024, 05:13:45 UTC
cb433af fix(http): include transferCache when cloning HttpRequest (#54939) Fixes a bug where HttpRequest.clone() does not include the transferCache property. Fixes #54924. PR Close #54939 22 March 2024, 05:13:44 UTC
3cf70e2 ci: change label set by renovate to be merge ready immediately (#54947) Since the PR is always expected to be ready to merge as renovate won't make changes in response to any sort of comment, it should already be marked as merge ready PR Close #54947 22 March 2024, 05:11:10 UTC
2b7bad5 fix(compiler): invoke method-based tracking function with context (#54960) Previously we assumed that if a `for` loop tracking function is in the form of `someMethod($index, $item)`, it will be pure so we didn't pass the parameter to bind the context to it. This appears to be risky, because we don't know if the method is trying to access `this`. These changes play it safe by always binding method-based tracking functions. Fixes #53628. PR Close #54960 22 March 2024, 05:08:41 UTC
78d4ad2 ci: temporarily disable failing test (#54970) this test is failing after #54711 PR Close #54970 20 March 2024, 20:31:35 UTC
c2149df release: cut the v17.3.1 release 20 March 2024, 19:49:30 UTC
99e9474 fix(compiler-cli): symbol feature detection for the compiler (#54711) Use the actual symbol presence in the .d.ts to detect whether two-way binding to writable signals should be template type-checked. PR Close #54711 20 March 2024, 19:14:42 UTC
766bdf3 build: update dependency google-closure-compiler to v20240317 (#54931) See associated pull request for more information. PR Close #54931 19 March 2024, 17:00:46 UTC
2a1ea5a build: update github/codeql-action action to v3.24.8 (#54932) See associated pull request for more information. PR Close #54932 19 March 2024, 16:59:49 UTC
529a5f4 refactor(docs-infra): don't rely on aio_npm in adev (#54928) Use @npm// instead of @aio_npm// in adev BUILD files PR Close #54928 19 March 2024, 16:55:45 UTC
e70228a refactor(core): Add hydration missmatch on the component rather than the node. (#54671) In some cases the hydration mismatch is nested within a component. As the devTool only reports issues on the component level, we need to mark the component node rather than the actual mismatched node. PR Close #54671 18 March 2024, 23:52:19 UTC
4ab3a9a docs: update Angular CLI help [17.3.x] (#54911) Updated Angular CLI help contents. PR Close #54911 18 March 2024, 23:51:28 UTC
1f5ab96 refactor(core): allow passing an environment injector while creating a view (#54903) This commit updates the name of an internal function argument that represents an embedded view injector. Also it introduces a new config option that allows passing an environment injector to be used in the underlying LView. There are no changes to the behavior, just some initial cleanup for upcoming changes. PR Close #54903 18 March 2024, 23:37:36 UTC
860ecce ci: move saucelabs to regular CI job (#54926) Move the saucelabs job to regular CI instead of the priviledged CI to prevent cache poisoning/overload PR Close #54926 18 March 2024, 18:02:39 UTC
e61ccd2 build: update to latest angular/dev-infra/github-actions/create-pr-for-changes (#54904) Update to latest to correct node verison issue PR Close #54904 17 March 2024, 00:41:31 UTC
80e5a0a test(compiler-cli): add unit tests for `output()` JIT transform (#54841) We are already testing the JIT transforms via integration tests, but this commit adds dedicated unit tests for the transform behavior for proper test coverage (planned follow-up). PR Close #54841 15 March 2024, 22:14:32 UTC
c078820 fix(compiler): capture data bindings for content projection purposes in blocks (#54876) Fixes a regression in the template pipeline where data bindings weren't being captured for content projection purposes. Fixes #54872. PR Close #54876 15 March 2024, 22:11:19 UTC
42318e7 refactor(compiler-cli): move DelegatingPerfRecorder initialization into constructor (#54834) Move the initialization of class field `DelegatingPerfRecorder` into the constructor. This fixes the error : `TypeError: Cannot read properties of undefined (reading 'eventCount')` This is blocking the roll-out of public class. PR Close #54834 15 March 2024, 22:10:46 UTC
33dc072 build: update dependency google-closure-compiler to v20231112 (#54893) See associated pull request for more information. PR Close #54893 15 March 2024, 18:31:23 UTC
209632e build: update dependency archiver to v7 (#54892) See associated pull request for more information. PR Close #54892 15 March 2024, 18:18:35 UTC
e78dd31 build: update actions/cache digest to ab5e6d0 (#54886) See associated pull request for more information. PR Close #54886 15 March 2024, 17:28:14 UTC
91029aa build: update dependency @octokit/graphql to v8 (#54888) See associated pull request for more information. PR Close #54888 15 March 2024, 17:24:52 UTC
52296bc build: update dependency lighthouse to v11 (#54292) See associated pull request for more information. PR Close #54292 15 March 2024, 17:22:55 UTC
64862cb build: update io_bazel_rules_sass digest to 79bd239 (#54887) See associated pull request for more information. PR Close #54887 15 March 2024, 17:16:23 UTC
90bbc68 build: update cross-repo angular dependencies (#54883) See associated pull request for more information. PR Close #54883 15 March 2024, 17:06:44 UTC
a5cc82e docs: update events (#54749) Generated `events.json` with the latest events retrieved from the Firebase DB. PR Close #54749 15 March 2024, 16:38:14 UTC
855b8e0 build: update dependency puppeteer-core to v22 (#54298) See associated pull request for more information. PR Close #54298 15 March 2024, 16:31:26 UTC
35e8184 build: update peter-evans/create-or-update-comment action to v4 (#54299) See associated pull request for more information. PR Close #54299 15 March 2024, 16:30:52 UTC
74506e7 build: update eslint dependencies (#50993) See associated pull request for more information. PR Close #50993 15 March 2024, 16:30:11 UTC
c22c5c4 release: cut the v17.3.0 release 13 March 2024, 21:05:31 UTC
5d41ab9 refactor(core): restructure logic in `isCssClassMatching` function (#54800) The logic in `isCssClassMatching` is only interested in two areas in the attributes: implicit attributes and the `AttributeMarker.Classes` area, with the first area only of interest for projection matching, not directive matching. This commit splits these two searches to make this more apparent. PR Close #54800 12 March 2024, 21:05:19 UTC
243ccce fix(core): exclude class attribute intended for projection matching from directive matching (#54800) This commit resolves a regression that was introduced when the compiler switched from `TemplateDefinitionBuilder` (TDB) to the template pipeline (TP) compiler. The TP compiler has changed the output of ```html if (false) { <div class="test"></div> } ``` from ```ts defineComponent({ consts: [['class', 'test'], [AttributeMarker.Classes, 'test']], template: function(rf) { if (rf & 1) { ɵɵtemplate(0, App_Conditional_0_Template, 2, 0, "div", 0) } } }); ``` to ```ts defineComponent({ consts: [[AttributeMarker.Classes, 'test']], template: function(rf) { if (rf & 1) { ɵɵtemplate(0, App_Conditional_0_Template, 2, 0, "div", 0) } } }); ``` The last argument to the `ɵɵtemplate` instruction (0 in both compilation outputs) corresponds with the index in `consts` of the element's attribute's, and we observe how TP has allocated only a single attribute array for the `div`, where there used to be two `consts` entries with TDB. Consequently, the `ɵɵtemplate` instruction is now effectively referencing a different attributes array, where the distinction between the `"class"` attribute vs. the `AttributeMarker.Classes` distinction affects the behavior: TP's emit causes the runtime to incorrectly match a directive with `selector: '.foo'` to be instantiated on the `ɵɵtemplate` instruction as if it corresponds with a structural directive! Instead of changing TP to align with TDB's emit, this commit updates the runtime instead. This uncovered an inconsistency in selector matching for class names, where there used to be two paths dealing with class matching: 1. The first check was commented to be a special-case for class matching, implemented in `isCssClassMatching`. 2. The second path was part of the main selector matching algorithm, where `findAttrIndexInNode` was being used to find the start position in `tNode.attrs` to match the selector's value against. The second path only considers `AttributeMarker.Classes` values if matching for content projection, OR of the `TNode` is not an inline template. The special-case in path 1 however does not make that distinction, so it would consider the `AttributeMarker.Classes` binding as a selector match, incorrectly causing a directive to match on the `ɵɵtemplate` itself. The second path was also buggy for class bindings, as the return value of `classIndexOf` was incorrectly negated: it considered a matching class attribute as non-matching and vice-versa. This bug was not observable because of another issue, where the class-handling in part 2 was never relevant because of the special-case in part 1. This commit separates path 1 entirely from path 2 and removes the buggy class-matching logic in part 2, as that is entirely handled by path 1 anyway. `isCssClassMatching` is updated to exclude class bindings from being matched for inline templates. Fixes #54798 PR Close #54800 12 March 2024, 21:05:18 UTC
e8badec docs: fix missing security guide in navigation (#54830) The paths for the security guide were flipped in the original PR. As a result, it looked for a markdown file in the best-practices directory when it should have looked for it in the guide directory instead. PR Close #54830 12 March 2024, 20:13:03 UTC
cdfcb77 refactor(core): add internal API to enable i18n hydration (#54784) Add an internal API to enable and use i18n hydration for testing and development. This helps ensure that we don't accidentally break the current behavior until we are completely ready to roll out i18n support. PR Close #54784 12 March 2024, 18:39:03 UTC
ac395d0 refactor(compiler-cli): cleanup unused code (#54775) The initializer api no longer needs to take care of `ɵoutput`. PR Close #54775 12 March 2024, 18:31:39 UTC
e75a9a4 docs: improve in-depth guides information architecture (#54365) PR Close #54365 12 March 2024, 17:25:40 UTC
41f28f8 fix(docs-infra): remove the prerender directory from adev (#54820) Remove the prerender directory as it is entirely unused and unneeded PR Close #54820 12 March 2024, 17:24:08 UTC
7df0a8a refactor(core): report subscription errors for `OutputEmitterRef` to `ErrorHandler` (#54821) Currently if an `(output)` listener fails, it will be handled gracefully by Angular and reported to the `ErrorHandler`. For programmatic subscriptions with `OutputEmitterRef`, this is not the case. Instead, as soon as any subscription is failing, all other subsequent subscription callbacks are not firing anymore. This commit intends to make this more consistent by gracefully reporting errors from `OutputEmitterRef#emit` to `ErrorHandler`, allowing for listener execution to continue. PR Close #54821 12 March 2024, 17:21:50 UTC
9889346 docs: typo in output documentation (#54773) PR Close #54773 12 March 2024, 16:15:05 UTC
39a50f9 fix(core): ensure all initializer functions run in an injection context (#54761) Ensures that all of the functions intended to be run in initializers are in an injection context. This is a stop-gap until we have a compiler diagnostic for it. PR Close #54761 12 March 2024, 16:08:08 UTC
1f77083 refactor(core): assert presence of the track function (#54814) This commits assert that the repeater instruction gets a reference to a tracking function. This change will allow us to better track occurences of https://github.com/angular/angular/issues/53628 - in certain situations a reference to a tracking function might be undefiened. We are not fixing the underlying issue here, just getting better visibility. PR Close #54814 11 March 2024, 23:33:01 UTC
bb35414 perf(core): speed up retrieval of `DestroyRef` in `EventEmitter` (#54748) Speeds up the retrieval of `DestroyRef` in `EventEmitter` because `try/catch` is expensive if there is no injection context. We saw a script time regression in Cloud. The goldens had to be updated because `getInjectImplementation` is now referenced. `inject` also references the underlying field, but directly. This is super minimal overhead of a function exposing the internal field. PR Close #54748 11 March 2024, 23:31:03 UTC
fcfb42a docs: use the right path for first-app images (#54694) PR Close #54694 11 March 2024, 23:30:28 UTC
57e54e2 docs: bump to 2024 for copyright text (#54822) Bump copyright text to 2024 PR Close #54822 11 March 2024, 20:39:49 UTC
2909e98 fix(core): prevent infinite loops in clobbered elements check (#54425) This commit updates HTML sanitization logic to avoid infinite loops in case clobbered elements contain fields like `nextSibling` or `parentNode`. Those fields are used for DOM traversal and this update makes sure that those calls return valid results. Also this commit fixes an issue when clobbering `nodeName` causes JS exceptions. PR Close #54425 11 March 2024, 19:46:26 UTC
619f3c8 refactor(core): add `i18nNodes` in preparation for i18n hydration (#54750) An i18n message effectively acts as a dynamic template: two elements with contiguous instruction indices won't necessarily be contiguous in the DOM. For that reason, we need to maintain a mapping from instruction index to a physical DOM node in order to hydrate views with i18n, pointing to where hydration for that view should begin. PR Close #54750 11 March 2024, 18:12:46 UTC
0ee1a14 refactor(core): Remove isG3 usages in patch branch (#54816) This commit removes uses of isG3 in the patch branch. G3 always executes against main so any references in patch are unused. PR Close #54816 11 March 2024, 18:11:32 UTC
f386a04 fix(compiler): handle two-way bindings to signal-based template variables in instruction generation (#54714) Updates the instruction generation for two-way bindings to only emit the `twoWayBindingSet` call when writing to template variables. Since template variables are constants, it's only allowed to write to them when they're signals. Non-signal values are flagged during template type checking. Fixes #54670. PR Close #54714 11 March 2024, 18:01:43 UTC
492e03f fix(compiler-cli): flag two-way bindings to non-signal values in templates (#54714) We have a diagnostic that reports writes to template variables which worked both for regular event bindings and two-way bindings, however the latter was broken by #54154 because two-way bindings no longer had a `PropertyWrite` AST. These changes fix the diagnostic and expand it to allow two-way bindings to template variables that are signals. PR Close #54714 11 March 2024, 18:01:43 UTC
ba9ddd7 refactor(compiler-cli): move illegal template assignment check into template semantics checker (#54714) Moves the check which ensures that there are no writes to template variables into the `TemplateSemanticsChecker` to prepare for the upcoming changes. PR Close #54714 11 March 2024, 18:01:43 UTC
5d23e60 refactor(compiler-cli): move signal identification function (#54714) Moves the function that identifies signals into a separate file so that it can be reused outside of extended diagnostics. PR Close #54714 11 March 2024, 18:01:43 UTC
a7872ca refactor(compiler-cli): introduce template semantics checker (#54714) Introduces a new `TemplateSemanticsChecker` that will be used to flag semantic errors in the user's template. Currently we do some of this in the type check block, but the problem is that it doesn't have access to the template type checker which prevents us from properly checking cases like #54670. This pass is also distinct from the extended template checks, because we don't want users to be able to turn the checks off and we want them to run even if `strictTemplates` are disabled. PR Close #54714 11 March 2024, 18:01:43 UTC
1031478 docs: adding signal inputs and model to ADEV. (#54753) Those docs are a copy from AIO. PR Close #54753 11 March 2024, 18:01:01 UTC
40a94b3 docs: fix typo in tutorial (#54817) PR Close #54817 11 March 2024, 17:59:53 UTC
1f129f1 fix(compiler): not catching for loop empty tracking expressions (#54772) Fixes that the template parser wasn't catching empty expressions in the `track` parameter of for loops. Fixes #54763. PR Close #54772 11 March 2024, 16:17:43 UTC
962934b build: update to TypeScript 5.4 stable (#54743) Updates the repo to the stable version of TypeScript 5.4. PR Close #54743 11 March 2024, 16:16:55 UTC
back to top