{"version":3,"sources":["../src/useForm/index.ts","../src/useStepsForm/index.ts","../src/useModalForm/index.ts"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport get from \"lodash-es/get.js\";\nimport has from \"lodash-es/has.js\";\n\nimport {\n  useForm as useHookForm,\n  type UseFormProps as UseHookFormProps,\n  type UseFormReturn,\n  type FieldValues,\n  type UseFormHandleSubmit,\n  type Path,\n} from \"react-hook-form\";\nimport {\n  type BaseRecord,\n  type HttpError,\n  useForm as useFormCore,\n  useWarnAboutChange,\n  type UseFormProps as UseFormCoreProps,\n  type UseFormReturnType as UseFormReturnTypeCore,\n  useTranslate,\n  useRefineContext,\n  flattenObjectKeys,\n} from \"@refinedev/core\";\n\nexport type UseFormReturnType<\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n> = UseFormReturn<TVariables, TContext> & {\n  refineCore: UseFormReturnTypeCore<\n    TQueryFnData,\n    TError,\n    TVariables,\n    TData,\n    TResponse,\n    TResponseError\n  >;\n  saveButtonProps: {\n    disabled: boolean;\n    onClick: (e: React.BaseSyntheticEvent) => void;\n  };\n};\n\nexport type UseFormProps<\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n> = {\n  /**\n   * Configuration object for the core of the [useForm](/docs/api-reference/core/hooks/useForm/)\n   * @type [`UseFormCoreProps<TQueryFnData, TError, TVariables, TData, TResponse, TResponseError>`](/docs/api-reference/core/hooks/useForm/#properties)\n   */\n  refineCoreProps?: UseFormCoreProps<\n    TQueryFnData,\n    TError,\n    TVariables,\n    TData,\n    TResponse,\n    TResponseError\n  >;\n  /**\n   * When you have unsaved changes and try to leave the current page, **refine** shows a confirmation modal box.\n   * @default `false*`\n   */\n  warnWhenUnsavedChanges?: boolean;\n  /**\n   * Disables server-side validation\n   * @default false\n   * @see {@link https://refine.dev/docs/advanced-tutorials/forms/server-side-form-validation/}\n   */\n  disableServerSideValidation?: boolean;\n} & UseHookFormProps<TVariables, TContext>;\n\nexport const useForm = <\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n>({\n  refineCoreProps,\n  warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n  disableServerSideValidation: disableServerSideValidationProp = false,\n  ...rest\n}: UseFormProps<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> = {}): UseFormReturnType<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> => {\n  const { options } = useRefineContext();\n  const disableServerSideValidation =\n    options?.disableServerSideValidation || disableServerSideValidationProp;\n\n  const translate = useTranslate();\n\n  const { warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine, setWarnWhen } =\n    useWarnAboutChange();\n  const warnWhenUnsavedChanges =\n    warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;\n\n  const useHookFormResult = useHookForm<TVariables, TContext>({\n    ...rest,\n  });\n\n  const {\n    control,\n    watch,\n    setValue,\n    getValues,\n    handleSubmit: handleSubmitReactHookForm,\n    setError,\n    formState: { dirtyFields },\n  } = useHookFormResult;\n\n  // Keep query data and sync registered fields as they mount (e.g. Controller), without overriding dirty values.\n  const queryDataRef = React.useRef<TData | undefined>(undefined);\n  // Track which fields have already been synced to avoid repeated setValue calls.\n  const syncedFieldsRef = React.useRef<Set<string>>(new Set());\n  // Track mounted field names so late-registered fields can be detected.\n  const mountedFieldsRef = React.useRef<Set<string>>(new Set());\n\n  const useFormCoreResult = useFormCore<\n    TQueryFnData,\n    TError,\n    TVariables,\n    TData,\n    TResponse,\n    TResponseError\n  >({\n    ...refineCoreProps,\n    onMutationError: (error, _variables, _context) => {\n      if (disableServerSideValidation) {\n        refineCoreProps?.onMutationError?.(error, _variables, _context);\n        return;\n      }\n\n      const errors = error?.errors;\n\n      for (const key in errors) {\n        // when the key is not registered in the form, react-hook-form not working\n        const isKeyInVariables = Object.keys(\n          flattenObjectKeys(_variables),\n        ).includes(key);\n\n        if (!isKeyInVariables) {\n          continue;\n        }\n\n        const fieldError = errors[key];\n\n        let newError = \"\";\n\n        if (Array.isArray(fieldError)) {\n          newError = fieldError.join(\" \");\n        }\n\n        if (typeof fieldError === \"string\") {\n          newError = fieldError;\n        }\n\n        if (typeof fieldError === \"boolean\" && fieldError) {\n          newError = \"Field is not valid.\";\n        }\n\n        if (typeof fieldError === \"object\" && \"key\" in fieldError) {\n          const translatedMessage = translate(\n            fieldError.key,\n            fieldError.message,\n          );\n\n          newError = translatedMessage;\n        }\n\n        setError(key as Path<TVariables>, {\n          message: newError,\n        });\n      }\n\n      refineCoreProps?.onMutationError?.(error, _variables, _context);\n    },\n  });\n\n  const { query, onFinish, formLoading, onFinishAutoSave } = useFormCoreResult;\n\n  const getMountedFields = () => {\n    const mounted =\n      (\n        control as {\n          _names?: {\n            mount?: Set<string>;\n          };\n        }\n      )._names?.mount ?? new Set<string>();\n\n    return new Set(mounted);\n  };\n\n  const getRegisteredFields = () => {\n    const registeredFields = new Set<string>();\n    const mounted = getMountedFields();\n    mounted.forEach((name) => registeredFields.add(name));\n\n    const values = getValues();\n    Object.keys(flattenObjectKeys(values)).forEach((path) => {\n      registeredFields.add(path);\n    });\n\n    return registeredFields;\n  };\n\n  const applyValuesToFields = (\n    fieldNames: Set<string>,\n    data: TData,\n    respectDirty = false,\n  ) => {\n    fieldNames.forEach((path) => {\n      if (syncedFieldsRef.current.has(path)) {\n        return;\n      }\n\n      if (respectDirty && get(dirtyFields, path)) {\n        syncedFieldsRef.current.add(path);\n        return;\n      }\n\n      syncedFieldsRef.current.add(path);\n\n      if (has(data, path)) {\n        setValue(path as Path<TVariables>, get(data, path));\n      }\n    });\n  };\n\n  // On query load, attempt a first sync after registration effects run.\n  useEffect(() => {\n    const data = query?.data?.data;\n    if (!data) {\n      queryDataRef.current = undefined;\n      syncedFieldsRef.current = new Set();\n      mountedFieldsRef.current = new Set();\n      return;\n    }\n\n    let isActive = true;\n\n    const applyQueryValues = () => {\n      if (!isActive) return;\n\n      applyValuesToFields(getRegisteredFields(), data, false);\n    };\n\n    queryDataRef.current = data;\n    syncedFieldsRef.current = new Set();\n    mountedFieldsRef.current = getMountedFields();\n\n    // defer until after field registration effects\n    if (typeof queueMicrotask === \"function\") {\n      queueMicrotask(applyQueryValues);\n    } else {\n      Promise.resolve().then(applyQueryValues);\n    }\n\n    return () => {\n      isActive = false;\n    };\n  }, [query?.data, setValue, getValues]);\n\n  // Re-sync when new fields register; do not override user edits.\n  useEffect(() => {\n    const subscription = watch((values: any, { type }: { type?: any }) => {\n      if (type === \"change\") {\n        onValuesChange(values);\n      }\n    });\n    return () => subscription.unsubscribe();\n  }, [watch]);\n\n  // Detect late-registered fields (e.g. Controller) and sync once they mount.\n  // Intentionally no deps: RHF mutates the mount set in place and doesn't notify React,\n  // so we check per-render and only apply values when new field names appear.\n  useEffect(() => {\n    const data = queryDataRef.current;\n    if (!data) {\n      return;\n    }\n\n    const mountedFieldNames = getMountedFields();\n    if (!mountedFieldNames.size) {\n      return;\n    }\n\n    let hasNewField = false;\n    mountedFieldNames.forEach((name) => {\n      if (!mountedFieldsRef.current.has(name)) {\n        hasNewField = true;\n      }\n    });\n\n    if (!hasNewField) {\n      return;\n    }\n\n    mountedFieldsRef.current = new Set(mountedFieldNames);\n    applyValuesToFields(mountedFieldNames, data, true);\n  });\n\n  const onValuesChange = (changeValues: TVariables) => {\n    if (warnWhenUnsavedChanges) {\n      setWarnWhen(true);\n    }\n\n    if (refineCoreProps?.autoSave?.enabled) {\n      setWarnWhen(false);\n\n      const onFinishProps =\n        refineCoreProps.autoSave?.onFinish ?? ((values: TVariables) => values);\n\n      return onFinishAutoSave(onFinishProps(changeValues)).catch(\n        (error) => error,\n      );\n    }\n\n    return changeValues;\n  };\n\n  const handleSubmit: UseFormHandleSubmit<TVariables> =\n    (onValid, onInvalid) => async (e) => {\n      setWarnWhen(false);\n      return handleSubmitReactHookForm(onValid, onInvalid)(e);\n    };\n\n  const saveButtonProps = {\n    disabled: formLoading,\n    onClick: (e: React.BaseSyntheticEvent) => {\n      handleSubmit(\n        (v) => onFinish(v).catch(() => {}),\n        () => false,\n      )(e);\n    },\n  };\n\n  return {\n    ...useHookFormResult,\n    handleSubmit,\n    refineCore: useFormCoreResult,\n    saveButtonProps,\n  };\n};\n","import { useEffect, useState } from \"react\";\nimport type { FieldValues, Path } from \"react-hook-form\";\nimport type { BaseRecord, HttpError } from \"@refinedev/core\";\nimport get from \"lodash-es/get.js\";\n\nimport { useForm, type UseFormProps, type UseFormReturnType } from \"../useForm\";\n\nexport type UseStepsFormReturnType<\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n> = UseFormReturnType<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> & {\n  steps: {\n    currentStep: number;\n    gotoStep: (step: number) => void;\n  };\n};\n\nexport type UseStepsFormProps<\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n> = UseFormProps<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> & {\n  /**\n     * @description Configuration object for the steps.\n     * `defaultStep`: Allows you to set the initial step.\n     * \n     * `isBackValidate`: Whether to validation the current step when going back.\n     * @type `{\n      defaultStep?: number;\n      isBackValidate?: boolean;\n      }`\n     * @default `defaultStep = 0` `isBackValidate = false`\n     */\n  stepsProps?: {\n    defaultStep?: number;\n    isBackValidate?: boolean;\n  };\n};\n\nexport const useStepsForm = <\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n>({\n  stepsProps,\n  ...rest\n}: UseStepsFormProps<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> = {}): UseStepsFormReturnType<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> => {\n  const { defaultStep = 0, isBackValidate = false } = stepsProps ?? {};\n  const [current, setCurrent] = useState(defaultStep);\n\n  const useHookFormResult = useForm<\n    TQueryFnData,\n    TError,\n    TVariables,\n    TContext,\n    TData,\n    TResponse,\n    TResponseError\n  >({\n    ...rest,\n  });\n\n  const {\n    trigger,\n    getValues,\n    setValue,\n    formState: { dirtyFields },\n    refineCore: { query },\n  } = useHookFormResult;\n\n  useEffect(() => {\n    const data = query?.data?.data;\n    if (!data) return;\n\n    const registeredFields = Object.keys(getValues());\n\n    Object.entries(data).forEach(([key, value]) => {\n      const name = key as Path<TVariables>;\n\n      if (registeredFields.includes(name)) {\n        if (!get(dirtyFields, name)) {\n          setValue(name, value);\n        }\n      }\n    });\n  }, [query?.data, current, setValue, getValues]);\n\n  const go = (step: number) => {\n    let targetStep = step;\n\n    if (step < 0) {\n      targetStep = 0;\n    }\n\n    setCurrent(targetStep);\n  };\n\n  const gotoStep = async (step: number) => {\n    if (step === current) {\n      return;\n    }\n\n    if (step < current && !isBackValidate) {\n      go(step);\n      return;\n    }\n\n    const isValid = await trigger();\n    if (isValid) {\n      go(step);\n    }\n  };\n\n  return {\n    ...useHookFormResult,\n    steps: {\n      currentStep: current,\n      gotoStep,\n    },\n  };\n};\n","import { useCallback } from \"react\";\nimport {\n  type BaseKey,\n  type BaseRecord,\n  type FormWithSyncWithLocationParams,\n  type HttpError,\n  useGo,\n  useModal,\n  useParsed,\n  useUserFriendlyName,\n  useTranslate,\n  useWarnAboutChange,\n  useInvalidate,\n  useResourceParams,\n} from \"@refinedev/core\";\nimport type { FieldValues } from \"react-hook-form\";\n\nimport { useForm, type UseFormProps, type UseFormReturnType } from \"../useForm\";\nimport React from \"react\";\n\nexport type UseModalFormReturnType<\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n> = UseFormReturnType<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> & {\n  modal: {\n    submit: (values: TVariables) => void;\n    close: () => void;\n    show: (id?: BaseKey) => void;\n    visible: boolean;\n    title: string;\n  };\n};\n\nexport type UseModalFormProps<\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n> = UseFormProps<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> & {\n  /**\n     * @description Configuration object for the modal.\n     * `defaultVisible`: Initial visibility state of the modal.\n     *\n     * `autoSubmitClose`: Whether the form should be submitted when the modal is closed.\n     *\n     * `autoResetForm`: Whether the form should be reset when the form is submitted.\n     *\n     * `autoResetFormWhenClose`: Whether the form should be reset to defaultValues when the modal is closed.\n     * @type `{\n      defaultVisible?: boolean;\n      autoSubmitClose?: boolean;\n      autoResetForm?: boolean;\n      autoResetFormWhenClose?: boolean;\n      }`\n     * @default `defaultVisible = false` `autoSubmitClose = true` `autoResetForm = true` `autoResetFormWhenClose = true`\n     */\n  modalProps?: {\n    defaultVisible?: boolean;\n    autoSubmitClose?: boolean;\n    autoResetForm?: boolean;\n    autoResetFormWhenClose?: boolean;\n  };\n} & FormWithSyncWithLocationParams;\n\nexport const useModalForm = <\n  TQueryFnData extends BaseRecord = BaseRecord,\n  TError extends HttpError = HttpError,\n  TVariables extends FieldValues = FieldValues,\n  TContext extends object = {},\n  TData extends BaseRecord = TQueryFnData,\n  TResponse extends BaseRecord = TData,\n  TResponseError extends HttpError = TError,\n>({\n  modalProps,\n  refineCoreProps,\n  syncWithLocation,\n  ...rest\n}: UseModalFormProps<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> = {}): UseModalFormReturnType<\n  TQueryFnData,\n  TError,\n  TVariables,\n  TContext,\n  TData,\n  TResponse,\n  TResponseError\n> => {\n  const invalidate = useInvalidate();\n  const [initiallySynced, setInitiallySynced] = React.useState(false);\n\n  const translate = useTranslate();\n\n  const { resource: resourceProp, action: actionProp } = refineCoreProps ?? {};\n\n  const { resource, identifier } = useResourceParams({\n    resource: resourceProp,\n  });\n  const { action: actionFromParams } = useResourceParams({\n    resource: resourceProp,\n    action: actionProp,\n  });\n\n  const parsed = useParsed();\n  const go = useGo();\n  const getUserFriendlyName = useUserFriendlyName();\n\n  const action = actionProp ?? actionFromParams ?? \"\";\n\n  const syncingId = !(\n    typeof syncWithLocation === \"object\" && syncWithLocation?.syncId === false\n  );\n\n  const syncWithLocationKey =\n    typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n      ? syncWithLocation.key\n      : resource && action && syncWithLocation\n        ? `modal-${identifier}-${action}`\n        : undefined;\n\n  const {\n    defaultVisible = false,\n    autoSubmitClose = true,\n    autoResetForm = true,\n    autoResetFormWhenClose = true,\n  } = modalProps ?? {};\n\n  const useHookFormResult = useForm<\n    TQueryFnData,\n    TError,\n    TVariables,\n    TContext,\n    TData,\n    TResponse,\n    TResponseError\n  >({\n    refineCoreProps: {\n      ...refineCoreProps,\n      meta: {\n        ...(syncWithLocationKey ? { [syncWithLocationKey]: undefined } : {}),\n        ...refineCoreProps?.meta,\n      },\n    },\n    ...rest,\n  });\n\n  const {\n    reset,\n    refineCore: { onFinish, id, setId, autoSaveProps, query },\n    saveButtonProps,\n    handleSubmit,\n  } = useHookFormResult;\n\n  const { visible, show, close } = useModal({\n    defaultVisible,\n  });\n\n  // compensate for setting of initial form values in useForm since it doesnt track modal visibility\n  React.useEffect(() => {\n    if (!visible || !query?.data?.data) return;\n\n    const formData = query.data.data;\n    if (!formData) return;\n\n    reset(formData as any, {\n      ...(!autoResetFormWhenClose && {\n        keepDirtyValues: true,\n      }),\n    });\n  }, [visible, query?.data?.data, autoResetFormWhenClose]);\n\n  React.useEffect(() => {\n    if (initiallySynced === false && syncWithLocationKey) {\n      const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n      if (typeof openStatus === \"boolean\") {\n        if (openStatus) {\n          show();\n        }\n      } else if (typeof openStatus === \"string\") {\n        if (openStatus === \"true\") {\n          show();\n        }\n      }\n\n      if (syncingId) {\n        const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n        if (idFromParams) {\n          setId?.(idFromParams);\n        }\n      }\n\n      setInitiallySynced(true);\n    }\n  }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n  React.useEffect(() => {\n    if (initiallySynced === true) {\n      if (visible && syncWithLocationKey) {\n        go({\n          query: {\n            [syncWithLocationKey]: {\n              ...parsed?.params?.[syncWithLocationKey],\n              open: true,\n              ...(syncingId && id && { id }),\n            },\n          },\n          options: { keepQuery: true },\n          type: \"replace\",\n        });\n      } else if (syncWithLocationKey && !visible) {\n        go({\n          query: {\n            [syncWithLocationKey]: undefined,\n          },\n          options: { keepQuery: true },\n          type: \"replace\",\n        });\n      }\n    }\n  }, [id, visible, show, syncWithLocationKey, syncingId]);\n\n  const submit = async (values: TVariables) => {\n    await onFinish(values);\n\n    if (autoSubmitClose) {\n      close();\n    }\n\n    if (autoResetForm) {\n      reset();\n    }\n  };\n\n  const { warnWhen, setWarnWhen } = useWarnAboutChange();\n  const handleClose = useCallback(() => {\n    if (\n      autoSaveProps.status === \"success\" &&\n      refineCoreProps?.autoSave?.invalidateOnClose\n    ) {\n      invalidate({\n        id,\n        invalidates: refineCoreProps.invalidates || [\"list\", \"many\", \"detail\"],\n        dataProviderName: refineCoreProps.dataProviderName,\n        resource: identifier,\n      });\n    }\n\n    if (warnWhen) {\n      const warnWhenConfirm = window.confirm(\n        translate(\n          \"warnWhenUnsavedChanges\",\n          \"Are you sure you want to leave? You have unsaved changes.\",\n        ),\n      );\n\n      if (warnWhenConfirm) {\n        setWarnWhen(false);\n      } else {\n        return;\n      }\n    }\n\n    setId?.(undefined);\n    close();\n\n    if (autoResetFormWhenClose) {\n      reset();\n    }\n  }, [warnWhen, autoSaveProps.status]);\n\n  const handleShow = useCallback(\n    (showId?: BaseKey) => {\n      if (typeof showId !== \"undefined\") {\n        setId?.(showId);\n      }\n      const needsIdToOpen = action === \"edit\" || action === \"clone\";\n      const hasId = typeof showId !== \"undefined\" || typeof id !== \"undefined\";\n      if (needsIdToOpen ? hasId : true) {\n        show();\n      }\n    },\n    [id, action, setId, show],\n  );\n\n  const title = translate(\n    `${identifier}.titles.${actionProp}`,\n    undefined,\n    `${getUserFriendlyName(\n      `${actionProp} ${resource?.meta?.label ?? identifier}`,\n      \"singular\",\n    )}`,\n  );\n\n  return {\n    modal: {\n      submit,\n      close: handleClose,\n      show: handleShow,\n      visible,\n      title,\n    },\n    ...useHookFormResult,\n    saveButtonProps: {\n      ...saveButtonProps,\n      onClick: (e) => handleSubmit(submit)(e),\n    },\n  };\n};\n"],"mappings":"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","names":["useEffect","get","useEffect","get","useTranslate","useWarnAboutChange","React","React","useTranslate","_a","_b","useWarnAboutChange"]}