From c9ebefca0d1d9f09fe5c6361300b5592ed88eb48 Mon Sep 17 00:00:00 2001 From: Code-Inside-Bot Date: Mon, 20 Jan 2025 04:30:04 +0100 Subject: [PATCH] Sloader update on _data/Angular.json --- _data/Angular.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/Angular.json b/_data/Angular.json index fe70b0f8c..aed42c28e 100644 --- a/_data/Angular.json +++ b/_data/Angular.json @@ -1 +1 @@ -{"Data":{"Angular-Issues":{"Issues":[{"Id":"2797158303","IsPullRequest":false,"CreatedAt":"2025-01-18T22:08:17","Actor":"JCornat","Number":"59610","RawContent":null,"Title":"HMR fatal error URL constructor with browserslistrc file","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nHello, I have an issue with the new HMR when my project contains a ` .browserslistrc` file.\n\nIt contains : \n\n```\n> 0.2% and not dead\n```\n\nWhen compiling, I have these warnings :\n\n```\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/app.component.ts:13:99:\n 13 │ ... + encodeURIComponent(t), import.meta.url).href).then(m => m.de...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/app.component.ts:13:361:\n 13 │ ...efined\" || ngDevMode) && (import.meta.hot && import.meta.hot.on...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/app.component.ts:13:380:\n 13 │ ...e) && (import.meta.hot && import.meta.hot.on(\"angular:component...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/empty/empty.component.ts:11:114:\n 11 │ ... + encodeURIComponent(t), import.meta.url).href).then(m => m.de...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/empty/empty.component.ts:11:369:\n 11 │ ...efined\" || ngDevMode) && (import.meta.hot && import.meta.hot.on...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/empty/empty.component.ts:11:388:\n 11 │ ...e) && (import.meta.hot && import.meta.hot.on(\"angular:component...\n ╵ ~~~~~~~~~~~\n```\n\nAnd when I load the app with Firefox or Chrome, I have this fatal error \n\n```\nUncaught TypeError: URL constructor: /@ng/component?c=src%2Fapp%2Fempty%2Fempty.component.ts%40C7zEmptyComponent&t=1737229993392 is not a valid URL. main.js:39:27\n C7zEmptyComponent_HmrLoad main.js:39\n empty.component.ts:7\n empty.component.ts:7\n C7zEmptyComponent_HmrLoad main.js:39\n empty.component.ts:7\n empty.component.ts:7\n```\n\n\nWhen I remove the ` .browserslistrc` file, I have no more errors.\n\nThank you for your time !\n\n### Please provide a link to a minimal reproduction of the bug\n\nhttps://github.com/JCornat/angular-19-1-hmr-bug\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.2\nNode: 22.4.1\nPackage Manager: npm 10.8.1\nOS: linux x64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cli 19.1.2\n@schematics/angular 19.1.2\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n","Url":"https://github.com/angular/angular/issues/59610","RelatedDescription":"Closed issue \"HMR fatal error URL constructor with browserslistrc file\" (#59610)"},{"Id":"2797066899","IsPullRequest":false,"CreatedAt":"2025-01-18T16:36:38","Actor":"LuckyT89","Number":"59608","RawContent":null,"Title":"Add link to Language Service page from the Installation page","State":"open","Body":"### Describe the problem that you experienced\n\nIt would be helpful to have a blurb somewhere on the Installation page of the documentation with a recommendation to setup the Language Service extension and a link to that page of the documentation. For new Angular developers, this is the first place they will come to learn how to setup a new project and get going. The Language Service page is way further down in the documentation and a new developer could potentially spend a very long time without this critical editor extension until they finally stumble upon that page. This should be highlighted at the very start of their journey. \n\n### Enter the URL of the topic with the problem\n\nhttps://angular.dev/installation\n\n### Describe what you were looking for in the documentation\n\n_No response_\n\n### Describe the actions that led you to experience the problem\n\n_No response_\n\n### Describe what you want to experience that would fix the problem\n\n_No response_\n\n### Add a screenshot if that helps illustrate the problem\n\n_No response_\n\n### If this problem caused an exception or error, please paste it here\n\n```true\n\n```\n\n### If the problem is browser-specific, please specify the device, OS, browser, and version\n\n```true\n\n```\n\n### Provide any additional information here in as much as detail as you can\n\n```true\n\n```","Url":"https://github.com/angular/angular/issues/59608","RelatedDescription":"Open issue \"Add link to Language Service page from the Installation page\" (#59608)"},{"Id":"2797051491","IsPullRequest":true,"CreatedAt":"2025-01-18T16:03:37","Actor":"arturovt","Number":"59607","RawContent":null,"Title":"refactor(core): access `firstChild` through constant","State":"open","Body":"`.firstChild` is a frequently used property name throughout the code. We can reduce the overall bundle size by extracting its name into a variable. The minifier will shorten the variable name to a single letter, so every usage of `firstChild` will be replaced with something like `[f]`, which reduces the number of bytes compared to repeatedly using the string `.firstChild`.","Url":"https://github.com/angular/angular/pull/59607","RelatedDescription":"Open PR \"refactor(core): access `firstChild` through constant\" (#59607)"},{"Id":"2796997111","IsPullRequest":false,"CreatedAt":"2025-01-18T14:07:54","Actor":"robertIsaac","Number":"59606","RawContent":null,"Title":"offline service worker and SSR don't work together for http call that never happen in browser side","State":"open","Body":"### Which @angular/* package(s) are relevant/related to the feature request?\n\nservice-worker\n\n### Description\n\nright now thanks to the default http cache when you enable hydration some http calls will never get triggered in the browser (like when it's needed for header/footer/sidenav ... etc)\nbut this has negative side-effect on the offline caching (with dataGroups), that since these calls never happened they will never be cached\nso when the user go offline that API calls will fail, and once they fail the service worker will stop trying to make the app work offline (and since they are in the application root they will happen before any other call which makes the whole application not working offline)\nhere is a reproduc of the problem https://github.com/robertIsaac/offline-ssr\n\nthe only alternative now is to exclude these APIs from being cached, but this harm the performance score of the website (specially the Cumulative Layout Shift)\n\n### Proposed solution\n\nthe responses returned with the SSR should be part of the offline cache\n\n### Alternatives considered\n\nto give a way to make the first http call cacheable, but second call to go through\nbecause now when I try to make http call only in the browser, it still hit the cache\n```\n if (isPlatformBrowser(this.platformId)) {\n this.httpClient.get('http://localhost:4200/api/foo').subscribe();\n }\n```\neven with setTimeout\n```\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.httpClient.get('http://localhost:5147/api/foo.json').subscribe(data => {\n });\n }, 1000)\n }\n```","Url":"https://github.com/angular/angular/issues/59606","RelatedDescription":"Open issue \"offline service worker and SSR don't work together for http call that never happen in browser side\" (#59606)"},{"Id":"2796986193","IsPullRequest":false,"CreatedAt":"2025-01-18T13:44:47","Actor":"bogui","Number":"59605","RawContent":null,"Title":"TypeError: $localize is not a function after HMR Component update sent to client(s)","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nlocalize, compiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nAfer changes on template, the HMR sent to browser does not load (no changes are reflected) and when navigate from that component to another and then back to the changed one it does not show (it's broken) and there is a error message in the dev console (not in the terminal where ng serve is executed). The error says - \"ERROR TypeError: $localize is not a function\". I have tested it on edge, chrome and firefox (including private mode) - the error shows on all three of them.\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\ncore.mjs:20865 Angular is running in development mode.\ncore.mjs:6672 ERROR TypeError: $localize is not a function\n at consts (partners-table.component.ts:252:28)\n at createTView (core.mjs:13028:58)\n at getOrCreateComponentTView (core.mjs:13003:24)\n at createRootComponentView (core.mjs:17535:47)\n at ComponentFactory.create (core.mjs:17410:25)\n at ViewContainerRef2.createComponent (core.mjs:17825:43)\n at _RouterOutlet.activateWith (router.mjs:2785:31)\n at ActivateRoutes.activateRoutes (router.mjs:3227:28)\n at router.mjs:3183:12\n at Array.forEach ()\n at ActivateRoutes.activateChildRoutes (router.mjs:3182:25)\n at ActivateRoutes.activateRoutes (router.mjs:3233:14)\n at router.mjs:3183:12\n at Array.forEach ()\n at ActivateRoutes.activateChildRoutes (router.mjs:3182:25)\nhandleError @ core.mjs:6672\nnext @ core.mjs:35097\nConsumerObserver2.next @ Subscriber.js:90\nSubscriber2._next @ Subscriber.js:59\nSubscriber2.next @ Subscriber.js:32\n(anonymous) @ Subject.js:41\nerrorContext @ errorContext.js:23\nSubject2.next @ Subject.js:31\nemit @ core.mjs:6063\n(anonymous) @ core.mjs:6558\ninvoke @ zone.js:369\nrun @ zone.js:111\nrunOutsideAngular @ core.mjs:6420\nonHandleError @ core.mjs:6558\nhandleError @ zone.js:373\nrunGuarded @ zone.js:124\napi.microtaskDrainDone @ zone.js:2325\ndrainMicroTaskQueue @ zone.js:588\ninvokeTask @ zone.js:487\ninvokeTask @ zone.js:1138\nglobalCallback @ zone.js:1169\nglobalZoneAwareCallback @ zone.js:1202\nclient:907 [vite] server connection lost. Polling for restart...\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:998\nhandleMessage @ client:909\nonMessage @ client:298\n(anonymous) @ client:446\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.2\nNode: 23.5.0 (Unsupported)\nPackage Manager: npm 11.0.0\nOS: linux x64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... localize, platform-browser, platform-browser-dynamic, router\n... service-worker\n\nPackage Version\n------------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cdk 19.1.0\n@angular/cli 19.1.2\n@angular/material 19.1.0\n@angular/material-moment-adapter 19.1.0\n@schematics/angular 19.1.2\nng-packagr 19.1.0\nrxjs 7.8.1\ntypescript 5.7.3\nwebpack 5.97.1\nzone.js 0.15.0\n \nWarning: The current version of Node (23.5.0) is not supported by Angular.\n```\n\n### Anything else?\n\nThis is an old project working well until Angular 19.0 (included). It's mix of standalone components and modules - it's being refactored slowly to standalone.","Url":"https://github.com/angular/angular/issues/59605","RelatedDescription":"Open issue \"TypeError: $localize is not a function after HMR Component update sent to client(s)\" (#59605)"},{"Id":"2796520756","IsPullRequest":false,"CreatedAt":"2025-01-18T00:30:26","Actor":"dgp1130","Number":"59602","RawContent":null,"Title":"⚠️ Local development bugs with HMR","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nWe're aware of reports of local development bugs arising from Angular template HMR in 19.1.x, which has been enabled by default.\n\nList of known issues:\n\n* #59581\n* #59592\n* angular/angular-cli#29248\n\nWe're actively investigating and fixing these issues to create a smooth HMR experience out of the box. Production builds and releases are not affected. If you discover any additional HMR challenges which don't appear to be related to the linked issues above, verify that you are on a recent version (19.1.x), and please [file a new issue](http://github.com/angular/angular/issues/) and link it here so we can triage and investigate.\n\n### Workarounds\n\nIn the meantime, if you encounter any problems relating to HMR, you can work around them in three ways:\n\n1. Refresh the page \\- This loads a fresh copy of your application with up to date code. \n2. `ng serve \\--no-hmr` \\- This disables HMR for your local devserver and automatically refreshes the page on any code changes. \n3. Disable HMR for your project \\- Configuring `angular.json` will disable HMR for all `ng serve` invocations by default. \n * This is useful for a project with a large number of developers without needing to communicate these workarounds to all contributors. \n * Remember to re-enable once the relevant issues are fixed\\!\n\n```json\n{\n \"projects\": {\n \"my-project\": {\n \"architect\": {\n \"serve\": {\n \"options\": {\n \"hmr\": false\n }\n }\n }\n }\n }\n}\n```\n\nThank you for sharing any HMR issues and helping improve Angular one bugfix at a time. We're committed to fully stabilizing this feature and excited to bring improved build performance to everyone.","Url":"https://github.com/angular/angular/issues/59602","RelatedDescription":"Open issue \"⚠️ Local development bugs with HMR\" (#59602)"},{"Id":"2795657862","IsPullRequest":true,"CreatedAt":"2025-01-17T18:00:59","Actor":"arturovt","Number":"59598","RawContent":null,"Title":"fix(core): cleanup stash listener when app is destroyed","State":"closed","Body":"In this commit, we clean up the reference to the function set by the environment initializer, as the function closure may capture injected elements and prevent them from being properly garbage collected.","Url":"https://github.com/angular/angular/pull/59598","RelatedDescription":"Closed or merged PR \"fix(core): cleanup stash listener when app is destroyed\" (#59598)"},{"Id":"2795988669","IsPullRequest":true,"CreatedAt":"2025-01-17T17:41:35","Actor":"pkozlowski-opensource","Number":"59601","RawContent":null,"Title":"Runtime refactor component ref followup","State":"open","Body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [ ] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [ ] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [ ] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n\r\n\r\nIssue Number: N/A\r\n\r\n\r\n## What is the new behavior?\r\n\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [ ] No\r\n\r\n\r\n\r\n\r\n\r\n## Other information\r\n","Url":"https://github.com/angular/angular/pull/59601","RelatedDescription":"Open PR \"Runtime refactor component ref followup\" (#59601)"},{"Id":"2795925877","IsPullRequest":true,"CreatedAt":"2025-01-17T17:05:57","Actor":"mturco","Number":"59600","RawContent":null,"Title":"feat(core): pass signal node to throwInvalidWriteToSignalErrorFn","State":"open","Body":"Updates the signature of the `throwInvalidWriteToSignalError` to take the signal node in question and pass it along to the throwInvalidWriteToSignalErrorFn handler function. This allows the handler to e.g. include the signal name in error messaging.\r\n\r\n## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [x] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [x] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [x] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [ ] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n`throwInvalidWriteToSignalError` calls `throwInvalidWriteToSignalErrorFn` with no arguments.\r\n\r\nIssue Number: N/A\r\n\r\n\r\n## What is the new behavior?\r\n`throwInvalidWriteToSignalError` calls `throwInvalidWriteToSignalErrorFn` with the signal node as an argument.\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No\r\n\r\n\r\n\r\n\r\n\r\n## Other information\r\n","Url":"https://github.com/angular/angular/pull/59600","RelatedDescription":"Open PR \"feat(core): pass signal node to throwInvalidWriteToSignalErrorFn\" (#59600)"},{"Id":"2794602981","IsPullRequest":true,"CreatedAt":"2025-01-17T15:21:52","Actor":"Mukhammadullo","Number":"59583","RawContent":null,"Title":"Update installation.md","State":"closed","Body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [ ] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [ ] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [ ] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n\r\n\r\nIssue Number: N/A\r\n\r\n\r\n## What is the new behavior?\r\n\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [ ] No\r\n\r\n\r\n\r\n\r\n\r\n## Other information\r\n","Url":"https://github.com/angular/angular/pull/59583","RelatedDescription":"Closed or merged PR \"Update installation.md\" (#59583)"},{"Id":"2795693610","IsPullRequest":true,"CreatedAt":"2025-01-17T15:05:20","Actor":"pkozlowski-opensource","Number":"59599","RawContent":null,"Title":"Linked signal shared with refactor","State":"open","Body":"Use the linkedSignal implementation from the primitives package.\r\n\r\nThis PR builds on top of https://github.com/angular/angular/pull/59501 and will be ready to merge only when https://github.com/angular/angular/pull/59501 lands.\r\n\r\n","Url":"https://github.com/angular/angular/pull/59599","RelatedDescription":"Open PR \"Linked signal shared with refactor\" (#59599)"},{"Id":"2795598796","IsPullRequest":true,"CreatedAt":"2025-01-17T14:22:10","Actor":"crisbeto","Number":"59597","RawContent":null,"Title":"fix(core): handle shadow DOM encapsulated component with HMR","State":"open","Body":"When a component is created with shadow DOM encapsulation, we attach a shadow root to it. When the component is re-created during HMR, it was throwing an error because only one shadow root can be attached to a node at a time.\r\n\r\nSince there's no way to detach a shadow root from a node, these changes resolve the issue by making a shallow clone of the element, replacing it and using the clone for any future updates.\r\n\r\nFixes #59588.\r\n","Url":"https://github.com/angular/angular/pull/59597","RelatedDescription":"Open PR \"fix(core): handle shadow DOM encapsulated component with HMR\" (#59597)"},{"Id":"2795444011","IsPullRequest":true,"CreatedAt":"2025-01-17T13:08:16","Actor":"crisbeto","Number":"59596","RawContent":null,"Title":"fix(core): HMR not matching component that injects ViewContainerRef","State":"open","Body":"If a component injects `ViewContainerRef`, its `LView` gets wrapped in an empty `LContainer` and the container's host becomes the `LView`. The HMR logic wasn't accounting for this which meant that such components wouldn't be replaced.\r\n\r\nFixes #59592.","Url":"https://github.com/angular/angular/pull/59596","RelatedDescription":"Open PR \"fix(core): HMR not matching component that injects ViewContainerRef\" (#59596)"},{"Id":"2795386928","IsPullRequest":true,"CreatedAt":"2025-01-17T12:38:14","Actor":"crisbeto","Number":"59595","RawContent":null,"Title":"fix(compiler-cli): disable tree shaking during HMR","State":"open","Body":"When HMR is enabled, we need to capture the dependencies used in a template and forward them to the HMR replacement function. One half of this process is static, meaning that we can't change it after the initial compilation. Tree shaking becomes a problem in such a case, because the user can change the template in a way that changes the set of dependencies which will start mismatching with the static part of the HMR code.\r\n\r\nThese changes disable the tree shaking when HMR is enabled to ensure that the dependencies stay stable.\r\n\r\nFixes #59581.\r\n","Url":"https://github.com/angular/angular/pull/59595","RelatedDescription":"Open PR \"fix(compiler-cli): disable tree shaking during HMR\" (#59595)"},{"Id":"2795180690","IsPullRequest":true,"CreatedAt":"2025-01-17T11:47:11","Actor":"crisbeto","Number":"59593","RawContent":null,"Title":"fix(core): preserve dependencies when replacing metadata","State":"closed","Body":"ngtsc can produce a different set of `dependencies` in the generate metadata depending on the template. This can cause the replacer file and the call that invokes it to be out of sync.\r\n\r\nThese changes work around the issue by copying the dependencies from the old definition to the new one.\r\n\r\nFixes #59581.\r\n","Url":"https://github.com/angular/angular/pull/59593","RelatedDescription":"Closed or merged PR \"fix(core): preserve dependencies when replacing metadata\" (#59593)"},{"Id":"2795281976","IsPullRequest":false,"CreatedAt":"2025-01-17T11:41:48","Actor":"GuillaumeNury","Number":"59594","RawContent":null,"Title":"RecursiveVisitor does not iterate over templateAttrs of Template nodes","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler\n\n### Is this a regression?\n\nNo\n\n### Description\n\nIn the [visitTemplate method of RecursiveVisitor](https://github.com/angular/angular/blob/4e6017a9f5cda389c5fbf4f2c1519ce1bba23e11/packages/compiler/src/render3/r3_ast.ts#L657), it misses a `visitAll$1(this, template.templateAttrs);`.\n\nIt my be related to @crisbeto issue : https://github.com/angular/angular/issues/57094. He added a workaround by adding a `canVisitStructuralAttributes` in `TemplateCheckWithVisitor`. Could it be fixed in `RecursiveVisitor` as well?\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n \n\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: npm 10.9.2\nOS: darwin arm64\n\nAngular: undefined\n... \n\nPackage Version\n------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/cli 19.1.1\n@angular/compiler 19.1.1\n@schematics/angular 19.1.1\ntypescript 5.7.3\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59594","RelatedDescription":"Open issue \"RecursiveVisitor does not iterate over templateAttrs of Template nodes\" (#59594)"},{"Id":"2795165079","IsPullRequest":false,"CreatedAt":"2025-01-17T10:54:15","Actor":"serfreeman1337","Number":"59592","RawContent":null,"Title":"ViewContainerRef breaks HMR","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nIf a component has `ViewContainerRef` injected changing its template does not trigger live reload.\n\n```ts\nimport { Component, inject, ViewContainerRef } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = 'test-app';\n\n private viewContainerRef = inject(ViewContainerRef); \n}\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: npm 11.0.0\nOS: linux x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59592","RelatedDescription":"Open issue \"ViewContainerRef breaks HMR\" (#59592)"},{"Id":"2795082567","IsPullRequest":true,"CreatedAt":"2025-01-17T10:51:51","Actor":"crisbeto","Number":"59591","RawContent":null,"Title":"fix(compiler-cli): preserve all HMR dependencies","State":"closed","Body":"Previously when generating the HMR code, we would determine only the dependencies used within the component's metadata so that they can be passed along both to the HMR replacer file and the HMR event listener callback. This turns out to be problematic, because changing the template will change which symbols are referenced in the metadata, causing the replacer and callback to be out of sync.\r\n\r\nThese changes resolve the issue by capturing all the top-level dependencies, except the ones that won't generate runtime code (e.g. interfaces).\r\n\r\nFixes #59581.","Url":"https://github.com/angular/angular/pull/59591","RelatedDescription":"Closed or merged PR \"fix(compiler-cli): preserve all HMR dependencies\" (#59591)"},{"Id":"2795037155","IsPullRequest":true,"CreatedAt":"2025-01-17T09:58:27","Actor":"hawkgs","Number":"59589","RawContent":null,"Title":"refactor(devtools): styles management","State":"open","Body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [x] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [ ] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [x] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n\r\nSCSS files are scattered across a few directories. There is some duplication as well.\r\n\r\n## What is the new behavior?\r\n\r\n1. Move all styles in a single folder as close as possible to `ng-devtools` component – as stated in the section above there had been SCSS files that resided in the app wrappers (the shell and demo apps) or the main `devtools/` directory. There were also duplicated browser-specific SCSS files in each app wrapper. This change should, hopefully, make style management a bit easier. Each app wrapper still retains a `styles.scss` which should ultimately be used only for applying styles that are specific to that app wrapper, not the devtools.\r\n\r\n2. Set a browser class to the document body – this is an improvement of #46037. Basically, additionally to loading browser-specific global styles, we also set a browser-specific class to the body. We can use that for any granular or component-based styles.\r\n\r\n3. SCSS mixins – right now the theme styles are applied via `:host-context()`. What the mixins do is to encapsulate that logic in case it changes (or the class names change). The mixins also provide a parameter for targeting a specific browser. Eventually, some of these mixins might render useless, so we can drop them.\r\n\r\n**Next changes**\r\n\r\n- Converting to the theme mixins\r\n- Extracting some of the colors and creating actual themes based on them\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No\r\n","Url":"https://github.com/angular/angular/pull/59589","RelatedDescription":"Open PR \"refactor(devtools): styles management\" (#59589)"},{"Id":"2794608383","IsPullRequest":true,"CreatedAt":"2025-01-17T09:45:40","Actor":"AndrewKushnir","Number":"59584","RawContent":null,"Title":"test(platform-server): fix flaky incremental hydration test","State":"closed","Body":"This commit updates a test setup to define a global `ngServerMode` correctly for a test that was emulating client-only behavior. The flag could've been set by prior tests and depending on its state, the test was acting differently.\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No","Url":"https://github.com/angular/angular/pull/59584","RelatedDescription":"Closed or merged PR \"test(platform-server): fix flaky incremental hydration test\" (#59584)"},{"Id":"2794291985","IsPullRequest":true,"CreatedAt":"2025-01-17T09:30:54","Actor":"AndrewKushnir","Number":"59579","RawContent":null,"Title":"test(platform-server): fix flaky hydration test","State":"closed","Body":"This commit updates testing setup logic to apply correct `document` reference, which should be used by the runtime. Previously, the timing of that operation was less predictable and in some cases led to reusing document state from previous tests.\r\n\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No","Url":"https://github.com/angular/angular/pull/59579","RelatedDescription":"Closed or merged PR \"test(platform-server): fix flaky hydration test\" (#59579)"},{"Id":"2794684170","IsPullRequest":false,"CreatedAt":"2025-01-17T07:23:45","Actor":"Bobokhuja","Number":"59586","RawContent":null,"Title":"Why HttpFeature interface fields starting with \"ɵ\" symbol?","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncommon\n\n### Is this a regression?\n\nNo\n\n### Description\n\nhttps://github.com/angular/angular/blob/main/packages/common/http/src/provider.ts\nline: 62-75\n\n```\nexport interface HttpFeature {\n ɵkind: KindT;\n ɵproviders: Provider[];\n}\n\nfunction makeHttpFeature(\n kind: KindT,\n providers: Provider[],\n): HttpFeature {\n return {\n ɵkind: kind,\n ɵproviders: providers,\n };\n}\n```\n\nin the HttpFeature interface fields startsWith unknown symbol character\n\n### Please provide a link to a minimal reproduction of the bug\n\nhttps://github.com/angular/angular/blob/main/packages/common/http/src/provider.ts\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\n\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59586","RelatedDescription":"Closed issue \"Why HttpFeature interface fields starting with \"ɵ\" symbol?\" (#59586)"},{"Id":"2794952075","IsPullRequest":false,"CreatedAt":"2025-01-17T06:18:01","Actor":"emnljs","Number":"59588","RawContent":null,"Title":"HMR Ionic Angular live reload not working (ViewEncapsulation.ShadowDom)","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nWhen using Ionic and Angular, during `ionic serve`, changes on the code does not trigger live reload. Also, some instances render white page removing all elements on save.\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 20.17.0\nPackage Manager: npm 10.8.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59588","RelatedDescription":"Open issue \"HMR Ionic Angular live reload not working (ViewEncapsulation.ShadowDom)\" (#59588)"},{"Id":"2794384495","IsPullRequest":false,"CreatedAt":"2025-01-17T03:09:25","Actor":"jusfeel","Number":"59582","RawContent":null,"Title":"hmr causes element disappear","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nNo\n\n### Description\n\nAfter upgrading to 19.1, template change keeps causing strange behaviors: \n\n- binding stops until I resize the browser window (variable binding with checkbox on the page for example)\n- my change simply does not appear not even a total page reload until I restart ng server\n- element disappear after any change happening on template ex. a nested component inside the template just disappears after I made tiny change on the template to trigger a hmr\n\nI had to use `no-hmr` ng server --no-hmr to avoid this from happening. \n\nSo, it seems it's related to hmr.\n\nBinding failure appears quite often on wsl2 but not appearing on Ubuntu 24 machine.\n\nThe element disappearing happens on both wsl2 and Linux. \n```\nDistributor ID: Ubuntu\nDescription: Ubuntu 24.04.1 LTS\nRelease: 24.04\nCodename: noble\n```\n```\nAngular CLI: 19.1.0\nNode: 22.12.0\nPackage Manager: npm 10.9.0\nOS: linux x64\n\nAngular: 19.1.0\n... animations, cli, common, compiler, compiler-cli, core, forms\n... localize, platform-browser, platform-browser-dynamic\n... platform-server, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1900.7\n@angular-devkit/build-angular 19.1.0\n@angular-devkit/core 19.1.0 (cli-only)\n@angular-devkit/schematics 19.1.0\n@angular/cdk 19.0.5\n@schematics/angular 19.1.0\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n\n\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\n\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59582","RelatedDescription":"Open issue \"hmr causes element disappear\" (#59582)"},{"Id":"2794345058","IsPullRequest":false,"CreatedAt":"2025-01-17T02:47:00","Actor":"msmallest","Number":"59581","RawContent":null,"Title":"bug(HMR): removing components selectors from a template causes inconsistent behavior with other components in template","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nCommenting out or entirely removing a component selector (``) causes odd behavior. \n\nTake the following example, and imagine I just did `ng serve` in a fresh CLI generated (19.1.1) app, which had components a/b/c generated as inline template and inline style with the default `

a works!

` and so on.\n\n```ts\n@Component({\n selector: 'app-root',\n // templateUrl: './app.component.html', // also applies to external\n template: `\n \n \n \n\n {{version.full}}\n `,\n styleUrl: './app.component.scss',\n imports: [AComponent, BComponent, CComponent],\n})\nexport class AppComponent {\n version = VERSION;\n}\n```\n\nIf I removed ``, the view now only shows the template of `` and the version. However, this is the rendered body of ``, using either file-based or inline template:\n\n```html\n

b works!

19.1.1
\n```\n\nOther variants\n\nRemoving ``\n```html\n

a works!

19.1.1
\n````\n\nRemoving ``\n```html\n

a works!

b works!

19.1.1
\n````\n\nTrends:\n\n- When removing A or B, C's host element stays but is empty. But when removing C, A and B properly render and there is no C.\n- Not really an issue with non component HTML elements, such as a `

stuff

` tag in the `` template. And the untagged full version I had for my reference was also fine. However, components still are spotty like above when removed and in the same template as primitive elements or text (edited: clarify).\n\n### Please provide a link to a minimal reproduction of the bug\n\nhttps://github.com/msmallest/hmr-issue-multiple-components\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 20.11.1\nPackage Manager: npm 10.2.4\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\nMy reproduction has 3 branches. \n\n- `main` aka CLI generated with a 19.1.1 global\n- `19.1.1` aka I bumped `main` with the actual latest in the `package.json`\n- `nightlies-19.1.1+` that points at all the nightlies (edit: and resolved with `--force`).\n\nMy examples I pasted were from `main`. I observed the same view behavior in `19.1.1` as `main` but did not check for the exact DOM in `19.1.1`. Same story for the nightly but the DOM did look the same at a glance, including the strange C behavior. \n\nAdditionally, I didn't look as close as in this reproduction, but the end behavior I initially observed in a large vanilla Angular workspace monorepo of module based apps that I got to what resolves to `19.1.1` for `@angular/core`.","Url":"https://github.com/angular/angular/issues/59581","RelatedDescription":"Open issue \"bug(HMR): removing components selectors from a template causes inconsistent behavior with other components in template\" (#59581)"},{"Id":"2794309660","IsPullRequest":false,"CreatedAt":"2025-01-17T02:25:28","Actor":"NateRadebaugh","Number":"59580","RawContent":null,"Title":"linkedSignal should provide previous value to computation fn without source","State":"open","Body":"### Which @angular/* package(s) are relevant/related to the feature request?\n\n_No response_\n\n### Description\n\nCurrently, the only way to get the previous value of a linkedSignal is via a source/computation object.\n\n> When the value of the computation changes, the value of the `linkedSignal` changes to the computation result.\n> https://angular.dev/guide/signals/linked-signal\n\nUltimately, I see value in the simple `linkedSignal` API to provide the `previous` value as well.\n\ncurrent:\n```ts\nexport function linkedSignal(\n computation: () => D,\n options?: {equal?: ValueEqualityFn>},\n): WritableSignal;\n```\n\nproposed:\n```ts\nexport function linkedSignal(\n computation: (previous?: D) => D,\n options?: {equal?: ValueEqualityFn>},\n): WritableSignal;\n```\n\nAs an aside, I'm not really sure why we have a separate `source` input here since we could have multiple sources and they'd all automatically be handled by the same logic as a normal `computed`, so I don't really see the value in having an explicit input object separate from the simpler API which mostly mirrors `computed`.\n\n### Proposed solution\n\n```ts\nexport function linkedSignal(\n computation: (previous?: D) => D,\n options?: {equal?: ValueEqualityFn>},\n): WritableSignal;\n```\n\n### Alternatives considered\n\nThis is not ideal:\n\n```ts\nprotected readonly columnSettingsKey = linkedSignal({\n source: this.columnSettings,\n computation: (source, prev) => {\n const preVal = prev?.value ?? 0;\n\n return preVal + 1;\n },\n });\n```\n\nnot sure if this is an anti-pattern, but this is feels cleaner to me, since I do not care about the previous source value, only the previous computed value\n```ts\nprotected readonly columnSettingsKey = linkedSignal((prev) => {\n // trigger when:\n this.columnSettings();\n\n const preVal = prev?? 0;\n return preVal + 1;\n });\n```","Url":"https://github.com/angular/angular/issues/59580","RelatedDescription":"Open issue \"linkedSignal should provide previous value to computation fn without source\" (#59580)"},{"Id":"2794059379","IsPullRequest":true,"CreatedAt":"2025-01-16T23:59:25","Actor":"atscott","Number":"59578","RawContent":null,"Title":"fix(zone.js): `discardPeriodicTasks` should remove periodic tasks fro…","State":"open","Body":"…m scheduler queue\r\n\r\nPrior to this commit, `discardPeriodicTasks` would not remove the tasks from the scheduler queue. As a result, they would still execute after ticking beyond their scheduled time.\r\n\r\nfixes #59577\r\n","Url":"https://github.com/angular/angular/pull/59578","RelatedDescription":"Open PR \"fix(zone.js): `discardPeriodicTasks` should remove periodic tasks fro…\" (#59578)"},{"Id":"2793892283","IsPullRequest":false,"CreatedAt":"2025-01-16T22:14:04","Actor":"ChrisMBarr","Number":"59577","RawContent":null,"Title":"`tick` fires too many times in v19 compared to v18 in unit tests","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncore\n\n### Is this a regression?\n\nYes\n\n### Description\n\nI have an Angular 18 service that would update a `BehaviorSubject` once a minute, to track time in the application. I have unit tests for this, which pass. When I upgrade to Angualr 19, my tests no longer passed. It seemed to be an issue with how `tick` works, which I see mentioned in [the release notes here](https://github.com/angular/angular/blob/main/CHANGELOG.md#core-8)\n\n> The timers that are used for zone coalescing and hybrid mode scheduling (which schedules an application state synchronization when changes happen outside the Angular zone) will now run in the zone above Angular rather than the root zone. This will mostly affect tests which use `fakeAsync`: these timers will now be visible to `fakeAsync` and can be affected by `tick` or `flush`.\n\nHere is my service:\n```ts\n@Injectable({ providedIn: 'root' })\nexport class TimerService {\n private isRunningSubject$ = new BehaviorSubject(false);\n private totalDurationMin = 0;\n private totalDurationMinutesSubject$ = new BehaviorSubject(this.totalDurationMin);\n private timerSubscription = new Subscription();\n\n public totalDurationMinutes$ = this.totalDurationMinutesSubject$.asObservable();\n public isRunning$ = this.isRunningSubject$.asObservable();\n\n public start(): void {\n this.isRunningSubject$.next(true);\n this.totalDurationMinutesSubject$.next(this.totalDurationMin);\n\n this.timerSubscription = interval(60 * 1000).subscribe({\n next: () => {\n this.totalDurationMin++;\n this.totalDurationMinutesSubject$.next(this.totalDurationMin);\n },\n });\n }\n\n public stop(): void {\n this.isRunningSubject$.next(false);\n this.timerSubscription.unsubscribe();\n }\n}\n```\n\nAnd here is my unit test which passes in Angular 18, but fails in 19\n\n```ts\nit('should update the observables and start the timer', fakeAsync(() => {\n //skip initial emit, the start of the timer, and then then next 4 minute ticks\n service.totalDurationMinutes$.pipe(skip(6)).subscribe({\n next: (val) => {\n console.log(`minutes: ${val}`);\n expect(val).toEqual(5);\n },\n });\n\n service.start();\n tick(60 * 1000 * 5); //simulate 5 minutes passing\n\n discardPeriodicTasks();\n}));\n```\n\n### Please provide a link to a minimal reproduction of the bug\n\n - [Angular 18](https://stackblitz.com/edit/ng-jasmine-rbkdn2wp?file=src%2Fapp%2Ftimer.service.spec.ts)\n - [Angular 19](https://stackblitz.com/edit/ng-jasmine-rvqhvurf?file=src%2Fapp%2Ftimer.service.spec.ts)\n\n### Please provide the exception or error you saw\n\n\nThe unit test fails with `Expected 6 to equal 5.`\n\nYou'll notice that in v18, the console output contains\n```\nminutes: 5\n```\nand in v19 it contains\n```\nminutes: 5\nminutes: 6\n```\n\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 20.17.0\nPackage Manager: npm 10.9.1\nOS: win32 x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... localize, platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59577","RelatedDescription":"Open issue \"`tick` fires too many times in v19 compared to v18 in unit tests\" (#59577)"},{"Id":"2793884294","IsPullRequest":true,"CreatedAt":"2025-01-16T22:07:54","Actor":"JeanMeche","Number":"59576","RawContent":null,"Title":"feature(compiler): Add Skip Hydration diagnostic.","State":"open","Body":"The diagnostic was created in #49512 but was never added to the list of diagnostic that run.\r\n\r\nfixes #59569\r\n\r\n\r\nSince this PR enables a diagnostic, we'll need a TGP. ","Url":"https://github.com/angular/angular/pull/59576","RelatedDescription":"Open PR \"feature(compiler): Add Skip Hydration diagnostic.\" (#59576)"},{"Id":"2793735118","IsPullRequest":true,"CreatedAt":"2025-01-16T20:44:58","Actor":"arturovt","Number":"59575","RawContent":null,"Title":"fix(common): abort HTTP requests once application is destroyed","State":"open","Body":"In this commit, we abort any pending HTTP requests when the application is destroyed to prevent memory leaks and the execution of operations that should not occur once resources are released. For example, if an HTTP response is returned after the application is destroyed and someone calls `runInInjectionContext`, it would throw an error indicating that the injector has already been destroyed. This ensures a graceful cleanup, ensuring that no requests proceed once the root injector is destroyed.","Url":"https://github.com/angular/angular/pull/59575","RelatedDescription":"Open PR \"fix(common): abort HTTP requests once application is destroyed\" (#59575)"}],"ResultType":"GitHubIssue"},"AngularCli-Issues":{"Issues":[{"Id":"2797105017","IsPullRequest":false,"CreatedAt":"2025-01-18T16:43:42","Actor":"jusfeel","Number":"29396","RawContent":null,"Title":"Do Not Deprecate baseHref in i18n Configuration","State":"open","Body":"### Which @angular/* package(s) are relevant/related to the feature request?\n\nlocalize\n\n### Description:\nThe recent deprecation of the `baseHref` field in the `i18n.sourceLocale` configuration causes significant issues for projects that rely on a **shared base URL** for multiple localized builds.\n\nWhile the `subPath` feature is a welcome addition for structuring locale builds, it is limiting for developers who:\n\n1. Want locale-specific builds in subdirectories (`subPath`) without altering the `` tag in `index.html`.\n2. Depend on a static `baseHref` for all builds due to server or application constraints.\n\n### Current Behavior:\nWith `subPath` enabled:\n\nAngular modifies the `` tag in `index.html` to include the locale-specific subpath (e.g., `/zh-hans/`), and there is no built-in way to override this behavior.\nWithout `baseHref`:\n\nDevelopers are forced to implement error-prone and maintenance-heavy post-build scripts to reset the `` tag to their desired value.\n### Expected Behavior:\nProjects with `subPath` configured should still have the option to:\n\nUse `baseHref` as a static value across all locale builds.\nSeparate the functionality of `subPath` (output directory) from the `` tag in `index.html`.\n\n### Proposed solution\n\nInstead of fully deprecating `baseHref`, it could coexist with `subPath` to give developers more flexibility. Suggested behavior:\n\n1. `baseHref` **takes precedence if defined**. This ensures that:\n - The `` tag in `index.html` uses `baseHref` for all builds.\n - subPath is only used for structuring the output directory, not modifying `index.html`.\n \n2. If `baseHref` is not specified, the current `subPath` behavior remains unchanged.\n\n### Alternatives considered\n\nDevelopers are forced to implement error-prone and maintenance-heavy post-build scripts to reset the tag to their desired value.","Url":"https://github.com/angular/angular-cli/issues/29396","RelatedDescription":"Open issue \"Do Not Deprecate baseHref in i18n Configuration\" (#29396)"},{"Id":"2796915046","IsPullRequest":false,"CreatedAt":"2025-01-18T12:59:46","Actor":"Mostafa-Abdollahi","Number":"29394","RawContent":null,"Title":"angular 19.1.1 crashes serve when changing html file with HMR","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\n[vite] Pre-transform error: Failed to load url /main-HF3FQSCH.js (resolved id: /main-HF3FQSCH.js)\nafter making a a change in one my html files, served app crashesh and i get above error in terminal, i have to set hmr to false.\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nangular/cli: 19.1.1\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29394","RelatedDescription":"Closed issue \"angular 19.1.1 crashes serve when changing html file with HMR\" (#29394)"},{"Id":"2796915159","IsPullRequest":false,"CreatedAt":"2025-01-18T11:15:51","Actor":"nhnb","Number":"29395","RawContent":null,"Title":"HMR in Angular 19.1.1 breaks page reload by ignoring --serve-path","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nSince Angular 19.1.x the --serve-path parameter is ignored by hot template replacements requests. As a result the page is neither updated nor reloaded automatically. A manual reload is required.\n\nSteps to reproduce:\n\n1. Start the dev server: `ng serve --no-hmr --port 5602 --host 127.0.0.1 --serve-path /frontend`\n2. Modify a .html file\n\nResult in 19.0.x: The page is automatically reloaded\nResult in 19.1.x: Nothing happens. The old page is still shown\n\nWorkaround: Start the dev server with: `ng serve --no-hmr --port 5602 --host 127.0.0.1 --serve-path /frontend` \n\n\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\nError message: 404 http://localhost:8080/@ng/component?c=src%2Fapp%2Ffs%2Ftestform.component.ts%40TestformComponent&t=1737187096102\n\nNote the missing `/frontend/` before `@ng`\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.2\nNode: 20.18.1\nPackage Manager: yarn 1.22.19\nOS: linux x64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cdk 17.3.10\n@angular/cli 19.1.2\n@schematics/angular 19.1.2\nng-packagr 19.0.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29395","RelatedDescription":"Closed issue \"HMR in Angular 19.1.1 breaks page reload by ignoring --serve-path\" (#29395)"},{"Id":"2796784461","IsPullRequest":true,"CreatedAt":"2025-01-18T06:04:47","Actor":"angular-robot","Number":"29393","RawContent":null,"Title":"build: update angular","State":"open","Body":"This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [@angular/animations](https://redirect.github.com/angular/animations-builds) | dependencies | digest | `15d2417` -> `a3e54a0` |\n| [@angular/bazel](https://redirect.github.com/angular/bazel-builds) | devDependencies | digest | `53b5c24` -> `829fd1c` |\n| [@angular/cdk](https://redirect.github.com/angular/cdk-builds) | dependencies | digest | `331e8b4` -> `916366d` |\n| [@angular/common](https://redirect.github.com/angular/common-builds) | dependencies | digest | `20d40fe` -> `99054a9` |\n| [@angular/compiler](https://redirect.github.com/angular/compiler-builds) | dependencies | digest | `7e89c94` -> `a10855e` |\n| [@angular/compiler-cli](https://redirect.github.com/angular/compiler-cli-builds) | dependencies | digest | `67506a7` -> `31d9f74` |\n| [@angular/core](https://redirect.github.com/angular/core-builds) | dependencies | digest | `b745708` -> `bf9c0d6` |\n| [@angular/forms](https://redirect.github.com/angular/forms-builds) | dependencies | digest | `bf91d4c` -> `6e41b34` |\n| [@angular/language-service](https://redirect.github.com/angular/language-service-builds) | dependencies | digest | `37b0c5e` -> `a2885e8` |\n| [@angular/localize](https://redirect.github.com/angular/localize-builds) | dependencies | digest | `34b88cb` -> `ce382b4` |\n| [@angular/material](https://redirect.github.com/angular/material-builds) | dependencies | digest | `2b57656` -> `16d4014` |\n| [@angular/material-moment-adapter](https://redirect.github.com/angular/material-moment-adapter-builds) | dependencies | digest | `b4105c7` -> `6464fd3` |\n| [@angular/platform-browser](https://redirect.github.com/angular/platform-browser-builds) | dependencies | digest | `5ef5ac1` -> `dd003f1` |\n| [@angular/platform-browser-dynamic](https://redirect.github.com/angular/platform-browser-dynamic-builds) | dependencies | digest | `6565981` -> `f06c12c` |\n| [@angular/platform-server](https://redirect.github.com/angular/platform-server-builds) | dependencies | digest | `e9abba7` -> `9a3f501` |\n| [@angular/router](https://redirect.github.com/angular/router-builds) | dependencies | digest | `ce088d9` -> `eff7ba1` |\n| [@angular/service-worker](https://redirect.github.com/angular/service-worker-builds) | dependencies | digest | `2a2e377` -> `d51867e` |\n\n🔡 If you wish to disable git hash updates, add `\":disableDigestUpdates\"` to the extends array in your config.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"after 10:00pm every weekday,before 4:00am every weekday,every weekend\" in timezone America/Tijuana, Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/angular/dev-infra) if that's undesired.\n\n---\n\n - [ ] If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate).\n\n","Url":"https://github.com/angular/angular-cli/pull/29393","RelatedDescription":"Open PR \"build: update angular\" (#29393)"},{"Id":"2796523836","IsPullRequest":false,"CreatedAt":"2025-01-18T00:32:04","Actor":"dgp1130","Number":"29392","RawContent":null,"Title":"⚠️ Local development bugs with HMR","State":"open","Body":"### Description\n\nWe're aware of reports of local development bugs arising from Angular template HMR in 19.1.x, which has been enabled by default.\n\nPlease see https://github.com/angular/angular/issues/59602 for more context and workarounds.","Url":"https://github.com/angular/angular-cli/issues/29392","RelatedDescription":"Open issue \"⚠️ Local development bugs with HMR\" (#29392)"},{"Id":"2796421778","IsPullRequest":true,"CreatedAt":"2025-01-17T22:47:04","Actor":"dgp1130","Number":"29391","RawContent":null,"Title":"docs: release notes for the v19.1.2 release","State":"closed","Body":"Cherry-picks the changelog from the \"19.1.x\" branch to the next branch (main).","Url":"https://github.com/angular/angular-cli/pull/29391","RelatedDescription":"Closed or merged PR \"docs: release notes for the v19.1.2 release\" (#29391)"},{"Id":"2796347478","IsPullRequest":true,"CreatedAt":"2025-01-17T22:41:14","Actor":"dgp1130","Number":"29390","RawContent":null,"Title":"Bump version to \"v19.1.2\" with changelog.","State":"closed","Body":"","Url":"https://github.com/angular/angular-cli/pull/29390","RelatedDescription":"Closed or merged PR \"Bump version to \"v19.1.2\" with changelog.\" (#29390)"},{"Id":"2796183019","IsPullRequest":true,"CreatedAt":"2025-01-17T21:29:02","Actor":"clydin","Number":"29389","RawContent":null,"Title":"refactor(@angular/build): add console message to dev server when component HMR is enabled","State":"closed","Body":"An informational message has been added to the development server to ensure that users are aware that component HMR has been enabled and provide actionable steps in the event that an application reload may not behave as expected.","Url":"https://github.com/angular/angular-cli/pull/29389","RelatedDescription":"Closed or merged PR \"refactor(@angular/build): add console message to dev server when component HMR is enabled\" (#29389)"},{"Id":"2795802402","IsPullRequest":true,"CreatedAt":"2025-01-17T18:18:27","Actor":"clydin","Number":"29387","RawContent":null,"Title":"fix(@angular/build): reset component updates on dev-server index request","State":"closed","Body":"An index request from a client browser indicates a full page reload of the application should occur. In this case, the latest full output of the application should be sent to the client which would contain all separate component and incremental updates that have occurred since the last full update from the build system. To provide for this request, the individual component updates that were previously queued are now cleared to avoid reprocessing already present updates within the application output files.","Url":"https://github.com/angular/angular-cli/pull/29387","RelatedDescription":"Closed or merged PR \"fix(@angular/build): reset component updates on dev-server index request\" (#29387)"},{"Id":"2795966524","IsPullRequest":false,"CreatedAt":"2025-01-17T17:42:21","Actor":"heddendorp","Number":"29388","RawContent":null,"Title":"Since 19.1 Serve breaks on changes","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n19\n\n### Description\n\nWhen I serve my app after updating to 19.1 it works initially but when changing a lazy loaded component vite is unable to find the file apparently.\n\n### Minimal Reproduction\n\nRun yarn start and change a component\n\n### Exception or Error\n\n```text\n6:22:20 PM [vite] Internal server error: Failed to resolve import \"./chunk-MRNOOHG3.js\" from \".angular/vite-root/evorto/main.js\". Does the file exist?\n Plugin: vite:import-analysis\n File: C:/Users/hedde/code/evorto/.angular/vite-root/evorto/main.js:14:17\n 328| children: [\n 329| {\n 330| loadComponent: () => import(\"./chunk-MRNOOHG3.js\").then((m) => m.TemplateCreateComponent),\n | ^\n 331| path: \"create\"\n 332| },\n at TransformPluginContext._formatError (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47397:41)\n at TransformPluginContext.error (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47392:16)\n at normalizeUrl (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45642:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45761:39\n at async Promise.all (index 47)\n at async TransformPluginContext.transform (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45688:7)\n at async EnvironmentPluginContainer.transform (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47223:18)\n at async loadAndTransform (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:41034:27)\n at async viteTransformMiddleware (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:42478:24)\n```\n\n### Your Environment\n\n```text\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n\n\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: yarn 4.5.3\nOS: win32 x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n-----------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.1.0\n@angular/material 19.1.0\n@angular/material-luxon-adapter 19.1.0\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\nI'll try to come up with a repro that does not require secret env variables.\nUntil then, you can find the code in https://github.com/evorto-app/app\nThis is update to the state that causes issues for me.\n\nPreviously it seemed like the error was coming from a file in `dist` as I could see sentry processed instrumentation in the error message. I deleted the `dist` and `.angular` folder which did remove the mentions of sentry in the error message.","Url":"https://github.com/angular/angular-cli/issues/29388","RelatedDescription":"Closed issue \"Since 19.1 Serve breaks on changes\" (#29388)"},{"Id":"2792980206","IsPullRequest":true,"CreatedAt":"2025-01-17T15:29:45","Actor":"devversion","Number":"29371","RawContent":null,"Title":"Migrate more jasmine tests","State":"closed","Body":"See individual commits","Url":"https://github.com/angular/angular-cli/pull/29371","RelatedDescription":"Closed or merged PR \"Migrate more jasmine tests\" (#29371)"},{"Id":"2793074414","IsPullRequest":false,"CreatedAt":"2025-01-17T15:22:27","Actor":"alan-agius4","Number":"29372","RawContent":null,"Title":"HMR updates triggers full page reload when SSR is enabled","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\nIn version 19.1.0-rc.0, updating a component's stylesheet did not trigger a full page reload, whereas updates to component templates always did. \n\n### Description\n\nWhen SSR is enabled in `ng serve`, HMR updates are always followed by a full page reload.\n\n\n### Minimal Reproduction\n\n\n```bash\n$ ng new --ssr --server-routing\n$ ng s\n```\n\nNext, update the template or stylesheet of a component. In the console, you will see both `Component update sent to client(s).` and `Page reload sent to client(s).` being displayed.\n\n\n### Exception or Error\n\n```text\nWhen SSR is enabled, hot module replacement (HMR) is executed but is immediately followed by a full page reload.\n```\n\n### Your Environment\n\n```text\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n \n\nAngular CLI: 19.1.1\nNode: 20.17.0\nPackage Manager: yarn 1.22.22\nOS: linux x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser-dynamic, platform-server, router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/platform-browser 19.0.0\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29372","RelatedDescription":"Closed issue \"HMR updates triggers full page reload when SSR is enabled\" (#29372)"},{"Id":"2794884060","IsPullRequest":true,"CreatedAt":"2025-01-17T15:22:26","Actor":"alan-agius4","Number":"29381","RawContent":null,"Title":"fix(@angular/build): prevent full page reload on HMR updates with SSR enabled","State":"closed","Body":"\r\nThis commit resolves an issue where HMR would incorrectly trigger a full page reload when used with SSR.\r\n\r\nCloses #29372\r\n","Url":"https://github.com/angular/angular-cli/pull/29381","RelatedDescription":"Closed or merged PR \"fix(@angular/build): prevent full page reload on HMR updates with SSR enabled\" (#29381)"},{"Id":"2795603484","IsPullRequest":true,"CreatedAt":"2025-01-17T14:24:22","Actor":"alan-agius4","Number":"29386","RawContent":null,"Title":"refactor(@angular/build): handle relative `@ng/components`","State":"open","Body":"This update serves as a preparatory step to address #29248. The change involves modifying the line 'urlPartial' in [r3_hmr_compiler.ts](https://github.com/angular/angular/blob/4e6017a9f5cda389c5fbf4f2c1519ce1bba23e11/packages/compiler/src/render3/r3_hmr_compiler.ts#L57) to start with `./` instead of `/`.\r\n","Url":"https://github.com/angular/angular-cli/pull/29386","RelatedDescription":"Open PR \"refactor(@angular/build): handle relative `@ng/components`\" (#29386)"},{"Id":"2795555732","IsPullRequest":true,"CreatedAt":"2025-01-17T14:02:58","Actor":"devversion","Number":"29385","RawContent":null,"Title":"[19.1.x]: Migrate more jasmine tests","State":"open","Body":"Patch port of #29371 ","Url":"https://github.com/angular/angular-cli/pull/29385","RelatedDescription":"Open PR \"[19.1.x]: Migrate more jasmine tests\" (#29385)"},{"Id":"2795527250","IsPullRequest":false,"CreatedAt":"2025-01-17T13:49:11","Actor":"denisyilmaz","Number":"29384","RawContent":null,"Title":"Since 19.1: SSR Apps with `urlMatcher` in route config are breaking due to commit 6edb908","State":"open","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n19.0\n\n### Description\n\nWith 19.0 it was possible to use `UrlMatcher` functions within SSR applications. 19.1 introduced a commit 6edb908 which was meant to fix a incompatibality of `UrlMatcher` with SSR applications. I wasn't able to find any documentation that indicated `UrlMatcher` and SSR are not working together. Was this a issue that needed to be solved? The only issue i was able to find on the web was in combination with the [@angular-architects/module-federation](https://www.npmjs.com/package/@angular-architects/module-federation) library (https://dev.to/michaeljota/how-to-add-module-federation-into-your-angular-micro-frontend-apps-jmh)\n\nBefore we start refactoring our project (which requires SSR and also `UrlMatcher`) or downgrading to 19.0 I would like to know what the implications were for this \"fix\". Happy for any insights.\n\n### Minimal Reproduction\n\n1. create project with ssr enabled with 19.1+\n2. add UrlMatcher function to route\n3. open project with `ng serve`\n\n### Exception or Error\n\n```text\nError: Error(s) occurred while extracting routes:\n- The route 'en/example' uses a route matcher which is not supported.\n- The route 'en/example' uses a route matcher which is not supported.\n- The route 'en/example-2' uses a route matcher which is not supported.\n- The route 'en/example-2' uses a route matcher which is not supported.\n- The route 'example' uses a route matcher which is not supported.\n- The route 'example' uses a route matcher which is not supported.\n- The route 'example-2' uses a route matcher which is not supported.\n- The route 'example-2' uses a route matcher which is not supported.\n at eval (/../angular/.angular/cache/19.1.1/main/vite/deps_ssr/chunk-FOZQYQAA.js:10655:15)\n at _ZoneDelegate.invoke (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:369:28)\n at ZoneImpl.run (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:111:43)\n at eval (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:1221:40)\n at _ZoneDelegate.invokeTask (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:402:33)\n at ZoneImpl.runTask (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:159:47)\n at drainMicroTaskQueue (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:581:35)\n at invokeTask (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:487:21)\n at Timeout.ZoneTask.invoke (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:472:48)\n at Timeout.data.args. (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:2260:32)\n```\n\n### Your Environment\n\n```text\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n \n\nAngular CLI: 19.1.1\nNode: 20.18.1\nPackage Manager: npm 10.8.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1 (cli-only)\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.1.0\n@schematics/angular 19.1.1\nng-packagr 19.0.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29384","RelatedDescription":"Open issue \"Since 19.1: SSR Apps with `urlMatcher` in route config are breaking due to commit 6edb908\" (#29384)"},{"Id":"2795355857","IsPullRequest":false,"CreatedAt":"2025-01-17T12:44:53","Actor":"HazzMan2409","Number":"29383","RawContent":null,"Title":"ng serve with --inspect-brk hangs","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nFrom an `ng new` project if you run:\n`node --inspect-brk ./node_modules/.bin/ng serve`\n\nafter hitting play in chrome dev tools the ng serve will hang and never complete.\n\nNote this happens using nodejs 22.13.0. It doesn't occur when using nodejs 18.19.0.\n\n### Minimal Reproduction\n\nSee description.\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: npm 10.9.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29383","RelatedDescription":"Closed issue \"ng serve with --inspect-brk hangs\" (#29383)"},{"Id":"2795072814","IsPullRequest":false,"CreatedAt":"2025-01-17T10:02:53","Actor":"genomedicsmarzoli","Number":"29382","RawContent":null,"Title":"Error building with NG_BUILD_OPTIMIZE_CHUNKS=1 with Angular 19.1.1","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nWith Angular 19.1.1, in my project if I run ng build with optimize chunks I get an error.\nWith Angular 19.0.6 it works.\n\nCommand: NG_BUILD_OPTIMIZE_CHUNKS=1 ng build app --configuration production --verbose\nError: Cannot add property 0, object is not extensible\n\n\n\n\n\n\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\nBuilding...\n\n chunk-4T36XMOQ.js 12.8mb ⚠️\n chunk-JXGSWRY2.js 2.0mb ⚠️\n chunk-ZBXUQNUK.js 562.0kb\n chunk-4UB3MVEK.js 324.2kb\n chunk-6JDCJWJC.js 278.9kb\n chunk-3WSYH6XU.js 233.8kb\n chunk-7OFMGNBO.js 203.4kb\n chunk-D4PJKQDY.js 198.3kb\n chunk-JES74PKP.js 186.6kb\n ...and 63 more output files...\n\n\nDURATION[NG_READ_CONFIG]: 0.040807292s\nDURATION[NG_CREATE_PROGRAM]: 3.859811083s\nDURATION[NG_ANALYZE_PROGRAM]: 2.073732000s\nDURATION[NG_FIND_AFFECTED]: 0.003254750s\nDURATION[NG_EMIT_TS]: 2.465649125s\nDURATION[NG_DIAGNOSTICS_TOTAL]: 3.496337708s\nDURATION[NG_EMIT_JS*]: 832.883529868s [count: 3757; avg: 0.221688456s; min: 0.001637375s; max: 0.542740750s]\nTypeError: Cannot add property 0, object is not extensible\n at Array.push ()\n at LogicalExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14570:53)\n at /Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:12739:37\n at PathTracker.withTrackedEntityAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:3591:24)\n at CallExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:12737:33)\n at BinaryExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:12594:37)\n at LogicalExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14562:43)\n at LogicalExpression.getUsedBranch (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14655:41)\n at LogicalExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14556:33)\n at LogicalExpression.getUsedBranch (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14655:41)\nDURATION[OPTIMIZE_CHUNKS]: 4.411443833s\nApplication bundle generation failed. [19.970 seconds]\n\n✘ [ERROR] Chunk optimization failed\n\n Cannot add property 0, object is not extensible\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 22.11.0\nPackage Manager: npm 10.9.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core\n... elements, forms, language-service, platform-browser\n... platform-browser-dynamic, router, service-worker\n\nPackage Version\n------------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.1.0\n@angular/material 19.1.0\n@angular/material-moment-adapter 19.1.0\n@schematics/angular 19.1.1\nng-packagr 19.1.0\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n![Image](https://github.com/user-attachments/assets/8567eb22-bf4f-4d9d-8e29-748cdadc535e)","Url":"https://github.com/angular/angular-cli/issues/29382","RelatedDescription":"Open issue \"Error building with NG_BUILD_OPTIMIZE_CHUNKS=1 with Angular 19.1.1\" (#29382)"},{"Id":"2793735279","IsPullRequest":false,"CreatedAt":"2025-01-17T08:46:19","Actor":"StephenFluin","Number":"29377","RawContent":null,"Title":"SSR + Local API is a confusing experience","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nI'd love to build an app with an Angular front-end with SSR and an express backend that handles API requests. The best practices and what actually works is unclear right now.\n\nWhen you scaffold a project with --ssr, you get a `server.ts` that even says you can put APIs in there.\n\nThis doesn't seem to work with `ng serve` because `server.ts` isn't used with `ng serve` (it calls your server module directly). To get around this I created a separate api.ts that could be run independently, or from within server.ts. I also created an environments file to switch between the endpoints based on dev mode or production mode.\n\nThis feels hacky but works OK, but then I realized that `ng build` is attempting a prerender WITHOUT my APIs, so it's failing.\n\nWhat's the intended way to use Angular, SSR, and locally hosted APIs?\n\n### Minimal Reproduction\n\n`ng new test --ssr` (opt out of server routing and app engine apis)\n\nsee server.ts 'Example Express Rest API endpoints can be defined here.' - try doing this.\n\n`ng serve`\nAPIs are missing\n\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nAngular CLI: 19.1.1\nNode: 22.10.0\nPackage Manager: yarn 1.22.22\nOS: linux x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29377","RelatedDescription":"Closed issue \"SSR + Local API is a confusing experience\" (#29377)"},{"Id":"2794237931","IsPullRequest":false,"CreatedAt":"2025-01-17T07:27:54","Actor":"princemaple","Number":"29378","RawContent":null,"Title":"feat: HMR respect baseHref","State":"closed","Body":"### Command\n\nserve\n\n### Description\n\nHMR via `/@ng/...` doesn't use the `baseHref`\n\nI sometimes start multiple ng serve and use a reverse proxy to serve the apps during dev. So far everything respects baseHref and this worked flawlessly. HMR is the first thing that I encountered that not respecting baseHref and breaking my reverse proxy.\n\n### Describe the solution you'd like\n\nHMR should consider baseHref, serving dynamic content via `/base/@ng/...`\n\n### Describe alternatives you've considered\n\nI'll have to switch between apps... 🤷","Url":"https://github.com/angular/angular-cli/issues/29378","RelatedDescription":"Closed issue \"feat: HMR respect baseHref\" (#29378)"},{"Id":"2794400958","IsPullRequest":false,"CreatedAt":"2025-01-17T06:16:17","Actor":"Ruisi-Lu","Number":"29379","RawContent":null,"Title":"Error: ɵgetOrCreateAngularServerApp is not a function when using lazy loading routes in 19.1.x SSR when HMR enabled","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nWhen implementing lazy loading routes, the application fails during runtime with the following error:\n\n```\n上午10:49:31 [vite] Internal server error: ɵgetOrCreateAngularServerApp is not a function\n at C:\\Project\\ssrtest\\node_modules\\.pnpm\\@angular+build@19.1.1_@angu_5cd6b3085b9f53655a442b950631221f\\node_modules\\@angular\\build\\src\\tools\\vite\\middlewares\\ssr-middleware.js:26:38\n上午10:49:31 [vite] Pre-transform error: Failed to resolve import \"./chunk-LPMLDZGR.js\" from \".angular/vite-root/ssrtest/main.js\". Does the file exist?\n Plugin: vite:import-analysis\n File: C:/Project/ssrtest/.angular/vite-root/ssrtest/main.js:6:31\n 14 | __spreadValues({\n 15 | path: \"\",\n 16 | loadChildren: () => import(\"./chunk-LPMLDZGR.js\")\n | ^\n 17 | }, false ? { \\u0275entryName: \"src/app/test/lazy.route.ts\" } : {})\n 18 | ];\n上午10:49:31 [vite] Internal server error: Failed to resolve import \"./chunk-LPMLDZGR.js\" from \".angular/vite-root/ssrtest/main.js\". Does the file exist?\n Plugin: vite:import-analysis\n File: C:/Project/ssrtest/.angular/vite-root/ssrtest/main.js:6:31\n 14 | __spreadValues({\n 15 | path: \"\",\n 16 | loadChildren: () => import(\"./chunk-LPMLDZGR.js\")\n | ^\n 17 | }, false ? { \\u0275entryName: \"src/app/test/lazy.route.ts\" } : {})\n 18 | ];\n at TransformPluginContext._formatError (file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47397:41)\n at TransformPluginContext.error (file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47392:16)\n at normalizeUrl (file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45642:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45761:39\n```\n\n\n\n### Minimal Reproduction\n\nSteps to reproduce the issue:\n\n1. Create a new Angular project with SSR using version 19.1.0 or 19.1.1\n2. Configure routes using loadChildren\n3. Run the server\n4. Change component HTML template\n5. Observe the error in the terminal.\n\nReproduction project: https://github.com/Ruisi-Lu/angular19.1-lazyload-route-bug-reproduction-\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nAngular CLI: 19.1.1\nNode: 20.18.1\nPackage Manager: pnpm 10.0.0\nOS: win32 x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29379","RelatedDescription":"Closed issue \"Error: ɵgetOrCreateAngularServerApp is not a function when using lazy loading routes in 19.1.x SSR when HMR enabled\" (#29379)"},{"Id":"2793465938","IsPullRequest":false,"CreatedAt":"2025-01-16T18:45:55","Actor":"kemsky","Number":"29376","RawContent":null,"Title":"Consider adding migration to transform @import to @use in sass files","State":"closed","Body":"### Command\n\nupdate\n\n### Description\n\n`@import` is deprecated but `@use` is a total disaster out of nowhere, it would be nice to have migration that automatically converts sass imports to modules and puts correct namespaces.\n\n### Describe the solution you'd like\n\n_No response_\n\n### Describe alternatives you've considered\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29376","RelatedDescription":"Closed issue \"Consider adding migration to transform @import to @use in sass files\" (#29376)"},{"Id":"2793438133","IsPullRequest":true,"CreatedAt":"2025-01-16T18:18:37","Actor":"alan-agius4","Number":"29375","RawContent":null,"Title":"ci: disable Renovate updates for all stamped versions","State":"closed","Body":"This will prevent updates to any version matching the pattern `/0\\.0\\.0-/`.\r\n","Url":"https://github.com/angular/angular-cli/pull/29375","RelatedDescription":"Closed or merged PR \"ci: disable Renovate updates for all stamped versions\" (#29375)"},{"Id":"2792395430","IsPullRequest":true,"CreatedAt":"2025-01-16T18:06:30","Actor":"alan-agius4","Number":"29368","RawContent":null,"Title":"build: replace hardcoded Angular and ng-packagr peer dependencies with Bazel stamping","State":"closed","Body":"\r\nRefactor the build configuration to use Bazel stamping for Angular and ng-packagr dependencies, eliminating the need for hardcoded peer dependencies.\r\n\r\n","Url":"https://github.com/angular/angular-cli/pull/29368","RelatedDescription":"Closed or merged PR \"build: replace hardcoded Angular and ng-packagr peer dependencies with Bazel stamping\" (#29368)"},{"Id":"2792687784","IsPullRequest":false,"CreatedAt":"2025-01-16T17:06:59","Actor":"blueiceprj","Number":"29369","RawContent":null,"Title":"HMR error [plugin:vite:import-analysis] Failed to resolve import","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncore\n\n### Is this a regression?\n\nYes\n\n### Description\n\nHMR is enabled on my project (--hmr). When I change some code on template or ts file getting some like that error. Here details.\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n[plugin:vite:import-analysis] Failed to resolve import \"./chunk-4JZSMU2G.js\" from \".angular/vite-root/..../main.js\". Does the file exist?\n/........./.angular/vite-root/...../main.js:9:9\n7 | import {\n8 | AuthGuard\n9 | } from \"./chunk-4JZSMU2G.js\";\n | ^\n10 | import {\n11 | UserRouteAccessService\n at TransformPluginContext._formatError (file:///......node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47397:41)\n at TransformPluginContext.error (file:///......./node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47392:16)\n at normalizeUrl (file:///....../node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45642:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async file:///...../node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45761:39\n at async Promise.all (index 2)\n at async TransformPluginContext.transform (file:///...../node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45688:7)\n at async EnvironmentPluginContainer.transform (file:///..../node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47223:18)\n at async loadAndTransform (file:///...../node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:41034:27)\n at async viteTransformMiddleware (file:///...../node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n \n\nAngular CLI: 19.1.1\nNode: 22.12.0\nPackage Manager: npm 11.0.0\nOS: darwin x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n--------------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/build-ng-packagr 0.1002.0\n@angular-devkit/core 19.1.1 (cli-only)\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.0.5\n@angular/material 19.0.5\n@angular/material-date-fns-adapter 19.0.5\n@angular/youtube-player 19.0.5\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29369","RelatedDescription":"Closed issue \"HMR error [plugin:vite:import-analysis] Failed to resolve import\" (#29369)"},{"Id":"2793127660","IsPullRequest":true,"CreatedAt":"2025-01-16T17:06:58","Actor":"clydin","Number":"29373","RawContent":null,"Title":"fix(@angular/build): perform incremental background file updates with component updates","State":"closed","Body":"When HMR is enabled, a change to a lazy route component template may alter the names of lazy chunks. These lazy chunks must be updated within the development server so that any later non-HMR based update will have access to these chunks. To support this, the incremental results from the build process can now emit background file updates that will provide output file changes without triggering client updates.","Url":"https://github.com/angular/angular-cli/pull/29373","RelatedDescription":"Closed or merged PR \"fix(@angular/build): perform incremental background file updates with component updates\" (#29373)"},{"Id":"2793229569","IsPullRequest":true,"CreatedAt":"2025-01-16T16:44:34","Actor":"alan-agius4","Number":"29374","RawContent":null,"Title":"build: exclude `pnpm` and `dependenciesMeta` fields from published NPM packages","State":"closed","Body":"\r\n\r\nCurrently, the `pnpm` and `dependenciesMeta` fields from the root `package.json` are inadvertently copied to the `package.json` of published packages.\r\n\r\nFor example, see: https://github.com/angular/angular-devkit-schematics-builds/blob/dc4d5e0d523e3449963fa8e6efa32aee3e194e0f/package.json#L42-L52\r\n","Url":"https://github.com/angular/angular-cli/pull/29374","RelatedDescription":"Closed or merged PR \"build: exclude `pnpm` and `dependenciesMeta` fields from published NPM packages\" (#29374)"},{"Id":"2792908988","IsPullRequest":false,"CreatedAt":"2025-01-16T14:40:35","Actor":"cricke","Number":"29370","RawContent":null,"Title":"Angular 19 default app with SSR (RenderMode.Server) doesn't work with Firebase: \"TypeError: app is not a function at /workspace/bootstrap.js:10:19\"","State":"closed","Body":"### Command\n\nnew\n\n### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nThe server.ts created by either `ng new --ssr` or `ng add @angular/ssr --server-routing` doesn't work with `firebase deploy`.\n\nError: `TypeError: app is not a function at /workspace/bootstrap.js:10:19`\n\n\n### Minimal Reproduction\n\n```\nfirebase --version\n13.29.1\n\nng --version\n19.1.0\n```\n\n### Repro\n> mkdir test\n> cd test\n> ng new --ssr\n\nName: test-project\nStyle sheet format: SCSS\nServer Routing? Yes\n\n\nChange RenderMode to Server in app.routes.server.ts:\n```\nimport { RenderMode, ServerRoute } from '@angular/ssr';\n\nexport const serverRoutes: ServerRoute[] = [\n {\n path: '**',\n renderMode: RenderMode.Server\n }\n];\n\n```\n\n> firebase experiments:enable webframeworks\n\n> firebase init hosting\n\nCreate a new project: dkfjeirl\nWeb Framework: Yes\nRoot dir: \"test-project\"\nUse existing Angular codebase: Yes\nRegion: europe-west1\nGitHub: No\n\n\nModify billing to Blaze at\nhttps://console.firebase.google.com/project/dkfjeirl/usage/details\n\n\nGrant Access -> Principal: \"default Compute Service Account\" Role: \"roles/cloudbuild.builds.builder\" in project:\"dkfjeirl\" at:\nhttps://console.cloud.google.com/iam-admin/iam\n\n\n> firebase deploy\n\nVisit https://dkfjeirl.web.app/ in browser\n\n### Expected result:\nTo see the Angular default page\n\n### Actual result:\n\"Internal Server Error\"\n\n\n\n### Exception or Error\n\n```text\nCloud Function logs:\n\nUnhandled rejection\nTypeError: app is not a function at /workspace/bootstrap.js:10:19\n```\n\n### Your Environment\n\n```text\nfirebase --version\n13.29.1\n\nng --version\n19.1.0\n```\n\n### Anything else relevant?\n\nI notice that \"const app\" isn't exported in server.ts.\nExporting it (and redeploying), yields another problem: \n\n> \"Service unavailable\"\n\nwith Cloud Function logs:\n\n```\nUnhandled rejection\nTypeError: Cannot read properties of undefined (reading 'method')\nat $e.handle (file:///workspace/dist/test-project/server/server.mjs:40:6991)\nat D.handle (file:///workspace/dist/test-project/server/server.mjs:55:477)\nat a (file:///workspace/dist/test-project/server/server.mjs:65:718)\nat /workspace/bootstrap.js:10:19\n```","Url":"https://github.com/angular/angular-cli/issues/29370","RelatedDescription":"Closed issue \"Angular 19 default app with SSR (RenderMode.Server) doesn't work with Firebase: \"TypeError: app is not a function at /workspace/bootstrap.js:10:19\"\" (#29370)"},{"Id":"2792314855","IsPullRequest":true,"CreatedAt":"2025-01-16T10:27:54","Actor":"alan-agius4","Number":"29367","RawContent":null,"Title":"docs: release notes for the v19.1.1 release","State":"closed","Body":"Cherry-picks the changelog from the \"19.1.x\" branch to the next branch (main).","Url":"https://github.com/angular/angular-cli/pull/29367","RelatedDescription":"Closed or merged PR \"docs: release notes for the v19.1.1 release\" (#29367)"},{"Id":"2792297328","IsPullRequest":true,"CreatedAt":"2025-01-16T10:26:14","Actor":"alan-agius4","Number":"29366","RawContent":null,"Title":"Bump version to \"v19.1.1\" with changelog.","State":"closed","Body":"","Url":"https://github.com/angular/angular-cli/pull/29366","RelatedDescription":"Closed or merged PR \"Bump version to \"v19.1.1\" with changelog.\" (#29366)"}],"ResultType":"GitHubIssue"},"material2-Issues":{"Issues":[{"Id":"2796838648","IsPullRequest":true,"CreatedAt":"2025-01-18T08:02:01","Actor":"crisbeto","Number":"30352","RawContent":null,"Title":"fix(material/expansion): inherit shape for focus indicator","State":"open","Body":"Fixes that the focus indicator had a different shape from the header.\r\n\r\nFixes #30350.","Url":"https://github.com/angular/components/pull/30352","RelatedDescription":"Open PR \"fix(material/expansion): inherit shape for focus indicator\" (#30352)"},{"Id":"2794115737","IsPullRequest":true,"CreatedAt":"2025-01-17T21:01:31","Actor":"mmalerba","Number":"30348","RawContent":null,"Title":"fix(material/autocomplete): fix initial render logic","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30348","RelatedDescription":"Closed or merged PR \"fix(material/autocomplete): fix initial render logic\" (#30348)"},{"Id":"2793875667","IsPullRequest":true,"CreatedAt":"2025-01-17T20:47:46","Actor":"mmalerba","Number":"30347","RawContent":null,"Title":"fix(material/chip): fix chip blur timing","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30347","RelatedDescription":"Closed or merged PR \"fix(material/chip): fix chip blur timing\" (#30347)"},{"Id":"2795786220","IsPullRequest":false,"CreatedAt":"2025-01-17T15:51:23","Actor":"bmayen","Number":"30351","RawContent":null,"Title":"feat(mat-calendar): Automatically reposition \"close calendar\" button if it is offscreen","State":"open","Body":"### Feature Description\n\nWhen using keyboard navigation, the \"close calendar\" button is placed at the bottom of the calendar after tabbing through the other interactive elements in the component. If this button would be positioned offscreen, it should be repositioned into view to improve accessibility.\n\n### Use Case\n\nA user may increase the browser size to 200%, or the calendar may just be positioned toward the bottom of the screen, which may cause this close button to render offscreen when displayed. ","Url":"https://github.com/angular/components/issues/30351","RelatedDescription":"Open issue \"feat(mat-calendar): Automatically reposition \"close calendar\" button if it is offscreen\" (#30351)"},{"Id":"2794987955","IsPullRequest":false,"CreatedAt":"2025-01-17T09:33:47","Actor":"richardsengers","Number":"30350","RawContent":null,"Title":"bug(Expansion panel): strong focus indicator not respacting shape + container-shape token not working","State":"open","Body":"\n### Description\n\nExpansion panels have a default container shape. When setting strong focus indicators, the corner of the strong focus-indicator are not rounded\n\n\"Image\"\n\nIn this example, it's just a little bit, but since we have a container-shape token, this can get worse when setting the shape to full\nhttps://m3.material.io/styles/shape/shape-scale-tokens\n\nIssue 2 \nWhen setting the container-shape token to one of the values described by m3 https://m3.material.io/styles/shape/shape-scale-tokens nothing happens. It looks more like container-shape is a true or false token instead of one of the options decribed by m3\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/lhvfsmcd?file=src%2Fstyles.scss\nSteps to reproduce:\n1. Click on the first or last panel\n\n\n### Expected Behavior\n\n1. Strong focus indicator should also be rounded \n2. Token container-shape should have one of the 7 options described by m3 \n\n### Actual Behavior\n\nStrong focus indicator do not have a rounded corner\nSetting container-shape to one of the 7 values removes the rounded corners\n\n### Environment\n\nAngular CLI: 19.0.5\nNode: 22.3.0\nPackage Manager: yarn 1.22.17\nOS: win32 x64\n\nAngular: 19.0.4\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... platform-server, router, service-worker\n\nPackage Version\n--------------------------------------------------------------\n@angular-devkit/architect 0.1900.5 (cli-only)\n@angular-devkit/build-angular 19.0.5\n@angular-devkit/core 19.0.5\n@angular-devkit/schematics 19.0.5\n@angular/cdk 19.0.3\n@angular/cli 19.0.5\n@angular/material 19.0.3\n@angular/material-date-fns-adapter 19.0.3\n@schematics/angular 19.0.5\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n\n","Url":"https://github.com/angular/components/issues/30350","RelatedDescription":"Open issue \"bug(Expansion panel): strong focus indicator not respacting shape + container-shape token not working\" (#30350)"},{"Id":"2794929495","IsPullRequest":false,"CreatedAt":"2025-01-17T09:03:50","Actor":"richardsengers","Number":"30349","RawContent":null,"Title":"bug(Dialog): dialogs have default max-width of 560px for screen larger then 560px","State":"open","Body":"### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\nM2\n\n### Description\n\nA mat-dialog has a default of 560px as a max-width. \nOffcourse we can override this behaviour but to me it looks like it's a wrong default because all dialogs are max 560px when changing to the new m3\n\n\"Image\"\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/tjvfafte-mzvlpzlp?file=src%2Fexample%2Fdialog-overview-example.ts\nSteps to reproduce:\n1. Make screen larger then 560px, you will notice the dialog isn't getting larger\n\n\n### Expected Behavior\n\nWhen a width is set to the dialog, the dialog should be as wide as the given width\n\n### Actual Behavior\n\nThe dialog has a max width of 560px\n\n### Environment\n\nAngular CLI: 19.0.5\nNode: 22.3.0\nPackage Manager: yarn 1.22.17\nOS: win32 x64\n\nAngular: 19.0.4\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... platform-server, router, service-worker\n\nPackage Version\n--------------------------------------------------------------\n@angular-devkit/architect 0.1900.5 (cli-only)\n@angular-devkit/build-angular 19.0.5\n@angular-devkit/core 19.0.5\n@angular-devkit/schematics 19.0.5\n@angular/cdk 19.0.3\n@angular/cli 19.0.5\n@angular/material 19.0.3\n@angular/material-date-fns-adapter 19.0.3\n@schematics/angular 19.0.5\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n\n","Url":"https://github.com/angular/components/issues/30349","RelatedDescription":"Open issue \"bug(Dialog): dialogs have default max-width of 560px for screen larger then 560px\" (#30349)"},{"Id":"2793752150","IsPullRequest":true,"CreatedAt":"2025-01-16T21:01:03","Actor":"mmalerba","Number":"30346","RawContent":null,"Title":"fix(material/chip): fix chip blur timing","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30346","RelatedDescription":"Closed or merged PR \"fix(material/chip): fix chip blur timing\" (#30346)"},{"Id":"2793022046","IsPullRequest":true,"CreatedAt":"2025-01-16T15:10:00","Actor":"mmalerba","Number":"30345","RawContent":null,"Title":"Bump version to \"v19.2.0-next.0\" with changelog.","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30345","RelatedDescription":"Closed or merged PR \"Bump version to \"v19.2.0-next.0\" with changelog.\" (#30345)"},{"Id":"2792999349","IsPullRequest":true,"CreatedAt":"2025-01-16T14:58:39","Actor":"mmalerba","Number":"30344","RawContent":null,"Title":"docs: release notes for the v19.1.0 release","State":"closed","Body":"Cherry-picks the changelog from the \"19.1.x\" branch to the next branch (main).","Url":"https://github.com/angular/components/pull/30344","RelatedDescription":"Closed or merged PR \"docs: release notes for the v19.1.0 release\" (#30344)"},{"Id":"2792996624","IsPullRequest":true,"CreatedAt":"2025-01-16T14:52:31","Actor":"mmalerba","Number":"30343","RawContent":null,"Title":"Bump version to \"v19.1.0\" with changelog.","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30343","RelatedDescription":"Closed or merged PR \"Bump version to \"v19.1.0\" with changelog.\" (#30343)"},{"Id":"2792945331","IsPullRequest":true,"CreatedAt":"2025-01-16T14:43:51","Actor":"mmalerba","Number":"30342","RawContent":null,"Title":"Revert \"test(material/timepicker): updates timepicker.spec.ts (#30335)\"","State":"closed","Body":"This reverts commit 0df6e0347206c2496922441812330ca0b0a15f04.","Url":"https://github.com/angular/components/pull/30342","RelatedDescription":"Closed or merged PR \"Revert \"test(material/timepicker): updates timepicker.spec.ts (#30335)\"\" (#30342)"},{"Id":"2787392825","IsPullRequest":false,"CreatedAt":"2025-01-16T12:25:52","Actor":"richardsengers","Number":"30326","RawContent":null,"Title":"bug(Checkbox): strong-focus-indicators do not have a radius of 50% as default","State":"closed","Body":"\n\nI think checkboxes should have a 50% border-radius as a default.\n\nit now looks like this:\n\n\"Image\"\n\n \n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/3teh9fg3?file=src%2Fstyles.scss\n\n\n### Expected Behavior\n\nExpected:\n\n\"Image\"\n\n### Actual Behavior\n\n\"Image\"\n\n### Environment\n\nAngular CLI: 19.0.5\nNode: 22.3.0\nPackage Manager: yarn 1.22.17\nOS: win32 x64\n\nAngular: 19.0.4\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... platform-server, router, service-worker\n\nPackage Version\n--------------------------------------------------------------\n@angular-devkit/architect 0.1900.5 (cli-only)\n@angular-devkit/schematics 19.0.5\n@angular/cdk 19.0.3\n@angular/cli 19.0.5\n@angular/material 19.0.3\n@angular/material-date-fns-adapter 19.0.3\n@schematics/angular 19.0.5\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n","Url":"https://github.com/angular/components/issues/30326","RelatedDescription":"Closed issue \"bug(Checkbox): strong-focus-indicators do not have a radius of 50% as default\" (#30326)"},{"Id":"2789129679","IsPullRequest":true,"CreatedAt":"2025-01-16T12:25:51","Actor":"crisbeto","Number":"30332","RawContent":null,"Title":"fix(material/checkbox): ensure focus indicator has the correct shape","State":"closed","Body":"The specificity for the checkbox's focus indicator was very low which means that if the ripple styles are loaded later, it can be overwritten.\r\n\r\nFixes #30326.","Url":"https://github.com/angular/components/pull/30332","RelatedDescription":"Closed or merged PR \"fix(material/checkbox): ensure focus indicator has the correct shape\" (#30332)"},{"Id":"2792116549","IsPullRequest":false,"CreatedAt":"2025-01-16T09:07:34","Actor":"naaajii","Number":"30341","RawContent":null,"Title":"setting up repository locally always create issues on Windows.","State":"open","Body":"### Documentation Feedback\n\nI don't have my own system so I use my work laptop to contribute and I'm always juggling between different laptops so I have to setup again and again. Setting up repository on Ubuntu seems fairly easy & works out of the box but Windows bothers alot. I have been using a Windows 11 for past few months & whenever I find free time to contribute I struggle to run on Windows 10 & 11 all the time.\n\nI have been provided a new laptop & I'm facing issues such as:\n\n1. error Couldn't find match for in \"refs/heads/main\" for \"https://github.com/angular/dev-infra-private-ng-dev-builds.git\".\ninfo Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. \n\nSometimes gets fixed on yarn cache clear, mostly happens whenever I update the work and run yarn after a long time.\n\n2. iBazel [1:54PM]: Error writing failure to stdin: write |1: file already closed\n\nhappens all the time, gets fixed sometimes when I delete bazel folders and end all processes from task manager.\n\n3. iBazel [1:08PM]: Error starting process: fork/exec C:\\Users\\CENTRI~1\\AppData\\Local\\Temp\\bazel_script_path4055922069.bat: %1 is not a valid Win32 application.\niBazel [1:08PM]: Run start failed fork/exec C:\\Users\\CENTRI~1\\AppData\\Local\\Temp\\bazel_script_path4055922069.bat: %1 is not a valid Win32 application.\n\nI checked the bat file and its 0kb so I'm not sure whats causing it to generate an empty file. I also have added BAZEL_SH to the environment variables. I also came across other issues where peopled claimed its caused by WSL on Windows but I have had it disabled it on both work laptops. I also have used bash and Windows command to run the project but errors are always the same.\n\n### Affected documentation page\n\nhttps://github.com/angular/components/blob/1e5663636eb38d5556f500840dd7e00dd9950b70/DEV_ENVIRONMENT.md?plain=1","Url":"https://github.com/angular/components/issues/30341","RelatedDescription":"Open issue \"setting up repository locally always create issues on Windows.\" (#30341)"},{"Id":"2791906861","IsPullRequest":false,"CreatedAt":"2025-01-16T07:27:18","Actor":"jolenius","Number":"30340","RawContent":null,"Title":"bug(COMPONENT): chip with autocomplete adds two chips when selecting filtered option using keyboard","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nWhen combining chips with the autocomplete component you get two entries of chips when filtering the list of options by typing a few characters and then selecting an option by using your keyboard (arrow down and enter).\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/2qghuqyq?file=src%2Fexample%2Fchips-autocomplete-example.ts\n(stackblitz fetched from the Chips Autocomplete example at https://material.angular.io/components/chips/examples)\nSteps to reproduce:\n1. Enter a few characters to start filtering the autocomplete list\n2. Use the keyboard to select a option (up/down arrow followed by enter)\n\n\n### Expected Behavior\n\nOnly the selected option from the autocomplete list is added the the chips\n\n### Actual Behavior\n\nThe selected option from the autocomplete list and the current value of the input field are added as two sepparate entries to the chips\n\n### Environment\n\n- Angular: 19\n- CDK/Material: 19\n- Browser(s): Edge\n- Operating System (e.g. Windows, macOS, Ubuntu): Windows, Linux (RHEL 8)\n","Url":"https://github.com/angular/components/issues/30340","RelatedDescription":"Open issue \"bug(COMPONENT): chip with autocomplete adds two chips when selecting filtered option using keyboard\" (#30340)"},{"Id":"2791891364","IsPullRequest":false,"CreatedAt":"2025-01-16T07:19:10","Actor":"jolenius","Number":"30339","RawContent":null,"Title":"bug(COMPONENT): chip with autocomplete does not clear the input field after adding new chip","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nWhen combining chips with the autocomplete component the input field isn't cleared between each entry. Despite setting the input fields value to a empty string at the end of my function that is invoked by the optionSelected event.\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/2qghuqyq?file=src%2Fexample%2Fchips-autocomplete-example.ts\n(stackblitz fetched from the Chips Autocomplete example at https://material.angular.io/components/chips/examples)\nSteps to reproduce:\n1. Enter a few characters to start filtering the autocomplete list\n2. Select an item on the list by using your mouse\n\n\n### Expected Behavior\n\nAfter clicking an item from the autocomplete list the input field should be cleared\n\n### Actual Behavior\n\nThe value in the input field is unchanged \n\n### Environment\n\n- Angular: 19\n- CDK/Material: 19\n- Browser(s): Edge\n- Operating System (e.g. Windows, macOS, Ubuntu): Linux (RHEL 8)\n","Url":"https://github.com/angular/components/issues/30339","RelatedDescription":"Open issue \"bug(COMPONENT): chip with autocomplete does not clear the input field after adding new chip\" (#30339)"},{"Id":"2791729100","IsPullRequest":false,"CreatedAt":"2025-01-16T05:19:28","Actor":"codestrelaoffice","Number":"30338","RawContent":null,"Title":"bug(COMPONENT): Date Picker Icon Comes on a new Line","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nIn the datepicker calendar icon comes in new line on.\n\n### Reproduction\n\nStackBlitz link: \nSteps to reproduce:\n1. \n2.\n\n\n### Expected Behavior\n\nCalendar icon should come in the same line \n\n### Actual Behavior\n\nIt should come in same line as the date .\n\n### Environment\n\n- Angular:\n- CDK/Material:\n- Browser(s):\n- Operating System (e.g. Windows, macOS, Ubuntu):\n","Url":"https://github.com/angular/components/issues/30338","RelatedDescription":"Open issue \"bug(COMPONENT): Date Picker Icon Comes on a new Line\" (#30338)"},{"Id":"2787954564","IsPullRequest":true,"CreatedAt":"2025-01-16T01:44:11","Actor":"wagnermaciel","Number":"30329","RawContent":null,"Title":"fix(material/slider): tick mark positioning","State":"closed","Body":"Fixes #29409 ","Url":"https://github.com/angular/components/pull/30329","RelatedDescription":"Closed or merged PR \"fix(material/slider): tick mark positioning\" (#30329)"},{"Id":"2790607442","IsPullRequest":true,"CreatedAt":"2025-01-15T22:04:20","Actor":"essjay05","Number":"30335","RawContent":null,"Title":"test(material/timepicker): update timepicker tests to match timepicker toggle changes","State":"closed","Body":"Updates Timepicker.spec.ts to match recent changes to Timepicker toggle having\r\na default aria-label.","Url":"https://github.com/angular/components/pull/30335","RelatedDescription":"Closed or merged PR \"test(material/timepicker): update timepicker tests to match timepicker toggle changes\" (#30335)"},{"Id":"2791020821","IsPullRequest":false,"CreatedAt":"2025-01-15T21:56:58","Actor":"mudcovered","Number":"30337","RawContent":null,"Title":"docs-bug(material): Documentation on how to use M3 styles is completely inadequate","State":"open","Body":"### Documentation Feedback\n\nThere are no examples showing how to use the overrides to generate appropriate colour schemes. As an example I was trying to mimic the -mat-toolbar azure/blue colour scheme in the angular material 19 toolbar but was unable to figure it out.\n\nThe documentation tells me what styles exist but provides no examples on how to achieve useful results.\n\nIn comparison the M2 themes which had default color decisions made this far easier for beginners.\n\nIts not clear whether this is a problem that impacts other component documentation so this could be the tip of a much larger iceberg.\n\n\n\n\n### Affected documentation page\n\nhttps://material.angular.io/components/toolbar/styling","Url":"https://github.com/angular/components/issues/30337","RelatedDescription":"Open issue \"docs-bug(material): Documentation on how to use M3 styles is completely inadequate\" (#30337)"},{"Id":"2790834149","IsPullRequest":false,"CreatedAt":"2025-01-15T20:55:39","Actor":"uttamvs-rp","Number":"30336","RawContent":null,"Title":"feat(mat-table): The column ordering in the Mat Table isn't working when the columns and rows are based on different arrays","State":"closed","Body":"### Feature Description\n\nI've got a situation where I need to use two different column arrays for the material table. The column rendering array has two properties: fieldName (which is the actual field from the backend API response) and displayName (the name that shows up in the UI). Here's a quick example:\n\n`{{column.displayName}}{{element[column.fieldName]}}`\n\nSo, when I'm setting up the row, I've got this simple string array that just has the field names from the array above. This way, the actual data can connect with the table columns. Here's a quick example:\n\n``\n\nSo after this code change, the material column reordering isn't working anymore. Does anyone know what might be going on or how to fix it? Or is this just a bug with the Angular Material table?\n\nI've put together a working StackBlitz example here so you can get a better idea of what's going on: [StackBlitz ](https://stackblitz.com/edit/x39nz1ba?file=src%2Fexample%2Ftable-reorderable-example.ts)\n\n\n\n \n\n### Use Case\n\n_No response_","Url":"https://github.com/angular/components/issues/30336","RelatedDescription":"Closed issue \"feat(mat-table): The column ordering in the Mat Table isn't working when the columns and rows are based on different arrays\" (#30336)"},{"Id":"2790427198","IsPullRequest":true,"CreatedAt":"2025-01-15T17:24:50","Actor":"amysorto","Number":"30334","RawContent":null,"Title":"feat(material/theming): Expose tonal palette values in the system level variables","State":"open","Body":"","Url":"https://github.com/angular/components/pull/30334","RelatedDescription":"Open PR \"feat(material/theming): Expose tonal palette values in the system level variables\" (#30334)"},{"Id":"2790405378","IsPullRequest":false,"CreatedAt":"2025-01-15T17:16:02","Actor":"andrewseguin","Number":"30333","RawContent":null,"Title":"feat(cdk/drag-drop): allow drag to be canceled after dragged over list","State":"open","Body":"### Feature Description\n\nItems actively dragged from one list to another, but without releasing the drag, cannot be canceled. The list changes immediately and the user cannot undo the action. This issue tracks the request to enable an API that lets dragging be canceled, e.g. by undo'ing the list changes (or not change the lists at all) if the item is not dropped onto a drop container\n\n### Use Case\n\n_No response_","Url":"https://github.com/angular/components/issues/30333","RelatedDescription":"Open issue \"feat(cdk/drag-drop): allow drag to be canceled after dragged over list\" (#30333)"},{"Id":"2788964200","IsPullRequest":false,"CreatedAt":"2025-01-15T08:02:32","Actor":"mazhar-fis","Number":"30331","RawContent":null,"Title":"bug(Paginator): Disabled buttons are still focusable via keyboard","State":"closed","Body":"### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n18.0.0\n\n### Description\n\nThe disabled button(Navigation buttons for First Page, Previous Page, Next Page, Last Page) of paginator are now accessible, hover-able and focusable via keyboard.\n\n\"Image\"\n\n### Reproduction\n\nStackBlitz link: \nSteps to reproduce:\n1. Hover over disabled navigation buttons\n2. navigate to disabled navigation buttons using keyboard\n\n\n### Expected Behavior\n\nThe disabled button(Navigation buttons for First Page, Previous Page, Next Page, Last Page) of paginator should not be accessible, hover-able and focusable via keyboard.\n\n\"Image\"\n\n### Actual Behavior\n\nThe disabled button(Navigation buttons for First Page, Previous Page, Next Page, Last Page) of paginator are now accessible, hover-able and focusable via keyboard.\n\n\"Image\"\n\n### Environment\n\n- Angular: 19.0.0\n- CDK/Material: 19.0.0\n- Browser(s): Chrome, Firefox, Edge\n- Operating System (e.g. Windows, macOS, Ubuntu): Windows\n","Url":"https://github.com/angular/components/issues/30331","RelatedDescription":"Closed issue \"bug(Paginator): Disabled buttons are still focusable via keyboard\" (#30331)"},{"Id":"2788196859","IsPullRequest":true,"CreatedAt":"2025-01-14T20:13:44","Actor":"giorgi1441","Number":"30330","RawContent":null,"Title":"turns accordion class into signals","State":"open","Body":"","Url":"https://github.com/angular/components/pull/30330","RelatedDescription":"Open PR \"turns accordion class into signals\" (#30330)"},{"Id":"2787699602","IsPullRequest":false,"CreatedAt":"2025-01-14T16:32:32","Actor":"MikaStark","Number":"30328","RawContent":null,"Title":"feat(typography): use variable fonts instead of statics one by default","State":"open","Body":"### Feature Description\n\nHi 🙌\nI propose replacing the current static fonts for Roboto and Material Symbols with their variable font counterparts.\n\nIt will bring minor but valuable improvements especially for newcomers :\n\n- Reduced file sizes and HTTP requests.\n- Greater control over font properties (e.g., weight, width).\n- Aligns with the latest web standards.\n\nThis change would enhance Angular Material’s efficiency, design capabilities, and relevance.\n\nHere is a quick example of new default font import proposal : \n\n```html\n\n\n\n\n```\n\nThank you for considering this request.\n\n### Use Case\n\n- Enhance getting started with Angular Material experience\n- Promote modern font technologies\n- Align with latest web standards\n- Better maintenability and performance","Url":"https://github.com/angular/components/issues/30328","RelatedDescription":"Open issue \"feat(typography): use variable fonts instead of statics one by default\" (#30328)"},{"Id":"2787491147","IsPullRequest":false,"CreatedAt":"2025-01-14T15:26:34","Actor":"alexeagle","Number":"30327","RawContent":null,"Title":"feat(build): reduce boilerplate duplication in material.angular.io folder","State":"open","Body":"### Feature Description\n\nSince the github.com/angular/material.angular.io repo was brought into this repo in a subfolder, it brought its root files with it:\n\n- A separate yarn workspace\n- `.bazelversion` (7.3) which differs from the root (5.0)\n- Other Bazel files defining the repository root\n- Linter/formatter configurations\n\nWe may want to brainstorm a sequencing of infra changes to improve this, especially if engineers need to make commits that affect files both inside and outside this subdirectory, or need a functional Bazel dependency graph so targets can refer to others across that boundary.\n\nNote that GHA workflows were merged in #30288 as a beginning to solving this issue.\n\n### Use Case\n\n_No response_","Url":"https://github.com/angular/components/issues/30327","RelatedDescription":"Open issue \"feat(build): reduce boilerplate duplication in material.angular.io folder\" (#30327)"},{"Id":"2787386857","IsPullRequest":false,"CreatedAt":"2025-01-14T14:53:47","Actor":"gnemeth-ibl","Number":"30325","RawContent":null,"Title":"bug(CdkDrag): CdkDrag stays outside the boundary if it's size change","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nIf the size of the drag boundary changes, the draggable element does not recalculate its position and remains outside the boundary.\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/l8npyx4z?file=src%2Fexample%2Fcdk-drag-drop-boundary-example.html,src%2Fexample%2Fcdk-drag-drop-boundary-example.ts\nSteps to reproduce:\n1. Drag the element to the right edge\n2. Click the resize button\n3. The drag element is outside the boundary\n\n![Image](https://github.com/user-attachments/assets/9f3d444f-8b85-4bd1-9a4c-715ba4a5c7ca)\n\n\n### Expected Behavior\n\nThe drag element should stay inside the boundary,\n\n### Actual Behavior\n\nIt stays outside the boundary.\n\n### Environment\n\n- Angular: 19.0.5\n- CDK/Material: 19.0.5\n- Browser(s): Chrome 131.0.6778.265\n- Operating System (e.g. Windows, macOS, Ubuntu): Win 11\n","Url":"https://github.com/angular/components/issues/30325","RelatedDescription":"Open issue \"bug(CdkDrag): CdkDrag stays outside the boundary if it's size change\" (#30325)"},{"Id":"2787168171","IsPullRequest":true,"CreatedAt":"2025-01-14T13:44:07","Actor":"Wilt","Number":"30324","RawContent":null,"Title":"Optional typing of MatSelectChange","State":"open","Body":"This event should be typed. Added type and fallback to any to make this optional and backwards compatible.","Url":"https://github.com/angular/components/pull/30324","RelatedDescription":"Open PR \"Optional typing of MatSelectChange\" (#30324)"},{"Id":"2786930360","IsPullRequest":true,"CreatedAt":"2025-01-14T11:45:39","Actor":"mistrykaran91","Number":"30323","RawContent":null,"Title":"fix(cdk/stepper): Linear stepper after initialization navigating to previous step issue","State":"open","Body":"Set all the previous steps as interacted if it's linear step and is not the first step.\r\n\r\nFixes #15449","Url":"https://github.com/angular/components/pull/30323","RelatedDescription":"Open PR \"fix(cdk/stepper): Linear stepper after initialization navigating to previous step issue\" (#30323)"}],"ResultType":"GitHubIssue"}},"RunOn":"2025-01-19T03:30:02.5476546Z","RunDurationInMilliseconds":1664} \ No newline at end of file +{"Data":{"Angular-Issues":{"Issues":[{"Id":"2797873066","IsPullRequest":false,"CreatedAt":"2025-01-20T02:27:55","Actor":"kzhdev","Number":"59616","RawContent":null,"Title":"WebSocket onopen callback invokation throws exception","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nNo\n\n### Description\n\nI'm trying to use WebSocket. The WbSocket's onopen invokation callback throws the following exception:\n\n`\nTypeError [ERR_INVALID_ARG_TYPE]: The \"event\" argument must be an instance of Event. Received an instance of Event\n at WebSocket.dispatchEvent (node:internal/event_target:757:13)\n at fireEvent (node:internal/deps/undici/undici:11637:14)\n at #onConnectionEstablished (node:internal/deps/undici/undici:12806:9)\n at node:internal/deps/undici/undici:12614:66\n at Object.processResponse (node:internal/deps/undici/undici:11980:11)\n at node:internal/deps/undici/undici:10709:23\n at _ZoneDelegate.invokeTask (D:\\repo\\coinbase\\coinbase\\.angular\\vite-root\\coinbase\\node_modules\\zone.js\\fesm2015\\zone-node.js:402:33)\n at ZoneImpl.runTask (D:\\repo\\coinbase\\coinbase\\.angular\\vite-root\\coinbase\\node_modules\\zone.js\\fesm2015\\zone-node.js:159:47)\n at drainMicroTaskQueue (D:\\repo\\coinbase\\coinbase\\.angular\\vite-root\\coinbase\\node_modules\\zone.js\\fesm2015\\zone-node.js:581:35)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5) {\n code: 'ERR_INVALID_ARG_TYPE'\n}\n`\n\nHere is how to reproduce the issue:\n\n1. Create a WebSocket service:\n\n`import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MarketDataService {\n\n private WS_API_URL = \"wss://advanced-trade-ws.coinbase.com\";\n private _ws: WebSocket;\n\n constructor() {\n this._ws = new WebSocket(this.WS_API_URL);\n this._ws.addEventListener(\"open\", (event:Event) => {\n console.log(event);\n });\n this._ws.onmessage = (data: MessageEvent) => {\n console.log(data);\n }; \n this._ws.onerror = (ev) => { console.error(ev); };\n this._ws.onclose = (ev: CloseEvent) => {\n console.info(ev);\n }\n }\n}\n`\n2. Simple inject the Service in the app.component.ts\n\n`import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { MarketDataService } from './services/market_data.service';\n\n@Component({\n selector: 'app-root',\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.scss'\n})\nexport class AppComponent {\n title = 'coinbase';\n\n constructor(md_Service: MarketDataService) {\n }\n}\n`\n\n### Please provide a link to a minimal reproduction of the bug\n\nSee the description\n\n### Please provide the exception or error you saw\n\n```true\nTypeError [ERR_INVALID_ARG_TYPE]: The \"event\" argument must be an instance of Event. Received an instance of Event\n at WebSocket.dispatchEvent (node:internal/event_target:757:13)\n at fireEvent (node:internal/deps/undici/undici:11637:14)\n at #onConnectionEstablished (node:internal/deps/undici/undici:12806:9)\n at node:internal/deps/undici/undici:12614:66\n at Object.processResponse (node:internal/deps/undici/undici:11980:11)\n at node:internal/deps/undici/undici:10709:23\n at _ZoneDelegate.invokeTask (D:\\repo\\coinbase\\coinbase\\.angular\\vite-root\\coinbase\\node_modules\\zone.js\\fesm2015\\zone-node.js:402:33)\n at ZoneImpl.runTask (D:\\repo\\coinbase\\coinbase\\.angular\\vite-root\\coinbase\\node_modules\\zone.js\\fesm2015\\zone-node.js:159:47)\n at drainMicroTaskQueue (D:\\repo\\coinbase\\coinbase\\.angular\\vite-root\\coinbase\\node_modules\\zone.js\\fesm2015\\zone-node.js:581:35)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5) {\n code: 'ERR_INVALID_ARG_TYPE'\n}\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: npm 10.9.2\nOS: win32 x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.1.0\n@angular/material 19.1.0\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59616","RelatedDescription":"Closed issue \"WebSocket onopen callback invokation throws exception\" (#59616)"},{"Id":"2797833366","IsPullRequest":false,"CreatedAt":"2025-01-19T21:12:46","Actor":"eneajaho","Number":"59615","RawContent":null,"Title":"Discussion: How to name functions that compose signals, inject fn & destroy ref?","State":"open","Body":"### Which @angular/* package(s) are relevant/related to the feature request?\n\ncore\n\n### Description\n\nCreating composables in Angular is really easy nowadays with the help of (inject, DestroyRef & signals), just like we can do custom hooks in react or composable fns in Vue. \nMy question to the Angular team and the community is: how to properly name these functions? \n\nIf a function uses **inject** internally (either to inject DestroyRef, or some other token), I think we should properly showcase that the function needs to be called in an injection context, that's why we went with `injectX` pattern in `ngxtension`, so that devs always make sure those are called in an injection context. \n\nIf a function just composes signals (without any usage of **effect** which also needs an injection context), how should we name those functions? \n\nExample with a counter:\n\n```ts\nexport function createCounter(initialValue: number = 0): WritableSignal & {increase: () => void; decrease: () => void; reset: () => void} {\n const c = signal(initialValue);\n \n return Object.assign(c, { \n increase: () => {\n c.update(x => x + 1);\n },\n decrease: () => {\n c.update(x => x - 1);\n },\n reset: () => {\n c.set(initialValue);\n }\n })\n}\n\n// usage\n\n@Component()\nexport class SomeCmp {\n c = createCounter();\n\n onClick() {\n this.c.increase();\n this.c.decrease();\n\n this.c.reset();\n this.c.set(100);\n this.c.update(x => x + 2);\n }\n}\n```\n\nWhat would be the best way to go forward for the naming convention of these type of functions? \n- **useCounter**? - follows the same pattern as the Vue and React community\n- **createCounter**? - makes sense as it creates a counter that we can update using specific functions\n- **injectCounter**? (doesn't make much sense as we don't need inject here)\n\n\n--- \n\nIn cases of functions that need inject, should we also use these other patterns inside of `injectX` ? \n\nExample with network state. \n\nHaving `injectNetwork` as a fn name tells me as a dev that I need injection context, because I've subscribed to some browser state and I need to clean up the subscription. \n\nHaving `createNetwork` doesn't make much sense here as we are not creating a network state, but we're reading it from somewhere else. \n\nHaving `useNetwork` feels better but can be misused because the name doesn't tell me that it needs injection context. \n\n---\n\nHow should we go with this?\n\n### Proposed solution\n\nUse `createX` when we create functions that provide some special abilities to signals. \nUse `injectX` when we create functions that use inject to inject DestroyRef or other deps internally (I'm not totally sold on this one). \n\n### Alternatives considered\n\nUse `useX` as other communities. ","Url":"https://github.com/angular/angular/issues/59615","RelatedDescription":"Open issue \"Discussion: How to name functions that compose signals, inject fn & destroy ref?\" (#59615)"},{"Id":"2797750928","IsPullRequest":true,"CreatedAt":"2025-01-19T17:54:59","Actor":"arturovt","Number":"59614","RawContent":null,"Title":"refactor(core): prevent duplicating `isRootView` checks","State":"open","Body":"The `type_checks` module already exposes a utility function that checks whether `LView` is marked as a root view. There is no need to check flags in other places, as we can reuse the helper function.","Url":"https://github.com/angular/angular/pull/59614","RelatedDescription":"Open PR \"refactor(core): prevent duplicating `isRootView` checks\" (#59614)"},{"Id":"2797606873","IsPullRequest":true,"CreatedAt":"2025-01-19T12:45:51","Actor":"ChristopherPHolder","Number":"59613","RawContent":null,"Title":"docs: reduce cost of reflow","State":"open","Body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [ ] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [ ] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [ ] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [x] Other... Please describe:\r\n\r\nPerformance improvement to the [docs](https://angular.dev)\r\n\r\n## What is the current behavior?\r\n\r\n\r\nOn the [Component testing scenarios page](https://angular.dev/guide/testing/components-scenarios) the rendering performance is low. \r\n\r\nThe current cost of a `full-relayout` is approximately 800ms on a mid-tier mobile device.\r\n\r\n![image](https://github.com/user-attachments/assets/6bfb773b-3537-4e16-aad4-2812a9e7422b)\r\n\r\nIssue Number: N/A\r\n\r\n## What is the new behavior?\r\n\r\nUsing CSS containment the `full-relayout` on a mid-tier device takes \r\n![image](https://github.com/user-attachments/assets/1d10ac3c-e033-4d4e-b95e-83d70e80c635)\r\n\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No\r\n\r\n\r\n\r\n## Other information\r\n\r\nThe `cost of a full-relayout` was calculated by:\r\n\r\n> Changing the zoom level of the page causes recalculations of styles. When running the script multiple times in a row while recording in the performance tab, you can and get rough estimations about the different parts of the DOM.\r\n\r\nThe script and many other can be found at [@push-based/awesome-web-performance-snippets](https://github.com/push-based/awesome-web-performance-snippets/tree/main/snippets/full-relayout)\r\n","Url":"https://github.com/angular/angular/pull/59613","RelatedDescription":"Open PR \"docs: reduce cost of reflow\" (#59613)"},{"Id":"2797557887","IsPullRequest":false,"CreatedAt":"2025-01-19T10:45:22","Actor":"naveedahmed1","Number":"59612","RawContent":null,"Title":"Feature Request: Intelligent Handling of `@` Character in Angular Templates","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler\n\n### Is this a regression?\n\nYes\n\n### Description\n\n## **Description**\nThe new control flow syntax introduced in Angular (e.g., `@if`, `@for`) significantly improves template readability and logic management. However, it introduces an unexpected limitation when writing an `@` character directly in HTML templates, which is common in scenarios such as email addresses.\n\nCurrently, when the `@` character is used in text (e.g., `someone@example.com`), the compiler throws the following error:\n\n> \"If you meant to write the `@` character, you should use the `@` HTML entity instead. [plugin angular-compiler]\"\n\nThis creates unnecessary friction and impacts developer experience, particularly when working with textual content that naturally includes the `@` character.\n\n---\n\n## **Proposed Solution**\nThe Angular compiler should be enhanced to intelligently distinguish between:\n1. **Control flow statements** (e.g., `@if`, `@for`) and \n2. **Textual uses of the `@` character** (e.g., email addresses, usernames, etc.).\n\nInstead of requiring developers to escape the `@` character with the `@` entity, the compiler could determine its context and handle it appropriately:\n- Treat it as a control flow directive if it matches a valid syntax (e.g., `@if`, `@for`).\n- Treat it as plain text if it appears within a string or text node.\n\n---\n\n## **Benefits**\n- **Improved Developer Experience**: Eliminates unnecessary escaping for the `@` character in common scenarios like email addresses, making templates cleaner and more intuitive.\n- **Backward Compatibility**: Existing templates using `@` for the `@` character will remain functional.\n- **Aligns with Expectations**: Developers expect `@` to work as plain text unless explicitly used as a control flow statement.\n\n---\n\n## **Example**\n### Current Behavior\n```html\n

Contact us at: @example.com

\n\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.0.6\nNode: 22.13.0\nPackage Manager: npm 10.9.2\nOS: win32 x64\n\nAngular: 19.0.5\n... animations, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, service-worker\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1900.6\n@angular-devkit/build-angular 19.0.6\n@angular-devkit/core 19.0.6\n@angular-devkit/schematics 19.0.6\n@angular/cdk 19.1.0-next.1\n@angular/cli 19.0.6\n@angular/fire 18.0.1\n@angular/google-maps 19.1.0-next.1\n@angular/material 19.1.0-next.1\n@angular/pwa 19.0.6\n@angular/ssr 19.0.6\n@schematics/angular 19.0.6\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59612","RelatedDescription":"Open issue \"Feature Request: Intelligent Handling of `@` Character in Angular Templates\" (#59612)"},{"Id":"2797544533","IsPullRequest":true,"CreatedAt":"2025-01-19T10:12:07","Actor":"arturovt","Number":"59611","RawContent":null,"Title":"refactor(core): prevent duplicating `componentOffset` checks","State":"open","Body":"The `type_checks` module already exposes a utility function that checks whether `TNode.componentOffset` is greater than -1. There is no need to check that property manually in other places, as we can reuse the helper function.","Url":"https://github.com/angular/angular/pull/59611","RelatedDescription":"Open PR \"refactor(core): prevent duplicating `componentOffset` checks\" (#59611)"},{"Id":"2797051491","IsPullRequest":true,"CreatedAt":"2025-01-19T10:05:51","Actor":"arturovt","Number":"59607","RawContent":null,"Title":"refactor(core): access `firstChild` through constant","State":"closed","Body":"`.firstChild` is a frequently used property name throughout the code. We can reduce the overall bundle size by extracting its name into a variable. The minifier will shorten the variable name to a single letter, so every usage of `firstChild` will be replaced with something like `[f]`, which reduces the number of bytes compared to repeatedly using the string `.firstChild`.","Url":"https://github.com/angular/angular/pull/59607","RelatedDescription":"Closed or merged PR \"refactor(core): access `firstChild` through constant\" (#59607)"},{"Id":"2797158303","IsPullRequest":false,"CreatedAt":"2025-01-18T22:08:17","Actor":"JCornat","Number":"59610","RawContent":null,"Title":"HMR fatal error URL constructor with browserslistrc file","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nHello, I have an issue with the new HMR when my project contains a ` .browserslistrc` file.\n\nIt contains : \n\n```\n> 0.2% and not dead\n```\n\nWhen compiling, I have these warnings :\n\n```\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/app.component.ts:13:99:\n 13 │ ... + encodeURIComponent(t), import.meta.url).href).then(m => m.de...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/app.component.ts:13:361:\n 13 │ ...efined\" || ngDevMode) && (import.meta.hot && import.meta.hot.on...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/app.component.ts:13:380:\n 13 │ ...e) && (import.meta.hot && import.meta.hot.on(\"angular:component...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/empty/empty.component.ts:11:114:\n 11 │ ... + encodeURIComponent(t), import.meta.url).href).then(m => m.de...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/empty/empty.component.ts:11:369:\n 11 │ ...efined\" || ngDevMode) && (import.meta.hot && import.meta.hot.on...\n ╵ ~~~~~~~~~~~\n\n\n▲ [WARNING] \"import.meta\" is not available in the configured target environment (\"chrome109.0\", \"edge131.0\", \"firefox115.0\", \"ios11.0\", \"opera114.0\", \"safari16.6\" + 5 overrides) and will be empty [empty-import-meta]\n\n src/app/empty/empty.component.ts:11:388:\n 11 │ ...e) && (import.meta.hot && import.meta.hot.on(\"angular:component...\n ╵ ~~~~~~~~~~~\n```\n\nAnd when I load the app with Firefox or Chrome, I have this fatal error \n\n```\nUncaught TypeError: URL constructor: /@ng/component?c=src%2Fapp%2Fempty%2Fempty.component.ts%40C7zEmptyComponent&t=1737229993392 is not a valid URL. main.js:39:27\n C7zEmptyComponent_HmrLoad main.js:39\n empty.component.ts:7\n empty.component.ts:7\n C7zEmptyComponent_HmrLoad main.js:39\n empty.component.ts:7\n empty.component.ts:7\n```\n\n\nWhen I remove the ` .browserslistrc` file, I have no more errors.\n\nThank you for your time !\n\n### Please provide a link to a minimal reproduction of the bug\n\nhttps://github.com/JCornat/angular-19-1-hmr-bug\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.2\nNode: 22.4.1\nPackage Manager: npm 10.8.1\nOS: linux x64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cli 19.1.2\n@schematics/angular 19.1.2\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n","Url":"https://github.com/angular/angular/issues/59610","RelatedDescription":"Closed issue \"HMR fatal error URL constructor with browserslistrc file\" (#59610)"},{"Id":"2797066899","IsPullRequest":false,"CreatedAt":"2025-01-18T16:36:38","Actor":"LuckyT89","Number":"59608","RawContent":null,"Title":"Add link to Language Service page from the Installation page","State":"open","Body":"### Describe the problem that you experienced\n\nIt would be helpful to have a blurb somewhere on the Installation page of the documentation with a recommendation to setup the Language Service extension and a link to that page of the documentation. For new Angular developers, this is the first place they will come to learn how to setup a new project and get going. The Language Service page is way further down in the documentation and a new developer could potentially spend a very long time without this critical editor extension until they finally stumble upon that page. This should be highlighted at the very start of their journey. \n\n### Enter the URL of the topic with the problem\n\nhttps://angular.dev/installation\n\n### Describe what you were looking for in the documentation\n\n_No response_\n\n### Describe the actions that led you to experience the problem\n\n_No response_\n\n### Describe what you want to experience that would fix the problem\n\n_No response_\n\n### Add a screenshot if that helps illustrate the problem\n\n_No response_\n\n### If this problem caused an exception or error, please paste it here\n\n```true\n\n```\n\n### If the problem is browser-specific, please specify the device, OS, browser, and version\n\n```true\n\n```\n\n### Provide any additional information here in as much as detail as you can\n\n```true\n\n```","Url":"https://github.com/angular/angular/issues/59608","RelatedDescription":"Open issue \"Add link to Language Service page from the Installation page\" (#59608)"},{"Id":"2796997111","IsPullRequest":false,"CreatedAt":"2025-01-18T14:07:54","Actor":"robertIsaac","Number":"59606","RawContent":null,"Title":"offline service worker and SSR don't work together for http call that never happen in browser side","State":"open","Body":"### Which @angular/* package(s) are relevant/related to the feature request?\n\nservice-worker\n\n### Description\n\nright now thanks to the default http cache when you enable hydration some http calls will never get triggered in the browser (like when it's needed for header/footer/sidenav ... etc)\nbut this has negative side-effect on the offline caching (with dataGroups), that since these calls never happened they will never be cached\nso when the user go offline that API calls will fail, and once they fail the service worker will stop trying to make the app work offline (and since they are in the application root they will happen before any other call which makes the whole application not working offline)\nhere is a reproduc of the problem https://github.com/robertIsaac/offline-ssr\n\nthe only alternative now is to exclude these APIs from being cached, but this harm the performance score of the website (specially the Cumulative Layout Shift)\n\n### Proposed solution\n\nthe responses returned with the SSR should be part of the offline cache\n\n### Alternatives considered\n\nto give a way to make the first http call cacheable, but second call to go through\nbecause now when I try to make http call only in the browser, it still hit the cache\n```\n if (isPlatformBrowser(this.platformId)) {\n this.httpClient.get('http://localhost:4200/api/foo').subscribe();\n }\n```\neven with setTimeout\n```\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.httpClient.get('http://localhost:5147/api/foo.json').subscribe(data => {\n });\n }, 1000)\n }\n```","Url":"https://github.com/angular/angular/issues/59606","RelatedDescription":"Open issue \"offline service worker and SSR don't work together for http call that never happen in browser side\" (#59606)"},{"Id":"2796986193","IsPullRequest":false,"CreatedAt":"2025-01-18T13:44:47","Actor":"bogui","Number":"59605","RawContent":null,"Title":"TypeError: $localize is not a function after HMR Component update sent to client(s)","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nlocalize, compiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nAfer changes on template, the HMR sent to browser does not load (no changes are reflected) and when navigate from that component to another and then back to the changed one it does not show (it's broken) and there is a error message in the dev console (not in the terminal where ng serve is executed). The error says - \"ERROR TypeError: $localize is not a function\". I have tested it on edge, chrome and firefox (including private mode) - the error shows on all three of them.\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\ncore.mjs:20865 Angular is running in development mode.\ncore.mjs:6672 ERROR TypeError: $localize is not a function\n at consts (partners-table.component.ts:252:28)\n at createTView (core.mjs:13028:58)\n at getOrCreateComponentTView (core.mjs:13003:24)\n at createRootComponentView (core.mjs:17535:47)\n at ComponentFactory.create (core.mjs:17410:25)\n at ViewContainerRef2.createComponent (core.mjs:17825:43)\n at _RouterOutlet.activateWith (router.mjs:2785:31)\n at ActivateRoutes.activateRoutes (router.mjs:3227:28)\n at router.mjs:3183:12\n at Array.forEach ()\n at ActivateRoutes.activateChildRoutes (router.mjs:3182:25)\n at ActivateRoutes.activateRoutes (router.mjs:3233:14)\n at router.mjs:3183:12\n at Array.forEach ()\n at ActivateRoutes.activateChildRoutes (router.mjs:3182:25)\nhandleError @ core.mjs:6672\nnext @ core.mjs:35097\nConsumerObserver2.next @ Subscriber.js:90\nSubscriber2._next @ Subscriber.js:59\nSubscriber2.next @ Subscriber.js:32\n(anonymous) @ Subject.js:41\nerrorContext @ errorContext.js:23\nSubject2.next @ Subject.js:31\nemit @ core.mjs:6063\n(anonymous) @ core.mjs:6558\ninvoke @ zone.js:369\nrun @ zone.js:111\nrunOutsideAngular @ core.mjs:6420\nonHandleError @ core.mjs:6558\nhandleError @ zone.js:373\nrunGuarded @ zone.js:124\napi.microtaskDrainDone @ zone.js:2325\ndrainMicroTaskQueue @ zone.js:588\ninvokeTask @ zone.js:487\ninvokeTask @ zone.js:1138\nglobalCallback @ zone.js:1169\nglobalZoneAwareCallback @ zone.js:1202\nclient:907 [vite] server connection lost. Polling for restart...\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:998\nhandleMessage @ client:909\nonMessage @ client:298\n(anonymous) @ client:446\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\nclient:979 WebSocket connection to 'ws://localhost:4200/' failed: \nping @ client:979\nwaitForSuccessfulPing @ client:1004\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.2\nNode: 23.5.0 (Unsupported)\nPackage Manager: npm 11.0.0\nOS: linux x64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... localize, platform-browser, platform-browser-dynamic, router\n... service-worker\n\nPackage Version\n------------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cdk 19.1.0\n@angular/cli 19.1.2\n@angular/material 19.1.0\n@angular/material-moment-adapter 19.1.0\n@schematics/angular 19.1.2\nng-packagr 19.1.0\nrxjs 7.8.1\ntypescript 5.7.3\nwebpack 5.97.1\nzone.js 0.15.0\n \nWarning: The current version of Node (23.5.0) is not supported by Angular.\n```\n\n### Anything else?\n\nThis is an old project working well until Angular 19.0 (included). It's mix of standalone components and modules - it's being refactored slowly to standalone.","Url":"https://github.com/angular/angular/issues/59605","RelatedDescription":"Open issue \"TypeError: $localize is not a function after HMR Component update sent to client(s)\" (#59605)"},{"Id":"2796520756","IsPullRequest":false,"CreatedAt":"2025-01-18T00:30:26","Actor":"dgp1130","Number":"59602","RawContent":null,"Title":"⚠️ Local development bugs with HMR","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nWe're aware of reports of local development bugs arising from Angular template HMR in 19.1.x, which has been enabled by default.\n\nList of known issues:\n\n* #59581\n* #59592\n* angular/angular-cli#29248\n\nWe're actively investigating and fixing these issues to create a smooth HMR experience out of the box. Production builds and releases are not affected. If you discover any additional HMR challenges which don't appear to be related to the linked issues above, verify that you are on a recent version (19.1.x), and please [file a new issue](http://github.com/angular/angular/issues/) and link it here so we can triage and investigate.\n\n### Workarounds\n\nIn the meantime, if you encounter any problems relating to HMR, you can work around them in three ways:\n\n1. Refresh the page \\- This loads a fresh copy of your application with up to date code. \n2. `ng serve \\--no-hmr` \\- This disables HMR for your local devserver and automatically refreshes the page on any code changes. \n3. Disable HMR for your project \\- Configuring `angular.json` will disable HMR for all `ng serve` invocations by default. \n * This is useful for a project with a large number of developers without needing to communicate these workarounds to all contributors. \n * Remember to re-enable once the relevant issues are fixed\\!\n\n```json\n{\n \"projects\": {\n \"my-project\": {\n \"architect\": {\n \"serve\": {\n \"options\": {\n \"hmr\": false\n }\n }\n }\n }\n }\n}\n```\n\nThank you for sharing any HMR issues and helping improve Angular one bugfix at a time. We're committed to fully stabilizing this feature and excited to bring improved build performance to everyone.","Url":"https://github.com/angular/angular/issues/59602","RelatedDescription":"Open issue \"⚠️ Local development bugs with HMR\" (#59602)"},{"Id":"2795657862","IsPullRequest":true,"CreatedAt":"2025-01-17T18:00:59","Actor":"arturovt","Number":"59598","RawContent":null,"Title":"fix(core): cleanup stash listener when app is destroyed","State":"closed","Body":"In this commit, we clean up the reference to the function set by the environment initializer, as the function closure may capture injected elements and prevent them from being properly garbage collected.","Url":"https://github.com/angular/angular/pull/59598","RelatedDescription":"Closed or merged PR \"fix(core): cleanup stash listener when app is destroyed\" (#59598)"},{"Id":"2795988669","IsPullRequest":true,"CreatedAt":"2025-01-17T17:41:35","Actor":"pkozlowski-opensource","Number":"59601","RawContent":null,"Title":"Runtime refactor component ref followup","State":"open","Body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [ ] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [ ] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [ ] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n\r\n\r\nIssue Number: N/A\r\n\r\n\r\n## What is the new behavior?\r\n\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [ ] No\r\n\r\n\r\n\r\n\r\n\r\n## Other information\r\n","Url":"https://github.com/angular/angular/pull/59601","RelatedDescription":"Open PR \"Runtime refactor component ref followup\" (#59601)"},{"Id":"2795925877","IsPullRequest":true,"CreatedAt":"2025-01-17T17:05:57","Actor":"mturco","Number":"59600","RawContent":null,"Title":"feat(core): pass signal node to throwInvalidWriteToSignalErrorFn","State":"open","Body":"Updates the signature of the `throwInvalidWriteToSignalError` to take the signal node in question and pass it along to the throwInvalidWriteToSignalErrorFn handler function. This allows the handler to e.g. include the signal name in error messaging.\r\n\r\n## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [x] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [x] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [x] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [ ] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n`throwInvalidWriteToSignalError` calls `throwInvalidWriteToSignalErrorFn` with no arguments.\r\n\r\nIssue Number: N/A\r\n\r\n\r\n## What is the new behavior?\r\n`throwInvalidWriteToSignalError` calls `throwInvalidWriteToSignalErrorFn` with the signal node as an argument.\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No\r\n\r\n\r\n\r\n\r\n\r\n## Other information\r\n","Url":"https://github.com/angular/angular/pull/59600","RelatedDescription":"Open PR \"feat(core): pass signal node to throwInvalidWriteToSignalErrorFn\" (#59600)"},{"Id":"2794602981","IsPullRequest":true,"CreatedAt":"2025-01-17T15:21:52","Actor":"Mukhammadullo","Number":"59583","RawContent":null,"Title":"Update installation.md","State":"closed","Body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [ ] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [ ] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [ ] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n\r\n\r\nIssue Number: N/A\r\n\r\n\r\n## What is the new behavior?\r\n\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [ ] No\r\n\r\n\r\n\r\n\r\n\r\n## Other information\r\n","Url":"https://github.com/angular/angular/pull/59583","RelatedDescription":"Closed or merged PR \"Update installation.md\" (#59583)"},{"Id":"2795693610","IsPullRequest":true,"CreatedAt":"2025-01-17T15:05:20","Actor":"pkozlowski-opensource","Number":"59599","RawContent":null,"Title":"Linked signal shared with refactor","State":"open","Body":"Use the linkedSignal implementation from the primitives package.\r\n\r\nThis PR builds on top of https://github.com/angular/angular/pull/59501 and will be ready to merge only when https://github.com/angular/angular/pull/59501 lands.\r\n\r\n","Url":"https://github.com/angular/angular/pull/59599","RelatedDescription":"Open PR \"Linked signal shared with refactor\" (#59599)"},{"Id":"2795598796","IsPullRequest":true,"CreatedAt":"2025-01-17T14:22:10","Actor":"crisbeto","Number":"59597","RawContent":null,"Title":"fix(core): handle shadow DOM encapsulated component with HMR","State":"open","Body":"When a component is created with shadow DOM encapsulation, we attach a shadow root to it. When the component is re-created during HMR, it was throwing an error because only one shadow root can be attached to a node at a time.\r\n\r\nSince there's no way to detach a shadow root from a node, these changes resolve the issue by making a shallow clone of the element, replacing it and using the clone for any future updates.\r\n\r\nFixes #59588.\r\n","Url":"https://github.com/angular/angular/pull/59597","RelatedDescription":"Open PR \"fix(core): handle shadow DOM encapsulated component with HMR\" (#59597)"},{"Id":"2795444011","IsPullRequest":true,"CreatedAt":"2025-01-17T13:08:16","Actor":"crisbeto","Number":"59596","RawContent":null,"Title":"fix(core): HMR not matching component that injects ViewContainerRef","State":"open","Body":"If a component injects `ViewContainerRef`, its `LView` gets wrapped in an empty `LContainer` and the container's host becomes the `LView`. The HMR logic wasn't accounting for this which meant that such components wouldn't be replaced.\r\n\r\nFixes #59592.","Url":"https://github.com/angular/angular/pull/59596","RelatedDescription":"Open PR \"fix(core): HMR not matching component that injects ViewContainerRef\" (#59596)"},{"Id":"2795386928","IsPullRequest":true,"CreatedAt":"2025-01-17T12:38:14","Actor":"crisbeto","Number":"59595","RawContent":null,"Title":"fix(compiler-cli): disable tree shaking during HMR","State":"open","Body":"When HMR is enabled, we need to capture the dependencies used in a template and forward them to the HMR replacement function. One half of this process is static, meaning that we can't change it after the initial compilation. Tree shaking becomes a problem in such a case, because the user can change the template in a way that changes the set of dependencies which will start mismatching with the static part of the HMR code.\r\n\r\nThese changes disable the tree shaking when HMR is enabled to ensure that the dependencies stay stable.\r\n\r\nFixes #59581.\r\n","Url":"https://github.com/angular/angular/pull/59595","RelatedDescription":"Open PR \"fix(compiler-cli): disable tree shaking during HMR\" (#59595)"},{"Id":"2795180690","IsPullRequest":true,"CreatedAt":"2025-01-17T11:47:11","Actor":"crisbeto","Number":"59593","RawContent":null,"Title":"fix(core): preserve dependencies when replacing metadata","State":"closed","Body":"ngtsc can produce a different set of `dependencies` in the generate metadata depending on the template. This can cause the replacer file and the call that invokes it to be out of sync.\r\n\r\nThese changes work around the issue by copying the dependencies from the old definition to the new one.\r\n\r\nFixes #59581.\r\n","Url":"https://github.com/angular/angular/pull/59593","RelatedDescription":"Closed or merged PR \"fix(core): preserve dependencies when replacing metadata\" (#59593)"},{"Id":"2795281976","IsPullRequest":false,"CreatedAt":"2025-01-17T11:41:48","Actor":"GuillaumeNury","Number":"59594","RawContent":null,"Title":"RecursiveVisitor does not iterate over templateAttrs of Template nodes","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler\n\n### Is this a regression?\n\nNo\n\n### Description\n\nIn the [visitTemplate method of RecursiveVisitor](https://github.com/angular/angular/blob/4e6017a9f5cda389c5fbf4f2c1519ce1bba23e11/packages/compiler/src/render3/r3_ast.ts#L657), it misses a `visitAll$1(this, template.templateAttrs);`.\n\nIt my be related to @crisbeto issue : https://github.com/angular/angular/issues/57094. He added a workaround by adding a `canVisitStructuralAttributes` in `TemplateCheckWithVisitor`. Could it be fixed in `RecursiveVisitor` as well?\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n \n\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: npm 10.9.2\nOS: darwin arm64\n\nAngular: undefined\n... \n\nPackage Version\n------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/cli 19.1.1\n@angular/compiler 19.1.1\n@schematics/angular 19.1.1\ntypescript 5.7.3\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59594","RelatedDescription":"Open issue \"RecursiveVisitor does not iterate over templateAttrs of Template nodes\" (#59594)"},{"Id":"2795165079","IsPullRequest":false,"CreatedAt":"2025-01-17T10:54:15","Actor":"serfreeman1337","Number":"59592","RawContent":null,"Title":"ViewContainerRef breaks HMR","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nIf a component has `ViewContainerRef` injected changing its template does not trigger live reload.\n\n```ts\nimport { Component, inject, ViewContainerRef } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = 'test-app';\n\n private viewContainerRef = inject(ViewContainerRef); \n}\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: npm 11.0.0\nOS: linux x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59592","RelatedDescription":"Open issue \"ViewContainerRef breaks HMR\" (#59592)"},{"Id":"2795082567","IsPullRequest":true,"CreatedAt":"2025-01-17T10:51:51","Actor":"crisbeto","Number":"59591","RawContent":null,"Title":"fix(compiler-cli): preserve all HMR dependencies","State":"closed","Body":"Previously when generating the HMR code, we would determine only the dependencies used within the component's metadata so that they can be passed along both to the HMR replacer file and the HMR event listener callback. This turns out to be problematic, because changing the template will change which symbols are referenced in the metadata, causing the replacer and callback to be out of sync.\r\n\r\nThese changes resolve the issue by capturing all the top-level dependencies, except the ones that won't generate runtime code (e.g. interfaces).\r\n\r\nFixes #59581.","Url":"https://github.com/angular/angular/pull/59591","RelatedDescription":"Closed or merged PR \"fix(compiler-cli): preserve all HMR dependencies\" (#59591)"},{"Id":"2795037155","IsPullRequest":true,"CreatedAt":"2025-01-17T09:58:27","Actor":"hawkgs","Number":"59589","RawContent":null,"Title":"refactor(devtools): styles management","State":"open","Body":"## PR Checklist\r\nPlease check if your PR fulfills the following requirements:\r\n\r\n- [x] The commit message follows our guidelines: https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit\r\n- [ ] Tests for the changes have been added (for bug fixes / features)\r\n- [ ] Docs have been added / updated (for bug fixes / features)\r\n\r\n\r\n## PR Type\r\nWhat kind of change does this PR introduce?\r\n\r\n\r\n\r\n- [ ] Bugfix\r\n- [ ] Feature\r\n- [ ] Code style update (formatting, local variables)\r\n- [x] Refactoring (no functional changes, no api changes)\r\n- [ ] Build related changes\r\n- [ ] CI related changes\r\n- [ ] Documentation content changes\r\n- [ ] angular.dev application / infrastructure changes\r\n- [ ] Other... Please describe:\r\n\r\n\r\n## What is the current behavior?\r\n\r\nSCSS files are scattered across a few directories. There is some duplication as well.\r\n\r\n## What is the new behavior?\r\n\r\n1. Move all styles in a single folder as close as possible to `ng-devtools` component – as stated in the section above there had been SCSS files that resided in the app wrappers (the shell and demo apps) or the main `devtools/` directory. There were also duplicated browser-specific SCSS files in each app wrapper. This change should, hopefully, make style management a bit easier. Each app wrapper still retains a `styles.scss` which should ultimately be used only for applying styles that are specific to that app wrapper, not the devtools.\r\n\r\n2. Set a browser class to the document body – this is an improvement of #46037. Basically, additionally to loading browser-specific global styles, we also set a browser-specific class to the body. We can use that for any granular or component-based styles.\r\n\r\n3. SCSS mixins – right now the theme styles are applied via `:host-context()`. What the mixins do is to encapsulate that logic in case it changes (or the class names change). The mixins also provide a parameter for targeting a specific browser. Eventually, some of these mixins might render useless, so we can drop them.\r\n\r\n**Next changes**\r\n\r\n- Converting to the theme mixins\r\n- Extracting some of the colors and creating actual themes based on them\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No\r\n","Url":"https://github.com/angular/angular/pull/59589","RelatedDescription":"Open PR \"refactor(devtools): styles management\" (#59589)"},{"Id":"2794608383","IsPullRequest":true,"CreatedAt":"2025-01-17T09:45:40","Actor":"AndrewKushnir","Number":"59584","RawContent":null,"Title":"test(platform-server): fix flaky incremental hydration test","State":"closed","Body":"This commit updates a test setup to define a global `ngServerMode` correctly for a test that was emulating client-only behavior. The flag could've been set by prior tests and depending on its state, the test was acting differently.\r\n\r\n## Does this PR introduce a breaking change?\r\n\r\n- [ ] Yes\r\n- [x] No","Url":"https://github.com/angular/angular/pull/59584","RelatedDescription":"Closed or merged PR \"test(platform-server): fix flaky incremental hydration test\" (#59584)"},{"Id":"2794684170","IsPullRequest":false,"CreatedAt":"2025-01-17T07:23:45","Actor":"Bobokhuja","Number":"59586","RawContent":null,"Title":"Why HttpFeature interface fields starting with \"ɵ\" symbol?","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncommon\n\n### Is this a regression?\n\nNo\n\n### Description\n\nhttps://github.com/angular/angular/blob/main/packages/common/http/src/provider.ts\nline: 62-75\n\n```\nexport interface HttpFeature {\n ɵkind: KindT;\n ɵproviders: Provider[];\n}\n\nfunction makeHttpFeature(\n kind: KindT,\n providers: Provider[],\n): HttpFeature {\n return {\n ɵkind: kind,\n ɵproviders: providers,\n };\n}\n```\n\nin the HttpFeature interface fields startsWith unknown symbol character\n\n### Please provide a link to a minimal reproduction of the bug\n\nhttps://github.com/angular/angular/blob/main/packages/common/http/src/provider.ts\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\n\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59586","RelatedDescription":"Closed issue \"Why HttpFeature interface fields starting with \"ɵ\" symbol?\" (#59586)"},{"Id":"2794952075","IsPullRequest":false,"CreatedAt":"2025-01-17T06:18:01","Actor":"emnljs","Number":"59588","RawContent":null,"Title":"HMR Ionic Angular live reload not working (ViewEncapsulation.ShadowDom)","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nWhen using Ionic and Angular, during `ionic serve`, changes on the code does not trigger live reload. Also, some instances render white page removing all elements on save.\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 20.17.0\nPackage Manager: npm 10.8.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59588","RelatedDescription":"Open issue \"HMR Ionic Angular live reload not working (ViewEncapsulation.ShadowDom)\" (#59588)"},{"Id":"2794384495","IsPullRequest":false,"CreatedAt":"2025-01-17T03:09:25","Actor":"jusfeel","Number":"59582","RawContent":null,"Title":"hmr causes element disappear","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nNo\n\n### Description\n\nAfter upgrading to 19.1, template change keeps causing strange behaviors: \n\n- binding stops until I resize the browser window (variable binding with checkbox on the page for example)\n- my change simply does not appear not even a total page reload until I restart ng server\n- element disappear after any change happening on template ex. a nested component inside the template just disappears after I made tiny change on the template to trigger a hmr\n\nI had to use `no-hmr` ng server --no-hmr to avoid this from happening. \n\nSo, it seems it's related to hmr.\n\nBinding failure appears quite often on wsl2 but not appearing on Ubuntu 24 machine.\n\nThe element disappearing happens on both wsl2 and Linux. \n```\nDistributor ID: Ubuntu\nDescription: Ubuntu 24.04.1 LTS\nRelease: 24.04\nCodename: noble\n```\n```\nAngular CLI: 19.1.0\nNode: 22.12.0\nPackage Manager: npm 10.9.0\nOS: linux x64\n\nAngular: 19.1.0\n... animations, cli, common, compiler, compiler-cli, core, forms\n... localize, platform-browser, platform-browser-dynamic\n... platform-server, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1900.7\n@angular-devkit/build-angular 19.1.0\n@angular-devkit/core 19.1.0 (cli-only)\n@angular-devkit/schematics 19.1.0\n@angular/cdk 19.0.5\n@schematics/angular 19.1.0\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n\n\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\n\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular/issues/59582","RelatedDescription":"Open issue \"hmr causes element disappear\" (#59582)"},{"Id":"2794345058","IsPullRequest":false,"CreatedAt":"2025-01-17T02:47:00","Actor":"msmallest","Number":"59581","RawContent":null,"Title":"bug(HMR): removing components selectors from a template causes inconsistent behavior with other components in template","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\nCommenting out or entirely removing a component selector (``) causes odd behavior. \n\nTake the following example, and imagine I just did `ng serve` in a fresh CLI generated (19.1.1) app, which had components a/b/c generated as inline template and inline style with the default `

a works!

` and so on.\n\n```ts\n@Component({\n selector: 'app-root',\n // templateUrl: './app.component.html', // also applies to external\n template: `\n \n \n \n\n {{version.full}}\n `,\n styleUrl: './app.component.scss',\n imports: [AComponent, BComponent, CComponent],\n})\nexport class AppComponent {\n version = VERSION;\n}\n```\n\nIf I removed ``, the view now only shows the template of `` and the version. However, this is the rendered body of ``, using either file-based or inline template:\n\n```html\n

b works!

19.1.1
\n```\n\nOther variants\n\nRemoving ``\n```html\n

a works!

19.1.1
\n````\n\nRemoving ``\n```html\n

a works!

b works!

19.1.1
\n````\n\nTrends:\n\n- When removing A or B, C's host element stays but is empty. But when removing C, A and B properly render and there is no C.\n- Not really an issue with non component HTML elements, such as a `

stuff

` tag in the `` template. And the untagged full version I had for my reference was also fine. However, components still are spotty like above when removed and in the same template as primitive elements or text (edited: clarify).\n\n### Please provide a link to a minimal reproduction of the bug\n\nhttps://github.com/msmallest/hmr-issue-multiple-components\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 20.11.1\nPackage Manager: npm 10.2.4\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\nMy reproduction has 3 branches. \n\n- `main` aka CLI generated with a 19.1.1 global\n- `19.1.1` aka I bumped `main` with the actual latest in the `package.json`\n- `nightlies-19.1.1+` that points at all the nightlies (edit: and resolved with `--force`).\n\nMy examples I pasted were from `main`. I observed the same view behavior in `19.1.1` as `main` but did not check for the exact DOM in `19.1.1`. Same story for the nightly but the DOM did look the same at a glance, including the strange C behavior. \n\nAdditionally, I didn't look as close as in this reproduction, but the end behavior I initially observed in a large vanilla Angular workspace monorepo of module based apps that I got to what resolves to `19.1.1` for `@angular/core`.","Url":"https://github.com/angular/angular/issues/59581","RelatedDescription":"Open issue \"bug(HMR): removing components selectors from a template causes inconsistent behavior with other components in template\" (#59581)"}],"ResultType":"GitHubIssue"},"AngularCli-Issues":{"Issues":[{"Id":"2797998781","IsPullRequest":false,"CreatedAt":"2025-01-20T02:00:21","Actor":"Ruisi-Lu","Number":"29406","RawContent":null,"Title":"19.1.X NG0912: Incorrect Component ID collision warning","State":"open","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\n \"NG0912: Component ID generation collision detected\" is being thrown incorrectly despite all component selectors and IDs being unique.\n\n### Minimal Reproduction\n\n1. Create a new Angular project using version 19.1.x\n2. Run dev server\n3. Continuously modify the app.component.html or the template of any other component. \n4. Observe the terminal for the NG0912 warning. It appears sporadically during rebuilds triggered by these template modifications.\n\n### Exception or Error\n\n```text\nNG0912: Component ID generation collision detected. Components '_AppComponent' and '_AppComponent' with selector 'app-root' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID. Find more at https://angular.dev/errors/NG0912\n```\n\n### Your Environment\n\nEnabled SSR\n\n```text\nAngular CLI: 19.1.2\nNode: 20.18.1\nPackage Manager: pnpm 10.0.0\nOS: win32 x64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cli 19.1.2\n@angular/ssr 19.1.2\n@schematics/angular 19.1.2\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29406","RelatedDescription":"Open issue \"19.1.X NG0912: Incorrect Component ID collision warning\" (#29406)"},{"Id":"2797969744","IsPullRequest":true,"CreatedAt":"2025-01-20T01:27:48","Actor":"clydin","Number":"29405","RawContent":null,"Title":"fix(@angular/build): perform full reload for templates with `$localize` usage","State":"open","Body":"Component template updates that contain `$localize` usage currently may result in incorrect updates at runtime. To avoid this problem, any template update module that contains `$localize` will now perform a full rebuild. Support for component updates of these templates will be added in a future release.","Url":"https://github.com/angular/angular-cli/pull/29405","RelatedDescription":"Open PR \"fix(@angular/build): perform full reload for templates with `$localize` usage\" (#29405)"},{"Id":"2797906307","IsPullRequest":true,"CreatedAt":"2025-01-20T00:09:29","Actor":"clydin","Number":"29404","RawContent":null,"Title":"test(@angular/build): enable i18n localize watch test for dev-server","State":"open","Body":"The existing test for i18n `$localize` replacement during watch mode has been re-enabled.","Url":"https://github.com/angular/angular-cli/pull/29404","RelatedDescription":"Open PR \"test(@angular/build): enable i18n localize watch test for dev-server\" (#29404)"},{"Id":"2797896032","IsPullRequest":true,"CreatedAt":"2025-01-19T23:49:20","Actor":"clydin","Number":"29403","RawContent":null,"Title":"test(@angular/build): add dev-server HMR enabled console message tests","State":"open","Body":"Tests of the development server's console message output for the `hmr` option including enabled, disabled, and default cases.","Url":"https://github.com/angular/angular-cli/pull/29403","RelatedDescription":"Open PR \"test(@angular/build): add dev-server HMR enabled console message tests\" (#29403)"},{"Id":"2797806680","IsPullRequest":true,"CreatedAt":"2025-01-19T20:06:50","Actor":"clydin","Number":"29402","RawContent":null,"Title":"fix(@angular/build): allow asset changes to reload page on incremental updates","State":"open","Body":"Changes to asset files were previously not considered when determining if an incremental build result could be background update and not cause a page reload. Asset modifications will not cause a page reload in incremental update cases.\r\nAdditionally, a superfluous component update result will no longer be emitted in this case. The required page reload will account for the component updates.\r\n\r\nReview Note: Enable hide whitespace for a more readable diff","Url":"https://github.com/angular/angular-cli/pull/29402","RelatedDescription":"Open PR \"fix(@angular/build): allow asset changes to reload page on incremental updates\" (#29402)"},{"Id":"2797672751","IsPullRequest":true,"CreatedAt":"2025-01-19T15:04:17","Actor":"angular-robot","Number":"29401","RawContent":null,"Title":"build: update all non-major dependencies","State":"open","Body":"This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [less](http://lesscss.org) ([source](https://redirect.github.com/less/less.js)) | dependencies | patch | [`4.2.1` -> `4.2.2`](https://renovatebot.com/diffs/npm/less/4.2.1/4.2.2) |\n| [less](http://lesscss.org) ([source](https://redirect.github.com/less/less.js)) | devDependencies | patch | [`4.2.1` -> `4.2.2`](https://renovatebot.com/diffs/npm/less/4.2.1/4.2.2) |\n| [rollup](https://rollupjs.org/) ([source](https://redirect.github.com/rollup/rollup)) | dependencies | minor | [`4.30.1` -> `4.31.0`](https://renovatebot.com/diffs/npm/rollup/4.30.1/4.31.0) |\n| [rollup](https://rollupjs.org/) ([source](https://redirect.github.com/rollup/rollup)) | devDependencies | minor | [`4.30.1` -> `4.31.0`](https://renovatebot.com/diffs/npm/rollup/4.30.1/4.31.0) |\n\n---\n\n### Release Notes\n\n
\nless/less.js (less)\n\n### [`v4.2.2`](https://redirect.github.com/less/less.js/blob/HEAD/CHANGELOG.md#v422-2025-01-04)\n\n[Compare Source](https://redirect.github.com/less/less.js/compare/v4.2.1...1df9072ee9ebdadc791bf35dfb1dbc3ef9f1948f)\n\n- [#​4290](https://redirect.github.com/less/less.js/pull/4290) Fix [#​4268](https://redirect.github.com/less/less.js/issues/4268) nested pseudo-selector parsing ([@​puckowski](https://redirect.github.com/puckowski))\n- [#​4291](https://redirect.github.com/less/less.js/pull/4291) Enhance Less.js test environment setup ([#​4291](https://redirect.github.com/less/less.js/issues/4291)) ([@​iChenLei](https://redirect.github.com/iChenLei))\n- [#​4295](https://redirect.github.com/less/less.js/pull/4295) Fix [#​4252](https://redirect.github.com/less/less.js/issues/4252) container queries created via mixin evaluating variables incorrectly ([@​puckowski](https://redirect.github.com/puckowski))\n- [#​4294](https://redirect.github.com/less/less.js/pull/4294) Fix [#​3737](https://redirect.github.com/less/less.js/issues/3737) allow blank variable declarationd ([@​puckowski](https://redirect.github.com/puckowski))\n- [#​4292](https://redirect.github.com/less/less.js/pull/4292) Fix [#​4258](https://redirect.github.com/less/less.js/issues/4258) variable interpolation after math ([@​puckowski](https://redirect.github.com/puckowski))\n- [#​4293](https://redirect.github.com/less/less.js/pull/4293) Fix [#​4264](https://redirect.github.com/less/less.js/issues/4264) strip line comment from expression ([@​puckowski](https://redirect.github.com/puckowski))\n- [#​4302](https://redirect.github.com/less/less.js/pull/4302) Fix [#​4301](https://redirect.github.com/less/less.js/issues/4301) at-rule declarations missing ([@​puckowski](https://redirect.github.com/puckowski))\n- [#​4309](https://redirect.github.com/less/less.js/pull/4309) Fix Node 23 CI ([#​4309](https://redirect.github.com/less/less.js/issues/4309)) ([@​iChenLei](https://redirect.github.com/iChenLei))\n\n
\n\n
\nrollup/rollup (rollup)\n\n### [`v4.31.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4310)\n\n[Compare Source](https://redirect.github.com/rollup/rollup/compare/v4.30.1...v4.31.0)\n\n*2025-01-19*\n\n##### Features\n\n- Do not immediately quit when trying to use watch mode from within non-TTY environments ([#​5803](https://redirect.github.com/rollup/rollup/issues/5803))\n\n##### Bug Fixes\n\n- Handle files with more than one UTF-8 BOM header ([#​5806](https://redirect.github.com/rollup/rollup/issues/5806))\n\n##### Pull Requests\n\n- [#​5792](https://redirect.github.com/rollup/rollup/pull/5792): fix(deps): update rust crate swc_compiler_base to v8 ([@​renovate](https://redirect.github.com/renovate)\\[bot])\n- [#​5793](https://redirect.github.com/rollup/rollup/pull/5793): fix(deps): lock file maintenance minor/patch updates ([@​renovate](https://redirect.github.com/renovate)\\[bot])\n- [#​5794](https://redirect.github.com/rollup/rollup/pull/5794): chore(deps): lock file maintenance ([@​renovate](https://redirect.github.com/renovate)\\[bot])\n- [#​5801](https://redirect.github.com/rollup/rollup/pull/5801): chore(deps): update dependency eslint-config-prettier to v10 ([@​renovate](https://redirect.github.com/renovate)\\[bot])\n- [#​5802](https://redirect.github.com/rollup/rollup/pull/5802): fix(deps): lock file maintenance minor/patch updates ([@​renovate](https://redirect.github.com/renovate)\\[bot])\n- [#​5803](https://redirect.github.com/rollup/rollup/pull/5803): Support watch mode in yarn, gradle and containers ([@​lukastaegert](https://redirect.github.com/lukastaegert))\n- [#​5806](https://redirect.github.com/rollup/rollup/pull/5806): fix: strip all BOMs ([@​TrickyPi](https://redirect.github.com/TrickyPi))\n\n
\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"after 10:00pm every weekday,before 4:00am every weekday,every weekend\" in timezone America/Tijuana, Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/angular/dev-infra) if that's undesired.\n\n---\n\n - [ ] If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate).\n\n","Url":"https://github.com/angular/angular-cli/pull/29401","RelatedDescription":"Open PR \"build: update all non-major dependencies\" (#29401)"},{"Id":"2797651802","IsPullRequest":false,"CreatedAt":"2025-01-19T14:20:26","Actor":"zip-fa","Number":"29400","RawContent":null,"Title":"v19.1 with SSR not building/responding in dev mode: The operation was aborted due to timeout","State":"open","Body":"### Command\n\nbuild\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n19.0\n\n### Description\n\nHey. Updating v19.0.x app to v19.1.x breaks build with this error:\n\n\n✘ [ERROR] An error occurred while extracting routes.\n\nRoutes extraction was aborted.\nTimeoutError: The operation was aborted due to timeout\n\nNo routes, no code, no logic.\nMinimal repro available here: https://github.com/zip-fa/19-1-endless-build\n\nSwitching from server config:\n\n```json\n\"server\": \"src/main.server.ts\",\n \"outputMode\": \"server\",\n \"ssr\": {\n \"entry\": \"src/server.ts\"\n }\n```\n\nTo static config:\n\n```json\n\"outputMode\": \"static\"\n```\nimmediately helps\n\n### Minimal Reproduction\n\nnx build 19-1-endless-build\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nng version\n\n _ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n \n\nAngular CLI: 19.1.2\nNode: 22.13.0\nPackage Manager: npm 10.9.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cli 19.1.2\n@angular/ssr 19.1.2\n@schematics/angular 19.1.2\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29400","RelatedDescription":"Open issue \"v19.1 with SSR not building/responding in dev mode: The operation was aborted due to timeout\" (#29400)"},{"Id":"2797646295","IsPullRequest":false,"CreatedAt":"2025-01-19T14:08:41","Actor":"hannah23280","Number":"29399","RawContent":null,"Title":"Exclude TestBed.configureTestingModule in unit test code for Standalone Component","State":"open","Body":"### Command\n\ngenerate\n\n### Description\n\nHi,\n I not sure if there is any current plan for this. \n Currently, generating a new component with Angular CLI includes the below statement\n \n```\nawait TestBed.configureTestingModule({\n imports: [ProductListComponent]\n })\n .compileComponents();\n```\n \n\n### Describe the solution you'd like\n\nGiven that **TestBed.configureTestingModule** is no longer required, as component is standalone by default, the statement should be excluded from the generated unit test file (to avoid cluttering the code) when generating component with Angular CLI , unless standalone option is turned off explicitly\n\n\n### Describe alternatives you've considered\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29399","RelatedDescription":"Open issue \"Exclude TestBed.configureTestingModule in unit test code for Standalone Component\" (#29399)"},{"Id":"2797617269","IsPullRequest":false,"CreatedAt":"2025-01-19T13:08:32","Actor":"zip-fa","Number":"29398","RawContent":null,"Title":"Invalid i18n configuration: Locales 'ru' and 'en' cannot have the same subPath: ''.","State":"open","Body":"### Command\n\nbuild\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nHey.\nWith v19.1 it's not possible to build with this config:\n\n```json\n\"sourceLocale\": {\n \"code\": \"ru\",\n \"subPath\": \"\"\n },\n \"locales\": {\n \"en\": {\n \"translation\": \"apps/frontend/src/locale/messages.en.xlf\",\n \"subPath\": \"\"\n }\n },\n\"configurations\": {\n \"production-en\": {\n \"localize\": [\"en\"]\n },\n \"production\": {\n \"localize\": [\"ru\"],\n}\n```\n\nHow about moving non-unique subPath check inside build configuration, but not global?\n\nThis should fail:\n\n```json\n\"configurations\": {\n \"production\": {\n \"localize\": [\"ru\", \"en\"],\n}\n}\n```\n\nThis should not:\n\n```json\n\"configurations\": {\n \"production\": {\n \"localize\": [\"ru\"],\n}\n}\n```\n\n### Minimal Reproduction\n\nng build\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nv19.1\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29398","RelatedDescription":"Open issue \"Invalid i18n configuration: Locales 'ru' and 'en' cannot have the same subPath: ''.\" (#29398)"},{"Id":"2797610102","IsPullRequest":false,"CreatedAt":"2025-01-19T12:53:03","Actor":"ciriousjoker","Number":"29397","RawContent":null,"Title":"Prerendering doesn't generate index.html for root path of localized website versions","State":"open","Body":"### Command\n\nbuild\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n18.0.3 (after updating to 19.0, it started)\n\n### Description\n\nI'm trying to prerender a localized website.\n```\n/ -> English website (homepage)\n/some-english-page (subpage)\n/de -> German website (homepage)\n/de/some-german-page (subpage)\n```\n\nI therefore need an index.html file (not just the index.csr.html!) at / and /de.\n\n![Image](https://github.com/user-attachments/assets/398b0c77-9b76-4fe3-8e84-f4fb808bcee6)\n\n### Minimal Reproduction\n\nhttps://github.com/ciriousjoker/repro-angular-indexcsrhtml\nJust check out the commit history, I've named them in a way that explains when it breaks.\n\nSpecifically this seems to be an issue:\n```ts\nexport const routes: Routes = [\n {\n path: '**',\n component: TestComponent,\n },\n];\n```\n\nKeep in mind this exact code worked in Angular 18.\n\n### Exception or Error\n\n```text\nindex.csr.html is generated for / and /de, but index.html is only generated for /, not for /de.\n```\n\n### Your Environment\n\n```text\nAngular CLI: 19.1.2\nNode: 20.18.1\nPackage Manager: npm 10.8.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... localize, platform-browser, platform-browser-dynamic\n... platform-server, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cli 19.1.2\n@angular/ssr 19.1.2\n@schematics/angular 19.1.2\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29397","RelatedDescription":"Open issue \"Prerendering doesn't generate index.html for root path of localized website versions\" (#29397)"},{"Id":"2797105017","IsPullRequest":false,"CreatedAt":"2025-01-18T16:43:42","Actor":"jusfeel","Number":"29396","RawContent":null,"Title":"Do Not Deprecate baseHref in i18n Configuration","State":"open","Body":"### Which @angular/* package(s) are relevant/related to the feature request?\n\nlocalize\n\n### Description:\nThe recent deprecation of the `baseHref` field in the `i18n.sourceLocale` configuration causes significant issues for projects that rely on a **shared base URL** for multiple localized builds.\n\nWhile the `subPath` feature is a welcome addition for structuring locale builds, it is limiting for developers who:\n\n1. Want locale-specific builds in subdirectories (`subPath`) without altering the `` tag in `index.html`.\n2. Depend on a static `baseHref` for all builds due to server or application constraints.\n\n### Current Behavior:\nWith `subPath` enabled:\n\nAngular modifies the `` tag in `index.html` to include the locale-specific subpath (e.g., `/zh-hans/`), and there is no built-in way to override this behavior.\nWithout `baseHref`:\n\nDevelopers are forced to implement error-prone and maintenance-heavy post-build scripts to reset the `` tag to their desired value.\n### Expected Behavior:\nProjects with `subPath` configured should still have the option to:\n\nUse `baseHref` as a static value across all locale builds.\nSeparate the functionality of `subPath` (output directory) from the `` tag in `index.html`.\n\n### Proposed solution\n\nInstead of fully deprecating `baseHref`, it could coexist with `subPath` to give developers more flexibility. Suggested behavior:\n\n1. `baseHref` **takes precedence if defined**. This ensures that:\n - The `` tag in `index.html` uses `baseHref` for all builds.\n - subPath is only used for structuring the output directory, not modifying `index.html`.\n \n2. If `baseHref` is not specified, the current `subPath` behavior remains unchanged.\n\n### Alternatives considered\n\nDevelopers are forced to implement error-prone and maintenance-heavy post-build scripts to reset the tag to their desired value.","Url":"https://github.com/angular/angular-cli/issues/29396","RelatedDescription":"Open issue \"Do Not Deprecate baseHref in i18n Configuration\" (#29396)"},{"Id":"2796915046","IsPullRequest":false,"CreatedAt":"2025-01-18T12:59:46","Actor":"Mostafa-Abdollahi","Number":"29394","RawContent":null,"Title":"angular 19.1.1 crashes serve when changing html file with HMR","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\nDon't known / other\n\n### Is this a regression?\n\nYes\n\n### Description\n\n[vite] Pre-transform error: Failed to load url /main-HF3FQSCH.js (resolved id: /main-HF3FQSCH.js)\nafter making a a change in one my html files, served app crashesh and i get above error in terminal, i have to set hmr to false.\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\n\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nangular/cli: 19.1.1\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29394","RelatedDescription":"Closed issue \"angular 19.1.1 crashes serve when changing html file with HMR\" (#29394)"},{"Id":"2796915159","IsPullRequest":false,"CreatedAt":"2025-01-18T11:15:51","Actor":"nhnb","Number":"29395","RawContent":null,"Title":"HMR in Angular 19.1.1 breaks page reload by ignoring --serve-path","State":"closed","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nSince Angular 19.1.x the --serve-path parameter is ignored by hot template replacements requests. As a result the page is neither updated nor reloaded automatically. A manual reload is required.\n\nSteps to reproduce:\n\n1. Start the dev server: `ng serve --no-hmr --port 5602 --host 127.0.0.1 --serve-path /frontend`\n2. Modify a .html file\n\nResult in 19.0.x: The page is automatically reloaded\nResult in 19.1.x: Nothing happens. The old page is still shown\n\nWorkaround: Start the dev server with: `ng serve --no-hmr --port 5602 --host 127.0.0.1 --serve-path /frontend` \n\n\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\nError message: 404 http://localhost:8080/@ng/component?c=src%2Fapp%2Ffs%2Ftestform.component.ts%40TestformComponent&t=1737187096102\n\nNote the missing `/frontend/` before `@ng`\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.2\nNode: 20.18.1\nPackage Manager: yarn 1.22.19\nOS: linux x64\n\nAngular: 19.1.1\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.2\n@angular-devkit/build-angular 19.1.2\n@angular-devkit/core 19.1.2\n@angular-devkit/schematics 19.1.2\n@angular/cdk 17.3.10\n@angular/cli 19.1.2\n@schematics/angular 19.1.2\nng-packagr 19.0.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29395","RelatedDescription":"Closed issue \"HMR in Angular 19.1.1 breaks page reload by ignoring --serve-path\" (#29395)"},{"Id":"2796784461","IsPullRequest":true,"CreatedAt":"2025-01-18T06:04:47","Actor":"angular-robot","Number":"29393","RawContent":null,"Title":"build: update angular","State":"open","Body":"This PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [@angular/animations](https://redirect.github.com/angular/animations-builds) | dependencies | digest | `15d2417` -> `a3e54a0` |\n| [@angular/bazel](https://redirect.github.com/angular/bazel-builds) | devDependencies | digest | `53b5c24` -> `829fd1c` |\n| [@angular/cdk](https://redirect.github.com/angular/cdk-builds) | dependencies | digest | `331e8b4` -> `916366d` |\n| [@angular/common](https://redirect.github.com/angular/common-builds) | dependencies | digest | `20d40fe` -> `99054a9` |\n| [@angular/compiler](https://redirect.github.com/angular/compiler-builds) | dependencies | digest | `7e89c94` -> `a10855e` |\n| [@angular/compiler-cli](https://redirect.github.com/angular/compiler-cli-builds) | dependencies | digest | `67506a7` -> `31d9f74` |\n| [@angular/core](https://redirect.github.com/angular/core-builds) | dependencies | digest | `b745708` -> `bf9c0d6` |\n| [@angular/forms](https://redirect.github.com/angular/forms-builds) | dependencies | digest | `bf91d4c` -> `6e41b34` |\n| [@angular/language-service](https://redirect.github.com/angular/language-service-builds) | dependencies | digest | `37b0c5e` -> `a2885e8` |\n| [@angular/localize](https://redirect.github.com/angular/localize-builds) | dependencies | digest | `34b88cb` -> `ce382b4` |\n| [@angular/material](https://redirect.github.com/angular/material-builds) | dependencies | digest | `2b57656` -> `16d4014` |\n| [@angular/material-moment-adapter](https://redirect.github.com/angular/material-moment-adapter-builds) | dependencies | digest | `b4105c7` -> `6464fd3` |\n| [@angular/platform-browser](https://redirect.github.com/angular/platform-browser-builds) | dependencies | digest | `5ef5ac1` -> `dd003f1` |\n| [@angular/platform-browser-dynamic](https://redirect.github.com/angular/platform-browser-dynamic-builds) | dependencies | digest | `6565981` -> `f06c12c` |\n| [@angular/platform-server](https://redirect.github.com/angular/platform-server-builds) | dependencies | digest | `e9abba7` -> `9a3f501` |\n| [@angular/router](https://redirect.github.com/angular/router-builds) | dependencies | digest | `ce088d9` -> `eff7ba1` |\n| [@angular/service-worker](https://redirect.github.com/angular/service-worker-builds) | dependencies | digest | `2a2e377` -> `d51867e` |\n\n🔡 If you wish to disable git hash updates, add `\":disableDigestUpdates\"` to the extends array in your config.\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - \"after 10:00pm every weekday,before 4:00am every weekday,every weekend\" in timezone America/Tijuana, Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/angular/dev-infra) if that's undesired.\n\n---\n\n - [ ] If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate).\n\n","Url":"https://github.com/angular/angular-cli/pull/29393","RelatedDescription":"Open PR \"build: update angular\" (#29393)"},{"Id":"2796523836","IsPullRequest":false,"CreatedAt":"2025-01-18T00:32:04","Actor":"dgp1130","Number":"29392","RawContent":null,"Title":"⚠️ Local development bugs with HMR","State":"open","Body":"### Description\n\nWe're aware of reports of local development bugs arising from Angular template HMR in 19.1.x, which has been enabled by default.\n\nPlease see https://github.com/angular/angular/issues/59602 for more context and workarounds.","Url":"https://github.com/angular/angular-cli/issues/29392","RelatedDescription":"Open issue \"⚠️ Local development bugs with HMR\" (#29392)"},{"Id":"2796421778","IsPullRequest":true,"CreatedAt":"2025-01-17T22:47:04","Actor":"dgp1130","Number":"29391","RawContent":null,"Title":"docs: release notes for the v19.1.2 release","State":"closed","Body":"Cherry-picks the changelog from the \"19.1.x\" branch to the next branch (main).","Url":"https://github.com/angular/angular-cli/pull/29391","RelatedDescription":"Closed or merged PR \"docs: release notes for the v19.1.2 release\" (#29391)"},{"Id":"2796347478","IsPullRequest":true,"CreatedAt":"2025-01-17T22:41:14","Actor":"dgp1130","Number":"29390","RawContent":null,"Title":"Bump version to \"v19.1.2\" with changelog.","State":"closed","Body":"","Url":"https://github.com/angular/angular-cli/pull/29390","RelatedDescription":"Closed or merged PR \"Bump version to \"v19.1.2\" with changelog.\" (#29390)"},{"Id":"2796183019","IsPullRequest":true,"CreatedAt":"2025-01-17T21:29:02","Actor":"clydin","Number":"29389","RawContent":null,"Title":"refactor(@angular/build): add console message to dev server when component HMR is enabled","State":"closed","Body":"An informational message has been added to the development server to ensure that users are aware that component HMR has been enabled and provide actionable steps in the event that an application reload may not behave as expected.","Url":"https://github.com/angular/angular-cli/pull/29389","RelatedDescription":"Closed or merged PR \"refactor(@angular/build): add console message to dev server when component HMR is enabled\" (#29389)"},{"Id":"2795802402","IsPullRequest":true,"CreatedAt":"2025-01-17T18:18:27","Actor":"clydin","Number":"29387","RawContent":null,"Title":"fix(@angular/build): reset component updates on dev-server index request","State":"closed","Body":"An index request from a client browser indicates a full page reload of the application should occur. In this case, the latest full output of the application should be sent to the client which would contain all separate component and incremental updates that have occurred since the last full update from the build system. To provide for this request, the individual component updates that were previously queued are now cleared to avoid reprocessing already present updates within the application output files.","Url":"https://github.com/angular/angular-cli/pull/29387","RelatedDescription":"Closed or merged PR \"fix(@angular/build): reset component updates on dev-server index request\" (#29387)"},{"Id":"2795966524","IsPullRequest":false,"CreatedAt":"2025-01-17T17:42:21","Actor":"heddendorp","Number":"29388","RawContent":null,"Title":"Since 19.1 Serve breaks on changes","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n19\n\n### Description\n\nWhen I serve my app after updating to 19.1 it works initially but when changing a lazy loaded component vite is unable to find the file apparently.\n\n### Minimal Reproduction\n\nRun yarn start and change a component\n\n### Exception or Error\n\n```text\n6:22:20 PM [vite] Internal server error: Failed to resolve import \"./chunk-MRNOOHG3.js\" from \".angular/vite-root/evorto/main.js\". Does the file exist?\n Plugin: vite:import-analysis\n File: C:/Users/hedde/code/evorto/.angular/vite-root/evorto/main.js:14:17\n 328| children: [\n 329| {\n 330| loadComponent: () => import(\"./chunk-MRNOOHG3.js\").then((m) => m.TemplateCreateComponent),\n | ^\n 331| path: \"create\"\n 332| },\n at TransformPluginContext._formatError (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47397:41)\n at TransformPluginContext.error (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47392:16)\n at normalizeUrl (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45642:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45761:39\n at async Promise.all (index 47)\n at async TransformPluginContext.transform (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45688:7)\n at async EnvironmentPluginContainer.transform (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47223:18)\n at async loadAndTransform (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:41034:27)\n at async viteTransformMiddleware (file:///C:/Users/hedde/code/evorto/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:42478:24)\n```\n\n### Your Environment\n\n```text\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n\n\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: yarn 4.5.3\nOS: win32 x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n-----------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.1.0\n@angular/material 19.1.0\n@angular/material-luxon-adapter 19.1.0\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\nI'll try to come up with a repro that does not require secret env variables.\nUntil then, you can find the code in https://github.com/evorto-app/app\nThis is update to the state that causes issues for me.\n\nPreviously it seemed like the error was coming from a file in `dist` as I could see sentry processed instrumentation in the error message. I deleted the `dist` and `.angular` folder which did remove the mentions of sentry in the error message.","Url":"https://github.com/angular/angular-cli/issues/29388","RelatedDescription":"Closed issue \"Since 19.1 Serve breaks on changes\" (#29388)"},{"Id":"2794884060","IsPullRequest":true,"CreatedAt":"2025-01-17T15:22:26","Actor":"alan-agius4","Number":"29381","RawContent":null,"Title":"fix(@angular/build): prevent full page reload on HMR updates with SSR enabled","State":"closed","Body":"\r\nThis commit resolves an issue where HMR would incorrectly trigger a full page reload when used with SSR.\r\n\r\nCloses #29372\r\n","Url":"https://github.com/angular/angular-cli/pull/29381","RelatedDescription":"Closed or merged PR \"fix(@angular/build): prevent full page reload on HMR updates with SSR enabled\" (#29381)"},{"Id":"2795603484","IsPullRequest":true,"CreatedAt":"2025-01-17T14:24:22","Actor":"alan-agius4","Number":"29386","RawContent":null,"Title":"refactor(@angular/build): handle relative `@ng/components`","State":"open","Body":"This update serves as a preparatory step to address #29248. The change involves modifying the line 'urlPartial' in [r3_hmr_compiler.ts](https://github.com/angular/angular/blob/4e6017a9f5cda389c5fbf4f2c1519ce1bba23e11/packages/compiler/src/render3/r3_hmr_compiler.ts#L57) to start with `./` instead of `/`.\r\n","Url":"https://github.com/angular/angular-cli/pull/29386","RelatedDescription":"Open PR \"refactor(@angular/build): handle relative `@ng/components`\" (#29386)"},{"Id":"2795555732","IsPullRequest":true,"CreatedAt":"2025-01-17T14:02:58","Actor":"devversion","Number":"29385","RawContent":null,"Title":"[19.1.x]: Migrate more jasmine tests","State":"open","Body":"Patch port of #29371 ","Url":"https://github.com/angular/angular-cli/pull/29385","RelatedDescription":"Open PR \"[19.1.x]: Migrate more jasmine tests\" (#29385)"},{"Id":"2795527250","IsPullRequest":false,"CreatedAt":"2025-01-17T13:49:11","Actor":"denisyilmaz","Number":"29384","RawContent":null,"Title":"Since 19.1: SSR Apps with `urlMatcher` in route config are breaking due to commit 6edb908","State":"open","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n19.0\n\n### Description\n\nWith 19.0 it was possible to use `UrlMatcher` functions within SSR applications. 19.1 introduced a commit 6edb908 which was meant to fix a incompatibality of `UrlMatcher` with SSR applications. I wasn't able to find any documentation that indicated `UrlMatcher` and SSR are not working together. Was this a issue that needed to be solved? The only issue i was able to find on the web was in combination with the [@angular-architects/module-federation](https://www.npmjs.com/package/@angular-architects/module-federation) library (https://dev.to/michaeljota/how-to-add-module-federation-into-your-angular-micro-frontend-apps-jmh)\n\nBefore we start refactoring our project (which requires SSR and also `UrlMatcher`) or downgrading to 19.0 I would like to know what the implications were for this \"fix\". Happy for any insights.\n\n### Minimal Reproduction\n\n1. create project with ssr enabled with 19.1+\n2. add UrlMatcher function to route\n3. open project with `ng serve`\n\n### Exception or Error\n\n```text\nError: Error(s) occurred while extracting routes:\n- The route 'en/example' uses a route matcher which is not supported.\n- The route 'en/example' uses a route matcher which is not supported.\n- The route 'en/example-2' uses a route matcher which is not supported.\n- The route 'en/example-2' uses a route matcher which is not supported.\n- The route 'example' uses a route matcher which is not supported.\n- The route 'example' uses a route matcher which is not supported.\n- The route 'example-2' uses a route matcher which is not supported.\n- The route 'example-2' uses a route matcher which is not supported.\n at eval (/../angular/.angular/cache/19.1.1/main/vite/deps_ssr/chunk-FOZQYQAA.js:10655:15)\n at _ZoneDelegate.invoke (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:369:28)\n at ZoneImpl.run (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:111:43)\n at eval (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:1221:40)\n at _ZoneDelegate.invokeTask (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:402:33)\n at ZoneImpl.runTask (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:159:47)\n at drainMicroTaskQueue (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:581:35)\n at invokeTask (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:487:21)\n at Timeout.ZoneTask.invoke (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:472:48)\n at Timeout.data.args. (/../angular/.angular/vite-root/main/node_modules/zone.js/fesm2015/zone-node.js:2260:32)\n```\n\n### Your Environment\n\n```text\n_ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / △ \\ | '_ \\ / _` | | | | |/ _` | '__| | | | | | |\n / ___ \\| | | | (_| | |_| | | (_| | | | |___| |___ | |\n /_/ \\_\\_| |_|\\__, |\\__,_|_|\\__,_|_| \\____|_____|___|\n |___/\n \n\nAngular CLI: 19.1.1\nNode: 20.18.1\nPackage Manager: npm 10.8.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1 (cli-only)\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.1.0\n@schematics/angular 19.1.1\nng-packagr 19.0.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29384","RelatedDescription":"Open issue \"Since 19.1: SSR Apps with `urlMatcher` in route config are breaking due to commit 6edb908\" (#29384)"},{"Id":"2795355857","IsPullRequest":false,"CreatedAt":"2025-01-17T12:44:53","Actor":"HazzMan2409","Number":"29383","RawContent":null,"Title":"ng serve with --inspect-brk hangs","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nFrom an `ng new` project if you run:\n`node --inspect-brk ./node_modules/.bin/ng serve`\n\nafter hitting play in chrome dev tools the ng serve will hang and never complete.\n\nNote this happens using nodejs 22.13.0. It doesn't occur when using nodejs 18.19.0.\n\n### Minimal Reproduction\n\nSee description.\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nAngular CLI: 19.1.1\nNode: 22.13.0\nPackage Manager: npm 10.9.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, router\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29383","RelatedDescription":"Closed issue \"ng serve with --inspect-brk hangs\" (#29383)"},{"Id":"2795072814","IsPullRequest":false,"CreatedAt":"2025-01-17T10:02:53","Actor":"genomedicsmarzoli","Number":"29382","RawContent":null,"Title":"Error building with NG_BUILD_OPTIMIZE_CHUNKS=1 with Angular 19.1.1","State":"open","Body":"### Which @angular/* package(s) are the source of the bug?\n\ncompiler-cli\n\n### Is this a regression?\n\nYes\n\n### Description\n\nWith Angular 19.1.1, in my project if I run ng build with optimize chunks I get an error.\nWith Angular 19.0.6 it works.\n\nCommand: NG_BUILD_OPTIMIZE_CHUNKS=1 ng build app --configuration production --verbose\nError: Cannot add property 0, object is not extensible\n\n\n\n\n\n\n\n### Please provide a link to a minimal reproduction of the bug\n\n_No response_\n\n### Please provide the exception or error you saw\n\n```true\nBuilding...\n\n chunk-4T36XMOQ.js 12.8mb ⚠️\n chunk-JXGSWRY2.js 2.0mb ⚠️\n chunk-ZBXUQNUK.js 562.0kb\n chunk-4UB3MVEK.js 324.2kb\n chunk-6JDCJWJC.js 278.9kb\n chunk-3WSYH6XU.js 233.8kb\n chunk-7OFMGNBO.js 203.4kb\n chunk-D4PJKQDY.js 198.3kb\n chunk-JES74PKP.js 186.6kb\n ...and 63 more output files...\n\n\nDURATION[NG_READ_CONFIG]: 0.040807292s\nDURATION[NG_CREATE_PROGRAM]: 3.859811083s\nDURATION[NG_ANALYZE_PROGRAM]: 2.073732000s\nDURATION[NG_FIND_AFFECTED]: 0.003254750s\nDURATION[NG_EMIT_TS]: 2.465649125s\nDURATION[NG_DIAGNOSTICS_TOTAL]: 3.496337708s\nDURATION[NG_EMIT_JS*]: 832.883529868s [count: 3757; avg: 0.221688456s; min: 0.001637375s; max: 0.542740750s]\nTypeError: Cannot add property 0, object is not extensible\n at Array.push ()\n at LogicalExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14570:53)\n at /Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:12739:37\n at PathTracker.withTrackedEntityAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:3591:24)\n at CallExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:12737:33)\n at BinaryExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:12594:37)\n at LogicalExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14562:43)\n at LogicalExpression.getUsedBranch (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14655:41)\n at LogicalExpression.getLiteralValueAtPath (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14556:33)\n at LogicalExpression.getUsedBranch (/Users/andrea.marzoli/Developer/corestack/node_modules/rollup/dist/shared/rollup.js:14655:41)\nDURATION[OPTIMIZE_CHUNKS]: 4.411443833s\nApplication bundle generation failed. [19.970 seconds]\n\n✘ [ERROR] Chunk optimization failed\n\n Cannot add property 0, object is not extensible\n```\n\n### Please provide the environment you discovered this bug in (run `ng version`)\n\n```true\nAngular CLI: 19.1.1\nNode: 22.11.0\nPackage Manager: npm 10.9.2\nOS: darwin arm64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core\n... elements, forms, language-service, platform-browser\n... platform-browser-dynamic, router, service-worker\n\nPackage Version\n------------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@angular/cdk 19.1.0\n@angular/material 19.1.0\n@angular/material-moment-adapter 19.1.0\n@schematics/angular 19.1.1\nng-packagr 19.1.0\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else?\n\n![Image](https://github.com/user-attachments/assets/8567eb22-bf4f-4d9d-8e29-748cdadc535e)","Url":"https://github.com/angular/angular-cli/issues/29382","RelatedDescription":"Open issue \"Error building with NG_BUILD_OPTIMIZE_CHUNKS=1 with Angular 19.1.1\" (#29382)"},{"Id":"2793735279","IsPullRequest":false,"CreatedAt":"2025-01-17T08:46:19","Actor":"StephenFluin","Number":"29377","RawContent":null,"Title":"SSR + Local API is a confusing experience","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nI'd love to build an app with an Angular front-end with SSR and an express backend that handles API requests. The best practices and what actually works is unclear right now.\n\nWhen you scaffold a project with --ssr, you get a `server.ts` that even says you can put APIs in there.\n\nThis doesn't seem to work with `ng serve` because `server.ts` isn't used with `ng serve` (it calls your server module directly). To get around this I created a separate api.ts that could be run independently, or from within server.ts. I also created an environments file to switch between the endpoints based on dev mode or production mode.\n\nThis feels hacky but works OK, but then I realized that `ng build` is attempting a prerender WITHOUT my APIs, so it's failing.\n\nWhat's the intended way to use Angular, SSR, and locally hosted APIs?\n\n### Minimal Reproduction\n\n`ng new test --ssr` (opt out of server routing and app engine apis)\n\nsee server.ts 'Example Express Rest API endpoints can be defined here.' - try doing this.\n\n`ng serve`\nAPIs are missing\n\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nAngular CLI: 19.1.1\nNode: 22.10.0\nPackage Manager: yarn 1.22.22\nOS: linux x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29377","RelatedDescription":"Closed issue \"SSR + Local API is a confusing experience\" (#29377)"},{"Id":"2794237931","IsPullRequest":false,"CreatedAt":"2025-01-17T07:27:54","Actor":"princemaple","Number":"29378","RawContent":null,"Title":"feat: HMR respect baseHref","State":"closed","Body":"### Command\n\nserve\n\n### Description\n\nHMR via `/@ng/...` doesn't use the `baseHref`\n\nI sometimes start multiple ng serve and use a reverse proxy to serve the apps during dev. So far everything respects baseHref and this worked flawlessly. HMR is the first thing that I encountered that not respecting baseHref and breaking my reverse proxy.\n\n### Describe the solution you'd like\n\nHMR should consider baseHref, serving dynamic content via `/base/@ng/...`\n\n### Describe alternatives you've considered\n\nI'll have to switch between apps... 🤷","Url":"https://github.com/angular/angular-cli/issues/29378","RelatedDescription":"Closed issue \"feat: HMR respect baseHref\" (#29378)"},{"Id":"2794400958","IsPullRequest":false,"CreatedAt":"2025-01-17T06:16:17","Actor":"Ruisi-Lu","Number":"29379","RawContent":null,"Title":"Error: ɵgetOrCreateAngularServerApp is not a function when using lazy loading routes in 19.1.x SSR when HMR enabled","State":"closed","Body":"### Command\n\nserve\n\n### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nWhen implementing lazy loading routes, the application fails during runtime with the following error:\n\n```\n上午10:49:31 [vite] Internal server error: ɵgetOrCreateAngularServerApp is not a function\n at C:\\Project\\ssrtest\\node_modules\\.pnpm\\@angular+build@19.1.1_@angu_5cd6b3085b9f53655a442b950631221f\\node_modules\\@angular\\build\\src\\tools\\vite\\middlewares\\ssr-middleware.js:26:38\n上午10:49:31 [vite] Pre-transform error: Failed to resolve import \"./chunk-LPMLDZGR.js\" from \".angular/vite-root/ssrtest/main.js\". Does the file exist?\n Plugin: vite:import-analysis\n File: C:/Project/ssrtest/.angular/vite-root/ssrtest/main.js:6:31\n 14 | __spreadValues({\n 15 | path: \"\",\n 16 | loadChildren: () => import(\"./chunk-LPMLDZGR.js\")\n | ^\n 17 | }, false ? { \\u0275entryName: \"src/app/test/lazy.route.ts\" } : {})\n 18 | ];\n上午10:49:31 [vite] Internal server error: Failed to resolve import \"./chunk-LPMLDZGR.js\" from \".angular/vite-root/ssrtest/main.js\". Does the file exist?\n Plugin: vite:import-analysis\n File: C:/Project/ssrtest/.angular/vite-root/ssrtest/main.js:6:31\n 14 | __spreadValues({\n 15 | path: \"\",\n 16 | loadChildren: () => import(\"./chunk-LPMLDZGR.js\")\n | ^\n 17 | }, false ? { \\u0275entryName: \"src/app/test/lazy.route.ts\" } : {})\n 18 | ];\n at TransformPluginContext._formatError (file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47397:41)\n at TransformPluginContext.error (file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:47392:16)\n at normalizeUrl (file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45642:23)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async file:///C:/Project/ssrtest/node_modules/.pnpm/vite@6.0.7_@types+node@18.1_7931a348c589a4516c328719e7197a02/node_modules/vite/dist/node/chunks/dep-BJP6rrE_.js:45761:39\n```\n\n\n\n### Minimal Reproduction\n\nSteps to reproduce the issue:\n\n1. Create a new Angular project with SSR using version 19.1.0 or 19.1.1\n2. Configure routes using loadChildren\n3. Run the server\n4. Change component HTML template\n5. Observe the error in the terminal.\n\nReproduction project: https://github.com/Ruisi-Lu/angular19.1-lazyload-route-bug-reproduction-\n\n### Exception or Error\n\n```text\n\n```\n\n### Your Environment\n\n```text\nAngular CLI: 19.1.1\nNode: 20.18.1\nPackage Manager: pnpm 10.0.0\nOS: win32 x64\n\nAngular: 19.1.1\n... animations, cli, common, compiler, compiler-cli, core, forms\n... platform-browser, platform-browser-dynamic, platform-server\n... router, ssr\n\nPackage Version\n---------------------------------------------------------\n@angular-devkit/architect 0.1901.1\n@angular-devkit/build-angular 19.1.1\n@angular-devkit/core 19.1.1\n@angular-devkit/schematics 19.1.1\n@schematics/angular 19.1.1\nrxjs 7.8.1\ntypescript 5.7.3\nzone.js 0.15.0\n```\n\n### Anything else relevant?\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29379","RelatedDescription":"Closed issue \"Error: ɵgetOrCreateAngularServerApp is not a function when using lazy loading routes in 19.1.x SSR when HMR enabled\" (#29379)"},{"Id":"2793465938","IsPullRequest":false,"CreatedAt":"2025-01-16T18:45:55","Actor":"kemsky","Number":"29376","RawContent":null,"Title":"Consider adding migration to transform @import to @use in sass files","State":"closed","Body":"### Command\n\nupdate\n\n### Description\n\n`@import` is deprecated but `@use` is a total disaster out of nowhere, it would be nice to have migration that automatically converts sass imports to modules and puts correct namespaces.\n\n### Describe the solution you'd like\n\n_No response_\n\n### Describe alternatives you've considered\n\n_No response_","Url":"https://github.com/angular/angular-cli/issues/29376","RelatedDescription":"Closed issue \"Consider adding migration to transform @import to @use in sass files\" (#29376)"}],"ResultType":"GitHubIssue"},"material2-Issues":{"Issues":[{"Id":"2797786254","IsPullRequest":true,"CreatedAt":"2025-01-19T19:17:24","Actor":"crisbeto","Number":"30354","RawContent":null,"Title":"fix(material/form-field): remove dependency on animations module","State":"open","Body":"Switches the form field to use CSS for the subscript animations, instead of going through the animations module.","Url":"https://github.com/angular/components/pull/30354","RelatedDescription":"Open PR \"fix(material/form-field): remove dependency on animations module\" (#30354)"},{"Id":"2797601036","IsPullRequest":false,"CreatedAt":"2025-01-19T12:32:25","Actor":"alanpurple","Number":"30353","RawContent":null,"Title":"docs-bug(ALL): No examples of how to apply theme html-element-wise","State":"open","Body":"### Documentation Feedback\n\nthere is no way to apply defined primary, secondary, error, etc color to components\n\nfor one, there is no example how to apply secondary or tertiary color to material button\n\n### Affected documentation page\n\nhttps://material.angular.io/guide/theming","Url":"https://github.com/angular/components/issues/30353","RelatedDescription":"Open issue \"docs-bug(ALL): No examples of how to apply theme html-element-wise\" (#30353)"},{"Id":"2796838648","IsPullRequest":true,"CreatedAt":"2025-01-18T08:02:01","Actor":"crisbeto","Number":"30352","RawContent":null,"Title":"fix(material/expansion): inherit shape for focus indicator","State":"open","Body":"Fixes that the focus indicator had a different shape from the header.\r\n\r\nFixes #30350.","Url":"https://github.com/angular/components/pull/30352","RelatedDescription":"Open PR \"fix(material/expansion): inherit shape for focus indicator\" (#30352)"},{"Id":"2794115737","IsPullRequest":true,"CreatedAt":"2025-01-17T21:01:31","Actor":"mmalerba","Number":"30348","RawContent":null,"Title":"fix(material/autocomplete): fix initial render logic","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30348","RelatedDescription":"Closed or merged PR \"fix(material/autocomplete): fix initial render logic\" (#30348)"},{"Id":"2793875667","IsPullRequest":true,"CreatedAt":"2025-01-17T20:47:46","Actor":"mmalerba","Number":"30347","RawContent":null,"Title":"fix(material/chip): fix chip blur timing","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30347","RelatedDescription":"Closed or merged PR \"fix(material/chip): fix chip blur timing\" (#30347)"},{"Id":"2795786220","IsPullRequest":false,"CreatedAt":"2025-01-17T15:51:23","Actor":"bmayen","Number":"30351","RawContent":null,"Title":"feat(mat-calendar): Automatically reposition \"close calendar\" button if it is offscreen","State":"open","Body":"### Feature Description\n\nWhen using keyboard navigation, the \"close calendar\" button is placed at the bottom of the calendar after tabbing through the other interactive elements in the component. If this button would be positioned offscreen, it should be repositioned into view to improve accessibility.\n\n### Use Case\n\nA user may increase the browser size to 200%, or the calendar may just be positioned toward the bottom of the screen, which may cause this close button to render offscreen when displayed. ","Url":"https://github.com/angular/components/issues/30351","RelatedDescription":"Open issue \"feat(mat-calendar): Automatically reposition \"close calendar\" button if it is offscreen\" (#30351)"},{"Id":"2794987955","IsPullRequest":false,"CreatedAt":"2025-01-17T09:33:47","Actor":"richardsengers","Number":"30350","RawContent":null,"Title":"bug(Expansion panel): strong focus indicator not respacting shape + container-shape token not working","State":"open","Body":"\n### Description\n\nExpansion panels have a default container shape. When setting strong focus indicators, the corner of the strong focus-indicator are not rounded\n\n\"Image\"\n\nIn this example, it's just a little bit, but since we have a container-shape token, this can get worse when setting the shape to full\nhttps://m3.material.io/styles/shape/shape-scale-tokens\n\nIssue 2 \nWhen setting the container-shape token to one of the values described by m3 https://m3.material.io/styles/shape/shape-scale-tokens nothing happens. It looks more like container-shape is a true or false token instead of one of the options decribed by m3\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/lhvfsmcd?file=src%2Fstyles.scss\nSteps to reproduce:\n1. Click on the first or last panel\n\n\n### Expected Behavior\n\n1. Strong focus indicator should also be rounded \n2. Token container-shape should have one of the 7 options described by m3 \n\n### Actual Behavior\n\nStrong focus indicator do not have a rounded corner\nSetting container-shape to one of the 7 values removes the rounded corners\n\n### Environment\n\nAngular CLI: 19.0.5\nNode: 22.3.0\nPackage Manager: yarn 1.22.17\nOS: win32 x64\n\nAngular: 19.0.4\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... platform-server, router, service-worker\n\nPackage Version\n--------------------------------------------------------------\n@angular-devkit/architect 0.1900.5 (cli-only)\n@angular-devkit/build-angular 19.0.5\n@angular-devkit/core 19.0.5\n@angular-devkit/schematics 19.0.5\n@angular/cdk 19.0.3\n@angular/cli 19.0.5\n@angular/material 19.0.3\n@angular/material-date-fns-adapter 19.0.3\n@schematics/angular 19.0.5\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n\n","Url":"https://github.com/angular/components/issues/30350","RelatedDescription":"Open issue \"bug(Expansion panel): strong focus indicator not respacting shape + container-shape token not working\" (#30350)"},{"Id":"2794929495","IsPullRequest":false,"CreatedAt":"2025-01-17T09:03:50","Actor":"richardsengers","Number":"30349","RawContent":null,"Title":"bug(Dialog): dialogs have default max-width of 560px for screen larger then 560px","State":"open","Body":"### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\nM2\n\n### Description\n\nA mat-dialog has a default of 560px as a max-width. \nOffcourse we can override this behaviour but to me it looks like it's a wrong default because all dialogs are max 560px when changing to the new m3\n\n\"Image\"\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/tjvfafte-mzvlpzlp?file=src%2Fexample%2Fdialog-overview-example.ts\nSteps to reproduce:\n1. Make screen larger then 560px, you will notice the dialog isn't getting larger\n\n\n### Expected Behavior\n\nWhen a width is set to the dialog, the dialog should be as wide as the given width\n\n### Actual Behavior\n\nThe dialog has a max width of 560px\n\n### Environment\n\nAngular CLI: 19.0.5\nNode: 22.3.0\nPackage Manager: yarn 1.22.17\nOS: win32 x64\n\nAngular: 19.0.4\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... platform-server, router, service-worker\n\nPackage Version\n--------------------------------------------------------------\n@angular-devkit/architect 0.1900.5 (cli-only)\n@angular-devkit/build-angular 19.0.5\n@angular-devkit/core 19.0.5\n@angular-devkit/schematics 19.0.5\n@angular/cdk 19.0.3\n@angular/cli 19.0.5\n@angular/material 19.0.3\n@angular/material-date-fns-adapter 19.0.3\n@schematics/angular 19.0.5\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n\n","Url":"https://github.com/angular/components/issues/30349","RelatedDescription":"Open issue \"bug(Dialog): dialogs have default max-width of 560px for screen larger then 560px\" (#30349)"},{"Id":"2793752150","IsPullRequest":true,"CreatedAt":"2025-01-16T21:01:03","Actor":"mmalerba","Number":"30346","RawContent":null,"Title":"fix(material/chip): fix chip blur timing","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30346","RelatedDescription":"Closed or merged PR \"fix(material/chip): fix chip blur timing\" (#30346)"},{"Id":"2793022046","IsPullRequest":true,"CreatedAt":"2025-01-16T15:10:00","Actor":"mmalerba","Number":"30345","RawContent":null,"Title":"Bump version to \"v19.2.0-next.0\" with changelog.","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30345","RelatedDescription":"Closed or merged PR \"Bump version to \"v19.2.0-next.0\" with changelog.\" (#30345)"},{"Id":"2792999349","IsPullRequest":true,"CreatedAt":"2025-01-16T14:58:39","Actor":"mmalerba","Number":"30344","RawContent":null,"Title":"docs: release notes for the v19.1.0 release","State":"closed","Body":"Cherry-picks the changelog from the \"19.1.x\" branch to the next branch (main).","Url":"https://github.com/angular/components/pull/30344","RelatedDescription":"Closed or merged PR \"docs: release notes for the v19.1.0 release\" (#30344)"},{"Id":"2792996624","IsPullRequest":true,"CreatedAt":"2025-01-16T14:52:31","Actor":"mmalerba","Number":"30343","RawContent":null,"Title":"Bump version to \"v19.1.0\" with changelog.","State":"closed","Body":"","Url":"https://github.com/angular/components/pull/30343","RelatedDescription":"Closed or merged PR \"Bump version to \"v19.1.0\" with changelog.\" (#30343)"},{"Id":"2792945331","IsPullRequest":true,"CreatedAt":"2025-01-16T14:43:51","Actor":"mmalerba","Number":"30342","RawContent":null,"Title":"Revert \"test(material/timepicker): updates timepicker.spec.ts (#30335)\"","State":"closed","Body":"This reverts commit 0df6e0347206c2496922441812330ca0b0a15f04.","Url":"https://github.com/angular/components/pull/30342","RelatedDescription":"Closed or merged PR \"Revert \"test(material/timepicker): updates timepicker.spec.ts (#30335)\"\" (#30342)"},{"Id":"2787392825","IsPullRequest":false,"CreatedAt":"2025-01-16T12:25:52","Actor":"richardsengers","Number":"30326","RawContent":null,"Title":"bug(Checkbox): strong-focus-indicators do not have a radius of 50% as default","State":"closed","Body":"\n\nI think checkboxes should have a 50% border-radius as a default.\n\nit now looks like this:\n\n\"Image\"\n\n \n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/3teh9fg3?file=src%2Fstyles.scss\n\n\n### Expected Behavior\n\nExpected:\n\n\"Image\"\n\n### Actual Behavior\n\n\"Image\"\n\n### Environment\n\nAngular CLI: 19.0.5\nNode: 22.3.0\nPackage Manager: yarn 1.22.17\nOS: win32 x64\n\nAngular: 19.0.4\n... animations, common, compiler, compiler-cli, core, forms\n... language-service, platform-browser, platform-browser-dynamic\n... platform-server, router, service-worker\n\nPackage Version\n--------------------------------------------------------------\n@angular-devkit/architect 0.1900.5 (cli-only)\n@angular-devkit/schematics 19.0.5\n@angular/cdk 19.0.3\n@angular/cli 19.0.5\n@angular/material 19.0.3\n@angular/material-date-fns-adapter 19.0.3\n@schematics/angular 19.0.5\nrxjs 7.8.1\ntypescript 5.6.3\nzone.js 0.15.0\n","Url":"https://github.com/angular/components/issues/30326","RelatedDescription":"Closed issue \"bug(Checkbox): strong-focus-indicators do not have a radius of 50% as default\" (#30326)"},{"Id":"2789129679","IsPullRequest":true,"CreatedAt":"2025-01-16T12:25:51","Actor":"crisbeto","Number":"30332","RawContent":null,"Title":"fix(material/checkbox): ensure focus indicator has the correct shape","State":"closed","Body":"The specificity for the checkbox's focus indicator was very low which means that if the ripple styles are loaded later, it can be overwritten.\r\n\r\nFixes #30326.","Url":"https://github.com/angular/components/pull/30332","RelatedDescription":"Closed or merged PR \"fix(material/checkbox): ensure focus indicator has the correct shape\" (#30332)"},{"Id":"2792116549","IsPullRequest":false,"CreatedAt":"2025-01-16T09:07:34","Actor":"naaajii","Number":"30341","RawContent":null,"Title":"setting up repository locally always create issues on Windows.","State":"open","Body":"### Documentation Feedback\n\nI don't have my own system so I use my work laptop to contribute and I'm always juggling between different laptops so I have to setup again and again. Setting up repository on Ubuntu seems fairly easy & works out of the box but Windows bothers alot. I have been using a Windows 11 for past few months & whenever I find free time to contribute I struggle to run on Windows 10 & 11 all the time.\n\nI have been provided a new laptop & I'm facing issues such as:\n\n1. error Couldn't find match for in \"refs/heads/main\" for \"https://github.com/angular/dev-infra-private-ng-dev-builds.git\".\ninfo Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. \n\nSometimes gets fixed on yarn cache clear, mostly happens whenever I update the work and run yarn after a long time.\n\n2. iBazel [1:54PM]: Error writing failure to stdin: write |1: file already closed\n\nhappens all the time, gets fixed sometimes when I delete bazel folders and end all processes from task manager.\n\n3. iBazel [1:08PM]: Error starting process: fork/exec C:\\Users\\CENTRI~1\\AppData\\Local\\Temp\\bazel_script_path4055922069.bat: %1 is not a valid Win32 application.\niBazel [1:08PM]: Run start failed fork/exec C:\\Users\\CENTRI~1\\AppData\\Local\\Temp\\bazel_script_path4055922069.bat: %1 is not a valid Win32 application.\n\nI checked the bat file and its 0kb so I'm not sure whats causing it to generate an empty file. I also have added BAZEL_SH to the environment variables. I also came across other issues where peopled claimed its caused by WSL on Windows but I have had it disabled it on both work laptops. I also have used bash and Windows command to run the project but errors are always the same.\n\n### Affected documentation page\n\nhttps://github.com/angular/components/blob/1e5663636eb38d5556f500840dd7e00dd9950b70/DEV_ENVIRONMENT.md?plain=1","Url":"https://github.com/angular/components/issues/30341","RelatedDescription":"Open issue \"setting up repository locally always create issues on Windows.\" (#30341)"},{"Id":"2791906861","IsPullRequest":false,"CreatedAt":"2025-01-16T07:27:18","Actor":"jolenius","Number":"30340","RawContent":null,"Title":"bug(COMPONENT): chip with autocomplete adds two chips when selecting filtered option using keyboard","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nWhen combining chips with the autocomplete component you get two entries of chips when filtering the list of options by typing a few characters and then selecting an option by using your keyboard (arrow down and enter).\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/2qghuqyq?file=src%2Fexample%2Fchips-autocomplete-example.ts\n(stackblitz fetched from the Chips Autocomplete example at https://material.angular.io/components/chips/examples)\nSteps to reproduce:\n1. Enter a few characters to start filtering the autocomplete list\n2. Use the keyboard to select a option (up/down arrow followed by enter)\n\n\n### Expected Behavior\n\nOnly the selected option from the autocomplete list is added the the chips\n\n### Actual Behavior\n\nThe selected option from the autocomplete list and the current value of the input field are added as two sepparate entries to the chips\n\n### Environment\n\n- Angular: 19\n- CDK/Material: 19\n- Browser(s): Edge\n- Operating System (e.g. Windows, macOS, Ubuntu): Windows, Linux (RHEL 8)\n","Url":"https://github.com/angular/components/issues/30340","RelatedDescription":"Open issue \"bug(COMPONENT): chip with autocomplete adds two chips when selecting filtered option using keyboard\" (#30340)"},{"Id":"2791891364","IsPullRequest":false,"CreatedAt":"2025-01-16T07:19:10","Actor":"jolenius","Number":"30339","RawContent":null,"Title":"bug(COMPONENT): chip with autocomplete does not clear the input field after adding new chip","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nWhen combining chips with the autocomplete component the input field isn't cleared between each entry. Despite setting the input fields value to a empty string at the end of my function that is invoked by the optionSelected event.\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/2qghuqyq?file=src%2Fexample%2Fchips-autocomplete-example.ts\n(stackblitz fetched from the Chips Autocomplete example at https://material.angular.io/components/chips/examples)\nSteps to reproduce:\n1. Enter a few characters to start filtering the autocomplete list\n2. Select an item on the list by using your mouse\n\n\n### Expected Behavior\n\nAfter clicking an item from the autocomplete list the input field should be cleared\n\n### Actual Behavior\n\nThe value in the input field is unchanged \n\n### Environment\n\n- Angular: 19\n- CDK/Material: 19\n- Browser(s): Edge\n- Operating System (e.g. Windows, macOS, Ubuntu): Linux (RHEL 8)\n","Url":"https://github.com/angular/components/issues/30339","RelatedDescription":"Open issue \"bug(COMPONENT): chip with autocomplete does not clear the input field after adding new chip\" (#30339)"},{"Id":"2791729100","IsPullRequest":false,"CreatedAt":"2025-01-16T05:19:28","Actor":"codestrelaoffice","Number":"30338","RawContent":null,"Title":"bug(COMPONENT): Date Picker Icon Comes on a new Line","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nIn the datepicker calendar icon comes in new line on.\n\n### Reproduction\n\nStackBlitz link: \nSteps to reproduce:\n1. \n2.\n\n\n### Expected Behavior\n\nCalendar icon should come in the same line \n\n### Actual Behavior\n\nIt should come in same line as the date .\n\n### Environment\n\n- Angular:\n- CDK/Material:\n- Browser(s):\n- Operating System (e.g. Windows, macOS, Ubuntu):\n","Url":"https://github.com/angular/components/issues/30338","RelatedDescription":"Open issue \"bug(COMPONENT): Date Picker Icon Comes on a new Line\" (#30338)"},{"Id":"2787954564","IsPullRequest":true,"CreatedAt":"2025-01-16T01:44:11","Actor":"wagnermaciel","Number":"30329","RawContent":null,"Title":"fix(material/slider): tick mark positioning","State":"closed","Body":"Fixes #29409 ","Url":"https://github.com/angular/components/pull/30329","RelatedDescription":"Closed or merged PR \"fix(material/slider): tick mark positioning\" (#30329)"},{"Id":"2790607442","IsPullRequest":true,"CreatedAt":"2025-01-15T22:04:20","Actor":"essjay05","Number":"30335","RawContent":null,"Title":"test(material/timepicker): update timepicker tests to match timepicker toggle changes","State":"closed","Body":"Updates Timepicker.spec.ts to match recent changes to Timepicker toggle having\r\na default aria-label.","Url":"https://github.com/angular/components/pull/30335","RelatedDescription":"Closed or merged PR \"test(material/timepicker): update timepicker tests to match timepicker toggle changes\" (#30335)"},{"Id":"2791020821","IsPullRequest":false,"CreatedAt":"2025-01-15T21:56:58","Actor":"mudcovered","Number":"30337","RawContent":null,"Title":"docs-bug(material): Documentation on how to use M3 styles is completely inadequate","State":"open","Body":"### Documentation Feedback\n\nThere are no examples showing how to use the overrides to generate appropriate colour schemes. As an example I was trying to mimic the -mat-toolbar azure/blue colour scheme in the angular material 19 toolbar but was unable to figure it out.\n\nThe documentation tells me what styles exist but provides no examples on how to achieve useful results.\n\nIn comparison the M2 themes which had default color decisions made this far easier for beginners.\n\nIts not clear whether this is a problem that impacts other component documentation so this could be the tip of a much larger iceberg.\n\n\n\n\n### Affected documentation page\n\nhttps://material.angular.io/components/toolbar/styling","Url":"https://github.com/angular/components/issues/30337","RelatedDescription":"Open issue \"docs-bug(material): Documentation on how to use M3 styles is completely inadequate\" (#30337)"},{"Id":"2790834149","IsPullRequest":false,"CreatedAt":"2025-01-15T20:55:39","Actor":"uttamvs-rp","Number":"30336","RawContent":null,"Title":"feat(mat-table): The column ordering in the Mat Table isn't working when the columns and rows are based on different arrays","State":"closed","Body":"### Feature Description\n\nI've got a situation where I need to use two different column arrays for the material table. The column rendering array has two properties: fieldName (which is the actual field from the backend API response) and displayName (the name that shows up in the UI). Here's a quick example:\n\n`{{column.displayName}}{{element[column.fieldName]}}`\n\nSo, when I'm setting up the row, I've got this simple string array that just has the field names from the array above. This way, the actual data can connect with the table columns. Here's a quick example:\n\n``\n\nSo after this code change, the material column reordering isn't working anymore. Does anyone know what might be going on or how to fix it? Or is this just a bug with the Angular Material table?\n\nI've put together a working StackBlitz example here so you can get a better idea of what's going on: [StackBlitz ](https://stackblitz.com/edit/x39nz1ba?file=src%2Fexample%2Ftable-reorderable-example.ts)\n\n\n\n \n\n### Use Case\n\n_No response_","Url":"https://github.com/angular/components/issues/30336","RelatedDescription":"Closed issue \"feat(mat-table): The column ordering in the Mat Table isn't working when the columns and rows are based on different arrays\" (#30336)"},{"Id":"2790427198","IsPullRequest":true,"CreatedAt":"2025-01-15T17:24:50","Actor":"amysorto","Number":"30334","RawContent":null,"Title":"feat(material/theming): Expose tonal palette values in the system level variables","State":"open","Body":"","Url":"https://github.com/angular/components/pull/30334","RelatedDescription":"Open PR \"feat(material/theming): Expose tonal palette values in the system level variables\" (#30334)"},{"Id":"2790405378","IsPullRequest":false,"CreatedAt":"2025-01-15T17:16:02","Actor":"andrewseguin","Number":"30333","RawContent":null,"Title":"feat(cdk/drag-drop): allow drag to be canceled after dragged over list","State":"open","Body":"### Feature Description\n\nItems actively dragged from one list to another, but without releasing the drag, cannot be canceled. The list changes immediately and the user cannot undo the action. This issue tracks the request to enable an API that lets dragging be canceled, e.g. by undo'ing the list changes (or not change the lists at all) if the item is not dropped onto a drop container\n\n### Use Case\n\n_No response_","Url":"https://github.com/angular/components/issues/30333","RelatedDescription":"Open issue \"feat(cdk/drag-drop): allow drag to be canceled after dragged over list\" (#30333)"},{"Id":"2788964200","IsPullRequest":false,"CreatedAt":"2025-01-15T08:02:32","Actor":"mazhar-fis","Number":"30331","RawContent":null,"Title":"bug(Paginator): Disabled buttons are still focusable via keyboard","State":"closed","Body":"### Is this a regression?\n\n- [x] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n18.0.0\n\n### Description\n\nThe disabled button(Navigation buttons for First Page, Previous Page, Next Page, Last Page) of paginator are now accessible, hover-able and focusable via keyboard.\n\n\"Image\"\n\n### Reproduction\n\nStackBlitz link: \nSteps to reproduce:\n1. Hover over disabled navigation buttons\n2. navigate to disabled navigation buttons using keyboard\n\n\n### Expected Behavior\n\nThe disabled button(Navigation buttons for First Page, Previous Page, Next Page, Last Page) of paginator should not be accessible, hover-able and focusable via keyboard.\n\n\"Image\"\n\n### Actual Behavior\n\nThe disabled button(Navigation buttons for First Page, Previous Page, Next Page, Last Page) of paginator are now accessible, hover-able and focusable via keyboard.\n\n\"Image\"\n\n### Environment\n\n- Angular: 19.0.0\n- CDK/Material: 19.0.0\n- Browser(s): Chrome, Firefox, Edge\n- Operating System (e.g. Windows, macOS, Ubuntu): Windows\n","Url":"https://github.com/angular/components/issues/30331","RelatedDescription":"Closed issue \"bug(Paginator): Disabled buttons are still focusable via keyboard\" (#30331)"},{"Id":"2788196859","IsPullRequest":true,"CreatedAt":"2025-01-14T20:13:44","Actor":"giorgi1441","Number":"30330","RawContent":null,"Title":"turns accordion class into signals","State":"open","Body":"","Url":"https://github.com/angular/components/pull/30330","RelatedDescription":"Open PR \"turns accordion class into signals\" (#30330)"},{"Id":"2787699602","IsPullRequest":false,"CreatedAt":"2025-01-14T16:32:32","Actor":"MikaStark","Number":"30328","RawContent":null,"Title":"feat(typography): use variable fonts instead of statics one by default","State":"open","Body":"### Feature Description\n\nHi 🙌\nI propose replacing the current static fonts for Roboto and Material Symbols with their variable font counterparts.\n\nIt will bring minor but valuable improvements especially for newcomers :\n\n- Reduced file sizes and HTTP requests.\n- Greater control over font properties (e.g., weight, width).\n- Aligns with the latest web standards.\n\nThis change would enhance Angular Material’s efficiency, design capabilities, and relevance.\n\nHere is a quick example of new default font import proposal : \n\n```html\n\n\n\n\n```\n\nThank you for considering this request.\n\n### Use Case\n\n- Enhance getting started with Angular Material experience\n- Promote modern font technologies\n- Align with latest web standards\n- Better maintenability and performance","Url":"https://github.com/angular/components/issues/30328","RelatedDescription":"Open issue \"feat(typography): use variable fonts instead of statics one by default\" (#30328)"},{"Id":"2787491147","IsPullRequest":false,"CreatedAt":"2025-01-14T15:26:34","Actor":"alexeagle","Number":"30327","RawContent":null,"Title":"feat(build): reduce boilerplate duplication in material.angular.io folder","State":"open","Body":"### Feature Description\n\nSince the github.com/angular/material.angular.io repo was brought into this repo in a subfolder, it brought its root files with it:\n\n- A separate yarn workspace\n- `.bazelversion` (7.3) which differs from the root (5.0)\n- Other Bazel files defining the repository root\n- Linter/formatter configurations\n\nWe may want to brainstorm a sequencing of infra changes to improve this, especially if engineers need to make commits that affect files both inside and outside this subdirectory, or need a functional Bazel dependency graph so targets can refer to others across that boundary.\n\nNote that GHA workflows were merged in #30288 as a beginning to solving this issue.\n\n### Use Case\n\n_No response_","Url":"https://github.com/angular/components/issues/30327","RelatedDescription":"Open issue \"feat(build): reduce boilerplate duplication in material.angular.io folder\" (#30327)"},{"Id":"2787386857","IsPullRequest":false,"CreatedAt":"2025-01-14T14:53:47","Actor":"gnemeth-ibl","Number":"30325","RawContent":null,"Title":"bug(CdkDrag): CdkDrag stays outside the boundary if it's size change","State":"open","Body":"### Is this a regression?\n\n- [ ] Yes, this behavior used to work in the previous version\n\n### The previous version in which this bug was not present was\n\n_No response_\n\n### Description\n\nIf the size of the drag boundary changes, the draggable element does not recalculate its position and remains outside the boundary.\n\n### Reproduction\n\nStackBlitz link: https://stackblitz.com/edit/l8npyx4z?file=src%2Fexample%2Fcdk-drag-drop-boundary-example.html,src%2Fexample%2Fcdk-drag-drop-boundary-example.ts\nSteps to reproduce:\n1. Drag the element to the right edge\n2. Click the resize button\n3. The drag element is outside the boundary\n\n![Image](https://github.com/user-attachments/assets/9f3d444f-8b85-4bd1-9a4c-715ba4a5c7ca)\n\n\n### Expected Behavior\n\nThe drag element should stay inside the boundary,\n\n### Actual Behavior\n\nIt stays outside the boundary.\n\n### Environment\n\n- Angular: 19.0.5\n- CDK/Material: 19.0.5\n- Browser(s): Chrome 131.0.6778.265\n- Operating System (e.g. Windows, macOS, Ubuntu): Win 11\n","Url":"https://github.com/angular/components/issues/30325","RelatedDescription":"Open issue \"bug(CdkDrag): CdkDrag stays outside the boundary if it's size change\" (#30325)"}],"ResultType":"GitHubIssue"}},"RunOn":"2025-01-20T03:30:02.4900649Z","RunDurationInMilliseconds":1632} \ No newline at end of file