{"version":3,"file":"NullField.cjs","sources":["../../src/fields/NullField.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { FieldProps, FormContextType, RJSFSchema, StrictRJSFSchema, getUiOptions, getWidget } from '@rjsf/utils';\n\n/** The `NullField` component is used to render a field in the schema is null. It also ensures that the `formData` is\n * also set to null if it has no value.\n *\n * Differences from the original:\n * - Traverse the widget and use it\n * - By default, use `NullWidget`, which is not present in the original\n * - Hence, null fields can be replaced with custom ones\n *\n * @param props - The `FieldProps` for this template\n */\nfunction NullField<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(\n  props: FieldProps<T, S, F>,\n) {\n  const {\n    schema,\n    name,\n    uiSchema,\n    idSchema,\n    formData,\n    required,\n    disabled = false,\n    readonly = false,\n    autofocus = false,\n    onChange,\n    onBlur,\n    onFocus,\n    registry,\n    rawErrors,\n    hideError,\n  } = props;\n\n  const { title } = schema;\n  const { widgets, formContext, schemaUtils, globalUiOptions } = registry;\n  const { widget = 'NullWidget', title: uiTitle, ...options } = getUiOptions<T, S, F>(uiSchema);\n  const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n  const label = uiTitle ?? title ?? name;\n  const Widget = getWidget<T, S, F>(schema, widget, widgets);\n\n  useEffect(() => {\n    if (formData === undefined) {\n      onChange(null as unknown as T);\n    }\n  }, [formData, onChange]);\n\n  return (\n    <Widget\n      options={options}\n      schema={schema}\n      uiSchema={uiSchema}\n      id={idSchema.$id}\n      name={name}\n      label={label}\n      hideLabel={!displayLabel}\n      hideError={hideError}\n      value={formData}\n      onChange={onChange}\n      onBlur={onBlur}\n      onFocus={onFocus}\n      required={required}\n      disabled={disabled}\n      readonly={readonly}\n      formContext={formContext}\n      autofocus={autofocus}\n      registry={registry}\n      // placeholder={placeholder}\n      rawErrors={rawErrors}\n    />\n  );\n}\n\nexport default NullField;\n"],"names":["getUiOptions","getWidget","useEffect","jsx"],"mappings":";;;;;;;;AAIA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,EAAE,MAAM;AACR,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,SAAS;AACb,GAAG,GAAG,KAAK,CAAC;AACZ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;AAC3B,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;AAC1E,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAGA,kBAAY,CAAC,QAAQ,CAAC,CAAC;AACvF,EAAE,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AACtF,EAAE,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC;AACzC,EAAE,MAAM,MAAM,GAAGC,eAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,EAAE;AAC7B,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,KAAK;AACL,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3B,EAAE,uBAAuBC,cAAG;AAC5B,IAAI,MAAM;AACV,IAAI;AACJ,MAAM,OAAO;AACb,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,MAAM,EAAE,EAAE,QAAQ,CAAC,GAAG;AACtB,MAAM,IAAI;AACV,MAAM,KAAK;AACX,MAAM,SAAS,EAAE,CAAC,YAAY;AAC9B,MAAM,SAAS;AACf,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,QAAQ;AACd,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,QAAQ;AACd,MAAM,QAAQ;AACd,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,SAAS;AACf,KAAK;AACL,GAAG,CAAC;AACJ;;;;"}