@mamrp/components 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../react-shim.js","../src/auto-complete/selector/index.tsx","../src/constants/httpMethod.ts","../src/auto-complete/selector/custome-style.tsx","../src/license-plate/index.tsx","../src/constants/letters.ts","../src/button/search/index.tsx","../src/card-skeleton/index.tsx","../src/checkbox/index.tsx","../src/confirmation-modal/index.tsx","../src/custom-time-picker/index.tsx","../src/date-filter-range/index.tsx","../src/date-picker/index.tsx","../src/date-filter/index.tsx","../src/date-time-picker/index.tsx","../src/date-time-range-picker/index.tsx","../src/license-plate-search/index.tsx","../src/loading/index.tsx","../src/mobile-date-time-picker/index.tsx","../src/modal/index.tsx","../src/no-result/index.tsx","../src/pagination-list/index.tsx","../src/radio-button/index.tsx","../src/selector/index.tsx","../src/spinner/sonar/index.tsx","../src/stepper/index.tsx","../src/switch-button/index.tsx","../src/table/index.tsx","../src/text-field/number-type/index.tsx","../src/text-field/text-type/index.tsx","../src/upload-image/index.tsx","../src/accordion/index.tsx"],"sourcesContent":["import * as React from \"react\";\nexport { React };\n","import { Popper, Typography } from \"@mui/material\";\nimport Autocomplete from \"@mui/material/Autocomplete\";\nimport TextField from \"@mui/material/TextField\";\nimport * as React from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\nimport { numberToHttpMethodMapping } from \"../../constants/httpMethod\";\nimport CustomeStyle from \"./custome-style\";\ninterface MultipleSelectChipProps {\n name: string;\n control: Control<any>;\n label?: string;\n data?: any;\n multipleitems?: boolean;\n isLoading?: boolean;\n disabled?: boolean;\n size?: \"small\" | \"medium\";\n clear?: boolean;\n}\n\nexport default function MultipleSelectChip({\n name,\n control,\n label,\n data,\n multipleitems, //قابلیت انتخاب چند گزینه ای\n isLoading,\n disabled = false,\n size = \"medium\",\n clear = false,\n}: MultipleSelectChipProps) {\n // Prepare data options\n const dataOptions =\n data?.map((value: any) => ({\n title:\n value.userName || value.name || `${value.firstName} ${value.lastName}`,\n key: value.id || `key_${Math.random()}`, // Assuming each item has an 'id'\n httpMethod: numberToHttpMethodMapping[value.httpMethod],\n url: value.url,\n licensePlate: value.licensePlate,\n })) || [];\n\n // Combine options with the \"Select All\" option if multiple items are enabled\n const combinedOptions = [\n multipleitems &&\n dataOptions.length > 0 && { title: \"انتخاب همه\", key: \"All\" },\n ...dataOptions,\n ].filter(Boolean); // Remove any false values\n\n const [selectedValues, setSelectedValues] = React.useState<\n { title: string; key: string }[]\n >([]);\n\n const handleChange = (\n event: any,\n value: any,\n onChange: (value: any) => void\n ) => {\n console.log(value);\n\n if (multipleitems) {\n if (value.some((item: any) => item.title === \"انتخاب همه\")) {\n const allItems = [...dataOptions];\n setSelectedValues(allItems);\n onChange(allItems.map((item) => item.key));\n } else {\n setSelectedValues(value);\n onChange(value.map((item: any) => item.key));\n }\n } else {\n setSelectedValues([value]); // Wrap single value in an array for consistency\n onChange(value?.key || null);\n }\n };\n\n function search(option: any, value: any) {\n //متد سرچ متن\n if (option.title.includes(value.title)) {\n return true;\n }\n if (value.title.includes(option.title)) {\n return true;\n }\n return false;\n }\n const CustomStyledValue = ({ children }: { children: any }) => (\n <span style={{ color: \"green\", fontStyle: \"italic\" }}>{children}</span>\n );\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field: { onChange, value, ref }, fieldState: { error } }) => (\n <Autocomplete\n disableClearable={clear}\n disabled={disabled || isLoading}\n disablePortal\n size={size}\n disableCloseOnSelect={multipleitems} // Keep dropdown open on multiple select\n options={combinedOptions}\n multiple={multipleitems}\n sx={{\n width: \"100%\",\n }}\n noOptionsText=\"داده ای برای نمایش وجود ندارد\"\n value={\n multipleitems\n ? selectedValues\n : combinedOptions.find(\n (option) => String(option.key) === String(value)\n ) || { title: \"\", key: \"\" }\n }\n onChange={(event, value) => {\n handleChange(event, value, onChange);\n }}\n isOptionEqualToValue={(option, value) =>\n String(option.key) === String(value?.key)\n }\n getOptionLabel={(option) => option.title}\n loading={isLoading}\n loadingText=\"در حال بارگذاری...\"\n renderOption={(props, option) => {\n //استایل دهی کاستوم شده برای سلکتور\n return (\n <CustomeStyle\n props={props}\n option={option}\n multipleitems={!!multipleitems}\n />\n );\n }}\n slots={{ popper: Popper }} // New API\n slotProps={{\n popper: {\n modifiers: [\n {\n name: \"preventOverflow\",\n options: {\n boundary: \"window\",\n rootBoundary: \"viewport\",\n altBoundary: true,\n padding: 10,\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top\", \"bottom\"], // Ensures it flips to the top if needed\n },\n },\n ],\n },\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n label={label}\n error={!!error}\n helperText={error?.message}\n inputRef={ref}\n InputProps={{\n ...params.InputProps,\n startAdornment: (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n maxHeight: \"250px\", // Set the maximum height for the chip container\n overflowY: \"auto\", // Enable vertical scroll\n padding: 0, // Remove any padding to ensure chips stay inside the container\n }}\n >\n {/* //نمایش متن در حال بارگزاری در حالت لود شدن دیتا */}\n <>\n {isLoading ? (\n <Typography sx={{ marginRight: 1 }}>\n در حال بارگذاری...\n </Typography>\n ) : null}\n {params.InputProps.startAdornment}\n </>\n {/* //مدریت ارتفاع سلکتور در حالتی که مقادیر چند انتخابی بیش از ظرفیت باشند و بصورت کنترل شده آیتم هارا مدریت میکنیم */}\n </div>\n ),\n }}\n />\n )}\n />\n )}\n />\n );\n}\n","export const numberToHttpMethodMapping: { [key: number]: string } = {\n 0: \"POST\",\n 1: \"GET\",\n 2: \"PUT\",\n 3: \"DELETE\",\n};\n\nexport const httpMethodToNumberMapping: { [key: string]: number } = {\n POST: 0,\n GET: 1,\n PUT: 2,\n DELETE: 3,\n};\n","import React from \"react\";\nimport LicensePlate from \"../../license-plate\";\nimport { Box } from \"@mui/material\";\nimport { FaCar } from \"react-icons/fa\";\nexport default function CustomeStyle({\n props,\n option,\n multipleitems,\n}: {\n props: any;\n option: {\n title: string;\n key: string | number;\n httpMethod?: string;\n url?: string;\n licensePlate?: string;\n };\n multipleitems: boolean;\n}) {\n let methodColor = \"black\"; // Default color\n let boldOption = multipleitems ? \"bold\" : \"normal\"; //درحالت انتخاب چند گزینه ، متن حالت bold دارد\n if (option.httpMethod === \"GET\") {\n methodColor = \"#4990e2\";\n } else if (option.httpMethod === \"POST\") {\n methodColor = \"green\";\n } else if (option.httpMethod === \"DELETE\") {\n methodColor = \"red\";\n } else if (option.httpMethod === \"PUT\") {\n methodColor = \"orange\";\n }\n if (option.httpMethod || option.url) {\n //نمایش بصورت تیتر اصل و لینک زیر تیتر و متد روبه روی آن\n return (\n <li {...props} key={option.key}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n width: \"100%\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n width: \"100%\",\n }}\n >\n <div style={{ fontWeight: boldOption }}>{option.title}</div>\n <span style={{ fontSize: \"small\", color: \"gray\" }}>\n {option.url}\n </span>\n </div>\n <div style={{ fontWeight: \"normal\", color: methodColor }}>\n {option.httpMethod}\n </div>\n </div>\n </li>\n );\n } else if (option.licensePlate) {\n // اگر LicensePlate وجود داشته باشد:\n // خروجی به صورت پلاک نمایش داده می‌شود.\n return (\n <li {...props} key={option.key}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n width: \"100%\",\n flexWrap: \"wrap\",\n }}\n >\n <FaCar />\n <Box sx={{ marginLeft: \"7px\" }}>{option.title}</Box>\n <div\n style={{\n marginTop: 1,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n width: \"100%\",\n }}\n >\n <LicensePlate data={option.licensePlate} />\n </div>\n </div>\n </li>\n );\n } else {\n //وقتی که فقط دارای تایتل است\n return (\n <li {...props} key={option.key}>\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n width: \"100%\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n width: \"100%\",\n }}\n >\n <div style={{ fontWeight: boldOption }}>{option.title}</div>\n </div>\n </div>\n </li>\n );\n }\n}\n","import { Box, IconButton, Typography, useTheme } from \"@mui/material\";\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport Image from \"next/image\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport { IoClose } from \"react-icons/io5\";\nimport letters from \"../constants/letters\";\nimport { convertToEnglishDigits, convertToPersianDigits } from \"@mamrp/utils\";\n\ninterface LicensePlateProps {\n width?: CSSProperties[\"width\"];\n name?: string;\n setValue?: any;\n data?: string;\n readOnly?: boolean;\n size?: \"small\" | \"medium\";\n}\n\nexport default function LicensePlate({\n width = \"100%\",\n name,\n setValue,\n data,\n readOnly = true,\n size,\n}: LicensePlateProps) {\n const theme = useTheme();\n const [open, setOpen] = useState(false);\n const [selectedValue, setSelectedValue] = useState(\"\");\n const [inputValues, setInputValues] = useState({\n input1: \"\",\n input2: \"\",\n input3: \"\",\n input4: \"\",\n });\n\n const inputRefs = {\n input1: useRef<HTMLInputElement>(null),\n input2: useRef<HTMLInputElement>(null),\n input3: useRef<HTMLInputElement>(null),\n input4: useRef<HTMLInputElement>(null),\n };\n\n // Initialize inputValues with data if available\n useEffect(() => {\n if (data) {\n //کلمه ایران در کامپوننت پلاک دچار تداخل میکند ، همین اول قبل ورود حذف شود\n let newdata = data.split(\" \").filter((word) => word !== \"ایران\");\n setInputValues({\n input1: newdata[0],\n input2: newdata[1],\n input3: newdata[2],\n input4: newdata[3],\n });\n } else if (data == \"\") {\n setInputValues({\n input1: \"\",\n input2: \"\",\n input3: \"\",\n input4: \"\",\n });\n }\n }, [data]);\n\n const handleInputChange = (\n enteredInput: string,\n inputName: string,\n maxlength: number,\n minLength?: number\n ) => {\n const newInputValues = {\n ...inputValues,\n [inputName]: enteredInput,\n };\n setInputValues(newInputValues);\n\n const formattedPlate =\n convertToEnglishDigits(newInputValues.input1) +\n \" \" +\n newInputValues.input2 +\n \" \" +\n convertToEnglishDigits(newInputValues.input3) +\n \" ایران \" +\n convertToEnglishDigits(newInputValues.input4);\n\n //خروجی استاندارد سرویس بک اند\n setValue(name, formattedPlate);\n\n if (enteredInput.length === maxlength || minLength === 1) {\n if (inputName === \"input1\") {\n setOpen(true);\n } else if (inputName === \"input2\") {\n setSelectedValue(enteredInput);\n setOpen(false);\n } else {\n inputRefs[\"input4\"]?.current?.focus();\n }\n }\n };\n\n return (\n <>\n <Box\n sx={{\n width: width,\n border: \"1px solid #e5e7eb\",\n borderRadius: \"7px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n dir=\"ltr\"\n >\n {/* Country Flag and Text */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <Box\n sx={{\n backgroundColor: \"#172554\",\n width: size === \"small\" ? \"30px\" : \"36px\",\n minHeight: size === \"small\" ? \"40px\" : \"52px\",\n maxHeight: size === \"small\" ? \"40px\" : \"52px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: \"7px\",\n mr: 0.4,\n }}\n >\n <Image\n src=\"/assets/images/iran-flag-dark.svg\"\n alt=\"Iran Flag\"\n width={size === \"small\" ? 16 : 20} // Adjust width dynamically\n height={size === \"small\" ? 14 : 12} // Adjust height dynamically\n />\n </Box>\n </Box>\n <Box\n sx={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-around\",\n fontSize: \"1.125rem\",\n lineHeight: \"1.75rem\",\n fontWeight: 600,\n color: \"#1f2937\",\n alignItems: \"center\",\n }}\n >\n {/* input1 */}\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input1}\n type=\"text\"\n maxLength={2}\n placeholder=\"- -\"\n style={{\n color: theme.palette.text.primary,\n width: \"24px\",\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"text\",\n }}\n value={convertToPersianDigits(inputValues.input1)}\n onChange={(e) => handleInputChange(e.target.value, \"input1\", 2)}\n />\n\n {/* input2 + arrow */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n {/* Arrow icon (only if !data) */}\n {!data && (\n <Image\n src=\"/assets/images/solid-arrow-down.svg\"\n width={20}\n height={20}\n alt=\"arrow\"\n style={{ cursor: \"pointer\", marginRight: 4 }}\n />\n )}\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input2}\n onClick={() => {\n if (!(readOnly || (!!data && readOnly))) {\n setOpen(true);\n }\n }}\n type=\"text\"\n minLength={1}\n maxLength={3}\n placeholder=\"-\"\n style={{\n color: theme.palette.text.primary,\n width: \"28px\",\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"pointer\",\n }}\n value={inputValues.input2}\n readOnly\n />\n </Box>\n\n {/* Dialog for letters */}\n <Dialog\n dir=\"rtl\"\n open={open}\n onClose={() => setOpen(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n backgroundColor: \"#f5f5f5\", // bg-neutral-100\n }}\n >\n <DialogTitle id=\"alert-dialog-title\">انتخاب حرف پلاک</DialogTitle>\n <Box\n sx={{\n cursor: \"pointer\",\n paddingRight: \"1rem\",\n color: \"#737373\", // text-neutral-500\n }}\n onClick={() => setOpen(false)}\n >\n <IconButton>\n <IoClose />\n </IconButton>\n </Box>\n </Box>\n\n <DialogContent>\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexWrap: \"wrap\",\n gap: 2,\n my: 2,\n }}\n >\n {letters.map((letter, index) => (\n <Button\n key={index}\n variant=\"outlined\"\n color=\"primary\"\n sx={{\n border: \"none\",\n backgroundColor: \"#f0f0f0\",\n width: \"70px\",\n height: \"50px\",\n fontWeight: \"bold\",\n \":hover\": {\n backgroundColor: \"#e3e3e3\",\n },\n }}\n onClick={() => handleInputChange(letter, \"input2\", 3, 1)}\n >\n <Typography color=\"#117A4F\" fontWeight={\"bold\"}>\n {letter}\n </Typography>\n </Button>\n ))}\n </Box>\n\n {/* Clear Letter Button */}\n <Box sx={{ display: \"flex\", justifyContent: \"center\", mt: 2.5 }}>\n <Button\n sx={{ width: \"6rem\" }}\n variant=\"outlined\"\n color=\"error\"\n onClick={() => {\n handleInputChange(\"\", \"input2\", 3, 1); // Clear input2\n setOpen(false); // Close dialog\n }}\n >\n حذف حرف\n </Button>\n </Box>\n </DialogContent>\n </Dialog>\n\n {/* input3 */}\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input3}\n type=\"text\"\n maxLength={3}\n placeholder=\"- - -\"\n style={{\n color: theme.palette.text.primary,\n width: \"40px\", // w-10\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"text\",\n }}\n value={convertToPersianDigits(inputValues.input3)}\n onChange={(e) => handleInputChange(e.target.value, \"input3\", 3)}\n />\n\n {/* Divider */}\n <Box\n sx={{\n height: \"40px\",\n width: \"1px\",\n backgroundColor: \"#e5e7eb\",\n }}\n />\n\n {/* input4 + Iran Logo */}\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column-reverse\",\n gap: size === \"small\" ? 0.25 : 1,\n alignItems: \"center\",\n }}\n >\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input4}\n type=\"text\"\n maxLength={2}\n placeholder=\"- -\"\n style={{\n color: theme.palette.text.primary,\n width: \"24px\",\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"text\",\n }}\n value={convertToPersianDigits(inputValues.input4)}\n onChange={(e) => handleInputChange(e.target.value, \"input4\", 2)}\n />\n <Image\n src=\"/assets/images/iran.svg\"\n alt=\"Iran\"\n width={size === \"small\" ? 25 : 30} // Adjust width dynamically\n height={size === \"small\" ? 21 : 26} // Adjust height dynamically\n />\n </Box>\n </Box>\n </Box>\n </>\n );\n}\n","const letters = [\n \"الف\",\n \"ب\",\n \"پ\",\n \"ت\",\n \"ث\",\n \"ج\",\n \"چ\",\n \"ح\",\n \"خ\",\n \"د\",\n \"ذ\",\n \"ر\",\n \"ز\",\n \"ژ\",\n \"س\",\n \"ش\",\n \"ص\",\n \"ض\",\n \"ط\",\n \"ظ\",\n \"ع\",\n \"غ\",\n \"ف\",\n \"ق\",\n \"ک\",\n \"گ\",\n \"ل\",\n \"م\",\n \"ن\",\n \"و\",\n \"ه\",\n \"ی\",\n];\n\nexport default letters;\n","import { Box, Button, Stack, styled, useTheme } from \"@mui/material\";\nimport React from \"react\";\nimport { IoIosArrowUp } from \"react-icons/io\";\n\n// Define the type for the props\ninterface AdvancedSearchButtonProps {\n isShowFilter: boolean;\n setIsShowFilter: React.Dispatch<React.SetStateAction<boolean>>;\n color?: \"black\" | \"white\";\n title?: string;\n optional?: any;\n icon?: any;\n borderRadius?: string;\n paddingY?: string;\n fontSize?: string;\n}\n\n// Typing for the AnimatedIcon component's props\nconst AnimatedIcon = styled(IoIosArrowUp, {\n shouldForwardProp: (prop) => prop !== \"isShowFilter\", // Don't pass isShowFilter to the underlying component\n})<{ isShowFilter: boolean }>(({ isShowFilter }) => ({\n transition: \"all 0.5s ease\",\n transform: `rotate(${isShowFilter ? 0 : \"0.5turn\"})`,\n}));\n\nexport default function AdvancedSearchButton({\n isShowFilter,\n setIsShowFilter,\n color = \"black\",\n title = \"فرم جستجو\",\n optional,\n icon,\n borderRadius,\n paddingY,\n fontSize,\n}: AdvancedSearchButtonProps) {\n const theme = useTheme();\n return (\n <Button\n onClick={() => {\n setIsShowFilter((prev) => !prev);\n optional && optional(false);\n }}\n startIcon={<AnimatedIcon isShowFilter={isShowFilter} />}\n sx={{\n color: theme.palette.text.primary ?? color,\n borderRadius: borderRadius,\n paddingY: paddingY,\n fontSize: fontSize,\n }}\n fullWidth\n >\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"}>\n <Box>{icon ? icon : null}</Box>\n <Box>{title}</Box>\n </Stack>\n </Button>\n );\n}\n","import React from \"react\";\nimport { Box, Card, CardContent, Skeleton, Stack } from \"@mui/material\";\n\nfunction SkeletonCard() {\n return (\n <Card\n sx={{\n minWidth: 300,\n borderRadius: \"12px\",\n }}\n >\n <CardContent sx={{ padding: \"1rem 1rem !important\" }}>\n <Stack spacing={2}>\n {/* Car Name and Driver Name */}\n <Stack direction={\"row\"} justifyContent={\"space-between\"}>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"}>\n <Skeleton variant=\"circular\" width={24} height={24} />\n <Skeleton variant=\"text\" width={100} height={20} />\n </Stack>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"}>\n <Skeleton variant=\"circular\" width={24} height={24} />\n <Skeleton variant=\"text\" width={100} height={20} />\n </Stack>\n </Stack>\n\n {/* Date, Distance, and Status */}\n <Stack direction={\"row\"} justifyContent={\"space-between\"}>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"}>\n <Skeleton variant=\"circular\" width={24} height={24} />\n <Skeleton variant=\"text\" width={100} height={20} />\n </Stack>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"}>\n <Skeleton variant=\"circular\" width={24} height={24} />\n <Skeleton variant=\"text\" width={80} height={20} />\n </Stack>\n </Stack>\n\n {/* Fuel and Price */}\n <Stack\n direction={\"row\"}\n spacing={2}\n alignItems={\"center\"}\n justifyContent={\"space-between\"}\n >\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"}>\n <Skeleton variant=\"circular\" width={24} height={24} />\n <Skeleton variant=\"text\" width={80} height={20} />\n </Stack>\n <Stack direction={\"row\"} spacing={1} alignItems={\"center\"}>\n <Skeleton variant=\"circular\" width={24} height={24} />\n <Skeleton variant=\"text\" width={80} height={20} />\n </Stack>\n </Stack>\n\n {/* License Plate */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n paddingY: \"0.5rem\",\n }}\n >\n <Skeleton variant=\"rectangular\" width={240} height={40} />\n </Box>\n\n {/* Button */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n paddingTop: \"1.5rem\",\n }}\n >\n <Skeleton variant=\"rectangular\" width={200} height={40} />\n </Box>\n </Stack>\n </CardContent>\n </Card>\n );\n}\n\nexport default SkeletonCard;\n","import { Control, Controller } from \"react-hook-form\";\nimport { FormControlLabel, Checkbox } from \"@mui/material\";\nimport React from \"react\";\n\n// داخل کامپوننت شما\nexport default function CustomCheckbox({ name,control,label, }:{name:string,control:Control<any>,label:string}) {\n return (\n <>\n <Controller\n name={name}\n control={control}\n defaultValue={false} // مقدار پیش‌فرض\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n {...field}\n checked={field.value} // اتصال مقدار چک‌باکس به فرم\n />\n }\n label={label}\n />\n )}\n />\n </>\n );\n}\n\n\n","import * as React from \"react\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport { Box, Button, Divider, IconButton } from \"@mui/material\";\nimport { AiOutlineDeliveredProcedure } from \"react-icons/ai\";\nimport { MdClose, MdOutlineCancel } from \"react-icons/md\";\nimport { ReactNode } from \"react\";\nimport Link from \"next/link\";\n\ninterface ConfirmationDialogProps {\n open: boolean;\n handleClose: () => void;\n callback: (params: any) => void;\n callbackParams: any;\n headerText: string;\n bodyText: ReactNode;\n}\n\nexport default function ConfirmationDialog({\n open,\n handleClose,\n callback,\n callbackParams,\n headerText,\n bodyText,\n}: ConfirmationDialogProps) {\n return (\n <Dialog open={open} onClose={handleClose} fullWidth maxWidth=\"sm\">\n <Box>\n <DialogTitle\n fontWeight={700}\n fontSize={\"1.2rem\"}\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"4px\"}\n >\n <AiOutlineDeliveredProcedure style={{ color: \"inherit\" }} size={22} />\n {headerText}\n </DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <MdClose />\n </IconButton>\n <Divider sx={{ my: \"10px\" }} />\n <DialogContent>{bodyText}</DialogContent>\n <DialogActions\n sx={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n width: \"100%\",\n gap: \"12px\",\n alignItems: \"center\",\n padding: \"2rem\",\n }}\n >\n <Link href={\"/module/transportation/workflow/confirm-deliver\"}>\n <Button\n onClick={() => {\n callback(callbackParams);\n handleClose();\n }}\n variant=\"contained\"\n color=\"primary\"\n startIcon={<AiOutlineDeliveredProcedure size={16} />}\n sx={{ minWidth: \"120px\" }}\n >\n تأیید\n </Button>\n </Link>\n <Button\n onClick={handleClose}\n variant=\"outlined\"\n color=\"inherit\"\n startIcon={<MdOutlineCancel />}\n sx={{ minWidth: \"120px\" }}\n >\n انصراف\n </Button>\n </DialogActions>\n </Box>\n </Dialog>\n );\n}\n","import {\n Box,\n Button,\n Divider,\n IconButton,\n Typography,\n TextField,\n InputAdornment,\n useTheme,\n} from \"@mui/material\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport { useState, useEffect, useRef } from \"react\";\nimport { MdClose } from \"react-icons/md\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport { Control, Controller } from \"react-hook-form\";\nimport { Clock } from \"@mamrp/icons/common\";\n\ninterface CustomTimePickerProps {\n name: string;\n control: Control<any>;\n label: string;\n size?: \"small\" | \"medium\";\n fullwidth?: boolean;\n autoRefresh?: boolean;\n disabled?: boolean;\n}\n\nexport default function CustomTimePicker({\n name,\n control,\n label,\n size = \"small\",\n fullwidth = false,\n autoRefresh = false,\n disabled = false,\n}: CustomTimePickerProps) {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState: { error } }) => (\n <TimePickerComponent\n {...field}\n label={label}\n size={size}\n error={error}\n fullwidth={fullwidth}\n autoRefresh={autoRefresh}\n disabled={disabled}\n />\n )}\n />\n );\n}\n\ninterface TimePickerComponentProps {\n value: string;\n onChange: (value: string) => void;\n onBlur: () => void;\n label: string;\n size?: \"small\" | \"medium\";\n error?: any;\n fullwidth?: boolean;\n autoRefresh?: boolean;\n disabled?: boolean;\n}\n\nconst TimePickerComponent: React.FC<TimePickerComponentProps> = ({\n value,\n onChange,\n onBlur,\n label,\n size = \"small\",\n error,\n fullwidth,\n autoRefresh,\n disabled = false,\n}) => {\n const theme = useTheme();\n\n const initialHour = value ? parseInt(value.split(\":\")[0]) : null;\n const initialMinute = value ? parseInt(value.split(\":\")[1]) : null;\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [selectedHour, setSelectedHour] = useState<number | null>(initialHour);\n const [selectedMinute, setSelectedMinute] = useState<number | null>(\n initialMinute\n );\n\n const hourRefs = useRef<(HTMLDivElement | null)[]>([]);\n const minuteRefs = useRef<(HTMLDivElement | null)[]>([]);\n\n const hours = Array.from({ length: 24 }, (_, i) => i);\n const minutes = Array.from({ length: 60 }, (_, i) => i);\n\n useEffect(() => {\n if (isModalOpen) {\n setTimeout(() => {\n if (selectedHour !== null) {\n hourRefs.current[selectedHour]?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n if (selectedMinute !== null) {\n minuteRefs.current[selectedMinute]?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }\n }, 0);\n }\n }, [isModalOpen, selectedHour, selectedMinute]);\n\n useEffect(() => {\n const updatedHour = value ? parseInt(value.split(\":\")[0]) : null;\n setSelectedHour(updatedHour);\n const updatedMinute = value ? parseInt(value.split(\":\")[1]) : null;\n setSelectedMinute(updatedMinute);\n }, [value, autoRefresh]);\n\n const handleSelectHour = (hour: number) => {\n setSelectedHour(hour);\n if (selectedMinute !== null) {\n onChange(formatTime(hour, selectedMinute));\n }\n };\n\n const handleSelectMinute = (minute: number) => {\n setSelectedMinute(minute);\n if (selectedHour !== null) {\n onChange(formatTime(selectedHour, minute));\n }\n };\n\n const formatTime = (hour: number, minute: number) => {\n return `${hour.toString().padStart(2, \"0\")}:${minute.toString().padStart(2, \"0\")}`;\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n let inputValue = e.target.value;\n\n // Prevent deleting the colon (:) or entering invalid characters\n if (!/^\\d{0,2}:\\d{0,2}$/.test(inputValue)) {\n return;\n }\n\n const [hourPart = \"\", minutePart = \"\"] = inputValue.split(\":\");\n\n // Validate and correct hour and minute ranges\n if (parseInt(hourPart) > 23) {\n inputValue = `23:${minutePart}`;\n }\n if (parseInt(minutePart) > 59) {\n inputValue = `${hourPart}:59`;\n }\n\n // Automatically add \":\" after two digits for hour if not present\n if (hourPart.length === 2 && !inputValue.includes(\":\")) {\n inputValue = hourPart + \":\";\n }\n\n onChange(inputValue);\n };\n\n const handleBlur = () => {\n if (!value || value === \":\") {\n onChange(\"00:00\");\n return;\n }\n\n const [hourPart = \"0\", minutePart = \"0\"] = value.split(\":\");\n const hour = Math.min(23, parseInt(hourPart) || 0);\n const minute = Math.min(59, parseInt(minutePart) || 0);\n const formattedTime = formatTime(hour, minute);\n\n onChange(formattedTime);\n };\n\n return (\n <Box display=\"flex\" alignItems=\"center\" gap={0.5} sx={{ width: \"100%\" }}>\n <TextField\n disabled={disabled}\n label={label}\n value={value}\n onChange={handleInputChange}\n onBlur={handleBlur}\n InputLabelProps={{ shrink: true }}\n variant=\"outlined\"\n size={size}\n inputProps={{\n maxLength: 5, // Ensures the format is always \"HH:MM\"\n style: { textAlign: \"center\" },\n }}\n InputProps={{\n ...(!disabled && {\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip title=\"انتخاب زمان\">\n <IconButton onClick={() => setIsModalOpen(true)}>\n <Clock size={22} color={theme.palette.text.primary} />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ),\n }),\n }}\n sx={{ width: fullwidth ? \"100%\" : \"8rem\" }}\n fullWidth\n />\n\n <Dialog\n open={isModalOpen}\n onClose={() => setIsModalOpen(false)}\n fullWidth\n maxWidth=\"xs\"\n >\n <DialogTitle\n fontWeight={700}\n fontSize=\"1.2rem\"\n display=\"flex\"\n alignItems=\"center\"\n gap=\"4px\"\n >\n انتخاب زمان\n </DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={() => setIsModalOpen(false)}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <MdClose />\n </IconButton>\n <Divider sx={{ my: \"10px\" }} />\n\n <DialogContent>\n <Box display=\"flex\" justifyContent=\"space-between\" gap=\"20px\">\n {/* Minute Selector */}\n <Box flex={1}>\n <Typography variant=\"h6\" textAlign=\"center\" gutterBottom>\n دقیقه\n </Typography>\n\n <Box\n maxHeight=\"200px\"\n overflow=\"auto\"\n border=\"1px solid lightgray\"\n borderRadius=\"8px\"\n >\n {minutes.map((minute) => (\n <Box\n key={minute}\n ref={(el: HTMLDivElement | null) => {\n minuteRefs.current[minute] = el;\n }}\n p=\"10px\"\n textAlign=\"center\"\n bgcolor={\n minute === selectedMinute ? \"primary.light\" : \"inherit\"\n }\n color={minute === selectedMinute ? \"white\" : \"inherit\"}\n sx={{ cursor: \"pointer\" }}\n onClick={() => handleSelectMinute(minute)}\n >\n <Typography>\n {minute.toString().padStart(2, \"0\")}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n\n {/* Hour Selector */}\n <Box flex={1}>\n <Typography variant=\"h6\" textAlign=\"center\" gutterBottom>\n ساعت\n </Typography>\n\n <Box\n maxHeight=\"200px\"\n overflow=\"auto\"\n border=\"1px solid lightgray\"\n borderRadius=\"8px\"\n >\n {hours.map((hour) => (\n <Box\n key={hour}\n ref={(el: HTMLDivElement | null) => {\n hourRefs.current[hour] = el;\n }}\n p=\"10px\"\n textAlign=\"center\"\n bgcolor={\n hour === selectedHour ? \"primary.light\" : \"inherit\"\n }\n color={hour === selectedHour ? \"white\" : \"inherit\"}\n sx={{ cursor: \"pointer\" }}\n onClick={() => handleSelectHour(hour)}\n >\n <Typography>{hour.toString().padStart(2, \"0\")}</Typography>\n </Box>\n ))}\n </Box>\n </Box>\n </Box>\n </DialogContent>\n\n <DialogActions sx={{ padding: 2 }}>\n <Button\n onClick={() => setIsModalOpen(false)}\n sx={{ fontSize: \"1.1rem\" }}\n >\n انتخاب\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n );\n};\n","'use client'\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport Button from '@mui/material/Button';\nimport Grid from '@mui/material/Grid2';\nimport { GlobalStyles, useMediaQuery } from '@mui/system';\nimport moment from 'moment';\nimport { useEffect } from 'react';\nimport { useForm } from \"react-hook-form\";\nimport { FaChevronLeft, FaChevronRight } from \"react-icons/fa\";\nimport * as yup from \"yup\";\nimport Dateform from '../date-picker'; // This import is not needed\n\nconst nowUTC = moment.utc(); // دریافت زمان فعلی در UTC\n\n// محاسبه زمان ایران با اعمال آفست 3 ساعت و 30 دقیقه\nconst dateTimeWithIranTime2 = nowUTC // کم کردن یک روز\nconst dateTimeWithIranTime = nowUTC // کم کردن یک روز\n\n// .add(3, \"hours\") // اضافه کردن 3 ساعت\n// .add(30, \"minutes\"); // اضافه کردن 30 دقیقه\n\n// تعریف مقادیر پیش‌فرض\nconst RoleFormSchema = yup.object().shape({});\nconst defaultValues = {\n time: dateTimeWithIranTime.toDate().toISOString(), // تبدیل به ISO بدون تغییر آفست\n time2: dateTimeWithIranTime2.toDate().toISOString(), // تبدیل به ISO بدون تغییر آفست\n};\n\n\nexport default function DateFilterRange({ FromDate, ToDate }: { FromDate: any, ToDate: any }) {\n const isMobile = useMediaQuery(\"(max-width:900px)\");\n const isSmMobile = useMediaQuery(\"(max-width:600px)\");\n const { control, watch, setValue } = useForm<any>({\n defaultValues,\n mode: \"onChange\",\n resolver: yupResolver(RoleFormSchema),\n });\n useEffect(() => {\n FromDate(nowUTC) //ست کردن تاریخ امروز در کامپوننت پرنت فقط یکبار \n ToDate(nowUTC) //ست کردن تاریخ امروز در کامپوننت پرنت فقط یکبار \n }, [])\n const currentDate = watch('time');\n const currentDate2 = watch('time2');\n\n useEffect(() => {\n FromDate(currentDate)\n ToDate(currentDate2)\n\n }, [currentDate,currentDate2])\n\n\n const handleDate = (direction: 'forward' | 'backward', time: \"time\" | \"time2\") => {\n const currentDate = watch(time);\n const newDate = moment(currentDate);\n\n if (direction === 'forward') {\n newDate.add(1, 'day'); //اضافه کردن تاریخ\n } else if (direction === 'backward') {\n newDate.subtract(1, 'day'); //کم کردن تاریخ\n }\n\n setValue(time, newDate.toISOString()); //ست کردن تاریخ در react hook form\n // setHandler && setHandler(newDate.toISOString()) //ست کردن تاریخ در استیت پرنت\n };\n const isNextDisabledTime = moment(watch('time')).format(\"YYYY-MM-DD\") == moment(watch('time2')).format(\"YYYY-MM-DD\")\n const isLastDisabledTime = moment(watch('time')).format(\"YYYY-MM-DD\") == moment(watch('time2')).format(\"YYYY-MM-DD\")\n // بررسی وضعیت دکمه\n const today = moment().format(\"YYYY-MM-DD\"); // تبدیل تاریخ امروز به رشته\n const isNextDisabled = moment(watch('time')).format(\"YYYY-MM-DD\") >= today; // مقایسه تاریخ انتخاب‌شده با امروز\n const isNextDisabledTime2 = moment(watch('time2')).format(\"YYYY-MM-DD\") >= today; // مقایسه تاریخ انتخاب‌شده با امروز\n\n return (\n <>\n <GlobalStyles styles={{\n //حذف مارجین های اضافی سمت راست و چپ\n '.MuiBox-root.muirtl-1crki0u': {\n marginLeft: 0,\n marginRight: 0,\n }\n }} />\n <Grid container spacing={2} justifyContent={\"center\"} alignItems={\"center\"} paddingTop={3} width={\"100%\"}>\n <Grid container size={12} width={!isMobile ? \"50%\" : \"100%\"} alignItems={\"center\"} justifyContent={\"space-between\"}>\n {/* دکمه برای حرکت به جلو */}\n <Grid size={2} justifyContent={\"start\"}>\n <Button\n sx={{\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"center\",\n padding: 0\n }}\n onClick={() => handleDate('forward', \"time\")}\n disabled={isNextDisabled || isNextDisabledTime} // شرط برای غیرفعال کردن دکمه\n >\n <FaChevronRight size={30} />\n </Button>\n </Grid>\n\n {/* فرم تاریخ */}\n <Grid size={{ xs: 7, sm: 8, md: 8, lg: 6 }}>\n <Dateform name='time' control={control} label='تاریخ از' maxDate={moment(watch('time2'))} align='center' persian={true} clear={false} size={isSmMobile ? \"small\" : \"medium\"} />\n </Grid>\n\n {/* دکمه برای حرکت به عقب */}\n <Grid size={2} display={\"flex\"} justifyContent={\"end\"}>\n <Button\n sx={{\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"center\",\n padding: 0\n }}\n onClick={() => handleDate('backward', \"time\")}>\n <FaChevronLeft size={30} />\n </Button>\n </Grid>\n </Grid>\n <Grid container size={12} width={!isMobile ? \"50%\" : \"100%\"} alignItems={\"center\"} justifyContent={\"space-between\"}>\n {/* دکمه برای حرکت به جلو */}\n <Grid size={2} justifyContent={\"start\"}>\n <Button\n sx={{\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"center\",\n padding: 0\n }}\n onClick={() => handleDate('forward', \"time2\")}\n disabled={isNextDisabledTime2} // شرط برای غیرفعال کردن دکمه\n >\n <FaChevronRight size={30} />\n </Button>\n </Grid>\n\n {/* فرم تاریخ */}\n <Grid size={{ xs: 7, sm: 8, md: 8, lg: 6 }}>\n <Dateform name='time2' control={control} label='تاریخ تا' minDate={moment(watch('time'))} persian={true} align='center' clear={false} size={isSmMobile ? \"small\" : \"medium\"} />\n </Grid>\n\n {/* دکمه برای حرکت به عقب */}\n <Grid size={2} display={\"flex\"} justifyContent={\"end\"}>\n <Button\n sx={{\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"center\",\n padding: 0\n }}\n onClick={() => handleDate('backward', \"time2\")}\n disabled={isLastDisabledTime}\n >\n <FaChevronLeft size={30} />\n </Button>\n </Grid>\n </Grid>\n </Grid>\n <Grid container size={12}>\n <Grid size={12}>\n </Grid>\n </Grid>\n </>\n );\n}\n","import { Box, Typography } from \"@mui/material\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport { DatePicker, LocalizationProvider } from \"@mui/x-date-pickers\";\nimport { AdapterMomentJalaali } from \"@mui/x-date-pickers/AdapterMomentJalaali\";\nimport dayjs from \"dayjs\";\nimport moment, { Moment } from \"moment-jalaali\";\nimport \"moment/locale/fa\"; // اضافه کردن زبان فارسی\nimport React, { useState } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\n\nmoment.locale(\"fa\"); // تنظیم moment روی فارسی\n\n// فعال کردن زبان فارسی و اعداد فارسی در moment-jalaali\n// moment.loadPersian({ usePersianDigits: true });\nmoment.loadPersian({ dialect: \"persian-modern\", usePersianDigits: true });\ninterface JalaliDatePickerProps {\n name: string;\n control: Control<any>;\n label: string;\n size?: \"medium\" | \"small\";\n disabled?: boolean;\n persian?: boolean;\n align?: \"right\" | \"center\" | \"left\";\n isLoading?: boolean;\n maxDate?: any;\n minDate?: any;\n clear?: boolean;\n}\n\nconst JalaliDatePicker: React.FC<JalaliDatePickerProps> = ({\n name,\n control,\n label,\n size = \"medium\",\n disabled = false,\n persian = false,\n align = \"left\",\n isLoading,\n maxDate,\n minDate,\n clear = true,\n}) => {\n const today = moment(); // تاریخ امروز\n const [open, setOpen] = useState(false);\n\n const customLocaleText = {\n cancelButtonLabel: \"لغو\",\n okButtonLabel: \"تأیید\",\n todayButtonLabel: \"امروز\",\n clearButtonLabel: \"پاک کردن\",\n start: \"شروع\",\n end: \"پایان\",\n previousMonth: \"ماه قبل\",\n nextMonth: \"ماه بعد\",\n openDatePickerDialogue: (\n date: Moment | null,\n utils: any,\n formattedDate: string | null\n ) => `انتخاب تاریخ ${formattedDate ? `(${formattedDate})` : \"\"}`,\n openTimePickerDialogue: (\n date: Moment | null,\n utils: any,\n formattedTime: string | null\n ) => `انتخاب زمان ${formattedTime ? `(${formattedTime})` : \"\"}`,\n selectDate: \"انتخاب تاریخ\",\n selectTime: \"انتخاب زمان\",\n datePickerToolbarTitle: \"انتخاب تاریخ\",\n timePickerToolbarTitle: \"انتخاب زمان\",\n dateTimePickerToolbarTitle: \"انتخاب تاریخ و زمان\",\n hoursClockNumberText: (hours: string) => `${hours} ساعت`,\n minutesClockNumberText: (minutes: string) => `${minutes} دقیقه`,\n secondsClockNumberText: (seconds: string) => `${seconds} ثانیه`,\n calendarWeekNumberHeaderLabel: \"هفته\",\n calendarWeekNumberHeaderText: \"#\",\n calendarWeekNumberAriaLabelText: (weekNumber: number) =>\n `هفته ${weekNumber}`,\n calendarWeekNumberText: (weekNumber: number) => `${weekNumber}`,\n };\n return (\n <LocalizationProvider\n dateAdapter={AdapterMomentJalaali}\n localeText={customLocaleText}\n >\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState: { error } }) => (\n <Box sx={{ width: \"100%\" }}>\n <DatePicker\n disabled={isLoading || disabled}\n closeOnSelect={false}\n openTo=\"day\"\n views={[\"year\", \"month\", \"day\"]}\n label={label}\n value={field.value ? moment(field.value) : null}\n slotProps={{\n ...(clear && !disabled ? { field: { clearable: true } } : {}),\n popper: {\n modifiers: [\n {\n name: \"preventOverflow\",\n options: {\n boundary: \"window\",\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"right\", \"left\", \"top\"],\n },\n },\n ],\n },\n textField: {\n size: size,\n placeholder: field.value ? \"\" : \"انتخاب تاریخ \",\n InputLabelProps: {\n shrink: true,\n style: { color: error ? \"#D32F2F\" : \"inherit\" },\n },\n InputProps: {\n ...(isLoading && { endAdornment: (<CircularProgress color=\"secondary\" size={20} />) } || disabled && { endAdornment: false }),\n ...(field.value && {\n value: persian ?\n `${moment(field.value).format(\"dddd - jDD/jMMMM/jYYYY\")}` :\n `${moment(field.value).format(\"jYYYY/jMM/jDD\")}`\n }),\n sx: {\n textAlign: align,\n \"& input\": {\n textAlign: align,\n direction: \"rtl\",\n },\n },\n },\n },\n actionBar: {\n actions: [\"cancel\", \"accept\"], // نمایش دکمه‌های تأیید، لغو و پاک کردن\n },\n }}\n onChange={(value: any) => {\n if (value == null) {\n field.onChange(null);\n }\n }}\n onAccept={(newValue: any) => {\n if (newValue) {\n const currentDate = dayjs(newValue);\n const nowUTC = new Date();\n\n // محاسبه ساعت و دقیقه ایران\n let iranHour = nowUTC.getUTCHours();\n let iranMinute = nowUTC.getUTCMinutes();\n\n const dateTimeWithIranTime = currentDate\n .hour(iranHour)\n .minute(iranMinute)\n .second(nowUTC.getUTCSeconds());\n console.log(\n currentDate.format(\"YYYY-MM-DDTHH:mm:ss\"),\n dateTimeWithIranTime.format(\"YYYY-MM-DDTHH:mm:ss\")\n );\n\n field.onChange(\n dateTimeWithIranTime.format(\"YYYY-MM-DDTHH:mm:ss\")\n );\n } else {\n field.onChange(null);\n }\n }}\n sx={{\n width: \"100%\",\n borderColor: error ? \"#D32F2F\" : \"#C4C4C4\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: error ? \"#D32F2F\" : \"#C4C4C4\",\n },\n \"& .MuiInputBase-root\": {\n height: size === \"small\" ? 40 : 56,\n },\n }}\n slots={{\n ...(!clear && {\n clearButton: React.Fragment,\n clearIcon: React.Fragment,\n }),\n toolbar: (props) => {\n const currentDate = moment(field.value); // تاریخ فعلی از props.value گرفته می‌شود\n const formattedDate = currentDate.format(\"dddd, jDD jMMMM\"); // فرمت تاریخ\n\n return (\n <Box\n sx={{\n my: 2,\n mx: 4,\n }}\n >\n <Typography variant=\"overline\" color=\"primary\">\n تاریخ را انتخاب کنید\n </Typography>\n <Typography variant=\"h4\">\n {formattedDate == \"Invalid date\" ? \"\" : formattedDate}\n </Typography>\n </Box>\n );\n },\n monthButton: (props) => {\n return (\n <button\n className={`${props.className}`}\n style={{\n width: \"80%\",\n padding: \"10px\",\n marginBottom: \"20px\",\n border: \"1px solid #ccc\",\n borderRadius: \"12px\",\n backgroundColor: props.disabled ? \"#f0f0f0\" : \"#f0000\",\n fontSize: \"14px\",\n cursor: props.disabled ? \"default\" : \"pointer\",\n }}\n disabled={props.disabled}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onClick={props.onClick}\n ref={props.ref}\n >\n {props[\"aria-label\"]} {/* نمایش ماه به صورت کامل */}\n </button>\n );\n },\n\n }}\n minDate={minDate ? minDate : null}\n maxDate={maxDate ? maxDate : today}\n />\n {error && (\n <Typography fontSize={13} color=\"error\" sx={{ mt: 0.6, ml: 1 }}>\n {error.message}\n </Typography>\n )}\n </Box>\n )}\n />\n </LocalizationProvider>\n );\n};\n\nexport default JalaliDatePicker;\n","'use client'\nimport Dateform from '../date-picker'; // This import is not needed\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport Button from '@mui/material/Button';\nimport Grid from '@mui/material/Grid2';\nimport { GlobalStyles, useMediaQuery } from '@mui/system';\nimport moment from 'moment';\nimport React from 'react';\nimport { useEffect } from 'react';\nimport { useForm } from \"react-hook-form\";\nimport { FaChevronLeft, FaChevronRight } from \"react-icons/fa\";\nimport * as yup from \"yup\";\n\nconst nowUTC = moment.utc(); // دریافت زمان فعلی در UTC\n\n// محاسبه زمان ایران با اعمال آفست 3 ساعت و 30 دقیقه\nconst dateTimeWithIranTime = nowUTC\n // .add(3, \"hours\") // اضافه کردن 3 ساعت\n // .add(30, \"minutes\"); // اضافه کردن 30 دقیقه\n\n// تعریف مقادیر پیش‌فرض\nconst RoleFormSchema = yup.object().shape({});\nconst defaultValues = {\n time: dateTimeWithIranTime.toDate().toISOString(), // تبدیل به ISO بدون تغییر آفست\n};\n\n\nexport default function DateFilter({ setHandler }: { setHandler?: any }) {\n const isMobile = useMediaQuery(\"(max-width:900px)\");\n const isSmMobile = useMediaQuery(\"(max-width:600px)\");\n const { control, watch, setValue } = useForm<any>({\n defaultValues,\n mode: \"onChange\",\n resolver: yupResolver(RoleFormSchema),\n });\n useEffect(() => {\n setHandler(moment().toISOString()) //ست کردن تاریخ امروز در کامپوننت پرنت فقط یکبار \n }, [])\n const currentDate = watch('time');\n useEffect(() => {\n setHandler(currentDate)\n }, [currentDate])\n\n const handleDate = (direction: 'forward' | 'backward') => {\n const currentDate = watch('time');\n\n const newDate = moment(currentDate);\n\n if (direction === 'forward') {\n newDate.add(1, 'day'); //اضافه کردن تاریخ\n } else if (direction === 'backward') {\n newDate.subtract(1, 'day'); //کم کردن تاریخ\n }\n\n setValue('time', newDate.toISOString()); //ست کردن تاریخ در react hook form\n // setHandler && setHandler(newDate.toISOString()) //ست کردن تاریخ در استیت پرنت\n };\n\n // بررسی وضعیت دکمه\n const today = moment().format(\"YYYY-MM-DD\"); // تبدیل تاریخ امروز به رشته\n const isNextDisabled = moment(watch('time')).format(\"YYYY-MM-DD\") >= today; // مقایسه تاریخ انتخاب‌شده با امروز\n\n return (\n <>\n <GlobalStyles styles={{\n //حذف مارجین های اضافی سمت راست و چپ\n '.MuiBox-root.muirtl-1crki0u': {\n marginLeft: 0,\n marginRight: 0,\n }\n }} />\n <Grid container spacing={2} justifyContent={\"center\"} alignItems={\"center\"} paddingTop={3} width={\"100%\"}>\n <Grid container size={12} width={!isMobile ? \"50%\" : \"100%\"} alignItems={\"center\"} justifyContent={\"space-between\"}>\n {/* دکمه برای حرکت به جلو */}\n <Grid size={2} justifyContent={\"start\"}>\n <Button\n sx={{\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"center\",\n padding: 0\n }}\n onClick={() => handleDate('forward')}\n disabled={isNextDisabled} // شرط برای غیرفعال کردن دکمه\n >\n <FaChevronRight size={30} />\n </Button>\n </Grid>\n\n {/* فرم تاریخ */}\n <Grid size={{ xs: 7, sm: 8, md: 8, lg: 6 }}>\n <Dateform name='time' control={control} label='' persian clear={false} align='center' size={isSmMobile ? \"small\" : \"medium\"} />\n </Grid>\n\n {/* دکمه برای حرکت به عقب */}\n <Grid size={2} display={\"flex\"} justifyContent={\"end\"}>\n <Button\n sx={{\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"center\",\n padding: 0\n }}\n onClick={() => handleDate('backward')}>\n <FaChevronLeft size={30} />\n </Button>\n </Grid>\n </Grid>\n </Grid>\n <Grid container size={12}>\n <Grid size={12}>\n </Grid>\n </Grid>\n </>\n );\n}\n","import { Typography } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { Box } from \"@mui/system\";\nimport { DateTimePicker, LocalizationProvider } from \"@mui/x-date-pickers\";\nimport { AdapterMomentJalaali } from \"@mui/x-date-pickers/AdapterMomentJalaali\";\nimport moment, { Moment } from \"moment-jalaali\";\nimport React, { useState } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\n\nmoment.loadPersian({ dialect: \"persian-modern\", usePersianDigits: true });\n\ninterface JalaliDatePickerProps {\n name: string;\n control: Control<any>;\n label: string;\n size?: \"medium\" | \"small\";\n disabled?: boolean;\n persian?: boolean;\n readOnly?: boolean;\n isLoading?: boolean;\n minDateTime?: Moment; // Optional minimum date and time\n centeredTime?: boolean;\n}\n\nconst JalaliDatePicker: React.FC<JalaliDatePickerProps> = ({\n size = \"medium\",\n name,\n control,\n label,\n isLoading,\n disabled,\n minDateTime, // Add the new optional prop\n centeredTime = false,\n}) => {\n const today = moment();\n const isMobile = useMediaQuery(\"(max-width:700px)\");\n const [open, setOpen] = useState(false);\n\n const customLocaleText = {\n cancelButtonLabel: \"لغو\",\n okButtonLabel: \"تأیید\",\n todayButtonLabel: \"امروز\",\n clearButtonLabel: \"پاک کردن\",\n start: \"شروع\",\n end: \"پایان\",\n previousMonth: \"ماه قبل\",\n nextMonth: \"ماه بعد\",\n openDatePickerDialogue: (\n date: Moment | null,\n utils: any,\n formattedDate: string | null\n ) => `انتخاب تاریخ ${formattedDate ? `(${formattedDate})` : \"\"}`,\n openTimePickerDialogue: (\n date: Moment | null,\n utils: any,\n formattedTime: string | null\n ) => `انتخاب زمان ${formattedTime ? `(${formattedTime})` : \"\"}`,\n selectDate: \"انتخاب تاریخ\",\n selectTime: \"انتخاب زمان\",\n datePickerToolbarTitle: \"انتخاب تاریخ\",\n timePickerToolbarTitle: \"انتخاب زمان\",\n dateTimePickerToolbarTitle: \"انتخاب تاریخ و زمان\",\n hoursClockNumberText: (hours: string) => `${hours} ساعت`,\n minutesClockNumberText: (minutes: string) => `${minutes} دقیقه`,\n secondsClockNumberText: (seconds: string) => `${seconds} ثانیه`,\n calendarWeekNumberHeaderLabel: \"هفته\",\n calendarWeekNumberHeaderText: \"#\",\n calendarWeekNumberAriaLabelText: (weekNumber: number) =>\n `هفته ${weekNumber}`,\n calendarWeekNumberText: (weekNumber: number) => `${weekNumber}`,\n };\n\n return (\n <LocalizationProvider\n dateAdapter={AdapterMomentJalaali}\n localeText={customLocaleText}\n >\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState: { error } }) => (\n <Box sx={{ width: \"100%\" }}>\n <DateTimePicker\n open={open}\n onClose={() => {\n setOpen(false);\n field.onBlur();\n }}\n onOpen={() => setOpen(true)}\n orientation={isMobile ? \"portrait\" : \"landscape\"}\n disabled={isLoading || disabled}\n openTo=\"day\"\n views={[\"year\", \"month\", \"day\", \"hours\", \"minutes\"]}\n label={label}\n value={\n field.value ? moment.utc(field.value).utcOffset(210) : null\n }\n onChange={(newValue: any) => {\n if (newValue) {\n field.onChange(\n moment(newValue)\n .utc()\n .locale(\"en\")\n .format(\"YYYY-MM-DDTHH:mm:ss[Z]\")\n );\n } else {\n field.onChange(null);\n }\n }}\n onAccept={() => {\n setOpen(false);\n field.onBlur();\n }}\n onError={() => {\n setOpen(false);\n field.onBlur();\n }}\n format={`jDD jMMMM jYYYY ${\" \"} - ${\" \"} HH:mm`}\n minDateTime={minDateTime}\n timeSteps={{ minutes: 1 }}\n slots={{\n toolbar: (props) => {\n const currentDate = moment\n .utc(field.value || today)\n .utcOffset(210); // Use today if no value\n let formattedDay, formattedDate, formattedYear, formattedTime;\n\n if (field.value) {\n formattedDay = currentDate.format(\"dddd\");\n formattedDate = currentDate.format(\"jDD jMMMM\");\n formattedYear = currentDate.format(\"jYYYY\");\n formattedTime = currentDate.format(\"HH:mm\");\n } else {\n (formattedDay = \"تاریخ و زمان انتخاب نشده است\"),\n (formattedDate = \"\"),\n (formattedYear = \"\"),\n (formattedTime = \"\");\n }\n\n return (\n <Box\n sx={{\n padding: \"16px\",\n textAlign: \"left\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"start\",\n alignItems: \"center\",\n gap: 1,\n }}\n >\n <Typography\n fontSize={16}\n variant=\"overline\"\n color=\"primary\"\n >\n {`${formattedDay}،`}\n </Typography>\n <Typography\n variant=\"h4\"\n fontSize={26}\n style={{ fontWeight: \"bold\" }}\n >\n {`${formattedDate}`}\n </Typography>\n <Typography\n fontSize={16}\n variant=\"body2\"\n color=\"textSecondary\"\n >\n {`${formattedYear}`}\n </Typography>\n {field.value && <Typography>{\"-\"}</Typography>}\n <Typography\n fontSize={16}\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\" }}\n >\n {`${formattedTime}`}\n </Typography>\n </Box>\n );\n },\n monthButton: (props) => {\n return (\n <button\n className={`${props.className}`}\n style={{\n width: \"80%\",\n padding: \"10px\",\n marginBottom: \"20px\",\n border: \"1px solid #ccc\",\n borderRadius: \"12px\",\n backgroundColor: props.disabled ? \"#f0f0f0\" : \"#f0000\",\n fontSize: \"14px\",\n cursor: props.disabled ? \"default\" : \"pointer\",\n }}\n disabled={props.disabled}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n onClick={props.onClick}\n ref={props.ref}\n >\n {props[\"aria-label\"]} {/* نمایش ماه به صورت کامل */}\n </button>\n );\n },\n }}\n sx={{\n width: \"100%\",\n borderColor: error ? \"#D32F2F\" : \"#C4C4C4\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: error ? \"#D32F2F\" : \"#C4C4C4\",\n },\n }}\n maxDate={today}\n slotProps={{\n mobilePaper: {\n sx: {\n \"& .MuiClock-root\": {\n backgroundColor: \"transparent\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n \"& .MuiClock-clock\": {\n mt: 4,\n pt: 0.5,\n width: 230,\n height: 230,\n backgroundColor: \"rgba(0, 0, 0, 0.03)\",\n borderRadius: \"50%\",\n border: \"4px solid rgba(0, 0, 0, 0.04)\",\n },\n \"& .MuiClock-pin\": {\n backgroundColor: \"#085938\",\n },\n \"& .MuiClockPointer-root, & .MuiClockPointer-thumb\": {\n backgroundColor: \"#085938\",\n },\n \"& .MuiClockNumber-root\": {\n color: \"#000\",\n fontSize: \"16px\",\n },\n \"&.Mui-selected, &.Mui-focusVisible\": {\n color: \"#FFF\",\n },\n },\n },\n textField: {\n size: size,\n placeholder: \"\",\n onClick: () => {\n if (!open) setOpen(true);\n },\n InputLabelProps: {\n shrink: true,\n style: { color: error ? \"#D32F2F\" : \"inherit\" },\n },\n InputProps: {\n ...(disabled && {endAdornment: false}),\n sx: {\n textAlign: centeredTime ? \"center\" : \"left\", // Center or left align\n \"& input\": {\n textAlign: centeredTime ? \"center\" : \"left\", // Ensure input text is centered\n },\n },\n },\n },\n popper: {\n modifiers: [\n {\n name: \"preventOverflow\",\n options: {\n boundary: \"window\",\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"right\", \"left\", \"top\"],\n },\n },\n ],\n },\n }}\n />\n {error && (\n <Typography fontSize={13} color=\"error\" sx={{ mt: 0.6, ml: 1 }}>\n {error.message}\n </Typography>\n )}\n </Box>\n )}\n />\n </LocalizationProvider>\n );\n};\n\nexport default JalaliDatePicker;\n","import DateTimeForm from \"../date-time-picker\";\nimport { Box, Typography } from \"@mui/material\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers\";\nimport { AdapterMomentJalaali } from \"@mui/x-date-pickers/AdapterMomentJalaali\";\nimport moment, { Moment } from \"moment-jalaali\";\nimport React, { useEffect, useState } from \"react\";\nimport { Control, useWatch } from \"react-hook-form\";\n\nmoment.loadPersian({ dialect: \"persian-modern\", usePersianDigits: true });\n\ninterface JalaliDateTimeRangePickerProps {\n control: Control<any>;\n startName: string;\n endName: string;\n startLabel: string;\n endLabel: string;\n disabled?: boolean;\n isLoading?: boolean;\n}\n\nconst JalaliDateTimeRangePicker: React.FC<JalaliDateTimeRangePickerProps> = ({\n control,\n startName,\n endName,\n startLabel,\n endLabel,\n disabled = false,\n isLoading = false,\n}) => {\n const startDate: Moment | null = useWatch({ control, name: startName });\n\n const validStartDate = startDate ? moment(startDate) : null;\n\n const defaultStartDate = moment().add(3.5, \"hours\").toDate();\n\n const [isStartDateChanged, setIsStartDateChanged] = useState(false);\n\n useEffect(() => {\n if (validStartDate && !validStartDate.isSame(defaultStartDate, \"minute\")) {\n setIsStartDateChanged(true);\n } else if (\n validStartDate &&\n validStartDate.isSame(defaultStartDate, \"minute\")\n ) {\n setIsStartDateChanged(false);\n }\n }, [validStartDate, defaultStartDate]);\n\n return (\n <LocalizationProvider dateAdapter={AdapterMomentJalaali}>\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n gap: 1,\n }}\n >\n {/* Start DateTime Picker */}\n <DateTimeForm\n control={control}\n name={startName}\n label={startLabel}\n disabled={disabled || isLoading}\n />\n\n {/* Separator */}\n <Typography variant=\"h6\">-</Typography>\n\n {/* End DateTime Picker */}\n <DateTimeForm\n control={control}\n name={endName}\n label={endLabel}\n disabled={disabled || isLoading}\n minDateTime={isStartDateChanged ? moment(startDate) : undefined}\n />\n </Box>\n </LocalizationProvider>\n );\n};\n\nexport default JalaliDateTimeRangePicker;\n","import letters from \"../constants/letters\";\nimport { convertToEnglishDigits, convertToPersianDigits } from \"@mamrp/utils\";\nimport { Box, IconButton, Typography } from \"@mui/material\";\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport Image from \"next/image\";\nimport { CSSProperties, useEffect, useRef, useState } from \"react\";\nimport { IoClose } from \"react-icons/io5\";\nimport React from \"react\";\n\ninterface LicensePlateProps {\n width?: CSSProperties[\"width\"];\n part: string[];\n setValue?: any;\n data?: string;\n readOnly?: boolean;\n size?: \"small\" | \"medium\";\n}\n\nexport default function SearchLicensePlate({\n width = \"100%\",\n part,\n setValue,\n data,\n readOnly = true,\n size,\n}: LicensePlateProps) {\n const [open, setOpen] = useState(false);\n const [selectedValue, setSelectedValue] = useState(\"\");\n const [inputValues, setInputValues] = useState({\n input1: \"\",\n input2: \"\",\n input3: \"\",\n input4: \"\",\n });\n\n const inputRefs = {\n input1: useRef<HTMLInputElement>(null),\n input2: useRef<HTMLInputElement>(null),\n input3: useRef<HTMLInputElement>(null),\n input4: useRef<HTMLInputElement>(null),\n };\n\n // Initialize inputValues with data if available\n useEffect(() => {\n if (data) {\n //کلمه ایران در کامپوننت پلاک دچار تداخل میکند ، همین اول قبل ورود حذف شود\n let newdata = data.split(\" \").filter((word) => word !== \"ایران\");\n setInputValues({\n input1: newdata[0],\n input2: newdata[1],\n input3: newdata[2],\n input4: newdata[3],\n });\n } else if (data == \"\") {\n setInputValues({\n input1: \"\",\n input2: \"\",\n input3: \"\",\n input4: \"\",\n });\n }\n }, [data]);\n\n const handleInputChange = (\n enteredInput: string,\n inputName: string,\n maxlength: number,\n minLength?: number\n ) => {\n const newInputValues = {\n ...inputValues,\n [inputName]: enteredInput,\n };\n setInputValues(newInputValues);\n\n const formattedPlate =\n convertToEnglishDigits(newInputValues.input1) +\n \" \" +\n newInputValues.input2 +\n \" \" +\n convertToEnglishDigits(newInputValues.input3) +\n \" ایران \" +\n convertToEnglishDigits(newInputValues.input4);\n\n //خروجی استاندارد سرویس بک اند\n setValue(part[0], convertToEnglishDigits(newInputValues.input1));\n setValue(part[1], newInputValues.input2);\n setValue(part[2], convertToEnglishDigits(newInputValues.input3));\n setValue(part[3], convertToEnglishDigits(newInputValues.input4));\n\n if (enteredInput.length === maxlength || minLength === 1) {\n if (inputName === \"input1\") {\n setOpen(true);\n } else if (inputName === \"input2\") {\n setSelectedValue(enteredInput);\n setOpen(false);\n } else {\n inputRefs[\"input4\"]?.current?.focus();\n }\n }\n };\n\n return (\n <>\n <Box\n sx={{\n width: width,\n border: \"1px solid #e5e7eb\",\n borderRadius: \"7px\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n dir=\"ltr\"\n >\n {/* Country Flag and Text */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <Box\n sx={{\n backgroundColor: \"#172554\",\n width: size === \"small\" ? \"30px\" : \"36px\",\n minHeight: size === \"small\" ? \"40px\" : \"52px\",\n maxHeight: size === \"small\" ? \"40px\" : \"52px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: \"7px\",\n mr: 0.4,\n }}\n >\n <Image\n src=\"/assets/images/iran-flag-dark.svg\"\n alt=\"Iran Flag\"\n width={size === \"small\" ? 16 : 20}\n height={size === \"small\" ? 14 : 12}\n style={{ cursor: \"pointer\" }} // Make it clickable\n onClick={() => {\n setInputValues({\n input1: \"\",\n input2: \"\",\n input3: \"\",\n input4: \"\",\n }); // Reset input values\n setValue(part[0], \"\"); // Reset form values\n setValue(part[1], \"\");\n setValue(part[2], \"\");\n setValue(part[3], \"\");\n }}\n />\n </Box>\n </Box>\n <Box\n sx={{\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-around\",\n fontSize: \"1.125rem\",\n lineHeight: \"1.75rem\",\n fontWeight: 600,\n color: \"#1f2937\",\n alignItems: \"center\",\n }}\n >\n {/* input1 */}\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input1}\n type=\"text\"\n maxLength={2}\n placeholder=\"- -\"\n style={{\n width: \"24px\",\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"text\",\n }}\n value={convertToPersianDigits(inputValues.input1)}\n onChange={(e) => handleInputChange(e.target.value, \"input1\", 2)}\n />\n\n {/* input2 + arrow */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n {/* Arrow icon (only if !data) */}\n {!data && (\n <Image\n src=\"/assets/images/solid-arrow-down.svg\"\n width={20}\n height={20}\n alt=\"arrow\"\n style={{ cursor: \"pointer\", marginRight: 4 }}\n />\n )}\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input2}\n onClick={() => {\n if (!(readOnly || (!!data && readOnly))) {\n setOpen(true);\n }\n }}\n type=\"text\"\n minLength={1}\n maxLength={3}\n placeholder=\"-\"\n style={{\n width: \"28px\",\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"pointer\",\n }}\n value={inputValues.input2}\n readOnly\n />\n </Box>\n\n {/* Dialog for letters */}\n <Dialog\n dir=\"rtl\"\n open={open}\n onClose={() => setOpen(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n backgroundColor: \"#f5f5f5\", // bg-neutral-100\n }}\n >\n <DialogTitle id=\"alert-dialog-title\">انتخاب حرف پلاک</DialogTitle>\n <Box\n sx={{\n cursor: \"pointer\",\n paddingRight: \"1rem\",\n color: \"#737373\", // text-neutral-500\n }}\n onClick={() => setOpen(false)}\n >\n <IconButton>\n <IoClose />\n </IconButton>\n </Box>\n </Box>\n\n <DialogContent>\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexWrap: \"wrap\",\n gap: 2,\n my: 2,\n }}\n >\n {letters.map((letter, index) => (\n <Button\n key={index}\n variant=\"outlined\"\n color=\"primary\"\n sx={{\n border: \"none\",\n backgroundColor: \"#f0f0f0\",\n width: \"70px\",\n height: \"50px\",\n fontWeight: \"bold\",\n \":hover\": {\n backgroundColor: \"#e3e3e3\",\n },\n }}\n onClick={() => handleInputChange(letter, \"input2\", 3, 1)}\n >\n <Typography color=\"#117A4F\" fontWeight={\"bold\"}>\n {letter}\n </Typography>\n </Button>\n ))}\n </Box>\n\n {/* Clear Letter Button */}\n <Box sx={{ display: \"flex\", justifyContent: \"center\", mt: 2.5 }}>\n <Button\n sx={{ width: \"6rem\" }}\n variant=\"outlined\"\n color=\"error\"\n onClick={() => {\n handleInputChange(\"\", \"input2\", 3, 1); // Clear input2\n setOpen(false); // Close dialog\n }}\n >\n حذف حرف\n </Button>\n </Box>\n </DialogContent>\n </Dialog>\n\n {/* input3 */}\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input3}\n type=\"text\"\n maxLength={3}\n placeholder=\"- - -\"\n style={{\n width: \"40px\", // w-10\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"text\",\n }}\n value={convertToPersianDigits(inputValues.input3)}\n onChange={(e) => handleInputChange(e.target.value, \"input3\", 3)}\n />\n\n {/* Divider */}\n <Box\n sx={{\n height: \"40px\",\n width: \"1px\",\n backgroundColor: \"#e5e7eb\",\n }}\n />\n\n {/* input4 + Iran Logo */}\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column-reverse\",\n gap: size === \"small\" ? 0.25 : 1,\n alignItems: \"center\",\n }}\n >\n <input\n disabled={readOnly || (!!data && readOnly)}\n ref={inputRefs.input4}\n type=\"text\"\n maxLength={2}\n placeholder=\"- -\"\n style={{\n width: \"24px\",\n textAlign: \"center\",\n backgroundColor: \"transparent\",\n outline: \"none\",\n cursor: readOnly || (!!data && readOnly) ? \"\" : \"text\",\n }}\n value={convertToPersianDigits(inputValues.input4)}\n onChange={(e) => handleInputChange(e.target.value, \"input4\", 2)}\n />\n <Image\n src=\"/assets/images/iran.svg\"\n alt=\"Iran\"\n width={size === \"small\" ? 25 : 30} // Adjust width dynamically\n height={size === \"small\" ? 21 : 26} // Adjust height dynamically\n />\n </Box>\n </Box>\n </Box>\n </>\n );\n}\n","\"use client\";\nimport React from \"react\";\n\nexport default function Loading() {\n return (\n <div className=\"loading\">\n <img\n src={\"/assets/images/favicon.ico\"}\n alt=\"MAM Logo\"\n className=\"mam-logo\"\n />\n <p className=\"message\">\n در حال بارگذاری، لطفا منتظر بمانید\n <span className=\"dots\">\n <span>.</span>\n <span>.</span>\n <span>.</span>\n <span>.</span>\n </span>\n </p>\n <style>{`\n .loading {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: #065938;\n color: #fff;\n z-index: 9999;\n }\n .mam-logo {\n width: 120px;\n height: auto;\n margin-bottom: 5px;\n animation: float 3s ease-in-out infinite, glow 1.5s alternate infinite ease-in-out;\n }\n @keyframes float {\n 0%, 100% {\n transform: translateY(0);\n }\n \n }\n @keyframes glow {\n 0% {\n filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.5));\n }\n 100% {\n filter: drop-shadow(0 0 20px rgba(255, 255, 255, 1));\n }\n }\n .message {\n font-size: 1.2rem;\n font-weight: bold;\n display: flex;\n align-items: center;\n }\n .dots {\n display: inline-block;\n margin-left: 5px;\n }\n .dots span {\n animation: blink 1.5s step-start infinite;\n font-size: 1.5rem;\n }\n .dots span:nth-child(1) {\n animation-delay: 0s;\n }\n .dots span:nth-child(2) {\n animation-delay: 0.3s;\n }\n .dots span:nth-child(3) {\n animation-delay: 0.6s;\n }\n @keyframes blink {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n `}</style>\n </div>\n );\n}\n","import { Button, Typography } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { Box } from \"@mui/system\";\nimport {\n MobileDateTimePicker,\n LocalizationProvider,\n} from \"@mui/x-date-pickers\";\nimport { AdapterMomentJalaali } from \"@mui/x-date-pickers/AdapterMomentJalaali\";\nimport dayjs from \"dayjs\";\nimport moment, { Moment } from \"moment-jalaali\";\nimport React, { useState } from \"react\";\nimport { Control, Controller } from \"react-hook-form\";\n\nmoment.loadPersian({ dialect: \"persian-modern\", usePersianDigits: true });\n\ninterface JalaliDatePickerProps {\n name: string;\n control: Control<any>;\n label: string;\n size?: \"small\" | \"small\";\n disabled?: boolean;\n persian?: boolean;\n readOnly?: boolean;\n isLoading?: boolean;\n}\n\nconst JalaliDatePicker: React.FC<JalaliDatePickerProps> = ({\n name,\n control,\n label,\n isLoading,\n}) => {\n const today = moment();\n const isMobile = useMediaQuery(\"(max-width:700px)\");\n const [open, setOpen] = useState(false);\n\n const customLocaleText = {\n cancelButtonLabel: \"لغو\",\n okButtonLabel: \"تأیید\",\n todayButtonLabel: \"امروز\",\n clearButtonLabel: \"پاک کردن\",\n start: \"شروع\",\n end: \"پایان\",\n previousMonth: \"ماه قبل\",\n nextMonth: \"ماه بعد\",\n openDatePickerDialogue: (\n date: Moment | null,\n utils: any,\n formattedDate: string | null\n ) => `انتخاب تاریخ ${formattedDate ? `(${formattedDate})` : \"\"}`,\n openTimePickerDialogue: (\n date: Moment | null,\n utils: any,\n formattedTime: string | null\n ) => `انتخاب زمان ${formattedTime ? `(${formattedTime})` : \"\"}`,\n selectDate: \"انتخاب تاریخ\",\n selectTime: \"انتخاب زمان\",\n datePickerToolbarTitle: \"انتخاب تاریخ\",\n timePickerToolbarTitle: \"انتخاب زمان\",\n dateTimePickerToolbarTitle: \"انتخاب تاریخ و زمان\",\n hoursClockNumberText: (hours: string) => `${hours} ساعت`,\n minutesClockNumberText: (minutes: string) => `${minutes} دقیقه`,\n secondsClockNumberText: (seconds: string) => `${seconds} ثانیه`,\n calendarWeekNumberHeaderLabel: \"هفته\",\n calendarWeekNumberHeaderText: \"#\",\n calendarWeekNumberAriaLabelText: (weekNumber: number) =>\n `هفته ${weekNumber}`,\n calendarWeekNumberText: (weekNumber: number) => `${weekNumber}`,\n };\n\n return (\n <LocalizationProvider\n dateAdapter={AdapterMomentJalaali}\n localeText={customLocaleText}\n >\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState: { error } }) => (\n <Box sx={{ width: \"100%\" }}>\n <MobileDateTimePicker\n open={open}\n onClose={() => {\n setOpen(false);\n field.onBlur();\n }}\n onOpen={() => setOpen(true)}\n orientation={isMobile ? \"portrait\" : \"landscape\"}\n disabled={isLoading}\n openTo=\"day\"\n views={[\"year\", \"month\", \"day\", \"hours\", \"minutes\"]}\n label={label}\n value={field.value ? moment(field.value) : null}\n onChange={(newValue: any) => {\n if (newValue) {\n field.onChange(dayjs(newValue).format(\"YYYY-MM-DDTHH:mm:ss\"));\n } else {\n field.onChange(null);\n }\n }}\n onAccept={() => {\n setOpen(false);\n field.onBlur();\n }}\n onError={() => {\n setOpen(false);\n field.onBlur();\n }}\n format={`jDD jMMMM jYYYY ${\" \"} - ${\" \"} HH:mm`}\n slots={{\n toolbar: (props) => {\n const currentDate = moment(field.value || null);\n let formattedDay, formattedDate, formattedYear, formattedTime;\n\n if (field.value) {\n formattedDay = currentDate.format(\"dddd\");\n formattedDate = currentDate.format(\"jDD jMMMM\");\n formattedYear = currentDate.format(\"jYYYY\");\n formattedTime = currentDate.format(\"HH:mm\");\n } else {\n (formattedDay = \"تاریخ و زمان انتخاب نشده است\"),\n (formattedDate = \"\"),\n (formattedYear = \"\"),\n (formattedTime = \"\");\n }\n\n return (\n <Box\n sx={{\n padding: \"16px\",\n textAlign: \"left\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"start\",\n alignItems: \"center\",\n gap: 1,\n }}\n >\n <Typography\n fontSize={16}\n variant=\"overline\"\n color=\"primary\"\n >\n {`${formattedDay}،`}\n </Typography>\n <Typography\n variant=\"h4\"\n fontSize={26}\n style={{ fontWeight: \"bold\" }}\n >\n {`${formattedDate}`}\n </Typography>\n <Typography\n fontSize={16}\n variant=\"body2\"\n color=\"textSecondary\"\n >\n {`${formattedYear}`}\n </Typography>\n {field.value && <Typography>{\"-\"}</Typography>}\n <Typography\n fontSize={16}\n variant=\"body2\"\n color=\"textSecondary\"\n style={{ fontWeight: \"bold\" }}\n >\n {`${formattedTime}`}\n </Typography>\n </Box>\n );\n },\n monthButton: (props) => {\n return (\n <Button\n className={props.className}\n style={{\n width: \"80%\",\n padding: \"10px\",\n marginBottom: \"20px\",\n border: \"1px solid #ccc\",\n borderRadius: \"12px\",\n backgroundColor: props.disabled ? \"#f0f0f0\" : \"#f0000\",\n fontSize: \"14px\",\n cursor: props.disabled ? \"default\" : \"pointer\",\n }}\n disabled={props.disabled}\n onClick={props.onClick}\n >\n {props[\"aria-label\"]}\n </Button>\n );\n },\n }}\n sx={{\n width: \"100%\",\n borderColor: error ? \"#D32F2F\" : \"#C4C4C4\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: error ? \"#D32F2F\" : \"#C4C4C4\",\n },\n }}\n maxDate={today}\n slotProps={{\n mobilePaper: {\n sx: {\n \"& .MuiClock-root\": {\n backgroundColor: \"transparent\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n \"& .MuiClock-clock\": {\n mt: 4,\n pt: 0.5,\n width: 230,\n height: 230,\n backgroundColor: \"rgba(0, 0, 0, 0.03)\",\n borderRadius: \"50%\",\n border: \"4px solid rgba(0, 0, 0, 0.04)\",\n },\n \"& .MuiClock-pin\": {\n backgroundColor: \"#085938\",\n },\n \"& .MuiClockPointer-root, & .MuiClockPointer-thumb\": {\n backgroundColor: \"#085938\",\n },\n \"& .MuiClockNumber-root\": {\n color: \"#000\",\n fontSize: \"16px\",\n },\n \"&.Mui-selected, &.Mui-focusVisible\": {\n color: \"#FFF\",\n },\n },\n },\n textField: {\n placeholder: field.value ? \"\" : \"انتخاب تاریخ به همراه زمان\",\n onClick: () => {\n if (!open) setOpen(true);\n },\n InputLabelProps: {\n shrink: true,\n style: { color: error ? \"#D32F2F\" : \"inherit\" },\n },\n InputProps: {\n onFocus: () => {},\n },\n },\n }}\n />\n {error && (\n <Typography fontSize={13} color=\"error\" sx={{ mt: 0.6, ml: 1 }}>\n {error.message}\n </Typography>\n )}\n </Box>\n )}\n />\n </LocalizationProvider>\n );\n};\n\nexport default JalaliDatePicker;\n","import * as React from \"react\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport {\n Box,\n Button,\n CircularProgress,\n Divider,\n IconButton,\n} from \"@mui/material\";\nimport { FaRegTrashAlt } from \"react-icons/fa\";\nimport { MdClose, MdOutlineCancel } from \"react-icons/md\";\nimport { ReactNode } from \"react\";\n\ninterface ConfirmationDialogProps {\n open: boolean;\n handleClose: () => void;\n callback: (params: any) => void;\n callbackParams: any;\n headerText: string;\n bodyText: ReactNode;\n isLoading?: boolean;\n}\n\nexport default function ConfirmationDialog({\n open,\n handleClose,\n callback,\n callbackParams,\n headerText,\n bodyText,\n isLoading,\n}: ConfirmationDialogProps) {\n return (\n <Dialog open={open} onClose={handleClose} fullWidth maxWidth=\"xs\">\n <Box>\n <DialogTitle\n fontWeight={700}\n fontSize={\"1.2rem\"}\n display={\"flex\"}\n alignItems={\"center\"}\n gap={1}\n >\n <FaRegTrashAlt style={{ color: \"red\" }} size={18} />\n {headerText}\n </DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <MdClose />\n </IconButton>\n <Divider sx={{ my: \"10px\" }} />\n <DialogContent>{bodyText}</DialogContent>\n <DialogActions\n sx={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n width: \"100%\",\n gap: \"12px\",\n alignItems: \"center\",\n padding: \"2rem\",\n }}\n >\n <Button\n disabled={isLoading}\n onClick={() => {\n callback(callbackParams);\n handleClose();\n }}\n variant=\"contained\"\n color=\"error\"\n sx={{ minWidth: \"120px\" }}\n startIcon={\n isLoading ? (\n <CircularProgress sx={{ color: \"white\" }} size={20} />\n ) : (\n <FaRegTrashAlt size={16} />\n )\n }\n >\n حذف\n </Button>\n <Button\n onClick={handleClose}\n variant=\"outlined\"\n color=\"error\"\n startIcon={<MdOutlineCancel size={15} />}\n sx={{ minWidth: \"120px\" }}\n >\n انصراف\n </Button>\n </DialogActions>\n </Box>\n </Dialog>\n );\n}\n","import Image from \"next/image\";\nimport {\n Card,\n Stack,\n Typography,\n useTheme,\n SxProps,\n Theme,\n} from \"@mui/material\";\nimport React from \"react\";\n\ninterface NoResultProps {\n title?: string;\n description?: string;\n sx?: SxProps<Theme>;\n}\n\nexport default function NoResult({\n title = \"داده ای برای نمایش وجود ندارد!\",\n description,\n sx = {},\n}: NoResultProps) {\n const theme = useTheme();\n\n return (\n <Card\n sx={{\n width: \"100%\",\n minWidth: 300,\n borderRadius: \"12px\",\n border: `1px solid ${theme.palette.secondary.light}`,\n }}\n >\n <Stack\n spacing={2}\n alignItems={\"center\"}\n sx={{\n py: 5,\n ...sx,\n }}\n >\n <img\n src={\"/assets/images/no-data.png\"}\n alt=\"No Data\"\n height={100}\n width={100}\n />\n\n <Stack spacing={1} alignItems={\"center\"}>\n <Typography fontWeight={\"600\"}>{title}</Typography>\n\n {description && (\n <Typography fontWeight={\"500\"}>{description}</Typography>\n )}\n </Stack>\n </Stack>\n </Card>\n );\n}\n","import { convertToPersianDigits } from \"@mamrp/utils\";\nimport { Button } from \"@mui/material\";\nimport Stack from \"@mui/material/Stack\";\nimport { Box } from \"@mui/system\";\nimport * as React from \"react\";\nimport { FaChevronLeft, FaChevronRight } from \"react-icons/fa\";\n\ninterface PaginationListProps {\n currentPage: number;\n setCurrentPage: React.Dispatch<React.SetStateAction<number>>;\n totalPages: number;\n}\n\nexport default function PaginationList({\n currentPage,\n setCurrentPage,\n totalPages,\n}: PaginationListProps) {\n // Effect to handle scrollTo on page change\n React.useEffect(() => {\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n }, [currentPage]);\n\n const handlePrevious = () => {\n if (currentPage > 1) {\n setCurrentPage(currentPage - 1);\n }\n };\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n setCurrentPage(currentPage + 1);\n }\n };\n\n return (\n <Stack\n direction=\"row\"\n spacing={2}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n {/* Previous button */}\n <Button\n variant=\"contained\"\n onClick={handlePrevious}\n color=\"warning\"\n disabled={currentPage === 1}\n sx={{\n borderRadius: 2,\n width: \"100px\",\n height: \"50px\",\n minWidth: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n size=\"large\"\n startIcon={<FaChevronRight />}\n >\n قبلی{\" \"}\n </Button>\n\n {/* Current page number in Persian */}\n <Box\n sx={{\n fontWeight: \"bold\",\n width: \"120px\",\n height: \"50px\",\n borderRadius: 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: \"#fff\",\n fontSize: \"1.5rem\",\n backgroundColor: \"#065938\",\n }}\n >\n <span style={{ margin: \"0px 6px\", fontSize: \"1.2rem\" }}>صفحه</span>\n {convertToPersianDigits(currentPage)}\n </Box>\n\n {/* Next button */}\n <Button\n variant=\"contained\"\n onClick={handleNext}\n color=\"warning\"\n disabled={currentPage === totalPages}\n sx={{\n borderRadius: 2,\n width: \"100px\",\n height: \"50px\",\n minWidth: \"unset\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n size=\"large\"\n endIcon={<FaChevronLeft />}\n >\n بعدی{\" \"}\n </Button>\n </Stack>\n );\n}\n","import * as React from 'react';\nimport { Controller, Control } from 'react-hook-form';\nimport Radio from '@mui/material/Radio';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormControl from '@mui/material/FormControl';\nimport FormLabel from '@mui/material/FormLabel';\n\n\nexport default function RadioButton({ name, label, options, control }: { name: string, label: string, control: Control<any>, options: { value: any; name: string; id: any }[] }) {\n return (\n <>\n <FormControl sx={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"start\"\n\n }}>\n <FormLabel id={`${name}-label`}>{label}</FormLabel>\n <Controller\n name={name}\n control={control}\n render={({ field }) => (\n <RadioGroup\n {...field}\n aria-labelledby={`${name}-label`}\n value={field.value}\n sx={{\n display: \"flex\",\n flexDirection: \"row\",\n marginLeft: 5\n\n }}\n >\n {options.map((option: any) => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n control={<Radio id={option.id} />}\n label={option.name}\n />\n ))}\n </RadioGroup>\n )}\n />\n </FormControl>\n </>\n );\n}\n","import { MdKeyboardArrowLeft, MdKeyboardArrowRight } from \"react-icons/md\";\n\nimport {\n Checkbox,\n Collapse,\n FormControl,\n IconButton,\n InputLabel,\n List,\n ListItemText,\n MenuItem,\n Select,\n Typography,\n} from \"@mui/material\";\nimport React, { useState } from \"react\";\n\ninterface Item {\n id: number;\n title: string;\n parentId: number | null;\n level: number;\n children?: Item[];\n}\n\nconst backendResponse = {\n value: {\n data: [\n {\n id: 287,\n title: \"وقفه داخل کشتارگاه\",\n parentId: null,\n level: 1,\n children: [\n {\n id: 292,\n title: \"خط ۲ کشتار\",\n parentId: 287,\n level: 2,\n children: [\n {\n id: 312,\n title: \"خرابی دستگاه مقعد زن\",\n parentId: 292,\n level: 3,\n children: [],\n },\n {\n id: 313,\n title: \"خرابی دستگاه چاک زن\",\n parentId: 292,\n level: 3,\n children: [],\n },\n ],\n },\n ],\n },\n {\n id: 288,\n title: \"وقفه قبل از کشتارگاه\",\n parentId: null,\n level: 1,\n children: [\n {\n id: 289,\n title: \"سرویس پرسنل\",\n parentId: 288,\n level: 2,\n children: [],\n },\n ],\n },\n ],\n },\n};\n\nconst NestedSelect: React.FC = () => {\n const [selectedItem, setSelectedItem] = useState<Item | null>(null);\n const [openMenus, setOpenMenus] = useState<Record<number, boolean>>({});\n const [menuOpen, setMenuOpen] = useState<boolean>(false);\n\n // Handle selecting an item\n const handleSelect = (item: Item) => {\n setSelectedItem((prev) => (prev?.id === item.id ? null : item));\n };\n\n // Handle toggling parent items\n const handleToggle = (id: number) => {\n setOpenMenus((prev) => ({ ...prev, [id]: !prev[id] }));\n };\n\n // Recursive function to render nested items\n const renderMenuItems = (items: Item[], level = 0) => {\n return items.map((item) => {\n const isParentSelected = selectedItem?.id === item.id;\n const isAnyChildSelected = item.children?.some(\n (child) => selectedItem?.id === child.id\n );\n\n return (\n <div key={item.id}>\n <MenuItem\n onClick={(e) => {\n e.stopPropagation();\n handleSelect(item);\n }}\n disabled={isAnyChildSelected}\n sx={{ pl: level * 2 }}\n >\n <Checkbox checked={isParentSelected} />\n <ListItemText primary={item.title} />\n {item.children && item.children.length > 0 && (\n <IconButton\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n handleToggle(item.id);\n }}\n >\n {openMenus[item.id] ? (\n <MdKeyboardArrowLeft />\n ) : (\n <MdKeyboardArrowRight />\n )}\n </IconButton>\n )}\n </MenuItem>\n\n {/* Render Children (If any) */}\n {item.children && item.children.length > 0 && (\n <Collapse in={openMenus[item.id]} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding>\n {renderMenuItems(item.children, level + 1)}\n </List>\n </Collapse>\n )}\n </div>\n );\n });\n };\n\n return (\n <FormControl fullWidth variant=\"outlined\">\n <InputLabel shrink={true}>دسته بندی *</InputLabel>\n <Select\n label=\"دسته بندی *\"\n value={selectedItem?.id || \"\"}\n displayEmpty\n open={menuOpen}\n onOpen={() => setMenuOpen(true)}\n onClose={() => setMenuOpen(false)}\n renderValue={(selected) =>\n selectedItem ? <Typography>{selectedItem.title}</Typography> : \" \"\n }\n >\n {renderMenuItems(backendResponse.value.data)}\n </Select>\n </FormControl>\n );\n};\n\nexport default NestedSelect;\n","import { Box } from \"@mui/material\";\nimport { keyframes } from \"@mui/system\";\nimport React from \"react\";\n\nconst radarAnimation = keyframes`\n 0% {\n background: inherit;\n transform: scale(0);\n opacity: 0.9;\n }\n 100% {\n opacity: 0;\n transform: scale(4);\n }\n`;\n\nexport default function SonarSpinner({ children }: { children: any }) {\n return (\n <>\n <Box className=\"absolute w-[30px] h-[30px] rounded-full bg-white z-10 flex items-center justify-center\">\n {children}\n </Box>\n <Box\n className=\"root\"\n sx={{\n position: \"absolute\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"white\",\n transform: \"translateZ(0)\",\n }}\n >\n <Box\n className={\"radar\"}\n sx={{\n position: \"absolute\",\n zIndex: 1,\n width: \"15px\",\n height: \"15px\",\n borderRadius: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"red\",\n animation: `${radarAnimation} 1.2s linear infinite`,\n animationDelay: \"0s\",\n }}\n >\n <Box\n className={\"sonar\"}\n sx={{\n position: \"absolute\",\n zIndex: 1,\n width: \"14px\",\n height: \"14px\",\n borderRadius: \"inherit\",\n backgroundColor: \"red\",\n }}\n ></Box>\n <Box\n className=\"sonar delayed\"\n sx={{\n position: \"absolute\",\n zIndex: 1,\n width: \"7px\",\n height: \"7px\",\n borderRadius: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n animation: `${radarAnimation} 1.2s linear infinite`,\n animationDelay: \"1s\",\n backgroundColor: \"red\",\n }}\n ></Box>\n </Box>\n </Box>\n </>\n );\n}\n","import Box from \"@mui/material/Box\";\nimport Step from \"@mui/material/Step\";\nimport StepButton from \"@mui/material/StepButton\";\nimport Stepper from \"@mui/material/Stepper\";\nimport * as React from \"react\";\n\ninterface HorizontalStepperProps {\n steps: string[];\n currentStep: number;\n setCurrentStep: (newStep: number) => void;\n}\n\nexport default function HorizontalStepper({\n steps,\n currentStep,\n setCurrentStep,\n}: HorizontalStepperProps) {\n const [completed, setCompleted] = React.useState<{\n [k: number]: boolean;\n }>({});\n\n return (\n <Box sx={{ width: \"100%\" }}>\n <Stepper nonLinear activeStep={currentStep}>\n {steps.map((label, index) => (\n <Step key={index} completed={completed[index]}>\n <StepButton\n color=\"inherit\"\n disabled={!(index === 0 && currentStep === 1)} // Only enable for index 0 when currentStep is 1\n onClick={() => {\n if (index === 0 && currentStep === 1) {\n setCurrentStep(0); // Allow going back to step 0\n }\n }}\n >\n {label}\n </StepButton>\n </Step>\n ))}\n </Stepper>\n </Box>\n );\n}\n","import { Box, FormControlLabel, Switch } from \"@mui/material\";\nimport { styled } from \"@mui/system\";\nimport React from \"react\";\n\nconst CustomSwitch = styled(Switch)(({ theme }) => ({\n \"& .MuiSwitch-switchBase.Mui-checked\": {\n color: theme.palette.primary.main,\n },\n \"& .MuiSwitch-switchBase\": {\n color: \"#757575\",\n },\n \"& .MuiSwitch-track\": {\n backgroundColor: \"#E0E0E0\",\n },\n \"& .MuiSwitch-track.Mui-checked\": {\n backgroundColor: theme.palette.primary.light,\n },\n}));\n\nconst BoxContainer = styled(Box)(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n padding: \"5px\",\n backgroundColor: \"#fafafa\",\n borderRadius: \"10px\",\n transition: \"all 0.3s ease\",\n \"&:hover\": {\n backgroundColor: theme.palette.action.hover,\n },\n // Conditionally apply smaller padding for mobile devices\n \"@media (max-width:700px)\": {\n padding: \"0px\", // Smaller padding for mobile\n },\n}));\n\nconst LabelContainer = styled(\"div\")({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"16px\",\n fontWeight: \"100\",\n color: \"#333\",\n marginLeft: \"8px\",\n transition: \"all 0.2s ease\",\n // Conditionally apply smaller font size and margin for mobile devices\n \"@media (max-width:700px)\": {\n fontSize: \"14px\", // Smaller font size for mobile\n marginLeft: \"2px\", // Smaller margin for mobile\n marginRight: \"0px\", // Smaller\n },\n});\n\ntype SwitchWithIconsProps = {\n checked: boolean;\n handleChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n iconChecked: React.ReactNode;\n iconUnchecked: React.ReactNode;\n};\n\nconst SwitchWithIcons: React.FC<SwitchWithIconsProps> = ({\n checked,\n handleChange,\n iconChecked,\n iconUnchecked,\n}) => {\n return (\n <BoxContainer>\n <FormControlLabel\n control={\n <CustomSwitch\n checked={checked}\n onChange={handleChange}\n name=\"switch\"\n />\n }\n label={\n <LabelContainer>\n {checked ? (\n iconChecked ? (\n iconChecked\n ) : (\n <div style={{ fontSize: 22, color: \"#4CAF50\" }}>✔</div> // Default checked icon\n )\n ) : iconUnchecked ? (\n iconUnchecked\n ) : (\n <div style={{ fontSize: 20, color: \"#757575\" }}>✘</div> // Default unchecked icon\n )}\n </LabelContainer>\n }\n />\n </BoxContainer>\n );\n};\n\nexport default SwitchWithIcons;\n","import { Typography } from \"@mui/material\";\nimport Skeleton from \"@mui/material/Skeleton\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n DataGrid,\n DataGridProps,\n GridColDef,\n GridSortModel,\n} from \"@mui/x-data-grid\";\nimport React, { Dispatch, SetStateAction, useEffect } from \"react\";\n\ninterface StateType {\n page: number;\n pageSize: number;\n}\n\ntype TapleProps = {\n columns: GridColDef[];\n rows: object[];\n paginationModel?: StateType;\n setPaginationModel?: Dispatch<SetStateAction<StateType>>;\n totalRows?: number;\n rowId?: any;\n loading: boolean;\n _CustomFooter?: any;\n _tools?: React.ReactNode;\n pagingmode?: \"client\" | \"server\";\n rowInPage?: number;\n evenRowBgColor?: string;\n highlightedRowId?: string | number;\n sortFieldMapping?: { [key: string]: string };\n setsortQuery?: (query: Array<any>) => void;\n sortQuery?: any;\n fontSize?: number | string;\n};\n\nconst ScrollableContainer = styled(\"div\")({\n width: \"100%\",\n overflowX: \"auto\", // Enable horizontal scrolling\n});\n\nconst Table = ({\n pagingmode,\n totalRows,\n rows,\n columns,\n paginationModel,\n setPaginationModel,\n loading,\n rowId,\n _tools,\n _CustomFooter,\n rowInPage,\n highlightedRowId,\n evenRowBgColor = \"transparent\",\n sortFieldMapping,\n setsortQuery,\n sortQuery,\n fontSize,\n ...rest\n}: TapleProps) => {\n const [sortModel, setSortModel] = React.useState<GridSortModel>([]);\n\n // Handle sorting\n const handleSetQueryOptions = (options: any[]) => {\n if (!Array.isArray(options)) return;\n const formattedOptions = options.reduce((acc, item) => {\n const field = sortFieldMapping?.[item.field] || item.field;\n acc[field] = item.sort == \"ask\" ? 0 : 1;\n return acc;\n }, {});\n setsortQuery && setsortQuery(formattedOptions);\n };\n\n useEffect(() => {\n if (sortQuery && Object.keys(sortQuery).length > 0) {\n const queryKey = Object.keys(sortQuery)[0];\n if (sortFieldMapping) {\n const fieldName = Object.keys(sortFieldMapping).find(\n (key) => sortFieldMapping[key] === queryKey\n );\n if (fieldName) {\n const sortDirection = sortQuery[queryKey];\n setSortModel([\n { field: fieldName, sort: sortDirection == 0 ? \"asc\" : \"desc\" },\n ]);\n }\n }\n } else {\n setSortModel([]);\n }\n }, [sortQuery]);\n\n const handleSortModelChange = React.useCallback(\n (sortModel: GridSortModel) => {\n handleSetQueryOptions(\n sortModel.map((item) => ({\n field: item.field,\n sort:\n item.sort === \"asc\"\n ? \"ask\"\n : item.sort === \"desc\"\n ? \"desc\"\n : item.sort,\n }))\n );\n },\n []\n );\n\n const option = {\n ...(!!setsortQuery && {\n sortingMode: \"server\",\n onSortModelChange: handleSortModelChange,\n sortModel: sortModel,\n }),\n ...(!pagingmode && { paginationMode: \"server\" }),\n ...(pagingmode == \"client\" && { paginationMode: \"client\" }),\n ...(!pagingmode && {\n onPaginationModelChange: setPaginationModel,\n paginationModel: paginationModel,\n }),\n ...(pagingmode == \"client\" && {\n initialState: {\n pagination: {\n paginationModel: {\n pageSize: rowInPage ? rowInPage : 5, // Default page size (5)\n page: paginationModel?.page || 0, // Default to page 0 if not provided\n },\n },\n },\n }),\n ...(pagingmode == \"client\" && {\n paginationModel, // Connect paginationModel to DataGrid\n }),\n };\n\n return (\n <ScrollableContainer>\n <DataGrid\n rows={rows}\n columns={columns.map((column) => ({ ...column }))}\n disableRowSelectionOnClick\n pagination\n sx={{\n fontSize: fontSize ?? \"0.875rem\",\n \"& .MuiDataGrid-columnHeaders\": {\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n },\n \"& .MuiDataGrid-columnHeaderTitle\": {\n fontSize: fontSize ?? \"1rem\",\n },\n \"& .MuiDataGrid-row:nth-of-type(even)\": {\n backgroundColor: evenRowBgColor,\n },\n ...(highlightedRowId && {\n \"& .MuiDataGrid-row\": {\n [`&[data-id=\"${highlightedRowId}\"]`]: {\n backgroundColor: \"#c5edd0\",\n },\n },\n }),\n }}\n {...(option as Partial<DataGridProps>)}\n onPaginationModelChange={setPaginationModel} // Handle page size and page number changes\n getRowId={rowId}\n disableColumnResize={true}\n autoHeight={true}\n rowCount={totalRows}\n pageSizeOptions={[5, 10, 25, 50, 75, 100]} // Page size options to choose from\n slotProps={{\n pagination: {\n labelRowsPerPage: \"تعداد در هر صفحه\",\n },\n }}\n disableColumnMenu\n disableColumnFilter\n loading={loading}\n localeText={{\n noRowsLabel: \"هیچ داده‌ای یافت نشد!\",\n noResultsOverlayLabel: \"هیچ داده‌ای یافت نشد!\",\n MuiTablePagination: {\n labelDisplayedRows: ({ from, to, count }) =>\n loading ? (\n <>\n <Skeleton\n variant=\"text\"\n width={30}\n style={{ display: \"inline-block\" }}\n />{\" \"}\n <Skeleton\n variant=\"text\"\n width={30}\n style={{ display: \"inline-block\" }}\n />\n </>\n ) : (\n `${from} - ${!isNaN(to) ? to : \"...\"} از ${count !== undefined ? count : \"...\"}`\n ),\n },\n footerRowSelected: (count) => (\n <Typography>سطر های انتخاب شده : {count}</Typography>\n ),\n }}\n {...rest}\n />\n </ScrollableContainer>\n );\n};\n\nexport default Table;\n","import TextField, { TextFieldProps } from \"@mui/material/TextField\";\nimport { ReactNode, forwardRef } from \"react\";\nimport { Control, Controller, FieldValues, Path } from \"react-hook-form\";\nimport { NumericFormat, NumericFormatProps } from \"react-number-format\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport React from \"react\";\n\ntype FormInputNumberProps<T extends FieldValues> = {\n control: Control<T>;\n name: Path<T>;\n label?: string | ReactNode;\n endAdornment?: ReactNode;\n startAdornment?: ReactNode;\n thousandSeparator?: string | null;\n allowLeadingZeros?: boolean;\n allowNegative?: boolean;\n maxLength?: number;\n rules?: any; // Add rules here to allow them in props\n isLoading?: boolean;\n data?: any;\n borderColor?: string;\n decimalScale?: number;\n} & TextFieldProps;\n\nconst FormInputNumber = <T extends FieldValues>({\n name,\n control,\n label,\n endAdornment,\n thousandSeparator,\n startAdornment,\n allowLeadingZeros = false,\n allowNegative = false,\n maxLength,\n isLoading,\n rules,\n data,\n borderColor,\n decimalScale = 2,\n ...rest\n}: FormInputNumberProps<T>) => {\n return (\n <Controller\n rules={rules} // This works because we've typed it correctly\n name={name}\n control={control}\n render={({ field: { onChange, value, ref }, fieldState: { error } }) => (\n <TextField\n disabled={isLoading}\n helperText={error ? error.message : null}\n size=\"small\"\n error={!!error}\n onChange={onChange}\n value={data && !value ? data : value == null ? \"\" : value}\n fullWidth\n sx={{\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: borderColor ? borderColor : \"\",\n },\n \"& .MuiOutlinedInput-root\": {\n borderRadius: \"12px\",\n \"&:hover fieldset\": {\n borderColor: borderColor ?? \"#085938\",\n },\n \"&.Mui-focused fieldset\": {\n borderColor: borderColor ?? \"#085938\",\n },\n },\n \"& .MuiInputLabel-root.Mui-focused\": {\n color: \"#085938\",\n },\n }}\n label={label}\n inputRef={ref}\n variant=\"outlined\"\n InputLabelProps={{ shrink: true }}\n InputProps={{\n inputComponent: NumericFormatCustom as any,\n inputProps: {\n thousandSeparator,\n allowLeadingZeros,\n allowNegative,\n maxLength,\n decimalScale,\n },\n endAdornment: isLoading ? (\n <InputAdornment position=\"end\">\n <CircularProgress size={20} />\n </InputAdornment>\n ) : null,\n startAdornment: startAdornment as any,\n }}\n {...rest}\n />\n )}\n />\n );\n};\n\ninterface CustomProps {\n onChange: (event: { target: { name: string; value: string } }) => void;\n name: string;\n thousandSeparator: string;\n allowLeadingZeros: boolean;\n allowNegative: boolean;\n maxLength?: number;\n decimalScale?: number;\n}\n\nconst NumericFormatCustom = forwardRef<NumericFormatProps, CustomProps>(\n function NumericFormatCustom(props, ref) {\n const {\n onChange,\n thousandSeparator,\n allowLeadingZeros,\n allowNegative,\n maxLength,\n decimalScale,\n ...other\n } = props;\n\n return (\n <NumericFormat\n {...other}\n getInputRef={ref}\n onValueChange={(values) => {\n onChange({\n target: {\n name: props.name,\n value: values.value,\n },\n });\n }}\n maxLength={maxLength}\n allowLeadingZeros={allowLeadingZeros}\n thousandSeparator={thousandSeparator}\n valueIsNumericString\n allowNegative={allowNegative}\n decimalScale={decimalScale} // Ensures at most 2 decimal places\n fixedDecimalScale={false} // Allows flexibility in decimal digits\n dir=\"ltr\"\n />\n );\n }\n);\n\nexport default FormInputNumber;\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField, { TextFieldProps } from \"@mui/material/TextField\";\nimport React from \"react\";\nimport { Control, Controller, FieldValues, Path } from \"react-hook-form\";\n\ntype FormInputTextProps<T extends FieldValues> = {\n control: Control<T>;\n name: Path<T>;\n label?: string;\n maxLength?: number;\n readOnly?: boolean;\n rules?: any; // Add rules here to allow them in props\n size?: \"medium\" | \"small\";\n disabled?: boolean;\n multiline?: boolean;\n isLoading?: boolean;\n onBlurHandler?: any;\n rows?:number;\n} & TextFieldProps;\n\nconst FormInputText = <T extends FieldValues>({\n name,\n control,\n label,\n maxLength,\n readOnly,\n rules,\n size = \"small\",\n disabled = false,\n multiline,\n isLoading,\n onBlurHandler,\n rows,\n ...rest\n}: FormInputTextProps<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n rules={rules} // This works because we've typed it correctly\n render={({ field: { onChange, value, ref }, fieldState: { error } }) => (\n <TextField\n disabled={disabled || isLoading}\n helperText={error ? error.message : null}\n multiline={multiline}\n size={size}\n rows={rows ? rows : undefined}\n error={!!error}\n onChange={onChange}\n value={value}\n fullWidth\n label={label}\n variant=\"outlined\"\n inputProps={{\n ...rest.inputProps,\n maxLength: maxLength,\n readOnly: readOnly,\n }}\n InputProps={{\n endAdornment: isLoading ? (\n <InputAdornment position=\"end\">\n <CircularProgress size={20} />\n </InputAdornment>\n ) : null,\n }}\n InputLabelProps={{ shrink: true }}\n inputRef={ref}\n {...rest}\n />\n )}\n />\n );\n};\n\nexport default FormInputText;\n","import React from \"react\";\nimport {\n Controller,\n Control,\n FieldErrors,\n FieldValues,\n Path,\n UseFormSetValue,\n} from \"react-hook-form\";\nimport { Box, Button, Stack, Typography } from \"@mui/material\";\nimport { GrUpload, GrGallery } from \"react-icons/gr\";\nimport { MdOutlineCameraAlt } from \"react-icons/md\";\nimport Image from \"next/image\";\n\ntype UploadImageProps<T extends FieldValues> = {\n placeholder: string;\n name: Path<T>;\n selectedImage: string | null;\n setSelectedImage: React.Dispatch<React.SetStateAction<string | null>>;\n control: Control<T>;\n errors: FieldErrors<T>;\n setValue: UseFormSetValue<T>;\n height?: string;\n allowGallery?: boolean;\n imageFit?: \"contain\" | \"cover\";\n};\n\nconst UploadImage = <T extends FieldValues>({\n placeholder,\n name,\n selectedImage,\n setSelectedImage,\n control,\n errors,\n setValue,\n height,\n allowGallery = false,\n imageFit = \"cover\",\n}: UploadImageProps<T>) => {\n // Function to compress image before uploading\n const compressImage = (\n file: File,\n quality = 0.8,\n maxWidth = 800,\n maxHeight = 800\n ): Promise<File | null> => {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (event) => {\n const img = new window.Image();\n img.src = event.target?.result as string;\n img.onload = () => {\n const canvas = document.createElement(\"canvas\");\n let width = img.width;\n let height = img.height;\n\n // Maintain aspect ratio\n if (width > maxWidth) {\n height *= maxWidth / width;\n width = maxWidth;\n }\n if (height > maxHeight) {\n width *= maxHeight / height;\n height = maxHeight;\n }\n\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(img, 0, 0, width, height);\n canvas.toBlob(\n (blob) => {\n if (blob) {\n const compressedFile = new File([blob], file.name, {\n type: \"image/jpeg\",\n lastModified: Date.now(),\n });\n resolve(compressedFile);\n } else {\n resolve(null);\n }\n },\n \"image/jpeg\",\n quality\n );\n } else {\n resolve(null);\n }\n };\n };\n });\n };\n\n // Function to handle file input change and process image\n const handleImageChange = async (\n event: React.ChangeEvent<HTMLInputElement>,\n source: \"gallery\" | \"camera\"\n ) => {\n const file = event.target.files?.[0];\n if (file) {\n console.log(`Original File Size: ${(file.size / 1024).toFixed(2)} KB`);\n\n const compressedFile = await compressImage(file);\n if (compressedFile) {\n console.log(\n `Compressed File Size: ${(compressedFile.size / 1024).toFixed(2)} KB`\n );\n\n const objectURL = URL.createObjectURL(compressedFile);\n setSelectedImage(objectURL);\n setValue(name, compressedFile as unknown as T[typeof name]);\n }\n }\n };\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => (\n <>\n <label\n htmlFor=\"file-upload\"\n style={{\n width: \"100%\",\n height: height || \"200px\",\n maxHeight: height ? \"55vh\" : \"\",\n border: selectedImage ? \"\" : \"2px dashed #ccc\",\n borderRadius: \"10px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: \"#aaa\",\n marginTop: \"2rem\",\n cursor: allowGallery ? \"default\" : \"pointer\",\n position: \"relative\",\n overflow: \"hidden\",\n }}\n >\n {selectedImage ? (\n <Image\n src={selectedImage}\n alt=\"Preview\"\n fill\n objectFit={imageFit}\n />\n ) : (\n <Stack\n spacing={allowGallery ? 2 : 0}\n sx={{ pt: allowGallery ? 2 : 0 }}\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: 1.5,\n }}\n >\n <Box sx={{ paddingBottom: \"0.5rem\" }}>\n <GrUpload />\n </Box>\n {placeholder}\n </Box>\n {allowGallery && (\n <Stack spacing={1.5}>\n <Button\n sx={{ width: \"9rem\" }}\n variant=\"outlined\"\n color=\"info\"\n startIcon={<MdOutlineCameraAlt size={16} />}\n onClick={() =>\n document.getElementById(\"camera-upload\")?.click()\n }\n >\n بارگذاری از دوربین\n </Button>\n <Button\n sx={{ width: \"9rem\" }}\n variant=\"outlined\"\n color=\"info\"\n startIcon={<GrGallery size={16} />}\n onClick={() =>\n document.getElementById(\"gallery-upload\")?.click()\n }\n >\n بارگذاری از گالری\n </Button>\n </Stack>\n )}\n {!allowGallery && (\n <input\n id=\"file-upload\"\n type=\"file\"\n accept=\"image/*\"\n capture={allowGallery ? undefined : \"environment\"}\n onChange={(event) => {\n handleImageChange(event, \"camera\");\n field.onChange(event.target.files?.[0] || null);\n }}\n style={{ display: \"none\" }}\n />\n )}\n </Stack>\n )}\n </label>\n\n {/* Hidden file inputs for gallery and camera */}\n <input\n id=\"gallery-upload\"\n type=\"file\"\n accept=\"image/*\"\n onChange={(event) => {\n handleImageChange(event, \"gallery\");\n field.onChange(event.target.files?.[0] || null);\n }}\n style={{ display: \"none\" }}\n />\n\n <input\n id=\"camera-upload\"\n type=\"file\"\n accept=\"image/*\"\n capture=\"environment\"\n onChange={(event) => {\n handleImageChange(event, \"camera\");\n field.onChange(event.target.files?.[0] || null);\n }}\n style={{ display: \"none\" }}\n />\n\n {selectedImage && (\n <Box\n sx={{ display: \"flex\", justifyContent: \"center\", marginTop: 2 }}\n >\n <Button\n onClick={() => {\n setSelectedImage(null);\n setValue(name, null as unknown as T[typeof name]);\n\n (\n document.getElementById(\n \"gallery-upload\"\n ) as HTMLInputElement\n ).value = \"\";\n (\n document.getElementById(\"camera-upload\") as HTMLInputElement\n ).value = \"\";\n }}\n variant=\"outlined\"\n color=\"error\"\n sx={{\n padding: \"0.25rem 1rem\",\n fontSize: 14,\n }}\n >\n حذف تصویر\n </Button>\n </Box>\n )}\n\n {errors[name] && (\n <Typography color=\"error\" variant=\"body2\" sx={{ mt: 1.5, ml: 1 }}>\n {String(errors[name]?.message || \"\")}\n </Typography>\n )}\n </>\n )}\n />\n );\n};\n\nexport default UploadImage;\n","import { styled } from \"@mui/material/styles\";\nimport { IoIosArrowForward } from \"react-icons/io\";\nimport MuiAccordion from \"@mui/material/Accordion\";\nimport MuiAccordionSummary, {\n accordionSummaryClasses,\n} from \"@mui/material/AccordionSummary\";\nimport MuiAccordionDetails from \"@mui/material/AccordionDetails\";\nimport {\n AccordionProps,\n AccordionSummaryProps,\n Typography,\n} from \"@mui/material\";\nimport { ReactNode, useState } from \"react\";\n\nexport default function Page({\n data,\n}: {\n data: [{ title: string; body: ReactNode }];\n}) {\n const Accordion = styled((props: AccordionProps) => (\n <MuiAccordion disableGutters elevation={0} square {...props} />\n ))(({ theme }) => ({\n border: `1px solid ${theme.palette.divider}`,\n \"&:not(:last-child)\": {\n borderBottom: 0,\n },\n \"&::before\": {\n display: \"none\",\n },\n }));\n\n const AccordionSummary = styled((props: AccordionSummaryProps) => (\n <MuiAccordionSummary expandIcon={<IoIosArrowForward />} {...props} />\n ))(({ theme }) => ({\n backgroundColor: \"rgba(0, 0, 0, .03)\",\n flexDirection: \"row-reverse\",\n [`& .${accordionSummaryClasses.expandIconWrapper}.${accordionSummaryClasses.expanded}`]:\n {\n transform: \"rotate(90deg)\",\n },\n [`& .${accordionSummaryClasses.content}`]: {\n marginLeft: theme.spacing(1),\n },\n ...theme.applyStyles(\"dark\", {\n backgroundColor: \"rgba(255, 255, 255, .05)\",\n }),\n }));\n\n const AccordionDetails = styled(MuiAccordionDetails)(({ theme }) => ({\n padding: theme.spacing(2),\n borderTop: \"1px solid rgba(0, 0, 0, .125)\",\n }));\n\n const [expanded, setExpanded] = useState<string | false>(\"\");\n\n const handleChange =\n (panel: string) => (event: React.SyntheticEvent, newExpanded: boolean) => {\n setExpanded(newExpanded ? panel : false);\n };\n\n return (\n <>\n {data.map((item, index) => {\n const panelId = `panel${index}`;\n return (\n <Accordion\n key={panelId}\n expanded={expanded === panelId}\n onChange={handleChange(panelId)}\n >\n <AccordionSummary\n aria-controls={`${panelId}-content`}\n id={`${panelId}-header`}\n sx={{\n \"& .MuiAccordionSummary-expandIconWrapper\": {\n color: \"inherit\",\n },\n }}\n >\n <Typography component=\"span\">{item.title}</Typography>\n </AccordionSummary>\n <AccordionDetails>{item.body}</AccordionDetails>\n </Accordion>\n );\n })}\n </>\n );\n}\n"],"mappings":"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","names":["Typography","React","React","Box","React","value","Typography","Box","Button","useTheme","React","React","Box","Stack","Controller","React","React","Dialog","DialogContent","DialogTitle","Box","Button","IconButton","Box","Button","Divider","IconButton","Typography","TextField","useTheme","Dialog","DialogActions","DialogContent","DialogTitle","useState","useEffect","useRef","MdClose","Controller","theme","Button","moment","useEffect","Box","Typography","React","useState","Controller","nowUTC","dateTimeWithIranTime","moment","useEffect","currentDate","Button","yupResolver","Button","Grid","GlobalStyles","useMediaQuery","moment","React","useEffect","useForm","FaChevronLeft","FaChevronRight","yup","nowUTC","dateTimeWithIranTime","RoleFormSchema","defaultValues","currentDate","Typography","useMediaQuery","Box","LocalizationProvider","AdapterMomentJalaali","moment","React","useState","Controller","JalaliDatePicker","Box","Typography","LocalizationProvider","AdapterMomentJalaali","moment","React","useEffect","useState","convertToEnglishDigits","convertToPersianDigits","Box","IconButton","Typography","Button","Dialog","DialogContent","DialogTitle","Image","useEffect","useRef","useState","IoClose","React","React","Button","Typography","useMediaQuery","Box","LocalizationProvider","AdapterMomentJalaali","dayjs","moment","React","useState","Controller","JalaliDatePicker","React","Dialog","DialogActions","DialogContent","DialogTitle","Box","Button","CircularProgress","Divider","IconButton","MdClose","MdOutlineCancel","ConfirmationDialog","Card","Stack","Typography","useTheme","React","convertToPersianDigits","Button","Stack","Box","React","FaChevronLeft","FaChevronRight","React","Controller","FormControlLabel","Checkbox","FormControl","IconButton","Typography","React","useState","Box","React","Box","React","Box","FormControlLabel","styled","React","Typography","Skeleton","styled","React","useEffect","sortModel","TextField","Controller","CircularProgress","InputAdornment","React","NumericFormatCustom","CircularProgress","InputAdornment","TextField","React","Controller","React","Controller","Box","Button","Stack","Typography","Image","height","styled","Typography","useState"]}