push rasad front on new repo

This commit is contained in:
2026-01-18 14:32:49 +03:30
commit 4fe6e70525
2139 changed files with 303150 additions and 0 deletions

44
src/App-oldd.js Normal file
View File

@@ -0,0 +1,44 @@
import React from "react";
const App = () => {
const containerStyle = {
backgroundColor: "#f0f0f0",
fontFamily: "Arial, sans-serif",
textAlign: "center",
};
const headerStyle = {
backgroundColor: "#3498db",
color: "#fff",
padding: "20px",
};
const addressStyle = {
fontSize: "24px",
fontWeight: "bold",
color: "#3498db",
};
const textStyle = {
fontSize: "18px",
};
return (
<div style={containerStyle}>
<div style={headerStyle}>
<h1>سامانه رصدیار به آدرس زیر انتقال یافت!</h1>
</div>
<div style={{ margin: "20px" }}>
<p style={textStyle}>آدرس جدید سامانه:</p>
<p style={addressStyle}>
<a href="https://sha.rasadyaar.ir/">sha.rasadyaar.ir</a>
</p>
</div>
<div style={{ margin: "20px" }}>
<p style={textStyle}>برای انتقال بر روی لینک کلیک کنید.</p>
</div>
</div>
);
};
export default App;

158
src/App.css Normal file
View File

