npm @angular/platform-browser-dynamic 22.0.0

4 hours ago

compiler

Commit Description
feat - 47fcbc4704 allow safe navigation to correctly narrow down nullables
feat - 2896c93cc1 Angular expressions with optional chaining returns undefined
feat - 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- attributes
fix - 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 IdleRequestOptions support to IdleService
feat - 3b0ae5fef0 add provideWebMcpTools
feat - 444b024d49 Add a injectAsync helper function
feat - 3bc095d508 Add a schematics to migrate provideHttpClient to keep using the HttpXhrBackend implementation.
feat - 5a7c1e62dc add ability to cache resources for SSR
feat - cb4cb77053 Add migration to add ChangeDetectionStrategy.Eager where applicable
feat - 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 ApplicationRef with config
feat - 9c55fcb3e6 de-duplicate host directives
feat - 8fe025f514 drop support for TypeScript 5.9
feat - 2f5ab541ea enhance profiling with documentation URLs
feat - ef1810197b export experimental declareWebMcpTool support
feat - 75f2cb8f56 implement Angular DI graph in-page AI tool
feat - 8f3d0b9d97 introduce @Service decorator
feat - 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 checkNoChanges from the public API.
refactor - 36936872c9 remove createNgModuleRef
refactor - 9d76ac8229 remove ComponentFactoryResolver & ComponentFactory from the api surface
refactor - b1f5181ffd remove ComponentFactoryResolver & ComponentFactory from the api surface""

forms

Commit Description
feat - 74f76d8075 add reloadValidation to Signal Forms to manually trigger async validation
feat - 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 FormRoot to 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 SignalFormsConfig to a readonly API
fix - fb166772d2 split the touched model into an input and touch output
fix - 83032e3605 support generic unions in signal form schemas
fix - 68c3abbe09 synchronize controls with the model on reset
fix - 2061fd8253 Untrack setValue in reactive forms
fix - 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 FetchBackend as default for the HttpBackend implementation
fix - f7b3ed8db2 Introduce a max buffer size for fetch requests on SSR
fix - e6cfaf5672 prevent httpResource from leaking a subscription
refactor - 7c8c3347ef Add reportUploadProgress & reportDownloadProgress options

language-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 @Input with transforms

migrations

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 host is dropped
refactor - f99e7ed20f remove Hammer integration

router

Commit Description
feat - 89c9a4de30 Add options optional parameter for withComponentInputBinding
feat - 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 provideRoutes function.

service-worker

Commit Description
fix - 836094c072 resolve TS 6.0 compatibility for messageerror listener

upgrade

Commit Description
refactor - 01a179577b remove getAngularLib/setAngularLib

Breaking Changes

compiler

  • This change will trigger the nullishCoalescingNotNullable and optionalChainNotNullable diagnostics on exisiting projects.
    You might want to disable those 2 diagnotiscs in your tsconfig temporarily.
  • data prefixed attribute no-longer bind inputs nor outputs.
  • The compiler will throw when there a when inputs, outputs or model are binding to the same input/outputs.
  • in variables will throw in template expressions.

compiler-cli

  • Elements with multiple matching selectors will now throw at compile time.

core

  • The second arguement of appRef.bootstrap does not accept any anymore. Make sure the element you pass is not nullable.
    • TypeScript versions older than 6.0 are no longer supported.
  • Leave animations are no longer limited to the element being removed.
  • Component with undefined changeDetection property are now OnPush by default. Specify changeDetection: ChangeDetectionStrategy.Eager to keep the previous behavior.
  • change AnimationCallbackEvent.animationComplete signature
  • ChangeDetectorRef.checkNoChanges was removed. In tests use fixture.detectChanges() instead.
  • createNgModuleRef was removed, use createNgModule instead
  • ComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponentFunction.
  • ComponentFactoryResolver and ComponentFactory are no longer available. Pass the component class directly to APIs that previously required a factory, such as ViewContainerRef.createComponent or use the standalone createComponent function.

forms

  • min and max validation rules no longer support
    string values. Bound values must be numbers or null.

http

  • Use the HttpXhrBackend with provideHttpClient(withXhr) if you want to keep supporting upload progress reports.

platform-browser

  • 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 leveraging ViewEncapsulation.Emulated or if those styles are used by elements outside of Angular, potentially causing other DOM to appear unstyled.
  • Hammer.js integration has been removed. Use your own implementation.

router

  • The return type for TitleStrategy.getResolvedTitleForRoute
    was previously 'any' while the actual return type could only be either string
    or undefined. The return type now reflects the possible values correctly.
    Code that reads the value may need to be adjusted.

    (cherry picked from commit ad37f52)

  • The currentSnapshot parameter in CanMatchFn and the canMatch method of the CanMatch interface is now required. While this was already the behavior of the Router at runtime, existing class implementations of CanMatch must now include the third argument to satisfy the interface.

  • 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.

  • provideRoutes() has been removed. Use provideRouter() or ROUTES as multi token if necessary.

upgrade

  • Deprecated getAngularLib/setAngularLib have been removed use getAngularJSGlobal/setAngularJSGlobal instead.

Deprecations

http

  • withFetch is now deprecated, it can be safely removed.
  • The reportProgress option is deprecated please use reportUploadProgress & reportDownloadProgress instead.

Don't miss a new platform-browser-dynamic release

NewReleases is sending notifications on new releases.