{"version":3,"file":"createFormGroup.cjs","sources":["../../src/createFormGroup.tsx"],"sourcesContent":["import { FormGroupApi, functionalUpdate } from '@tanstack/form-core'\nimport {\n  createComponent,\n  createComputed,\n  createSignal,\n  onCleanup,\n  onMount,\n} from 'solid-js'\nimport { useStore } from '@tanstack/solid-store'\nimport type {\n  DeepKeys,\n  DeepValue,\n  FormAsyncValidateOrFn,\n  FormGroupApiOptions,\n  FormGroupAsyncValidateOrFn,\n  FormGroupOptions,\n  FormGroupValidateOrFn,\n  FormValidateOrFn,\n} from '@tanstack/form-core'\nimport type { Accessor, JSX, JSXElement } from 'solid-js'\n\n// ugly way to trick solid into triggering updates for changes on the formGroupApi\nfunction makeFormGroupReactive<\n  TParentData,\n  TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TSubmitMeta,\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  TParentSubmitMeta,\n>(\n  formGroupApi: FormGroupApi<\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    TSubmitMeta,\n    TFormOnMount,\n    TFormOnChange,\n    TFormOnChangeAsync,\n    TFormOnBlur,\n    TFormOnBlurAsync,\n    TFormOnSubmit,\n    TFormOnSubmitAsync,\n    TFormOnDynamic,\n    TFormOnDynamicAsync,\n    TFormOnServer,\n    TParentSubmitMeta\n  >,\n): () => FormGroupApi<\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  TSubmitMeta,\n  TFormOnMount,\n  TFormOnChange,\n  TFormOnChangeAsync,\n  TFormOnBlur,\n  TFormOnBlurAsync,\n  TFormOnSubmit,\n  TFormOnSubmitAsync,\n  TFormOnDynamic,\n  TFormOnDynamicAsync,\n  TFormOnServer,\n  TParentSubmitMeta\n> {\n  const [group, setGroup] = createSignal(formGroupApi, { equals: false })\n  // Handle shallow comparison to make sure that Derived doesn't create a new setGroup call every time\n  const store = useStore(formGroupApi.store, (store) => store)\n  // Run before initial render\n  createComputed(() => {\n    // Use the store to track dependencies\n    store()\n    setGroup(formGroupApi)\n  })\n  return group\n}\n\nexport function createFormGroup<\n  TParentData,\n  TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TSubmitMeta,\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  TParentSubmitMeta,\n>(\n  opts: () => FormGroupApiOptions<\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    TSubmitMeta,\n    TFormOnMount,\n    TFormOnChange,\n    TFormOnChangeAsync,\n    TFormOnBlur,\n    TFormOnBlurAsync,\n    TFormOnSubmit,\n    TFormOnSubmitAsync,\n    TFormOnDynamic,\n    TFormOnDynamicAsync,\n    TFormOnServer,\n    TParentSubmitMeta\n  >,\n) {\n  const options = opts()\n\n  const api = new FormGroupApi(options)\n\n  let mounted = false\n  // Instantiates form group meta and removes it when unrendered\n  onMount(() => {\n    const cleanupFn = api.mount()\n    mounted = true\n    onCleanup(() => {\n      cleanupFn()\n      mounted = false\n    })\n  })\n\n  /**\n   * formGroupApi.update should not have any side effects. Think of it like a `useRef`\n   * that we need to keep updated every render with the most up-to-date information.\n   *\n   * createComputed to make sure this effect runs before render effects\n   */\n  createComputed(() => {\n    if (!mounted) return\n    api.update(opts())\n  })\n\n  return makeFormGroupReactive<\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    TSubmitMeta,\n    TFormOnMount,\n    TFormOnChange,\n    TFormOnChangeAsync,\n    TFormOnBlur,\n    TFormOnBlurAsync,\n    TFormOnSubmit,\n    TFormOnSubmitAsync,\n    TFormOnDynamic,\n    TFormOnDynamicAsync,\n    TFormOnServer,\n    TParentSubmitMeta\n  >(api)\n}\n\ninterface FormGroupComponentBoundProps<\n  TParentData,\n  TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TSubmitMeta,\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  TParentSubmitMeta,\n  ExtendedApi = {},\n> extends FormGroupOptions<\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  TSubmitMeta,\n  TFormOnMount,\n  TFormOnChange,\n  TFormOnChangeAsync,\n  TFormOnBlur,\n  TFormOnBlurAsync,\n  TFormOnSubmit,\n  TFormOnSubmitAsync,\n  TFormOnDynamic,\n  TFormOnDynamicAsync,\n  TFormOnServer,\n  TParentSubmitMeta\n> {\n  children: (\n    formGroupApi: Accessor<\n      FormGroupApi<\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        TSubmitMeta,\n        TFormOnMount,\n        TFormOnChange,\n        TFormOnChangeAsync,\n        TFormOnBlur,\n        TFormOnBlurAsync,\n        TFormOnSubmit,\n        TFormOnSubmitAsync,\n        TFormOnDynamic,\n        TFormOnDynamicAsync,\n        TFormOnServer,\n        TParentSubmitMeta\n      >\n    > &\n      ExtendedApi,\n  ) => JSX.Element\n}\n\n/**\n * A type alias representing a form group component for a specific form data type.\n */\nexport type FormGroupComponent<\n  in out TParentData,\n  in out TFormOnMount extends undefined | FormValidateOrFn<TParentData>,\n  in out TFormOnChange extends undefined | FormValidateOrFn<TParentData>,\n  in out TFormOnChangeAsync extends\n    | undefined\n    | FormAsyncValidateOrFn<TParentData>,\n  in out TFormOnBlur extends undefined | FormValidateOrFn<TParentData>,\n  in out TFormOnBlurAsync extends\n    | undefined\n    | FormAsyncValidateOrFn<TParentData>,\n  in out TFormOnSubmit extends undefined | FormValidateOrFn<TParentData>,\n  in out TFormOnSubmitAsync extends\n    | undefined\n    | FormAsyncValidateOrFn<TParentData>,\n  in out TFormOnDynamic extends undefined | FormValidateOrFn<TParentData>,\n  in out TFormOnDynamicAsync extends\n    | undefined\n    | FormAsyncValidateOrFn<TParentData>,\n  in out TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>,\n  in out TParentSubmitMeta,\n  in out ExtendedApi = {},\n> = <\n  const TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TSubmitMeta,\n>(\n  props: FormGroupComponentBoundProps<\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    TSubmitMeta,\n    TFormOnMount,\n    TFormOnChange,\n    TFormOnChangeAsync,\n    TFormOnBlur,\n    TFormOnBlurAsync,\n    TFormOnSubmit,\n    TFormOnSubmitAsync,\n    TFormOnDynamic,\n    TFormOnDynamicAsync,\n    TFormOnServer,\n    TParentSubmitMeta,\n    ExtendedApi\n  >,\n) => JSXElement\n\ninterface FormGroupComponentProps<\n  TParentData,\n  TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TSubmitMeta,\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  TParentSubmitMeta,\n> extends FormGroupApiOptions<\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  TSubmitMeta,\n  TFormOnMount,\n  TFormOnChange,\n  TFormOnChangeAsync,\n  TFormOnBlur,\n  TFormOnBlurAsync,\n  TFormOnSubmit,\n  TFormOnSubmitAsync,\n  TFormOnDynamic,\n  TFormOnDynamicAsync,\n  TFormOnServer,\n  TParentSubmitMeta\n> {\n  children: (\n    formGroupApi: () => FormGroupApi<\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      TSubmitMeta,\n      TFormOnMount,\n      TFormOnChange,\n      TFormOnChangeAsync,\n      TFormOnBlur,\n      TFormOnBlurAsync,\n      TFormOnSubmit,\n      TFormOnSubmitAsync,\n      TFormOnDynamic,\n      TFormOnDynamicAsync,\n      TFormOnServer,\n      TParentSubmitMeta\n    >,\n  ) => JSXElement\n}\n\nexport function FormGroup<\n  TParentData,\n  TName extends DeepKeys<TParentData>,\n  TData extends DeepValue<TParentData, TName>,\n  TOnMount extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChange extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnChangeAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnBlur extends undefined | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnBlurAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnSubmit extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnSubmitAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TOnDynamic extends\n    | undefined\n    | FormGroupValidateOrFn<TParentData, TName, TData>,\n  TOnDynamicAsync extends\n    | undefined\n    | FormGroupAsyncValidateOrFn<TParentData, TName, TData>,\n  TSubmitMeta,\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  TParentSubmitMeta,\n>(\n  props: FormGroupComponentProps<\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    TSubmitMeta,\n    TFormOnMount,\n    TFormOnChange,\n    TFormOnChangeAsync,\n    TFormOnBlur,\n    TFormOnBlurAsync,\n    TFormOnSubmit,\n    TFormOnSubmitAsync,\n    TFormOnDynamic,\n    TFormOnDynamicAsync,\n    TFormOnServer,\n    TParentSubmitMeta\n  >,\n) {\n  const formGroupApi = createFormGroup<\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    TSubmitMeta,\n    TFormOnMount,\n    TFormOnChange,\n    TFormOnChangeAsync,\n    TFormOnBlur,\n    TFormOnBlurAsync,\n    TFormOnSubmit,\n    TFormOnSubmitAsync,\n    TFormOnDynamic,\n    TFormOnDynamicAsync,\n    TFormOnServer,\n    TParentSubmitMeta\n  >(() => {\n    const { children, ...formGroupOptions } = props\n    return formGroupOptions\n  })\n\n  return <>{createComponent(() => props.children(formGroupApi), {})}</>\n}\n"],"names":["makeFormGroupReactive","formGroupApi","group","setGroup","createSignal","equals","store","useStore","createComputed","createFormGroup","opts","options","api","FormGroupApi","mounted","onMount","cleanupFn","mount","onCleanup","update","FormGroup","props","children","formGroupOptions","_$memo","createComponent"],"mappings":";;;;;;AAsBA,SAASA,sBAwCPC,cAmDA;AACA,QAAM,CAACC,OAAOC,QAAQ,IAAIC,QAAAA,aAAaH,cAAc;AAAA,IAAEI,QAAQ;AAAA,EAAA,CAAO;AAEtE,QAAMC,QAAQC,WAAAA,SAASN,aAAaK,OAAQA,CAAAA,WAAUA,MAAK;AAE3DE,UAAAA,eAAe,MAAM;AAEnBF,UAAAA;AACAH,aAASF,YAAY;AAAA,EACvB,CAAC;AACD,SAAOC;AACT;AAEO,SAASO,gBAwCdC,MA0BA;AACA,QAAMC,UAAUD,KAAAA;AAEhB,QAAME,MAAM,IAAIC,SAAAA,aAAaF,OAAO;AAEpC,MAAIG,UAAU;AAEdC,UAAAA,QAAQ,MAAM;AACZ,UAAMC,YAAYJ,IAAIK,MAAAA;AACtBH,cAAU;AACVI,YAAAA,UAAU,MAAM;AACdF,gBAAAA;AACAF,gBAAU;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AAQDN,UAAAA,eAAe,MAAM;AACnB,QAAI,CAACM,QAAS;AACdF,QAAIO,OAAOT,MAAM;AAAA,EACnB,CAAC;AAED,SAAOV,sBAyBLY,GAAG;AACP;AAsRO,SAASQ,UAwCdC,OA0BA;AACA,QAAMpB,eAAeQ,gBAyBnB,MAAM;AACN,UAAM;AAAA,MAAEa;AAAAA,MAAU,GAAGC;AAAAA,IAAAA,IAAqBF;AAC1C,WAAOE;AAAAA,EACT,CAAC;AAED,SAAAC,IAAAA,KAAA,MAAUC,QAAAA,gBAAgB,MAAMJ,MAAMC,SAASrB,YAAY,GAAG,CAAA,CAAE,CAAC;AACnE;;;"}