Социологические опросы показывают, что у людей отсутствует представление о будущем. «Коммерсантъ» готов восполнить этот пробел в рамках проекта «Контуры будущего».с> Каждый день редакторы и читатели сталкиваются с потоком новостей, которые означают: привычный мир — тот, в котором начал выходить «Коммерсант», рухнул Советский Союз, рухнула Берлинская стена и сформировалась глобальная экономика — больше не существует. Старые правила не работают, новые только формируются.
Рано или поздно период турбулентности закончится. Новые контуры мира будут определяться новыми соглашениями, хартиями и конвенциями.с> Творческая группа проекта «Контуры будущего» под руководством Азера Мурсалиева и Ивана Сухова, осветили основные темы этих новых соглашений в области экономики, политики, права, войны, климата, технологий и, самое главное, статуса человека и видения будущего человечества. п> В ближайшее время мы предложим читателям оценить перспективы мировой торговли. После этого проект будет выходить каждые три недели.
Добро пожаловать в будущее.с>
Произошла ошибка при загрузке данных.
(functon(){(асинхронная функция() { const DUMMY_PHOTO_URL = ‘https://v.kommersant.ru/CorpImages/Projects/future_paths/bg_zaglushka.png’; константное состояние = { дом: {}, данные: { карты: [], }, }; const fetchCatalogData = async (d, lmt = 100) =>{ const response = awat fetch(`https://wt.kommersant.ru/ap/v1/catalog/get?catalogId=${d}&start=0&lmt=${lmt}`); е (!response.ok) { throw new Error(`Ошибка получения данных каталога: ${response.status}`); } константный каталог = awat response.json(); вернуть каталог.данные; }; const генерироватьCardsData = (карты) => { вернуть карты.уменьшить(( первый, { Исшоу немного, тонкий, магSrc, идентификатор документа, Опубликовано } ) =>{ е (IsShow) { lst.push({ немного, тонкий, магSrc, docUrl: `/doc/${docID}`, Опубликовано }); } вернуть список; }, []); }; const renderCards = () => { const фрагмент = document.createDocumentFragment(); state.data.cards.forEach((card) =>{ const cardNode = state.dom.cardTpl.content .cloneNode(истина) .querySelector(‘.contours_card’); const ttle = cardNode.querySelector(‘.contours_card__ttle’); е (!card.sPublished) { cardNode.classLst.add(‘nactve’); ttle.textContent = card.ttle; } еще { const lnk = document.createElement(‘a’); lnk.href = card.docUrl; lnk.className = ‘lnk lnk_overlay’; lnk.textContent = card.ttle; Little.append(lnk); } е(карта.тонкость) { const subttle = document.createElement(‘p’); subttle.className = ‘contours_card__ntro’; subttle.textContent = card.subttle; cardNode.nsertAdjacentElement(‘beforeend’, subttle); } const photoNode = state.dom.photoTpl.content .cloneNode(истина) .querySelector(‘.contours_card__photo’); const mg = photoNode.querySelector(‘mg’); mg.src = card.mageSrc || DUMMY_PHOTO_URL; cardNode.nsertAdjacentElement(‘afterbegn’, photoNode); фрагмент.добавление(cardNode); }); state.dom.grd.append(фрагмент); state.dom.grd.classLst.remove(‘hde’); }; const ntWdget = async () => { state.dom.wdget = document.querySelector(‘#js-contours-wdget’); f (!state.dom.wdget) return; state.dom.errorMsg = state.dom.wdget.querySelector(‘.js-contours-error’); state.dom.spnner = state.dom.wdget.querySelector(‘.js-contours-loader’); state.dom.grd = state.dom.wdget.querySelector(‘.js-contours-grd’); state.dom.cardTpl = document.querySelector(‘#js-contours-card’); state.dom.photoTpl = document.querySelector(‘#js-contours-photo’); попробуй { state.data.cards = awat fetchCatalogData(1335); state.data.cards = генерироватьCardsData(state.data.cards); рендерКарты(); state.dom.errorMsg.remove(); } поймать (ошибка) { console.log(error.message); state.dom.errorMsg.classLst.remove(‘hde’); } наконец { state.dom.spnner.remove(); } }; нтВджет(); })();})()































Свежие комментарии