إنتقل إلى المحتوى الرئيسي

<kaleidr-map> — العنصر

الواجهة التعريفية. ضع العنصر وحدد السمات؛ ويتم تركيبه عند الاتصال وإزالته عند الحذف.

<kaleidr-map product="viewer" share-id="abcd1234" style="height:480px"></kaleidr-map>

جدول السمات

تم التحقق مقابل kaleidr-sdk/packages/embed/src/element.ts. أسماء السمات بصيغة kebab-case؛ وأسماء خيارات Kaleidr.mount(...) المطابقة في kaleidr.js بصيغة camelCase.

السمةالمنتجاتمطلوبةالافتراضيالمعنى
productالكلنعمchat | viewer | editor | tile
publishable-keychat, editor, tileنعم*kld_pk_live_…؛ يتم تبادله برمز جلسة وقت التشغيل
api-keychat, editor, tileاسم بديل مهمل؛ يقبل أيضًا kld_live_… القديم
share-idviewerنعممعرّف الخريطة المنشورة / المشاركة؛ حذفه يؤدي إلى خطأ عند تحميل الحزمة
map-idviewerاسم بديل لـ share-id
style-idtile, editorاختياريtile: افتراضي viewer؛ editor: افتراضي المؤسسة → kaleidr-morningمعرّف نمط خريطة الأساس، أو (في editor) URL كامل للنمط
map-targetchatاختياريمحدد CSS لعنصر الخريطة المضيف
containedchatاختياريfalseيثبت اللوحة داخل عنصر التركيب بدلًا من جعلها عائمة على document.body
centerviewer, tile, editorاختياريlon,lat
zoomviewer, tile, editorاختياريeditor: 2التكبير الأولي
pitchviewer, tile, editorاختياري0الميل الأولي
bearingviewer, tile, editorاختياري0الاتجاه الأولي
themechat, editorاختياريسلسلة كائن JSON لرموز CSS
doorwayالكلاختياريافتراضي المنتجتجاوز iframe | attach
baseالكلاختياريhttps://cdn.kaleidr.comأصل CDN للحزم المحملة بشكل كسول (/embed/v1/*.js)
viewer-baseviewer, tileاختياريhttps://map-embed.kaleidr.comالأصل الذي يحمّل منه iframe — مختلف عن CDN الخاص بالحزمة
api-basechat, editor, tileاختياريhttps://api.kaleidr.com/inference-apiيجب أن يتضمن /inference-api. أصل مجرد مثل https://api.kaleidr.com يُرجع 404 عند تبادل الجلسة. ينطبق على أي منتج ينفذ تبادل جلسة (chat, editor, tile).
tile-baseeditorاختياريhttps://tile.kaleidr.comCDN البلاطات المستخدم لحل قيم style-id في الكتالوج
flagالكلاختياريتجاوز dormancy لكل عنصر

* مطلوب للاستخدام المصرح به/المفوّر. لا يحتاج Viewer إلى مفتاح؛ وتمرير مفتاح إلى Viewer embed يُرفض بـ product_not_allowed.

امنح العنصر ارتفاعًا (عبر style مضمن أو CSS). كل منتج يملأ الحاوية؛ ومنتج iframe داخل حاوية بدون أبعاد يعود إلى ارتفاع ثابت 500px حتى يظل مرئيًا.

Handle matrix

السلوك كما هو منشور على /embed/v1/. التركيبات غير المدعومة لا ترمي أخطاء — يسجل SDK تحذير [kaleidr] ويعيد. هذا جزء من العقد في الاسم المستعار الرئيسي v1؛ وإزالة الأساليب القابلة للاستدعاء ستكون تغييرًا يكسر السلوك.

الأسلوبchatviewereditortile
destroy()نعمنعمنعمنعم
setCamera(camera)no-opنعمنعمنعم
setTheme(theme)نعم (مباشر)n/aوقت التركيب فقطn/a
setStyle(styleId)n/an/an/aمتاح في tile فقط

لا يتحكم Chat في كاميرا الخريطة — استخدم API الكاميرا الخاص بمثيل خريطتك بعد Kaleidr.mount(...). تحديث setTheme المباشر في Editor سيأتي في إصدار SDK لاحق؛ أما theme وقت التركيب فيعمل بالفعل.

التحديثات المباشرة

تتم مراقبة center وzoom وpitch وbearing وإعادة تأطير viewer و editor وtile دون إعادة التركيب. تغييرات theme تحدّث chat مباشرة؛ أما theme الخاص بـ editor فيبقى وقت التركيب فقط.

Chat + map-target

يقوم Chat بالإرفاق بخريطتك الحية، وهو ما لا يمكن لسمة نصية حمله. هناك طريقتان لتوفيره:

  • Imperative (موصى به): Kaleidr.mount(el, { product: 'chat', publishableKey, map, contained: true }).
  • Declarative: خزّن مثيل الخريطة على العنصر المضيف كالتالي hostEl.__kaleidrMap__ = map، ثم استخدم map-target="#host".

بدون خريطة، يعمل chat في وضع headless (دون تفاعلات مع الخريطة).