first commit

This commit is contained in:
mustafa-rezae 2025-02-01 13:04:55 +03:30
commit f66f505fa5
1711 changed files with 298132 additions and 0 deletions

113
.env Normal file
View File

@ -0,0 +1,113 @@
# For more information refere to documents: https://cli.vuejs.org/guide/mode-and-env.html#example-staging-mode
VITE_GOOGLECLIENTID="1044522269248-903n0gpd6kv9slmmr7cp2o8u04ru78qv.apps.googleusercontent.com"
### TinyMCE username and password ###
VITE_TINY_USERNAMEL=mustafa.rezae@gmail.com
VITE_TINY_PASSWORD=tinyPass123
VITE_TINY_API_KEY=pnxkbox1zj5zaghgi1dolyi9ch28kr9ohnvc1qz3beeqdfwg
### Relative pathes for systems sass addressing ###
# VITE_FONT_FAMILY=IRANSansX
VITE_FONT_FAMILY=sahel
VITE_JAHAT_ASSETS_URL=../../assets/jahat
VITE_CHAT_ASSETS_URL=../../assets/chat
VITE_LIST_ASSETS_URL=../../assets/list
VITE_PERMISSION_ASSETS_URL=../../assets/permit
VITE_SERACH_ASSETS_URL=../../assets/search
VITE_TAHRIR_ASSETS_URL=../../assets/tahrir
VITE_ADMIN_ASSETS_URL=../../assets/admin
VITE_USER_ASSETS_URL=../../assets/user
VITE_COMMON_ASSETS_URL=../../assets/common
VITE_MAJLES_ASSETS_URL=../../../assets/majles
### Common variables ###
VITE_REZOME_FORM_ID=1
VITE_NAME=search
VITE_DIRECTION=rtl
VITE_NEW_TEXT=افزودن
VITE_EDIT_TEXT=ویرایش
VITE_EITAA=https://eitaa.com/Tahrir121
VITE_TAHRIR_APP_TITLE=tahrirapp.ir
# headers parameters
VITE_APP_ID = 1
VITE_LANG = fa
VITE_APP_VERSION = 12890323
# all available systems, using for setting body class
VITE_RESEARCH_SYSTEM=research-system
VITE_SEARCH_SYSTEM=search-system
VITE_JAHAT_SYSTEM=jahat-system
VITE_LIST_SYSTEM=list-system
VITE_TASK_SYSTEM=task-system
VITE_DASHBOARD_SYSTEM=dashboard
VITE_ENTITY_SYSTEM=entity-view-system
VITE_BORHAN_SYSTEM=borhan-system
VITE_THIQAT_SYSTEM=thiqat-system
VITE_CHAT_SYSTEM=chat-system
VITE_TASK_SYSTEM=task-system
VITE_REPORT_SYSTEM=report-system
VITE_ADMIN_SYSTEM=admin-panel
VITE_TAHRIR_SYSTEM=tahrir-system
VITE_AI_TOOLS_SYSTEM=ai-tools-system
VITE_AI_LMS_SYSTEM=lms-system
VITE_AI_DEFAULT_DASHBOARD_SYSTEM=default-dashboard
# micro services
VITE_MESSAGE=message
VITE_AUTH=login
VITE_KEY_VALUE=keyvalue
VITE_PERMIT=permit
VITE_REPO=repo
VITE_LOG=repo/log
VITE_LIST=list
VITE_TASK=task
VITE_FILE=media
VITE_THIQAT=thiqat
VITE_APP_NAME=Hamfahmi
VITE_API_VERSION=v01
VITE_API_NAME=api/
# VITE_API_NAME=htpp:/192.168.23.160:8080/
# VITE_API_NAME=htpps:/api.tavasi.ir/
VITE_MESSAGE_BASE_URL=message/
VITE_AUTH_BASE_URL=login/
VITE_KEY_VALUE_BASE_URL=keyvalue/
VITE_PERMIT_BASE_URL=permit/
VITE_REPO_BASE_URL=repo/
VITE_LOG_BASE_URL=repo/log/
VITE_LIST_BASE_URL=list/
VITE_TAHRIR_BASE_URL=http://api.tahrir.hamfahmi.ir/v02/
VITE_BASE_URL=/
VITE_TAHRIR_BASE_URL=http://api.tahrir.hamfahmi.ir/v02/
VITE_MEDIA_BASE_URL=
VITE_TAHRIR_APP_URL=http://tahrirapp.ir
VITE_PRELOAD_URL=http://192.168.23.22
VITE_THIQAT_BASE_URL=http://beta.thiqat.org/api/
### Relative pathes for systems sass addressing ###
# 0 : hamfahmi 1:fahma
VITE_BUILD_STATE=0
VITE_BUILD_NAME=monir
### Page titles variables ###
VITE_TITLE=هم فهمی - زیست بوم پژوهشگران
VITE_DESCRIPTION=زیست بوم پژوهشگران
VITE_SHORT_TITLE=هم فهمی
VITE_HELP_PAGE=راهنمای سایت
# modules
# [listRoutes, chatRoutes, tahrirRoutes, jahatRoutes, borhanRoutes, thiqatRoutes]
VITE_BUILD_MODULES=listRoutes,tahrirRoutes,jahatRoutes,thiqatRoutes

1
.env.development Normal file
View File

@ -0,0 +1 @@
VITE_VERSION=2.0.1

45
.env.majles Normal file
View File

@ -0,0 +1,45 @@
VITE_APP_NAME=Majles
### Relative pathes for systems sass addressing ###
# 0 : majles.tavasi.ir 1: qanon.parliran.ir
VITE_BUILD_STATE=1
VITE_BUILD_NAME=majles
VITE_IDB_NAME=majles
VITE_IDB_VERSION=1
VITE_ENABLE_IDB=1
### Page titles variables ###
VITE_TITLE=قانون‌یار
VITE_DESCRIPTION=
VITE_SHORT_TITLE=قانون‌یار
VITE_LIST_PAGE_TITLE = قانون - سامانه فهرست
VITE_SEARCH_PAGE_TITLE = قانون - سامانه جستجوی محتوا
VITE_JAHAT_PAGE_TITLE = قانون - سامانه هدایت تحقیقات جهت
VITE_TAHRIR_PAGE_TITLE = قانون - سامانه ای برای سندنگار ابری حوزوی ، ابزار پژوهشگر
VITE_REPORT_PAGE_TITLE = قانون - سامانه گزارش گیری داده
VITE_PERMISSION_PAGE_TITLE = قانون - سامانه کنترل وظایف
VITE_CHAT_PAGE_TITLE = قانون - سامانه گفتگو
VITE_RESEARCH_PAGE_TITLE = قانون - تحقیقات من
VITE_AI_TOOLS_PAGE_TITLE = قانون - حاشیه نویسی
VITE_USER_PANEL_PAGE_TITLE = قانون - پیشخوان
VITE_DATA_SETTING_PAGE_TITLE = قانون - تنظیمات داده
VITE_FORM_PAGE_TITLE = قانون - فرم ها
VITE_NOTIFICATION_PAGE_TITLE = قانون - اعلانات
VITE_PERMISSION_PAGE_TITLE = قانون - دسترسی
VITE_REZOME_PAGE_TITLE = قانون - رزومه ساز
VITE_SETTING_PAGE_TITLE = قانون - تنظیمات
VITE_ENTITY_PAGE_TITLE = قانون یار - نمایش جزئیات
VITE_BORHAN_PAGE_TITLE=هم فهمی - برهان
VITE_THIQAT_PAGE_TITLE=ثقات-گراف دانش حدیث
VITE_MAJLES_DASBOARD_TITLE1=مرجع رسمی قوانین و مقررات کشور
VITE_MAJLES_DASBOARD_TITLE2=قانون‌یار
VITE_MAJLES_DASBOARD_TITLE3=(تنقیح هوشمند قوانین و مقررات)
VITE_MAJLES_DASBOARD_TITLE4= این سامانه با بهره گیری از ابزارهای هوش مصنوعی تهیه شده است.
VITE_MAJLES_DASBOARD_TITLE5= تمامی حقوق مادی و معنوی سایت، متعلق به مجلس شورای اسلامی می‌باشد.
VITE_VERSION=1.0.88

53
.env.monir Normal file
View File

