diff --git a/assets/custom/js/interaction-overrides.js b/assets/custom/js/interaction-overrides.js index 857403b..f75baf7 100644 --- a/assets/custom/js/interaction-overrides.js +++ b/assets/custom/js/interaction-overrides.js @@ -12,8 +12,15 @@ const MEDIA_HANDLE_BOUND_FLAG = "__nodedcMediaHandleBound"; const DOCK_LINK_BOUND_FLAG = "__nodedcDockLinkBound"; const ORDERED_SLIDER_BOUND_FLAG = "__nodedcOrderedSliderBound"; + const SCROLL_HEIGHT_SYNC_FLAG = "__nodedcScrollHeightSyncBound"; + const SCROLL_HEIGHT_SYNC_WARMUP_MS = 14000; + const SCROLL_HEIGHT_SYNC_INTERVAL_MS = 90; const IMAGE_EXTENSIONS = new Set(["avif", "gif", "jpeg", "jpg", "png", "svg", "webp"]); const VIDEO_EXTENSIONS = new Set(["m4v", "mov", "mp4", "webm"]); + let lastDocumentScrollHeight = 0; + let scrollHeightSyncFrame = 0; + let scrollHeightSyncShouldForce = false; + let scrollHeightDeferredSync = 0; function isDesktopPointer() { return window.matchMedia?.("(pointer: fine)").matches ?? true; @@ -55,6 +62,99 @@ return Math.min(max, Math.max(min, value)); } + function getDocumentScrollHeight() { + return Math.max(document.documentElement.scrollHeight, document.body?.scrollHeight || 0); + } + + function notifyScrollHeightChange(force = false) { + const nextHeight = getDocumentScrollHeight(); + if (!nextHeight) return; + if (!force && nextHeight === lastDocumentScrollHeight) return; + + lastDocumentScrollHeight = nextHeight; + window.dispatchEvent(new Event("resize")); + + if (scrollHeightDeferredSync) { + window.clearTimeout(scrollHeightDeferredSync); + } + + scrollHeightDeferredSync = window.setTimeout(() => { + scrollHeightDeferredSync = 0; + if (getDocumentScrollHeight() === lastDocumentScrollHeight) { + window.dispatchEvent(new Event("resize")); + } else { + scheduleScrollHeightSync(); + } + }, 320); + } + + function scheduleScrollHeightSync(force = false) { + scrollHeightSyncShouldForce = scrollHeightSyncShouldForce || force; + if (scrollHeightSyncFrame) return; + + scrollHeightSyncFrame = window.requestAnimationFrame(() => { + const shouldForce = scrollHeightSyncShouldForce; + + scrollHeightSyncShouldForce = false; + scrollHeightSyncFrame = 0; + notifyScrollHeightChange(shouldForce); + }); + } + + function bindScrollHeightSync() { + if (document[SCROLL_HEIGHT_SYNC_FLAG]) return; + document[SCROLL_HEIGHT_SYNC_FLAG] = true; + + scheduleScrollHeightSync(true); + + const resizeObserver = + typeof ResizeObserver === "function" + ? new ResizeObserver(() => { + scheduleScrollHeightSync(); + }) + : null; + + resizeObserver?.observe(document.documentElement); + if (document.body) resizeObserver?.observe(document.body); + + const mutationObserver = + typeof MutationObserver === "function" + ? new MutationObserver(() => { + scheduleScrollHeightSync(); + }) + : null; + + mutationObserver?.observe(document.documentElement, { + attributes: true, + childList: true, + subtree: true, + }); + + const interval = window.setInterval(() => { + scheduleScrollHeightSync(); + }, SCROLL_HEIGHT_SYNC_INTERVAL_MS); + + window.setTimeout(() => { + window.clearInterval(interval); + mutationObserver?.disconnect(); + }, SCROLL_HEIGHT_SYNC_WARMUP_MS); + + window.addEventListener("load", () => scheduleScrollHeightSync(true), { once: true }); + if (document.fonts?.ready) { + document.fonts.ready.then(() => scheduleScrollHeightSync(true)).catch(() => {}); + } + + document.addEventListener( + "load", + (event) => { + if (event.target instanceof HTMLImageElement || event.target instanceof HTMLVideoElement) { + scheduleScrollHeightSync(); + } + }, + true, + ); + } + function getScrollSpeed(surface) { const rawValue = surface?.dataset?.scrollSpeed ?? surface?.closest?.("[data-scroll-speed]")?.dataset?.scrollSpeed; const value = Number.parseFloat(rawValue); @@ -358,40 +458,48 @@ document.querySelectorAll("[data-adaptive-video] video").forEach(bindAdaptiveVideo); } + bindScrollHeightSync(); hydrateMediaHandles(); if (document.readyState === "loading") { document.addEventListener( "DOMContentLoaded", () => { + bindScrollHeightSync(); hydrateMediaHandles(); bindInteractiveScroll(); bindOrderedSliders(); bindDockLinks(); bindAdaptiveVideos(); + scheduleScrollHeightSync(true); }, { once: true }, ); } else { + bindScrollHeightSync(); hydrateMediaHandles(); bindInteractiveScroll(); bindOrderedSliders(); bindDockLinks(); bindAdaptiveVideos(); + scheduleScrollHeightSync(true); } window.addEventListener("load", () => { + bindScrollHeightSync(); hydrateMediaHandles(); bindInteractiveScroll(); bindOrderedSliders(); bindDockLinks(); bindAdaptiveVideos(); + scheduleScrollHeightSync(true); window.setTimeout(() => { hydrateMediaHandles(); bindInteractiveScroll(); bindOrderedSliders(); bindDockLinks(); bindAdaptiveVideos(); + scheduleScrollHeightSync(true); }, 500); }); })(); diff --git a/index.html b/index.html index 780c240..35c1cdb 100644 --- a/index.html +++ b/index.html @@ -490,4 +490,4 @@ Enterprise-контуры

Подключить.Собрать контур. Запустить.

Единый путь от доступа к модулю до рабочего контура предприятия. Hub для входа, Engine для сборки, Ops для управления.
Модульный доступ, документация и рабочие пространства. Подключение прикладных модулей и ролей по контурам. Закрытый инвайт для пилотных внедрений.
Запросить инвайт
Тарифы

Платформа NODE.DC для процессов, данных и агентов.

Подписки на приложение с
включённым объёмом в каждом тарифе.
Подключение локальных моделей и личных ассистентов
SELFHOST в контуре предприятий / внутри инфраструктуры NODE.DC / открытый контур при подключении моделей по API
-
публикация-в-один-клик.png
Иконка MOV-файла.
публикация-в-один-клик.png
полноценный-редактор-кода.webp
Иконка MOV-файла.
полноценный-редактор-кода.webp
ИИ-док-режим.jpg
Иконка MOV-файла.
ИИ-док-режим.jpg
глубокая-интеграция-webflow.webp
Иконка MOV-файла.
глубокая-интеграция-webflow.webp
установка-настройка-запуск.jpg
Иконка MOV-файла.
установка-настройка-запуск.jpg
Логотип NODE.DC
Selfhost платформа

Запросить DEMO

NODE.DC - платформа для задач, процессов, данных, агентов и инженерных модулей.

Заявка принята. Спасибо.

Мы скоро свяжемся.

Подать заявку?

Или оформить ранний Founder-доступ

Оформить Founder-доступ 350€
До 200 мест

Не получилось

Что-то пошло не так.
Попробуйте ещё раз чуть позже.

Иконка TXT-файла
Hub Access

Единая точка входа: каталог приложений, рабочие пространства, роли, группы и права доступа.

Иконка TXT-файла
Engine Workflows

Нодовые workflow, обработчики данных, интеграционная логика и сборка прикладных контуров.

Иконка TXT-файла
Ops Cards

Операционные карточки, статусы, согласования, отчеты агентов и результаты выполнения задач.

Иконка TXT-файла
1C Assistant

Связка с 1C, разбор документов, поиск данных, сценарии согласований и передача результата в Ops.

Иконка TXT-файла
Tender Agent

Тендерные подборки, проверка требований, документы, дедлайны и агентные отчеты по процедурам.

Иконка TXT-файла
Digital Twin

Цифровые модели объектов, версии, проектный контекст, инженерные данные и связанные рабочие процессы.

Иконка TXT-файла
Model Viewer

Просмотр BIM, STEP, STL, 3DGS, облаков точек и инженерных материалов внутри единого контура.

Иконка TXT-файла
Engineering Core

Обработка технических форматов, связка моделей с задачами, версиями, отчетами и согласованиями.

Иконка TXT-файла
MCP Gateway

Контекстный шлюз для агентов: проектные данные, инструменты, кодовая база и внешние сервисы.

Иконка TXT-файла
API Contracts

Контракты API, схемы данных, webhooks, события, интеграции и контроль совместимости между модулями.

Иконка TXT-файла
Kubernetes

Оркестрация сервисов, изоляция окружений, scaling policies, probes, secrets и управляемый rollout.

Иконка TXT-файла
Cloudflare Edge

CDN, WAF, R2-хранилище, edge routing, cache policies и защита публичного периметра.

Иконка TXT-файла
Zero Trust

Доступ по принципу least privilege: SSO, MFA, device posture, audit trail и сегментация контуров.

Иконка TXT-файла
Security Matrix

Ролевая матрица, группы, политики доступа, ограничения функций и контроль административных действий.

Иконка TXT-файла
RBAC Policies

Права на приложения, рабочие области, действия агентов, документы, отчеты и инженерные данные.

Иконка TXT-файла
Audit Log

Журнал действий пользователей, агентов и сервисов: изменения, статусы, запросы, публикации и доступы.

Иконка TXT-файла
Secrets Vault

Хранение токенов, ключей API, webhook-секретов и конфигураций интеграций в защищенном контуре.

Иконка TXT-файла
Postgres Cluster

Основная транзакционная база для проектов, ролей, задач, статусов, событий и конфигураций платформы.

Иконка TXT-файла
Redis Queue

Очереди фоновых задач, статусы выполнения, debounce событий, кэширование и быстрые агентные операции.

Иконка TXT-файла
Vector Index

Индексация проектных материалов, документации, отчетов и контекста для ассистента и поиска.

Иконка TXT-файла
Local Models

Контур локальных моделей для приватных сценариев, инженерных данных и корпоративных ограничений.

Иконка TXT-файла
Model Routing

Маршрутизация задач между облачными и локальными моделями по типу запроса, правам и стоимости.

Иконка TXT-файла
Agent Runtime

Запуск ассистентов, выполнение действий, контроль инструментов, журналирование и передача результата в Ops.

Иконка TXT-файла
Observability

Метрики, логи, трассировка, health checks, алерты и диагностика сервисов платформы.

Иконка TXT-файла
Backups

Резервные копии данных, конфигураций, файлов, моделей, журналов и сценариев восстановления.

Иконка TXT-файла
CI CD

Сборка, проверки, preview-окружения, controlled rollout, rollback и публикация клиентских модулей.

Иконка TXT-файла
Terraform

Описание инфраструктуры кодом: окружения, сети, хранилища, политики, сервисы и переменные.

Иконка TXT-файла
Object Storage

Хранилище файлов, изображений, моделей, отчетов, txt-материалов и артефактов рабочих процессов.

Иконка TXT-файла
BIM Pipeline

Загрузка BIM-моделей, версии, разметка, связи с задачами и публикация в рабочие пространства.

Иконка TXT-файла
STEP Import

Импорт STEP-моделей, технические материалы, карточки проверки и привязка к инженерным задачам.

Иконка TXT-файла
STL Review

Проверка STL-геометрии, заметки, версии, визуальный контроль и подготовка производственных материалов.

Иконка TXT-файла
3DGS Assets

Gaussian Splatting сцены, визуальные реконструкции объектов и связь с проектным контекстом.

Иконка TXT-файла
LAS LAZ Clouds

Облака точек, съемка, координатные данные, версии и инженерная привязка к задачам.

Иконка TXT-файла
Webhooks

Событийные сценарии: входящие запросы, уведомления, автоматические действия и передача статусов.

Иконка TXT-файла
Docs Portal

Документация, регламенты, инструкции, технические заметки и материалы для команд внедрения.

Иконка TXT-файла
Stack Map

Карта платформенного стека: Hub, Engine, Ops, агенты, данные, интеграции, безопасность и инфраструктура.

Иконка TXT-файла
Hub Access
.txt
Иконка TXT-файла
Engine Workflows
.txt
Иконка TXT-файла
Ops Cards
.txt
Иконка TXT-файла
1C Assistant
.txt
Иконка TXT-файла
Tender Agent
.txt
Иконка TXT-файла
Digital Twin
.txt
Иконка TXT-файла
Model Viewer
.txt
Иконка TXT-файла
Engineering Core
.txt
Иконка TXT-файла
MCP Gateway
.txt
Иконка TXT-файла
API Contracts
.txt
Иконка TXT-файла
Kubernetes
.txt
Иконка TXT-файла
Cloudflare Edge
.txt
Иконка TXT-файла
Zero Trust
.txt
Иконка TXT-файла
Security Matrix
.txt
Иконка TXT-файла
RBAC Policies
.txt
Иконка TXT-файла
Audit Log
.txt
Иконка TXT-файла
Secrets Vault
.txt
Иконка TXT-файла
Postgres Cluster
.txt
Иконка TXT-файла
Redis Queue
.txt
Иконка TXT-файла
Vector Index
.txt
Иконка TXT-файла
Local Models
.txt
Иконка TXT-файла
Model Routing
.txt
Иконка TXT-файла
Agent Runtime
.txt
Иконка TXT-файла
Observability
.txt
Иконка TXT-файла
Backups
.txt
Иконка TXT-файла
CI CD
.txt
Иконка TXT-файла
Terraform
.txt
Иконка TXT-файла
Object Storage
.txt
Иконка TXT-файла
BIM Pipeline
.txt
Иконка TXT-файла
STEP Import
.txt
Иконка TXT-файла
STL Review
.txt
Иконка TXT-файла
3DGS Assets
.txt
Иконка TXT-файла
LAS LAZ Clouds
.txt
Иконка TXT-файла
Webhooks
.txt
Иконка TXT-файла
Docs Portal
.txt
Иконка TXT-файла
Stack Map
.txt
Иконка MOV-файла.
демо-видео.txt
ДАЛЕЕ — ИЮЛЬ 2026
Открытая бета
Открываем доступ всем. Будем собирать и отлаживать вместе.
ДАЛЕЕ ИЮЛЬ 2026
Альфа для Founder-доступа
На второй фазе тестирования бета открыта для всех подписчиков Founder-тарифа.
СЕЙЧАС
Инвайты в закрытую бету уже отправлены.
Сейчас тестируем базовую функциональность и ИИ-интеграцию.
Белая иконка корзины.
Сб, 10 июня
09:41
+
публикация-в-один-клик.png
Иконка MOV-файла.
публикация-в-один-клик.png
полноценный-редактор-кода.webp
Иконка MOV-файла.
полноценный-редактор-кода.webp
ИИ-док-режим.jpg
Иконка MOV-файла.
ИИ-док-режим.jpg
глубокая-интеграция-webflow.webp
Иконка MOV-файла.
глубокая-интеграция-webflow.webp
установка-настройка-запуск.jpg
Иконка MOV-файла.
установка-настройка-запуск.jpg
Логотип NODE.DC
Selfhost платформа

Запросить DEMO

NODE.DC - платформа для задач, процессов, данных, агентов и инженерных модулей.

Заявка принята. Спасибо.

Мы скоро свяжемся.

Подать заявку?

Или оформить ранний Founder-доступ

Оформить Founder-доступ 350€
До 200 мест

Не получилось

Что-то пошло не так.
Попробуйте ещё раз чуть позже.

Иконка TXT-файла
Hub Access

Единая точка входа: каталог приложений, рабочие пространства, роли, группы и права доступа.

Иконка TXT-файла
Engine Workflows

Нодовые workflow, обработчики данных, интеграционная логика и сборка прикладных контуров.

Иконка TXT-файла
Ops Cards

Операционные карточки, статусы, согласования, отчеты агентов и результаты выполнения задач.

Иконка TXT-файла
1C Assistant

Связка с 1C, разбор документов, поиск данных, сценарии согласований и передача результата в Ops.

Иконка TXT-файла
Tender Agent

Тендерные подборки, проверка требований, документы, дедлайны и агентные отчеты по процедурам.

Иконка TXT-файла
Digital Twin

Цифровые модели объектов, версии, проектный контекст, инженерные данные и связанные рабочие процессы.

Иконка TXT-файла
Model Viewer

Просмотр BIM, STEP, STL, 3DGS, облаков точек и инженерных материалов внутри единого контура.

Иконка TXT-файла
Engineering Core

Обработка технических форматов, связка моделей с задачами, версиями, отчетами и согласованиями.

Иконка TXT-файла
MCP Gateway

Контекстный шлюз для агентов: проектные данные, инструменты, кодовая база и внешние сервисы.

Иконка TXT-файла
API Contracts

Контракты API, схемы данных, webhooks, события, интеграции и контроль совместимости между модулями.

Иконка TXT-файла
Kubernetes

Оркестрация сервисов, изоляция окружений, scaling policies, probes, secrets и управляемый rollout.

Иконка TXT-файла
Cloudflare Edge

CDN, WAF, R2-хранилище, edge routing, cache policies и защита публичного периметра.

Иконка TXT-файла
Zero Trust

Доступ по принципу least privilege: SSO, MFA, device posture, audit trail и сегментация контуров.

Иконка TXT-файла
Security Matrix

Ролевая матрица, группы, политики доступа, ограничения функций и контроль административных действий.

Иконка TXT-файла
RBAC Policies

Права на приложения, рабочие области, действия агентов, документы, отчеты и инженерные данные.

Иконка TXT-файла
Audit Log

Журнал действий пользователей, агентов и сервисов: изменения, статусы, запросы, публикации и доступы.

Иконка TXT-файла
Secrets Vault

Хранение токенов, ключей API, webhook-секретов и конфигураций интеграций в защищенном контуре.

Иконка TXT-файла
Postgres Cluster

Основная транзакционная база для проектов, ролей, задач, статусов, событий и конфигураций платформы.

Иконка TXT-файла
Redis Queue

Очереди фоновых задач, статусы выполнения, debounce событий, кэширование и быстрые агентные операции.

Иконка TXT-файла
Vector Index

Индексация проектных материалов, документации, отчетов и контекста для ассистента и поиска.

Иконка TXT-файла
Local Models

Контур локальных моделей для приватных сценариев, инженерных данных и корпоративных ограничений.

Иконка TXT-файла
Model Routing

Маршрутизация задач между облачными и локальными моделями по типу запроса, правам и стоимости.

Иконка TXT-файла
Agent Runtime

Запуск ассистентов, выполнение действий, контроль инструментов, журналирование и передача результата в Ops.

Иконка TXT-файла
Observability

Метрики, логи, трассировка, health checks, алерты и диагностика сервисов платформы.

Иконка TXT-файла
Backups

Резервные копии данных, конфигураций, файлов, моделей, журналов и сценариев восстановления.

Иконка TXT-файла
CI CD

Сборка, проверки, preview-окружения, controlled rollout, rollback и публикация клиентских модулей.

Иконка TXT-файла
Terraform

Описание инфраструктуры кодом: окружения, сети, хранилища, политики, сервисы и переменные.

Иконка TXT-файла
Object Storage

Хранилище файлов, изображений, моделей, отчетов, txt-материалов и артефактов рабочих процессов.

Иконка TXT-файла
BIM Pipeline

Загрузка BIM-моделей, версии, разметка, связи с задачами и публикация в рабочие пространства.

Иконка TXT-файла
STEP Import

Импорт STEP-моделей, технические материалы, карточки проверки и привязка к инженерным задачам.

Иконка TXT-файла
STL Review

Проверка STL-геометрии, заметки, версии, визуальный контроль и подготовка производственных материалов.

Иконка TXT-файла
3DGS Assets

Gaussian Splatting сцены, визуальные реконструкции объектов и связь с проектным контекстом.

Иконка TXT-файла
LAS LAZ Clouds

Облака точек, съемка, координатные данные, версии и инженерная привязка к задачам.

Иконка TXT-файла
Webhooks

Событийные сценарии: входящие запросы, уведомления, автоматические действия и передача статусов.

Иконка TXT-файла
Docs Portal

Документация, регламенты, инструкции, технические заметки и материалы для команд внедрения.

Иконка TXT-файла
Stack Map

Карта платформенного стека: Hub, Engine, Ops, агенты, данные, интеграции, безопасность и инфраструктура.

Иконка TXT-файла
Hub Access
.txt
Иконка TXT-файла
Engine Workflows
.txt
Иконка TXT-файла
Ops Cards
.txt
Иконка TXT-файла
1C Assistant
.txt
Иконка TXT-файла
Tender Agent
.txt
Иконка TXT-файла
Digital Twin
.txt
Иконка TXT-файла
Model Viewer
.txt
Иконка TXT-файла
Engineering Core
.txt
Иконка TXT-файла
MCP Gateway
.txt
Иконка TXT-файла
API Contracts
.txt
Иконка TXT-файла
Kubernetes
.txt
Иконка TXT-файла
Cloudflare Edge
.txt
Иконка TXT-файла
Zero Trust
.txt
Иконка TXT-файла
Security Matrix
.txt
Иконка TXT-файла
RBAC Policies
.txt
Иконка TXT-файла
Audit Log
.txt
Иконка TXT-файла
Secrets Vault
.txt
Иконка TXT-файла
Postgres Cluster
.txt
Иконка TXT-файла
Redis Queue
.txt
Иконка TXT-файла
Vector Index
.txt
Иконка TXT-файла
Local Models
.txt
Иконка TXT-файла
Model Routing
.txt
Иконка TXT-файла
Agent Runtime
.txt
Иконка TXT-файла
Observability
.txt
Иконка TXT-файла
Backups
.txt
Иконка TXT-файла
CI CD
.txt
Иконка TXT-файла
Terraform
.txt
Иконка TXT-файла
Object Storage
.txt
Иконка TXT-файла
BIM Pipeline
.txt
Иконка TXT-файла
STEP Import
.txt
Иконка TXT-файла
STL Review
.txt
Иконка TXT-файла
3DGS Assets
.txt
Иконка TXT-файла
LAS LAZ Clouds
.txt
Иконка TXT-файла
Webhooks
.txt
Иконка TXT-файла
Docs Portal
.txt
Иконка TXT-файла
Stack Map
.txt
Иконка MOV-файла.
демо-видео.txt
ДАЛЕЕ — ИЮЛЬ 2026
Открытая бета
Открываем доступ всем. Будем собирать и отлаживать вместе.
ДАЛЕЕ ИЮЛЬ 2026
Альфа для Founder-доступа
На второй фазе тестирования бета открыта для всех подписчиков Founder-тарифа.
СЕЙЧАС
Инвайты в закрытую бету уже отправлены.
Сейчас тестируем базовую функциональность и ИИ-интеграцию.
Белая иконка корзины.
Сб, 10 июня
09:41
diff --git a/templates/pages/home/shell.html b/templates/pages/home/shell.html index 9acde92..cf34bb2 100644 --- a/templates/pages/home/shell.html +++ b/templates/pages/home/shell.html @@ -122,4 +122,4 @@ window.__API_ORIGIN__="https://ssscript-website.vercel.app"; [debug] { visibility: hidden; } -
{{NODEDC_BLOCKS_SECTIONS}}
{{#each staticElements.content.notifications}}
{{html:eyebrowHtml}}
{{text:title}}
{{text:body}}
{{/each}}
{{#each staticElements.content.dock.items}}{{#if enabled}}{{#if dividerBefore}}
{{/if}}{{attr:iconAlt}}{{/if}}{{/each}}
{{text:staticElements.content.navigation.brandLabel}}
{{#each staticElements.content.navigation.links}}{{/each}}
Сб, 10 июня
09:41
+
{{NODEDC_BLOCKS_SECTIONS}}
{{#each staticElements.content.notifications}}
{{html:eyebrowHtml}}
{{text:title}}
{{text:body}}
{{/each}}
{{#each staticElements.content.dock.items}}{{#if enabled}}{{#if dividerBefore}}
{{/if}}{{attr:iconAlt}}{{/if}}{{/each}}
{{text:staticElements.content.navigation.brandLabel}}
{{#each staticElements.content.navigation.links}}{{/each}}
Сб, 10 июня
09:41