| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # app/shared/MultiLevelMenu/index.coffee
- document.head.insertAdjacentHTML('beforeend','<style type="text/tailwindcss">'+stylFns['app/shared/MultiLevelMenu/index.styl']+'</style>')
- 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
- # Навигация к странице
|