@angular/forms
Advanced tools
| /** | ||
| * @license Angular v22.0.0-next.7 | ||
| * @license Angular v22.0.0-next.8 | ||
| * (c) 2010-2026 Google LLC. https://angular.dev/ | ||
@@ -1830,3 +1830,3 @@ * License: MIT | ||
| export { BasicFieldAdapter, CompatValidationError, DEBOUNCER, FieldNode, FieldNodeState, FieldNodeStructure, FieldPathNode, IS_ASYNC_VALIDATION_RESOURCE, MAX, MAX_LENGTH, MIN, MIN_LENGTH, MetadataKey, MetadataReducer, PATTERN, REQUIRED, addDefaultField, apply, applyEach, applyWhen, applyWhenValue, assertPathIsCurrent, calculateValidationSelfStatus, createManagedMetadataKey, createMetadataKey, extractNestedReactiveErrors, form, getInjectorFromOptions, isArray, isObject, metadata, normalizeFormArgs, schema, signalErrorsToValidationErrors, submit }; | ||
| export { BasicFieldAdapter, CompatValidationError, DEBOUNCER, FieldNode, FieldNodeState, FieldNodeStructure, FieldPathNode, IS_ASYNC_VALIDATION_RESOURCE, MAX, MAX_LENGTH, MIN, MIN_LENGTH, MetadataKey, MetadataReducer, PATTERN, REQUIRED, addDefaultField, apply, applyEach, applyWhen, applyWhenValue, assertPathIsCurrent, calculateValidationSelfStatus, createManagedMetadataKey, createMetadataKey, extractNestedReactiveErrors, form, getInjectorFromOptions, isArray, isObject, metadata, normalizeFormArgs, reactiveErrorsToSignalErrors, schema, signalErrorsToValidationErrors, submit }; | ||
| //# sourceMappingURL=_validation_errors-chunk.mjs.map |
| /** | ||
| * @license Angular v22.0.0-next.7 | ||
| * @license Angular v22.0.0-next.8 | ||
| * (c) 2010-2026 Google LLC. https://angular.dev/ | ||
@@ -4,0 +4,0 @@ * License: MIT |
+45
-17
| /** | ||
| * @license Angular v22.0.0-next.7 | ||
| * @license Angular v22.0.0-next.8 | ||
| * (c) 2010-2026 Google LLC. https://angular.dev/ | ||
@@ -8,5 +8,5 @@ * License: MIT | ||
| import * as i0 from '@angular/core'; | ||
| import { InjectionToken, debounced, resource, ɵisPromise as _isPromise, linkedSignal, inject, ɵRuntimeError as _RuntimeError, untracked, CSP_NONCE, PLATFORM_ID, Injectable, forwardRef, input, computed, Renderer2, DestroyRef, Injector, ElementRef, signal, afterRenderEffect, effect, ɵformatRuntimeError as _formatRuntimeError, Directive } from '@angular/core'; | ||
| import { ɵFORM_FIELD_PARSE_ERRORS as _FORM_FIELD_PARSE_ERRORS, Validators, ɵsetNativeDomProperty as _setNativeDomProperty, ɵisNativeFormElement as _isNativeFormElement, ɵisTextualFormElement as _isTextualFormElement, NG_VALUE_ACCESSOR, ɵselectValueAccessor as _selectValueAccessor, ɵisNumericFormElement as _isNumericFormElement, NgControl } from '@angular/forms'; | ||
| import { assertPathIsCurrent, FieldPathNode, addDefaultField, metadata, createMetadataKey, MAX, MAX_LENGTH, MIN, MIN_LENGTH, PATTERN, REQUIRED, createManagedMetadataKey, IS_ASYNC_VALIDATION_RESOURCE, DEBOUNCER, signalErrorsToValidationErrors, submit } from './_validation_errors-chunk.mjs'; | ||
| import { InjectionToken, debounced, resource, ɵisPromise as _isPromise, linkedSignal, inject, ɵRuntimeError as _RuntimeError, untracked, signal, computed, CSP_NONCE, PLATFORM_ID, Injectable, forwardRef, input, Renderer2, DestroyRef, Injector, ElementRef, afterRenderEffect, effect, ɵformatRuntimeError as _formatRuntimeError, Directive } from '@angular/core'; | ||
| import { ɵFORM_FIELD_PARSE_ERRORS as _FORM_FIELD_PARSE_ERRORS, Validators, ɵsetNativeDomProperty as _setNativeDomProperty, NG_VALIDATORS, ɵisNativeFormElement as _isNativeFormElement, ɵisTextualFormElement as _isTextualFormElement, NG_VALUE_ACCESSOR, ɵselectValueAccessor as _selectValueAccessor, ɵisNumericFormElement as _isNumericFormElement, NgControl } from '@angular/forms'; | ||
| import { assertPathIsCurrent, FieldPathNode, addDefaultField, metadata, createMetadataKey, MAX, MAX_LENGTH, MIN, MIN_LENGTH, PATTERN, REQUIRED, createManagedMetadataKey, IS_ASYNC_VALIDATION_RESOURCE, DEBOUNCER, signalErrorsToValidationErrors, reactiveErrorsToSignalErrors, submit } from './_validation_errors-chunk.mjs'; | ||
| export { MetadataKey, MetadataReducer, apply, applyEach, applyWhen, applyWhenValue, form, schema } from './_validation_errors-chunk.mjs'; | ||
@@ -569,3 +569,3 @@ import { DOCUMENT, isPlatformBrowser } from '@angular/common'; | ||
| get value() { | ||
| return this.field().value(); | ||
| return this.field().controlValue(); | ||
| } | ||
@@ -814,2 +814,5 @@ get valid() { | ||
| function isValidatorObject(v) { | ||
| return typeof v === 'object' && v !== null; | ||
| } | ||
| function cvaControlCreate(host, parent) { | ||
@@ -822,2 +825,27 @@ const bindings = createBindings(); | ||
| parent.controlValueAccessor.registerOnTouched(() => parent.state().markAsTouched()); | ||
| const legacyValidators = parent.injector.get(NG_VALIDATORS, null, { | ||
| optional: true, | ||
| self: true | ||
| }); | ||
| if (legacyValidators) { | ||
| let version; | ||
| for (const v of legacyValidators) { | ||
| if (isValidatorObject(v) && v.registerOnValidatorChange) { | ||
| version ??= signal(0); | ||
| v.registerOnValidatorChange(() => { | ||
| version.update(n => n + 1); | ||
| }); | ||
| } | ||
| } | ||
| const validatorFns = legacyValidators.map(v => typeof v === 'function' ? v : v.validate.bind(v)); | ||
| const mergedValidator = Validators.compose(validatorFns); | ||
| const parseErrors = computed(() => { | ||
| version?.(); | ||
| const errors = mergedValidator ? mergedValidator(parent.interopNgControl.control) : null; | ||
| return reactiveErrorsToSignalErrors(errors, parent.interopNgControl.control); | ||
| }, ...(ngDevMode ? [{ | ||
| debugName: "parseErrors" | ||
| }] : [])); | ||
| parent.parseErrorsSource.set(parseErrors); | ||
| } | ||
| parent.registerAsBinding(); | ||
@@ -927,3 +955,3 @@ return () => { | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -936,3 +964,3 @@ type: InputValidityMonitor, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -946,3 +974,3 @@ type: InputValidityMonitor, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1010,3 +1038,3 @@ type: InputValidityMonitor, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1019,3 +1047,3 @@ type: AnimationInputValidityMonitor, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1027,3 +1055,3 @@ type: AnimationInputValidityMonitor | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1183,3 +1211,3 @@ type: AnimationInputValidityMonitor, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1192,3 +1220,3 @@ type: FormField, | ||
| minVersion: "17.1.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| type: FormField, | ||
@@ -1225,3 +1253,3 @@ isStandalone: true, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1277,3 +1305,3 @@ type: FormField, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1286,3 +1314,3 @@ type: FormRoot, | ||
| minVersion: "17.1.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| type: FormRoot, | ||
@@ -1313,3 +1341,3 @@ isStandalone: true, | ||
| minVersion: "12.0.0", | ||
| version: "22.0.0-next.7", | ||
| version: "22.0.0-next.8", | ||
| ngImport: i0, | ||
@@ -1316,0 +1344,0 @@ type: FormRoot, |
+4
-4
| { | ||
| "name": "@angular/forms", | ||
| "version": "22.0.0-next.7", | ||
| "version": "22.0.0-next.8", | ||
| "description": "Angular - directives and services for creating forms", | ||
@@ -15,5 +15,5 @@ "author": "angular", | ||
| "peerDependencies": { | ||
| "@angular/core": "22.0.0-next.7", | ||
| "@angular/common": "22.0.0-next.7", | ||
| "@angular/platform-browser": "22.0.0-next.7", | ||
| "@angular/core": "22.0.0-next.8", | ||
| "@angular/common": "22.0.0-next.8", | ||
| "@angular/platform-browser": "22.0.0-next.8", | ||
| "rxjs": "^6.5.3 || ^7.4.0" | ||
@@ -20,0 +20,0 @@ }, |
| /** | ||
| * @license Angular v22.0.0-next.7 | ||
| * @license Angular v22.0.0-next.8 | ||
| * (c) 2010-2026 Google LLC. https://angular.dev/ | ||
@@ -4,0 +4,0 @@ * License: MIT |
| /** | ||
| * @license Angular v22.0.0-next.7 | ||
| * @license Angular v22.0.0-next.8 | ||
| * (c) 2010-2026 Google LLC. https://angular.dev/ | ||
@@ -4,0 +4,0 @@ * License: MIT |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1678645
0.13%17699
-0.15%