@mamrp/components 1.0.9 → 1.0.11
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.
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../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/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/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","../src/switch-button/index.tsx","../src/bascule-connection-button/index.tsx"],"sourcesContent":["// Export components as named exports\nexport { default as Selector } from \"./auto-complete/selector\";\nexport { default as AdvancedSearchButton } from \"./button/search\";\nexport { default as SkeletonCard } from \"./card-skeleton\";\nexport { default as CustomCheckbox } from \"./checkbox\";\nexport { default as ConfirmationDialog } from \"./confirmation-modal\";\nexport { default as CustomTimePicker } from \"./custom-time-picker\";\nexport { default as DateFilterRange } from \"./date-filter-range\";\nexport { default as DateFilter } from \"./date-filter\";\nexport { default as DatePicker } from \"./date-picker\";\nexport { default as DateTimePicker } from \"./date-time-picker\";\nexport { default as DateTimeRangePicker } from \"./date-time-range-picker\";\nexport { default as LicensePlate } from \"./license-plate\";\nexport { default as SearchLicensePlate } from \"./license-plate-search\";\nexport { default as MobileDateTimePicker } from \"./mobile-date-time-picker\";\nexport { default as Modal } from \"./modal\";\nexport { default as NoResult } from \"./no-result\";\nexport { default as PaginationList } from \"./pagination-list\";\nexport { default as RadioButton } from \"./radio-button\";\nexport { default as NestedSelectort } from \"./selector\";\nexport { default as SonarSpinner } from \"./spinner/sonar\";\nexport { default as HorizontalStepper } from \"./stepper\";\nexport { default as Table } from \"./table\";\nexport { default as FormInputNumber } from \"./text-field/number-type\";\nexport { default as FormInputText } from \"./text-field/text-type\";\nexport { default as UploadImage } from \"./upload-image\";\nexport { default as Accordion } from \"./accordion\";\nexport { default as SwitchButton } from \"./switch-button\";\nexport { default as ConnectToBasculeButton } from \"./bascule-connection-button\";\n","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 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 && {\n endAdornment: (\n <CircularProgress color=\"secondary\" size={20} />\n ),\n }) ||\n (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\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 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","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 { 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 const compressedFile = await compressImage(file);\n if (compressedFile) {\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","import { Box, FormControlLabel, Switch } from \"@mui/material\";\nimport { styled } from \"@mui/system\";\nimport React from \"react\";\nimport { PiCardsDuotone, PiTableDuotone } from \"react-icons/pi\";\nimport { useTheme } from \"@mui/material\";\n\ntype SwitchButtonProps = {\n checked: boolean;\n handleChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n iconChecked?: React.ReactNode;\n iconUnchecked?: React.ReactNode;\n};\n\nconst SwitchButton: React.FC<SwitchButtonProps> = ({\n checked,\n handleChange,\n iconChecked,\n iconUnchecked,\n}) => {\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === \"dark\";\n\n const CustomSwitch = styled(Switch)(({ theme }) => ({\n \"& .MuiSwitch-switchBase.Mui-checked\": {\n color: theme.palette.primary.main,\n },\n \"& .MuiSwitch-switchBase\": {\n color: isDarkMode ? \"rgba(220,220,220,1)\" : \"rgba(188,188,188,1)\",\n },\n \"& .MuiSwitch-track\": {\n // backgroundColor: \"rgba(160,160,160, 0.1)\",\n backgroundColor: \"#fff\",\n border: isDarkMode ? \"2px solid white\" : \"2px solid rgba(80,80,80, 1)\",\n },\n }));\n\n const BoxContainer = styled(Box)(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n\n backgroundColor: \"rgba(188,188,188, 0.1)\",\n border: \"2px solid rgba(200,200,200, 1)\",\n borderRadius: 10,\n transition: \"all 0.3s ease\",\n paddingTop: theme.spacing(0.1),\n paddingBottom: theme.spacing(0.1),\n paddingLeft: theme.spacing(1),\n }));\n\n const LabelContainer = styled(\"div\")({\n transition: \"all 0.2s ease\",\n color: isDarkMode ? \"rgba(220,220,220, 1)\" : \"rgba(160,160,160, 1)\",\n });\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 <PiTableDuotone size={30} /> // Default checked icon\n )\n ) : iconUnchecked ? (\n iconUnchecked\n ) : (\n <PiCardsDuotone size={30} /> // Default unchecked icon\n )}\n </LabelContainer>\n }\n />\n </BoxContainer>\n );\n};\n\nexport default SwitchButton;\n","import { Box, Button } from \"@mui/material\";\nimport React, { useRef, useState } from \"react\";\nimport toast from \"react-hot-toast\";\nimport { PiPlugs, PiPlugsConnected } from \"react-icons/pi\";\n\n// ✅ Web Serial API types\ninterface SerialPort {\n open(options: {\n baudRate: number;\n dataBits?: number;\n stopBits?: number;\n parity?: \"none\" | \"even\" | \"odd\";\n flowControl?: \"none\" | \"hardware\";\n }): Promise<void>;\n close(): Promise<void>;\n readable: ReadableStream<Uint8Array> | null;\n writable: WritableStream<Uint8Array> | null;\n}\n\ninterface Serial {\n requestPort(): Promise<SerialPort>;\n getPorts(): Promise<SerialPort[]>;\n}\n\n// Component props\ntype ConnectToBasculeButtonProps = {\n baudRate: number;\n dataBits?: number;\n stopBits?: number;\n parity?: \"none\" | \"even\" | \"odd\";\n flowControl?: \"none\" | \"hardware\";\n};\n\nconst ConnectToBasculeButton: React.FC<ConnectToBasculeButtonProps> = ({\n baudRate,\n dataBits = 8,\n stopBits = 1,\n parity = \"none\",\n flowControl = \"none\",\n}) => {\n const [connected, setConnected] = useState(false);\n const portRef = useRef<SerialPort | null>(null);\n\n const connectToBascule = async () => {\n if (!(\"serial\" in navigator)) {\n toast.error(\"Web Serial API توسط این مرورگر پشتیبانی نمیشود.\");\n return;\n }\n\n try {\n const serial = (navigator as any).serial as Serial;\n const port = await serial.requestPort();\n await port.open({ baudRate, dataBits, stopBits, parity, flowControl });\n portRef.current = port;\n setConnected(true);\n toast.success(\"اتصال به باسکول با موفقیت انجام شد.\");\n } catch (error) {\n console.error(error);\n toast.error(\"خطا در اتصال به باسکول. لطفاً دوباره تلاش کنید.\");\n }\n };\n\n return (\n <>\n <style>{`\n @keyframes jumpAnimation {\n 0% { transform: translateY(1px); }\n 12.5% { transform: translateY(-2px); }\n 25% { transform: translateY(1px); }\n 37.5% { transform: translateY(-2px); }\n 50% { transform: translateY(0); }\n 100% { transform: translateY(0); }\n }\n `}</style>\n\n <Button\n variant=\"contained\"\n onClick={connectToBascule}\n disabled={connected}\n sx={{ minWidth: \"11rem\" }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1,\n fontSize: 16,\n }}\n >\n {connected ? (\n <>\n متصل به باسکول\n <PiPlugsConnected size={20} />\n </>\n ) : (\n <>\n اتصال به باسکول\n <PiPlugs\n size={20}\n style={{\n animation: \"jumpAnimation 2s ease-in-out infinite\",\n }}\n />\n </>\n )}\n </Box>\n </Button>\n </>\n );\n};\n\nexport default ConnectToBasculeButton;\n"],"mappings":"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","names":["ConfirmationDialog","import_material","React","import_react","Image","Dialog","DialogTitle","DialogContent","Button","import_material","React","Autocomplete","value","TextField","import_material","import_react","React","import_react","import_material","React","import_react_hook_form","import_material","import_react","React","React","import_Dialog","import_DialogContent","import_DialogTitle","import_material","Dialog","DialogTitle","DialogContent","DialogActions","Link","import_material","import_Dialog","import_DialogActions","import_DialogContent","import_DialogTitle","import_react","import_md","import_react_hook_form","Tooltip","Dialog","DialogTitle","theme","DialogContent","DialogActions","import_Button","import_react","import_react_hook_form","import_fa","import_material","import_fa","import_react","import_react_hook_form","moment","React","CircularProgress","dayjs","nowUTC","dateTimeWithIranTime","moment","currentDate","Grid","Button","import_yup","import_Button","import_Grid2","import_system","import_moment","import_react","import_react_hook_form","import_fa","yup","nowUTC","moment","dateTimeWithIranTime","RoleFormSchema","defaultValues","currentDate","React","Grid","Button","import_material","import_system","import_x_date_pickers","import_AdapterMomentJalaali","import_moment_jalaali","import_react","import_react_hook_form","moment","JalaliDatePicker","useMediaQuery","React","import_material","import_x_date_pickers","import_AdapterMomentJalaali","import_moment_jalaali","import_react","import_react_hook_form","moment","React","import_utils","import_material","import_Button","import_Dialog","import_DialogContent","import_DialogTitle","import_image","import_react","import_io5","React","Image","Dialog","DialogTitle","DialogContent","Button","import_material","import_useMediaQuery","import_system","import_x_date_pickers","import_AdapterMomentJalaali","import_dayjs","import_moment_jalaali","import_react","import_react_hook_form","moment","JalaliDatePicker","useMediaQuery","React","dayjs","React","import_Dialog","import_DialogActions","import_DialogContent","import_DialogTitle","import_material","import_fa","import_md","ConfirmationDialog","Dialog","DialogTitle","DialogContent","DialogActions","import_material","import_react","React","import_utils","import_material","import_system","React","import_fa","Stack","React","import_react_hook_form","FormControl","FormLabel","RadioGroup","FormControlLabel","Radio","import_md","import_material","import_react","React","import_material","import_system","import_react","React","React","Box","Stepper","Step","StepButton","import_material","import_react","React","sortModel","Skeleton","import_TextField","import_react","import_react_hook_form","import_CircularProgress","React","TextField","InputAdornment","CircularProgress","NumericFormatCustom","import_CircularProgress","import_InputAdornment","import_TextField","import_react","import_react_hook_form","React","TextField","InputAdornment","CircularProgress","import_react","import_react_hook_form","import_material","import_md","import_image","height","React","Image","import_styles","import_io","import_material","import_react","MuiAccordion","MuiAccordionSummary","MuiAccordionDetails","import_material","import_system","import_react","theme","React","import_material","import_react","import_pi","toast","React"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../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/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/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","../src/switch-button/index.tsx","../src/bascule-connection-button/index.tsx"],"sourcesContent":["// Export components as named exports\nexport { default as Selector } from \"./auto-complete/selector\";\nexport { default as AdvancedSearchButton } from \"./button/search\";\nexport { default as SkeletonCard } from \"./card-skeleton\";\nexport { default as CustomCheckbox } from \"./checkbox\";\nexport { default as ConfirmationDialog } from \"./confirmation-modal\";\nexport { default as CustomTimePicker } from \"./custom-time-picker\";\nexport { default as DateFilterRange } from \"./date-filter-range\";\nexport { default as DateFilter } from \"./date-filter\";\nexport { default as DatePicker } from \"./date-picker\";\nexport { default as DateTimePicker } from \"./date-time-picker\";\nexport { default as DateTimeRangePicker } from \"./date-time-range-picker\";\nexport { default as LicensePlate } from \"./license-plate\";\nexport { default as SearchLicensePlate } from \"./license-plate-search\";\nexport { default as MobileDateTimePicker } from \"./mobile-date-time-picker\";\nexport { default as Modal } from \"./modal\";\nexport { default as NoResult } from \"./no-result\";\nexport { default as PaginationList } from \"./pagination-list\";\nexport { default as RadioButton } from \"./radio-button\";\nexport { default as NestedSelectort } from \"./selector\";\nexport { default as SonarSpinner } from \"./spinner/sonar\";\nexport { default as HorizontalStepper } from \"./stepper\";\nexport { default as Table } from \"./table\";\nexport { default as FormInputNumber } from \"./text-field/number-type\";\nexport { default as FormInputText } from \"./text-field/text-type\";\nexport { default as UploadImage } from \"./upload-image\";\nexport { default as Accordion } from \"./accordion\";\nexport { default as SwitchButton } from \"./switch-button\";\nexport { default as ConnectToBasculeButton } from \"./bascule-connection-button\";\n","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 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 && {\n endAdornment: (\n <CircularProgress color=\"secondary\" size={20} />\n ),\n }) ||\n (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\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 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","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 { 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 const compressedFile = await compressImage(file);\n if (compressedFile) {\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","import { Box, FormControlLabel, Switch } from \"@mui/material\";\nimport { styled } from \"@mui/system\";\nimport React from \"react\";\nimport { PiCardsDuotone, PiTableDuotone } from \"react-icons/pi\";\nimport { useTheme } from \"@mui/material\";\n\ntype SwitchButtonProps = {\n checked: boolean;\n handleChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n iconChecked?: React.ReactNode;\n iconUnchecked?: React.ReactNode;\n};\n\nconst SwitchButton: React.FC<SwitchButtonProps> = ({\n checked,\n handleChange,\n iconChecked,\n iconUnchecked,\n}) => {\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === \"dark\";\n\n const CustomSwitch = styled(Switch)(({ theme }) => ({\n \"& .MuiSwitch-switchBase.Mui-checked\": {\n color: theme.palette.primary.main,\n },\n \"& .MuiSwitch-switchBase\": {\n color: isDarkMode ? \"rgba(220,220,220,1)\" : \"rgba(188,188,188,1)\",\n },\n \"& .MuiSwitch-track\": {\n // backgroundColor: \"rgba(160,160,160, 0.1)\",\n backgroundColor: \"#fff\",\n border: isDarkMode ? \"2px solid white\" : \"2px solid rgba(80,80,80, 1)\",\n },\n }));\n\n const BoxContainer = styled(Box)(({ theme }) => ({\n display: \"flex\",\n alignItems: \"center\",\n\n backgroundColor: \"rgba(188,188,188, 0.1)\",\n border: \"2px solid rgba(200,200,200, 1)\",\n borderRadius: 10,\n transition: \"all 0.3s ease\",\n paddingTop: theme.spacing(0.1),\n paddingBottom: theme.spacing(0.1),\n paddingLeft: theme.spacing(1),\n }));\n\n const LabelContainer = styled(\"div\")({\n transition: \"all 0.2s ease\",\n color: isDarkMode ? \"rgba(220,220,220, 1)\" : \"rgba(160,160,160, 1)\",\n });\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 <PiTableDuotone size={30} /> // Default checked icon\n )\n ) : iconUnchecked ? (\n iconUnchecked\n ) : (\n <PiCardsDuotone size={30} /> // Default unchecked icon\n )}\n </LabelContainer>\n }\n />\n </BoxContainer>\n );\n};\n\nexport default SwitchButton;\n","import { Box, Button } from \"@mui/material\";\nimport React, { useRef, useState } from \"react\";\nimport toast from \"react-hot-toast\";\nimport { PiPlugs, PiPlugsConnected } from \"react-icons/pi\";\n\n// ✅ Web Serial API types\ninterface SerialPort {\n open(options: {\n baudRate: number;\n dataBits?: number;\n stopBits?: number;\n parity?: \"none\" | \"even\" | \"odd\";\n flowControl?: \"none\" | \"hardware\";\n }): Promise<void>;\n close(): Promise<void>;\n readable: ReadableStream<Uint8Array> | null;\n writable: WritableStream<Uint8Array> | null;\n}\n\ninterface Serial {\n requestPort(): Promise<SerialPort>;\n getPorts(): Promise<SerialPort[]>;\n}\n\n// Component props\ntype ConnectToBasculeButtonProps = {\n baudRate: number;\n dataBits?: number;\n stopBits?: number;\n parity?: \"none\" | \"even\" | \"odd\";\n flowControl?: \"none\" | \"hardware\";\n};\n\nconst ConnectToBasculeButton: React.FC<ConnectToBasculeButtonProps> = ({\n baudRate,\n dataBits = 8,\n stopBits = 1,\n parity = \"none\",\n flowControl = \"none\",\n}) => {\n const [connected, setConnected] = useState(false);\n const portRef = useRef<SerialPort | null>(null);\n\n //connects to bascule\n const connectToBascule = async () => {\n if (!(\"serial\" in navigator)) {\n toast.error(\"Web Serial API توسط این مرورگر پشتیبانی نمیشود.\");\n return;\n }\n\n try {\n const serial = (navigator as any).serial as Serial;\n const port = await serial.requestPort();\n await port.open({ baudRate, dataBits, stopBits, parity, flowControl });\n portRef.current = port;\n setConnected(true);\n toast.success(\"اتصال به باسکول با موفقیت انجام شد.\");\n } catch (error) {\n console.error(error);\n toast.error(\"خطا در اتصال به باسکول. لطفاً دوباره تلاش کنید.\");\n }\n };\n\n return (\n <>\n <style>{`\n @keyframes jumpAnimation {\n 0% { transform: translateY(1px); }\n 12.5% { transform: translateY(-2px); }\n 25% { transform: translateY(1px); }\n 37.5% { transform: translateY(-2px); }\n 50% { transform: translateY(0); }\n 100% { transform: translateY(0); }\n }\n `}</style>\n\n <Button\n variant=\"contained\"\n onClick={connectToBascule}\n disabled={connected}\n sx={{ minWidth: \"11rem\" }}\n >\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 1,\n fontSize: 16,\n }}\n >\n {connected ? (\n <>\n متصل به باسکول\n <PiPlugsConnected size={20} />\n </>\n ) : (\n <>\n اتصال به باسکول\n <PiPlugs\n size={20}\n style={{\n animation: \"jumpAnimation 2s ease-in-out infinite\",\n }}\n />\n </>\n )}\n </Box>\n </Button>\n </>\n );\n};\n\nexport default ConnectToBasculeButton;\n"],"mappings":"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","names":["ConfirmationDialog","import_material","React","import_react","Image","Dialog","DialogTitle","DialogContent","Button","import_material","React","Autocomplete","value","TextField","import_material","import_react","React","import_react","import_material","React","import_react_hook_form","import_material","import_react","React","React","import_Dialog","import_DialogContent","import_DialogTitle","import_material","Dialog","DialogTitle","DialogContent","DialogActions","Link","import_material","import_Dialog","import_DialogActions","import_DialogContent","import_DialogTitle","import_react","import_md","import_react_hook_form","Tooltip","Dialog","DialogTitle","theme","DialogContent","DialogActions","import_Button","import_react","import_react_hook_form","import_fa","import_material","import_fa","import_react","import_react_hook_form","moment","React","CircularProgress","dayjs","nowUTC","dateTimeWithIranTime","moment","currentDate","Grid","Button","import_yup","import_Button","import_Grid2","import_system","import_moment","import_react","import_react_hook_form","import_fa","yup","nowUTC","moment","dateTimeWithIranTime","RoleFormSchema","defaultValues","currentDate","React","Grid","Button","import_material","import_system","import_x_date_pickers","import_AdapterMomentJalaali","import_moment_jalaali","import_react","import_react_hook_form","moment","JalaliDatePicker","useMediaQuery","React","import_material","import_x_date_pickers","import_AdapterMomentJalaali","import_moment_jalaali","import_react","import_react_hook_form","moment","React","import_utils","import_material","import_Button","import_Dialog","import_DialogContent","import_DialogTitle","import_image","import_react","import_io5","React","Image","Dialog","DialogTitle","DialogContent","Button","import_material","import_useMediaQuery","import_system","import_x_date_pickers","import_AdapterMomentJalaali","import_dayjs","import_moment_jalaali","import_react","import_react_hook_form","moment","JalaliDatePicker","useMediaQuery","React","dayjs","React","import_Dialog","import_DialogActions","import_DialogContent","import_DialogTitle","import_material","import_fa","import_md","ConfirmationDialog","Dialog","DialogTitle","DialogContent","DialogActions","import_material","import_react","React","import_utils","import_material","import_system","React","import_fa","Stack","React","import_react_hook_form","FormControl","FormLabel","RadioGroup","FormControlLabel","Radio","import_md","import_material","import_react","React","import_material","import_system","import_react","React","React","Box","Stepper","Step","StepButton","import_material","import_react","React","sortModel","Skeleton","import_TextField","import_react","import_react_hook_form","import_CircularProgress","React","TextField","InputAdornment","CircularProgress","NumericFormatCustom","import_CircularProgress","import_InputAdornment","import_TextField","import_react","import_react_hook_form","React","TextField","InputAdornment","CircularProgress","import_react","import_react_hook_form","import_material","import_md","import_image","height","React","Image","import_styles","import_io","import_material","import_react","MuiAccordion","MuiAccordionSummary","MuiAccordionDetails","import_material","import_system","import_react","theme","React","import_material","import_react","import_pi","toast","React"]}
|