# app/shared/MultiLevelMenu/index.coffee document.head.insertAdjacentHTML('beforeend','') module.exports = name: 'MultiLevelMenu' render: (new Function '_ctx', '_cache', renderFns['app/shared/MultiLevelMenu/index.pug'])() data: -> openSubmenu: null openSubsubmenu: null isMobileMenuOpen: false menuItems: [ { id: 1 title: 'Мероприятия' children: [ { id: 11 title: 'Концерты' children: [ { id: 111, title: 'Классическая музыка' } { id: 112, title: 'Фольклорные концерты' } { id: 113, title: 'Джазовые вечера' } ] } { id: 12 title: 'Фестивали' children: [ { id: 121, title: 'Музыкальные фестивали' } { id: 122, title: 'Международные события' } ] } { id: 13, title: 'Все мероприятия' } ] } { id: 2 title: 'О зале' children: [ { id: 21, title: 'История' } { id: 22, title: 'Архитектура' } { id: 23, title: 'Акустика' } { id: 24, title: 'Галерея' } ] } { id: 3 title: 'Посетителям' children: [ { id: 31, title: 'Как добраться' } { id: 32, title: 'Правила посещения' } { id: 33, title: 'Доступная среда' } { id: 34, title: 'Архив мероприятий' } ] } { id: 4, title: 'Контакты' } ] beforeUnmount: -> debug.log "slider start" methods: getMenuItemClasses: (item) -> baseClasses = 'text-gray-700 dark:text-gray-300 hover:text-accent dark:hover:text-accent' activeClasses = if @openSubmenu == item.id then 'bg-accent bg-opacity-10 text-accent' else 'hover:bg-gray-100 dark:hover:bg-gray-700' return "#{baseClasses} #{activeClasses}" handleMobileClick: (item) -> if window.innerWidth < 768 if item.children @openSubmenu = if @openSubmenu == item.id then null else item.id else @isMobileMenuOpen = false # Навигация к странице