{"version":3,"file":"inputController.cjs","sources":["../../../src/components/InputController/inputController.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { type Control } from \"react-hook-form\";\nimport {\n  FormControl,\n  FormDescription,\n  FormField,\n  FormItem,\n  FormLabel,\n  FormMessage,\n} from \"../Form\";\nimport { Input } from \"../Input\";\n\ninterface IController {\n  control: Control<any>;\n  name: string;\n  label?: string;\n  placeholder?: string;\n  description?: string;\n  /** Onchange callback function */\n  handleChange?: any;\n  /** Custom click handler */\n  handleClick?: React.MouseEventHandler<HTMLInputElement>;\n  /** Field Disable */\n  disabled?: boolean;\n  /** Field type */\n  type?:\n    | \"date\"\n    | \"hidden\"\n    | \"datetime-local\"\n    | \"email\"\n    | \"month\"\n    | \"number\"\n    | \"password\"\n    | \"search\"\n    | \"tel\"\n    | \"text\"\n    | \"time\"\n    | \"url\"\n    | \"week\";\n  inputMode?:\n    | \"email\"\n    | \"tel\"\n    | \"search\"\n    | \"text\"\n    | \"url\"\n    | \"none\"\n    | \"numeric\"\n    | \"decimal\"\n    | undefined;\n  /** Handles MaxLength of the field , works only with strings */\n  maxlength?: number;\n  /** Field is required or optional */\n  readonly?: boolean;\n  /** Prefix Icon */\n  prefix?: ReactNode;\n  /** Prefix Icon */\n  suffix?: ReactNode;\n  required?: boolean;\n  onFocus?: React.FocusEventHandler<HTMLInputElement>;\n  onBlur?: React.FocusEventHandler<HTMLInputElement>;\n  autoComplete?: React.HTMLInputAutoCompleteAttribute;\n  className?: string;\n  containerStyle?: string;\n}\nconst InputController = (props: IController) => {\n  const {\n    control,\n    name,\n    label,\n    placeholder,\n    description,\n    handleChange,\n    handleClick,\n    disabled,\n    type = \"text\",\n    maxlength,\n    readonly,\n    prefix,\n    suffix,\n    required,\n    onFocus,\n    onBlur,\n    autoComplete,\n    className,\n    containerStyle,\n    inputMode,\n  } = props;\n  return (\n    <FormField\n      control={control}\n      name={name}\n      render={({ field: { onChange, ...field } }) => {\n        // Handle NaN values and contolled input https://reactjs.org/link/controlled-components\n        field.value = field.value || \"\";\n        return (\n          <FormItem>\n            {label ? <FormLabel>{label}</FormLabel> : null}\n            <FormControl>\n              <Input\n                {...field}\n                onChange={\n                  handleChange\n                    ? ({ target: { value } }) => {\n                        handleChange(value, onChange);\n                      }\n                    : onChange\n                }\n                onClick={handleClick}\n                type={type}\n                inputMode={inputMode}\n                maxLength={maxlength}\n                disabled={disabled}\n                placeholder={placeholder}\n                autoComplete={autoComplete}\n                readOnly={readonly}\n                prefix={prefix}\n                suffix={suffix}\n                required={required}\n                onFocus={onFocus}\n                onBlur={onBlur}\n                className={className}\n                containerStyle={containerStyle}\n              />\n            </FormControl>\n            {description ? (\n              <FormDescription>{description}</FormDescription>\n            ) : null}\n            <FormMessage />\n          </FormItem>\n        );\n      }}\n    />\n  );\n};\n\nexport default InputController;\n"],"names":["InputController$1","props","control","name","label","placeholder","description","handleChange","handleClick","disabled","type","maxlength","readonly","prefix","suffix","required","onFocus","onBlur","autoComplete","className","containerStyle","inputMode","jsxRuntimeExports","jsx","FormField","render","field","onChange","value","FormItem","children","jsxRuntime","FormLabel","FormControl","Input","target","onClick","maxLength","readOnly","FormDescription","FormMessage"],"mappings":"oOAuIAA,EAvEyBC,IACjB,MAAAC,QACJA,EAAAC,KACAA,EAAAC,MACAA,EAAAC,YACAA,EAAAC,YACAA,EAAAC,aACAA,EAAAC,YACAA,EAAAC,SACAA,EAAAC,KACAA,EAAO,OAAAC,UACPA,EAAAC,SACAA,EAAAC,OACAA,EAAAC,OACAA,EAAAC,SACAA,EAAAC,QACAA,EAAAC,OACAA,EAAAC,aACAA,EAAAC,UACAA,EAAAC,eACAA,EAAAC,UACAA,GACEpB,EAEF,SAAAqB,kBAAAC,IAACC,EAAAA,UAAA,CACCtB,UACAC,OACAsB,OAAQ,EAAGC,OAASC,cAAaD,OAEzBA,EAAAE,MAAQF,EAAME,OAAS,4BAE1BC,WACE,CAAAC,SAAA,CAAQ1B,EAAA2B,EAAAT,kBAAAC,IAACS,EAAWA,UAAA,CAAAF,SAAA1B,IAAqB,6BACzC6B,EAAAA,YACC,CAAAH,WAAAR,kBAAAC,IAACW,EAAAA,MAAA,IACKR,EACJC,SACEpB,EACI,EAAG4B,QAAUP,aACXrB,EAAaqB,EAAOD,EAAQ,EAE9BA,EAENS,QAAS5B,EACTE,OACAW,YACAgB,UAAW1B,EACXF,WACAJ,cACAa,eACAoB,SAAU1B,EACVC,SACAC,SACAC,WACAC,UACAC,SACAE,YACAC,qBAGHd,EACCyB,EAAAT,kBAAAC,IAACgB,EAAiBA,gBAAA,CAAAT,SAAAxB,IAChB,6BACHkC,EAAYA,YAAA,SAGnB"}