Widget-Builder Integration-Mode

Widget-Builder Integration-Mode

Widget Builder Integration Mode (Events)

Ziel

Diese Dokumentation beschreibt, wie der done-widget-builder als Web Component eingebunden wird und wie der integration-mode="events" genutzt wird, um Widgets über JavaScript-Events statt über das generierte Skript weiterzuverarbeiten.

Voraussetzungen

- Das Web-Components-Bundle ist eingebunden (web-components.js).
- Die Web Component <done-widget-builder> ist verfügbar.

Beispiel:
  1. <script
  2.   type="module"
  3.   src="https://newpages.destination.one/web-components.js"
  4.   data-language="de"
  5.   data-experience="YOUR_EXPERIENCE"
  6.   data-template="YOUR_TEMPLATE"
  7. ></script>

Web Component einbinden

  1. <done-widget-builder
  2.   widget-list="done-result-list,done-detail-view,done-bookmark-list"
  3.   router-mode="memory,hash"
  4.   integration-mode="events"
  5. ></done-widget-builder>

Props

widget-list

  1. Typ: string (kommagetrennt)
  2. Beispiel: done-result-list,done-detail-view
  3. Wirkung: Schränkt die auswählbaren Widgets ein.
  4. Hinweis: Unbekannte Keys werden ignoriert. Feature-Flags bleiben zusätzlich aktiv.

router-mode

  1. Typ: string (ein Wert oder kommagetrennt)
  2. Gültige Werte: memory, hash, history
  3. Beispiele:
    1. memory (ein Wert)
    2. memory,hash (mehrere Werte)
  4. Wirkung:
    1. Ein gültiger Wert: Router-Auswahl im Builder wird ausgeblendet und fix gesetzt.
    2. Mehrere gültige Werte: Router-Auswahl zeigt nur diese Optionen.
    3. Ungültige Werte werden ignoriert.

integration-mode

  1. Typ: string
  2. Unterstützter Event-Modus: events
  3. Wirkung in events:
    1. Schritt 3 zeigt keinen Skript-Block mehr.
    2. Stattdessen gibt es eine reine Speichern-Ansicht.
    3. Persistenz und Event-Dispatch bleiben identisch.

Events

Die Events werden auf dem <done-widget-builder>-Element dispatcht.
  1. widgetbuilder:created
  2. widgetbuilder:updated
  3. widgetbuilder:deleted

Wichtig

Events werden erst nach erfolgreichem Update des LocalStorage ausgelöst.

Event-Payload

Alle drei Events liefern denselben Payload in event.detail:
  1. {
  2.   id: string;
  3.   widget: {
  4.     id: string;
  5.     name: string;
  6.     type: string;
  7.     config: unknown;
  8.     wcTag?: string;
  9.     routerMode?: 'memory' | 'hash' | 'history';
  10.     basePath?: string;
  11.     createdAt: number;
  12.     updatedAt: number;
  13.   };
  14. }

Event-Handling Beispiel

  1. <done-widget-builder id="wb" integration-mode="events"></done-widget-builder>

  2. <script>
  3.   const wb = document.getElementById('wb');

  4.   const onWidgetEvent = (eventName) => (event) => {
  5.     const { id, widget } = event.detail;
  6.     console.log('[WidgetBuilder]', eventName, id, widget);

  7.     // Beispiel: eigene Persistenz
  8.     // saveWidgetToBackend({ eventName, id, widget });
  9.   };

  10.   wb.addEventListener('widgetbuilder:created', onWidgetEvent('created'));
  11.   wb.addEventListener('widgetbuilder:updated', onWidgetEvent('updated'));
  12.   wb.addEventListener('widgetbuilder:deleted', onWidgetEvent('deleted'));
  13. </script>

Lokale Persistenz im Builder

- Storage-Key: pages.widget-builder.v1
- Zusätzlich wird wcTag im gespeicherten Widget abgelegt (z. B. generierter Komponenten-Tag mit Attributen).

    • Related Articles

    • destination.pages: Integration in eigene Webseite

      1. Einführung destination.pages Die destination.pages sind Ausgabe-Module für Ihre Webseite zur Darstellung strukturierter touristischer Angebote wie Artikel, Gastgeber, Pauschalen, Veranstaltungen, Gastronomie, POI/Ausflugstipps sowie Touren & Wege. ...
    • one.pages: Widget Builder

      Widgets und HTML Scripte erstellen mit dem Widget Builder Der Widget Builder erstellt Widgets auf Webcomponent-Basis für die Integration von one.pages Inhalten (Detailseite, Ergebnisliste, Tagesplaner, Chatwidget, etc) in Fremd-Webseiten, bzw. ...
    • destination.pages: Hinterlegen von neuem Inhalte für den Infoscreen im Pages Builder

      In destination.one über den Menüpunkt "Content ausspielen" gelangst Du in den Pages Builder. Bitte wähle danach den Menüpunkt "Infoscreen" im Bereich "Aktionen" aus. Dieser Bereich befindet sich auf der linken Seite, unter der Weltkugel: Jetzt kannst ...
    • Hinzufügen eines Custom Footers in der PWA

      Integration eines eigenen Footers in die PWA Wichtig: Dies sollte nur von einer Person mit Fachkenntnis im Bereich HTLM Code umgesetzt werden! Voraussetzungen Um starten zu können sind folgende Voraussetzungen zu erfüllen: Zugang in destination.data ...
    • one.pages: Upgrade

      Einführung in die neuen one.pages Bisherige Nutzer der destination.welcome und der destination.pages haben nun die Möglichkeit auf unsere neuen one.pages umzusteigen. Mit dem neuesten Release haben die one.pages sowohl optisch als auch technisch ein ...