import {ref, useContext} from "@nuxtjs/composition-api"; import {ItemsMenu} from "~/types/types"; import {getAccessMenu} from "~/use/template/Menus/accessMenu"; import {getAgendaMenu} from "~/use/template/Menus/agendaMenu"; import {getEquipmentMenu} from "~/use/template/Menus/equipmentMenu"; import {getEducationalMenu} from "~/use/template/Menus/educationalMenu"; import {getBillingMenu} from "~/use/template/Menus/billingMenu"; import {getCommunicationMenu} from "~/use/template/Menus/communicationMenu"; import {getDonorsMenu} from "~/use/template/Menus/donorsMenu"; import {getMedalsMenu} from "~/use/template/Menus/medalsMenu"; import {getStatsMenu} from "~/use/template/Menus/statsMenu"; import {getCotisationsMenu} from "~/use/template/Menus/cotisationsMenu"; import {getAdmin2iosMenu} from "~/use/template/Menus/admin2iosMenu"; import {getWebsiteMenu} from "~/use/template/Menus/websiteMenu"; /** * @category Use/template * @class Menu * Use Classe pour la construction du Menu */ class Menu{ private $ability:any; private $config:any; private $store:any; /** * @constructor * Initialisation des services issues du context */ constructor() { } setUpContext(){ const {$ability, $config, store} = useContext(); this.$ability = $ability; this.$config = $config; this.$store = store; return this; } /** * Construit le menu */ useLateralMenuConstruct(){ let menu:ItemsMenu = [] const accessMenu = getAccessMenu(this.$config,this.$ability,this.$store) if(accessMenu) menu.push(accessMenu) const agendaMenu = getAgendaMenu(this.$config,this.$ability) if(agendaMenu) menu.push(agendaMenu) const equipmentMenu = getEquipmentMenu(this.$config,this.$ability) if(equipmentMenu) menu.push(equipmentMenu) const educationalMenu = getEducationalMenu(this.$config,this.$ability) if(educationalMenu) menu.push(educationalMenu) const billingMenu = getBillingMenu(this.$config,this.$ability) if(billingMenu) menu.push(billingMenu) const communicationMenu = getCommunicationMenu(this.$config,this.$ability) if(communicationMenu) menu.push(communicationMenu) const donorsMenu = getDonorsMenu(this.$config,this.$ability) if(donorsMenu) menu.push(donorsMenu) const medalsMenu = getMedalsMenu(this.$config,this.$ability) if(medalsMenu) menu.push(medalsMenu) const websiteMenu = getWebsiteMenu(this.$config,this.$ability,this.$store) if(websiteMenu) menu.push(websiteMenu) const cotisationsMenu = getCotisationsMenu(this.$config,this.$ability) if(cotisationsMenu) menu.push(cotisationsMenu) const statsMenu = getStatsMenu(this.$config,this.$ability) if(statsMenu) menu.push(statsMenu) const admin2iosMenu = getAdmin2iosMenu(this.$config,this.$ability) if(admin2iosMenu) menu.push(admin2iosMenu) return ref(menu) } } export const $useMenu = new Menu()