Pular para o conteúdo principal

kaleidr.js — o loader

Uma única tag script instala window.Kaleidr e define o elemento <kaleidr-map>:

<script src="https://cdn.kaleidr.com/embed/v1/kaleidr.js"></script>

A façade é um loader leve. Ela gerencia apenas: versão, configuração, carregamento de scripts, registro de produtos, passagem de chaves, seleção da forma de integração, ciclo de vida da montagem, normalização de erros e flag de dormancy. O comportamento real de cada produto fica em seu próprio bundle, carregado sob demanda por URL no primeiro uso.

Kaleidr.mount(target, options) → KaleidrHandle

const handle = Kaleidr.mount('#chat', {
product: 'chat',
publishableKey: 'kld_pk_live_…',
map: myMap,
});

Retorna um handle de forma síncrona enquanto o bundle do produto carrega em segundo plano; chamadas feitas antes do carregamento entram em fila e são executadas quando estiver pronto.

Opções

OpçãoTipoObservações
product'chat' | 'viewer' | 'editor' | 'tile'Obrigatório. Seleciona o bundle + a forma de integração padrão.
publishableKeystringChave de navegador publishable (kld_pk_live_…). Obrigatória para chat/editor/tile; viewer não deve receber uma chave e rejeita com product_not_allowed se uma for passada. O SDK troca a chave por uma sessão de curta duração vinculada à origem em tempo de execução.
apiKeystringAlias obsoleto de publishableKey. Também aceita uma chave legada kld_live_….
shareId / mapIdstringApenas Viewer. Obrigatório — omiti-lo causa erro no carregamento do bundle.
styleIdstringTile/editor. Tile: um ID de estilo de mapa-base Kaleidr (padrão: canvas padrão do viewer). Editor: um ID de estilo ou URL completa de estilo — se omitido, aplica-se o padrão salvo da organização e depois kaleidr-morning.
mapmap instanceChat: seu mapa Mapbox / MapLibre / Google ativo na página ao qual será anexado.
mapTargetstringChat: seletor CSS de um elemento de mapa host (caminho declarativo).
containedbooleanApenas Chat. Padrão false. Fixa o painel dentro do elemento de montagem em vez de deixá-lo flutuar em document.body — sem isso, o painel sai do layout e parece quebrado.
center zoomCâmera inicial (viewer, editor, tile).
pitch bearingCâmera inicial em viewer, editor e tile.
themeobject or JSON object stringConjunto de tokens CSS (ex.: { '--kd-accent': '#2da84a' }). Chat também aceita atualização em tempo real pelo handle. Temas nomeados como string não são suportados; passar uma string simples gera um aviso e é ignorado.
doorway'iframe' | 'attach'Opção de escape — substitui o padrão do produto.
basestringSubstitui a origem CDN da qual os bundles são carregados (dev / self-host).
viewerBasestringViewer/tile: a origem carregada pelo iframe. Diferente de base — o iframe nunca aponta para o CDN.
tileBasestringEditor: o CDN de tiles usado para resolver valores styleId do catálogo. Padrão https://tile.kaleidr.com.
apiBasestringDeve incluir o caminho do serviço. Padrão https://api.kaleidr.com/inference-api; uma origem simples como https://api.kaleidr.com retorna 404 na troca de sessão. Aplica-se a chat, editor e tile — qualquer produto que execute uma troca de sessão.
enabledbooleanSubstituição de dormancy por montagem.

KaleidrHandle

O formato do handle é um superset — cada produto implementa apenas os métodos que consegue suportar. Consulte Handle matrix para saber qual método faz o quê em cada produto.

interface KaleidrHandle {
product: 'chat' | 'viewer' | 'editor' | 'tile';
// Always present.
destroy(): void;
// Viewer, editor, tile: real. Chat: NO-OP (chat does not drive the map).
setCamera?(camera): void;
// Chat: live update (real). Editor: mount-time only; live update is a
// follow-up SDK release. Viewer/tile: not applicable.
setTheme?(theme): void;
// Tile only. Not exposed on any other product.
setStyle?(styleId: string): void;
}

Atualmente, chamar um método não suportado registra um aviso [kaleidr] e retorna — o loader não lança erro. Esse comportamento faz parte do contrato do alias principal v1.

Kaleidr.init()

Atualiza qualquer <kaleidr-map> já existente no DOM. É chamado automaticamente no carregamento; chame-o depois de inserir elementos dinamicamente.

Kaleidr.enable(on = true)

O SDK está ativo por padrão — você não precisa habilitar nada, e o quickstart funciona como está escrito.

enable() funciona como interruptor de desligamento: passar false impede que mount() carregue qualquer bundle, permitindo colocar incorporações atrás de um banner de consentimento ou desativá-las em uma página sem remover o markup. O mesmo interruptor está disponível como window.__KALEIDR_EMBED_ENABLED__ = false (antes de o script ser executado) ou pelo atributo flag / opção enabled por montagem.

Kaleidr.version

A string de versão do loader.

Substituir a base do CDN

Para desenvolvimento local ou self-hosting, aponte o loader para outra origem:

<script>window.__KALEIDR_EMBED_BASE__ = 'https://cdn-dev.kaleidr.com';</script>