25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

229 satır
8.2 KiB

  1. import {
  2. Grid, TextField, Stack, Typography
  3. } from '@mui/material';
  4. import Combo from "./Combo";
  5. export const notNullFieldLabel = (label) => {
  6. return (<>{label}<span style={{ "color": "red" }}>*</span></>)
  7. }
  8. export const getDateField = ({ label, valueName, form, disabled }) => {
  9. return <Grid container spacing={1} alignItems={"center"}>
  10. <Grid item xs={12} md={3} lg={3} sx={{ display: 'flex', alignItems: 'center' }}>
  11. <Typography variant="pnspsFormParagraphBold">{label}</Typography>
  12. </Grid>
  13. <Grid item xs={12} md={6} lg={6}>
  14. {initField({
  15. type: "date",
  16. valueName: valueName,
  17. form: form,
  18. disabled: disabled
  19. })}
  20. </Grid>
  21. </Grid>;
  22. }
  23. export const getTextField = ({ label, valueName, form, disabled }) => {
  24. return <Grid container alignItems={"center"} sx={{mb:2}}>
  25. <Grid item xs={12} sm={12} md={12} lg={12}>
  26. <Grid container spacing={1}>
  27. <Grid item xs={12} sm={12} md={3} lg={3}
  28. sx={{ display: 'flex', alignItems: 'center' }} >
  29. <Typography variant="pnspsFormParagraphBold">{label}</Typography>
  30. </Grid>
  31. <Grid item xs={12} sm={12} md={6} lg={6}>
  32. {initField({
  33. type: "text",
  34. valueName: valueName,
  35. form: form,
  36. disabled: disabled
  37. })}
  38. </Grid>
  39. </Grid>
  40. </Grid>
  41. </Grid>;
  42. }
  43. export const getCarOfField = ({ label, valueName, form, disabled }) => {
  44. return <Grid container alignItems={"center"} >
  45. <Grid item xs={12} sm={12} md={12} lg={12}>
  46. <Grid container spacing={1}>
  47. <Grid item xs={12} sm={12} md={3} lg={3}
  48. sx={{ display: 'flex', alignItems: 'center' }} >
  49. <Typography variant="pnspsFormParagraphBold">{label}</Typography>
  50. </Grid>
  51. <Grid item xs={12} sm={12} md={6} lg={6}>
  52. {initField({
  53. type: "text",
  54. valueName: valueName,
  55. form: form,
  56. disabled: disabled
  57. })}
  58. </Grid>
  59. </Grid>
  60. </Grid>
  61. </Grid>;
  62. }
  63. export const getTextArea = ({ label, valueName, form, disabled, inputProps, ...props }) => {
  64. return <Grid container spacing={1} alignItems={"center"}>
  65. <Grid item xs={12} md={3} lg={3}
  66. sx={{ display: 'flex', alignItems: 'center' }}>
  67. <Typography variant="pnspsFormParagraphBold">{label}</Typography>
  68. </Grid>
  69. <Grid item xs={12} md={6} lg={6}>
  70. {initField({
  71. type: "text",
  72. valueName: valueName,
  73. form: form,
  74. disabled: disabled,
  75. minRows: 4,
  76. maxRows: 4,
  77. inputProps: inputProps,
  78. InputProps: {
  79. row: 10,
  80. multiline: true,
  81. inputComponent: 'textarea',
  82. style: { minHeight:'42.5px', maxHeight: '50vh',height: 'auto' },
  83. },
  84. props
  85. })}
  86. </Grid>
  87. </Grid>;
  88. }
  89. export const getPhoneField = ({ label, valueName, form, disabled }) => {
  90. return <Grid container spacing={1} alignItems={"center"} sx={{mb:2}}>
  91. <Grid item xs={12} md={3} lg={3}
  92. sx={{ display: 'flex', alignItems: 'center' }}>
  93. <Typography variant="pnspsFormParagraphBold">{label}</Typography>
  94. </Grid>
  95. <Grid item xs={12} md={6} lg={6}>
  96. <Stack direction="row">
  97. {initField({
  98. type: "tel",
  99. valueName: valueName.code,
  100. form: form,
  101. disabled: disabled,
  102. width: '35%',
  103. style:{minWidth: 80,},
  104. handleChange: (event) => {
  105. const value = event.target.value;
  106. const name = event.target.name;
  107. if (value.match(/[^0-9]/)) {
  108. return event.preventDefault();
  109. }
  110. if (valueName.code === name) form.setFieldValue(valueName.code, value)
  111. if (valueName.num === name) form.setFieldValue(valueName.num, value)
  112. }
  113. })}
  114. {initField({
  115. type: "tel",
  116. valueName: valueName.num,
  117. form: form,
  118. disabled: disabled,
  119. handleChange: (event) => {
  120. const value = event.target.value;
  121. const name = event.target.name;
  122. if (value.match(/[^0-9]/)) {
  123. return event.preventDefault();
  124. }
  125. if (valueName.code === name) form.setFieldValue(valueName.code, value)
  126. if (valueName.num === name) form.setFieldValue(valueName.num, value)
  127. }
  128. })}
  129. </Stack>
  130. </Grid>
  131. </Grid>;
  132. }
  133. export const getAddressField = ({ label, valueName, form, disabled }) => {
  134. return <Grid container spacing={1} alignItems={"top"}>
  135. <Grid item xs={12} md={3} lg={1} mt={1} sx={{ display: 'flex', alignItems: 'top' }}>
  136. <Grid item lg={12} sx={{ alignItems: 'center' }}>
  137. <Typography variant="pnspsFormParagraphBold">{label}</Typography>
  138. </Grid>
  139. </Grid>
  140. <Grid item xs={12} md={6} lg={6}>
  141. <Grid item lg={12} sx={{mb:2}}>
  142. {initField({
  143. type: "text",
  144. valueName: valueName[0],
  145. form: form,
  146. disabled: disabled
  147. })}
  148. </Grid>
  149. <Grid item lg={12} sx={{mb:2}}>
  150. {initField({
  151. type: "text",
  152. valueName: valueName[1],
  153. form: form,
  154. disabled: disabled
  155. })}
  156. </Grid>
  157. <Grid item lg={12} sx={{mb:2}}>
  158. {initField({
  159. type: "text",
  160. valueName: valueName[2],
  161. form: form,
  162. disabled: disabled
  163. })}
  164. </Grid>
  165. </Grid>
  166. </Grid>;
  167. }
  168. export const getComboField = ({ label, dataList, valueName, form, disabled, getOptionLabel, onInputChange, onChange, filterOptions, ...props }) => {
  169. let err = Boolean(form.errors[valueName]);
  170. return <Grid container spacing={1} alignItems={"center"} sx={{mb:2}}>
  171. <Grid item xs={12} md={3} lg={3} sx={{ display: 'flex', alignItems: 'center' }}>
  172. <Typography variant="pnspsFormParagraphBold">{label}</Typography>
  173. </Grid>
  174. <Grid item xs={12} md={6} lg={6}>
  175. <Combo
  176. valueName={valueName}
  177. disabled={disabled}
  178. dataList={dataList}
  179. form={form}
  180. error={err}
  181. helperText={form.errors[valueName] ? form.errors[valueName] : ''}
  182. filterOptions={filterOptions}
  183. getOptionLabel={getOptionLabel}
  184. onInputChange={onInputChange}
  185. onChange={onChange}
  186. {...props}
  187. />
  188. </Grid>
  189. </Grid>;
  190. }
  191. export const initField = ({ type, valueName, form, disabled, multiline, handleChange, placeholder, inputProps, InputProps, width, ...props }) => {
  192. let err = Boolean(form.errors[valueName]);
  193. return <TextField
  194. fullWidth
  195. multiline={multiline}
  196. id={valueName}
  197. name={valueName}
  198. type={type}
  199. placeholder={placeholder}
  200. inputProps={inputProps}
  201. InputProps={InputProps}
  202. error={err}
  203. helperText={form.errors[valueName] ? form.errors[valueName] : ''}
  204. onChange={handleChange ? handleChange : form.handleChange}
  205. value={form.values[valueName]}
  206. disabled={disabled}
  207. sx={{
  208. width: width ? width : '100%'
  209. }}
  210. {...props}
  211. />
  212. }