/** * @typedef {import('../lib/js-lib/slider.js').Slider} Slider * @typedef {import('../lib/js-lib/page-manager.js').PageManager} PageManager * @typedef {import('../lib/js-lib/ref-manager.js').RefManager} RefManager * * @typedef {Object} SliderPageArg * @property {RefManager} slider_urls_manager - менеджер для слайдера * @property {RefManager} icon_refs_manager - менеджер иконок * @property {PageManager} page_manager - менеджер страниц * @property {Object} properties - свойства маркера */ /** * Инициализация slider-page * @function * @param {SliderPageArg} arg */ const slider_page_init = ({page_manager, icon_refs_manager, properties}) => { /** * Инициализация кнопки возврата на info_page * @function */ const to_info_page_init = (slider) => { const to_info_page = document.getElementById('to-info-page'); // Иконка кнопки to_info_page.src = icon_refs_manager.get("map"); to_info_page.onclick = () => { // Очистка slider.clear?.(); page_manager.set_page('info-page', { page_manager, icon_refs_manager, properties }); }; }; /** Безопасный вызов */ recovery( () => { // Получение изображений из менеджера const images = properties.slider // Создание слайдера const slider = new Slider({ slider: { main: document.getElementById('slider'), next: document.getElementById('next'), previous: document.getElementById('previous') }, next_ref: icon_refs_manager.get('next'), previous_ref: icon_refs_manager.get('previous'), images }); // Кнопка назад к info_page to_info_page_init(slider); }, (...e) => { console.log("Ошибка при инициализации (slider-page)"); e.forEach(er => { throw er }); } )(); };