import { NuxtConfig } from '@nuxt/types/config' import { ItemMenu } from '~/types/interfaces' /** * @category composables/layout/Menus * @class BaseMenu * Classe abstraite pour chacun des menu */ class BaseMenu { protected $config: NuxtConfig; /** * @constructor * Initialisation des services issues du context */ constructor ($config: NuxtConfig) { this.$config = $config } /** * Construit un ItemMenu * @param {string} icon * @param {string} title titre qui sera traduit * @param {string} link lien * @param {boolean} isOldLink est-ce un lien renvoyant vers l'ancien admin? * @param {Array} children Tableau d'ItemMenu représentant les sous menu du menu principal * @param {boolean} isExternalLink est-ce un lien renvoyant vers l'extérieur? * @param {Array} actions Tableau d'ItemMenu représentant les actions devant apparaitre en bas du menu * @return {ItemMenu} */ constructMenu (title: string, icon?: string, link?: string, isOldLink?: boolean, children?: Array, isExternalLink?: boolean): ItemMenu { return children ? { title, icon, children } : { icon, title, to: `${isExternalLink || !isOldLink ? '' : this.$config.baseURL_adminLegacy}${link}`, isExternalLink: isExternalLink || isOldLink } } getMenu (): ItemMenu | null { return null } getHeaderMenu (): ItemMenu | null { return null } } export default BaseMenu