@flipdish/portal-library 1.0.74 → 1.0.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/7cb5b036a5bc98d2.gif +0 -0
  2. package/dist/assets/images/fd-loader.gif.cjs.js +2 -0
  3. package/dist/assets/images/fd-loader.gif.cjs.js.map +1 -0
  4. package/dist/assets/images/fd-loader.gif.js +2 -0
  5. package/dist/assets/images/fd-loader.gif.js.map +1 -0
  6. package/dist/components/custom-hooks/useMicroFrontendAttributes.cjs.js +1 -1
  7. package/dist/components/custom-hooks/useMicroFrontendAttributes.cjs.js.map +1 -1
  8. package/dist/components/custom-hooks/useMicroFrontendAttributes.d.ts +2 -1
  9. package/dist/components/custom-hooks/useMicroFrontendAttributes.js +1 -1
  10. package/dist/components/custom-hooks/useMicroFrontendAttributes.js.map +1 -1
  11. package/dist/components/custom-hooks/useRenderValidText.cjs.js +1 -1
  12. package/dist/components/custom-hooks/useRenderValidText.cjs.js.map +1 -1
  13. package/dist/components/custom-hooks/useRenderValidText.d.ts +5 -4
  14. package/dist/components/custom-hooks/useRenderValidText.js +1 -1
  15. package/dist/components/custom-hooks/useRenderValidText.js.map +1 -1
  16. package/dist/components/index.cjs.js +1 -1
  17. package/dist/components/index.d.ts +1 -0
  18. package/dist/components/index.js +1 -1
  19. package/dist/components/renderUtilities/renderUtilities.cjs.js +1 -1
  20. package/dist/components/renderUtilities/renderUtilities.cjs.js.map +1 -1
  21. package/dist/components/renderUtilities/renderUtilities.js +1 -1
  22. package/dist/components/renderUtilities/renderUtilities.js.map +1 -1
  23. package/dist/components/ui/FDErrorBoundary/FDErrorBoundary.cjs.js +1 -1
  24. package/dist/components/ui/FDErrorBoundary/FDErrorBoundary.cjs.js.map +1 -1
  25. package/dist/components/ui/FDErrorBoundary/FDErrorBoundary.js +1 -1
  26. package/dist/components/ui/FDErrorBoundary/FDErrorBoundary.js.map +1 -1
  27. package/dist/components/ui/FlipdishLogoLoader/FlipdishLogoLoader.cjs.js +2 -0
  28. package/dist/components/ui/FlipdishLogoLoader/FlipdishLogoLoader.cjs.js.map +1 -0
  29. package/dist/components/ui/FlipdishLogoLoader/FlipdishLogoLoader.d.ts +10 -0
  30. package/dist/components/ui/FlipdishLogoLoader/FlipdishLogoLoader.js +2 -0
  31. package/dist/components/ui/FlipdishLogoLoader/FlipdishLogoLoader.js.map +1 -0
  32. package/dist/components/ui/Form/FormItemLayout.cjs.js.map +1 -1
  33. package/dist/components/ui/Form/FormItemLayout.js.map +1 -1
  34. package/dist/components/ui/Form/GenericAutocompleteField.cjs.js +1 -1
  35. package/dist/components/ui/Form/GenericAutocompleteField.cjs.js.map +1 -1
  36. package/dist/components/ui/Form/GenericAutocompleteField.js +1 -1
  37. package/dist/components/ui/Form/GenericAutocompleteField.js.map +1 -1
  38. package/dist/components/ui/Form/GenericFormContainer.cjs.js +1 -1
  39. package/dist/components/ui/Form/GenericFormContainer.cjs.js.map +1 -1
  40. package/dist/components/ui/Form/GenericFormContainer.js +1 -1
  41. package/dist/components/ui/Form/GenericFormContainer.js.map +1 -1
  42. package/dist/components/ui/Form/GenericTextField.cjs.js +1 -1
  43. package/dist/components/ui/Form/GenericTextField.cjs.js.map +1 -1
  44. package/dist/components/ui/Form/GenericTextField.js +1 -1
  45. package/dist/components/ui/Form/GenericTextField.js.map +1 -1
  46. package/dist/components/ui/Form/utilities/formValidation.cjs.js.map +1 -1
  47. package/dist/components/ui/Form/utilities/formValidation.js.map +1 -1
  48. package/dist/components/ui/GenericDatePickerField/GenericDateFieldBase.cjs.js +2 -0
  49. package/dist/components/ui/GenericDatePickerField/GenericDateFieldBase.cjs.js.map +1 -0
  50. package/dist/components/ui/GenericDatePickerField/GenericDateFieldBase.d.ts +22 -0
  51. package/dist/components/ui/GenericDatePickerField/GenericDateFieldBase.js +2 -0
  52. package/dist/components/ui/GenericDatePickerField/GenericDateFieldBase.js.map +1 -0
  53. package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.cjs.js +1 -1
  54. package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.cjs.js.map +1 -1
  55. package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.d.ts +3 -17
  56. package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.js +1 -1
  57. package/dist/components/ui/GenericDatePickerField/GenericDatePickerField.js.map +1 -1
  58. package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.cjs.js +1 -1
  59. package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.cjs.js.map +1 -1
  60. package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.d.ts +3 -17
  61. package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.js +1 -1
  62. package/dist/components/ui/GenericDateTimePickerField/GenericDateTimePickerField.js.map +1 -1
  63. package/dist/components/ui/GenericRadioButtons/GenericRadioButtons.cjs.js +1 -1
  64. package/dist/components/ui/GenericRadioButtons/GenericRadioButtons.cjs.js.map +1 -1
  65. package/dist/components/ui/GenericRadioButtons/GenericRadioButtons.js +1 -1
  66. package/dist/components/ui/GenericRadioButtons/GenericRadioButtons.js.map +1 -1
  67. package/dist/components/ui/GenericTableBody/GenericTableBody.cjs.js +1 -1
  68. package/dist/components/ui/GenericTableBody/GenericTableBody.cjs.js.map +1 -1
  69. package/dist/components/ui/GenericTableBody/GenericTableBody.js +1 -1
  70. package/dist/components/ui/GenericTableBody/GenericTableBody.js.map +1 -1
  71. package/dist/components/ui/GenericTableBodyRow/GenericTableBodyRow.cjs.js +1 -1
  72. package/dist/components/ui/GenericTableBodyRow/GenericTableBodyRow.cjs.js.map +1 -1
  73. package/dist/components/ui/GenericTableBodyRow/GenericTableBodyRow.js +1 -1
  74. package/dist/components/ui/GenericTableBodyRow/GenericTableBodyRow.js.map +1 -1
  75. package/dist/components/ui/PageLayout/PageLayout.cjs.js +1 -1
  76. package/dist/components/ui/PageLayout/PageLayout.cjs.js.map +1 -1
  77. package/dist/components/ui/PageLayout/PageLayout.js +1 -1
  78. package/dist/components/ui/PageLayout/PageLayout.js.map +1 -1
  79. package/dist/components/ui/Spacer/Spacer.cjs.js.map +1 -1
  80. package/dist/components/ui/Spacer/Spacer.js.map +1 -1
  81. package/dist/providers/TranslationProvider.cjs.js.map +1 -1
  82. package/dist/providers/TranslationProvider.js.map +1 -1
  83. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GenericAutocompleteField.cjs.js","sources":["../../../../src/components/ui/Form/GenericAutocompleteField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Autocomplete from '@mui/material/Autocomplete';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { Field, type FieldProps } from 'formik';\nimport { type SyntheticEvent } from 'react';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\n\nexport type Props<T> = {\n label: string;\n fieldName: string;\n options: T[];\n placeholder?: string;\n getOptionLabel?: (option: T) => string;\n validation?: (value: T | T[]) => string | undefined;\n onChange?: (e: SyntheticEvent, value: T | T[]) => void;\n onInputChange?: (e: SyntheticEvent, value: string) => void;\n isOptionEqualToValue?: (option: T, value: T) => boolean;\n onScroll?: (e: React.UIEvent<HTMLUListElement, UIEvent>) => void;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n loading?: boolean;\n required?: boolean;\n multiple?: boolean;\n limitTags?: number;\n};\n\nconst GenericAutocompleteField = <T,>({\n label,\n fieldName,\n options,\n placeholder,\n getOptionLabel,\n validation,\n onChange,\n onInputChange,\n isOptionEqualToValue,\n onScroll,\n layout = 'horizontal',\n variant = 'outlined',\n disabled = false,\n loading = false,\n required = false,\n multiple = false,\n limitTags = undefined,\n}: Props<T>) => {\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Autocomplete\n options={options}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n onChange={(e: SyntheticEvent, value: T[]) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(fieldName, value);\n if (onChange) {\n onChange(e, value);\n }\n }}\n onInputChange={onInputChange}\n disabled={isSubmitting || disabled}\n fullWidth\n value={field.value || (multiple ? [] : null)}\n loading={loading}\n renderInput={(params) => (\n <TextField\n {...params}\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n data-testid={`text-field-${fieldName}`}\n fullWidth\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder ? placeholder : undefined}\n required={required}\n error={showError}\n helperText={helperText}\n slotProps={{\n input: {\n ...params.InputProps,\n endAdornment: (\n <>\n {loading && <CircularProgress color=\"inherit\" size={25} />}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n />\n )}\n multiple={multiple}\n limitTags={multiple ? (limitTags ?? 2) : undefined}\n slotProps={{\n listbox: {\n onScroll,\n },\n }}\n />\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericAutocompleteField;\n"],"names":["label","fieldName","options","placeholder","getOptionLabel","validation","onChange","onInputChange","isOptionEqualToValue","onScroll","layout","variant","disabled","loading","required","multiple","limitTags","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","Autocomplete","e","setFieldValue","fullWidth","renderInput","params","jsx","TextField","undefined","style","paddingRight","error","slotProps","input","InputProps","endAdornment","_jsxs","jsxs","_Fragment","CircularProgress","color","size","formHelperText","textAlign","listbox","Typography","component","FormItemLayout"],"mappings":"sWA8BiC,EAC7BA,QACAC,YACAC,UACAC,cACAC,iBACAC,aACAC,WACAC,gBACAC,uBACAC,WACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,WAAU,EACVC,YAAW,EACXC,YAAW,EACXC,gBAEA,MAAMC,EAAc,IAEZC,MAACC,EAAAA,OAAMC,KAAMnB,EAAWoB,SAAUhB,EAAUiB,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACId,MAACe,EAAY,CACT/B,QAASA,EACTE,eAAgBA,EAChBI,qBAAsBA,EACtBF,SAAU,CAAC4B,EAAmBF,KAE1BR,EAAKW,cAAclC,EAAW+B,GAC1B1B,GACAA,EAAS4B,EAAGF,EACf,EAELzB,cAAeA,EACfK,SAAUe,GAAgBf,EAC1BwB,aACAJ,MAAOT,EAAMS,QAAUjB,EAAW,GAAK,MACvCF,QAASA,EACTwB,YAAcC,GACVpB,EAACqB,IAAAC,EACO,IAAAF,EACJtC,MAAmB,aAAZW,OAAyB8B,EAAYzC,EAC5CW,QAASA,EAAO,cACH,cAAcV,IAC3BmC,WAAS,EACTM,MAAO,CAAEC,aAAyB,eAAXjC,EAA0B,GAAK,GACtDP,YAAaA,QAA4BsC,EACzC3B,SAAUA,EACV8B,MAAOf,EACPC,WAAYA,EACZe,UAAW,CACPC,MAAO,IACAR,EAAOS,WACVC,aACIC,EACKC,KAAAC,WAAA,CAAA7B,SAAA,CAAAT,GAAWK,EAACqB,IAAAa,EAAiB,CAAAC,MAAM,UAAUC,KAAM,KACnDhB,EAAOS,WAAWC,iBAK/BO,eAAgB,CACZjC,SAAU,IACVoB,MAAO,CAAEc,UAAW,aAKpCzC,SAAUA,EACVC,UAAWD,EAAYC,GAAa,OAAKyB,EACzCI,UAAW,CACPY,QAAS,CACLhD,cAId,IAMlB,MAAe,aAAXC,EAEIuC,EAAAC,KAAAC,WAAA,CAAA7B,SAAA,CACiB,aAAZX,GACGO,EAAAqB,IAACmB,EAAU,CAAC/C,QAAQ,YAAYgD,UAAU,KAAKN,MAAM,cAChD/B,SAAAtB,IAGRiB,OAKNC,EAAAqB,IAACqB,EAAc,CAAC5D,MAAOA,EAAQsB,SAAAL,KAA+B"}
1
+ {"version":3,"file":"GenericAutocompleteField.cjs.js","sources":["../../../../src/components/ui/Form/GenericAutocompleteField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Autocomplete from '@mui/material/Autocomplete';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { Field, type FieldProps } from 'formik';\nimport { type SyntheticEvent } from 'react';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\n\nexport type Props<T> = {\n label: string;\n fieldName: string;\n options: T[];\n placeholder?: string;\n getOptionLabel?: (option: T) => string;\n validation?: (value: T | T[]) => string | undefined;\n onChange?: (e: SyntheticEvent, value: T | T[]) => void;\n onInputChange?: (e: SyntheticEvent, value: string) => void;\n isOptionEqualToValue?: (option: T, value: T) => boolean;\n onScroll?: (e: React.UIEvent<HTMLUListElement, UIEvent>) => void;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n loading?: boolean;\n required?: boolean;\n multiple?: boolean;\n limitTags?: number;\n};\n\ntype AutocompleteFieldProps<T> = {\n field: FieldProps['field'];\n form: FieldProps['form'];\n fieldName: string;\n options: T[];\n label: string;\n variant: TextFieldProps['variant'];\n placeholder?: string;\n getOptionLabel?: (option: T) => string;\n isOptionEqualToValue?: (option: T, value: T) => boolean;\n onChange?: (e: SyntheticEvent, value: T | T[]) => void;\n onInputChange?: (e: SyntheticEvent, value: string) => void;\n onScroll?: (e: React.UIEvent<HTMLUListElement, UIEvent>) => void;\n layout?: 'horizontal' | 'vertical';\n disabled?: boolean;\n loading?: boolean;\n required?: boolean;\n multiple?: boolean;\n limitTags?: number;\n};\n\nconst AutocompleteFieldComponent = <T,>({\n field,\n form,\n fieldName,\n options,\n label,\n variant,\n placeholder,\n getOptionLabel,\n isOptionEqualToValue,\n onChange,\n onInputChange,\n onScroll,\n layout = 'horizontal',\n disabled = false,\n loading = false,\n required = false,\n multiple = false,\n limitTags,\n}: AutocompleteFieldProps<T>) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Autocomplete\n options={options}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n onChange={(e: SyntheticEvent, value: T[]) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(fieldName, value);\n if (onChange) {\n onChange(e, value);\n }\n }}\n onInputChange={onInputChange}\n disabled={isSubmitting || disabled}\n fullWidth\n value={field.value || (multiple ? [] : null)}\n loading={loading}\n renderInput={(params) => (\n <TextField\n {...params}\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n data-testid={`text-field-${fieldName}`}\n fullWidth\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder || undefined}\n required={required}\n error={showError}\n helperText={helperText}\n slotProps={{\n input: {\n ...params.InputProps,\n endAdornment: (\n <>\n {loading && <CircularProgress color=\"inherit\" size={25} />}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n />\n )}\n multiple={multiple}\n limitTags={multiple ? (limitTags ?? 2) : undefined}\n slotProps={{\n listbox: {\n onScroll,\n },\n }}\n />\n );\n};\n\nconst GenericAutocompleteField = <T,>({\n label,\n fieldName,\n options,\n placeholder,\n getOptionLabel,\n validation,\n onChange,\n onInputChange,\n isOptionEqualToValue,\n onScroll,\n layout = 'horizontal',\n variant = 'outlined',\n disabled = false,\n loading = false,\n required = false,\n multiple = false,\n limitTags = undefined,\n}: Props<T>) => {\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {(fieldProps: FieldProps) => (\n <AutocompleteFieldComponent<T>\n {...fieldProps}\n fieldName={fieldName}\n options={options}\n label={label}\n variant={variant}\n placeholder={placeholder}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n onChange={onChange}\n onInputChange={onInputChange}\n onScroll={onScroll}\n layout={layout}\n disabled={disabled}\n loading={loading}\n required={required}\n multiple={multiple}\n limitTags={limitTags}\n />\n )}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericAutocompleteField;\n"],"names":["AutocompleteFieldComponent","field","form","fieldName","options","label","variant","placeholder","getOptionLabel","isOptionEqualToValue","onChange","onInputChange","onScroll","layout","disabled","loading","required","multiple","limitTags","errors","touched","isSubmitting","fieldError","name","showError","helperText","useRenderValidText","value","_jsx","Autocomplete","e","setFieldValue","fullWidth","renderInput","params","TextField","undefined","style","paddingRight","error","slotProps","input","InputProps","endAdornment","_jsxs","jsxs","_Fragment","children","jsx","CircularProgress","color","size","formHelperText","textAlign","listbox","validation","renderField","Field","validate","fieldProps","Typography","component","FormItemLayout"],"mappings":"uVAmDA,MAAMA,EAA6B,EAC/BC,QACAC,OACAC,YACAC,UACAC,QACAC,UACAC,cACAC,iBACAC,uBACAC,WACAC,gBACAC,WACAC,SAAS,aACTC,YAAW,EACXC,WAAU,EACVC,YAAW,EACXC,YAAW,EACXC,gBAEA,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBnB,EACpCoB,EAAaH,EAAOlB,EAAMsB,MAC1BC,IAAcF,GAAeF,EAAQnB,EAAMsB,MAC3CE,EAAaC,EAAmB,CAClCJ,aACAE,YACAJ,UAAWA,EAAQnB,EAAMsB,MACzBI,MAAO1B,EAAM0B,QAGjB,OACIC,MAACC,EAAY,CACTzB,QAASA,EACTI,eAAgBA,EAChBC,qBAAsBA,EACtBC,SAAU,CAACoB,EAAmBH,KAE1BzB,EAAK6B,cAAc5B,EAAWwB,GAC1BjB,GACAA,EAASoB,EAAGH,EACf,EAELhB,cAAeA,EACfG,SAAUO,GAAgBP,EAC1BkB,aACAL,MAAO1B,EAAM0B,QAAUV,EAAW,GAAK,MACvCF,QAASA,EACTkB,YAAcC,GACVN,EAAAA,IAACO,EACO,IAAAD,EACJ7B,MAAmB,aAAZC,OAAyB8B,EAAY/B,EAC5CC,QAASA,EAAO,cACH,cAAcH,IAC3B6B,WACA,EAAAK,MAAO,CAAEC,aAAyB,eAAXzB,EAA0B,GAAK,GACtDN,YAAaA,QAAe6B,EAC5BpB,SAAUA,EACVuB,MAAOf,EACPC,WAAYA,EACZe,UAAW,CACPC,MAAO,IACAP,EAAOQ,WACVC,aACIC,EACKC,KAAAC,WAAA,CAAAC,SAAA,CAAAhC,GAAWa,EAACoB,IAAAC,EAAiB,CAAAC,MAAM,UAAUC,KAAM,KACnDjB,EAAOQ,WAAWC,iBAI/BS,eAAgB,CACZL,SAAU,IACVV,MAAO,CAAEgB,UAAW,aAKpCpC,SAAUA,EACVC,UAAWD,EAAYC,GAAa,OAAKkB,EACzCI,UAAW,CACPc,QAAS,CACL1C,cAId,iBAG2B,EAC7BP,QACAF,YACAC,UACAG,cACAC,iBACA+C,aACA7C,WACAC,gBACAF,uBACAG,WACAC,SAAS,aACTP,UAAU,WACVQ,YAAW,EACXC,WAAU,EACVC,YAAW,EACXC,YAAW,EACXC,gBAEA,MAAMsC,EAAc,IAEZ5B,MAAC6B,EAAAA,OAAMlC,KAAMpB,EAAWuD,SAAUH,EAAUR,SACtCY,GACE/B,MAAC5B,EAA0B,IACnB2D,EACJxD,UAAWA,EACXC,QAASA,EACTC,MAAOA,EACPC,QAASA,EACTC,YAAaA,EACbC,eAAgBA,EAChBC,qBAAsBA,EACtBC,SAAUA,EACVC,cAAeA,EACfC,SAAUA,EACVC,OAAQA,EACRC,SAAUA,EACVC,QAASA,EACTC,SAAUA,EACVC,SAAUA,EACVC,UAAWA,MAO/B,MAAe,aAAXL,EAEI+B,EAAAC,KAAAC,WAAA,CAAAC,SAAA,CACiB,aAAZzC,GACGsB,EAAAoB,IAACY,EAAU,CAACtD,QAAQ,YAAYuD,UAAU,KAAKX,MAAM,cAChDH,SAAA1C,IAGRmD,OAKN5B,EAAAoB,IAACc,EAAc,CAACzD,MAAOA,EAAQ0C,SAAAS,KAA+B"}
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as t,jsx as r}from"react/jsx-runtime";import o from"@mui/material/Autocomplete";import i from"@mui/material/CircularProgress";import l from"@mui/material/TextField";import a from"@mui/material/Typography";import{Field as n}from"formik";import"react";import d from"../../custom-hooks/useRenderValidText.js";import m from"./FormItemLayout.js";const u=({label:u,fieldName:s,options:p,placeholder:h,getOptionLabel:c,validation:f,onChange:g,onInputChange:v,isOptionEqualToValue:b,onScroll:x,layout:T="horizontal",variant:y="outlined",disabled:I=!1,loading:P=!1,required:C=!1,multiple:q=!1,limitTags:A})=>{const E=()=>r(n,{name:s,validate:f,children:({field:a,form:n})=>{const{errors:m,touched:f,isSubmitting:E}=n,O=m[a.name],V=!!O&&f[a.name],j=d({fieldError:O,showError:V,touched:!!f[a.name],value:a.value});return r(o,{options:p,getOptionLabel:c,isOptionEqualToValue:b,onChange:(e,t)=>{n.setFieldValue(s,t),g&&g(e,t)},onInputChange:v,disabled:E||I,fullWidth:!0,value:a.value||(q?[]:null),loading:P,renderInput:o=>r(l,{...o,label:"standard"===y?void 0:u,variant:y,"data-testid":`text-field-${s}`,fullWidth:!0,style:{paddingRight:"horizontal"===T?16:0},placeholder:h||void 0,required:C,error:V,helperText:j,slotProps:{input:{...o.InputProps,endAdornment:e(t,{children:[P&&r(i,{color:"inherit",size:25}),o.InputProps.endAdornment]})},formHelperText:{children:" ",style:{textAlign:"right"}}}}),multiple:q,limitTags:q?A??2:void 0,slotProps:{listbox:{onScroll:x}}})}});return"vertical"===T?e(t,{children:["standard"===y&&r(a,{variant:"subtitle1",component:"h3",color:"textPrimary",children:u}),E()]}):r(m,{label:u,children:E()})};export{u as default};
1
+ import{jsxs as e,Fragment as o,jsx as l}from"react/jsx-runtime";import t from"@mui/material/Autocomplete";import i from"@mui/material/CircularProgress";import r from"@mui/material/TextField";import a from"@mui/material/Typography";import{Field as n}from"formik";import"react";import d from"../../custom-hooks/useRenderValidText.js";import m from"./FormItemLayout.js";const u=({field:a,form:n,fieldName:m,options:u,label:p,variant:s,placeholder:h,getOptionLabel:c,isOptionEqualToValue:g,onChange:f,onInputChange:b,onScroll:v,layout:T="horizontal",disabled:x=!1,loading:y=!1,required:C=!1,multiple:q=!1,limitTags:I})=>{const{errors:O,touched:E,isSubmitting:P}=n,V=O[a.name],L=!!V&&E[a.name],S=d({fieldError:V,showError:L,touched:!!E[a.name],value:a.value});return l(t,{options:u,getOptionLabel:c,isOptionEqualToValue:g,onChange:(e,o)=>{n.setFieldValue(m,o),f&&f(e,o)},onInputChange:b,disabled:P||x,fullWidth:!0,value:a.value||(q?[]:null),loading:y,renderInput:t=>l(r,{...t,label:"standard"===s?void 0:p,variant:s,"data-testid":`text-field-${m}`,fullWidth:!0,style:{paddingRight:"horizontal"===T?16:0},placeholder:h||void 0,required:C,error:L,helperText:S,slotProps:{input:{...t.InputProps,endAdornment:e(o,{children:[y&&l(i,{color:"inherit",size:25}),t.InputProps.endAdornment]})},formHelperText:{children:" ",style:{textAlign:"right"}}}}),multiple:q,limitTags:q?I??2:void 0,slotProps:{listbox:{onScroll:v}}})},p=({label:t,fieldName:i,options:r,placeholder:d,getOptionLabel:p,validation:s,onChange:h,onInputChange:c,isOptionEqualToValue:g,onScroll:f,layout:b="horizontal",variant:v="outlined",disabled:T=!1,loading:x=!1,required:y=!1,multiple:C=!1,limitTags:q})=>{const I=()=>l(n,{name:i,validate:s,children:e=>l(u,{...e,fieldName:i,options:r,label:t,variant:v,placeholder:d,getOptionLabel:p,isOptionEqualToValue:g,onChange:h,onInputChange:c,onScroll:f,layout:b,disabled:T,loading:x,required:y,multiple:C,limitTags:q})});return"vertical"===b?e(o,{children:["standard"===v&&l(a,{variant:"subtitle1",component:"h3",color:"textPrimary",children:t}),I()]}):l(m,{label:t,children:I()})};export{p as default};
2
2
  //# sourceMappingURL=GenericAutocompleteField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericAutocompleteField.js","sources":["../../../../src/components/ui/Form/GenericAutocompleteField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Autocomplete from '@mui/material/Autocomplete';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { Field, type FieldProps } from 'formik';\nimport { type SyntheticEvent } from 'react';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\n\nexport type Props<T> = {\n label: string;\n fieldName: string;\n options: T[];\n placeholder?: string;\n getOptionLabel?: (option: T) => string;\n validation?: (value: T | T[]) => string | undefined;\n onChange?: (e: SyntheticEvent, value: T | T[]) => void;\n onInputChange?: (e: SyntheticEvent, value: string) => void;\n isOptionEqualToValue?: (option: T, value: T) => boolean;\n onScroll?: (e: React.UIEvent<HTMLUListElement, UIEvent>) => void;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n loading?: boolean;\n required?: boolean;\n multiple?: boolean;\n limitTags?: number;\n};\n\nconst GenericAutocompleteField = <T,>({\n label,\n fieldName,\n options,\n placeholder,\n getOptionLabel,\n validation,\n onChange,\n onInputChange,\n isOptionEqualToValue,\n onScroll,\n layout = 'horizontal',\n variant = 'outlined',\n disabled = false,\n loading = false,\n required = false,\n multiple = false,\n limitTags = undefined,\n}: Props<T>) => {\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Autocomplete\n options={options}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n onChange={(e: SyntheticEvent, value: T[]) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(fieldName, value);\n if (onChange) {\n onChange(e, value);\n }\n }}\n onInputChange={onInputChange}\n disabled={isSubmitting || disabled}\n fullWidth\n value={field.value || (multiple ? [] : null)}\n loading={loading}\n renderInput={(params) => (\n <TextField\n {...params}\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n data-testid={`text-field-${fieldName}`}\n fullWidth\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder ? placeholder : undefined}\n required={required}\n error={showError}\n helperText={helperText}\n slotProps={{\n input: {\n ...params.InputProps,\n endAdornment: (\n <>\n {loading && <CircularProgress color=\"inherit\" size={25} />}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n />\n )}\n multiple={multiple}\n limitTags={multiple ? (limitTags ?? 2) : undefined}\n slotProps={{\n listbox: {\n onScroll,\n },\n }}\n />\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericAutocompleteField;\n"],"names":["GenericAutocompleteField","label","fieldName","options","placeholder","getOptionLabel","validation","onChange","onInputChange","isOptionEqualToValue","onScroll","layout","variant","disabled","loading","required","multiple","limitTags","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","Autocomplete","e","setFieldValue","fullWidth","renderInput","params","TextField","undefined","style","paddingRight","error","slotProps","input","InputProps","endAdornment","_jsxs","_Fragment","CircularProgress","color","size","formHelperText","textAlign","listbox","Typography","component","FormItemLayout"],"mappings":"+WA8BM,MAAAA,EAA2B,EAC7BC,QACAC,YACAC,UACAC,cACAC,iBACAC,aACAC,WACAC,gBACAC,uBACAC,WACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,WAAU,EACVC,YAAW,EACXC,YAAW,EACXC,gBAEA,MAAMC,EAAc,IAEZC,EAACC,GAAMC,KAAMnB,EAAWoB,SAAUhB,EAAUiB,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACId,EAACe,EAAY,CACT/B,QAASA,EACTE,eAAgBA,EAChBI,qBAAsBA,EACtBF,SAAU,CAAC4B,EAAmBF,KAE1BR,EAAKW,cAAclC,EAAW+B,GAC1B1B,GACAA,EAAS4B,EAAGF,EACf,EAELzB,cAAeA,EACfK,SAAUe,GAAgBf,EAC1BwB,aACAJ,MAAOT,EAAMS,QAAUjB,EAAW,GAAK,MACvCF,QAASA,EACTwB,YAAcC,GACVpB,EAACqB,EACO,IAAAD,EACJtC,MAAmB,aAAZW,OAAyB6B,EAAYxC,EAC5CW,QAASA,EAAO,cACH,cAAcV,IAC3BmC,WAAS,EACTK,MAAO,CAAEC,aAAyB,eAAXhC,EAA0B,GAAK,GACtDP,YAAaA,QAA4BqC,EACzC1B,SAAUA,EACV6B,MAAOd,EACPC,WAAYA,EACZc,UAAW,CACPC,MAAO,IACAP,EAAOQ,WACVC,aACIC,EACKC,EAAA,CAAA3B,SAAA,CAAAT,GAAWK,EAACgC,EAAiB,CAAAC,MAAM,UAAUC,KAAM,KACnDd,EAAOQ,WAAWC,iBAK/BM,eAAgB,CACZ/B,SAAU,IACVmB,MAAO,CAAEa,UAAW,aAKpCvC,SAAUA,EACVC,UAAWD,EAAYC,GAAa,OAAKwB,EACzCI,UAAW,CACPW,QAAS,CACL9C,cAId,IAMlB,MAAe,aAAXC,EAEIsC,EAAAC,EAAA,CAAA3B,SAAA,CACiB,aAAZX,GACGO,EAACsC,EAAU,CAAC7C,QAAQ,YAAY8C,UAAU,KAAKN,MAAM,cAChD7B,SAAAtB,IAGRiB,OAKNC,EAACwC,EAAc,CAAC1D,MAAOA,EAAQsB,SAAAL,KAA+B"}
1
+ {"version":3,"file":"GenericAutocompleteField.js","sources":["../../../../src/components/ui/Form/GenericAutocompleteField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Autocomplete from '@mui/material/Autocomplete';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { Field, type FieldProps } from 'formik';\nimport { type SyntheticEvent } from 'react';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\n\nexport type Props<T> = {\n label: string;\n fieldName: string;\n options: T[];\n placeholder?: string;\n getOptionLabel?: (option: T) => string;\n validation?: (value: T | T[]) => string | undefined;\n onChange?: (e: SyntheticEvent, value: T | T[]) => void;\n onInputChange?: (e: SyntheticEvent, value: string) => void;\n isOptionEqualToValue?: (option: T, value: T) => boolean;\n onScroll?: (e: React.UIEvent<HTMLUListElement, UIEvent>) => void;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n loading?: boolean;\n required?: boolean;\n multiple?: boolean;\n limitTags?: number;\n};\n\ntype AutocompleteFieldProps<T> = {\n field: FieldProps['field'];\n form: FieldProps['form'];\n fieldName: string;\n options: T[];\n label: string;\n variant: TextFieldProps['variant'];\n placeholder?: string;\n getOptionLabel?: (option: T) => string;\n isOptionEqualToValue?: (option: T, value: T) => boolean;\n onChange?: (e: SyntheticEvent, value: T | T[]) => void;\n onInputChange?: (e: SyntheticEvent, value: string) => void;\n onScroll?: (e: React.UIEvent<HTMLUListElement, UIEvent>) => void;\n layout?: 'horizontal' | 'vertical';\n disabled?: boolean;\n loading?: boolean;\n required?: boolean;\n multiple?: boolean;\n limitTags?: number;\n};\n\nconst AutocompleteFieldComponent = <T,>({\n field,\n form,\n fieldName,\n options,\n label,\n variant,\n placeholder,\n getOptionLabel,\n isOptionEqualToValue,\n onChange,\n onInputChange,\n onScroll,\n layout = 'horizontal',\n disabled = false,\n loading = false,\n required = false,\n multiple = false,\n limitTags,\n}: AutocompleteFieldProps<T>) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Autocomplete\n options={options}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n onChange={(e: SyntheticEvent, value: T[]) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(fieldName, value);\n if (onChange) {\n onChange(e, value);\n }\n }}\n onInputChange={onInputChange}\n disabled={isSubmitting || disabled}\n fullWidth\n value={field.value || (multiple ? [] : null)}\n loading={loading}\n renderInput={(params) => (\n <TextField\n {...params}\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n data-testid={`text-field-${fieldName}`}\n fullWidth\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder || undefined}\n required={required}\n error={showError}\n helperText={helperText}\n slotProps={{\n input: {\n ...params.InputProps,\n endAdornment: (\n <>\n {loading && <CircularProgress color=\"inherit\" size={25} />}\n {params.InputProps.endAdornment}\n </>\n ),\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n />\n )}\n multiple={multiple}\n limitTags={multiple ? (limitTags ?? 2) : undefined}\n slotProps={{\n listbox: {\n onScroll,\n },\n }}\n />\n );\n};\n\nconst GenericAutocompleteField = <T,>({\n label,\n fieldName,\n options,\n placeholder,\n getOptionLabel,\n validation,\n onChange,\n onInputChange,\n isOptionEqualToValue,\n onScroll,\n layout = 'horizontal',\n variant = 'outlined',\n disabled = false,\n loading = false,\n required = false,\n multiple = false,\n limitTags = undefined,\n}: Props<T>) => {\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {(fieldProps: FieldProps) => (\n <AutocompleteFieldComponent<T>\n {...fieldProps}\n fieldName={fieldName}\n options={options}\n label={label}\n variant={variant}\n placeholder={placeholder}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n onChange={onChange}\n onInputChange={onInputChange}\n onScroll={onScroll}\n layout={layout}\n disabled={disabled}\n loading={loading}\n required={required}\n multiple={multiple}\n limitTags={limitTags}\n />\n )}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericAutocompleteField;\n"],"names":["AutocompleteFieldComponent","field","form","fieldName","options","label","variant","placeholder","getOptionLabel","isOptionEqualToValue","onChange","onInputChange","onScroll","layout","disabled","loading","required","multiple","limitTags","errors","touched","isSubmitting","fieldError","name","showError","helperText","useRenderValidText","value","_jsx","Autocomplete","e","setFieldValue","fullWidth","renderInput","params","TextField","undefined","style","paddingRight","error","slotProps","input","InputProps","endAdornment","_jsxs","_Fragment","children","CircularProgress","color","size","formHelperText","textAlign","listbox","GenericAutocompleteField","validation","renderField","Field","validate","fieldProps","Typography","component","FormItemLayout"],"mappings":"+WAmDA,MAAMA,EAA6B,EAC/BC,QACAC,OACAC,YACAC,UACAC,QACAC,UACAC,cACAC,iBACAC,uBACAC,WACAC,gBACAC,WACAC,SAAS,aACTC,YAAW,EACXC,WAAU,EACVC,YAAW,EACXC,YAAW,EACXC,gBAEA,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBnB,EACpCoB,EAAaH,EAAOlB,EAAMsB,MAC1BC,IAAcF,GAAeF,EAAQnB,EAAMsB,MAC3CE,EAAaC,EAAmB,CAClCJ,aACAE,YACAJ,UAAWA,EAAQnB,EAAMsB,MACzBI,MAAO1B,EAAM0B,QAGjB,OACIC,EAACC,EAAY,CACTzB,QAASA,EACTI,eAAgBA,EAChBC,qBAAsBA,EACtBC,SAAU,CAACoB,EAAmBH,KAE1BzB,EAAK6B,cAAc5B,EAAWwB,GAC1BjB,GACAA,EAASoB,EAAGH,EACf,EAELhB,cAAeA,EACfG,SAAUO,GAAgBP,EAC1BkB,aACAL,MAAO1B,EAAM0B,QAAUV,EAAW,GAAK,MACvCF,QAASA,EACTkB,YAAcC,GACVN,EAACO,EACO,IAAAD,EACJ7B,MAAmB,aAAZC,OAAyB8B,EAAY/B,EAC5CC,QAASA,EAAO,cACH,cAAcH,IAC3B6B,WACA,EAAAK,MAAO,CAAEC,aAAyB,eAAXzB,EAA0B,GAAK,GACtDN,YAAaA,QAAe6B,EAC5BpB,SAAUA,EACVuB,MAAOf,EACPC,WAAYA,EACZe,UAAW,CACPC,MAAO,IACAP,EAAOQ,WACVC,aACIC,EACKC,EAAA,CAAAC,SAAA,CAAA/B,GAAWa,EAACmB,EAAiB,CAAAC,MAAM,UAAUC,KAAM,KACnDf,EAAOQ,WAAWC,iBAI/BO,eAAgB,CACZJ,SAAU,IACVT,MAAO,CAAEc,UAAW,aAKpClC,SAAUA,EACVC,UAAWD,EAAYC,GAAa,OAAKkB,EACzCI,UAAW,CACPY,QAAS,CACLxC,cAId,EAGAyC,EAA2B,EAC7BhD,QACAF,YACAC,UACAG,cACAC,iBACA8C,aACA5C,WACAC,gBACAF,uBACAG,WACAC,SAAS,aACTP,UAAU,WACVQ,YAAW,EACXC,WAAU,EACVC,YAAW,EACXC,YAAW,EACXC,gBAEA,MAAMqC,EAAc,IAEZ3B,EAAC4B,GAAMjC,KAAMpB,EAAWsD,SAAUH,EAAUR,SACtCY,GACE9B,EAAC5B,EAA0B,IACnB0D,EACJvD,UAAWA,EACXC,QAASA,EACTC,MAAOA,EACPC,QAASA,EACTC,YAAaA,EACbC,eAAgBA,EAChBC,qBAAsBA,EACtBC,SAAUA,EACVC,cAAeA,EACfC,SAAUA,EACVC,OAAQA,EACRC,SAAUA,EACVC,QAASA,EACTC,SAAUA,EACVC,SAAUA,EACVC,UAAWA,MAO/B,MAAe,aAAXL,EAEI+B,EAAAC,EAAA,CAAAC,SAAA,CACiB,aAAZxC,GACGsB,EAAC+B,EAAU,CAACrD,QAAQ,YAAYsD,UAAU,KAAKZ,MAAM,cAChDF,SAAAzC,IAGRkD,OAKN3B,EAACiC,EAAc,CAACxD,MAAOA,EAAQyC,SAAAS,KAA+B"}
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("react/jsx-runtime"),i=require("@mui/material/Button"),e=require("formik");module.exports=({fields:r,onSubmit:a,handleError:n,submitButtonText:u})=>{const s=r.reduce(((t,i)=>(t[i.fieldName]=i.defaultValue,t)),{});return t.jsx(e.Formik,{initialValues:s,onSubmit:async t=>{try{await a(t)}catch(t){n&&n(t)}},children:({isSubmitting:a})=>t.jsxs(e.Form,{children:[r.map(((i,e)=>t.jsx("div",{children:i.component},e))),t.jsx(i,{variant:"contained",type:"submit",disabled:a,sx:{marginTop:4},"data-testid":"submit-form-button",children:u})]})})};
1
+ "use strict";var e=require("react/jsx-runtime"),i=require("@mui/material/Button"),t=require("formik");module.exports=({fields:r,onSubmit:a,handleError:n,submitButtonText:u})=>{const s=r.reduce(((e,i)=>(e[i.fieldName]=i.defaultValue,e)),{});return e.jsx(t.Formik,{initialValues:s,onSubmit:async e=>{try{await a(e)}catch(e){n&&n(e)}},children:({isSubmitting:a})=>e.jsxs(t.Form,{children:[r.map(((i,t)=>e.jsx("div",{children:i.component},`field_${i.fieldName}_${t}`))),e.jsx(i,{variant:"contained",type:"submit",disabled:a,sx:{marginTop:4},"data-testid":"submit-form-button",children:u})]})})};
2
2
  //# sourceMappingURL=GenericFormContainer.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFormContainer.cjs.js","sources":["../../../../src/components/ui/Form/GenericFormContainer.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport { Form, Formik } from 'formik';\n\ntype GenericFormContainerProps = {\n fields: {\n fieldName: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultValue: any;\n component: React.ReactNode;\n }[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSubmit: (values: any) => Promise<void>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleError?: (error: any) => void;\n submitButtonText: string;\n};\n\nconst GenericFormContainer = ({ fields, onSubmit, handleError, submitButtonText }: GenericFormContainerProps) => {\n const initialValues = fields.reduce((acc, field) => {\n acc[field.fieldName] = field.defaultValue;\n return acc;\n }, {});\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={async (values) => {\n try {\n await onSubmit(values);\n } catch (error) {\n if (handleError) {\n handleError(error);\n }\n }\n }}\n >\n {({ isSubmitting }) => (\n <Form>\n {fields.map((field, index) => (\n <div key={index}>{field.component}</div>\n ))}\n\n <Button variant=\"contained\" type=\"submit\" disabled={isSubmitting} sx={{ marginTop: 4 }} data-testid=\"submit-form-button\">\n {submitButtonText}\n </Button>\n </Form>\n )}\n </Formik>\n );\n};\n\nexport default GenericFormContainer;\n"],"names":["fields","onSubmit","handleError","submitButtonText","initialValues","reduce","acc","field","fieldName","defaultValue","_jsx","Formik","async","values","error","children","isSubmitting","_jsxs","jsxs","Form","map","index","jsx","component","Button","variant","type","disabled","sx","marginTop"],"mappings":"qHAiB6B,EAAGA,SAAQC,WAAUC,cAAaC,uBAC3D,MAAMC,EAAgBJ,EAAOK,QAAO,CAACC,EAAKC,KACtCD,EAAIC,EAAMC,WAAaD,EAAME,aACtBH,IACR,CAAE,GAEL,OACII,EAAAA,IAACC,EAAAA,OAAM,CACHP,cAAeA,EACfH,SAAUW,MAAOC,IACb,UACUZ,EAASY,EAClB,CAAC,MAAOC,GACDZ,GACAA,EAAYY,EAEnB,GAGJC,SAAA,EAAGC,kBACAC,EAAAC,KAACC,OAAI,CAAAJ,SAAA,CACAf,EAAOoB,KAAI,CAACb,EAAOc,IAChBX,EAAAY,IAAA,MAAA,CAAAP,SAAkBR,EAAMgB,WAAdF,KAGdX,EAAAA,IAACc,EAAO,CAAAC,QAAQ,YAAYC,KAAK,SAASC,SAAUX,EAAcY,GAAI,CAAEC,UAAW,GAAiB,cAAA,qBAC/Fd,SAAAZ,QAKnB"}
1
+ {"version":3,"file":"GenericFormContainer.cjs.js","sources":["../../../../src/components/ui/Form/GenericFormContainer.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport { Form, Formik } from 'formik';\n\ntype GenericFormContainerProps = {\n fields: {\n fieldName: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultValue: any;\n component: React.ReactNode;\n }[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSubmit: (values: any) => Promise<void>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleError?: (error: any) => void;\n submitButtonText: string;\n};\n\nconst GenericFormContainer = ({ fields, onSubmit, handleError, submitButtonText }: GenericFormContainerProps) => {\n const initialValues = fields.reduce((acc, field) => {\n acc[field.fieldName] = field.defaultValue;\n return acc;\n }, {});\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={async (values) => {\n try {\n await onSubmit(values);\n } catch (error) {\n if (handleError) {\n handleError(error);\n }\n }\n }}\n >\n {({ isSubmitting }) => (\n <Form>\n {fields.map((field, index) => (\n <div key={`field_${field.fieldName}_${index}`}>{field.component}</div>\n ))}\n\n <Button variant=\"contained\" type=\"submit\" disabled={isSubmitting} sx={{ marginTop: 4 }} data-testid=\"submit-form-button\">\n {submitButtonText}\n </Button>\n </Form>\n )}\n </Formik>\n );\n};\n\nexport default GenericFormContainer;\n"],"names":["fields","onSubmit","handleError","submitButtonText","initialValues","reduce","acc","field","fieldName","defaultValue","_jsx","Formik","async","values","error","children","isSubmitting","_jsxs","jsxs","Form","map","index","component","jsx","Button","variant","type","disabled","sx","marginTop"],"mappings":"qHAiB6B,EAAGA,SAAQC,WAAUC,cAAaC,uBAC3D,MAAMC,EAAgBJ,EAAOK,QAAO,CAACC,EAAKC,KACtCD,EAAIC,EAAMC,WAAaD,EAAME,aACtBH,IACR,CAAE,GAEL,OACII,EAAAA,IAACC,EAAAA,OAAM,CACHP,cAAeA,EACfH,SAAUW,MAAOC,IACb,UACUZ,EAASY,EAClB,CAAC,MAAOC,GACDZ,GACAA,EAAYY,EAEnB,GAGJC,SAAA,EAAGC,kBACAC,EAACC,KAAAC,OACI,CAAAJ,SAAA,CAAAf,EAAOoB,KAAI,CAACb,EAAOc,IAChBX,MAAA,MAAA,CAAAK,SAAgDR,EAAMe,WAA5C,SAASf,EAAMC,aAAaa,OAG1CX,EAAAa,IAACC,EAAO,CAAAC,QAAQ,YAAYC,KAAK,SAASC,SAAUX,EAAcY,GAAI,CAAEC,UAAW,GAAG,cAAc,qBAAoBd,SACnHZ,QAKnB"}
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as i}from"react/jsx-runtime";import e from"@mui/material/Button";import{Formik as r,Form as a}from"formik";const n=({fields:n,onSubmit:m,handleError:o,submitButtonText:u})=>{const d=n.reduce(((t,i)=>(t[i.fieldName]=i.defaultValue,t)),{});return t(r,{initialValues:d,onSubmit:async t=>{try{await m(t)}catch(t){o&&o(t)}},children:({isSubmitting:r})=>i(a,{children:[n.map(((i,e)=>t("div",{children:i.component},e))),t(e,{variant:"contained",type:"submit",disabled:r,sx:{marginTop:4},"data-testid":"submit-form-button",children:u})]})})};export{n as default};
1
+ import{jsx as t,jsxs as i}from"react/jsx-runtime";import e from"@mui/material/Button";import{Formik as r,Form as a}from"formik";const n=({fields:n,onSubmit:m,handleError:o,submitButtonText:d})=>{const u=n.reduce(((t,i)=>(t[i.fieldName]=i.defaultValue,t)),{});return t(r,{initialValues:u,onSubmit:async t=>{try{await m(t)}catch(t){o&&o(t)}},children:({isSubmitting:r})=>i(a,{children:[n.map(((i,e)=>t("div",{children:i.component},`field_${i.fieldName}_${e}`))),t(e,{variant:"contained",type:"submit",disabled:r,sx:{marginTop:4},"data-testid":"submit-form-button",children:d})]})})};export{n as default};
2
2
  //# sourceMappingURL=GenericFormContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFormContainer.js","sources":["../../../../src/components/ui/Form/GenericFormContainer.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport { Form, Formik } from 'formik';\n\ntype GenericFormContainerProps = {\n fields: {\n fieldName: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultValue: any;\n component: React.ReactNode;\n }[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSubmit: (values: any) => Promise<void>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleError?: (error: any) => void;\n submitButtonText: string;\n};\n\nconst GenericFormContainer = ({ fields, onSubmit, handleError, submitButtonText }: GenericFormContainerProps) => {\n const initialValues = fields.reduce((acc, field) => {\n acc[field.fieldName] = field.defaultValue;\n return acc;\n }, {});\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={async (values) => {\n try {\n await onSubmit(values);\n } catch (error) {\n if (handleError) {\n handleError(error);\n }\n }\n }}\n >\n {({ isSubmitting }) => (\n <Form>\n {fields.map((field, index) => (\n <div key={index}>{field.component}</div>\n ))}\n\n <Button variant=\"contained\" type=\"submit\" disabled={isSubmitting} sx={{ marginTop: 4 }} data-testid=\"submit-form-button\">\n {submitButtonText}\n </Button>\n </Form>\n )}\n </Formik>\n );\n};\n\nexport default GenericFormContainer;\n"],"names":["GenericFormContainer","fields","onSubmit","handleError","submitButtonText","initialValues","reduce","acc","field","fieldName","defaultValue","_jsx","Formik","async","values","error","children","isSubmitting","_jsxs","Form","map","index","component","Button","variant","type","disabled","sx","marginTop"],"mappings":"gIAiBA,MAAMA,EAAuB,EAAGC,SAAQC,WAAUC,cAAaC,uBAC3D,MAAMC,EAAgBJ,EAAOK,QAAO,CAACC,EAAKC,KACtCD,EAAIC,EAAMC,WAAaD,EAAME,aACtBH,IACR,CAAE,GAEL,OACII,EAACC,EAAM,CACHP,cAAeA,EACfH,SAAUW,MAAOC,IACb,UACUZ,EAASY,EAClB,CAAC,MAAOC,GACDZ,GACAA,EAAYY,EAEnB,GAGJC,SAAA,EAAGC,kBACAC,EAACC,EAAI,CAAAH,SAAA,CACAf,EAAOmB,KAAI,CAACZ,EAAOa,IAChBV,EAAA,MAAA,CAAAK,SAAkBR,EAAMc,WAAdD,KAGdV,EAACY,EAAO,CAAAC,QAAQ,YAAYC,KAAK,SAASC,SAAUT,EAAcU,GAAI,CAAEC,UAAW,GAAiB,cAAA,qBAC/FZ,SAAAZ,QAKnB"}
1
+ {"version":3,"file":"GenericFormContainer.js","sources":["../../../../src/components/ui/Form/GenericFormContainer.tsx"],"sourcesContent":["import Button from '@mui/material/Button';\nimport { Form, Formik } from 'formik';\n\ntype GenericFormContainerProps = {\n fields: {\n fieldName: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultValue: any;\n component: React.ReactNode;\n }[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSubmit: (values: any) => Promise<void>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handleError?: (error: any) => void;\n submitButtonText: string;\n};\n\nconst GenericFormContainer = ({ fields, onSubmit, handleError, submitButtonText }: GenericFormContainerProps) => {\n const initialValues = fields.reduce((acc, field) => {\n acc[field.fieldName] = field.defaultValue;\n return acc;\n }, {});\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={async (values) => {\n try {\n await onSubmit(values);\n } catch (error) {\n if (handleError) {\n handleError(error);\n }\n }\n }}\n >\n {({ isSubmitting }) => (\n <Form>\n {fields.map((field, index) => (\n <div key={`field_${field.fieldName}_${index}`}>{field.component}</div>\n ))}\n\n <Button variant=\"contained\" type=\"submit\" disabled={isSubmitting} sx={{ marginTop: 4 }} data-testid=\"submit-form-button\">\n {submitButtonText}\n </Button>\n </Form>\n )}\n </Formik>\n );\n};\n\nexport default GenericFormContainer;\n"],"names":["GenericFormContainer","fields","onSubmit","handleError","submitButtonText","initialValues","reduce","acc","field","fieldName","defaultValue","_jsx","Formik","async","values","error","children","isSubmitting","_jsxs","Form","map","index","component","Button","variant","type","disabled","sx","marginTop"],"mappings":"gIAiBA,MAAMA,EAAuB,EAAGC,SAAQC,WAAUC,cAAaC,uBAC3D,MAAMC,EAAgBJ,EAAOK,QAAO,CAACC,EAAKC,KACtCD,EAAIC,EAAMC,WAAaD,EAAME,aACtBH,IACR,CAAE,GAEL,OACII,EAACC,EAAM,CACHP,cAAeA,EACfH,SAAUW,MAAOC,IACb,UACUZ,EAASY,EAClB,CAAC,MAAOC,GACDZ,GACAA,EAAYY,EAEnB,GAGJC,SAAA,EAAGC,kBACAC,EAACC,EACI,CAAAH,SAAA,CAAAf,EAAOmB,KAAI,CAACZ,EAAOa,IAChBV,EAAA,MAAA,CAAAK,SAAgDR,EAAMc,WAA5C,SAASd,EAAMC,aAAaY,OAG1CV,EAACY,EAAO,CAAAC,QAAQ,YAAYC,KAAK,SAASC,SAAUT,EAAcU,GAAI,CAAEC,UAAW,GAAG,cAAc,qBAAoBZ,SACnHZ,QAKnB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime");require("react");var r=require("formik"),t=require("@mui/material/TextField"),i=require("../../custom-hooks/useRenderValidText.cjs.js"),a=require("./FormItemLayout.cjs.js"),l=require("@mui/material/Typography"),o=require("@mui/material/InputAdornment");module.exports=({label:n,fieldName:d,placeholder:s,validation:u,onChange:m,multiline:h,minRows:c,maxRows:v,layout:p="horizontal",variant:x="standard",disabled:g=!1,required:j=!1,showHelperTextWhenValid:f=!1,startIcon:q,endIcon:b,value:y,type:w="text"})=>{const T=!!d,I=(r,i,a,l,u)=>e.jsx(t,{label:"standard"===x?void 0:n,variant:x,value:y??r,"data-testid":`text-field-${d??n.toLowerCase().replace(/\s+/g,"-")}`,autoComplete:"off",fullWidth:!0,multiline:h,minRows:c??(h?3:void 0),maxRows:v??(h?10:void 0),style:{paddingRight:"horizontal"===p?16:0},placeholder:s||void 0,disabled:i||g,required:j,error:a,helperText:a||f?l:void 0,onChange:e=>{"number"===w&&isNaN(Number(e.target.value))||(u&&u(d,e.target.value),m&&m(e))},slotProps:{htmlInput:{style:{paddingTop:"outlined"!==x?0:void 0,height:"1.1876em"}},formHelperText:{children:" ",style:{textAlign:"right"}}},InputProps:{startAdornment:q?e.jsx(o,{position:"start",children:q}):void 0,endAdornment:b?e.jsx(o,{position:"end",children:b}):void 0}}),R=()=>e.jsx(r.Field,{name:d,validate:u,children:({field:e,form:r})=>{const{errors:t,touched:a,isSubmitting:l}=r,o=t[e.name],n=!!o&&a[e.name],d=i({fieldError:o,showError:n,touched:!!a[e.name],value:e.value});return I(e.value,l,n,d,r.setFieldValue)}});return"vertical"===p?e.jsxs(e.Fragment,{children:["standard"===x&&e.jsx(l,{variant:"subtitle1",component:"h3",color:"textPrimary",children:n}),T?R():I()]}):e.jsx(a,{label:n,children:T?R():I()})};
1
+ "use strict";var e=require("react/jsx-runtime");require("react");var t=require("formik"),i=require("@mui/material/TextField"),r=require("../../custom-hooks/useRenderValidText.cjs.js"),a=require("./FormItemLayout.cjs.js"),l=require("@mui/material/Typography"),o=require("@mui/material/InputAdornment");const n=({field:t,form:a,fieldName:l,label:n,placeholder:d,onChange:s,multiline:u,minRows:m,maxRows:h,layout:p="horizontal",variant:c="standard",disabled:v=!1,required:x=!1,showHelperTextWhenValid:g=!1,startIcon:f,endIcon:j,value:w,type:y="text"})=>{const{errors:b,touched:q,isSubmitting:R}=a,I=b[t.name],T=!!I&&q[t.name],C=r({fieldError:I,showError:T,touched:!!q[t.name],value:t.value});return e.jsx(i,{label:"standard"===c?void 0:n,variant:c,value:w??t.value,"data-testid":`text-field-${l??n.toLowerCase().replace(/\s+/g,"-")}`,autoComplete:"off",fullWidth:!0,multiline:u,minRows:m??(u?3:void 0),maxRows:h??(u?10:void 0),style:{paddingRight:"horizontal"===p?16:0},placeholder:d||void 0,disabled:R||v,required:x,error:T,helperText:T||g?C:void 0,onChange:e=>{"number"===y&&isNaN(Number(e.target.value))||(a.setFieldValue(l,e.target.value),s&&s(e))},slotProps:{htmlInput:{style:{paddingTop:"outlined"!==c?0:void 0,height:"1.1876em"}},formHelperText:{children:" ",style:{textAlign:"right"}}},InputProps:{startAdornment:f?e.jsx(o,{position:"start",children:f}):void 0,endAdornment:j?e.jsx(o,{position:"end",children:j}):void 0}})};module.exports=({label:r,fieldName:d,placeholder:s,validation:u,onChange:m,multiline:h,minRows:p,maxRows:c,layout:v="horizontal",variant:x="standard",disabled:g=!1,required:f=!1,showHelperTextWhenValid:j=!1,startIcon:w,endIcon:y,value:b,type:q="text"})=>{const R=!!d,I=()=>R?e.jsx(t.Field,{name:d,validate:u,children:t=>e.jsx(n,{...t,fieldName:d,label:r,placeholder:s,onChange:m,multiline:h,minRows:p,maxRows:c,layout:v,variant:x,disabled:g,required:f,showHelperTextWhenValid:j,startIcon:w,endIcon:y,value:b,type:q})}):e.jsx(i,{label:"standard"===x?void 0:r,variant:x,value:b,"data-testid":`text-field-${d??r.toLowerCase().replace(/\s+/g,"-")}`,autoComplete:"off",fullWidth:!0,multiline:h,minRows:p??(h?3:void 0),maxRows:c??(h?10:void 0),style:{paddingRight:"horizontal"===v?16:0},placeholder:s||void 0,disabled:g,required:f,onChange:m,slotProps:{htmlInput:{style:{paddingTop:"outlined"!==x?0:void 0,height:"1.1876em"}},formHelperText:{children:" ",style:{textAlign:"right"}}},InputProps:{startAdornment:w?e.jsx(o,{position:"start",children:w}):void 0,endAdornment:y?e.jsx(o,{position:"end",children:y}):void 0}});return"vertical"===v?e.jsxs(e.Fragment,{children:["standard"===x&&e.jsx(l,{variant:"subtitle1",component:"h3",color:"textPrimary",children:r}),I()]}):e.jsx(a,{label:r,children:I()})};
2
2
  //# sourceMappingURL=GenericTextField.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericTextField.cjs.js","sources":["../../../../src/components/ui/Form/GenericTextField.tsx"],"sourcesContent":["import { type ChangeEvent, type ReactNode } from 'react';\n\nimport { type FieldProps, Field } from 'formik';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\nimport Typography from '@mui/material/Typography';\nimport InputAdornment from '@mui/material/InputAdornment';\n\ntype Props = {\n label: string;\n fieldName?: string;\n placeholder?: string;\n validation?: (value: string) => string | undefined;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n multiline?: boolean;\n minRows?: number;\n maxRows?: number;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n required?: boolean;\n showHelperTextWhenValid?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n value?: string;\n type?: 'number' | 'text';\n};\n\nconst GenericTextField = ({\n label,\n fieldName = undefined,\n placeholder,\n validation,\n onChange,\n multiline,\n minRows,\n maxRows,\n layout = 'horizontal',\n variant = 'standard',\n disabled = false,\n required = false,\n showHelperTextWhenValid = false,\n startIcon = undefined,\n endIcon = undefined,\n value,\n type = 'text',\n}: Props) => {\n const useFormik = !!fieldName;\n\n const renderField = (\n formikValue?: string,\n isSubmitting?: boolean,\n showError?: boolean,\n helperText?: string | ReactNode,\n setFieldValue?: (name: string, value: string) => void,\n ) => {\n return (\n <TextField\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n value={value ?? formikValue}\n data-testid={`text-field-${fieldName ?? label.toLowerCase().replace(/\\s+/g, '-')}`}\n autoComplete=\"off\"\n fullWidth\n multiline={multiline}\n minRows={minRows ?? (multiline ? 3 : undefined)}\n maxRows={maxRows ?? (multiline ? 10 : undefined)}\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder ? placeholder : undefined}\n disabled={isSubmitting || disabled}\n required={required}\n error={showError}\n helperText={showError ? helperText : showHelperTextWhenValid ? helperText : undefined}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (type === 'number' && isNaN(Number(e.target.value))) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n setFieldValue && setFieldValue(fieldName, e.target.value);\n if (onChange) {\n onChange(e);\n }\n }}\n slotProps={{\n htmlInput: {\n style: {\n paddingTop: variant !== 'outlined' ? 0 : undefined,\n height: '1.1876em',\n },\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n InputProps={{\n startAdornment: startIcon ? <InputAdornment position=\"start\">{startIcon}</InputAdornment> : undefined,\n endAdornment: endIcon ? <InputAdornment position=\"end\">{endIcon}</InputAdornment> : undefined,\n }}\n />\n );\n };\n\n const renderFormikField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return renderField(field.value as string, isSubmitting, showError, helperText, form.setFieldValue);\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {useFormik ? renderFormikField() : renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{useFormik ? renderFormikField() : renderField()}</FormItemLayout>;\n};\n\nexport default GenericTextField;\n"],"names":["label","fieldName","placeholder","validation","onChange","multiline","minRows","maxRows","layout","variant","disabled","required","showHelperTextWhenValid","startIcon","endIcon","value","type","useFormik","renderField","formikValue","isSubmitting","showError","helperText","setFieldValue","_jsx","TextField","undefined","toLowerCase","replace","autoComplete","fullWidth","style","paddingRight","error","e","isNaN","Number","target","slotProps","htmlInput","paddingTop","height","formHelperText","children","textAlign","InputProps","startAdornment","InputAdornment","position","endAdornment","renderFormikField","Field","name","validate","field","form","errors","touched","fieldError","useRenderValidText","_jsxs","_Fragment","Typography","component","color","FormItemLayout"],"mappings":"4TA6ByB,EACrBA,QACAC,YACAC,cACAC,aACAC,WACAC,YACAC,UACAC,UACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,YAAW,EACXC,2BAA0B,EAC1BC,YACAC,UACAC,QACAC,OAAO,WAEP,MAAMC,IAAchB,EAEdiB,EAAc,CAChBC,EACAC,EACAC,EACAC,EACAC,IAGIC,EAAAA,IAACC,EAAS,CACNzB,MAAmB,aAAZS,OAAyBiB,EAAY1B,EAC5CS,QAASA,EACTM,MAAOA,GAASI,EACH,cAAA,cAAclB,GAAaD,EAAM2B,cAAcC,QAAQ,OAAQ,OAC5EC,aAAa,MACbC,aACAzB,UAAWA,EACXC,QAASA,IAAYD,EAAY,OAAIqB,GACrCnB,QAASA,IAAYF,EAAY,QAAKqB,GACtCK,MAAO,CAAEC,aAAyB,eAAXxB,EAA0B,GAAK,GACtDN,YAAaA,QAA4BwB,EACzChB,SAAUU,GAAgBV,EAC1BC,SAAUA,EACVsB,MAAOZ,EACPC,WAAYD,GAAyBT,EAAbU,OAAoDI,EAC5EtB,SAAW8B,IACM,WAATlB,GAAqBmB,MAAMC,OAAOF,EAAEG,OAAOtB,UAK/CQ,GAAiBA,EAActB,EAAWiC,EAAEG,OAAOtB,OAC/CX,GACAA,EAAS8B,GACZ,EAELI,UAAW,CACPC,UAAW,CACPR,MAAO,CACHS,WAAwB,aAAZ/B,EAAyB,OAAIiB,EACzCe,OAAQ,aAGhBC,eAAgB,CACZC,SAAU,IACVZ,MAAO,CAAEa,UAAW,WAG5BC,WAAY,CACRC,eAAgBjC,EAAYW,MAACuB,EAAc,CAACC,SAAS,QAASL,SAAA9B,SAA8Ba,EAC5FuB,aAAcnC,EAAUU,MAACuB,EAAc,CAACC,SAAS,MAAOL,SAAA7B,SAA4BY,KAM9FwB,EAAoB,IAElB1B,MAAC2B,EAAAA,OAAMC,KAAMnD,EAAWoD,SAAUlD,EAAUwC,SACvC,EAAGW,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOrC,aAAEA,GAAiBmC,EACpCG,EAAaF,EAAOF,EAAMF,MAC1B/B,IAAcqC,GAAeD,EAAQH,EAAMF,MAC3C9B,EAAaqC,EAAmB,CAClCD,aACArC,YACAoC,UAAWA,EAAQH,EAAMF,MACzBrC,MAAOuC,EAAMvC,QAIjB,OAAOG,EAAYoC,EAAMvC,MAAiBK,EAAcC,EAAWC,EAAYiC,EAAKhC,cAAc,IAMlH,MAAe,aAAXf,EAEIoD,OACKC,EAAAA,SAAA,CAAAlB,SAAA,CAAY,aAAZlC,GACGe,MAACsC,EAAU,CAACrD,QAAQ,YAAYsD,UAAU,KAAKC,MAAM,uBAChDhE,IAGRiB,EAAYiC,IAAsBhC,OAKxCM,MAACyC,EAAc,CAACjE,MAAOA,WAAQiB,EAAYiC,IAAsBhC,KAA+B"}
1
+ {"version":3,"file":"GenericTextField.cjs.js","sources":["../../../../src/components/ui/Form/GenericTextField.tsx"],"sourcesContent":["import { type ChangeEvent } from 'react';\n\nimport { type FieldProps, Field } from 'formik';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\nimport Typography from '@mui/material/Typography';\nimport InputAdornment from '@mui/material/InputAdornment';\n\ntype Props = {\n label: string;\n fieldName?: string;\n placeholder?: string;\n validation?: (value: string) => string | undefined;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n multiline?: boolean;\n minRows?: number;\n maxRows?: number;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n required?: boolean;\n showHelperTextWhenValid?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n value?: string;\n type?: 'number' | 'text';\n};\n\ntype TextFieldComponentProps = {\n field: FieldProps['field'];\n form: FieldProps['form'];\n fieldName: string;\n label: string;\n placeholder?: string;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n multiline?: boolean;\n minRows?: number;\n maxRows?: number;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n required?: boolean;\n showHelperTextWhenValid?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n value?: string;\n type?: 'number' | 'text';\n};\n\nconst TextFieldComponent = ({\n field,\n form,\n fieldName,\n label,\n placeholder,\n onChange,\n multiline,\n minRows,\n maxRows,\n layout = 'horizontal',\n variant = 'standard',\n disabled = false,\n required = false,\n showHelperTextWhenValid = false,\n startIcon,\n endIcon,\n value,\n type = 'text',\n}: TextFieldComponentProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <TextField\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n value={value ?? field.value}\n data-testid={`text-field-${fieldName ?? label.toLowerCase().replace(/\\s+/g, '-')}`}\n autoComplete=\"off\"\n fullWidth\n multiline={multiline}\n minRows={minRows ?? (multiline ? 3 : undefined)}\n maxRows={maxRows ?? (multiline ? 10 : undefined)}\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder || undefined}\n disabled={isSubmitting || disabled}\n required={required}\n error={showError}\n helperText={(() => {\n if (showError) return helperText;\n if (showHelperTextWhenValid) return helperText;\n return undefined;\n })()}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (type === 'number' && isNaN(Number(e.target.value))) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(fieldName, e.target.value);\n if (onChange) {\n onChange(e);\n }\n }}\n slotProps={{\n htmlInput: {\n style: {\n paddingTop: variant !== 'outlined' ? 0 : undefined,\n height: '1.1876em',\n },\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n InputProps={{\n startAdornment: startIcon ? <InputAdornment position=\"start\">{startIcon}</InputAdornment> : undefined,\n endAdornment: endIcon ? <InputAdornment position=\"end\">{endIcon}</InputAdornment> : undefined,\n }}\n />\n );\n};\n\nconst GenericTextField = ({\n label,\n fieldName = undefined,\n placeholder,\n validation,\n onChange,\n multiline,\n minRows,\n maxRows,\n layout = 'horizontal',\n variant = 'standard',\n disabled = false,\n required = false,\n showHelperTextWhenValid = false,\n startIcon = undefined,\n endIcon = undefined,\n value,\n type = 'text',\n}: Props) => {\n const useFormik = !!fieldName;\n\n const renderField = () => {\n if (!useFormik) {\n return (\n <TextField\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n value={value}\n data-testid={`text-field-${fieldName ?? label.toLowerCase().replace(/\\s+/g, '-')}`}\n autoComplete=\"off\"\n fullWidth\n multiline={multiline}\n minRows={minRows ?? (multiline ? 3 : undefined)}\n maxRows={maxRows ?? (multiline ? 10 : undefined)}\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder || undefined}\n disabled={disabled}\n required={required}\n onChange={onChange}\n slotProps={{\n htmlInput: {\n style: {\n paddingTop: variant !== 'outlined' ? 0 : undefined,\n height: '1.1876em',\n },\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n InputProps={{\n startAdornment: startIcon ? <InputAdornment position=\"start\">{startIcon}</InputAdornment> : undefined,\n endAdornment: endIcon ? <InputAdornment position=\"end\">{endIcon}</InputAdornment> : undefined,\n }}\n />\n );\n }\n\n return (\n <Field name={fieldName} validate={validation}>\n {(fieldProps: FieldProps) => (\n <TextFieldComponent\n {...fieldProps}\n fieldName={fieldName}\n label={label}\n placeholder={placeholder}\n onChange={onChange}\n multiline={multiline}\n minRows={minRows}\n maxRows={maxRows}\n layout={layout}\n variant={variant}\n disabled={disabled}\n required={required}\n showHelperTextWhenValid={showHelperTextWhenValid}\n startIcon={startIcon}\n endIcon={endIcon}\n value={value}\n type={type}\n />\n )}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericTextField;\n"],"names":["TextFieldComponent","field","form","fieldName","label","placeholder","onChange","multiline","minRows","maxRows","layout","variant","disabled","required","showHelperTextWhenValid","startIcon","endIcon","value","type","errors","touched","isSubmitting","fieldError","name","showError","helperText","useRenderValidText","_jsx","jsx","TextField","undefined","toLowerCase","replace","autoComplete","fullWidth","style","paddingRight","error","e","isNaN","Number","target","setFieldValue","slotProps","htmlInput","paddingTop","height","formHelperText","children","textAlign","InputProps","startAdornment","InputAdornment","position","endAdornment","validation","useFormik","renderField","Field","validate","fieldProps","_jsxs","jsxs","_Fragment","Typography","component","color","FormItemLayout"],"mappings":"6SAkDA,MAAMA,EAAqB,EACvBC,QACAC,OACAC,YACAC,QACAC,cACAC,WACAC,YACAC,UACAC,UACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,YAAW,EACXC,2BAA0B,EAC1BC,YACAC,UACAC,QACAC,OAAO,WAEP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBnB,EACpCoB,EAAaH,EAAOlB,EAAMsB,MAC1BC,IAAcF,GAAeF,EAAQnB,EAAMsB,MAC3CE,EAAaC,EAAmB,CAClCJ,aACAE,YACAJ,UAAWA,EAAQnB,EAAMsB,MACzBN,MAAOhB,EAAMgB,QAGjB,OACIU,EAAAC,IAACC,EAAS,CACNzB,MAAmB,aAAZO,OAAyBmB,EAAY1B,EAC5CO,QAASA,EACTM,MAAOA,GAAShB,EAAMgB,MACT,cAAA,cAAcd,GAAaC,EAAM2B,cAAcC,QAAQ,OAAQ,OAC5EC,aAAa,MACbC,WAAS,EACT3B,UAAWA,EACXC,QAASA,IAAYD,EAAY,OAAIuB,GACrCrB,QAASA,IAAYF,EAAY,QAAKuB,GACtCK,MAAO,CAAEC,aAAyB,eAAX1B,EAA0B,GAAK,GACtDL,YAAaA,QAAeyB,EAC5BlB,SAAUS,GAAgBT,EAC1BC,SAAUA,EACVwB,MAAOb,EACPC,WACQD,GACAV,EADkBW,OACtB,EAGJnB,SAAWgC,IACM,WAATpB,GAAqBqB,MAAMC,OAAOF,EAAEG,OAAOxB,UAK/Cf,EAAKwC,cAAcvC,EAAWmC,EAAEG,OAAOxB,OACnCX,GACAA,EAASgC,GACZ,EAELK,UAAW,CACPC,UAAW,CACPT,MAAO,CACHU,WAAwB,aAAZlC,EAAyB,OAAImB,EACzCgB,OAAQ,aAGhBC,eAAgB,CACZC,SAAU,IACVb,MAAO,CAAEc,UAAW,WAG5BC,WAAY,CACRC,eAAgBpC,EAAYY,MAACyB,EAAc,CAACC,SAAS,QAASL,SAAAjC,SAA8Be,EAC5FwB,aAActC,EAAUW,MAACyB,EAAc,CAACC,SAAS,MAAOL,SAAAhC,SAA4Bc,IAG9F,iBAGmB,EACrB1B,QACAD,YACAE,cACAkD,aACAjD,WACAC,YACAC,UACAC,UACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,YAAW,EACXC,2BAA0B,EAC1BC,YACAC,UACAC,QACAC,OAAO,WAEP,MAAMsC,IAAcrD,EAEdsD,EAAc,IACXD,EAsCD7B,MAAC+B,EAAAA,OAAMnC,KAAMpB,EAAWwD,SAAUJ,EAAUP,SACtCY,GACEjC,MAAC3B,EAAkB,IACX4D,EACJzD,UAAWA,EACXC,MAAOA,EACPC,YAAaA,EACbC,SAAUA,EACVC,UAAWA,EACXC,QAASA,EACTC,QAASA,EACTC,OAAQA,EACRC,QAASA,EACTC,SAAUA,EACVC,SAAUA,EACVC,wBAAyBA,EACzBC,UAAWA,EACXC,QAASA,EACTC,MAAOA,EACPC,KAAMA,MAvDdS,EAACC,IAAAC,EACG,CAAAzB,MAAmB,aAAZO,OAAyBmB,EAAY1B,EAC5CO,QAASA,EACTM,MAAOA,EACM,cAAA,cAAcd,GAAaC,EAAM2B,cAAcC,QAAQ,OAAQ,OAC5EC,aAAa,MACbC,WAAS,EACT3B,UAAWA,EACXC,QAASA,IAAYD,EAAY,OAAIuB,GACrCrB,QAASA,IAAYF,EAAY,QAAKuB,GACtCK,MAAO,CAAEC,aAAyB,eAAX1B,EAA0B,GAAK,GACtDL,YAAaA,QAAeyB,EAC5BlB,SAAUA,EACVC,SAAUA,EACVP,SAAUA,EACVqC,UAAW,CACPC,UAAW,CACPT,MAAO,CACHU,WAAwB,aAAZlC,EAAyB,OAAImB,EACzCgB,OAAQ,aAGhBC,eAAgB,CACZC,SAAU,IACVb,MAAO,CAAEc,UAAW,WAG5BC,WAAY,CACRC,eAAgBpC,EAAYY,MAACyB,EAAc,CAACC,SAAS,QAASL,SAAAjC,SAA8Be,EAC5FwB,aAActC,EAAUW,MAACyB,EAAc,CAACC,SAAS,MAAOL,SAAAhC,SAA4Bc,KAiCxG,MAAe,aAAXpB,EAEImD,EAAAC,KAAAC,WAAA,CAAAf,SAAA,CACiB,aAAZrC,GACGgB,EAAAC,IAACoC,EAAU,CAACrD,QAAQ,YAAYsD,UAAU,KAAKC,MAAM,cAChDlB,SAAA5C,IAGRqD,OAKN9B,EAAAC,IAACuC,EAAc,CAAC/D,MAAOA,EAAQ4C,SAAAS,KAA+B"}
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as t,jsx as r}from"react/jsx-runtime";import"react";import{Field as o}from"formik";import i from"@mui/material/TextField";import a from"../../custom-hooks/useRenderValidText.js";import l from"./FormItemLayout.js";import n from"@mui/material/Typography";import d from"@mui/material/InputAdornment";const m=({label:m,fieldName:s,placeholder:u,validation:p,onChange:h,multiline:c,minRows:v,maxRows:f,layout:g="horizontal",variant:x="standard",disabled:b=!1,required:y=!1,showHelperTextWhenValid:w=!1,startIcon:T,endIcon:I,value:R,type:A="text"})=>{const C=!!s,N=(e,t,o,a,l)=>r(i,{label:"standard"===x?void 0:m,variant:x,value:R??e,"data-testid":`text-field-${s??m.toLowerCase().replace(/\s+/g,"-")}`,autoComplete:"off",fullWidth:!0,multiline:c,minRows:v??(c?3:void 0),maxRows:f??(c?10:void 0),style:{paddingRight:"horizontal"===g?16:0},placeholder:u||void 0,disabled:t||b,required:y,error:o,helperText:o||w?a:void 0,onChange:e=>{"number"===A&&isNaN(Number(e.target.value))||(l&&l(s,e.target.value),h&&h(e))},slotProps:{htmlInput:{style:{paddingTop:"outlined"!==x?0:void 0,height:"1.1876em"}},formHelperText:{children:" ",style:{textAlign:"right"}}},InputProps:{startAdornment:T?r(d,{position:"start",children:T}):void 0,endAdornment:I?r(d,{position:"end",children:I}):void 0}}),j=()=>r(o,{name:s,validate:p,children:({field:e,form:t})=>{const{errors:r,touched:o,isSubmitting:i}=t,l=r[e.name],n=!!l&&o[e.name],d=a({fieldError:l,showError:n,touched:!!o[e.name],value:e.value});return N(e.value,i,n,d,t.setFieldValue)}});return"vertical"===g?e(t,{children:["standard"===x&&r(n,{variant:"subtitle1",component:"h3",color:"textPrimary",children:m}),C?j():N()]}):r(l,{label:m,children:C?j():N()})};export{m as default};
1
+ import{jsxs as e,Fragment as t,jsx as o}from"react/jsx-runtime";import"react";import{Field as i}from"formik";import r from"@mui/material/TextField";import a from"../../custom-hooks/useRenderValidText.js";import l from"./FormItemLayout.js";import n from"@mui/material/Typography";import d from"@mui/material/InputAdornment";const s=({field:e,form:t,fieldName:i,label:l,placeholder:n,onChange:s,multiline:m,minRows:u,maxRows:h,layout:p="horizontal",variant:c="standard",disabled:v=!1,required:f=!1,showHelperTextWhenValid:g=!1,startIcon:x,endIcon:w,value:y,type:b="text"})=>{const{errors:R,touched:I,isSubmitting:T}=t,C=R[e.name],A=!!C&&I[e.name],N=a({fieldError:C,showError:A,touched:!!I[e.name],value:e.value});return o(r,{label:"standard"===c?void 0:l,variant:c,value:y??e.value,"data-testid":`text-field-${i??l.toLowerCase().replace(/\s+/g,"-")}`,autoComplete:"off",fullWidth:!0,multiline:m,minRows:u??(m?3:void 0),maxRows:h??(m?10:void 0),style:{paddingRight:"horizontal"===p?16:0},placeholder:n||void 0,disabled:T||v,required:f,error:A,helperText:A||g?N:void 0,onChange:e=>{"number"===b&&isNaN(Number(e.target.value))||(t.setFieldValue(i,e.target.value),s&&s(e))},slotProps:{htmlInput:{style:{paddingTop:"outlined"!==c?0:void 0,height:"1.1876em"}},formHelperText:{children:" ",style:{textAlign:"right"}}},InputProps:{startAdornment:x?o(d,{position:"start",children:x}):void 0,endAdornment:w?o(d,{position:"end",children:w}):void 0}})},m=({label:a,fieldName:m,placeholder:u,validation:h,onChange:p,multiline:c,minRows:v,maxRows:f,layout:g="horizontal",variant:x="standard",disabled:w=!1,required:y=!1,showHelperTextWhenValid:b=!1,startIcon:R,endIcon:I,value:T,type:C="text"})=>{const A=!!m,N=()=>A?o(i,{name:m,validate:h,children:e=>o(s,{...e,fieldName:m,label:a,placeholder:u,onChange:p,multiline:c,minRows:v,maxRows:f,layout:g,variant:x,disabled:w,required:y,showHelperTextWhenValid:b,startIcon:R,endIcon:I,value:T,type:C})}):o(r,{label:"standard"===x?void 0:a,variant:x,value:T,"data-testid":`text-field-${m??a.toLowerCase().replace(/\s+/g,"-")}`,autoComplete:"off",fullWidth:!0,multiline:c,minRows:v??(c?3:void 0),maxRows:f??(c?10:void 0),style:{paddingRight:"horizontal"===g?16:0},placeholder:u||void 0,disabled:w,required:y,onChange:p,slotProps:{htmlInput:{style:{paddingTop:"outlined"!==x?0:void 0,height:"1.1876em"}},formHelperText:{children:" ",style:{textAlign:"right"}}},InputProps:{startAdornment:R?o(d,{position:"start",children:R}):void 0,endAdornment:I?o(d,{position:"end",children:I}):void 0}});return"vertical"===g?e(t,{children:["standard"===x&&o(n,{variant:"subtitle1",component:"h3",color:"textPrimary",children:a}),N()]}):o(l,{label:a,children:N()})};export{m as default};
2
2
  //# sourceMappingURL=GenericTextField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericTextField.js","sources":["../../../../src/components/ui/Form/GenericTextField.tsx"],"sourcesContent":["import { type ChangeEvent, type ReactNode } from 'react';\n\nimport { type FieldProps, Field } from 'formik';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\nimport Typography from '@mui/material/Typography';\nimport InputAdornment from '@mui/material/InputAdornment';\n\ntype Props = {\n label: string;\n fieldName?: string;\n placeholder?: string;\n validation?: (value: string) => string | undefined;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n multiline?: boolean;\n minRows?: number;\n maxRows?: number;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n required?: boolean;\n showHelperTextWhenValid?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n value?: string;\n type?: 'number' | 'text';\n};\n\nconst GenericTextField = ({\n label,\n fieldName = undefined,\n placeholder,\n validation,\n onChange,\n multiline,\n minRows,\n maxRows,\n layout = 'horizontal',\n variant = 'standard',\n disabled = false,\n required = false,\n showHelperTextWhenValid = false,\n startIcon = undefined,\n endIcon = undefined,\n value,\n type = 'text',\n}: Props) => {\n const useFormik = !!fieldName;\n\n const renderField = (\n formikValue?: string,\n isSubmitting?: boolean,\n showError?: boolean,\n helperText?: string | ReactNode,\n setFieldValue?: (name: string, value: string) => void,\n ) => {\n return (\n <TextField\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n value={value ?? formikValue}\n data-testid={`text-field-${fieldName ?? label.toLowerCase().replace(/\\s+/g, '-')}`}\n autoComplete=\"off\"\n fullWidth\n multiline={multiline}\n minRows={minRows ?? (multiline ? 3 : undefined)}\n maxRows={maxRows ?? (multiline ? 10 : undefined)}\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder ? placeholder : undefined}\n disabled={isSubmitting || disabled}\n required={required}\n error={showError}\n helperText={showError ? helperText : showHelperTextWhenValid ? helperText : undefined}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (type === 'number' && isNaN(Number(e.target.value))) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n setFieldValue && setFieldValue(fieldName, e.target.value);\n if (onChange) {\n onChange(e);\n }\n }}\n slotProps={{\n htmlInput: {\n style: {\n paddingTop: variant !== 'outlined' ? 0 : undefined,\n height: '1.1876em',\n },\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n InputProps={{\n startAdornment: startIcon ? <InputAdornment position=\"start\">{startIcon}</InputAdornment> : undefined,\n endAdornment: endIcon ? <InputAdornment position=\"end\">{endIcon}</InputAdornment> : undefined,\n }}\n />\n );\n };\n\n const renderFormikField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return renderField(field.value as string, isSubmitting, showError, helperText, form.setFieldValue);\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {useFormik ? renderFormikField() : renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{useFormik ? renderFormikField() : renderField()}</FormItemLayout>;\n};\n\nexport default GenericTextField;\n"],"names":["GenericTextField","label","fieldName","placeholder","validation","onChange","multiline","minRows","maxRows","layout","variant","disabled","required","showHelperTextWhenValid","startIcon","endIcon","value","type","useFormik","renderField","formikValue","isSubmitting","showError","helperText","setFieldValue","_jsx","TextField","undefined","toLowerCase","replace","autoComplete","fullWidth","style","paddingRight","error","e","isNaN","Number","target","slotProps","htmlInput","paddingTop","height","formHelperText","children","textAlign","InputProps","startAdornment","InputAdornment","position","endAdornment","renderFormikField","Field","name","validate","field","form","errors","touched","fieldError","useRenderValidText","_jsxs","_Fragment","Typography","component","color","FormItemLayout"],"mappings":"mUA6BM,MAAAA,EAAmB,EACrBC,QACAC,YACAC,cACAC,aACAC,WACAC,YACAC,UACAC,UACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,YAAW,EACXC,2BAA0B,EAC1BC,YACAC,UACAC,QACAC,OAAO,WAEP,MAAMC,IAAchB,EAEdiB,EAAc,CAChBC,EACAC,EACAC,EACAC,EACAC,IAGIC,EAACC,EAAS,CACNzB,MAAmB,aAAZS,OAAyBiB,EAAY1B,EAC5CS,QAASA,EACTM,MAAOA,GAASI,EACH,cAAA,cAAclB,GAAaD,EAAM2B,cAAcC,QAAQ,OAAQ,OAC5EC,aAAa,MACbC,aACAzB,UAAWA,EACXC,QAASA,IAAYD,EAAY,OAAIqB,GACrCnB,QAASA,IAAYF,EAAY,QAAKqB,GACtCK,MAAO,CAAEC,aAAyB,eAAXxB,EAA0B,GAAK,GACtDN,YAAaA,QAA4BwB,EACzChB,SAAUU,GAAgBV,EAC1BC,SAAUA,EACVsB,MAAOZ,EACPC,WAAYD,GAAyBT,EAAbU,OAAoDI,EAC5EtB,SAAW8B,IACM,WAATlB,GAAqBmB,MAAMC,OAAOF,EAAEG,OAAOtB,UAK/CQ,GAAiBA,EAActB,EAAWiC,EAAEG,OAAOtB,OAC/CX,GACAA,EAAS8B,GACZ,EAELI,UAAW,CACPC,UAAW,CACPR,MAAO,CACHS,WAAwB,aAAZ/B,EAAyB,OAAIiB,EACzCe,OAAQ,aAGhBC,eAAgB,CACZC,SAAU,IACVZ,MAAO,CAAEa,UAAW,WAG5BC,WAAY,CACRC,eAAgBjC,EAAYW,EAACuB,EAAc,CAACC,SAAS,QAASL,SAAA9B,SAA8Ba,EAC5FuB,aAAcnC,EAAUU,EAACuB,EAAc,CAACC,SAAS,MAAOL,SAAA7B,SAA4BY,KAM9FwB,EAAoB,IAElB1B,EAAC2B,GAAMC,KAAMnD,EAAWoD,SAAUlD,EAAUwC,SACvC,EAAGW,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOrC,aAAEA,GAAiBmC,EACpCG,EAAaF,EAAOF,EAAMF,MAC1B/B,IAAcqC,GAAeD,EAAQH,EAAMF,MAC3C9B,EAAaqC,EAAmB,CAClCD,aACArC,YACAoC,UAAWA,EAAQH,EAAMF,MACzBrC,MAAOuC,EAAMvC,QAIjB,OAAOG,EAAYoC,EAAMvC,MAAiBK,EAAcC,EAAWC,EAAYiC,EAAKhC,cAAc,IAMlH,MAAe,aAAXf,EAEIoD,EACKC,EAAA,CAAAlB,SAAA,CAAY,aAAZlC,GACGe,EAACsC,EAAU,CAACrD,QAAQ,YAAYsD,UAAU,KAAKC,MAAM,uBAChDhE,IAGRiB,EAAYiC,IAAsBhC,OAKxCM,EAACyC,EAAc,CAACjE,MAAOA,WAAQiB,EAAYiC,IAAsBhC,KAA+B"}
1
+ {"version":3,"file":"GenericTextField.js","sources":["../../../../src/components/ui/Form/GenericTextField.tsx"],"sourcesContent":["import { type ChangeEvent } from 'react';\n\nimport { type FieldProps, Field } from 'formik';\nimport TextField, { type TextFieldProps } from '@mui/material/TextField';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport FormItemLayout from './FormItemLayout';\nimport Typography from '@mui/material/Typography';\nimport InputAdornment from '@mui/material/InputAdornment';\n\ntype Props = {\n label: string;\n fieldName?: string;\n placeholder?: string;\n validation?: (value: string) => string | undefined;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n multiline?: boolean;\n minRows?: number;\n maxRows?: number;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n required?: boolean;\n showHelperTextWhenValid?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n value?: string;\n type?: 'number' | 'text';\n};\n\ntype TextFieldComponentProps = {\n field: FieldProps['field'];\n form: FieldProps['form'];\n fieldName: string;\n label: string;\n placeholder?: string;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n multiline?: boolean;\n minRows?: number;\n maxRows?: number;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldProps['variant'];\n disabled?: boolean;\n required?: boolean;\n showHelperTextWhenValid?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n value?: string;\n type?: 'number' | 'text';\n};\n\nconst TextFieldComponent = ({\n field,\n form,\n fieldName,\n label,\n placeholder,\n onChange,\n multiline,\n minRows,\n maxRows,\n layout = 'horizontal',\n variant = 'standard',\n disabled = false,\n required = false,\n showHelperTextWhenValid = false,\n startIcon,\n endIcon,\n value,\n type = 'text',\n}: TextFieldComponentProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <TextField\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n value={value ?? field.value}\n data-testid={`text-field-${fieldName ?? label.toLowerCase().replace(/\\s+/g, '-')}`}\n autoComplete=\"off\"\n fullWidth\n multiline={multiline}\n minRows={minRows ?? (multiline ? 3 : undefined)}\n maxRows={maxRows ?? (multiline ? 10 : undefined)}\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder || undefined}\n disabled={isSubmitting || disabled}\n required={required}\n error={showError}\n helperText={(() => {\n if (showError) return helperText;\n if (showHelperTextWhenValid) return helperText;\n return undefined;\n })()}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n if (type === 'number' && isNaN(Number(e.target.value))) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(fieldName, e.target.value);\n if (onChange) {\n onChange(e);\n }\n }}\n slotProps={{\n htmlInput: {\n style: {\n paddingTop: variant !== 'outlined' ? 0 : undefined,\n height: '1.1876em',\n },\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n InputProps={{\n startAdornment: startIcon ? <InputAdornment position=\"start\">{startIcon}</InputAdornment> : undefined,\n endAdornment: endIcon ? <InputAdornment position=\"end\">{endIcon}</InputAdornment> : undefined,\n }}\n />\n );\n};\n\nconst GenericTextField = ({\n label,\n fieldName = undefined,\n placeholder,\n validation,\n onChange,\n multiline,\n minRows,\n maxRows,\n layout = 'horizontal',\n variant = 'standard',\n disabled = false,\n required = false,\n showHelperTextWhenValid = false,\n startIcon = undefined,\n endIcon = undefined,\n value,\n type = 'text',\n}: Props) => {\n const useFormik = !!fieldName;\n\n const renderField = () => {\n if (!useFormik) {\n return (\n <TextField\n label={variant === 'standard' ? undefined : label}\n variant={variant}\n value={value}\n data-testid={`text-field-${fieldName ?? label.toLowerCase().replace(/\\s+/g, '-')}`}\n autoComplete=\"off\"\n fullWidth\n multiline={multiline}\n minRows={minRows ?? (multiline ? 3 : undefined)}\n maxRows={maxRows ?? (multiline ? 10 : undefined)}\n style={{ paddingRight: layout === 'horizontal' ? 16 : 0 }}\n placeholder={placeholder || undefined}\n disabled={disabled}\n required={required}\n onChange={onChange}\n slotProps={{\n htmlInput: {\n style: {\n paddingTop: variant !== 'outlined' ? 0 : undefined,\n height: '1.1876em',\n },\n },\n formHelperText: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n }}\n InputProps={{\n startAdornment: startIcon ? <InputAdornment position=\"start\">{startIcon}</InputAdornment> : undefined,\n endAdornment: endIcon ? <InputAdornment position=\"end\">{endIcon}</InputAdornment> : undefined,\n }}\n />\n );\n }\n\n return (\n <Field name={fieldName} validate={validation}>\n {(fieldProps: FieldProps) => (\n <TextFieldComponent\n {...fieldProps}\n fieldName={fieldName}\n label={label}\n placeholder={placeholder}\n onChange={onChange}\n multiline={multiline}\n minRows={minRows}\n maxRows={maxRows}\n layout={layout}\n variant={variant}\n disabled={disabled}\n required={required}\n showHelperTextWhenValid={showHelperTextWhenValid}\n startIcon={startIcon}\n endIcon={endIcon}\n value={value}\n type={type}\n />\n )}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericTextField;\n"],"names":["TextFieldComponent","field","form","fieldName","label","placeholder","onChange","multiline","minRows","maxRows","layout","variant","disabled","required","showHelperTextWhenValid","startIcon","endIcon","value","type","errors","touched","isSubmitting","fieldError","name","showError","helperText","useRenderValidText","_jsx","TextField","undefined","toLowerCase","replace","autoComplete","fullWidth","style","paddingRight","error","e","isNaN","Number","target","setFieldValue","slotProps","htmlInput","paddingTop","height","formHelperText","children","textAlign","InputProps","startAdornment","InputAdornment","position","endAdornment","GenericTextField","validation","useFormik","renderField","Field","validate","fieldProps","_jsxs","_Fragment","Typography","component","color","FormItemLayout"],"mappings":"mUAkDA,MAAMA,EAAqB,EACvBC,QACAC,OACAC,YACAC,QACAC,cACAC,WACAC,YACAC,UACAC,UACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,YAAW,EACXC,2BAA0B,EAC1BC,YACAC,UACAC,QACAC,OAAO,WAEP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBnB,EACpCoB,EAAaH,EAAOlB,EAAMsB,MAC1BC,IAAcF,GAAeF,EAAQnB,EAAMsB,MAC3CE,EAAaC,EAAmB,CAClCJ,aACAE,YACAJ,UAAWA,EAAQnB,EAAMsB,MACzBN,MAAOhB,EAAMgB,QAGjB,OACIU,EAACC,EAAS,CACNxB,MAAmB,aAAZO,OAAyBkB,EAAYzB,EAC5CO,QAASA,EACTM,MAAOA,GAAShB,EAAMgB,MACT,cAAA,cAAcd,GAAaC,EAAM0B,cAAcC,QAAQ,OAAQ,OAC5EC,aAAa,MACbC,WAAS,EACT1B,UAAWA,EACXC,QAASA,IAAYD,EAAY,OAAIsB,GACrCpB,QAASA,IAAYF,EAAY,QAAKsB,GACtCK,MAAO,CAAEC,aAAyB,eAAXzB,EAA0B,GAAK,GACtDL,YAAaA,QAAewB,EAC5BjB,SAAUS,GAAgBT,EAC1BC,SAAUA,EACVuB,MAAOZ,EACPC,WACQD,GACAV,EADkBW,OACtB,EAGJnB,SAAW+B,IACM,WAATnB,GAAqBoB,MAAMC,OAAOF,EAAEG,OAAOvB,UAK/Cf,EAAKuC,cAActC,EAAWkC,EAAEG,OAAOvB,OACnCX,GACAA,EAAS+B,GACZ,EAELK,UAAW,CACPC,UAAW,CACPT,MAAO,CACHU,WAAwB,aAAZjC,EAAyB,OAAIkB,EACzCgB,OAAQ,aAGhBC,eAAgB,CACZC,SAAU,IACVb,MAAO,CAAEc,UAAW,WAG5BC,WAAY,CACRC,eAAgBnC,EAAYY,EAACwB,EAAc,CAACC,SAAS,QAASL,SAAAhC,SAA8Bc,EAC5FwB,aAAcrC,EAAUW,EAACwB,EAAc,CAACC,SAAS,MAAOL,SAAA/B,SAA4Ba,IAG9F,EAGAyB,EAAmB,EACrBlD,QACAD,YACAE,cACAkD,aACAjD,WACAC,YACAC,UACAC,UACAC,SAAS,aACTC,UAAU,WACVC,YAAW,EACXC,YAAW,EACXC,2BAA0B,EAC1BC,YACAC,UACAC,QACAC,OAAO,WAEP,MAAMsC,IAAcrD,EAEdsD,EAAc,IACXD,EAsCD7B,EAAC+B,GAAMnC,KAAMpB,EAAWwD,SAAUJ,EAAUR,SACtCa,GACEjC,EAAC3B,EAAkB,IACX4D,EACJzD,UAAWA,EACXC,MAAOA,EACPC,YAAaA,EACbC,SAAUA,EACVC,UAAWA,EACXC,QAASA,EACTC,QAASA,EACTC,OAAQA,EACRC,QAASA,EACTC,SAAUA,EACVC,SAAUA,EACVC,wBAAyBA,EACzBC,UAAWA,EACXC,QAASA,EACTC,MAAOA,EACPC,KAAMA,MAvDdS,EAACC,EACG,CAAAxB,MAAmB,aAAZO,OAAyBkB,EAAYzB,EAC5CO,QAASA,EACTM,MAAOA,EACM,cAAA,cAAcd,GAAaC,EAAM0B,cAAcC,QAAQ,OAAQ,OAC5EC,aAAa,MACbC,WAAS,EACT1B,UAAWA,EACXC,QAASA,IAAYD,EAAY,OAAIsB,GACrCpB,QAASA,IAAYF,EAAY,QAAKsB,GACtCK,MAAO,CAAEC,aAAyB,eAAXzB,EAA0B,GAAK,GACtDL,YAAaA,QAAewB,EAC5BjB,SAAUA,EACVC,SAAUA,EACVP,SAAUA,EACVoC,UAAW,CACPC,UAAW,CACPT,MAAO,CACHU,WAAwB,aAAZjC,EAAyB,OAAIkB,EACzCgB,OAAQ,aAGhBC,eAAgB,CACZC,SAAU,IACVb,MAAO,CAAEc,UAAW,WAG5BC,WAAY,CACRC,eAAgBnC,EAAYY,EAACwB,EAAc,CAACC,SAAS,QAASL,SAAAhC,SAA8Bc,EAC5FwB,aAAcrC,EAAUW,EAACwB,EAAc,CAACC,SAAS,MAAOL,SAAA/B,SAA4Ba,KAiCxG,MAAe,aAAXnB,EAEImD,EAAAC,EAAA,CAAAf,SAAA,CACiB,aAAZpC,GACGgB,EAACoC,EAAU,CAACpD,QAAQ,YAAYqD,UAAU,KAAKC,MAAM,cAChDlB,SAAA3C,IAGRqD,OAKN9B,EAACuC,EAAc,CAAC9D,MAAOA,EAAQ2C,SAAAU,KAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"formValidation.cjs.js","sources":["../../../../../src/components/ui/Form/utilities/formValidation.tsx"],"sourcesContent":["export const formikValidate = {\n Required: (value: string): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n\n return;\n },\n AtLeastOneSelected: (value: Array<string | number>): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n\n return;\n },\n};\n"],"names":["Required","value","length","AtLeastOneSelected"],"mappings":"oCAA8B,CAC1BA,SAAWC,IACP,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UAGJ,EAEXC,mBAAqBF,IACjB,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UAGJ"}
1
+ {"version":3,"file":"formValidation.cjs.js","sources":["../../../../../src/components/ui/Form/utilities/formValidation.tsx"],"sourcesContent":["export const formikValidate = {\n Required: (value: string): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n },\n AtLeastOneSelected: (value: Array<string | number>): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n },\n};\n"],"names":["Required","value","length","AtLeastOneSelected"],"mappings":"oCAA8B,CAC1BA,SAAWC,IACP,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UACV,EAELC,mBAAqBF,IACjB,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UACV"}
@@ -1 +1 @@
1
- {"version":3,"file":"formValidation.js","sources":["../../../../../src/components/ui/Form/utilities/formValidation.tsx"],"sourcesContent":["export const formikValidate = {\n Required: (value: string): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n\n return;\n },\n AtLeastOneSelected: (value: Array<string | number>): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n\n return;\n },\n};\n"],"names":["formikValidate","Required","value","length","AtLeastOneSelected"],"mappings":"AAAa,MAAAA,EAAiB,CAC1BC,SAAWC,IACP,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UAGJ,EAEXC,mBAAqBF,IACjB,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UAGJ"}
1
+ {"version":3,"file":"formValidation.js","sources":["../../../../../src/components/ui/Form/utilities/formValidation.tsx"],"sourcesContent":["export const formikValidate = {\n Required: (value: string): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n },\n AtLeastOneSelected: (value: Array<string | number>): TranslationId | undefined => {\n if (value.length === 0) {\n return 'Required';\n }\n },\n};\n"],"names":["formikValidate","Required","value","length","AtLeastOneSelected"],"mappings":"AAAa,MAAAA,EAAiB,CAC1BC,SAAWC,IACP,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UACV,EAELC,mBAAqBF,IACjB,GAAqB,IAAjBA,EAAMC,OACN,MAAO,UACV"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("formik"),i=require("../Form/FormItemLayout.cjs.js"),a=require("@mui/material/styles");require("@mui/material/TextField");var t=require("@mui/material/Box"),l=require("@mui/material/Typography"),s=require("../../custom-hooks/useRenderValidText.cjs.js"),o=require("moment");require("@mui/x-date-pickers/DatePicker"),require("@mui/x-date-pickers/DateTimePicker");const n=a.styled("div")((({theme:e})=>({marginTop:e.spacing(2),"& > div":{width:"100%"}})));module.exports=({label:d,fieldName:u,description:m,validation:c,variant:h="standard",layout:x,onChange:p,disabled:v=!1,disablePast:j=!1,disablefuture:b=!1,placeholder:g,showHelperTextWhenValid:q=!1,pickerComponent:y})=>{const F=a.useTheme(),T=()=>e.jsx(r.Field,{name:u,validate:c,children:({field:r,form:i})=>{const{errors:a,touched:c,isSubmitting:T}=i,k=a[r.name],P=!!k&&c[r.name],f=s({fieldError:k,showError:P,touched:!!c[r.name],value:r.value});return e.jsxs(t,{sx:{paddingRight:"horizontal"===x?"16px":0},children:[e.jsx(n,{children:e.jsx(y,{label:"standard"===h?void 0:d,value:o.isMoment(r.value)?r.value:o(r.value),onChange:e=>{const a=o.isMoment(e)?e:o(e);i.setFieldValue(r.name,a),p&&p(a)},name:u,slotProps:{textField:{variant:h,placeholder:g,error:P,helperText:P||q?f:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:T||v,disablePast:j,disableFuture:b})}),m&&e.jsx(l,{variant:"caption",sx:{color:F.palette.text.secondary},children:m})]})}});return"vertical"===x?e.jsxs(e.Fragment,{children:["standard"===h&&e.jsx(l,{variant:"subtitle1",component:"h3",color:"textPrimary",children:d}),T()]}):e.jsx(i,{label:d,children:T()})};
2
+ //# sourceMappingURL=GenericDateFieldBase.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericDateFieldBase.cjs.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDateFieldBase.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { type TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';\n\nconst StyledPickerBase = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n '& > div': {\n width: '100%',\n },\n}));\n\nexport type GenericDateFieldBaseProps = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n pickerComponent: typeof DatePicker | typeof DateTimePicker;\n};\n\nconst GenericDateFieldBase = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n pickerComponent: PickerComponent,\n}: GenericDateFieldBaseProps) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledPickerBase>\n <PickerComponent\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const momentValue = moment.isMoment(value) ? value : moment(value);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: (() => {\n if (showError) return helperText;\n if (showHelperTextWhenValid) return helperText;\n return undefined;\n })(),\n FormHelperTextProps: {\n children: ' ',\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n </StyledPickerBase>\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDateFieldBase;\n"],"names":["StyledPickerBase","styled","theme","marginTop","spacing","width","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","pickerComponent","PickerComponent","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","jsxs","Box","sx","paddingRight","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","jsx","component","FormItemLayout"],"mappings":"maAWA,MAAMA,EAAmBC,EAAAA,OAAO,MAAPA,EAAc,EAAGC,YAAa,CACnDC,UAAWD,EAAME,QAAQ,GACzB,UAAW,CACPC,MAAO,2BAoBc,EACzBC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,EAC1BC,gBAAiBC,MAEjB,MAAMjB,EAAQkB,EAAAA,WAERC,EAAc,IAEZC,MAACC,EAAAA,OAAMC,KAAMjB,EAAWkB,SAAUhB,EAAUiB,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,KAAAC,GAAIC,GAAI,CAAEC,aAAyB,eAAX9B,EAA0B,OAAS,GAAGe,SAAA,CAC3DJ,EAAAA,IAACtB,EAAgB,CAAA0B,SACbJ,MAACH,EAAe,CACZb,MAAmB,aAAZI,OAAyBgC,EAAYpC,EAE5C8B,MAAOO,EAAOC,SAASjB,EAAMS,OAAST,EAAMS,MAAQO,EAAOhB,EAAMS,OACjExB,SAAWwB,IAEP,MAAMS,EAAcF,EAAOC,SAASR,GAASA,EAAQO,EAAOP,GAE5DR,EAAKkB,cAAcnB,EAAMH,KAAMqB,GAC3BjC,GACAA,EAASiC,EACZ,EAELrB,KAAMjB,EACNwC,UAAW,CACPC,UAAW,CACPtC,UACAM,cACAiC,MAAOhB,EACPC,WACQD,GACAhB,EADkBiB,OACtB,EAGJgB,oBAAqB,CACjBxB,SAAU,IACVyB,MAAO,CAAEC,UAAW,YAIhCvC,SAAUkB,GAAgBlB,EAC1BC,YAAaA,EACbuC,cAAetC,MAGtBP,GACGc,EAAAA,IAACgC,EAAU,CAAC5C,QAAQ,UAAU8B,GAAI,CAAEe,MAAOrD,EAAMsD,QAAQC,KAAKC,WAAWhC,SACpElB,MAIf,IAMlB,MAAe,aAAXG,EAEI0B,EAAAC,KAAAqB,WAAA,CAAAjC,SAAA,CACiB,aAAZhB,GACGY,EAAAsC,IAACN,EAAU,CAAC5C,QAAQ,YAAYmD,UAAU,KAAKN,MAAM,cAChD7B,SAAApB,IAGRe,OAKNC,EAAAsC,IAACE,EAAc,CAACxD,MAAOA,EAAQoB,SAAAL,KAA+B"}
@@ -0,0 +1,22 @@
1
+ import { TextFieldVariants } from '@mui/material/TextField';
2
+ import moment from 'moment';
3
+ import { DatePicker } from '@mui/x-date-pickers/DatePicker';
4
+ import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
5
+
6
+ type GenericDateFieldBaseProps = {
7
+ label: string;
8
+ placeholder?: string;
9
+ fieldName: string;
10
+ description?: string;
11
+ validation?: (value: string) => string | undefined;
12
+ layout?: 'horizontal' | 'vertical';
13
+ variant?: TextFieldVariants;
14
+ disabled?: boolean;
15
+ disablePast?: boolean;
16
+ disablefuture?: boolean;
17
+ onChange?: (dateTime: moment.Moment) => void;
18
+ showHelperTextWhenValid?: boolean;
19
+ pickerComponent: typeof DatePicker | typeof DateTimePicker;
20
+ };
21
+
22
+ export type { GenericDateFieldBaseProps };
@@ -0,0 +1,2 @@
1
+ import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import{Field as i}from"formik";import a from"../Form/FormItemLayout.js";import{styled as o,useTheme as l}from"@mui/material/styles";import"@mui/material/TextField";import m from"@mui/material/Box";import n from"@mui/material/Typography";import d from"../../custom-hooks/useRenderValidText.js";import s from"moment";import"@mui/x-date-pickers/DatePicker";import"@mui/x-date-pickers/DateTimePicker";const p=o("div")((({theme:e})=>({marginTop:e.spacing(2),"& > div":{width:"100%"}}))),c=({label:o,fieldName:c,description:u,validation:h,variant:v="standard",layout:x,onChange:f,disabled:b=!1,disablePast:g=!1,disablefuture:y=!1,placeholder:T,showHelperTextWhenValid:k=!1,pickerComponent:F})=>{const P=l(),j=()=>t(i,{name:c,validate:h,children:({field:r,form:i})=>{const{errors:a,touched:l,isSubmitting:h}=i,j=a[r.name],w=!!j&&l[r.name],C=d({fieldError:j,showError:w,touched:!!l[r.name],value:r.value});return e(m,{sx:{paddingRight:"horizontal"===x?"16px":0},children:[t(p,{children:t(F,{label:"standard"===v?void 0:o,value:s.isMoment(r.value)?r.value:s(r.value),onChange:e=>{const t=s.isMoment(e)?e:s(e);i.setFieldValue(r.name,t),f&&f(t)},name:c,slotProps:{textField:{variant:v,placeholder:T,error:w,helperText:w||k?C:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:h||b,disablePast:g,disableFuture:y})}),u&&t(n,{variant:"caption",sx:{color:P.palette.text.secondary},children:u})]})}});return"vertical"===x?e(r,{children:["standard"===v&&t(n,{variant:"subtitle1",component:"h3",color:"textPrimary",children:o}),j()]}):t(a,{label:o,children:j()})};export{c as default};
2
+ //# sourceMappingURL=GenericDateFieldBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericDateFieldBase.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDateFieldBase.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { type TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';\n\nconst StyledPickerBase = styled('div')(({ theme }) => ({\n marginTop: theme.spacing(2),\n '& > div': {\n width: '100%',\n },\n}));\n\nexport type GenericDateFieldBaseProps = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n pickerComponent: typeof DatePicker | typeof DateTimePicker;\n};\n\nconst GenericDateFieldBase = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n pickerComponent: PickerComponent,\n}: GenericDateFieldBaseProps) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledPickerBase>\n <PickerComponent\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const momentValue = moment.isMoment(value) ? value : moment(value);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: (() => {\n if (showError) return helperText;\n if (showHelperTextWhenValid) return helperText;\n return undefined;\n })(),\n FormHelperTextProps: {\n children: ' ',\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n </StyledPickerBase>\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDateFieldBase;\n"],"names":["StyledPickerBase","styled","theme","marginTop","spacing","width","GenericDateFieldBase","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","pickerComponent","PickerComponent","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","Box","sx","paddingRight","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","component","FormItemLayout"],"mappings":"6cAWA,MAAMA,EAAmBC,EAAO,MAAPA,EAAc,EAAGC,YAAa,CACnDC,UAAWD,EAAME,QAAQ,GACzB,UAAW,CACPC,MAAO,YAoBTC,EAAuB,EACzBC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,EAC1BC,gBAAiBC,MAEjB,MAAMlB,EAAQmB,IAERC,EAAc,IAEZC,EAACC,GAAMC,KAAMjB,EAAWkB,SAAUhB,EAAUiB,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,GAAIC,GAAI,CAAEC,aAAyB,eAAX7B,EAA0B,OAAS,GAAGe,SAAA,CAC3DJ,EAACvB,EAAgB,CAAA2B,SACbJ,EAACH,EAAe,CACZb,MAAmB,aAAZI,OAAyB+B,EAAYnC,EAE5C8B,MAAOM,EAAOC,SAAShB,EAAMS,OAAST,EAAMS,MAAQM,EAAOf,EAAMS,OACjExB,SAAWwB,IAEP,MAAMQ,EAAcF,EAAOC,SAASP,GAASA,EAAQM,EAAON,GAE5DR,EAAKiB,cAAclB,EAAMH,KAAMoB,GAC3BhC,GACAA,EAASgC,EACZ,EAELpB,KAAMjB,EACNuC,UAAW,CACPC,UAAW,CACPrC,UACAM,cACAgC,MAAOf,EACPC,WACQD,GACAhB,EADkBiB,OACtB,EAGJe,oBAAqB,CACjBvB,SAAU,IACVwB,MAAO,CAAEC,UAAW,YAIhCtC,SAAUkB,GAAgBlB,EAC1BC,YAAaA,EACbsC,cAAerC,MAGtBP,GACGc,EAAC+B,EAAU,CAAC3C,QAAQ,UAAU6B,GAAI,CAAEe,MAAOrD,EAAMsD,QAAQC,KAAKC,WAAW/B,SACpElB,MAIf,IAMlB,MAAe,aAAXG,EAEI0B,EAAAqB,EAAA,CAAAhC,SAAA,CACiB,aAAZhB,GACGY,EAAC+B,EAAU,CAAC3C,QAAQ,YAAYiD,UAAU,KAAKL,MAAM,cAChD5B,SAAApB,IAGRe,OAKNC,EAACsC,EAAc,CAACtD,MAAOA,EAAQoB,SAAAL,KAA+B"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("formik"),a=require("../Form/FormItemLayout.cjs.js"),i=require("@mui/x-date-pickers/DatePicker"),t=require("@mui/material/styles");require("@mui/material/TextField");var l=require("@mui/material/Box"),s=require("@mui/material/Typography"),o=require("../../custom-hooks/useRenderValidText.cjs.js"),n=require("moment");const d=t.styled(i.DatePicker)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"})));module.exports=({label:i,fieldName:u,description:m,validation:c,variant:h="standard",layout:x,onChange:p,disabled:v=!1,disablePast:j=!1,disablefuture:b=!1,placeholder:g,showHelperTextWhenValid:q=!1})=>{const y=t.useTheme(),F=()=>e.jsx(r.Field,{name:u,validate:c,children:({field:r,form:a})=>{const{errors:t,touched:c,isSubmitting:F}=a,T=t[r.name],P=!!T&&c[r.name],f=o({fieldError:T,showError:P,touched:!!c[r.name],value:r.value});return e.jsxs(l,{sx:{paddingRight:"horizontal"===x?"16px":0},children:[e.jsx(d,{label:"standard"===h?void 0:i,value:n.isMoment(r.value)?r.value:n(r.value),onChange:e=>{const i=n.isMoment(e)?e:n(e);a.setFieldValue(r.name,i),p&&p(i)},name:u,slotProps:{textField:{variant:h,placeholder:g,error:P,helperText:P||q?f:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:F||v,disablePast:j,disableFuture:b}),m&&e.jsx(s,{variant:"caption",sx:{color:y.palette.text.secondary},children:m})]})}});return"vertical"===x?e.jsxs(e.Fragment,{children:["standard"===h&&e.jsx(s,{variant:"subtitle1",component:"h3",color:"textPrimary",children:i}),F()]}):e.jsx(a,{label:i,children:F()})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@mui/x-date-pickers/DatePicker"),i=require("./GenericDateFieldBase.cjs.js");module.exports=t=>e.jsx(i,{...t,pickerComponent:r.DatePicker});
2
2
  //# sourceMappingURL=GenericDatePickerField.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericDatePickerField.cjs.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { type TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\n\nconst StyledDateTimePicker = styled(DatePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDatePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n const momentValue = moment.isMoment(value) ? value : moment(value);\n void form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: showError ? helperText : showHelperTextWhenValid ? helperText : undefined,\n FormHelperTextProps: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDatePickerField;\n"],"names":["StyledDateTimePicker","styled","DatePicker","theme","marginTop","spacing","width","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","jsxs","Box","sx","paddingRight","jsx","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","component","FormItemLayout"],"mappings":"uXAUA,MAAMA,EAAuBC,EAAAA,OAAOC,EAAAA,WAAPD,EAAmB,EAAGE,YAAa,CAC5DC,UAAWD,EAAME,QAAQ,GACzBC,MAAO,0BAiBoB,EAC3BC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,MAE1B,MAAMf,EAAQgB,EAAAA,WAERC,EAAc,IAEZC,MAACC,EAAAA,OAAMC,KAAMf,EAAWgB,SAAUd,EAAUe,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,KAAAC,EAAI,CAAAC,GAAI,CAAEC,aAAyB,eAAX5B,EAA0B,OAAS,GACxDa,SAAA,CAAAJ,EAAAoB,IAACzC,EAAoB,CACjBO,MAAmB,aAAZI,OAAyB+B,EAAYnC,EAE5C4B,MAAOQ,EAAOC,SAASlB,EAAMS,OAAST,EAAMS,MAAQQ,EAAOjB,EAAMS,OACjEtB,SAAWsB,IACP,MAAMU,EAAcF,EAAOC,SAAST,GAASA,EAAQQ,EAAOR,GACvDR,EAAKmB,cAAcpB,EAAMH,KAAMsB,GAChChC,GACAA,EAASgC,EACZ,EAELtB,KAAMf,EACNuC,UAAW,CACPC,UAAW,CACPrC,UACAM,cACAgC,MAAOjB,EACPC,WAAYD,GAAyBd,EAAbe,OAAoDS,EAC5EQ,oBAAqB,CACjBzB,SAAU,IACV0B,MAAO,CAAEC,UAAW,YAIhCtC,SAAUgB,GAAgBhB,EAC1BC,YAAaA,EACbsC,cAAerC,IAElBP,GACGY,EAAAoB,IAACa,EAAW,CAAA3C,QAAQ,UAAU4B,GAAI,CAAEgB,MAAOpD,EAAMqD,QAAQC,KAAKC,WACzDjC,SAAAhB,MAIf,IAMlB,MAAe,aAAXG,EAEIwB,EAAAC,KAAAsB,WAAA,CAAAlC,SAAA,CACiB,aAAZd,GACGU,EAAAoB,IAACa,EAAU,CAAC3C,QAAQ,YAAYiD,UAAU,KAAKL,MAAM,cAChD9B,SAAAlB,IAGRa,OAKNC,EAAAoB,IAACoB,EAAc,CAACtD,MAAOA,EAAQkB,SAAAL,KAA+B"}
1
+ {"version":3,"file":"GenericDatePickerField.cjs.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport GenericDateFieldBase, { type GenericDateFieldBaseProps } from './GenericDateFieldBase';\n\ntype Props = Omit<GenericDateFieldBaseProps, 'pickerComponent'>;\n\nconst GenericDatePickerField = (props: Props) => {\n return <GenericDateFieldBase {...props} pickerComponent={DatePicker} />;\n};\n\nexport default GenericDatePickerField;\n"],"names":["props","_jsx","GenericDateFieldBase","pickerComponent","DatePicker"],"mappings":"sJAKgCA,GACrBC,EAAAA,IAACC,EAAyB,IAAAF,EAAOG,gBAAiBC,EAAUA"}
@@ -1,21 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { TextFieldVariants } from '@mui/material/TextField';
3
- import moment from 'moment';
2
+ import { GenericDateFieldBaseProps } from './GenericDateFieldBase.js';
4
3
 
5
- type Props = {
6
- label: string;
7
- placeholder?: string;
8
- fieldName: string;
9
- description?: string;
10
- validation?: (value: string) => string | undefined;
11
- layout?: 'horizontal' | 'vertical';
12
- variant?: TextFieldVariants;
13
- disabled?: boolean;
14
- disablePast?: boolean;
15
- disablefuture?: boolean;
16
- onChange?: (dateTime: moment.Moment) => void;
17
- showHelperTextWhenValid?: boolean;
18
- };
19
- declare const GenericDatePickerField: ({ label, fieldName, description, validation, variant, layout, onChange, disabled, disablePast, disablefuture, placeholder, showHelperTextWhenValid, }: Props) => react_jsx_runtime.JSX.Element;
4
+ type Props = Omit<GenericDateFieldBaseProps, 'pickerComponent'>;
5
+ declare const GenericDatePickerField: (props: Props) => react_jsx_runtime.JSX.Element;
20
6
 
21
7
  export { GenericDatePickerField as default };
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as r,jsx as t}from"react/jsx-runtime";import{Field as a}from"formik";import i from"../Form/FormItemLayout.js";import{DatePicker as o}from"@mui/x-date-pickers/DatePicker";import{styled as l,useTheme as m}from"@mui/material/styles";import"@mui/material/TextField";import n from"@mui/material/Box";import d from"@mui/material/Typography";import s from"../../custom-hooks/useRenderValidText.js";import p from"moment";const u=l(o)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"}))),c=({label:o,fieldName:l,description:c,validation:h,variant:f="standard",layout:x,onChange:v,disabled:b=!1,disablePast:g=!1,disablefuture:y=!1,placeholder:F,showHelperTextWhenValid:T=!1})=>{const P=m(),k=()=>t(a,{name:l,validate:h,children:({field:r,form:a})=>{const{errors:i,touched:m,isSubmitting:h}=a,k=i[r.name],j=!!k&&m[r.name],w=s({fieldError:k,showError:j,touched:!!m[r.name],value:r.value});return e(n,{sx:{paddingRight:"horizontal"===x?"16px":0},children:[t(u,{label:"standard"===f?void 0:o,value:p.isMoment(r.value)?r.value:p(r.value),onChange:e=>{const t=p.isMoment(e)?e:p(e);a.setFieldValue(r.name,t),v&&v(t)},name:l,slotProps:{textField:{variant:f,placeholder:F,error:j,helperText:j||T?w:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:h||b,disablePast:g,disableFuture:y}),c&&t(d,{variant:"caption",sx:{color:P.palette.text.secondary},children:c})]})}});return"vertical"===x?e(r,{children:["standard"===f&&t(d,{variant:"subtitle1",component:"h3",color:"textPrimary",children:o}),k()]}):t(i,{label:o,children:k()})};export{c as default};
1
+ import{jsx as e}from"react/jsx-runtime";import{DatePicker as r}from"@mui/x-date-pickers/DatePicker";import t from"./GenericDateFieldBase.js";const i=i=>e(t,{...i,pickerComponent:r});export{i as default};
2
2
  //# sourceMappingURL=GenericDatePickerField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericDatePickerField.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { type FieldProps, Field } from 'formik';\nimport FormItemLayout from '../Form/FormItemLayout';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { styled, useTheme } from '@mui/material/styles';\nimport { type TextFieldVariants } from '@mui/material/TextField';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport useRenderValidText from '../../custom-hooks/useRenderValidText';\nimport moment from 'moment';\n\nconst StyledDateTimePicker = styled(DatePicker)(({ theme }) => ({\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\ntype Props = {\n label: string;\n placeholder?: string;\n fieldName: string;\n description?: string;\n validation?: (value: string) => string | undefined;\n layout?: 'horizontal' | 'vertical';\n variant?: TextFieldVariants;\n disabled?: boolean;\n disablePast?: boolean;\n disablefuture?: boolean;\n onChange?: (dateTime: moment.Moment) => void;\n showHelperTextWhenValid?: boolean;\n};\nconst GenericDatePickerField = ({\n label,\n fieldName,\n description,\n validation,\n variant = 'standard',\n layout,\n onChange,\n disabled = false,\n disablePast = false,\n disablefuture = false,\n placeholder = undefined,\n showHelperTextWhenValid = false,\n}: Props) => {\n const theme = useTheme();\n\n const renderField = () => {\n return (\n <Field name={fieldName} validate={validation}>\n {({ field, form }: FieldProps) => {\n const { errors, touched, isSubmitting } = form;\n const fieldError = errors[field.name] as string | undefined;\n const showError = !!fieldError && (touched[field.name] as boolean | undefined);\n const helperText = useRenderValidText({\n fieldError,\n showError,\n touched: !!touched[field.name],\n value: field.value,\n });\n\n return (\n <Box sx={{ paddingRight: layout === 'horizontal' ? '16px' : 0 }}>\n <StyledDateTimePicker\n label={variant === 'standard' ? undefined : label}\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n value={moment.isMoment(field.value) ? field.value : moment(field.value)}\n onChange={(value) => {\n const momentValue = moment.isMoment(value) ? value : moment(value);\n void form.setFieldValue(field.name, momentValue);\n if (onChange) {\n onChange(momentValue);\n }\n }}\n name={fieldName}\n slotProps={{\n textField: {\n variant,\n placeholder,\n error: showError,\n helperText: showError ? helperText : showHelperTextWhenValid ? helperText : undefined,\n FormHelperTextProps: {\n children: ' ', // reserves line height for error message\n style: { textAlign: 'right' },\n },\n },\n }}\n disabled={isSubmitting || disabled}\n disablePast={disablePast}\n disableFuture={disablefuture}\n />\n {description && (\n <Typography variant=\"caption\" sx={{ color: theme.palette.text.secondary }}>\n {description}\n </Typography>\n )}\n </Box>\n );\n }}\n </Field>\n );\n };\n\n if (layout === 'vertical') {\n return (\n <>\n {variant === 'standard' && (\n <Typography variant=\"subtitle1\" component=\"h3\" color=\"textPrimary\">\n {label}\n </Typography>\n )}\n {renderField()}\n </>\n );\n }\n\n return <FormItemLayout label={label}>{renderField()}</FormItemLayout>;\n};\n\nexport default GenericDatePickerField;\n"],"names":["StyledDateTimePicker","styled","DatePicker","theme","marginTop","spacing","width","GenericDatePickerField","label","fieldName","description","validation","variant","layout","onChange","disabled","disablePast","disablefuture","placeholder","showHelperTextWhenValid","useTheme","renderField","_jsx","Field","name","validate","children","field","form","errors","touched","isSubmitting","fieldError","showError","helperText","useRenderValidText","value","_jsxs","Box","sx","paddingRight","undefined","moment","isMoment","momentValue","setFieldValue","slotProps","textField","error","FormHelperTextProps","style","textAlign","disableFuture","Typography","color","palette","text","secondary","_Fragment","component","FormItemLayout"],"mappings":"ubAUA,MAAMA,EAAuBC,EAAOC,EAAPD,EAAmB,EAAGE,YAAa,CAC5DC,UAAWD,EAAME,QAAQ,GACzBC,MAAO,WAiBLC,EAAyB,EAC3BC,QACAC,YACAC,cACAC,aACAC,UAAU,WACVC,SACAC,WACAC,YAAW,EACXC,eAAc,EACdC,iBAAgB,EAChBC,cACAC,2BAA0B,MAE1B,MAAMhB,EAAQiB,IAERC,EAAc,IAEZC,EAACC,GAAMC,KAAMf,EAAWgB,SAAUd,EAAUe,SACvC,EAAGC,QAAOC,WACP,MAAMC,OAAEA,EAAMC,QAAEA,EAAOC,aAAEA,GAAiBH,EACpCI,EAAaH,EAAOF,EAAMH,MAC1BS,IAAcD,GAAeF,EAAQH,EAAMH,MAC3CU,EAAaC,EAAmB,CAClCH,aACAC,YACAH,UAAWA,EAAQH,EAAMH,MACzBY,MAAOT,EAAMS,QAGjB,OACIC,EAACC,EAAI,CAAAC,GAAI,CAAEC,aAAyB,eAAX3B,EAA0B,OAAS,GACxDa,SAAA,CAAAJ,EAACtB,EAAoB,CACjBQ,MAAmB,aAAZI,OAAyB6B,EAAYjC,EAE5C4B,MAAOM,EAAOC,SAAShB,EAAMS,OAAST,EAAMS,MAAQM,EAAOf,EAAMS,OACjEtB,SAAWsB,IACP,MAAMQ,EAAcF,EAAOC,SAASP,GAASA,EAAQM,EAAON,GACvDR,EAAKiB,cAAclB,EAAMH,KAAMoB,GAChC9B,GACAA,EAAS8B,EACZ,EAELpB,KAAMf,EACNqC,UAAW,CACPC,UAAW,CACPnC,UACAM,cACA8B,MAAOf,EACPC,WAAYD,GAAyBd,EAAbe,OAAoDO,EAC5EQ,oBAAqB,CACjBvB,SAAU,IACVwB,MAAO,CAAEC,UAAW,YAIhCpC,SAAUgB,GAAgBhB,EAC1BC,YAAaA,EACboC,cAAenC,IAElBP,GACGY,EAAC+B,EAAW,CAAAzC,QAAQ,UAAU2B,GAAI,CAAEe,MAAOnD,EAAMoD,QAAQC,KAAKC,WACzD/B,SAAAhB,MAIf,IAMlB,MAAe,aAAXG,EAEIwB,EAAAqB,EAAA,CAAAhC,SAAA,CACiB,aAAZd,GACGU,EAAC+B,EAAU,CAACzC,QAAQ,YAAY+C,UAAU,KAAKL,MAAM,cAChD5B,SAAAlB,IAGRa,OAKNC,EAACsC,EAAc,CAACpD,MAAOA,EAAQkB,SAAAL,KAA+B"}
1
+ {"version":3,"file":"GenericDatePickerField.js","sources":["../../../../src/components/ui/GenericDatePickerField/GenericDatePickerField.tsx"],"sourcesContent":["import { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport GenericDateFieldBase, { type GenericDateFieldBaseProps } from './GenericDateFieldBase';\n\ntype Props = Omit<GenericDateFieldBaseProps, 'pickerComponent'>;\n\nconst GenericDatePickerField = (props: Props) => {\n return <GenericDateFieldBase {...props} pickerComponent={DatePicker} />;\n};\n\nexport default GenericDatePickerField;\n"],"names":["GenericDatePickerField","props","_jsx","GenericDateFieldBase","pickerComponent","DatePicker"],"mappings":"6IAKA,MAAMA,EAA0BC,GACrBC,EAACC,EAAyB,IAAAF,EAAOG,gBAAiBC"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("formik"),i=require("../Form/FormItemLayout.cjs.js"),a=require("@mui/x-date-pickers/DateTimePicker"),t=require("@mui/material/styles");require("@mui/material/TextField");var l=require("@mui/material/Box"),s=require("@mui/material/Typography"),o=require("../../custom-hooks/useRenderValidText.cjs.js"),n=require("moment");const d=t.styled(a.DateTimePicker)((({theme:e})=>({marginTop:e.spacing(2),width:"100%"})));module.exports=({label:a,fieldName:u,description:m,validation:c,variant:h="standard",layout:x,onChange:p,disabled:v=!1,disablePast:j=!1,disablefuture:b=!1,placeholder:g,showHelperTextWhenValid:q=!1})=>{const T=t.useTheme(),y=()=>e.jsx(r.Field,{name:u,validate:c,children:({field:r,form:i})=>{const{errors:t,touched:c,isSubmitting:y}=i,F=t[r.name],P=!!F&&c[r.name],f=o({fieldError:F,showError:P,touched:!!c[r.name],value:r.value});return e.jsxs(l,{sx:{paddingRight:"horizontal"===x?"16px":0},children:[e.jsx(d,{label:"standard"===h?void 0:a,value:n.isMoment(r.value)?r.value:n(r.value),onChange:e=>{const a=n.isMoment(e)?e:n(e);i.setFieldValue(r.name,a),p&&p(a)},name:u,slotProps:{textField:{variant:h,placeholder:g,error:P,helperText:P||q?f:void 0,FormHelperTextProps:{children:" ",style:{textAlign:"right"}}}},disabled:y||v,disablePast:j,disableFuture:b}),m&&e.jsx(s,{variant:"caption",sx:{color:T.palette.text.secondary},children:m})]})}});return"vertical"===x?e.jsxs(e.Fragment,{children:["standard"===h&&e.jsx(s,{variant:"subtitle1",component:"h3",color:"textPrimary",children:a}),y()]}):e.jsx(i,{label:a,children:y()})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@mui/x-date-pickers/DateTimePicker"),i=require("../GenericDatePickerField/GenericDateFieldBase.cjs.js");module.exports=t=>e.jsx(i,{...t,pickerComponent:r.DateTimePicker});
2
2
  //# sourceMappingURL=GenericDateTimePickerField.cjs.js.map