{"version":3,"sources":["../src/components/gui/components/XGUITextField.tsx"],"names":["React","Divider","Stack","TextField","Typography","compareProps","prevProps","nextProps","XGUITextField","field","currentValue","onChange","type","id","bp","useBreakpoint","e","value","XGUITextField_default"],"mappings":"sEAAA,UAAYA,MAAW,QAMvB,OAAS,WAAAC,EAAS,SAAAC,EAAO,aAAAC,EAAW,cAAAC,MAAkB,gBAGtD,IAAMC,EAAe,CAACC,EAAgBC,IAE7BD,EAAU,eAAiBC,EAAU,aASxCC,EAAoD,OACxD,CAAC,CAAE,MAAAC,EAAO,aAAAC,EAAc,SAAAC,EAAU,KAAAC,EAAO,MAAO,IAAM,CACpD,IAAMC,EAAK,cAAcJ,EAAM,OACzBK,EAAKC,EAAc,EAEzB,OACE,gBAAO,WAAN,KACC,gBAACb,EAAA,CACC,UAAU,YACV,UAAU,MACV,eAAe,gBACf,WAAYU,IAAS,SAAW,SAAW,aAC3C,GAAI,GAWJ,gBAACR,EAAA,CAAW,UAAU,QAAQ,QAASS,EAAI,MAAM,OAC9CJ,EAAM,KACT,EACA,gBAACN,EAAA,CACC,GAAIU,EACJ,GAAI,CAAE,GAAI,CAAE,EACZ,UAAS,GACT,YAAW,GACX,KAAK,QACL,KAAMD,EACN,UAAWA,IAAS,SACpB,QAAS,EACT,YAAaH,EAAM,aAAeA,EAAM,MACxC,MAAOC,GAAgBD,EAAM,aAC7B,SAAWO,GAAM,CACf,IAAIC,EAAaD,EAAE,OAAO,MAEtBJ,IAAS,WACXK,EAAQ,SAASA,CAAK,EAElB,MAAMA,CAAK,IAAGA,EAAQ,OAG5BN,EAASM,EAAOR,EAAM,KAAMK,CAAE,CAChC,EACA,WAAY,CAAE,IAAK,CAAE,EACvB,CACF,EACA,gBAACb,EAAA,CAAQ,GAAI,CAAE,YAAa,wBAAyB,GAAI,CAAE,EAAG,CAChE,CAEJ,EACAI,CACF,EAEOa,EAAQV","sourcesContent":["import * as React from \"react\";\nimport {\n  IXGUIFieldBase,\n  TOnChange,\n} from \"../../../utils/interfaces/gui/fields.interfaces\";\n\nimport { Divider, Stack, TextField, Typography } from \"@mui/material\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  // return isEqual(prevProps, nextProps);\n  return prevProps.currentValue === nextProps.currentValue;\n};\n\ninterface XGUITextFieldProps extends IXGUIFieldBase {\n  onChange: TOnChange<string>;\n  currentValue: string;\n  type: \"number\" | \"text\";\n}\n\nconst XGUITextField: React.FC<XGUITextFieldProps> = React.memo(\n  ({ field, currentValue, onChange, type = \"text\" }) => {\n    const id = `XGUI-FIELD-${field.name}`;\n    const bp = useBreakpoint();\n\n    return (\n      <React.Fragment>\n        <Stack\n          className=\"XGUIField\"\n          direction=\"row\"\n          justifyContent=\"space-between\"\n          alignItems={type === \"number\" ? \"center\" : \"flex-start\"}\n          mb={1}\n        >\n          {/* <AntSwitch\n            size=\"small\"\n            sx={{ mr: 1 }}\n            checked={!disabled}\n            onChange={(e) => {\n              setDisabled(!e.target.checked);\n              debounced(value);\n            }}\n          /> */}\n          <Typography component=\"label\" htmlFor={id} width=\"40%\">\n            {field.label}\n          </Typography>\n          <TextField\n            id={id}\n            sx={{ ml: 1 }}\n            fullWidth\n            hiddenLabel\n            size=\"small\"\n            type={type}\n            multiline={type !== \"number\"}\n            maxRows={3}\n            placeholder={field.placeholder ?? field.label}\n            value={currentValue ?? field.defaultValue}\n            onChange={(e) => {\n              let value: any = e.target.value;\n\n              if (type === \"number\") {\n                value = parseInt(value) as any;\n\n                if (isNaN(value)) value = null;\n              }\n\n              onChange(value, field.name, bp);\n            }}\n            inputProps={{ min: 0 }}\n          />\n        </Stack>\n        <Divider sx={{ borderColor: \"rgba(255,255,255,0.1)\", mb: 1 }} />\n      </React.Fragment>\n    );\n  },\n  compareProps\n);\n\nexport default XGUITextField;\n"]}