@angular/platform-browser-dynamic
22.2.3 · 14 Oct 2026MIT4.2M / weekRepositoryHomepagenpmAtom feed
586 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 22.x · latest line
22.2.0
23 Sep 2026vscode-extension: Support inlay hint in inline templates
vscode-extension: Provide folding ranges for templates with interpolated strings
vscode-extension: Handle template literals when detecting supported decorator fields
vscode-extension: Support inlay hint in inline templates
vscode-extension: Provide folding ranges for templates with interpolated strings
vscode-extension: Handle template literals when detecting supported decorator fields
language-service: Add support for @boundary blocks
22.1.0
29 Jul 2026language-service: Account for strictTemplates being enabled by default
language-service: Typecheck templates which would require inline typecheck blocks
language-service: Compile non-exported classes if standalone
22.0.1
10 Jun 2026vscode-extension: Resolve relative workspace tsdk paths to absolute
language-service: Prevent external template inlay hints from appearing in TS files
vscode-extension: Inspect tsdk configurations correctly
22.0.0
3 Jun 2026- breaking
This change will trigger the
nullishCoalescingNotNullableandoptionalChainNotNullablediagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in yourtsconfigtemporarily. - breaking
Data prefixed attribute no-longer bind inputs nor outputs.
- breaking
The compiler will throw when there a when inputs, outputs or model are binding to the same input/outputs.
compiler
Commit Description feat - 47fcbc4704 allow safe navigation to correctly narrow down nullables feat - 2896c93cc1 Angular expressions with optional chaining returns undefinedfeat - e850643b1b Support comments in html element. fix - 96be4f429b abstract emitter producing incorrect code for dynamic imports fix - 488d962bc7 Don't bind inputs/outputs for data-attributesfix - 2c5aabb9da don't escape dollar sign in literal expression fix - c7aef8ec5d enforce parentheses containing arguments for :host-context fix - b225a5d902 invalid type checking code if field name needs to be quoted fix - ab9154ab75 normalize tag names with custom namespaces in DomElementSchemaRegistry (#68868) fix - 8a1533c9ad preserve leading commas in animation definitions fix - 194f723f66 remove dedicated support for legacy shadow DOM selectors fix - 4c25a42e98 remove deprecated shadow CSS encapsulation polyfills fix - 6ff620a033 sanitize dynamic href and xlink:href bindings on SVG a elements (#68868) fix - 7dc1017e51 simplify handling of colon host with a selector list fix - d99ab0e040 stop generating unused field fix - 03db2aefaa throw on duplicate input/outputs fix - 786ef8261f throw on invalid in expressions fix - ccb7d427e4 type check invalid for loops compiler-cli
Commit Description feat - b8d3f36ed9 add support for Node.js 26.0.0 feat - 7f9450219f Adds warning for prefetch without main defer trigger feat - 2eae497a04 support external TCBs with copied content in specific mode fix - e5f96c2d88 animation events not type checked properly when bound through HostListener decorator fix - 9218140348 resolve TCB mapping failure for safe property reads with as any fix - 7a0d6b8df2 transform dropping exclamationToken from properties refactor - ca67828ee2 introduce NG8023 compile-time diagnostic for duplicate selectors core
Commit Description feat - 17d3ea44e2 add IdleRequestOptionssupport toIdleServicefeat - 3b0ae5fef0 add provideWebMcpToolsfeat - 444b024d49 Add a injectAsynchelper functionfeat - 3bc095d508 Add a schematics to migrate provideHttpClientto keep using theHttpXhrBackendimplementation.feat - 5a7c1e62dc add ability to cache resources for SSR feat - cb4cb77053 Add migration to add ChangeDetectionStrategy.Eagerwhere applicablefeat - 2206efa55f add special return statuses for resource params feat - 246a984a5d add TestBed.getFixture feat - b918beda32 allow debouncing signals feat - 8bc31a515f Allow other expression for exhaustive typechecking feat - 4e331062e8 allow synchronous values for stream Resources feat - a0aa8304cd bootstrap via ApplicationRefwith configfeat - 9c55fcb3e6 de-duplicate host directives feat - 8fe025f514 drop support for TypeScript 5.9 feat - 2f5ab541ea enhance profiling with documentation URLs feat - ef1810197b export experimental declareWebMcpToolsupportfeat - 75f2cb8f56 implement Angular DI graph in-page AI tool feat - 8f3d0b9d97 introduce @Servicedecoratorfeat - df659b8d0c re-introduce nested leave animations scoped to component boundaries feat - 8ce9cc4f6b register AI runtime debugging tools feat - eae8f7e30b Set default Component changeDetection strategy to OnPush feat - cdda51a3b2 support bootstrapping Angular applications underneath shadow roots feat - a5981b83a6 support customization of @defer's on idle behavior feat - 98eb24cea0 Support optional timeout for idle deferred triggers feat - dc3131c639 TestBed.getFixture -> TestBed.getLastFixture and update implementation feat - 9f479ae964 Update Testability to use PendingTasks for stability indicator fix - 8ebae1de33 allow service with factory on abstract classes fix - f9d8da6924 bind global context to idle callback shims in @defer's idle service fix - 61a48e99aa do not register dom triggers when defer blocks are in manual mode fix - 49748b5c79 enforce return type for service factory fix - 16adbbf423 ensure custom controls resolve transitive host directives fix - 50e599e73e lazy-initialize debounced state to prevent computation cycle fix - 7aad302c3e mark service decorator as stable fix - a08e4fb93c normalize tag names in runtime i18n attribute security context lookup (#68868) fix - b20f0fe078 prevent rxResource from leaking a subscription fix - 22f8b0a500 resolver function not matching expected type fix - 88d138ccc8 support prefix-insensitive DOM schema lookups and compile-time i18n attribute validation fix - bfe6f6c2a5 synchronize core sanitization schema with compiler fix - 5e99ae9f00 widen type for directive inputs/outputs refactor - b9b5c279b4 enhance AnimationCallbackEvent.animationComplete signature refactor - 69fb1614ef remove checkNoChangesfrom the public API.refactor - 36936872c9 remove createNgModuleRefrefactor - 9d76ac8229 remove ComponentFactoryResolver & ComponentFactory from the api surface refactor - b1f5181ffd remove ComponentFactoryResolver & ComponentFactory from the api surface"" forms
Commit Description feat - 74f76d8075 add reloadValidationto Signal Forms to manually trigger async validationfeat - 24e52d450d add debounce option to validateAsync and validateHttp feat - 709f5a390c add FieldState.getError() feat - 7745365910 graduate signal forms APIs to public API feat - f9f24fc669 shim legacy NG_VALIDATORS into parseErrors for CVA mode (#67943) feat - 41b1410cb8 support binding `number feat - 3983080236 support ngNoCva as an opt-out for ControlValueAccessors feat - c4ce3f345f template & reactive support for FVC fix - 3524de29f3 Add support for range type with outside of native bounds fix - de56d74da3 align FormField CVA selection priority with standard forms fix - 0eeb1b5f03 allow FormRootto be used without submission options (#67727)fix - 394ad0c2a2 allow late-bound input types for signals forms fix - ee8d2098cb change FieldState optional properties to non-optional fix - df8b020299 clear native date inputs correctly in signal forms when changed via native UI fix - 2e9aeea0fe deduplicate writeValue calls in CVA interop fix - 0ea50ffe5a ensure debounced async validators produce pending status during debounce fix - 3c44d7c90b fix orphan field error on blur during array removal fix - 849dba6c65 implement custom control reset propagation fix - 5835a5e3a7 prevent orphan field crashes in debounceSync and async validation fix - 3e7ce0dafc restrict SignalFormsConfigto a readonly APIfix - fb166772d2 split the touchedmodel into an input andtouchoutputfix - 83032e3605 support generic unions in signal form schemas fix - 68c3abbe09 synchronize controls with the model on reset fix - 2061fd8253 Untrack setValuein reactive formsfix - 72d3ace03c use controlValue in NgControl for CVA interop (#67943) perf - 3b4ef1e2ff avoid redundant invalidations in parser errors signal perf - 07a9358157 avoid spurious recomputation in FormField.parseErrors perf - 98c5afdb02 lazily instantiate signal form fields perf - e0536091f5 optimize reactivity by using shallow array equality perf - 9b9769479b shortcut deepSignal writes if value is unchanged refactor - 592a12d6c9 remove string support from min and max validation rules (#68001) http
Commit Description feat - 5c432fb8bb Use FetchBackendas default for theHttpBackendimplementationfix - f7b3ed8db2 Introduce a max buffer size for fetch requests on SSR fix - e6cfaf5672 prevent httpResourcefrom leaking a subscriptionrefactor - 7c8c3347ef Add reportUploadProgress&reportDownloadProgressoptionslanguage-service
Commit Description feat - 5a6d88626b add angular template inlay hints support feat - cfd0f9950c add Document Symbols support for Angular templates feat - c6f98c723c Add support for idle timeout in defer blocks fix - dc9c72da9b Add support for @Inputwith transformsmigrations
Commit Description feat - 8216d34976 Add migration for CanMatchFn snapshot parameter (#67452) feat - 682aaf943f add strictTemplates to tsconfig during ng update feat - 6a435658e2 Disabling nullishCoalescingNotNullable & optionalChainNotNullable on ng update feat - 8f8972b0fd model + output migrations fix - f01901d766 avoid generating invalid code in ChangeDetectionStrategy.Eager migration fix - 1415d86980 Fix typo for strict-template migration fix - 9d9855a415 Make the safe optional chaining idempotent fix - 0f2160c410 remove compiler import from safe optional chaining migration platform-browser
Commit Description feat - 68628dd45b make incremental hydration default behavior fix - d45b7a91f9 remove unused styles when associated hostis droppedrefactor - f99e7ed20f remove Hammer integration router
Commit Description feat - 89c9a4de30 Add optionsoptional parameter forwithComponentInputBindingfeat - c84642ac16 add unmatchedInputBehavior option to componentInputBinding feat - 3683902234 adds browserUrl input support to router links fix - 3e7117d690 Add strict typing on 'getResolvedTitleForRoute' fix - 579440170b make currentSnapshot required in CanMatchFn (#67452) fix - 17d10f7a99 set default paramsInheritanceStrategy to 'always' refactor - bdb6ae9dbc remove deprecated provideRoutesfunction.service-worker
Commit Description fix - 836094c072 resolve TS 6.0 compatibility for messageerror listener upgrade
Commit Description refactor - 01a179577b remove getAngularLib/setAngularLibBreaking Changes
compiler
- breaking
This change will trigger the
nullishCoalescingNotNullableandoptionalChainNotNullablediagnostics on exisiting projects.
You might want to disable those 2 diagnotiscs in yourtsconfigtemporarily. - breaking
Data prefixed attribute no-longer bind inputs nor outputs.
- breaking
The compiler will throw when there a when inputs, outputs or model are binding to the same input/outputs.
- breaking
invariables will throw in template expressions.
compiler-cli
- breaking
Elements with multiple matching selectors will now throw at compile time.
core
- breaking
The second arguement of appRef.bootstrap does not accept
anyanymore. Make sure the element you pass is not nullable. - breaking
TypeScript versions older than 6.0 are no longer supported.
- breaking
Leave animations are no longer limited to the element being removed.
- breaking
Component with undefined
changeDetectionproperty are nowOnPushby default. SpecifychangeDetection: ChangeDetectionStrategy.Eagerto keep the previous behavior. - breaking
Change AnimationCallbackEvent.animationComplete signature
- breaking
ChangeDetectorRef.checkNoChangeswas removed. In tests usefixture.detectChanges()instead. - breaking
createNgModuleRefwas removed, usecreateNgModuleinstead - breaking
ComponentFactoryResolverandComponentFactoryare no longer available. Pass the component class directly to APIs that previously required a factory, such asViewContainerRef.createComponentor use the standalonecreateComponentFunction. - breaking
ComponentFactoryResolverandComponentFactoryare no longer available. Pass the component class directly to APIs that previously required a factory, such asViewContainerRef.createComponentor use the standalonecreateComponentfunction. - breaking
streamResource(which includesrxResource) are now resolving the value synchronously if the stream/observable returns a value sychronously. This can break some tests that assumed an asynchronous resolution of the value.
forms
- breaking
minandmaxvalidation rules no longer support
string values. Bound values must be numbers or null.
http
- breaking
Use the
HttpXhrBackendwithprovideHttpClient(withXhr)if you want to keep supporting upload progress reports.
platform-browser
- breaking
This removes styles when they appear to no longer be used by an associated
host. However other DOM on the page may still be affected by those styles if not leveragingViewEncapsulation.Emulatedor if those styles are used by elements outside of Angular, potentially causing other DOM to appear unstyled. - breaking
Hammer.js integration has been removed. Use your own implementation.
router
- breaking
The return type for
TitleStrategy.getResolvedTitleForRoute
was previously 'any' while the actual return type could only be eitherstring
orundefined. The return type now reflects the possible values correctly.
Code that reads the value may need to be adjusted.(cherry picked from commit ad37f52)
- breaking
The
currentSnapshotparameter inCanMatchFnand thecanMatchmethod of theCanMatchinterface is now required. While this was already the behavior of the Router at runtime, existing class implementations ofCanMatchmust now include the third argument to satisfy the interface. - breaking
paramsInheritanceStrategy now defaults to 'always'
The default value of paramsInheritanceStrategy has been changed from 'emptyOnly' to 'always'. This means that route parameters are inherited from all parent routes by default. To restore the previous behavior, set paramsInheritanceStrategy to 'emptyOnly' in your router configuration.
- breaking
provideRoutes()has been removed. UseprovideRouter()orROUTESas multi token if necessary.
upgrade
- breaking
Deprecated
getAngularLib/setAngularLibhave been removed usegetAngularJSGlobal/setAngularJSGlobalinstead.
Deprecations
http
- deprecated
withFetchis now deprecated, it can be safely removed. - deprecated
The
reportProgressoption is deprecated please usereportUploadProgress&reportDownloadProgressinstead.
- 21.x
21.2.19
29 Jul 2026Reading the note…
21.2.18
8 Jul 2026Reading the note…
21.2.17
10 Jun 2026Reading the note…
21.2.16
3 Jun 2026Reading the note…
21.2.15
28 May 2026Reading the note…
21.2.14
20 May 2026Reading the note…
21.2.13
13 May 2026Reading the note…
21.2.12
6 May 2026Reading the note…
21.2.11
29 Apr 2026Reading the note…
21.2.10
22 Apr 2026Reading the note…
21.2.9
15 Apr 2026Reading the note…
21.2.8
8 Apr 2026Reading the note…
21.2.7
1 Apr 2026Reading the note…
21.2.6
25 Mar 2026Reading the note…
21.2.5
18 Mar 2026Reading the note…
21.2.4
12 Mar 2026Reading the note…
21.2.3
11 Mar 2026Reading the note…
21.2.2
9 Mar 2026Reading the note…
21.2.1
4 Mar 2026Reading the note…
21.2.0
25 Feb 2026Reading the note…
21.1.6
25 Feb 2026Reading the note…
21.1.5
18 Feb 2026Reading the note…