| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import {ItemMenu, ItemsMenu, IconItem} from '~/types/interfaces'
- import {useRuntimeConfig} from "#app";
- import {RuntimeConfig} from "@nuxt/schema";
- import Url from "~/services/utils/url";
- /**
- * @category composables/layout/Menus
- * @class BaseMenu
- * Classe abstraite pour chacun des menus
- */
- class BaseMenu {
- protected $config: RuntimeConfig;
- /**
- * @constructor
- * Initialisation des services issus du context
- */
- constructor () {
- this.$config = useRuntimeConfig()
- }
- /**
- * Construit un ItemMenu
- *
- * @param {IconItem} icon
- * @param {string} title titre qui sera traduit
- * @param {string} link lien
- * @param {boolean} isV1Link est-ce un lien renvoyant vers l'ancien admin ?
- * @param {Array<ItemMenu>} children Tableau d'ItemMenu représentant les sous menu du menu principal
- * @param {boolean} isExternalLink est-ce un lien renvoyant vers l'extérieur ?
- * @return {ItemMenu}
- */
- constructMenuItem (title: string, icon?: IconItem, link?: string, isV1Link?: boolean, children?: Array<ItemMenu>, isExternalLink?: boolean): ItemMenu {
- const v1BaseURL = this.$config.baseUrlAdminLegacy ?? this.$config.public.baseUrlAdminLegacy
- const url = (isV1Link && !isExternalLink) ? Url.join(v1BaseURL, link ?? '') : link
- return children ? {
- title,
- icon,
- children
- } : {
- icon,
- title,
- to: url,
- isExternalLink: isExternalLink || isV1Link
- }
- }
- getMenu (): ItemMenu | null {
- return null
- }
- getMenus (): ItemsMenu | null {
- return null
- }
- getHeaderMenu (): ItemMenu | null {
- return null
- }
- }
- export default BaseMenu
|