diff --git a/goldens/public-api/forms/signals/index.api.md b/goldens/public-api/forms/signals/index.api.md index 1e106237014..b7960c64717 100644 --- a/goldens/public-api/forms/signals/index.api.md +++ b/goldens/public-api/forms/signals/index.api.md @@ -226,6 +226,11 @@ export interface HttpValidatorOptions) => string | undefined) | ((ctx: FieldContext) => HttpResourceRequest | undefined); } +// @public +export type IgnoreUnknownProperties = T extends Record ? { + [K in keyof T as RemoveStringIndexUnknownKey]: IgnoreUnknownProperties; +} : T; + // @public export interface ItemFieldContext extends ChildFieldContext { readonly index: Signal; @@ -411,6 +416,9 @@ export type ReadonlyArrayLike = Pick, number | 'length' | ty // @public export function reducedProperty(reduce: (acc: TAcc, item: TItem) => TAcc, getInitial: () => TAcc): AggregateProperty; +// @public +export type RemoveStringIndexUnknownKey = string extends K ? unknown extends V ? never : K : K; + // @public export const REQUIRED: AggregateProperty; @@ -496,6 +504,9 @@ export function validateAsync(path: FieldPath, opts: HttpValidatorOptions): void; +// @public +export function validateStandardSchema>(path: FieldPath, schema: StandardSchemaV1): void; + // @public export function validateTree(path: FieldPath, logic: NoInfer>): void; diff --git a/packages/forms/signals/src/api/validators/index.ts b/packages/forms/signals/src/api/validators/index.ts index 234073a7655..fb68102cefb 100644 --- a/packages/forms/signals/src/api/validators/index.ts +++ b/packages/forms/signals/src/api/validators/index.ts @@ -6,10 +6,11 @@ * found in the LICENSE file at https://angular.dev/license */ -export {email} from './email'; -export {max} from './max'; -export {maxLength} from './max_length'; -export {min} from './min'; -export {minLength} from './min_length'; -export {pattern} from './pattern'; -export {required} from './required'; +export * from './email'; +export * from './max'; +export * from './max_length'; +export * from './min'; +export * from './min_length'; +export * from './pattern'; +export * from './required'; +export * from './standard_schema'; diff --git a/packages/forms/signals/test/node/api/validators/standard_schema.spec.ts b/packages/forms/signals/test/node/api/validators/standard_schema.spec.ts index b33019ae0cd..3b8766fc7df 100644 --- a/packages/forms/signals/test/node/api/validators/standard_schema.spec.ts +++ b/packages/forms/signals/test/node/api/validators/standard_schema.spec.ts @@ -9,8 +9,7 @@ import {ApplicationRef, Injector, signal} from '@angular/core'; import {TestBed} from '@angular/core/testing'; import * as z from 'zod'; -import {form, schema} from '../../../../public_api'; -import {validateStandardSchema} from '../../../../src/api/validators/standard_schema'; +import {form, schema, validateStandardSchema} from '../../../../public_api'; interface Flight { id: number;