{"version":3,"file":"tanstack-angular-form.mjs","sources":["../../src/tanstack-field.ts","../../src/injectable.ts","../../src/app-field.ts","../../src/inject-form.ts","../../src/inject-store.ts","../../src/with-form-injectable.ts","../../src/with-form.ts","../../src/tanstack-angular-form.ts"],"sourcesContent":["import {\n  ChangeDetectorRef,\n  Directive,\n  Injector,\n  OnInit,\n  booleanAttribute,\n  computed,\n  effect,\n  inject,\n  input,\n  numberAttribute,\n  untracked,\n} from '@angular/core'\nimport {\n  FieldApi,\n  FieldApiOptions,\n  FieldAsyncValidateOrFn,\n  FieldValidateOrFn,\n  FormApi,\n} from '@tanstack/form-core'\nimport { injectStore } from '@tanstack/angular-store'\nimport type {\n  DeepKeys,\n  DeepValue,\n  FieldListeners,\n  FieldMeta,\n  FieldValidators,\n  FormAsyncValidateOrFn,\n  FormValidateOrFn,\n} from '@tanstack/form-core'\n\n@Directive({\n  selector: '[tanstackField]',\n  standalone: true,\n  exportAs: 'field',\n})\nexport class TanStackField<\n  TParentData,\n  const TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TFormOnMount extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnChange extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnBlur extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnSubmit extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnDynamic extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TSubmitMeta,\n> implements OnInit {\n  name = input.required<TName>()\n  defaultValue = input<NoInfer<TData>>()\n  asyncDebounceMs = input(undefined as never as number, {\n    transform: numberAttribute,\n  })\n  asyncAlways = input(undefined as never as boolean, {\n    transform: booleanAttribute,\n  })\n  tanstackField =\n    input.required<\n      FormApi<\n        TParentData,\n        TFormOnMount,\n        TFormOnChange,\n        TFormOnChangeAsync,\n        TFormOnBlur,\n        TFormOnBlurAsync,\n        TFormOnSubmit,\n        TFormOnSubmitAsync,\n        TFormOnDynamic,\n        TFormOnDynamicAsync,\n        TFormOnServer,\n        TSubmitMeta\n      >\n    >()\n\n  validators =\n    input<\n      NoInfer<\n        FieldValidators<\n          TParentData,\n          TName,\n          TData,\n          TOnMount,\n          TOnChange,\n          TOnChangeAsync,\n          TOnBlur,\n          TOnBlurAsync,\n          TOnSubmit,\n          TOnSubmitAsync,\n          TOnDynamic,\n          TOnDynamicAsync\n        >\n      >\n    >()\n\n  listeners = input<NoInfer<FieldListeners<TParentData, TName, TData>>>()\n  defaultMeta =\n    input<\n      Partial<\n        FieldMeta<\n          TParentData,\n          TName,\n          TData,\n          TOnMount,\n          TOnChange,\n          TOnChangeAsync,\n          TOnBlur,\n          TOnBlurAsync,\n          TOnSubmit,\n          TOnSubmitAsync,\n          TOnDynamic,\n          TOnDynamicAsync,\n          TFormOnMount,\n          TFormOnChange,\n          TFormOnChangeAsync,\n          TFormOnBlur,\n          TFormOnBlurAsync,\n          TFormOnSubmit,\n          TFormOnSubmitAsync,\n          TFormOnDynamic,\n          TFormOnDynamicAsync\n        >\n      >\n    >()\n\n  mode = input<'value' | 'array'>()\n\n  disableErrorFlat = input<boolean>()\n\n  _api = computed(() => {\n    return new FieldApi(untracked(this.options))\n  })\n\n  get api(): FieldApi<\n    TParentData,\n    TName,\n    TData,\n    TOnMount,\n    TOnChange,\n    TOnChangeAsync,\n    TOnBlur,\n    TOnBlurAsync,\n    TOnSubmit,\n    TOnSubmitAsync,\n    TOnDynamic,\n    TOnDynamicAsync,\n    TFormOnMount,\n    TFormOnChange,\n    TFormOnChangeAsync,\n    TFormOnBlur,\n    TFormOnBlurAsync,\n    TFormOnSubmit,\n    TFormOnSubmitAsync,\n    TFormOnDynamic,\n    TFormOnDynamicAsync,\n    TFormOnServer,\n    TSubmitMeta\n  > {\n    return this._api()\n  }\n\n  options = computed(\n    () =>\n      ({\n        defaultValue: this.defaultValue(),\n        asyncDebounceMs: this.asyncDebounceMs(),\n        asyncAlways: this.asyncAlways(),\n        disableErrorFlat: this.disableErrorFlat(),\n        validators: this.validators(),\n        listeners: this.listeners(),\n        defaultMeta: this.defaultMeta(),\n        name: this.name(),\n        form: this.tanstackField(),\n      }) as FieldApiOptions<\n        TParentData,\n        TName,\n        TData,\n        TOnMount,\n        TOnChange,\n        TOnChangeAsync,\n        TOnBlur,\n        TOnBlurAsync,\n        TOnSubmit,\n        TOnSubmitAsync,\n        TOnDynamic,\n        TOnDynamicAsync,\n        TFormOnMount,\n        TFormOnChange,\n        TFormOnChangeAsync,\n        TFormOnBlur,\n        TFormOnBlurAsync,\n        TFormOnSubmit,\n        TFormOnSubmitAsync,\n        TFormOnDynamic,\n        TFormOnDynamicAsync,\n        TFormOnServer,\n        TSubmitMeta\n      >,\n  )\n\n  injector = inject(Injector)\n\n  constructor() {\n    effect((onCleanup) => {\n      const unmount = this._api().mount()\n\n      onCleanup(() => {\n        unmount()\n      })\n    })\n\n    effect(() => {\n      this._api().update(this.options())\n    })\n  }\n\n  cd = inject(ChangeDetectorRef)\n\n  ngOnInit() {\n    // Subscribe to the pieces of field state that should trigger a re-render.\n    // For array mode, we only track the length of the array value to avoid\n    // re-renders when child properties change. Meta is tracked piece by piece\n    // so that consumers re-render when any meta property updates.\n    // See: https://github.com/TanStack/form/issues/1961\n    const injectorOpts = { injector: this.injector }\n    const isArrayMode = this.mode() === 'array'\n    const reactiveValue = injectStore(\n      this._api().store,\n      (state) => (isArrayMode ? state.meta._arrayVersion || 0 : state.value),\n      injectorOpts,\n    )\n    const reactiveIsTouched = injectStore(\n      this._api().store,\n      (state) => state.meta.isTouched,\n      injectorOpts,\n    )\n    const reactiveIsBlurred = injectStore(\n      this._api().store,\n      (state) => state.meta.isBlurred,\n      injectorOpts,\n    )\n    const reactiveIsDirty = injectStore(\n      this._api().store,\n      (state) => state.meta.isDirty,\n      injectorOpts,\n    )\n    const reactiveErrorMap = injectStore(\n      this._api().store,\n      (state) => state.meta.errorMap,\n      injectorOpts,\n    )\n    const reactiveErrorSourceMap = injectStore(\n      this._api().store,\n      (state) => state.meta.errorSourceMap,\n      injectorOpts,\n    )\n    const reactiveIsValidating = injectStore(\n      this._api().store,\n      (state) => state.meta.isValidating,\n      injectorOpts,\n    )\n\n    effect(\n      () => {\n        // Load bearing change detection check — read every reactive source so\n        // the effect runs whenever any of them change.\n        reactiveValue()\n        reactiveIsTouched()\n        reactiveIsBlurred()\n        reactiveIsDirty()\n        reactiveErrorMap()\n        reactiveErrorSourceMap()\n        reactiveIsValidating()\n        this.cd.markForCheck()\n      },\n      { injector: this.injector },\n    )\n  }\n}\n","import { Injectable, inject, signal } from '@angular/core'\nimport { FieldApi } from '@tanstack/form-core'\n\n@Injectable({ providedIn: null })\nexport class TanStackFieldInjectable<T> {\n  _api = signal<\n    FieldApi<\n      any,\n      any,\n      T,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any,\n      any\n    >\n  >(null as never)\n\n  get api() {\n    return this._api()\n  }\n}\n\nexport function injectField<T>(): TanStackFieldInjectable<T> {\n  return inject(TanStackFieldInjectable<T>)\n}\n","import { Directive, effect, inject } from '@angular/core'\nimport {\n  DeepKeys,\n  DeepValue,\n  FieldAsyncValidateOrFn,\n  FieldValidateOrFn,\n} from '@tanstack/form-core'\nimport { TanStackField } from './tanstack-field'\nimport { TanStackFieldInjectable } from './injectable'\nimport type {\n  FormAsyncValidateOrFn,\n  FormValidateOrFn,\n} from '@tanstack/form-core'\n\n@Directive({\n  selector: '[tanstack-app-field]',\n  standalone: true,\n  providers: [TanStackFieldInjectable],\n})\nexport class TanStackAppField<\n  TParentData,\n  const TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends undefined | FieldValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FieldAsyncValidateOrFn<TParentData, TName, TData>,\n  TFormOnMount extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnChange extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnBlur extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnBlurAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnSubmit extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnDynamic extends undefined | FormValidateOrFn<TParentData>,\n  TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>,\n  TSubmitMeta,\n> extends TanStackField<\n  TParentData,\n  TName,\n  TData,\n  TOnMount,\n  TOnChange,\n  TOnChangeAsync,\n  TOnBlur,\n  TOnBlurAsync,\n  TOnSubmit,\n  TOnSubmitAsync,\n  TOnDynamic,\n  TOnDynamicAsync,\n  TFormOnMount,\n  TFormOnChange,\n  TFormOnChangeAsync,\n  TFormOnBlur,\n  TFormOnBlurAsync,\n  TFormOnSubmit,\n  TFormOnSubmitAsync,\n  TFormOnDynamic,\n  TFormOnDynamicAsync,\n  TFormOnServer,\n  TSubmitMeta\n> {\n  base = inject(TanStackFieldInjectable)\n\n  constructor() {\n    super()\n    effect(() => {\n      this.base._api.set(this.api)\n    })\n  }\n}\n","import { FormApi } from '@tanstack/form-core'\nimport { injectStore } from '@tanstack/angular-store'\nimport type {\n  FormAsyncValidateOrFn,\n  FormOptions,\n  FormValidateOrFn,\n} from '@tanstack/form-core'\n\nexport function injectForm<\n  TFormData,\n  TOnMount extends undefined | FormValidateOrFn<TFormData>,\n  TOnChange extends undefined | FormValidateOrFn<TFormData>,\n  TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n  TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n  TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnDynamic extends undefined | FormValidateOrFn<TFormData>,\n  TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TSubmitMeta,\n>(\n  opts?: FormOptions<\n    TFormData,\n    TOnMount,\n    TOnChange,\n    TOnChangeAsync,\n    TOnBlur,\n    TOnBlurAsync,\n    TOnSubmit,\n    TOnSubmitAsync,\n    TOnDynamic,\n    TOnDynamicAsync,\n    TOnServer,\n    TSubmitMeta\n  >,\n) {\n  const api = new FormApi<\n    TFormData,\n    TOnMount,\n    TOnChange,\n    TOnChangeAsync,\n    TOnBlur,\n    TOnBlurAsync,\n    TOnSubmit,\n    TOnSubmitAsync,\n    TOnDynamic,\n    TOnDynamicAsync,\n    TOnServer,\n    TSubmitMeta\n  >(opts)\n\n  injectStore(api.store, (state) => state.isSubmitting)\n\n  return api\n}\n","import { injectStore as injectAngularStore } from '@tanstack/angular-store'\nimport type {\n  FormApi,\n  FormAsyncValidateOrFn,\n  FormState,\n  FormValidateOrFn,\n} from '@tanstack/form-core'\n\nexport function injectStore<\n  TFormData,\n  TOnMount extends undefined | FormValidateOrFn<TFormData>,\n  TOnChange extends undefined | FormValidateOrFn<TFormData>,\n  TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n  TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n  TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnDynamic extends undefined | FormValidateOrFn<TFormData>,\n  TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TSubmitMeta,\n  TSelected = NoInfer<\n    FormState<\n      TFormData,\n      TOnMount,\n      TOnChange,\n      TOnChangeAsync,\n      TOnBlur,\n      TOnBlurAsync,\n      TOnSubmit,\n      TOnSubmitAsync,\n      TOnDynamic,\n      TOnDynamicAsync,\n      TOnServer\n    >\n  >,\n>(\n  form: FormApi<\n    TFormData,\n    TOnMount,\n    TOnChange,\n    TOnChangeAsync,\n    TOnBlur,\n    TOnBlurAsync,\n    TOnSubmit,\n    TOnSubmitAsync,\n    TOnDynamic,\n    TOnDynamicAsync,\n    TOnServer,\n    TSubmitMeta\n  >,\n  selector?: (\n    state: NoInfer<\n      FormState<\n        TFormData,\n        TOnMount,\n        TOnChange,\n        TOnChangeAsync,\n        TOnBlur,\n        TOnBlurAsync,\n        TOnSubmit,\n        TOnSubmitAsync,\n        TOnDynamic,\n        TOnDynamicAsync,\n        TOnServer\n      >\n    >,\n  ) => TSelected,\n) {\n  return injectAngularStore(form.store, selector)\n}\n","import { Injectable, inject, signal } from '@angular/core'\nimport { FormApi } from '@tanstack/form-core'\nimport type {\n  FormAsyncValidateOrFn,\n  FormOptions,\n  FormValidateOrFn,\n} from '@tanstack/form-core'\n\n@Injectable({ providedIn: null })\nexport class TanStackWithFormInjectable {\n  _form = signal<\n    FormApi<any, any, any, any, any, any, any, any, any, any, any, any>\n  >(null as never)\n}\n\ninterface TanStackWithFormRef<\n  TFormData,\n  TOnMount extends undefined | FormValidateOrFn<TFormData>,\n  TOnChange extends undefined | FormValidateOrFn<TFormData>,\n  TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n  TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n  TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnDynamic extends undefined | FormValidateOrFn<TFormData>,\n  TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TSubmitMeta,\n> {\n  readonly form: FormApi<\n    TFormData,\n    TOnMount,\n    TOnChange,\n    TOnChangeAsync,\n    TOnBlur,\n    TOnBlurAsync,\n    TOnSubmit,\n    TOnSubmitAsync,\n    TOnDynamic,\n    TOnDynamicAsync,\n    TOnServer,\n    TSubmitMeta\n  >\n}\n\n/**\n * Injects the form provided by an ancestor `[tanstack-with-form]` directive.\n *\n * Pass form options (typically the same options used to create the form) so\n * the returned `form` is typed correctly without needing to specify generics:\n *\n * ```ts\n * const withForm = injectWithForm({ ...peopleFormOpts })\n * withForm.form // FormApi<PeopleFormData, ...>\n * ```\n *\n * The options are only used for type inference and are not read at runtime.\n */\nexport function injectWithForm<\n  TFormData,\n  TOnMount extends undefined | FormValidateOrFn<TFormData>,\n  TOnChange extends undefined | FormValidateOrFn<TFormData>,\n  TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n  TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n  TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnDynamic extends undefined | FormValidateOrFn<TFormData>,\n  TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TSubmitMeta,\n>(\n  _opts?: FormOptions<\n    TFormData,\n    TOnMount,\n    TOnChange,\n    TOnChangeAsync,\n    TOnBlur,\n    TOnBlurAsync,\n    TOnSubmit,\n    TOnSubmitAsync,\n    TOnDynamic,\n    TOnDynamicAsync,\n    TOnServer,\n    TSubmitMeta\n  >,\n): TanStackWithFormRef<\n  TFormData,\n  TOnMount,\n  TOnChange,\n  TOnChangeAsync,\n  TOnBlur,\n  TOnBlurAsync,\n  TOnSubmit,\n  TOnSubmitAsync,\n  TOnDynamic,\n  TOnDynamicAsync,\n  TOnServer,\n  TSubmitMeta\n> {\n  const injectable = inject(TanStackWithFormInjectable)\n  return {\n    get form() {\n      return injectable._form() as FormApi<\n        TFormData,\n        TOnMount,\n        TOnChange,\n        TOnChangeAsync,\n        TOnBlur,\n        TOnBlurAsync,\n        TOnSubmit,\n        TOnSubmitAsync,\n        TOnDynamic,\n        TOnDynamicAsync,\n        TOnServer,\n        TSubmitMeta\n      >\n    },\n  }\n}\n","import { Directive, effect, inject, input } from '@angular/core'\nimport { FormApi } from '@tanstack/form-core'\nimport { TanStackWithFormInjectable } from './with-form-injectable'\nimport type {\n  FormAsyncValidateOrFn,\n  FormValidateOrFn,\n} from '@tanstack/form-core'\n\n@Directive({\n  selector: '[tanstack-with-form]',\n  standalone: true,\n  providers: [TanStackWithFormInjectable],\n})\nexport class TanStackWithForm<\n  TFormData,\n  TOnMount extends undefined | FormValidateOrFn<TFormData>,\n  TOnChange extends undefined | FormValidateOrFn<TFormData>,\n  TOnChangeAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnBlur extends undefined | FormValidateOrFn<TFormData>,\n  TOnBlurAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnSubmit extends undefined | FormValidateOrFn<TFormData>,\n  TOnSubmitAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnDynamic extends undefined | FormValidateOrFn<TFormData>,\n  TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,\n  TSubmitMeta,\n> {\n  form =\n    input.required<\n      FormApi<\n        TFormData,\n        TOnMount,\n        TOnChange,\n        TOnChangeAsync,\n        TOnBlur,\n        TOnBlurAsync,\n        TOnSubmit,\n        TOnSubmitAsync,\n        TOnDynamic,\n        TOnDynamicAsync,\n        TOnServer,\n        TSubmitMeta\n      >\n    >()\n\n  base = inject(TanStackWithFormInjectable)\n\n  constructor() {\n    effect(() => {\n      this.base._form.set(this.form())\n    })\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["injectStore","injectAngularStore"],"mappings":"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"}