Ну можно ручками, там все элементы массива, это названия функции или переменных, но это муторно. Скорее всего есть крипторы такого рода, соответственно и есть декрипторы.
По такой схеме зашифровался соцеффект
Ну кароч рисуешь в свг страны. Страну закрываешь в тег g и добавляешь туда что-то вроде data-country-id="номер страны". Отрабатываешь клик по g и подгружаешь информацию, можно даже без серверной части это сделать.
Напиши функцию, для скрола вниз при новом сообщении. И при новом сообщении выполняй ее. Плюс сделай проверку, если пользователь прокрутил очень много от конца чата, чтобы не запускать этот самый скролл вниз.
Я конечно не пробовал, но это по идее должно быть заблокировано, как емуляция клика для открытия нового окна.
А так сохраняйте переменную в local storage и просто при загрузке проверяйте переменную, если удовлетворяет запускаете функцию.
Можно возвращать айди нового элемента и сконфигурировать урл, потом
window.location.redirect = URL;
P.s.
Если будете возвращать, то лучше json, ибо можно еще организовать какие нибудь нотификации.
Возьмите апи популярного сервиса. Желательно чтоб без авторизации что-то выдавал. Twitch например.
И можете сделать вывод данных по апи. С раутами и прочими плюшками. Умение в ангуряр сразу вверх пойдет.
Ставите node.js, устанавливаете пакет https://www.npmjs.com/package/local-web-server . Через cmd заходите в свою папку с проектом, и пишите ws. И заходите на свой сайт через localhost.
Перед тем как открыть, считываешь все координаты ( высота/ширина диалога, положение от верха / слева страницы, высота страницы и и.п), сравниваешь, добавляешь классы и уже потом открываешь диалог.