@ -0,0 +1,53 @@
VITE_API_NAME=api/
VITE_BASE_URL=http://192.168.23.60/
VITE_APP_NAME=Monir
### Relative pathes for systems sass addressing ###
# 0 : majles.tavasi.ir 1: qanon.parliran.ir
VITE_BUILD_STATE=0
VITE_BUILD_NAME=monir
VITE_IDB_NAME=monir
VITE_IDB_VERSION=1
VITE_ENABLE_IDB=1
### Page titles variables ###
VITE_TITLE=هم‌فهمی - زیست بوم پژوهشگران
VITE_DESCRIPTION=زیست بوم پژوهشگران
VITE_SHORT_TITLE=هم فهمی
VITE_LIST_PAGE_TITLE=هم فهمی - سامانه فهرست
VITE_SEARCH_PAGE_TITLE=هم فهمی - سامانه جستجوی محتوا
VITE_JAHAT_PAGE_TITLE=هم فهمی - سامانه هدایت تحقیقات جهت
VITE_TAHRIR_PAGE_TITLE=هم فهمی - سامانه ای برای سندنگار ابری حوزوی ، ابزار پژوهشگر
VITE_REPORT_PAGE_TITLE=هم فهمی - سامانه گزارش گیری داده
VITE_PERMISSION_PAGE_TITLE=هم فهمی - سامانه کنترل وظایف
VITE_RESEARCH_PAGE_TITLE = هم فهمی - تحقیقات من
VITE_CHAT_PAGE_TITLE=هم فهمی - سامانه گفتگو
VITE_AI_TOOLS_PAGE_TITLE = قانون‌یار - حاشیه نویسی
VITE_USER_PANEL_PAGE_TITLE=هم فهمی - پیشخوان
VITE_DATA_SETTING_PAGE_TITLE=هم فهمی - تنظیمات داده
VITE_FORM_PAGE_TITLE=هم فهمی - فرم ها
VITE_NOTIFICATION_PAGE_TITLE=هم فهمی - اعلانات
VITE_PERMISSION_PAGE_TITLE=هم فهمی - دسترسی
VITE_REZOME_PAGE_TITLE=هم فهمی - رزومه ساز
VITE_SETTING_PAGE_TITLE=هم فهمی - تنظیمات
VITE_ENTITY_PAGE_TITLE=هم فهمی - نمایش جزئیات
VITE_BORHAN_PAGE_TITLE=هم فهمی - برهان
VITE_THIQAT_PAGE_TITLE=ثقات-گراف دانش حدیث
VITE_MAJLES_DASBOARD_TITLE1=مرجع رسمی قوانین و مقررات کشور
VITE_MAJLES_DASBOARD_TITLE2=هم‌فهمی
VITE_MAJLES_DASBOARD_TITLE3=(تنقیح هوشمند قوانین و مقررات)
VITE_MAJLES_DASBOARD_TITLE4= این سامانه با بهره گیری از ابزارهای هوش مصنوعی تهیه شده است.
VITE_MAJLES_DASBOARD_TITLE5= تمامی حقوق مادی و معنوی سایت، متعلق به مجلس شورای اسلامی می‌باشد.
VITE_VERSION=1.0.84
# modules
# [listRoutes, chatRoutes, tahrirRoutes, jahatRoutes, borhanRoutes, thiqatRoutes]
VITE_BUILD_MODULES=listRoutes,tahrirRoutes,jahatRoutes,thiqatRoutes,chatRoutes
VITE_FONT_FAMILY=sahel

1
.env.production Normal file
View File

@ -0,0 +1 @@
VITE_VERSION=1.0.0

51
.env.release Normal file
View File

@ -0,0 +1,51 @@
VITE_APP_NAME=$APP_NAME
VITE_MESSAGE_BASE_URL=$BASE_URL/message/
VITE_AUTH_BASE_URL=$BASE_URL/login/
VITE_KEY_VALUE_BASE_URL=$BASE_URL/keyvalue/
VITE_PERMIT_BASE_URL=$BASE_URL/permit/
VITE_LIST_BASE_URL=$BASE_URL/list/
VITE_REPO_BASE_URL=$BASE_URL/repo/
VITE_LOG_BASE_URL=$BASE_URL/repo/log/
VITE_TAHRIR_BASE_URL=https://api.tahrir.tavasi.ir/v02/
VITE_BASE_URL=$BASE_URL/
VITE_TAHRIR_BASE_URL=https://api.tahrir.hamfahmi.ir/v02/
VITE_MEDIA_BASE_URL = $BASE_URL/
VITE_TAHRIR_APP_URL=https://tavasi.ir
VITE_PRELOAD_URL=https://tavasi.ir
VITE_THIQAT_BASE_URL=https://beta.thiqat.org/api/
### Relative pathes for systems sass addressing ###
# 0 : hamfahmi 1:fahma
VITE_BUILD_STATE=$BUILD_STATE
VITE_BUILD_NAME=$SCHEMA_NAME
VITE_IDB_NAME=$DB_NAME
VITE_IDB_VERSION=$IDB_VERSION
VITE_ENABLE_IDB=$ENABLE_IDB
### Page titles variables ###
VITE_TITLE= $PRE_TITLE - $TITLE
VITE_DESCRIPTION= $DESCRIPTION
VITE_SHORT_TITLE= $PRE_TITLE
VITE_LIST_PAGE_TITLE= $PRE_TITLE - سامانه فهرست
VITE_SEARCH_PAGE_TITLE= $PRE_TITLE - سامانه جستجوی محتوا
VITE_JAHAT_PAGE_TITLE= $PRE_TITLE - سامانه هدایت تحقیقات جهت
VITE_TAHRIR_PAGE_TITLE= $PRE_TITLE - سامانه ای برای سندنگار ابری حوزوی ، ابزار پژوهشگر
VITE_REPORT_PAGE_TITLE= $PRE_TITLE - سامانه گزارش گیری داده
VITE_PERMISSION_PAGE_TITLE= $PRE_TITLE - سامانه کنترل وظایف
VITE_CHAT_PAGE_TITLE= $PRE_TITLE - سامانه گفتگو
VITE_AI_TOOLS_PAGE_TITLE = $PRE_TITLE - حاشیه نویسی
VITE_USER_PANEL_PAGE_TITLE= $PRE_TITLE - پیشخوان
VITE_DATA_SETTING_PAGE_TITLE= $PRE_TITLE - تنظیمات داده
VITE_FORM_PAGE_TITLE= $PRE_TITLE - فرم ها
VITE_NOTIFICATION_PAGE_TITLE= $PRE_TITLE - اعلانات
VITE_PERMISSION_PAGE_TITLE= $PRE_TITLE - دسترسی
VITE_REZOME_PAGE_TITLE= $PRE_TITLE - رزومه ساز
VITE_SETTING_PAGE_TITLE= $PRE_TITLE - تنظیمات
VITE_ENTITY_PAGE_TITLE= $PRE_TITLE - نمایش جزئیات
VITE_BORHAN_PAGE_TITLE= $PRE_TITLE - برهان
VITE_VERSION= $VERSION

52
.env.tavasi Normal file
View File

@ -0,0 +1,52 @@
VITE_API_NAME=api/
VITE_BASE_URL=http://192.168.23.160/
VITE_APP_NAME=Majles
### Relative pathes for systems sass addressing ###
# 0 : majles.tavasi.ir 1: qanon.parliran.ir
VITE_BUILD_STATE=0
VITE_BUILD_NAME=majles
VITE_IDB_NAME=majles
VITE_IDB_VERSION=1
VITE_ENABLE_IDB=1
### Page titles variables ###
VITE_TITLE=قانون‌یار
VITE_DESCRIPTION=
VITE_SHORT_TITLE=قانون‌یار
VITE_LIST_PAGE_TITLE = قانون‌ - سامانه فهرست
VITE_SEARCH_PAGE_TITLE = قانون‌ - سامانه جستجوی محتوا
VITE_JAHAT_PAGE_TITLE = قانون‌ - سامانه هدایت تحقیقات جهت
VITE_TAHRIR_PAGE_TITLE = قانون‌ - سامانه ای برای سندنگار ابری حوزوی ، ابزار پژوهشگر
VITE_REPORT_PAGE_TITLE = قانون‌ - سامانه گزارش گیری داده
VITE_PERMISSION_PAGE_TITLE = قانون‌ - سامانه کنترل وظایف
VITE_CHAT_PAGE_TITLE = قانون‌ - سامانه گفتگو
VITE_RESEARCH_PAGE_TITLE = قانون‌ - تحقیقات من
VITE_AI_TOOLS_PAGE_TITLE = قانون‌ - حاشیه نویسی
VITE_USER_PANEL_PAGE_TITLE = قانون‌ - پیشخوان
VITE_DATA_SETTING_PAGE_TITLE = قانون‌ - تنظیمات داده
VITE_FORM_PAGE_TITLE = قانون‌ - فرم ها
VITE_NOTIFICATION_PAGE_TITLE = قانون‌ - اعلانات
VITE_PERMISSION_PAGE_TITLE = قانون‌ - دسترسی
VITE_REZOME_PAGE_TITLE = قانون‌ - رزومه ساز
VITE_SETTING_PAGE_TITLE = قانون‌ - تنظیمات
VITE_ENTITY_PAGE_TITLE = قانون یار - نمایش جزئیات
VITE_BORHAN_PAGE_TITLE=هم فهمی - برهان
VITE_THIQAT_PAGE_TITLE=ثقات-گراف دانش حدیث
VITE_MAJLES_DASBOARD_TITLE1=مرجع رسمی قوانین و مقررات کشور
VITE_MAJLES_DASBOARD_TITLE2=قانون‌یار
VITE_MAJLES_DASBOARD_TITLE3=(تنقیح هوشمند قوانین و مقررات)
VITE_MAJLES_DASBOARD_TITLE4= این سامانه با بهره گیری از ابزارهای هوش مصنوعی تهیه شده است.
VITE_MAJLES_DASBOARD_TITLE5= تمامی حقوق مادی و معنوی سایت، متعلق به مجلس شورای اسلامی می‌باشد.
VITE_VERSION=1.0.71
VITE_FONT_FAMILY=sahel

