diff --git a/src/app/(withAuth)/dashboard/damages/report/page.js b/src/app/(withAuth)/dashboard/damages/report/page.js index a9d9507..d6bfd78 100644 --- a/src/app/(withAuth)/dashboard/damages/report/page.js +++ b/src/app/(withAuth)/dashboard/damages/report/page.js @@ -1,7 +1,11 @@ -import DamagesReportPage from "@/components/dashboard/damages/report" -import WithPermission from "@/core/middlewares/withPermission" +import DamagesReportPage from "@/components/dashboard/damages/report"; +import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { - return -} -export default Page \ No newline at end of file + return ( + + + + ); +}; +export default Page; diff --git a/src/components/dashboard/azmayesh/Forms/CandUAzmayesh/index.jsx b/src/components/dashboard/azmayesh/Forms/CandUAzmayesh/index.jsx index 960946d..8ce5b88 100644 --- a/src/components/dashboard/azmayesh/Forms/CandUAzmayesh/index.jsx +++ b/src/components/dashboard/azmayesh/Forms/CandUAzmayesh/index.jsx @@ -1,13 +1,27 @@ "use client"; -import { Dialog } from "@mui/material"; +import { Dialog, IconButton } from "@mui/material"; import FormAndRequest from "./FormAndRequest"; import DialogLoading from "@/core/components/DialogLoading"; +import CloseIcon from "@mui/icons-material/Close"; const CandUAzmayesh = ({ open, setOpen, mutate, updateInfo, rowId, loadingOpen, fromUpdate = false }) => { const isUpdateReady = fromUpdate ? updateInfo !== null : true; return ( + setOpen(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {isUpdateReady ? ( { const isUpdateReady = fromUpdate ? updateInfo !== null : true; return ( + setOpen(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {isUpdateReady ? ( { return ( + setOpen(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {open && } ); diff --git a/src/components/dashboard/damageItems/RowActions/Edit/index.jsx b/src/components/dashboard/damageItems/RowActions/Edit/index.jsx index 5fad290..39447a8 100644 --- a/src/components/dashboard/damageItems/RowActions/Edit/index.jsx +++ b/src/components/dashboard/damageItems/RowActions/Edit/index.jsx @@ -2,6 +2,7 @@ import BorderColorIcon from "@mui/icons-material/BorderColor"; import { Dialog, IconButton, Tooltip } from "@mui/material"; import EditFormContent from "./Form"; import { useState } from "react"; +import CloseIcon from "@mui/icons-material/Close"; const Edit = ({ row, mutate, rowId }) => { const [openEditDialog, setOpenEditDialog] = useState(false); @@ -20,6 +21,19 @@ const Edit = ({ row, mutate, rowId }) => { + setOpenEditDialog(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {openEditDialog && ( )} diff --git a/src/components/dashboard/damages/operator/Actions/create/Forms/index.jsx b/src/components/dashboard/damages/operator/Actions/create/Forms/index.jsx index 9bc269d..46a8f43 100644 --- a/src/components/dashboard/damages/operator/Actions/create/Forms/index.jsx +++ b/src/components/dashboard/damages/operator/Actions/create/Forms/index.jsx @@ -1,9 +1,10 @@ "use client"; -import { Dialog } from "@mui/material"; +import { Dialog, IconButton } from "@mui/material"; import CreateFormContent from "./CreateFormContent"; import { format } from "date-fns"; import { CREATE_DAMAGE } from "@/core/utils/routes"; import useRequest from "@/lib/hooks/useRequest"; +import CloseIcon from "@mui/icons-material/Close"; const OperatorCreateForm = ({ open, setOpen, mutate }) => { const requestServer = useRequest({ notificationSuccess: true }); @@ -74,6 +75,19 @@ const OperatorCreateForm = ({ open, setOpen, mutate }) => { }; return ( + setOpen(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {open && ( { const [openEditDialog, setOpenEditDialog] = useState(false); @@ -29,6 +30,19 @@ const EditForm = ({ row, mutate, rowId }) => { }, }} > + setOpenEditDialog(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {openEditDialog && ( { const [openRegisterInsuranceDialog, setOpenRegisterInsuranceDialog] = useState(false); @@ -24,6 +25,19 @@ const RegisterInsurance = ({ row, mutate, rowId }) => { maxWidth={"sm"} scroll="paper" > + setOpenRegisterInsuranceDialog(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {openRegisterInsuranceDialog && ( { const filename = `خروجی کارتابل گزارشات خسارات وارده بر ابنیه فنی تاریخ_${moment().format("jYYYY_jMM_jDD")}.xlsx`; FileSaver.saveAs(response.data, filename); }) - .catch(() => { }) + .catch(() => {}) .finally(() => { setLoading(false); }); diff --git a/src/components/dashboard/damages/report/ReportLists.jsx b/src/components/dashboard/damages/report/ReportLists.jsx index c4923c9..c43c9bb 100644 --- a/src/components/dashboard/damages/report/ReportLists.jsx +++ b/src/components/dashboard/damages/report/ReportLists.jsx @@ -94,7 +94,7 @@ const ReportLists = ({ data, specialFilter }) => { return (renderedCellValue / 1).toLocaleString(); }, }, - ] + ], }, { accessorKey: "kol_sabt_shode", @@ -219,7 +219,7 @@ const ReportLists = ({ data, specialFilter }) => { return (renderedCellValue / 1).toLocaleString(); }, }, - ] + ], }, ]; }, []); diff --git a/src/components/dashboard/damages/report/Search/FromDateController.jsx b/src/components/dashboard/damages/report/Search/FromDateController.jsx index b18b320..02d92bd 100644 --- a/src/components/dashboard/damages/report/Search/FromDateController.jsx +++ b/src/components/dashboard/damages/report/Search/FromDateController.jsx @@ -13,7 +13,7 @@ const FromDateController = ({ control }) => { name="from_date" error={!!error} value={value} - label={'تاریخ تصادف (از تاریخ)'} + label={"تاریخ تصادف (از تاریخ)"} placeholder={"از تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/damages/report/Search/ToDateController.jsx b/src/components/dashboard/damages/report/Search/ToDateController.jsx index 6f8b0d8..4e41124 100644 --- a/src/components/dashboard/damages/report/Search/ToDateController.jsx +++ b/src/components/dashboard/damages/report/Search/ToDateController.jsx @@ -15,7 +15,7 @@ const ToDateController = ({ control }) => { minDate={minDate} error={!!error} value={value} - label={'تاریخ تصادف (تا تاریخ)'} + label={"تاریخ تصادف (تا تاریخ)"} placeholder={"تا تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/damages/report/index.jsx b/src/components/dashboard/damages/report/index.jsx index 2765bb1..6e2092d 100644 --- a/src/components/dashboard/damages/report/index.jsx +++ b/src/components/dashboard/damages/report/index.jsx @@ -1,4 +1,4 @@ -'use client' +"use client"; import PageTitle from "@/core/components/PageTitle"; import { GET_PROVINCE_RECEIPT_REPORT, GET_COUNTRY_RECEIPT_REPORT } from "@/core/utils/routes"; import { useAuth } from "@/lib/contexts/auth"; @@ -92,12 +92,12 @@ const DamagesReportPage = () => { ], filters: data, }); - } catch (e) { } + } catch (e) {} } }; useEffect(() => { - if (!userPermissions) return + if (!userPermissions) return; onSearchSubmit(defaultValues); }, [userPermissions]); @@ -133,5 +133,5 @@ const DamagesReportPage = () => { {!data ? : } ); -} -export default DamagesReportPage \ No newline at end of file +}; +export default DamagesReportPage; diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/index.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/index.jsx index 0a215b5..edcc098 100644 --- a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/index.jsx +++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/index.jsx @@ -1,8 +1,9 @@ "use client"; -import { Dialog } from "@mui/material"; +import { Dialog, IconButton } from "@mui/material"; import CreateFormContent from "@/components/dashboard/roadItems/operator/Actions/Create/Forms/CreateFormContent"; import { CREATE_ROAD_ITEMS } from "@/core/utils/routes"; import useRequest from "@/lib/hooks/useRequest"; +import CloseIcon from "@mui/icons-material/Close"; const OperatorCreateForm = ({ open, setOpen, mutate }) => { const requestServer = useRequest({ notificationSuccess: true }); @@ -22,6 +23,19 @@ const OperatorCreateForm = ({ open, setOpen, mutate }) => { }; return ( + setOpen(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {open && } ); diff --git a/src/components/dashboard/roadItems/operator/Actions/ObservedGashtCreate/GashtCreate.jsx b/src/components/dashboard/roadItems/operator/Actions/ObservedGashtCreate/GashtCreate.jsx index 968d907..4784f26 100644 --- a/src/components/dashboard/roadItems/operator/Actions/ObservedGashtCreate/GashtCreate.jsx +++ b/src/components/dashboard/roadItems/operator/Actions/ObservedGashtCreate/GashtCreate.jsx @@ -1,11 +1,25 @@ -import { Dialog } from "@mui/material"; +import { Dialog, IconButton } from "@mui/material"; import GashtCreateContent from "./GashtCreateContent"; import { useState } from "react"; +import CloseIcon from "@mui/icons-material/Close"; const GashtCreate = ({ open, setOpen, mutate, rowId }) => { const [tabState, setTabState] = useState(0); return ( + setOpen(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {open && ( )} diff --git a/src/components/dashboard/roadItems/operator/RowActions/EditForm/index.jsx b/src/components/dashboard/roadItems/operator/RowActions/EditForm/index.jsx index 2cc378d..4548f15 100644 --- a/src/components/dashboard/roadItems/operator/RowActions/EditForm/index.jsx +++ b/src/components/dashboard/roadItems/operator/RowActions/EditForm/index.jsx @@ -2,6 +2,7 @@ import { Dialog, DialogTitle, IconButton, Tooltip } from "@mui/material"; import { useState } from "react"; import BorderColorIcon from "@mui/icons-material/BorderColor"; import EditController from "./EditController"; +import CloseIcon from "@mui/icons-material/Close"; const EditForm = ({ row, mutate, rowId }) => { const [openEditDialog, setOpenEditDialog] = useState(false); @@ -30,6 +31,19 @@ const EditForm = ({ row, mutate, rowId }) => { }} > ویرایش اطلاعات + setOpenEditDialog(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {openEditDialog && ( { name="from_date" error={!!error} value={value} - label={'تاریخ فعالیت (از تاریخ)'} + label={"تاریخ فعالیت (از تاریخ)"} placeholder={"از تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/roadItems/reports/ItemsReports/Search/ToDateController.jsx b/src/components/dashboard/roadItems/reports/ItemsReports/Search/ToDateController.jsx index 90b4bdd..2429410 100644 --- a/src/components/dashboard/roadItems/reports/ItemsReports/Search/ToDateController.jsx +++ b/src/components/dashboard/roadItems/reports/ItemsReports/Search/ToDateController.jsx @@ -15,7 +15,7 @@ const ToDateController = ({ control }) => { minDate={minDate} error={!!error} value={value} - label={'تاریخ فعالیت (تا تاریخ)'} + label={"تاریخ فعالیت (تا تاریخ)"} placeholder={"تا تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/roadItems/reports/ItemsReports/index.jsx b/src/components/dashboard/roadItems/reports/ItemsReports/index.jsx index f485c51..b9eb0da 100644 --- a/src/components/dashboard/roadItems/reports/ItemsReports/index.jsx +++ b/src/components/dashboard/roadItems/reports/ItemsReports/index.jsx @@ -52,8 +52,8 @@ const ReportPage = () => { edare_name: "کل کشور", sum: result.activities.length ? result.activities - .filter((report) => report.p === -1) - .reduce((acc, report) => acc + (report.s || 0), 0) + .filter((report) => report.p === -1) + .reduce((acc, report) => acc + (report.s || 0), 0) : 0, }; itemsList.forEach((item) => { @@ -82,7 +82,7 @@ const ReportPage = () => { ], filters: data, }); - } catch (e) { } + } catch (e) {} } else { try { params.set("province_id", `${data.province_id}`); @@ -92,8 +92,8 @@ const ReportPage = () => { edare_name: "کل استان", sum: result.activities.length ? result.activities - .filter((report) => report.c === -1) - .reduce((acc, report) => acc + (report.s || 0), 0) + .filter((report) => report.c === -1) + .reduce((acc, report) => acc + (report.s || 0), 0) : 0, }; @@ -126,12 +126,12 @@ const ReportPage = () => { ], filters: data, }); - } catch (e) { } + } catch (e) {} } }; useEffect(() => { - if (!userPermissions) return + if (!userPermissions) return; if (itemsList.length === 0) return; onSearchSubmit(defaultValues); }, [itemsList, userPermissions]); diff --git a/src/components/dashboard/roadItems/reports/SubItemsReports/Search/FromDateController.jsx b/src/components/dashboard/roadItems/reports/SubItemsReports/Search/FromDateController.jsx index 0764aa8..2e23def 100644 --- a/src/components/dashboard/roadItems/reports/SubItemsReports/Search/FromDateController.jsx +++ b/src/components/dashboard/roadItems/reports/SubItemsReports/Search/FromDateController.jsx @@ -13,7 +13,7 @@ const FromDateController = ({ control }) => { name="from_date" error={!!error} value={value} - label={'تاریخ فعالیت (از تاریخ)'} + label={"تاریخ فعالیت (از تاریخ)"} placeholder={"از تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/roadItems/reports/SubItemsReports/Search/ToDateController.jsx b/src/components/dashboard/roadItems/reports/SubItemsReports/Search/ToDateController.jsx index 3cb1952..2b312c4 100644 --- a/src/components/dashboard/roadItems/reports/SubItemsReports/Search/ToDateController.jsx +++ b/src/components/dashboard/roadItems/reports/SubItemsReports/Search/ToDateController.jsx @@ -15,7 +15,7 @@ const ToDateController = ({ control }) => { minDate={minDate} error={!!error} value={value} - label={'تاریخ فعالیت (تا تاریخ)'} + label={"تاریخ فعالیت (تا تاریخ)"} placeholder={"تا تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/roadItems/reports/SubItemsReports/index.jsx b/src/components/dashboard/roadItems/reports/SubItemsReports/index.jsx index 52c7187..f1af3ad 100644 --- a/src/components/dashboard/roadItems/reports/SubItemsReports/index.jsx +++ b/src/components/dashboard/roadItems/reports/SubItemsReports/index.jsx @@ -166,7 +166,7 @@ const SubItemsReports = () => { columns: createColumns(result.sub_items), filters: data, }); - } catch (e) { } + } catch (e) {} } else { try { params.set("province_id", `${data.province_id}`); @@ -216,7 +216,7 @@ const SubItemsReports = () => { }; useEffect(() => { - if (!userPermissions) return + if (!userPermissions) return; onSearchSubmit(defaultValues); }, [userPermissions]); diff --git a/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx b/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx index 01d0f0c..314004c 100644 --- a/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx +++ b/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx @@ -125,8 +125,8 @@ const SupervisorList = () => { props.dependencyFieldValue?.value === "" ? "empty" : loadingEdaratList - ? "loading" - : props.filterParameters.value + ? "loading" + : props.filterParameters.value } columnSelectOption={getColumnSelectOptions} /> @@ -217,8 +217,8 @@ const SupervisorList = () => { props.dependencyFieldValue.value === "" ? "empty" : loadingSubItemsList - ? "loading" - : props.filterParameters.value + ? "loading" + : props.filterParameters.value } columnSelectOption={getColumnSelectOptions} /> diff --git a/src/components/dashboard/roadPatrols/operator/Forms/CreatePatrol/index.jsx b/src/components/dashboard/roadPatrols/operator/Forms/CreatePatrol/index.jsx index 7769896..c19d1e1 100644 --- a/src/components/dashboard/roadPatrols/operator/Forms/CreatePatrol/index.jsx +++ b/src/components/dashboard/roadPatrols/operator/Forms/CreatePatrol/index.jsx @@ -1,11 +1,25 @@ "use client"; -import { Dialog } from "@mui/material"; +import { Dialog, IconButton } from "@mui/material"; import PatrolForms from "./PatrolForms"; +import CloseIcon from "@mui/icons-material/Close"; const CreatePatrol = ({ open, setOpen, mutate }) => { return ( + setOpen(false)} + sx={(theme) => ({ + position: "absolute", + right: 8, + top: 8, + zIndex: 50, + color: theme.palette.grey[500], + })} + > + + {open && } ); diff --git a/src/components/dashboard/roadPatrols/reports/Search/FromDateController.jsx b/src/components/dashboard/roadPatrols/reports/Search/FromDateController.jsx index 01f63ab..73b095f 100644 --- a/src/components/dashboard/roadPatrols/reports/Search/FromDateController.jsx +++ b/src/components/dashboard/roadPatrols/reports/Search/FromDateController.jsx @@ -13,7 +13,7 @@ const FromDateController = ({ control }) => { name="from_date" error={!!error} value={value} - label={'تاریخ شروع (از تاریخ)'} + label={"تاریخ شروع (از تاریخ)"} placeholder={"از تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/roadPatrols/reports/Search/ToDateController.jsx b/src/components/dashboard/roadPatrols/reports/Search/ToDateController.jsx index 2a995a8..d102c13 100644 --- a/src/components/dashboard/roadPatrols/reports/Search/ToDateController.jsx +++ b/src/components/dashboard/roadPatrols/reports/Search/ToDateController.jsx @@ -15,7 +15,7 @@ const ToDateController = ({ control }) => { minDate={minDate} error={!!error} value={value} - label={'تاریخ شروع (تا تاریخ)'} + label={"تاریخ شروع (تا تاریخ)"} placeholder={"تا تاریخ"} setFieldValue={(name, newValue) => { const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD"); diff --git a/src/components/dashboard/roadPatrols/reports/index.jsx b/src/components/dashboard/roadPatrols/reports/index.jsx index a4b6216..ae2ec32 100644 --- a/src/components/dashboard/roadPatrols/reports/index.jsx +++ b/src/components/dashboard/roadPatrols/reports/index.jsx @@ -66,7 +66,7 @@ const ReportPage = () => { ], filters: data, }); - } catch (e) { } + } catch (e) {} } else { try { params.set("province_id", `${data.province_id}`); @@ -90,12 +90,12 @@ const ReportPage = () => { ], filters: data, }); - } catch (e) { } + } catch (e) {} } }; useEffect(() => { - if (!userPermissions) return + if (!userPermissions) return; onSearchSubmit(defaultValues); }, [userPermissions]); diff --git a/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx b/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx index 4829e52..80a6915 100644 --- a/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx +++ b/src/components/dashboard/roadPatrols/supervisor/SupervisorList.jsx @@ -119,8 +119,8 @@ const SupervisorList = () => { props.dependencyFieldValue?.value === "" ? "empty" : loadingEdaratList - ? "loading" - : props.filterParameters.value + ? "loading" + : props.filterParameters.value } columnSelectOption={getColumnSelectOptions} /> diff --git a/src/core/utils/pageMenu.js b/src/core/utils/pageMenu.js index 1c7d7a7..94569b3 100644 --- a/src/core/utils/pageMenu.js +++ b/src/core/utils/pageMenu.js @@ -487,7 +487,7 @@ export const pageMenu = [ type: "page", route: "/dashboard/damages/report", icon: , - permissions: ["show-receipt", 'show-receipt-province'], + permissions: ["show-receipt", "show-receipt-province"], }, ], }, diff --git a/src/lib/hooks/usePersianInput.js b/src/lib/hooks/usePersianInput.js index 069606f..641c27d 100644 --- a/src/lib/hooks/usePersianInput.js +++ b/src/lib/hooks/usePersianInput.js @@ -1,4 +1,4 @@ -import { useEffect } from 'react'; +import { useEffect } from "react"; function usePersianInput(inputRef, onChange) { useEffect(() => { const input = inputRef.current; @@ -6,7 +6,7 @@ function usePersianInput(inputRef, onChange) { const handleInput = (event) => { const originalValue = event.target.value; - const filteredValue = originalValue.replace(/[A-Za-z]/g, ''); + const filteredValue = originalValue.replace(/[A-Za-z]/g, ""); if (filteredValue !== originalValue) { event.target.value = filteredValue; if (onChange) { @@ -19,15 +19,15 @@ function usePersianInput(inputRef, onChange) { const handleKeyDown = (event) => { const controlKeys = [ - 'Backspace', - 'Delete', - 'Tab', - 'Escape', - 'Enter', - 'ArrowLeft', - 'ArrowRight', - 'ArrowUp', - 'ArrowDown' + "Backspace", + "Delete", + "Tab", + "Escape", + "Enter", + "ArrowLeft", + "ArrowRight", + "ArrowUp", + "ArrowDown", ]; if (controlKeys.includes(event.key)) return; @@ -36,14 +36,14 @@ function usePersianInput(inputRef, onChange) { } }; - input.addEventListener('input', handleInput); - input.addEventListener('keydown', handleKeyDown); + input.addEventListener("input", handleInput); + input.addEventListener("keydown", handleKeyDown); return () => { - input.removeEventListener('input', handleInput); - input.removeEventListener('keydown', handleKeyDown); + input.removeEventListener("input", handleInput); + input.removeEventListener("keydown", handleKeyDown); }; }, [inputRef, onChange]); } -export default usePersianInput; \ No newline at end of file +export default usePersianInput;