{"version":3,"file":"virtualActions.mjs","names":["FormControlLabel","TextField","React","useCallback","DateTimeField","Field","findTermByType","FluentToggle","PropertyTypeEnum","toLowerFirstChar","toTitleCase","useVirtualActions","$","_c","renderInputByFieldType","_temp","t0","Symbol","for","formField","index","virtualTableFormData","classes","NUMBER_TYPE","Int","Long","Double","type","name","fieldType","toLowerCase","fieldIsNumberType","includes","DefaultTextField","nullable","root","input","formTextInput","labelRoot","disabled","DefaultFluentToggle","switchRoot","marginLeft","Date","marginTop"],"sources":["../../src/hooks/virtualActions.jsx"],"sourcesContent":["import { FormControlLabel, TextField } from '@material-ui/core';\nimport React, { useCallback } from 'react';\nimport { DateTimeField } from '../UI/inputs/datetimes/DateTimeField';\nimport { Field } from '../utilities/form';\nimport { findTermByType } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { FluentToggle } from '../UI/inputs/toggle/FluentToggle';\nimport { PropertyTypeEnum } from '../enums/propertyTypeEnums';\nimport { toLowerFirstChar } from '../utilities/input/StringUtilities';\nimport { toTitleCase } from '../utilities/input/StringUtilities';\n\nexport function useVirtualActions() {\n  const renderInputByFieldType = useCallback(\n    (formField, index, virtualTableFormData, classes) => {\n      const NUMBER_TYPE = [\n        PropertyTypeEnum.Int,\n        PropertyTypeEnum.Long,\n        PropertyTypeEnum.Double\n      ];\n\n      if (\n        formField.type === 'boolean' &&\n        virtualTableFormData[toLowerFirstChar(formField.name)] === ''\n      ) {\n        virtualTableFormData[toLowerFirstChar(formField.name)] = false;\n      }\n\n      const fieldType = formField.type?.toLowerCase();\n      let fieldIsNumberType = NUMBER_TYPE.includes(fieldType);\n\n      const DefaultTextField = (\n        <Field\n          component={TextField}\n          id={`${formField.name}${index}`}\n          name={toLowerFirstChar(formField.name)}\n          label={toTitleCase(formField.name)}\n          initialValue={\n            virtualTableFormData[toLowerFirstChar(formField.name)] || ''\n          }\n          type={fieldIsNumberType && 'number'}\n          fullWidth\n          variant='outlined'\n          size='small'\n          required={!formField?.nullable}\n          margin='dense'\n          InputProps={{\n            classes: {\n              root: classes?.input,\n              input: classes?.formTextInput\n            }\n          }}\n          InputLabelProps={{\n            classes: {\n              root: classes?.labelRoot\n            }\n          }}\n          disabled={formField?.disabled}\n        />\n      );\n\n      const DefaultFluentToggle = (\n        <FormControlLabel\n          control={\n            <Field\n              component={FluentToggle}\n              type='checkbox'\n              id={`${formField.name}${index}`}\n              name={toLowerFirstChar(formField.name)}\n              label={toTitleCase(formField.name)}\n              initialValue={\n                typeof virtualTableFormData[\n                  toLowerFirstChar(formField.name)\n                ] === 'boolean'\n                  ? virtualTableFormData[toLowerFirstChar(formField.name)]\n                  : virtualTableFormData[toLowerFirstChar(formField.name)] ===\n                    'true'\n                  ? true\n                  : false\n              }\n              disabled={formField?.disabled}\n              classes={{ root: classes?.switchRoot }}\n              color='secondary'\n              inputProps={{ 'aria-label': 'Active condition' }}\n            />\n          }\n          label={toTitleCase(formField.name)}\n          labelPlacement='start'\n          style={{ marginLeft: 4 }}\n        />\n      );\n\n      switch (fieldType.toLowerCase()) {\n        case findTermByType(fieldType, 'int'):\n        case findTermByType(fieldType, 'long'):\n        case findTermByType(fieldType, 'double'):\n        case findTermByType(fieldType, 'string'):\n        case findTermByType(fieldType, 'string uuid'):\n          return DefaultTextField;\n        case findTermByType(fieldType, 'boolean'):\n          return DefaultFluentToggle;\n        case findTermByType(fieldType, 'datetime'):\n          return (\n            <Field\n              disabled={formField?.disabled}\n              component={DateTimeField}\n              id={`${formField.name}${index}`}\n              name={toLowerFirstChar(formField.name)}\n              label={toTitleCase(formField.name)}\n              initialValue={\n                virtualTableFormData[toLowerFirstChar(formField.name)]\n                  ? new Date(\n                      virtualTableFormData[toLowerFirstChar(formField.name)]\n                    )\n                  : ''\n              }\n              fullWidth\n              variant='outlined'\n              size='small'\n              required={!formField?.nullable}\n              style={{ marginTop: 8 }}\n            />\n          );\n        default:\n          return null;\n      }\n    },\n    []\n  );\n\n  return {\n    renderInputByFieldType\n  };\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAOW,oBAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,yBAA+BC;CAmH7B,IAAAC;AAAA,KAAAJ,EAAA,OAAAK,OAAAC,IAAA,4BAAA,EAAA;AAEKF,OAAA,EAAAF,wBAEN;AAAAF,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAFMI;;AAtHF,SAAAD,MAAAI,WAAAC,OAAAC,sBAAAC,SAAA;CAGD,MAAAC,cAAoB;EAClBf,iBAAgBgB;EAChBhB,iBAAgBiB;EAChBjB,iBAAgBkB;EACjB;AAED,KACEP,UAASQ,SAAU,aACnBN,qBAAqBZ,iBAAiBU,UAASS,KAAM,MAAM,GAE3DP,sBAAqBZ,iBAAiBU,UAASS,KAAM,IAAI;CAG3D,MAAAC,YAAkBV,UAASQ,MAAkBG,aAAE;CAC/C,MAAAC,oBAAwBR,YAAWS,SAAUH,UAAU;CAEvD,MAAAI,mBACE,sBAAA,cAAC,OAAD;EACahC,WAAAA;EACP,IAAA,GAAGkB,UAASS,OAAQR;EAClB,MAAAX,iBAAiBU,UAASS,KAAK;EAC9B,OAAAlB,YAAYS,UAASS,KAAK;EAE/B,cAAAP,qBAAqBZ,iBAAiBU,UAASS,KAAM,KAArD;EAEI,MAAAG,qBAAA;EACN,WAAA;EACQ,SAAA;EACH,MAAA;EACK,UAAA,CAACZ,WAASe;EACb,QAAA;EACK,YAAA,EAAAZ,SACD;GAAAa,MACDb,SAAOc;GAAOA,OACbd,SAAOe;GAChB,EACF;EACiB,iBAAA,EAAAf,SACN,EAAAa,MACDb,SAAOgB,WACf,EACF;EACU,UAAAnB,WAASoB;EACnB,CAAA;CAGJ,MAAAC,sBACE,sBAAA,cAAC,kBAAD;EAEI,SAAA,sBAAA,cAAC,OAAD;GACajC,WAAAA;GACN,MAAA;GACD,IAAA,GAAGY,UAASS,OAAQR;GAClB,MAAAX,iBAAiBU,UAASS,KAAK;GAC9B,OAAAlB,YAAYS,UAASS,KAAK;GAE/B,cAAA,OAAOP,qBACLZ,iBAAiBU,UAASS,KAAM,MAC5B,YACFP,qBAAqBZ,iBAAiBU,UAASS,KAAM,IACrDP,qBAAqBZ,iBAAiBU,UAASS,KAAM,MACrD,SADA,OAAA;GAKI,UAAAT,WAASoB;GACV,SAAA,EAAAJ,MAAQb,SAAOmB,YAAa;GAC/B,OAAA;GACM,YAAA,EAAA,cAAgB,oBAAmB;GAChD,CAAA;EAEI,OAAA/B,YAAYS,UAASS,KAAK;EAClB,gBAAA;EACR,OAAA,EAAAc,YAAc,GAAE;EACvB,CAAA;AAGJ,SAAQb,UAASC,aAAc,EAA/B;EAA+B,KACxBxB,eAAeuB,WAAW,MAAM;EAAA,KAChCvB,eAAeuB,WAAW,OAAO;EAAA,KACjCvB,eAAeuB,WAAW,SAAS;EAAA,KACnCvB,eAAeuB,WAAW,SAAS;EAAA,KACnCvB,eAAeuB,WAAW,cAAc,CAAA,QACpCI;EAAgB,KACpB3B,eAAeuB,WAAW,UAAU,CAAA,QAChCW;EAAmB,KACvBlC,eAAeuB,WAAW,WAAW,CAAA,QAEtC,sBAAA,cAAC,OAAD;GACY,UAAAV,WAASoB;GACRnC,WAAAA;GACP,IAAA,GAAGe,UAASS,OAAQR;GAClB,MAAAX,iBAAiBU,UAASS,KAAK;GAC9B,OAAAlB,YAAYS,UAASS,KAAK;GAE/B,cAAAP,qBAAqBZ,iBAAiBU,UAASS,KAAM,IAArD,IACQe,KACFtB,qBAAqBZ,iBAAiBU,UAASS,KAAM,EAErD,GAJN;GAMF,WAAA;GACQ,SAAA;GACH,MAAA;GACK,UAAA,CAACT,WAASe;GACb,OAAA,EAAAU,WAAa,GAAE;GACtB,CAAA;EAAA,QAAA,QAGG"}