50
.gitignore vendored Normal file
View File

@ -0,0 +1,50 @@
# Nuxt dev/build outputs
.output
.data
.nuxt
.nitro
.cache
dist
# Node dependencies
node_modules
# Logs
logs
*.log
# Misc
.DS_Store
.fleet
.idea
# Local env files
# .env
# .env.*
!.env.example
.history
/dist
/html
docs
# local env files
# .env.local
# .env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.history
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
*.rar
*.zip

81
README.md Normal file
View File

@ -0,0 +1,81 @@
# Nuxt 3 Minimal Starter
Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
## Setup
Make sure to install the dependencies:
```bash
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
# bun
bun install
```
## Development Server
Start the development server on `http://localhost:3000`:
```bash
# npm
npm run dev
# pnpm
pnpm run dev
# yarn
yarn dev
# bun
bun run dev
```
## Production
Build the application for production:
```bash
# npm
npm run build
# pnpm
pnpm run build
# yarn
yarn build
# bun
bun run build
```
Locally preview production build:
```bash
# npm
npm run preview
# pnpm
pnpm run preview
# yarn
yarn preview
# bun
bun run preview
```
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
Key Points
Use $fetch for Client-Side Interactions: $fetch is suitable for client-side interactions and should be used within onMounted or mounted lifecycle hooks for fetching data after the component is rendered.
Avoid Mixing useAsyncData and onMounted: These two are meant for different phases of the component lifecycle and should not be mixed together.

101
README_CODES.md Normal file
View File

@ -0,0 +1,101 @@
<!-- <input @input="()=> $emit('update:modelValue',!modelValue)"/> -->
<!-- defineEmits(['update:modelValue']) -->
<!-- :model-value="isLessonComplete" -->
<!-- @update:model-value="throw createError('could not update')" -->
<!-- <NuxtErrorBoundary>
<NuxtPage/>
<template #error="{error}">
<p>
oh no, something broke!
<code>
{{ error }}
</code>
</p>
</template>
</NuxtErrorBoundary>
const resetError = async (error) =>{
throw createError({
fatal:true,
message: 'fatal error'
})
} -->
nuxt(nitro(h3))
h3:
1.is responsible for http request
2.minimal http framework used internally by nitro.
3.extended by creating composable-like utitlities.
4.built-i utilities used directly in nuxt event handlers.
5.fast and tree shake-able replacement for Express.
readBody
getQuery
setCookie
nitro :
1.use h3 internally and layers on a tons of extra functionaliy.
2.universal js server
3.rendering ssr\static\etc
4.supports multiple hosting providers.
5.builds standalone server so deploys don't require any extra code.
6.automatic code-splitting
7.storage layer to access filesystem,database, redis and more.
8.caching system built on top of the storage layer.
such as : file base routing, bundling
nuxt : use nitro to provide the backend for our app.
unjs
1.a set of packages designed to work together and make building universal javascript applications.
2.includes nitro and h3
3.nuxt and nitro use unjs/hookable for their hook systems.
4.many more very useful packages, includeing $fetch.
disable and hide body scroll when modal opend.
mounted(){
previousOverflow = document.body.style.overflow;
document.body.style.overflow = 'hidden';
}
onBeforeDestroy(){
document.body.style.overflow = previousOverflow;
}
<script setup lang="ts">
// During SSR data is fetched twice, once on the server and once on the client.
const dataTwice = await $fetch('/api/item')
// During SSR data is fetched only on the server side and transferred to the client.
const { data } = await useAsyncData('item', () => $fetch('/api/item'))
// You can also useFetch as shortcut of useAsyncData + $fetch
const { data } = await useFetch('/api/item')
</script>
$fetch is the simplest way to make a network request.
useFetch is wrapper around $fetch that fetches data only once in universal rendering.
useAsyncData is similar to useFetch but offers more fine-grained control.
runtime config:
after our application already been built, and you are running it, there are definite things that might be changes.
1.define in nuxt.config.ts with runtimeConfig key.
2.reactive
3.specified after build.
4.secrest, tokens, and other environment variables.
5.supabase keys, prisma keys.
app config:
every thing else
1.defined in app.config.ts
2.reactive
3.specified at build time.
4.project config, theme, anything not sensitive, change per request.
5.full typescript support.
6.dark mode vs light mode.
import { useSearchStore } from "#imports":
from "#imports": This indicates that the import is coming from a special alias or a module resolver named #imports. In Nuxt.js, for example, #imports can be used to import composables or other utilities that are set up in the project.

43
apis/adminApi.js Normal file
View File

@ -0,0 +1,43 @@
export default {
//منتقل شد به settingapi.app
// admin: {
// get: "setting/get/{{system}}",
// save: "setting/indexnew",
// },
projectForm: {
get: "project/get",
list: "project/list",
add: "project/add",
edit: "project/edit",
delete: "project/delete",
},
notification: {
get: "/notif/get/{{id}}", // GET
list: "/notif/list/{{offset}}/{{limit}}", //GET //admin all
listUnseen: "/notif/list/unseen/{{offset}}/{{limit}}", //GET //admin
countUnseen: "/notif/count/unseen", //GET
add: "/notif/add", //POST
edit: "/notif/edit/{{id}}", //POST
unseen: "/notif/list/unseen/{{offset}}/{{limit}}", //unseen get
seen: "/notif/list/seen/{{offset}}/{{limit}}", //seen get
new: "/notif/list/newest/{{offset}}/{{limit}}", //new get
all: "/notif/list/{{offset}}/{{limit}}", // all get
markAllAsRead: "/setting/notif/mark-all-as-read", // POST
counts: "/notif/counts", // get
delete: "/notif/delete/{{entity_type}}/{{id}}", // POST
},
favorite: {
favoriteList: "repo/favorite/chart/@data_type/@time_key", //GET
bookmarkList: "repo/favorite/chart/@data_type/@time_key", //GET
},
groups: {
setAdmin: "group/ed/setadmin",
groupsWithoutAdmin:
"group/ve/list/withoutadmin/@offset/@limit/@sortby/@sortorder/@query",
groupsWithAdmin:
"group/ve/list/withadmin/@offset/@limit/@sortby/@sortorder",
delete: "group/ve/delete",
},
};

12
apis/authApi.js Normal file
View File

@ -0,0 +1,12 @@
export default {
login: 'user/login',
phoneLogin: "user/activation",
activationCode: "user/activatecode",
loginGoogle: "user/signin/google",
validateUser: "user/validate",
forget: "user/forget",
resetPassword: "user/resetpass",
register: "user/register",
changePassword: "profile/changepass",
captcha: "captcha/makeimage",
}

15
apis/favoriteApi.js Normal file
View File

@ -0,0 +1,15 @@
export default {
favorite: {
add: "favorite/add/{{data_type}}/{{ref_key}}",
delete: "favorite/delete/{{data_type}}/{{id}}", //id = portal_meet_22569
deleteByRefid: "favorite/delete/{{data_type}}/{{index_key}}/{{ref_id}}", //id = portal_meet_22569
// getListSearch: "favorite/list/{{data_type}}/{{offset}}/{{limit}}", //offset=0 , limit=10
// counts: "favorite/counts/@data_type", // get
setFavoritesCat: "favorite/tags/@data_type/set/doc/@id",
getCategories: "favorite/tags/@data_type/get",
setCategories: "favorite/tags/@data_type/set",
getCounts: "favorite/tags/@data_type/counts",
getList: "favorite/list/@data_type/@offset/@limit/@filter",
},
};

7
apis/helpApi.js Normal file
View File

@ -0,0 +1,7 @@
export default {
default: {
list: "/setting/help/{{key_option}}/list/0/50 ",
item: "/setting/help/{{id}}",
},
};

10
apis/keyValueApi.js Normal file
View File

@ -0,0 +1,10 @@
export default {
forms:{
get:'keyvalue/forms/get',
list:'keyvalue/forms/list',
add:'keyvalue/forms/add',
edit:'keyvalue/forms/edit',
delete:'keyvalue/forms/delete',
groupTypes:'entity/types/list'
}
}

