push rasad front on new repo
4
.dockerignore
Normal file
@@ -0,0 +1,4 @@
|
||||
node_modules;
|
||||
npm - debug.log.git.gitignore;
|
||||
README.md.env.nyc_output;
|
||||
coverage.DS_Store;
|
||||
13
.eslintignore
Normal file
@@ -0,0 +1,13 @@
|
||||
node_modules
|
||||
build
|
||||
dist
|
||||
*.config.js
|
||||
vite.config.js
|
||||
serviceWorkerRegistration.js
|
||||
service-worker.js
|
||||
reportWebVitals.js
|
||||
setupTests.js
|
||||
public
|
||||
.cursor
|
||||
coverage
|
||||
|
||||
37
.eslintrc.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es2021": true,
|
||||
"node": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:react/recommended",
|
||||
"plugin:react-hooks/recommended",
|
||||
"plugin:prettier/recommended"
|
||||
],
|
||||
"parserOptions": {
|
||||
"ecmaVersion": "latest",
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "detect"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"react/react-in-jsx-scope": "off",
|
||||
"react-hooks/exhaustive-deps": "off",
|
||||
"react/prop-types": "off",
|
||||
"react-hooks/set-state-in-effect": "off",
|
||||
"react-hooks/immutability": "off",
|
||||
"no-unused-vars": "error",
|
||||
"no-console": "off",
|
||||
"eqeqeq": ["error", "always"],
|
||||
"prefer-const": "warn",
|
||||
"no-var": "error"
|
||||
}
|
||||
}
|
||||
28
.gitignore
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
/dist
|
||||
|
||||
# Vite
|
||||
.vite
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
/logs.txt
|
||||
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"workbench.editor.enablePreviewFromCodeNavigation": true
|
||||
}
|
||||
17
Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
FROM node:18-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm install --force
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN npm run build
|
||||
|
||||
RUN ls -la
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["npx", "vite", "preview", "--host", "0.0.0.0", "--port", "3000"]
|
||||
|
||||
9
docker-compose.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
rasaddam:
|
||||
build: .
|
||||
image: wixarm/rasadyar:latest
|
||||
ports:
|
||||
- "3000:3000"
|
||||
restart: unless-stopped
|
||||
37
index.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fa" dir="rtl">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta http-equiv="Pragma" content="no-cache" />
|
||||
<meta http-equiv="Expires" content="0" />
|
||||
<meta
|
||||
http-equiv="Cache-Control"
|
||||
content="no-cache, no-store, must-revalidate"
|
||||
/>
|
||||
<meta name="enamad" content="551859" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="سایت جامع معاملات مرغ گوشتی کشور" />
|
||||
<link rel="apple-touch-icon" href="/logo192.png" />
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<title>رصدیار، سامانه رصد و پایش کالای اساسی</title>
|
||||
|
||||
<!-- <script type="text/javascript">
|
||||
window.RAYCHAT_TOKEN = "f9f4ad4f-9393-4c95-ae11-cfd6fe8d5f7f";
|
||||
(function () {
|
||||
d = document;
|
||||
s = d.createElement("script");
|
||||
s.src = "https://widget-react.raychat.io/install/widget.js";
|
||||
s.async = 1;
|
||||
d.getElementsByTagName("head")[0].appendChild(s);
|
||||
})();
|
||||
</script> -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
4
liara.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"app": "rasadyaarapp",
|
||||
"platform": "react"
|
||||
}
|
||||
11572
package-lock.json
generated
Normal file
105
package.json
Normal file
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"name": "my-app",
|
||||
"version": "0.1.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@date-io/date-fns-jalali": "^2.15.0",
|
||||
"@date-io/jalaali": "^2.15.0",
|
||||
"@emotion/react": "^11.10.4",
|
||||
"@emotion/styled": "^11.10.4",
|
||||
"@mui/icons-material": "^5.10.3",
|
||||
"@mui/lab": "^5.0.0-alpha.99",
|
||||
"@mui/material": "^5.10.4",
|
||||
"@mui/x-date-pickers": "^5.0.2",
|
||||
"@reactour/tour": "^3.1.6",
|
||||
"@reduxjs/toolkit": "^1.8.5",
|
||||
"@testing-library/jest-dom": "^5.16.5",
|
||||
"@testing-library/react": "^13.4.0",
|
||||
"@testing-library/user-event": "^13.5.0",
|
||||
"@vitejs/plugin-react": "^4.3.1",
|
||||
"axios": "^0.27.2",
|
||||
"camelize": "^1.0.0",
|
||||
"chart.js": "^4.2.1",
|
||||
"chartjs-plugin-annotation": "^3.1.0",
|
||||
"chartjs-plugin-datalabels": "^2.2.0",
|
||||
"date-fns": "^2.29.3",
|
||||
"date-fns-jalali": "^2.29.2-0",
|
||||
"echarts": "^5.6.0",
|
||||
"echarts-for-react": "^3.0.2",
|
||||
"eslint": "8.22.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-jest-dom": "^4.0.2",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"formik": "^2.2.9",
|
||||
"framer-motion": "^7.3.5",
|
||||
"html2canvas": "^1.4.1",
|
||||
"lottie-react": "^2.3.1",
|
||||
"material-react-table": "^2.1.0",
|
||||
"moment": "^2.29.4",
|
||||
"mui-datatables": "^4.2.2",
|
||||
"num2persian": "^3.2.2",
|
||||
"persian-date": "^1.1.0",
|
||||
"prettier": "^2.7.1",
|
||||
"react": "^18.2.0",
|
||||
"react-chartjs-2": "^5.2.0",
|
||||
"react-data-table-component": "^7.5.3",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-error-boundary": "^3.1.4",
|
||||
"react-icons": "^4.8.0",
|
||||
"react-images-uploading": "^3.1.7",
|
||||
"react-number-format": "^5.1.2",
|
||||
"react-redux": "^8.0.2",
|
||||
"react-router-dom": "^6.3.0",
|
||||
"react-to-print": "^2.14.15",
|
||||
"reactour": "^1.18.7",
|
||||
"redux-persist": "^6.0.0",
|
||||
"styled-components": "^4.0.0",
|
||||
"stylis": "^4.1.2",
|
||||
"stylis-plugin-rtl": "2.0.2",
|
||||
"use-react-screenshot": "^3.0.0",
|
||||
"vite": "^5.4.2",
|
||||
"vite-plugin-pwa": "^0.20.1",
|
||||
"vitest": "^2.0.5",
|
||||
"web-vitals": "^2.1.4",
|
||||
"workbox-background-sync": "^6.5.4",
|
||||
"workbox-broadcast-update": "^6.5.4",
|
||||
"workbox-cacheable-response": "^6.5.4",
|
||||
"workbox-core": "^6.5.4",
|
||||
"workbox-expiration": "^6.5.4",
|
||||
"workbox-google-analytics": "^6.5.4",
|
||||
"workbox-navigation-preload": "^6.5.4",
|
||||
"workbox-precaching": "^6.5.4",
|
||||
"workbox-range-requests": "^6.5.4",
|
||||
"workbox-routing": "^6.5.4",
|
||||
"workbox-strategies": "^6.5.4",
|
||||
"workbox-streams": "^6.5.4",
|
||||
"yup": "^0.32.11"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"start": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"test": "vitest",
|
||||
"lint": "eslint src --ext .js,.jsx",
|
||||
"lint:fix": "eslint src --ext .js,.jsx --fix"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"eslint-plugin-react-hooks": "^7.0.0",
|
||||
"eslint-plugin-testing-library": "^7.13.3"
|
||||
}
|
||||
}
|
||||
BIN
public/OIG e(1).png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
public/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
public/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 335 KiB |
BIN
public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
public/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
public/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
public/logo192.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
public/logo512.png
Normal file
|
After Width: | Height: | Size: 369 KiB |
20
public/manifest.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"short_name": "سامانه رصدیار",
|
||||
"name": "سامانه رصدیار",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
||||
3
public/robots.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
||||
44
src/App-oldd.js
Normal 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
@@ -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
@@ -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
@@ -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();
|
||||
});
|
||||
BIN
src/assets/fonts-old/eot/IRANSansWeb.eot
Normal file
BIN
src/assets/fonts-old/eot/IRANSansWeb_Black.eot
Normal file
BIN
src/assets/fonts-old/eot/IRANSansWeb_Bold.eot
Normal file
BIN
src/assets/fonts-old/eot/IRANSansWeb_Light.eot
Normal file
BIN
src/assets/fonts-old/eot/IRANSansWeb_Medium.eot
Normal file
BIN
src/assets/fonts-old/eot/IRANSansWeb_UltraLight.eot
Normal file
78
src/assets/fonts-old/fonts.css
Normal 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");
|
||||
}
|
||||
BIN
src/assets/fonts-old/ttf/IRANSansWeb.ttf
Normal file
BIN
src/assets/fonts-old/ttf/IRANSansWeb_Black.ttf
Normal file
BIN
src/assets/fonts-old/ttf/IRANSansWeb_Bold.ttf
Normal file
BIN
src/assets/fonts-old/ttf/IRANSansWeb_Light.ttf
Normal file
BIN
src/assets/fonts-old/ttf/IRANSansWeb_Medium.ttf
Normal file
BIN
src/assets/fonts-old/ttf/IRANSansWeb_UltraLight.ttf
Normal file
BIN
src/assets/fonts-old/woff/IRANSansWeb.woff
Normal file
BIN
src/assets/fonts-old/woff/IRANSansWeb_Black.woff
Normal file
BIN
src/assets/fonts-old/woff/IRANSansWeb_Bold.woff
Normal file
BIN
src/assets/fonts-old/woff/IRANSansWeb_Light.woff
Normal file
BIN
src/assets/fonts-old/woff/IRANSansWeb_Medium.woff
Normal file
BIN
src/assets/fonts-old/woff/IRANSansWeb_UltraLight.woff
Normal file
BIN
src/assets/fonts-old/woff2/IRANSansWeb.woff2
Normal file
BIN
src/assets/fonts-old/woff2/IRANSansWeb_Black.woff2
Normal file
BIN
src/assets/fonts-old/woff2/IRANSansWeb_Bold.woff2
Normal file
BIN
src/assets/fonts-old/woff2/IRANSansWeb_Light.woff2
Normal file
BIN
src/assets/fonts-old/woff2/IRANSansWeb_Medium.woff2
Normal file
BIN
src/assets/fonts-old/woff2/IRANSansWeb_UltraLight.woff2
Normal file
BIN
src/assets/fonts/eot/iranyekanwebblackfanum.eot
Normal file
BIN
src/assets/fonts/eot/iranyekanwebboldfanum.eot
Normal file
BIN
src/assets/fonts/eot/iranyekanwebextrablackfanum.eot
Normal file
BIN
src/assets/fonts/eot/iranyekanwebextraboldfanum.eot
Normal file
BIN
src/assets/fonts/eot/iranyekanweblightfanum.eot
Normal file
BIN
src/assets/fonts/eot/iranyekanwebmediumfanum.eot
Normal file
BIN
src/assets/fonts/eot/iranyekanwebregularfanum.eot
Normal file
BIN
src/assets/fonts/eot/iranyekanwebthinfanum.eot
Normal file
147
src/assets/fonts/fonts.css
Normal 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;
|
||||
} */
|
||||
1475
src/assets/fonts/svg/iranyekanwebblackfanum.svg
Normal file
|
After Width: | Height: | Size: 199 KiB |
1578
src/assets/fonts/svg/iranyekanwebboldfanum.svg
Normal file
|
After Width: | Height: | Size: 221 KiB |
1489
src/assets/fonts/svg/iranyekanwebextrablackfanum.svg
Normal file
|
After Width: | Height: | Size: 201 KiB |
1478
src/assets/fonts/svg/iranyekanwebextraboldfanum.svg
Normal file
|
After Width: | Height: | Size: 198 KiB |
1628
src/assets/fonts/svg/iranyekanweblightfanum.svg
Normal file
|
After Width: | Height: | Size: 233 KiB |
1584
src/assets/fonts/svg/iranyekanwebmediumfanum.svg
Normal file
|
After Width: | Height: | Size: 222 KiB |
1560
src/assets/fonts/svg/iranyekanwebregularfanum.svg
Normal file
|
After Width: | Height: | Size: 219 KiB |
1651
src/assets/fonts/svg/iranyekanwebthinfanum.svg
Normal file
|
After Width: | Height: | Size: 241 KiB |
BIN
src/assets/fonts/ttf/AzarMehr.ttf
Normal file
BIN
src/assets/fonts/ttf/B-NAZANIN.TTF
Normal file
BIN
src/assets/fonts/ttf/Nima.ttf
Normal file
BIN
src/assets/fonts/ttf/Sharif.ttf
Normal file
BIN
src/assets/fonts/ttf/Titr.ttf
Normal file
BIN
src/assets/fonts/ttf/Vazir-Medium.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanwebblackfanum.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanwebboldfanum.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanwebextrablackfanum.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanwebextraboldfanum.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanweblightfanum.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanwebmediumfanum.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanwebregularfanum.ttf
Normal file
BIN
src/assets/fonts/ttf/iranyekanwebthinfanum.ttf
Normal file
BIN
src/assets/fonts/woff/iranyekanwebblackfanum.woff
Normal file
BIN
src/assets/fonts/woff/iranyekanwebboldfanum.woff
Normal file
BIN
src/assets/fonts/woff/iranyekanwebextrablackfanum.woff
Normal file
BIN
src/assets/fonts/woff/iranyekanwebextraboldfanum.woff
Normal file
BIN
src/assets/fonts/woff/iranyekanweblightfanum.woff
Normal file
BIN
src/assets/fonts/woff/iranyekanwebmediumfanum.woff
Normal file
BIN
src/assets/fonts/woff/iranyekanwebregularfanum.woff
Normal file
BIN
src/assets/fonts/woff/iranyekanwebthinfanum.woff
Normal file
BIN
src/assets/images/ChickenLogo.png
Normal file
|
After Width: | Height: | Size: 413 KiB |
BIN
src/assets/images/ClosedTicketImage.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/assets/images/IranOutlined.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
src/assets/images/IranOutlined2.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
src/assets/images/Ticket1.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
src/assets/images/arrow.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/barSquare.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
src/assets/images/barSquareColor.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
src/assets/images/bg.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |