<kaleidr-map> — el elemento
La fachada declarativa. Inserta el elemento y establece los atributos; se monta al conectarse y se desmonta al eliminarse.
<kaleidr-map product="viewer" share-id="abcd1234" style="height:480px"></kaleidr-map>
Tabla de atributos
Verificado con kaleidr-sdk/packages/embed/src/element.ts. Los nombres de atributos
utilizan kebab-case; los nombres de opciones correspondientes de Kaleidr.mount(...) en
kaleidr.js utilizan camelCase.
| Atributo | Productos | Obligatorio | Predeterminado | Significado |
|---|---|---|---|---|
product | todos | sí | — | chat | viewer | editor | tile |
publishable-key | chat, editor, tile | sí* | — | kld_pk_live_…; se intercambia por un token de sesión en tiempo de ejecución |
api-key | chat, editor, tile | — | — | Alias obsoleto; también acepta kld_live_… heredado |
share-id | viewer | sí | — | Mapa publicado / share id; omitirlo provoca un error al cargar el paquete |
map-id | viewer | — | — | Alias de share-id |
style-id | tile, editor | opcional | tile: predeterminado de viewer; editor: predeterminado de la org → kaleidr-morning | ID de estilo de mapa base o (editor) una URL completa de estilo |
map-target | chat | opcional | — | Selector CSS para el elemento de mapa host |
contained | chat | opcional | false | Acopla el panel dentro del elemento de montaje en lugar de dejarlo flotando en document.body |
center | viewer, tile, editor | opcional | — | lon,lat |
zoom | viewer, tile, editor | opcional | editor: 2 | Zoom inicial |
pitch | viewer, tile, editor | opcional | 0 | Inclinación inicial |
bearing | viewer, tile, editor | opcional | 0 | Orientación inicial |
theme | chat, editor | opcional | — | Cadena de objeto JSON de tokens CSS |
doorway | todos | opcional | predeterminado del producto | Sustitución iframe | attach |
base | todos | opcional | https://cdn.kaleidr.com | Origen CDN para paquetes cargados de forma diferida (/embed/v1/*.js) |
viewer-base | viewer, tile | opcional | https://map-embed.kaleidr.com | Origen que carga el iframe — distinto del CDN del paquete |
api-base | chat, editor, tile | opcional | https://api.kaleidr.com/inference-api | Debe incluir /inference-api. Un origen simple como https://api.kaleidr.com devuelve 404 durante el intercambio de sesión. Se aplica a cualquier producto que realice un intercambio de sesión (chat, editor, tile). |
tile-base | editor | opcional | https://tile.kaleidr.com | CDN de tiles utilizado para resolver valores style-id del catálogo |
flag | todos | opcional | — | Sustitución de dormancy por elemento |
* Obligatorio para uso autorizado/facturado. Viewer no necesita clave; pasar una clave a una
integración Viewer se rechaza con product_not_allowed.
Asigna una altura al elemento (style en línea o CSS). Cada producto ocupa todo su
contenedor; un producto iframe dentro de un contenedor sin dimensiones utiliza como alternativa
una altura fija de 500px para mantenerse visible.
Handle matrix
Comportamiento tal como se distribuye en /embed/v1/. Las combinaciones no admitidas no lanzan errores —
el SDK registra una advertencia [kaleidr] y vuelve. Esto forma parte del contrato del alias principal v1;
eliminar métodos invocables supondría un cambio incompatible de comportamiento.
| Método | chat | viewer | editor | tile |
|---|---|---|---|---|
destroy() | sí | sí | sí | sí |
setCamera(camera) | no-op | sí | sí | sí |
setTheme(theme) | sí (en vivo) | n/a | solo al montar | n/a |
setStyle(styleId) | n/a | n/a | n/a | disponible solo en tile |
Chat no controla la cámara del mapa — utiliza la API de cámara de tu propia instancia
después de Kaleidr.mount(...). La actualización en vivo de setTheme en Editor llegará en una versión posterior del SDK;
theme al montar ya funciona.
Actualizaciones en vivo
center, zoom, pitch y bearing se observan y vuelven a encuadrar viewer,
editor y tile sin volver a montar. Los cambios de theme actualizan chat en vivo;
el tema de editor sigue limitado al momento del montaje.
Chat + map-target
Chat se adjunta a tu mapa activo, algo que un atributo string no puede transportar. Hay dos formas de proporcionarlo:
- Imperativa (recomendada):
Kaleidr.mount(el, { product: 'chat', publishableKey, map, contained: true }). - Declarativa: guarda tu instancia del mapa en el elemento host como
hostEl.__kaleidrMap__ = mapy después usamap-target="#host".
Sin mapa, chat funciona en modo headless (sin interacciones con el mapa).