72
apis/listApi.js Normal file
View File

@ -0,0 +1,72 @@
export default {
projects: {
list: "project/list",
add: "project/add",
edit: "project/edit",
delete: "project/delete",
},
list: {
list: "list/list",
add: "list/add",
edit: "list/edit",
delete: "list/delete",
move: "list/order/move/parent",
order: "list/order/move/one",
},
item: {
list: "item/meta/list",
listNotRel: "item/meta/notrel/list",
subjectNotRel: "item/meta/notrel/subject",
addbylist: "item/meta/addbylist",
add: "item/meta/add",
edit: "item/meta/edit",
delete: "item/meta/delete",
subject: "item/meta/subject",
},
listItem: {
list: "listitem/list",
add: "listitem/add",
edit: "listitem/edit",
delete: "listitem/delete",
},
subject: {
list: "subject/list",
add: "subject/add",
edit: "subject/edit",
delete: "subject/delete",
order: "subject/order",
},
subjectRelation: {
list: "subject/relation/list",
add: "subject/relation/add",
edit: "subject/relation/list",
delete: "subject/relation/delete/byitem",
},
property: {
list: "property/list/list",
add: "property/list/add",
edit: "property/list/edit",
editbulk: "property/list/editbulk",
delete: "property/list/delete",
},
itemMeta: {
list: "item/list",
listNotRel: "item/notrel/list",
subjectNotRel: "item/notrel/subject",
addbylist: "item/addbylist",
add: "item/add",
edit: "item/edit",
delete: "item/delete",
subject: "item/subject",
},
listProject: {
list: "project/list",
listMembers: "project/member/list",
addMembers: "project/member/add",
editMembers: "project/member/edit",
deleteMembers: "project/member/delete",
getMembers: "project/member/get",
},
};

43
apis/permitApi.js Normal file
View File

@ -0,0 +1,43 @@
export default {
projects: {
list: "project/list",
add: "project/add",
},
sections: {
list: "section/list",
add: "section/add",
edit: "section/edit",
delete: "section/del",
},
roleUser: {
listUserRole: "urole/list",
AddRoleUser: "urole/add",
},
roles: {
list: "role/list",
add: "role/add",
edit: "role/edit",
delete: "role/del",
},
permissions: {
addOrEditUserPermission: "uperm/add",
addOrEditRolePermission: "rperm/add",
addOrEditLoginRolePermission: "rperm/login/add",
deleteUserPermission: "uperm/del",
deleteRolePermission: "rperm/del",
listUserPermission: "uperm/list",
listRolePermission: "rperm/list",
listUserRole: "rperm/listuser",
deleteUserRole: "urole/del",
userPermissionTags: "uperm/list/tags",
},
users: {
list: "/user/list/{{offset}}/{{limit}}/{{sortby}}/{{sortorder}}",
search: "/user/search/{{offset}}/{{limit}}/{{sortby}}/{{sortorder}}/{{query}}",
create: "user/add",
update: "user/update",
updateUserState: "user/update/state",
delete: "user/delete",
show: "user/show",
},
};

96
apis/repoApi.js Normal file
View File

@ -0,0 +1,96 @@
export default {
entity: {
// type : 1,2,3,4 or type : issue,issues,crition,critions, ...
list: "{{type}}/list",
blist: "{{index_key}}/{{type}}/list",
listSpecial: "{{type}}/list/special/{{specialtype}}",
relation: "list/relation/{{type}}/{{id}}",
add: "add",
update: "edit/entity",
get: "get", // خطا وجود ندارد ولی استفاده شده است، نیاز به بررسی دقیق
delete_jahat: "delete/{{entity_id}}",
delete: "public/{{index_key}}/delete/{{entity_id}}",
upload: "uploadfile",
reports: "jahat",
qanonList:'/majles/list/@index_key/@parent_key/@parent_id/@from/@countInPage',
qanonPrevCount:'count/@index_key/@parent_id/@order',
info : '/majles/data/info',
draftList : '{{appname}}/draft/{{index_key}}/{{sortKey}}/{{offset}}/{{limit}}/{{filter}}',
draftSave : '{{appname}}/draft/{{index_key}}/saveto/{{to_index_key}}/{{entity_id}}',
draftUnlock : '{{appname}}/draft/{{index_key}}/unlock/{{to_index_key}}/{{entity_id}}',
// getCrition:"crition/bysubjectid/list/0/10/{{subjectId}}",
},
property: {
// edit/@id/@property/id/@prop_id
// edit/@id/@property/index/@index
edit: "edit",
edit_index: "edit",
},
list: {
list: "list/list",
add: "list/add",
edit: "list/edit",
delete: "list/delete",
},
keywords: {
// complation: "keywords/complation",
all: "keywords/all",
},
tags: {
list: "tags/list",
add: "tags/add",
},
search: {
normal: "search/", //search/0/10/q=آب'
},
subject: {
add: "subject/add",
delete: "subject/delete",
order: "subject/order",
},
messages: {
list: "message/get/section/comments",
sectionLastComment: "message/get/section/last-comment",
setparent: "group/ed/parent", //refrence_id : مال پاسخ prefrence_id : مال مساله
// list: "message/get/group", //برای گرفتن فهرست آخرین پیام ها
update: "message/get", //بروز رسانی
create: "message/set/comment",
group: "group/ed/set", //ایجاد گروه
delete: "message/delete",
},
// themes indeed are issues sections.
entityFields: {
list: "entity/fields/items",
},
crition: {
add:"jahat/edit/{{issue_id}}/crition",
delete:"jahat/delete/{{issue_id}}/crition/id/{{crition_id}}",
},
public:{
next : "/majles/next/{{index_key}}/{{parent_id}}/{{order}}/{{step}}",
list:"/public/get/list/{{index_key}}/{{list_key}}/{{offset}}/{{limit}}/{{entity_id}}",
get: "public/get/byid/{{index_key}}/{{entity_id}}",
addEntity: "public/{{index_key}}/add",
updateEntity: "public/{{index_key}}/update/{{id}}",
updateProperty_byRelated: "{{appname}}/byRelated/{{index_key}}/{{sub_key}}/update/{{id}}",
updateProperty: "public/{{index_key}}/edit/{{entity_id}}/{{property}}",
updateProperty_byindex: "public/{{index_key}}/edit/{{entity_id}}/{{property}}/index/{{index}}",
updateProperty_byid: "public/{{index_key}}/edit/{{entity_id}}/{{property}}/id/{{prop_id}}",
updateProperty_full: "public/{{index_key}}/edit/{{entity_id}}/{{property}}/index/full",
deleteProperty_byindex: "public/{{index_key}}/delete/{{entity_id}}/{{property}}/index/{{index}}",
deleteProperty_byid: "public/{{index_key}}/delete/{{entity_id}}/{{property}}/id/{{prop_id}}",
deleteProperty: "public/{{index_key}}/delete/{{entity_id}}/{{property}}",
upload : "public/{{index_key}}/uploadfile",
getRef_id: "public/get/byfiled/{{index_key}}/{{filed}}/{{filed_id}}",
bysubject: "public/bysubjectid/{{index_key}}/{{from}}/{{countInPage}}/{{subject_id}}",
qmodel: "navigate/report/qmodel/{{offset}}/{{limit}}/{{key_filter}}/{{filter}}",
get_byids: "public/get/byids/@index_key"
},
chart:{
timeline: '{{appname}}/data/{{index_key}}/timeline/{{filter}}'
},
};

73
apis/searchApi.js Normal file
View File

