# app/pages/Home/index.coffee document.head.insertAdjacentHTML('beforeend','') module.exports = name: 'Home' render: (new Function '_ctx', '_cache', renderFns['app/pages/Home/index.pug'])() data: -> heroSlides: [ { id: 1, image: 'https://avesta.tj/wp-content/uploads/2018/03/10-22.jpg', title: 'Классическая музыка', description: 'Вечер симфонической музыки', cta: 'Купить билеты' }, { id: 2, image: 'https://asiaplustj.info/sites/default/files/articles/176582/borbad.jpg', title: 'Фольклорные ансамбли', description: 'Традиционная музыка Таджикистана', cta: 'Подробнее' }, { id: 3, image: 'https://asiaplustj.info/sites/default/files/articles/211528/vdushanbeprosheltadzhiksko-indiyskiyselskohozyaystvennyyforum.jpg', title: 'Современные исполнители', description: 'Лучшие артисты страны', cta: 'Узнать расписание' } ] events: [ { id: 1, title: 'Концерт симфонического оркестра', date: '15 октября 2025', description: 'Произведения Чайковского и Рахманинова в исполнении Национального симфонического оркестра', image: 'https://avesta.tj/wp-content/uploads/2023/10/photo_2023-10-09_13-20-44.jpg', category: 'classical', price: 'от 50 сомони' }, { id: 2, title: 'Вечер таджикской народной музыки', date: '20 октября 2025', description: 'Выступление фольклорного ансамбля "Шашмаком"', image: 'https://avatars.mds.yandex.net/get-altay/892711/2a0000018d08049ba81df206f02ee2ec7e1d/XXL_height', category: 'folk', price: 'от 30 сомони' }, { id: 3, title: 'Джазовый фестиваль', date: '25 октября 2025', description: 'Международные джазовые коллективы в уникальной акустике зала', image: 'https://avatars.mds.yandex.net/get-altay/9822373/2a0000019377c5d52c95d3175340aab4a35a/XXL_height', category: 'jazz', price: 'от 70 сомони' } ] eventFilters: [ { key: 'category', label: 'Категория', type: 'select', options: [ { value: 'all', label: 'Все' }, { value: 'classical', label: 'Классическая' }, { value: 'folk', label: 'Фольклор' }, { value: 'jazz', label: 'Джаз' }, { value: 'pop', label: 'Поп-музыка' } ]} ] eventSortOptions: [ { value: 'date-asc', label: 'По дате (сначала ближайшие)' }, { value: 'date-desc', label: 'По дате (сначала дальние)' }, { value: 'price-asc', label: 'По цене (сначала дешевые)' }, { value: 'price-desc', label: 'По цене (сначала дорогие)' } ] filteredEvents: [] mounted: -> @filteredEvents = [...@events] methods: handleFilterChange: (filteredItems) -> @filteredEvents = filteredItems handleSortChange: (sortedItems) -> @filteredEvents = sortedItems openEventModal: (event) -> @$root.$emit('open-modal', { component: 'EventDetailModal', props: { event } }) components: 'imageslider': require 'app/shared/ImageSlider' 'formvalidator': require 'app/shared/FormValidator' 'filtersort': require 'app/shared/FilterSort'