{"version":3,"file":"BaseInputTemplate.cjs","sources":["../../src/templates/BaseInputTemplate.tsx"],"sourcesContent":["import { ChangeEvent, FocusEvent, useCallback } from 'react';\nimport { PasswordInput, TextInput } from '@mantine/core';\n\nimport {\n  ariaDescribedByIds,\n  BaseInputTemplateProps,\n  examplesId,\n  getInputProps,\n  labelValue,\n  FormContextType,\n  RJSFSchema,\n  StrictRJSFSchema,\n} from '@rjsf/utils';\nimport { createErrors } from '../utils/createErrors';\nimport { useFieldContext } from './FieldTemplate';\n\n/** The `BaseInputTemplate` is the template to use to render the basic `<input>` component for the `core` theme.\n * It is used as the template for rendering many of the <input> based widgets that differ by `type` and callbacks only.\n * It can be customized/overridden for other themes or individual implementations as needed.\n *\n * @param props - The `WidgetProps` for this template\n */\nexport default function BaseInputTemplate<\n  T = any,\n  S extends StrictRJSFSchema = RJSFSchema,\n  F extends FormContextType = any,\n>(props: BaseInputTemplateProps<T, S, F>) {\n  const {\n    id,\n    // placeholder,\n    label,\n    hideLabel,\n    value,\n    required,\n    readonly,\n    disabled,\n    onChange,\n    onChangeOverride,\n    onBlur,\n    onFocus,\n    autofocus,\n    options,\n    schema,\n    type,\n    rawErrors,\n    className,\n    hideError,\n  } = props;\n\n  // Note: since React 15.2.0 we can't forward unknown element attributes, so we\n  // exclude the \"options\" and \"schema\" ones here.\n  if (!id) {\n    console.log('No id for', props);\n    throw new Error(`no id for props ${JSON.stringify(props)}`);\n  }\n\n  const { description } = useFieldContext();\n  const inputProps = getInputProps<T, S, F>(schema, type, options);\n\n  let inputValue;\n  if (inputProps.type === 'number' || inputProps.type === 'integer') {\n    inputValue = value || value === 0 ? value : '';\n  } else {\n    inputValue = value == null ? '' : value;\n  }\n\n  const _onChange = useCallback(\n    ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onChange(value === '' ? options.emptyValue : value),\n    [onChange, options],\n  );\n  const _onBlur = useCallback(({ target: { value } }: FocusEvent<HTMLInputElement>) => onBlur(id, value), [onBlur, id]);\n  const _onFocus = useCallback(\n    ({ target: { value } }: FocusEvent<HTMLInputElement>) => onFocus(id, value),\n    [onFocus, id],\n  );\n\n  const InputComponent = type === 'password' ? PasswordInput : TextInput;\n  return (\n    <>\n      <InputComponent\n        key={id}\n        id={id}\n        // placeholder={placeholder}\n        description={description}\n        {...inputProps}\n        label={labelValue(label, hideLabel, undefined)}\n        required={required}\n        autoFocus={autofocus}\n        disabled={disabled || readonly}\n        list={schema.examples ? examplesId<T>(id) : undefined}\n        value={inputValue}\n        error={createErrors<T>(rawErrors, hideError)}\n        onChange={onChangeOverride || _onChange}\n        onBlur={_onBlur}\n        onFocus={_onFocus}\n        aria-describedby={ariaDescribedByIds<T>(id, !!schema.examples)}\n        className={`armt-widget-input ${className || ''}`}\n      />\n      {Array.isArray(schema.examples) && (\n        <datalist id={examplesId<T>(id)}>\n          {(schema.examples as string[])\n            .concat(schema.default && !schema.examples.includes(schema.default) ? ([schema.default] as string[]) : [])\n            .map((example) => {\n              return <option key={example} value={example} />;\n            })}\n        </datalist>\n      )}\n    </>\n  );\n}\n"],"names":["useFieldContext","getInputProps","useCallback","PasswordInput","TextInput","jsxs","Fragment","jsx","labelValue","examplesId","createErrors","ariaDescribedByIds"],"mappings":"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"}