@ -0,0 +1,73 @@
export default {
items: {
get: "monir/search/get/byid/",
},
Farhanghestan: {
search_normal: "monir/search/0/10",
search_And: "monir/search/and/0/10",
search_Phrase: "monir/search/phrase/0/10",
search_Code: "monir/search/code/all/0/10",
},
subject: {
add: "sanad/subject/add",
// edit: "sanad/subject/edit",
delete: "sanad/subject/delete",
order: "monir/sanad/subject/order",
},
index: {
Index_one: "safheh212/one",
index_multi: "safheh212/multi",
},
nesha: {
search_normal: "monir/search/nesha/0/10",
},
wordSWeight: {
list: "ngrams/elastic/{{index_key}}/1to3",
},
rezome: {
add: "rezumeh",
get: "rezumeh/get",
},
navigation: {
list: "navigate/list/@entity",
report:
"navigate/report/{{index_key}}/{{offset}}/{{limit}}/{{aggs}}/{{filter}}",
reportItem: "navigate/report/items",
reportSubjectItem: "navigate/report/subject={{subject_title}}/items",
},
bnavigation: {
list: "repo/navigate/list",
report: "repo/navigate/report",
reportItem: "repo/navigate/report/items",
reportSubjectItem: "repo/navigate/report/subject={{subject_title}}/items",
},
schema: {
list: "schema",
},
search: {
autoComplate:
"{{appname}}/complation/{{index_key}}/{{filter}}",
logAutoComplate:
"searchlog/complation/{{filter}}",
default:
"{{appname}}/data/{{index_key}}/{{sortKey}}/{{offset}}/{{limit}}/{{filter}}",
queryNormal:
"{{appname}}/search/{{index_key}}/{{search_type}}/{{sortKey}}/{{field_collapse}}/{{offset}}/{{limit}}/{{filter}}",
textSearch:
"{{appname}}/search/text/{{index_key}}/{{field}}/{{offset}}/{{limit}}/{{filter}}",
},
chart: {
timeline: "{{appname}}/data/timeline/{{index_key}}",
xy: "{{appname}}/data/xy/{{index_key}}/{{field_key}}",
items:
"navigate/report/items/search/{{index_key}}/{{offset}}/{{limit}}/{{filter}}",
chartTreeMap: "list/project/treemap/{{chart_key}}/{{filter}}",
treeItems:"navigate/report/items/search/{{index_key}}/{{offset}}/{{limit}}/{{filter}}",
tree: "list/subject/list",
graph:"repo/majles/{{to_key}}/relation"
},
synonym:{
getSynonyms:"synonym/get/words",
synonymSearch:"search/qasection/synonym/@listkey/@offset/@limit/@q",
}
};

27
apis/settingsApi.js Normal file
View File

@ -0,0 +1,27 @@
export default {
user: {
get: "setting/user/get",
getkey: "setting/user/get/{{key}}",
setKey: "setting/user/setkey/{{key}}",
setKey_object: "setting/user/setkey/{{key}}/object",
// get_stopword: "setting/user/stop_words/get",
append_stopword: "setting/user/stop_words/append",
remove_stopword: "setting/user/stop_words/remove",
},
help: {
getItem: "/setting/help/{{id}}",
addItem: "/setting/help/add",
editItem: "/setting/help/edit/{{id}}",
list: "setting/help/{{key_option}}/list/{{offset}}/{{limit}}",
delete: "setting/help/delete/{{id}}",
},
app: {
saveByKey: "/setting/app/setbykey/{{key_option}}",
getByKey: "/setting/app/get/{{key_option}}",
getItem: "/setting/app/{{id}}",
addItem: "/setting/app/add",
editItem: "/setting/app/edit/{{id}}",
list: "setting/app/{{key_option}}/list/{{offset}}/{{limit}}",
delete: "setting/app/delete/{{id}}",
},
};

19
app.config.ts Normal file
View File

@ -0,0 +1,19 @@
export default defineAppConfig({
theme: {
primaryColor: "#ababab",
},
colorMode: {
preference: "light", // Set the default preference to 'light'
fallback: "light", // Set the fallback to 'light' if system preference is not available
},
ui: {
primary: "green",
gray: "cool",
button: {
default: {
color: "orange",
},
},
},
});

89
app.vue Normal file
View File

@ -0,0 +1,89 @@
<template>
<div>
<NuxtLoadingIndicator />
<!-- <NuxtRouteAnnouncer /> -->
<!-- <DevOnly> -->
<!-- this component will only be rendered during development -->
<!-- <LazyDebugBar /> -->
<!-- if you ever require to have a replacement during production -->
<!-- be sure to test these using `nuxt preview` -->
<!-- <template #fallback> -->
<!-- <div>empty div for flex.justify-between</div> -->
<!-- </template> -->
<!-- </DevOnly> -->
<NuxtLayout>
<!-- this component will be rendered on client-side -->
<!-- <NuxtClientFallback
fallback-tag="span"
fallback="NuxtClientFallback"
@ssr-error="logSomeError"
> -->
<NuxtPage />
<!-- <BrokeInSsr /> -->
<!-- </NuxtClientFallback> -->
</NuxtLayout>
</div>
</template>
<script>
// import { useCounterStore } from "~/stores/counter";
// import { storeToRefs } from "pinia";
export default {
// setup() {
// definePageMeta({
// colorMode: "light",
// });
// },
mounted() {
// access the `store` variable anywhere in the component
// const store = useCounterStore();
// const { count, doubleCount } = storeToRefs(store);
// const { increment } = store;
// console.info(this.$config.public.TAHRIR_ASSETS_URL);
// console.info(this.$config.public.PUBLIC_JAHAT_ASSETS_URL);
// console.info(this.$config.public.VITE_APP_NAME);
// console.info(import.meta.env.VITE_APP_NAME);
// console.info(this.$config.public);
// console.info(this.$config.public.TITLE);
// console.info(this.$config.public.NODE_ENV);
// console.info(this.$config.public.VITE_APP_NAME);
// console.info(this.$config.public.VITE_BASE_URL);
// console.info(this.$config.public.VITE_BASE_URL);
},
methods: {
logSomeError(error) {
console.info("logSomeError", error);
},
},
};
</script>
<!-- using scss -->
<!-- <style lang="scss"> -->
<!-- // @use "~/assets/scss/main.scss"; -->
<!-- </style> -->
<style>
.page-enter-active,
.page-leave-active {
transition: all 0.4s;
}
.page-enter-from,
.page-leave-to {
opacity: 0;
filter: blur(1rem);
}
.layout-enter-active,
.layout-leave-active {
transition: all 0.4s;
}
.layout-enter-from,
.layout-leave-to {
filter: grayscale(1);
}
</style>

View File

