PageSourceSearch

https://steppo.ru/assets/supportChat-CMxNGLF3.js

js steppo.ru collected 2026-10-08 22:37:21 UTC 11,419 bytes, 1 lines download raw bytes

1const t="https://support.steppo.ru",o="chatwoot-sdk",n=2e3,e=4e3,a="chatwoot-widget-style",i="steppo-standalone",d="steppo-chat-off",p="steppo-chat-no-launcher",s="steppo-chat-lifted";function w(){var t;return!0===(null==(t=window.matchMedia)?void 0:t.call(window,"(max-width: 767px)").matches)}function r(){var t,o;return(null==(t=window.matchMedia)?void 0:t.call(window,"(display-mode: standalone)").matches)||(null==(o=window.matchMedia)?void 0:o.call(window,"(display-mode: fullscreen)").matches)||!0===window.navigator.standalone}function h(){var t;document.body.classList.add(d);try{null==(t=window.$chatwoot)||t.toggle("close")}catch{}}function c(){document.body.classList.remove(d)}function l(){if(document.getElementById(o)||window.$chatwoot)return;window.chatwootSettings={locale:"ru",darkMode:"auto",type:"expanded_bubble",launcherTitle:"Есть вопрос? Задайте его тут",...window.chatwootSettings},function(){if(document.getElementById(a))return;const t=document.createElement("style");t.id=a,t.textContent="\n  :root {\n    --steppo-chat-offset-right: 20px;\n    /* Под высоту плашки Chatwoot (48px), чтобы кнопки были одного роста. */\n    --steppo-chat-close-size: 48px;\n    --steppo-chat-close-icon: 18px;\n    /* Отступ окна от низа: кнопка (48) + её собственный отступ (24) + зазор (16).\n       У Chatwoot тут 104px под кнопку в 64 — с нашей меньшей окно висело выше. */\n    --steppo-chat-window-bottom: 88px;\n    --steppo-chat-window-width: 400px;\n    --steppo-chat-window-height: 620px;\n  }\n\n  /* Chatwoot ставит себе z-index 2147483000 и перекрывает всё, включая дравер\n     обновлений userStream (999961) и его опросы (999999). Опускаем ниже них, но\n     заметно выше нашего интерфейса: куки-баннер 9999, модалки Chakra ~1400. */\n  /* Chatwoot ставит себе 2147483000 и перекрывает вообще всё. Ставим виджет ниже\n     интерфейса приложения — он вспомогательный и не должен прятать ни уведомления,\n     ни панели документа:\n       1700  тосты Chakra\n       1400  модальные окна\n       1299  боковая панель воркспейса и панель агента\n       1200  правые слайдауты редактора (EDITOR_SLIDEOUT_Z_INDEX)\n       1150  ← виджет поддержки\n       1100  док документа и шапка лендинга (виджет над ними — так и было)\n       999961 дравер обновлений userStream (он и так выше)\n     Селектор с body намеренно: у Chatwoot то же правило с !important, а его таблица\n     подключается позже нашей — при равной специфичности выигрывала бы она. */\n  body .woot-widget-holder,\n  body .woot-widget-bubble,\n  body .woot--bubble-holder {\n    z-index: 1150 !important;\n  }\n\n  /* Тень на :hover Chatwoot объявляет через !important, но box-shadow нет в списке\n     переходов — она появляется рывком. Дописываем список без !important: правила\n     показа и скрытия кнопки (.woot--hide) специфичнее и свою анимацию сохраняют. */\n  body .woot-widget-bubble,\n  body .woot-widget-bubble.woot--close,\n  body .woot-widget-bubble.woot-widget--expanded {\n    transition: transform 300ms, opacity 100ms, visibility linear, bottom 200ms,\n      box-shadow 250ms ease;\n  }\n\n  /* Крестик закрытия — отдельный элемент, у Chatwoot он 64x64 и рядом с плашкой\n     в 48 выглядит несоразмерно. Иконка внутри нарисована псевдоэлементами, поэтому\n     её размер и центровку задаём вручную. Настройки для этого в панели нет. */\n  .woot-widget-bubble.woot--close {\n    width: var(--steppo-chat-close-size) !important;\n    height: var(--steppo-chat-close-size) !important;\n  }\n\n  .woot-widget-bubble.woot--close::before,\n  .woot-widget-bubble.woot--close::after {\n    height: var(--steppo-chat-close-icon) !important;\n    top: calc((var(--steppo-chat-close-size) - var(--steppo-chat-close-icon)) / 2) !important;\n    left: calc(var(--steppo-chat-close-size) / 2) !important;\n  }\n\n  /* :not(.has-unread-view) — в этом состоянии контейнер держит всплывашку кампании\n     или непрочитанного сообщения и сжимается по её высоте. Навязанный размер оÐ
1ºÐ½Ð°\n     растягивал прозрачный блок на всю высоту, и подсказка уезжала вверх от кнопки. */\n  .woot-widget-holder:not(.has-unread-view) {\n    bottom: var(--steppo-chat-window-bottom) !important;\n    width: min(var(--steppo-chat-window-width), calc(100vw - 2 * var(--steppo-chat-offset-right))) !important;\n    /* dvh, а не vh: в мобильных браузерах панель адреса съедает часть 100vh,\n       и низ окна чата с полем ввода уезжает за экран. */\n    height: min(var(--steppo-chat-window-height), calc(100dvh - 120px)) !important;\n  }\n\n  /* Телефон — и установленное приложение, и обычный браузер. Окно чата\n     раскрываем на весь экран: на узком экране карточка в углу всё равно\n     занимает почти весь вид, но с обрезанным полем ввода и лишними полями.\n     Десктопный PWA сюда не попадает — там раскладка устраивает как есть. */\n  @media (max-width: 767px) {\n    /* Внутри приложения плавающей кнопки нет вовсе — ни в установленном PWA, ни\n       в мобильном браузере: чат открывается пунктом «Поддержка» в меню профиля,\n       а кнопка перекрывала интерфейс. */\n    body.steppo-standalone .woot-widget-bubble,\n    body.steppo-standalone .woot--bubble-holder,\n    body.steppo-chat-no-launcher .woot-widget-bubble,\n    body.steppo-chat-no-launcher .woot--bubble-holder {\n      display: none !important;\n    }\n\n    /* Кнопка на лендинге — простая круглая иконка: подпись «Есть вопрос?…»\n       занимает половину ширины экрана и спорит с содержимым страницы.\n       Скрыть её можно только здесь: в панели Chatwoot тип кнопки задаётся\n       один на все устройства. */\n    body .woot-widget-bubble.woot-widget--expanded {\n      width: var(--steppo-chat-close-size) !important;\n      justify-content: center !important;\n    }\n\n    body .woot-widget-bubble.woot-widget--expanded svg {\n      margin: 0 !important;\n    }\n\n    body #woot-widget--expanded__text {\n      display: none !important;\n    }\n\n    /* Экран входа: внизу закреплены ссылки на политику и оферту, кнопка вставала\n       ровно поверх «Оферты». Поднимаем её над этой полосой. */\n    body.steppo-chat-lifted .woot-widget-bubble {\n      bottom: 64px !important;\n    }\n\n    /* Открытое окно занимает весь экран, поэтому кнопка под ним не нужна:\n       закрывают чат крестиком в его собственной шапке. Соседний селектор —\n       единственный способ дотянуться до кнопки: holder идёт в body раньше. */\n    body .woot-widget-holder:not(.woot--hide):not(.has-unread-view) ~ .woot--bubble-holder {\n      display: none !important;\n    }\n\n    body .woot-widget-holder:not(.has-unread-view) {\n      width: 100vw !important;\n      /* --keyboard-inset ведёт useAppViewportHeight по visualViewport: окно чата\n         сжимается над клавиатурой, иначе поле ввода остаётся под ней. Прокрутить\n         его изнутри нельзя — содержимое чата в чужом iframe. */\n      height: calc(100dvh - env(safe-area-inset-top, 0px) - var(--keyboard-inset, 0px)) !important;\n      max-height: none !important;\n      top: env(safe-area-inset-top, 0px) !important;\n      bottom: 0 !important;\n      right: 0 !important;\n      left: 0 !important;\n      border-radius: 0 !important;\n      /* Пока клавиатура открыта, домашней полосы под окном нет — запас не нужен. */\n      padding-bottom: max(0px, calc(env(safe-area-inset-bottom, 0px) - var(--keyboard-inset, 0px))) !important;\n      box-sizing: border-box !important;\n      transition: height 0.15s ease-out !important;\n    }\n  }\n\n  /* Уход с лендинга на телефоне: виджет остаётся в общем SPA, поэтому окно во\n     весь экран и кнопка переезжали на следующую страницу. Класс ставит\n     SupportChatWidget, снимает — пункт «Поддержка». */\n  body.steppo-chat-off .woot-widget-holder,\n  body.steppo-chat-off .woot-widget-bubble,\n  body.steppo-chat-off .woot--bubble-holder {\n    display: none !important;\n  }\n\n  /* Пока висит куки-баннер, кнопку не показываем вовсе: сдвигать её вверх значит\n     держать на лендинге положение, отличное от воркспейса. Баннер закрыли —\n     кнопка появл
1яется на своём обычном месте, ровно как в mainscreen. */\n  body.steppo-cookie-visible .woot-widget-bubble,\n  body.steppo-cookie-visible .woot--bubble-holder {\n    display: none !important;\n  }\n\n  @media (max-width: 767px) {\n    :root {\n      --steppo-chat-offset-right: 12px;\n    }\n  }\n",document.head.appendChild(t)}();const n=document.createElement("script");n.id=o,n.src=`${t}/packs/js/sdk.js`,n.defer=!0,n.async=!0,n.onload=()=>{var o;null==(o=window.chatwootSDK)||o.run({websiteToken:"V6nSzbKKo1kjbpy2QSciY3UP",baseUrl:t})},document.body.appendChild(n)}function b(){return c(),window.$chatwoot?(window.$chatwoot.toggle("open"),!0):(l(),window.addEventListener("chatwoot:ready",()=>{var t;return null==(t=window.$chatwoot)?void 0:t.toggle("open")},{once:!0}),!0)}export{n as A,s as L,p as N,i as S,e as a,l as b,r as c,h,w as i,b as o,c as r};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.