@@ -0,0 +1,158 @@
a {
text-decoration: none;
}
.App {
text-align: center;
}
html::-webkit-scrollbar {
width: 10px;
}
html::-webkit-scrollbar-thumb {
background: linear-gradient(to bottom, #eaefff, #2247bf);
border-radius: 0px 0px 4px 4px;
}
html::-webkit-scrollbar-track {
background-color: white;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
.svg-icon-color path {
stroke: #4285f4;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.bluehover {
will-change: filter;
transition: filter 300ms;
}
.bluehover:hover {
filter: drop-shadow(0 0 0.5em #cc0a95aa);
}
.marquee {
width: 100%;
line-height: 30px;
color: white;
white-space: nowrap;
overflow: hidden;
box-sizing: border-box;
direction: rtl;
margin-top: -10px !important;
}
.marquee p {
font-size: 15px;
margin: 0;
display: inline-block;
animation: marquee 60s linear infinite;
color: #f9f947;
}
@keyframes marquee {
0% {
transform: translate(-100%, 0);
}
100% {
transform: translate(100%, 0);
}
}
/* .MuiOutlinedInput-notchedOutline,
.MuiButtonBase-root {
border-radius: 15px !important;
} */
.MuiOutlinedInput-notchedOutline {
border-radius: 8px !important;
}
/* .MuiButtonBase-root {
border-radius: 5px !important;
} */
/* .muirtl-1ujnqem-MuiTabs-root {
border-style: solid;
padding: 2px;
border-radius: 15px 15px 0px 0px;
border-width: 1px 0px 0px 0px;
border-color: #a1f1c2;
filter: drop-shadow(0 0 0.75rem crimson);
} */
.insidetabs {
border-style: none !important;
padding: 0px !important;
color: pink !important;
font-size: 10px !important;
}
.header-menu {
font-weight: 800 !important;
}
.muirtl-rpxd6p-MuiButtonBase-root-MuiTab-root.Mui-selected {
background: #eaefff;
font-weight: 800;
}
.path-city {
stroke: #fff;
}
.path-city:hover {
fill: #db5f5f;
}
@media only screen and (max-width: 600px) {
.MuiButtonBase-root-MuiTab-root {
font-size: 0.75rem !important;
}
.muirtl-1sbhvmq {
padding: 12px 16px !important;
}
.muirtl-162ovef {
padding: 4px 8px !important;
}
.MuiChip-root {
height: 24px !important;
}
.MuiChip-label {
padding: 0 6px !important;
}
}

497
src/App.js Normal file
View File

@@ -0,0 +1,497 @@
import React, { Suspense, useEffect, useState } from "react";
import "./App.css";
import { Routes, Route, Navigate, useLocation } from "react-router-dom";
import { guestRouting } from "./routes/guestRouting";
import { getManagerRouting } from "./routes/managerRouting";
import { Box, ThemeProvider } from "@mui/material";
import createCache from "@emotion/cache";
import { prefixer } from "stylis";
import rtlPlugin from "stylis-plugin-rtl";
import { CacheProvider } from "@emotion/react";
import { theme } from "./data/theme";
import axios from "axios";
import { store } from "./lib/redux/store";
import { Loading } from "./components/loading/Loading";
import { useDispatch, useSelector } from "react-redux";
import { avicultureRouting } from "./routes/avicultureRouting";
import { Header } from "./layouts/header/Header";
import AdapterJalali from "@date-io/date-fns-jalali";
import { LocalizationProvider } from "@mui/x-date-pickers";
import { cityRouting } from "./routes/cityRouting";
import { slaughterRouting } from "./routes/slaughterRouting";
import { Modal } from "./components/modal/Modal";
import { provinceFinancialRouting } from "./routes/provinceFinancialRouting";
import { vetFarmRouting } from "./routes/vetFarmRouting";
import Drawer from "./components/drawer/Drawer";
import { generalRouting } from "./routes/generalRouting";
import { StrictModal } from "./components/strict-modal/StrictModal";
import { StrictMissingHallNumber } from "./features/aviculture/components/strict-missing-hall-number/StrictMissingHallNumber";
import { driverRouting } from "./routes/driverRouting";
import { SidebarContextProvider } from "./contexts/SidebarContext";
import { BackDrop } from "./components/backdrop/BackDrop";
import { AppContextProvider } from "./contexts/AppContext";
import { Notif } from "./components/notif/Notif";
import { inspectorRouting } from "./routes/inspectorRouting";
// import bg from "./assets/images/bg.jpg";
import { Fallback } from "./layouts/fallback/Fallback";
import { slaughterHouseVetRouting } from "./routes/slaughterHouseVet";
import { ErrorBoundary } from "react-error-boundary";
import { ErrorFallback } from "./components/error-fallback/ErrorFallback";
import { LOG_OUT } from "./lib/redux/slices/userSlice";
import { adminRouting } from "./routes/adminRouting";
import { SetupAxios } from "./lib/axios/axios";
import { vetSupervisorRouting } from "./routes/vetSupervisorRouting";
import { jahadRouting } from "./routes/jahadRouting";
import { commerceRouting } from "./routes/commerceRouting";
import { cityCommerceRouting } from "./routes/cityCommerceRouting";
import { cityVetRouting } from "./routes/cityVetRouting";
import { cityJihadRouting } from "./routes/cityJihadRouting";
import { observatoryRouting } from "./routes/observatoryRouting";
import { provinceSupervisorRouting } from "./routes/provinceSupervisorRouting";
import { senfRouting } from "./routes/senfRouting";
import versionNumber from "./version.txt";
import { guildRoomRouting } from "./routes/guildRoomRouting";
import { posCompanyRouting } from "./routes/posCompanyRouting";
import { liveStockSupportRouting } from "./routes/liveStockSupportRouting";
import { chainCompanyRouting } from "./routes/chainCompanyRouting";
// import ChatButton from "./components/chat-system/ChatSystem";
import { supporterRouting } from "./routes/supporterRouting";
import { dispenserRouting } from "./routes/dispenserRouting";
import { cityPoultryRouting } from "./routes/cityPoultryRouting";
import { SiteMap } from "./layouts/site-map/SiteMap";
import { getRoleFromUrl } from "./utils/getRoleFromUrl";
import { parentCompanyRouting } from "./routes/parentCompanyRouting";
import { coldHouseStewardRouting } from "./routes/coldHouseStewardRouting";
import { cityGuildRouting } from "./routes/cityGuildRouting";
import { liveStockProvinceJahadRouting } from "./routes/LiveStockProvinceJahadRouting";
import { unionRouting } from "./routes/unionRouting";
import { cooperativeRouting } from "./routes/cooperativeRouting";
import { rancherRouting } from "./routes/rancherRouting";
import { barSquareRouting } from "./routes/barSquareRouting";
import { stewardRouting } from "./routes/stewardRouting";
const AppRouter = () => {
const authToken = useSelector((state) => state.userSlice.authToken);
const role = useSelector((state) => state.userSlice.role);
let routes = [...guestRouting];
let defaultRoute = "/";
// const authToken = true;
// const role = "Poultry";
if (authToken) {
routes = [...generalRouting, ...barSquareRouting];
for (const singleRoleIndex in role) {
if (Object.hasOwnProperty.call(role, singleRoleIndex)) {
const element = role[singleRoleIndex];
switch (element) {
case "Admin":
routes = [...routes, ...adminRouting, ...inspectorRouting];
break;
case "Poultry":
routes = [...routes, ...avicultureRouting];
break;
case "CityOperator":
routes = [...routes, ...cityRouting];
break;
case "KillHouse":
routes = [...routes, ...slaughterRouting];
break;
case "ProvinceOperator":
routes = [...routes, ...getManagerRouting("provinceOperator")];
break;
case "ProvinceFinancial":
routes = [...routes, ...provinceFinancialRouting];
break;
case "ProvinceInspector":
routes = [...routes, ...inspectorRouting];
break;
case "KillHouseVet":
routes = [...routes, ...slaughterHouseVetRouting];
break;
case "VetFarm":
routes = [...routes, ...vetFarmRouting];
break;
case "Driver":
routes = [...routes, ...driverRouting];
break;
case "VetSupervisor":
routes = [...routes, ...vetSupervisorRouting];
break;
case "Jahad":
routes = [...routes, ...jahadRouting];
break;
case "Guilds":
routes = [...routes, ...senfRouting];
break;
case "Steward":
routes = [...routes, ...stewardRouting];
break;
case "Commerce":
routes = [...routes, ...commerceRouting];
break;
case "ProvinceSupervisor":
routes = [...routes, ...provinceSupervisorRouting];
break;
case "CityCommerce":
routes = [...routes, ...cityCommerceRouting];
break;
case "CityVet":
routes = [...routes, ...cityVetRouting];
break;
case "CityJahad":
routes = [...routes, ...cityJihadRouting];
break;
case "Observatory":
routes = [...routes, ...observatoryRouting];
break;
case "GuildRoom":
routes = [...routes, ...guildRoomRouting];
break;
case "PosCompany":
routes = [...routes, ...posCompanyRouting];
break;
case "LiveStockSupport":
routes = [...routes, ...liveStockSupportRouting];
break;
case "SuperAdmin":
routes = [...routes, ...getManagerRouting("SuperAdmin")];
break;
case "ChainCompany":
routes = [...routes, ...chainCompanyRouting];
break;
case "AdminX":
routes = [...routes, ...getManagerRouting("AdminX")];
break;
case "Supporter":
routes = [...routes, ...supporterRouting];
break;
case "Dispenser":
routes = [...routes, ...dispenserRouting];
break;
case "CityPoultry":
routes = [...routes, ...cityPoultryRouting];
break;
case "ParentCompany":
routes = [...routes, ...parentCompanyRouting];
break;
case "ColdHouseSteward":
routes = [...routes, ...coldHouseStewardRouting];
break;
case "cityGuildRouting":
routes = [...routes, ...cityGuildRouting];
break;
case "LiveStockProvinceJahad":
routes = [...routes, ...liveStockProvinceJahadRouting];
break;
case "Union":
routes = [...routes, ...unionRouting];
break;
case "Cooperative":
routes = [...routes, ...cooperativeRouting];
break;
case "Rancher":
routes = [...routes, ...rancherRouting];
break;
default:
}
}
}
}
return (
<Routes>
{routes?.map((route) => {
const { exact, Page, props } = route;
return route.path.map((path) => (
<Route
exact={exact}
path={path}
key={path}
element={
<Suspense fallback={<Fallback />}>
<Box>
<Page {...props} />
</Box>
</Suspense>
}
/>
));
})}
<Route
path="*"
element={<Navigate to={defaultRoute ? defaultRoute : "/"} replace />}
/>
</Routes>
);
};
const cacheRtl = createCache({
key: "muirtl",
stylisPlugins: [prefixer, rtlPlugin],
});
const App = () => {
const dispatch = useDispatch();
const authToken = useSelector((state) => state.userSlice.authToken);
const { pathname } = useLocation();
// useEffect(() => {
// (function () {
// var cache = window.caches;
// cache.keys().then(function (keys) {
// keys.forEach(function (key) {
// cache.delete(key);
// });
// });
// })();
// }, []);
// check for necessary infos
const { profile } = useSelector((state) => state.avicultureSlice);
const [neededInfoMissingHall, setNeededInfoMissingHall] = useState([]);
// const { selectedRoles } = useSelector((state) => state.fileSlice);
// useEffect(() => {
// if (authToken) {
// dispatch(avicultureGetProfile());
// if (!selectedRoles?.length) {
// dispatch(CHANGE_SELECTED_ROLES(role));
// }
// if (isFirstLogin) {
// switch (role[0]) {
// case "Admin":
// break;
// case "Poultry":
// navigate(ROUTE_AVICULTURE_REQUESTS);
// break;
// case "CityOperator":
// navigate(ROUTE_CITY_REQUESTS);
// break;
// case "KillHouse":
// navigate(ROUTE_SLAUGHTER_REQUESTS);
// break;
// case "ProvinceOperator":
// navigate(ROUTE_PROVINCE_REQUESTS);
// break;
// case "ProvinceFinancial":
// navigate(ROUTE_PROVINCE_FINANCIAL_REQUESTS);
// break;
// case "ProvinceInspector":
// break;
// case "KillHouseVet":
// navigate(ROUTE_SLAUGHTER_HOUSE_VET_REQUESTS);
// break;
// case "VetFarm":
// navigate(ROUTE_VETFARM_ROUTE_ALLOCATIONS);
// break;
// case "Driver":
// break;
// case "VetSupervisor":
// navigate(ROUTE_VETـSUPERVISOR_ALLOCATIONS);
// break;
// case "CityVet":
// navigate(ROUTE_CITYVET_ROUTE_ALLOCATIONS);
// break;
// case "Observatory":
// navigate(ROUTE_OBSERVATORY_STATICS);
// break;
// case "Jahad":
// break;
// }
// dispatch(IS_FIRST_LOGIN(false));
// }
// }
// }, [authToken]);
useEffect(() => {
setOpen(false);
if (authToken && profile) {
for (const iterator of profile.aviculture) {
if (!iterator.numberOfHalls) {
setOpen(true);
setNeededInfoMissingHall([
{
title: "NUMBER_OF_HALLS",
data: {
...iterator,
},
},
]);
}
}
}
}, [authToken, profile]);
useEffect(() => {
if (!authToken || profile === null) {
setOpen(false);
}
}, [authToken, profile]);
// useEffect(() => {
// if (authToken) {
// dispatch(provinceGetPolicyAvicultureCommitService());
// }
// }, []);
//buildchange
// useEffect(() => {
// let name = "Arta-System";
// let version = "7";
// const last_version = localStorage.getItem(`${name}-Version`);
// if (last_version !== version) {
// localStorage.setItem(`${name}-Version`, version);
// dispatch(LOG_OUT());
// // window.location.reload(true);
// }
// }, []);
const [visibleSiteMap, setVisibleSiteMap] = useState(false);
useEffect(() => {
setVisibleSiteMap(authToken && getRoleFromUrl());
}, [window.location.href, window.location.pathname, pathname]);
useEffect(() => {
if (
window.location.search.includes("refresh") &&
!window.location.search.includes("finalAmount")
) {
window.location.href = window.location.pathname;
}
}, []);
const hardRefresh = () => {
const currentUrl = window.location.href;
const newUrl = `${currentUrl}?refresh=${new Date().getTime()}`;
window.location.href = newUrl;
};
useEffect(() => {
const uniqueQueryParam = `?v=${new Date().getTime()}`;
fetch(`${versionNumber}${uniqueQueryParam}`)
.then((response) => response.text())
.then((numberText) => {
const numberFromTxt = numberText.toString();
const lastVersion = localStorage.getItem("AppVersion");
console.log("compare versions", numberFromTxt, lastVersion);
if (
!lastVersion ||
lastVersion.toString() !== numberFromTxt.toString()
) {
localStorage.setItem("AppVersion", numberFromTxt.toString());
if ("caches" in window) {
caches.keys().then((names) => {
names.forEach((name) => {
caches.delete(name);
});
});
hardRefresh();
// dispatch(
// OPEN_MODAL({
// title: "ورژن جدید در دسترس است",
// content: (
// <>
// <Grid container gap={SPACING.SMALL} justifyContent="center">
// <Typography variant="body2">
// جهت بهره مندی از امکانات جدید لطفا مرورگر خود را با زدن
// کلیدهای CTRL و F5 مجددا بارگزاری کنید.
// </Typography>
// <Button
// variant="outlined"
// onClick={() => {
// dispatch(CLOSE_MODAL());
// }}
// >
// متوجه شدم
// </Button>
// </Grid>
// </>
// ),
// })
// );
}
}
})
.catch((error) => {
console.error("Error:", error);
});
}, [window.location.pathname]);
const [open, setOpen] = React.useState(false);
// const handleOpen = () => setOpen(true);
const handleClose = () => setOpen(false);
return (
<CacheProvider value={cacheRtl}>
<ThemeProvider theme={theme}>
<LocalizationProvider dateAdapter={AdapterJalali}>
<ErrorBoundary
FallbackComponent={ErrorFallback}
onReset={() => {
dispatch(LOG_OUT());
}}
>
<Suspense fallback={<Fallback />}>
<AppContextProvider>
<div
className="App"
style={
{
// background: !authToken ? `url("${bg}")` : null,
// height: !authToken ? "100vh" : "auto",
}
}
>
<SidebarContextProvider>
{authToken && <Header />}
{visibleSiteMap && <SiteMap />}
{/* {authToken && <ChatButton />} */}
<BackDrop />
<Notif />
</SidebarContextProvider>
<AppRouter />
</div>
{neededInfoMissingHall.map((item, i) => {
let modalTitle = "";
const modalContent = (
<StrictMissingHallNumber
avicultureKey={item.data?.key}
name={item.data?.unitName}
id={item.data?.breedingUniqueId}
handleClose={handleClose}
/>
);
if (item.title === "NUMBER_OF_HALLS") {
modalTitle = "ثبت تعداد سالن ها";
}
return (
<StrictModal
key={"modal" + i}
title={modalTitle}
content={modalContent}
open={open}
/>
);
})}
<Drawer />
<Modal />
<Loading />
</AppContextProvider>
</Suspense>
</ErrorBoundary>
</LocalizationProvider>
</ThemeProvider>
</CacheProvider>
);
};
SetupAxios(axios, store);
export default App;

9
src/App.test.js Normal file
View File

@@ -0,0 +1,9 @@
import React from "react";
import { render, screen } from "@testing-library/react";
import App from "./App";
test("renders learn react link", () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,78 @@
@font-face {
font-family: IRANSans;
font-style: normal;
font-weight: 900;
src: url("../fonts/eot/IRANSansWeb_Black.eot");
src: url("../fonts/eot/IRANSansWeb_Black.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("../fonts/woff2/IRANSansWeb_Black.woff2") format("woff2"),
/* FF39+,Chrome36+, Opera24+*/ url("../fonts/woff/IRANSansWeb_Black.woff")
format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/
url("../fonts/ttf/IRANSansWeb_Black.ttf") format("truetype");
}
@font-face {
font-family: IRANSans;
font-style: normal;
font-weight: bold;
src: url("../fonts/eot/IRANSansWeb_Bold.eot");
src: url("../fonts/eot/IRANSansWeb_Bold.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("../fonts/woff2/IRANSansWeb_Bold.woff2") format("woff2"),
/* FF39+,Chrome36+, Opera24+*/ url("../fonts/woff/IRANSansWeb_Bold.woff")
format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url("../fonts/ttf/IRANSansWeb_Bold.ttf")
format("truetype");
}
@font-face {
font-family: IRANSans;
font-style: normal;
font-weight: 500;
src: url("../fonts/eot/IRANSansWeb_Medium.eot");
src: url("../fonts/eot/IRANSansWeb_Medium.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("../fonts/woff2/IRANSansWeb_Medium.woff2") format("woff2"),
/* FF39+,Chrome36+, Opera24+*/ url("../fonts/woff/IRANSansWeb_Medium.woff")
format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/
url("../fonts/ttf/IRANSansWeb_Medium.ttf") format("truetype");
}
@font-face {
font-family: IRANSans;
font-style: normal;
font-weight: 300;
src: url("../fonts/eot/IRANSansWeb_Light.eot");
src: url("../fonts/eot/IRANSansWeb_Light.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("../fonts/woff2/IRANSansWeb_Light.woff2") format("woff2"),
/* FF39+,Chrome36+, Opera24+*/ url("../fonts/woff/IRANSansWeb_Light.woff")
format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/
url("../fonts/ttf/IRANSansWeb_Light.ttf") format("truetype");
}
@font-face {
font-family: IRANSans;
font-style: normal;
font-weight: 200;
src: url("../fonts/eot/IRANSansWeb_UltraLight.eot");
src: url("../fonts/eot/IRANSansWeb_UltraLight.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("../fonts/woff2/IRANSansWeb_UltraLight.woff2")
format("woff2"),
/* FF39+,Chrome36+, Opera24+*/
url("../fonts/woff/IRANSansWeb_UltraLight.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/
url("../fonts/ttf/IRANSansWeb_UltraLight.ttf") format("truetype");
}
@font-face {
font-family: IRANSans;
font-style: normal;
font-weight: normal;
src: url("../fonts/eot/IRANSansWeb.eot");
src: url("../fonts/eot/IRANSansWeb.eot?#iefix") format("embedded-opentype"),
/* IE6-8 */ url("../fonts/woff2/IRANSansWeb.woff2") format("woff2"),
/* FF39+,Chrome36+, Opera24+*/ url("../fonts/woff/IRANSansWeb.woff")
format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url("../fonts/ttf/IRANSansWeb.ttf")
format("truetype");
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

147
src/assets/fonts/fonts.css Normal file
View File

@@ -0,0 +1,147 @@
/**
*
* Name: IRANYekan Font
* Version: 3.0
* Author: Moslem Ebrahimi (moslemebrahimi.com)
* Created on: Dec 20, 2018
* Updated on: Dec 20, 2018
* Website: http://fontiran.com
* Copyright: Commercial/Proprietary Software
--------------------------------------------------------------------------------------
فونت ایران یکان یک نرم افزار مالکیتی محسوب می شود. جهت آگاهی از قوانین استفاده از این فونت ها لطفا به وب سایت (فونت ایران دات کام) مراجعه نمایید
--------------------------------------------------------------------------------------
IRANYekan fonts are considered a proprietary software. To gain information about the laws regarding the use of these fonts, please visit www.fontiran.com
--------------------------------------------------------------------------------------
This set of fonts are used in this project under the license: (.....)
--------------------------------------------------------------------------------------
*
**/
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: bold;
src: url("./eot/iranyekanwebboldfanum.eot");
src: url("./eot/iranyekanwebboldfanum.eot?#iefix") format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanwebboldfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url("./ttf/iranyekanwebboldfanum.ttf")
format("truetype");
}
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: 100;
src: url("./eot/iranyekanwebthinfanum.eot");
src: url("./eot/iranyekanwebthinfanum.eot?#iefix") format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanwebthinfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url("./ttf/iranyekanwebthinfanum.ttf")
format("truetype");
}
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: 300;
src: url("./eot/iranyekanweblightfanum.eot");
src: url("./eot/iranyekanweblightfanum.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanweblightfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url("./ttf/iranyekanweblightfanum.ttf")
format("truetype");
}
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: normal;
src: url("./eot/iranyekanwebregularfanum.eot");
src: url("./eot/iranyekanwebregularfanum.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanwebregularfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/
url("./ttf/iranyekanwebregularfanum.ttf") format("truetype");
}
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: 500;
src: url("./eot/iranyekanwebmediumfanum.eot");
src: url("./eot/iranyekanwebmediumfanum.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanwebmediumfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url("./ttf/iranyekanwebmediumfanum.ttf")
format("truetype");
}
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: 800;
src: url("./eot/iranyekanwebextraboldfanum.eot");
src: url("./eot/iranyekanwebextraboldfanum.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanwebextraboldfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/
url("./ttf/iranyekanwebextraboldfanum.ttf") format("truetype");
}
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: 850;
src: url("./eot/iranyekanwebblackfanum.eot");
src: url("./eot/iranyekanwebblackfanum.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanwebblackfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url("./ttf/iranyekanwebblackfanum.ttf")
format("truetype");
}
@font-face {
font-family: iranyekan;
font-style: normal;
font-weight: 900;
src: url("./eot/iranyekanwebextrablackfanum.eot");
src: url("./eot/iranyekanwebextrablackfanum.eot?#iefix")
format("embedded-opentype"),
/* IE6-8 */ url("./woff/iranyekanwebextrablackfanum.woff") format("woff"),
/* FF3.6+, IE9, Chrome6+, Saf5.1+*/
url("./ttf/iranyekanwebextrablackfanum.ttf") format("truetype");
}
@font-face {
font-family: "nazanin";
src: local("nazanin"), url("./ttf/B-NAZANIN.TTF") format("truetype");
font-weight: bold;
}
@font-face {
font-family: "titr";
src: local("titr"), url("./ttf/Titr.ttf") format("truetype");
font-weight: bold;
}
/* @font-face {
font-family: "vazir";
src: local("vazir"), url("./ttf/Vazir-Medium.ttf") format("truetype");
font-weight: bold;
}
@font-face {
font-family: "nima";
src: local("vazir"), url("./ttf/Nima.ttf") format("truetype");
font-weight: bold;
}
@font-face {
font-family: "sharif";
src: local("vazir"), url("./ttf/Sharif.ttf") format("truetype");
font-weight: bold;
}
@font-face {
font-family: "azar";
src: local("vazir"), url("./ttf/AzarMehr.ttf") format("truetype");
font-weight: bold;
} */

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 199 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 221 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 201 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 198 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 233 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 222 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 219 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
src/assets/images/arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
src/assets/images/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.4002 17.4181H10.8902C9.25016 17.4181 7.92016 16.0381 7.92016 14.3381C7.92016 13.9281 8.26016 13.5881 8.67016 13.5881C9.08016 13.5881 9.42016 13.9281 9.42016 14.3381C9.42016 15.2081 10.0802 15.9181 10.8902 15.9181H13.4002C14.0502 15.9181 14.5902 15.3381 14.5902 14.6381C14.5902 13.7681 14.2802 13.5981 13.7702 13.4181L9.74016 11.9981C8.96016 11.7281 7.91016 11.1481 7.91016 9.35812C7.91016 7.81812 9.12016 6.57812 10.6002 6.57812H13.1102C14.7502 6.57812 16.0802 7.95812 16.0802 9.65812C16.0802 10.0681 15.7402 10.4081 15.3302 10.4081C14.9202 10.4081 14.5802 10.0681 14.5802 9.65812C14.5802 8.78813 13.9202 8.07812 13.1102 8.07812H10.6002C9.95016 8.07812 9.41016 8.65812 9.41016 9.35812C9.41016 10.2281 9.72016 10.3981 10.2302 10.5781L14.2602 11.9981C15.0402 12.2681 16.0902 12.8481 16.0902 14.6381C16.0802 16.1681 14.8802 17.4181 13.4002 17.4181Z" fill="#5B5B5B"/>
<path d="M12 18.75C11.59 18.75 11.25 18.41 11.25 18V6C11.25 5.59 11.59 5.25 12 5.25C12.41 5.25 12.75 5.59 12.75 6V18C12.75 18.41 12.41 18.75 12 18.75Z" fill="#5B5B5B"/>
<path d="M12 22.75C6.07 22.75 1.25 17.93 1.25 12C1.25 6.07 6.07 1.25 12 1.25C17.93 1.25 22.75 6.07 22.75 12C22.75 17.93 17.93 22.75 12 22.75ZM12 2.75C6.9 2.75 2.75 6.9 2.75 12C2.75 17.1 6.9 21.25 12 21.25C17.1 21.25 21.25 17.1 21.25 12C21.25 6.9 17.1 2.75 12 2.75Z" fill="#5B5B5B"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/assets/images/eita.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Some files were not shown because too many files have changed in this diff Show More