@ -0,0 +1,669 @@
@import "../../common/scss/mixin";
@import "../../common/scss/placeholder";
.auth-page {
ul {
list-style: none;
padding: 0;
margin:0;
}
/*******SIGN UP PAGE START*******/
.m-sign-up-page {
min-height: 100dvh;
display: flex;
flex-direction: column;
justify-content: center;
}
.m-sign-up--tabs {
height: 380px;
display: block;
.m-sign-up__form-row {
margin-bottom: 16px;
}
}
.all-inputs{
height:250px;
overflow:auto;
scrollbar-width:none;
padding-left:1em;
}
.logo-header {
display: flex;
margin-bottom: auto;
padding-top: 35px;
padding-bottom: 35px;
padding-right: 25px;
padding-left: 25px;
&__logo {
margin-left: auto;
a {
display: flex;
}
img {
transition: all 0.5s ease-in;
&:hover {
filter: drop-shadow(0 0 3px rgba(var(--color-1), 0.2));
}
}
}
}
.m-sign-up {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 320px;
flex: 1;
margin-right: auto;
margin-left: auto;
&__title {
font-size: 24px;
margin-bottom: 12px;
color: var(--color-1);
}
&__text {
font-size: 14px;
color: var(--color-2);
margin-bottom: 38px;
}
&__form {
width: 100%;
&-inputs{
min-height: 25em;
overflow-y: auto;
padding-left: 1em;
}
form {
}
}
&__form-row {
margin-bottom: 24px;
.select2-container--default {
@extend %simple-input;
padding-right: 23px;
padding-left: 23px;
border-radius: 10px;
width: 100%;
display: flex;
}
.select2-container--default .select2-selection--single {
@extend %simple-input;
padding-right: 23px;
border-radius: 10px;
width: 100%;
display: flex;
}
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
margin-left: 23px;
height: 100%;
transition: all 0.5s ease;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
border-color: #f1f1f1;
}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
background-color: var(--color-1);
transition: all 0.5s ease-in-out;
}
}
&__number {
position: relative;
input {
@extend %simple-input;
font-size: 18px;
padding-right: 23px;
border-radius: 10px;
padding-left: 78px;
padding-right: 23px;
text-align: left;
// &::placeholder {
// color: #d4dce3;
// text-align: left;
// direction: ltr;
// }
&:focus {
border-color: var(--color-1);
}
}
span {
padding-left: 25px;
position: absolute;
left: 2px;
top: 2px;
height: calc(100% - 4px);
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
background-color: white;
direction: ltr;
font-size: 18px;
}
}
&__simple-input {
position: relative;
input {
@extend %simple-input;
text-align: center;
}
}
&__text-number {
font-size: 20px;
color: var(--color-2);
margin-bottom: 16px;
}
&__button-container {
display: flex;
align-items: center;
justify-content: space-between;
button {
@extend %simple-btn;
}
a {
font-size: 16px;
color: #bcc9d2;
&:hover {
color: var(--color-1);
}
}
}
}
.footer {
margin-top: auto;
padding-top: 30px;
padding-bottom: 30px;
padding-right: 25px;
padding-left: 25px;
position: fixed;
left: 1em;
bottom: 1em;
width: 500px;
&__text {
font-size: 14px;
color: var(--color-2);
a {
color: var(--color-1);
&:hover {
color: #006da0;
}
}
}
&__meta {
display: flex;
align-items: center;
justify-content: flex-end;
}
&__version {
font-size: 13px;
color: #92a2b2;
font-weight: 300;
margin-left: auto;
line-height: 0.5;
text-align: right;
}
&__social-media {
ul {
list-style: none;
display: flex;
align-items: center;
justify-content: space-between;
}
li {
&:not(:last-child) {
margin-left: 18px;
}
}
a {
display: flex;
justify-content: center;
align-items: center;
}
i {
font-size: 24px;
background: -webkit-linear-gradient(#a9bdc4 0%, #c6cfda 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
&:hover {
color: var(--color-1);
background: unset;
-webkit-background-clip: unset;
-webkit-text-fill-color: unset;
}
}
}
&__website {
font-size: 14px;
color: var(--color-1);
margin-right: 20px;
}
}
.select2-results__option--selectable {
transition: all 0.5s ease-in-out;
padding-top: 15px;
padding-bottom: 15px;
border-bottom: 1px solid #f1f1f1;
}
.select2-results__option--selected {
background-color: #fafafa !important;
color: var(--color-2) !important;
}
.select2-results__option--highlighted {
color: var(--color-2) !important;
background-color: #fafafa !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
border-color: #f1f1f1;
}
.select2-dropdown {
border-color: #dbdbdb;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
border: unset;
display: flex;
justify-content: center;
align-items: center;
&::before {
font-family: "niafam" !important;
speak: unset;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: 24px;
content: "\e946";
display: flex;
justify-content: center;
align-items: center;
}
}
.error-text {
color: var(--color-3) !important;
margin-top: 5px;
display: block;
font-size: 14px !important;
right: 0;
bottom: 0;
position: absolute;
top: 50px;
opacity: 0;
transition: all 0.2s ease-in-out;
}
.error-input {
position: relative;
input {
border-color: var(--color-3) !important;
}
.error-text {
opacity: 1;
}
}
/*******SIGN UP PAGE END*******/
.select2-container--default .select2-selection--single .select2-selection__arrow b::before {
content: "\e905";
font-size: 5px;
}
.logo-header {
padding-top: 25px;
padding-right: 70px;
padding-bottom: 0;
}
.o-signupp-differ-mb {
margin-bottom: 28px;
}
.o-signupp-differ-mb2 {
margin-bottom: 24px;
}
.elem {
&__filter {
position: relative;
.filter-selected {
height: 40px;
border-radius: 10px;
display: flex;
align-items: center;
width: 100%;
border: 1px solid #f1f1f1;
padding-right: 24px;
padding-left: 7px;
font-size: 14px;
justify-content: space-between;
cursor: pointer;
transition: all 0.3s ease-in-out;
i {
font-size: 26px;
color: #1b2733;
}
&:hover {
border-color: #92a2b2;
}
}
.filter-items {
z-index: 26;
width: 100%;
position: absolute;
left: 0;
top: calc(100% + 16px);
padding: 11px 17px;
visibility: hidden;
opacity: 0;
transition: all 0.3s ease-in-out;
transform: translateY(50px);
display: flex;
flex-direction: column;
background-color: white;
border-radius: 10px;
border: 1px solid #bac4ce;
box-shadow: 0 0;
ul {
list-style: none;
display: flex;
flex-direction: column;
}
li {
}
a {
padding-top: 9px;
padding-bottom: 9px;
display: flex;
font-size: 14px;
color: #1b2733;
&:hover {
color: var(--color-1);
}
}
}
.show {
transform: translateY(0);
opacity: 1;
visibility: visible;
}
}
&__back {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
visibility: hidden;
opacity: 0;
&.show {
opacity: 1;
visibility: visible;
}
}
&__sample {
&:hover {
background-color: unset !important;
}
span {
display: flex;
width: 56px;
height: 4px;
background: linear-gradient(90deg, #f1f1f1 0%, #dbe2e9 100%);
background-size: 300% 300%;
animation: loading 2s infinite;
}
@keyframes loading {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
}
&__btn {
padding-right: 17px;
padding-left: 17px;
border-radius: 20px;
border: 2px solid #00b6e3;
display: flex;
align-items: center;
justify-content: center;
height: 32px;
font-size: 14px;
font-weight: normal;
max-width: max-content;
color: #00b6e3;
&:hover {
color: white !important;
background-color: #00b6e3;
}
}
&__placeholder-gray {
// &::placeholder {
// color: #bac4ce;
// font-size: 16px;
// }
}
&__google {
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid #F1F1F1;
a {
display: flex;
align-items: center;
justify-content: space-between;
height: 48px;
width: 100%;
background-color: #F7FAFE;
border: 1px solid #D4DCE3;
border-radius: 10px;
padding-right: 24px;
padding-left: 24px;
font-size: 16px;
&:hover {
border-color: var(--color-1);
}
}
}
}
.flex {
&__center {
display: flex;
justify-content: center !important;
align-items: center !important;
}
}
.text {
&__small {
font-size: 12px;
font-weight: normal;
font-weight: normal;
}
&__title {
font-size: 14px;
color: #444444;
font-weight: 400;
}
&__detail {
font-size: 13px;
color: #444444;
font-weight: normal;
}
&__gray {
color: #92a2b2 !important;
}
&__blue {
color: var(--color-1) !important;
}
&__center {
text-align: center;
}
}
.m-sign-up {
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 0;
}
&__btn-container {
display: flex;
align-items:center;
button {
@extend %simple-btn;
}
.m-sign-up__text {
display: flex;
padding-top: 10px;
margin-bottom: 0;
&:hover {
color: var(--color-1) !important;
}
}
}
&__header {
margin-bottom: 30px;
ul {
display: flex;
align-items: center;
border: unset;
border-bottom: 1px solid #F1F1F1;
}
li {
width: 50%;
border: unset !important;
}
a.m-nav-link {
border: unset !important;
height: 35px !important;
width: 100%;
display: flex;
justify-content: center;
align-items: flex-start;
padding: 0;
color: #92A2B2;
font-size: 16px;
&.active {
color: var(--color-1);
border-bottom: 1px solid #00b6e3 !important;
}
}
}
}
.footer__app {
margin-right: 19px;
font-size: 14px;
}
.footer__social-media i {
font-size: 20px;
}
@media (max-width: 991.98px) {
.m-sign-up, .select2-container {
max-width: 100%;
}
.footer__version {
margin-left: 0;
}
}
}

665
assets/auth/signup.scss Normal file
View File

@ -0,0 +1,665 @@
@import "../common/scss/mixin";
@import "../common/scss/placeholder";
.auth-page {
ul {
list-style: none;
padding: 0;
margin:0;
}
/*******SIGN UP PAGE START*******/
.sign-up-page {
min-height: 100dvh;
display: flex;
flex-direction: column;
justify-content: center;
}
.logo-header {
display: flex;
margin-bottom: auto;
padding-top: 35px;
padding-bottom: 35px;
padding-right: 25px;
padding-left: 25px;
&__logo {
margin-left: auto;
display: flex;
justify-content: center;
align-items: center;
a {
display: flex;
}
img {
transition: all 0.5s ease-in;
object-fit: contain;
max-width: 100%;
height: 9.5em;
&:hover {
filter: drop-shadow(0 0 3px rgba(var(--color-1), 0.2));
}
}
}
}
.sign-up {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 320px;
flex: 1;
margin-right: auto;
margin-left: auto;
&__title {
font-size: 24px;
margin-bottom: 12px;
color: var(--color-1);
}
&__text {
font-size: 14px;
color: var(--color-2);
margin-bottom: 38px;
}
&__form {
width: 100%;
&-inputs{
min-height: 25em;
overflow-y: auto;
padding-left: 1em;
}
form {
}
}
&__form-row {
margin-bottom: 24px;
.select2-container--default {
@extend %simple-input;
padding-right: 23px;
padding-left: 23px;
border-radius: 10px;
width: 100%;
display: flex;
}
.select2-container--default .select2-selection--single {
@extend %simple-input;
padding-right: 23px;
border-radius: 10px;
width: 100%;
display: flex;
}
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
margin-left: 23px;
height: 100%;
transition: all 0.5s ease;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
border-color: #f1f1f1;
}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
background-color: var(--color-1);
transition: all 0.5s ease-in-out;
}
}
button {
@extend %simple-btn;
}
&__number {
position: relative;
input {
@extend %simple-input;
font-size: 18px;
padding-right: 23px;
border-radius: 10px;
padding-left: 78px;
padding-right: 23px;
text-align: left;
// &::placeholder {
// color: #d4dce3;
// text-align: left;
// direction: ltr;
// }
&:focus {
border-color: var(--color-1);
}
}
span {
padding-left: 25px;
position: absolute;
left: 2px;
top: 2px;
height: calc(100% - 4px);
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
background-color: white;
direction: ltr;
font-size: 18px;
}
}
&__simple-input {
position: relative;
input {
@extend %simple-input;
text-align: center;
}
}
&__text-number {
font-size: 20px;
color: var(--color-2);
margin-bottom: 16px;
}
&__button-container {
display: flex;
align-items: center;
justify-content: space-between;
a {
font-size: 16px;
color: #bcc9d2;
&:hover {
color: var(--color-1);
}
}
}
}
.footer {
margin-top: auto;
padding-top: 30px;
padding-bottom: 30px;
padding-right: 25px;
padding-left: 25px;
position: fixed;
left: 1em;
bottom: 1em;
width: 500px;
&__text {
font-size: 14px;
color: var(--color-2);
a {
color: var(--color-1);
&:hover {
color: #006da0;
}
}
}
&__meta {
display: flex;
align-items: center;
justify-content: flex-end;
}
&__version {
font-size: 13px;
color: #92a2b2;
font-weight: 300;
margin-left: auto;
line-height: 0.5;
text-align: right;
}
&__social-media {
ul {
list-style: none;
display: flex;
align-items: center;
justify-content: space-between;
}
li {
&:not(:last-child) {
margin-left: 18px;
}
}
a {
display: flex;
justify-content: center;
align-items: center;
}
i {
font-size: 24px;
background: -webkit-linear-gradient(#a9bdc4 0%, #c6cfda 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
&:hover {
color: var(--color-1);
background: unset;
-webkit-background-clip: unset;
-webkit-text-fill-color: unset;
}
}
}
&__website {
font-size: 14px;
color: var(--color-1);
margin-right: 20px;
}
}
.select2-results__option--selectable {
transition: all 0.5s ease-in-out;
padding-top: 15px;
padding-bottom: 15px;
border-bottom: 1px solid #f1f1f1;
}
.select2-results__option--selected {
background-color: #fafafa !important;
color: var(--color-2) !important;
}
.select2-results__option--highlighted {
color: var(--color-2) !important;
background-color: #fafafa !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
border-color: #f1f1f1;
}
.select2-dropdown {
border-color: #dbdbdb;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
border: unset;
display: flex;
justify-content: center;
align-items: center;
&::before {
font-family: "niafam" !important;
speak: unset;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: 24px;
content: "\e946";
display: flex;
justify-content: center;
align-items: center;
}
}
.error-text {
color: var(--color-3) !important;
margin-top: 5px;
display: block;
font-size: 14px !important;
right: 0;
bottom: 0;
position: absolute;
top: 50px;
opacity: 0;
transition: all 0.2s ease-in-out;
}
.error-input {
position: relative;
input {
border-color: var(--color-3) !important;
}
.error-text {
opacity: 1;
}
}
/*******SIGN UP PAGE END*******/
.select2-container--default .select2-selection--single .select2-selection__arrow b::before {
content: "\e905";
font-size: 5px;
}
.logo-header {
padding-top: 25px;
padding-right: 70px;
padding-bottom: 0;
}
.o-signupp-differ-mb {
margin-bottom: 28px;
}
.o-signupp-differ-mb2 {
margin-bottom: 24px;
}
.elem {
&__filter {
position: relative;
.filter-selected {
height: 40px;
border-radius: 10px;
display: flex;
align-items: center;
width: 100%;
border: 1px solid #f1f1f1;
padding-right: 24px;
padding-left: 7px;
font-size: 14px;
justify-content: space-between;
cursor: pointer;
transition: all 0.3s ease-in-out;
i {
font-size: 26px;
color: #1b2733;
}
&:hover {
border-color: #92a2b2;
}
}
.filter-items {
z-index: 26;
width: 100%;
position: absolute;
left: 0;
top: calc(100% + 16px);
padding: 11px 17px;
visibility: hidden;
opacity: 0;
transition: all 0.3s ease-in-out;
transform: translateY(50px);
display: flex;
flex-direction: column;
background-color: white;
border-radius: 10px;
border: 1px solid #bac4ce;
box-shadow: 0 0;
ul {
list-style: none;
display: flex;
flex-direction: column;
}
li {
}
a {
padding-top: 9px;
padding-bottom: 9px;
display: flex;
font-size: 14px;
color: #1b2733;
&:hover {
color: var(--color-1);
}
}
}
.show {
transform: translateY(0);
opacity: 1;
visibility: visible;
}
}
&__back {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
visibility: hidden;
opacity: 0;
&.show {
opacity: 1;
visibility: visible;
}
}
&__sample {
&:hover {
background-color: unset !important;
}
span {
display: flex;
width: 56px;
height: 4px;
background: linear-gradient(90deg, #f1f1f1 0%, #dbe2e9 100%);
background-size: 300% 300%;
animation: loading 2s infinite;
}
@keyframes loading {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
}
&__btn {
padding-right: 17px;
padding-left: 17px;
border-radius: 20px;
border: 2px solid #00b6e3;
display: flex;
align-items: center;
justify-content: center;
height: 32px;
font-size: 14px;
font-weight: normal;
max-width: max-content;
color: #00b6e3;
&:hover {
color: white !important;
background-color: #00b6e3;
}
}
&__placeholder-gray {
// &::placeholder {
// color: #bac4ce;
// font-size: 16px;
// }
}
&__google {
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid #F1F1F1;
a {
display: flex;
align-items: center;
justify-content: space-between;
height: 48px;
width: 100%;
background-color: #F7FAFE;
border: 1px solid #D4DCE3;
border-radius: 10px;
padding-right: 24px;
padding-left: 24px;
font-size: 16px;
&:hover {
border-color: var(--color-1);
}
}
}
}
.flex {
&__center {
display: flex;
justify-content: center !important;
align-items: center !important;
}
}
.text {
&__small {
font-size: 12px;
font-weight: normal;
font-weight: normal;
}
&__title {
font-size: 14px;
color: #444444;
font-weight: 400;
}
&__detail {
font-size: 13px;
color: #444444;
font-weight: normal;
}
&__gray {
color: #92a2b2 !important;
}
&__blue {
color: var(--color-1) !important;
}
&__center {
text-align: center;
}
}
.sign-up {
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 0;
}
&__btn-container {
display: flex;
align-items: flex-start;
.sign-up__text {
display: flex;
padding-top: 5px;
margin-bottom: 0;
&:hover {
color: var(--color-1) !important;
}
}
}
&__header {
margin-bottom: 20px;
ul {
display: flex;
align-items: center;
border: unset;
border-bottom: 1px solid #F1F1F1;
}
li {
width: 50%;
border: unset !important;
}
a.nav-link {
border: unset !important;
height: 35px !important;
width: 100%;
display: flex;
justify-content: center;
align-items: flex-start;
padding: 0;
color: #92A2B2;
font-size: 16px;
&.active {
color: var(--color-1);
border-bottom: 1px solid #00b6e3 !important;
}
}
}
}
.footer__app {
margin-right: 19px;
font-size: 14px;
}
.footer__social-media i {
font-size: 20px;
}
.sign-up--tabs {
height: 370px;
display: block;
.sign-up__form-row {
margin-bottom: 16px;
}
}
@media (max-width: 991.98px) {
.sign-up, .select2-container {
max-width: 100%;
}
.footer__version {
margin-left: 0;
}
}
}

1
assets/common/css/sweetalert2.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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.

View File

@ -0,0 +1,347 @@
تغییرات فونت ساحل
=================
در اینجا شما فهرستی از تغییرات بین هر نسخه‌ی انتشار از فونت ساحل را مشاهده می‌کنید.
نسخه ۳.۴.۰
---------
۲ اسفند ۱۳۹۸
- بهبود ـم هـ
- بهبود دندانه‌ها در معمولی و سبک
- اصلاح عرض آ و کرنینگ آن با ک گ قـ
- اصلاح عرض ـا ا ر و
- بهبود سرکش گاف
- بهبود ـعـ در ضخیم و تیتر
نسخه ۳.۳.۱
---------
۲۵ دی ۱۳۹۸
- بهبود ع م در معمولی و سبک
- بهبود ی
نسخه ۳.۳.۰
---------
۷ آذر ۱۳۹۸
- تغییر شکل صفر فارسی از توپر به توخالی
- بهبود هـ در تیتر
نسخه ۳.۲.۱
---------
۱۹ آبان ۱۳۹۸
- رفع ایراد سرکش «گ» در نسخه سبک (با تشکر از @AbbasAlimi)
نسخه ۳.۲.۰
---------
۱۸ آبان ۱۳۹۸
- رفع ایراد در نمایش اعراب (با تشکر از Ali Khatibi)
- بهبود ـهـ (با تشکر از @AbbasAlimi)
- بهبود ـه
- بهبود ـعـ ـط ـطـ ـص ـصـ در نیمه‌ضخیم، ضخیم، تیتر
- بهبود ـفـ ـف در تیتر
نسخه ۳.۱.۱
---------
۱۴ آبان ۱۳۹۸
- بهبود نقاط
- اصلاح نقاط ـیـ در معمولی و سبک
- بهبود کاما
نسخه ۳.۱.۰
---------
۱۰ آبان ۱۳۹۸
- اصلاح سه‌نقطه در نسخه متغیر
- بهبود عرض ـی
- اصلاح نقاط ـثـ در تیتر
- اصلاح عرض ثـ تـ در تیتر
- بهبود ـفـ
- بهبود نقاط نیمه‌ضخیم
نسخه ۳.۰.۱
---------
۹ آبان ۱۳۹۸
- اصلاح ـنـ در ضخیم
- بهبود نقاط در تیتر
- اصلاح ـن در نیمه‌ضخیم و ضخیم و تیتر
- اصلاح ـح ـع در تیتر
نسخه ۳.۰.۰
---------
۸ آبان ۱۳۹۸
- رفع‌ایراد، اصلاح و بهبود فونت از جمله تایپ‌فیس (حروف، علائم، ارقام، ...)، کرنینگ، اعراب و ...
- اضافه شدن وزن سبک
- بازطراحی گیومه (با تشکر از @neesti)
نسخه ۲.۰
---------
۱۵ شهریور ۱۳۹۸
- رفع ایراد زبان لاتین در قسمت Charsets (با تشکر از معین)
نسخه ۲.۰.۱
---------
۲۲ مرداد ۱۳۹۸
- اصلاح عرض ۶
نسخه ۲.۰.۰
---------
۱۹ مرداد ۱۳۹۸
- بازسازی کل فونت برای نسخه وریبل (با تشکر از @aminabedi68)
- اضافه شدن نسخه جدید بولد (با تشکر از @aminabedi68)
- بهبود و بهینه‌سازی سورس و حذف داده‌های اضافی (با تشکر از @aminabedi68)
- بهبود برخی گلیف‌ها
نسخه ۱.۰.۰
---------
۶ تیر ۱۳۹۸
- بهبود ی ـی لا ـلا
- بهبود ر و در تیتر
- بهبود نقاط در تیتر
- اضافه شدن کرنینگ ر ز ژ با هٔ (با تشکر از @iriman)
- اصلاح کرنینگ ر ز ژ با ء
- بهبود ـد و ارقام (با تشکر از @EhsanCh)
نسخه ۱.۰.۰-آلفا۲۴
----------------
۵ اردیبهشت ۱۳۹۸
- بهبود ر و در تیتر
- بهبود نقطه ز
نسخه ۱.۰.۰-آلفا۲۳
----------------
۲۹ اسفند ۱۳۹۷
- بهبود ـعـ ـع
- اصلاح اتصال ـق
- اصلاح اعراب ـا در معمولی
- اصلاح اعراب ذ در تیتر
- اصلاح ٤ ٥ ٦ عربی
نسخه ۱.۰.۰-آلفا۲۲
----------------
۰۸ شهریور ۱۳۹۷
- بهبود ارقام
- بهبود ٫ ٬
- اضافه شدن کرنینگ «٬ ٫» با ۲ ۳ ۴
- بهبود اتصال مـ بـ ـبـ سـ ـسـ ـا در تیتر
- اصلاح ت در ضخیم
- بهبود م ر و در تیتر
- بهبود ی در ضخیم و تیتر
نسخه ۱.۰.۰-آلفا۲۱
----------------
۳۱ تیر ۱۳۹۷
- اصلاح محل اتصال ـک ـگ
- اصلاح نقاط ش در ضخیم
- اصلاح گـ طـ ـطـ در ضخیم
- اصلاح نقطه ظـ ـظـ در تیتر
- بهبود جزئی قوس س ص ن ی در تیتر
نسخه ۱.۰.۰-آلفا۲۰
----------------
۲۹ خرداد ۱۳۹۷
- بهبود ل
- بهبود پایه ح ع
- بهبود ـی ی ر ـر و ـو ک گ ف در تیتر
- اصلاح ـح در معمولی
- بهبود ـی در معمولی
- اصلاح نقاط ـچ در تیتر
- اصلاح ـأ و ـآ
- اصلاح گلیف الله
نسخه ۱.۰.۰-آلفا۱۹
----------------
۲۰ اردیبهشت ۱۳۹۷
- بهبود ـی ی
- بهبود عرض ـنـ ـبـ ـر ـا ـلـ ـل ـلا ـه
- بهبود ضخامت پایهٔ و ر در حالت تیتر
- بهبود ا ک گ در حالت تیتر
- بهبود ارتفاع در حالت معمولی
نسخه ۱.۰.۰-آلفا۱۸
----------------
۱۰ اسفند ۱۳۹۶
- بازطراحی ر و
- بهبود دندانه‌ها
- بهبود ص ط حـ ـحـ مـ م ـمـ ـلا ـلـ ریال کـ گـ
- اصلاح و بهبود ضخامت در حالت ضخیم
- بهبود فاصله
نسخه ۱.۰.۰-آلفا۱۷
----------------
۴ اسفند ۱۳۹۶
- اصلاح قوس ن س ص ل در حالت تیتر
- بهبود ر و
- رفع گردی لبه‌ها در حالت ضخیم
- بهبود ضخامت در حالت معمولی
نسخه ۱.۰.۰-آلفا۱۶
----------------
۱ اسفند ۱۳۹۶
- اصلاح ارقام
نسخه ۱.۰.۰-آلفا۱۵
----------------
۳۰ بهمن ۱۳۹۶
- بازنگری در حالت ضخیم
- یکسان‌سازی عرض معمولی و ضخیم
- بهبود حروف، لیگچرها، علائم، نقاط و اندازه‌ها
- بهبود اعراب
- بهبود ارقام
- اضافه شدن کرنینگ ارقام و «آ + ک کـ گ گـ» «د ـد ذ ـذ + ک کـ گ گـ»
نسخه ۱.۰.۰-آلفا۱۴
----------------
۱۲ بهمن ۱۳۹۶
- بهبود دندانه بـ ب
- بهبود و اصلاح و ـو ر ـر
نسخه ۱.۰.۰-آلفا۱۳
----------------
۶ بهمن ۱۳۹۶
- تغییر ارتفاع، ضخامت‌ها و دندانه‌ها در حالت ضخیم
- بهبود نقاط
- اصلاح لا ـلا در ضخیم و تیتر
نسخه ۱.۰.۰-آلفا۱۲
----------------
۲۷ آذر ۱۳۹۶
- تصحیح ایراد در اندازه سـ ـسـ حالت تیتر
نسخه ۱.۰.۰-آلفا۱۱
----------------
۲۷ آذر ۱۳۹۶
- بهبود نقاط در هر سه وزن
- تغییر متریک فونت برای کاهش ارتفاع
- تصحیح شکل ی در حالت تیتر
نسخه ۱.۰.۰-آلفا۱۰
----------------
۲۷ آذر ۱۳۹۶
- بهبود طراحی اغلب گلیف‌ها
- بهبود ارتفاع و فاصله
- تصحیح اعراب
- تغییر متریک فونت
نسخه ۱.۰.۰-آلفا۹
----------------
۸ بهمن ۱۳۹۵
- رفع ایراد ـکـ
- رفع ایراد X-Height
نسخه ۱.۰.۰-آلفا۸
----------------
۹ آذر ۱۳۹۵
- رفع ایراد جهت برخی گلیف‌ها
- رفع ایراد ورژن
نسخه ۱.۰.۰-آلفا۷
----------------
۸ آذر ۱۳۹۵
- بهبود حروف و علائم به ویژه در ضخیم و تیتر
- بهبود ارقام و ریال
نسخه ۱.۰.۰-آلفا۶
----------------
۷ شهریور ۱۳۹۵
- افزایش مجدد و قابل توجه ناحیه همپوشانی گلیف ها
نسخه ۱.۰.۰-آلفا۵
----------------
۳۰ مرداد ۱۳۹۵
- باز طراحی ر و
- افزایش ناحیه همپوشانی گلیف ها
نسخه ۱.۰.۰-آلفا۳
----------------
۱۳ مرداد ۱۳۹۵
- اصلاح ـن
- اصلاح فاصله
- اصلاح اندازه برخی حروف
- تغییر ی
نسخه ۱.۰.۰-آلفا۲
----------------
۱۱ مرداد ۱۳۹۵
- اضافه شدن حروف لاتین به قلم
- اصلاح حرف ف ح ـع ر
- اصلاح ـئـ ـپـ ــل ـد
- اصلاح اندازه طولی علائم
- اصلاح ـمـ
- جدا شدن نسخه تیتر از خانواده قلم
- اصلاح «» (با تشکر از اکبر خرمی)
- اضافه شدن ی دم بریده (با تشکر از اکبر خرمی)
- اضافه شدن ـہ ـھ (با تشکر از سعید)
نسخه ۱.۰.۰-آلفا
---------------
۱ مرداد ۱۳۹۵
- اولین نسخه

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