Dashlet (der Instanz-Handle)
Das Objekt, das installDashletGlobal(options) zurückgibt. Es ist ein einfacher Handle — ein Promise plus Abos und Methoden — und lässt sich mit den Zustands- und Lebenszyklus-Primitiven jedes Frameworks zusammensetzen (keine Framework-Konstrukte).
1. Signatur
interface Dashlet {
readonly init: Promise<InitContext>;
onInit(listener: (ctx: InitContext, info: InitInfo) => void): () => void;
onUpdate(listener: (ctx: InitContext, info: UpdateInfo) => void): () => void;
onError(listener: (error: unknown) => void): () => void;
call<T = unknown>(method: string, params?: unknown[]): Promise<T>;
// die sieben portablen Fassade-Methoden (unten)
openIndexData(options: OpenIndexDataOptions): Promise<boolean | undefined>;
openObject(objectId: string | number): Promise<boolean | undefined>;
openLocation(options: OpenLocationOptions): Promise<void>;
openHitListByIds(options: OpenHitListByIdsOptions): Promise<void>;
refreshHitListObjects(ids: Array<string | number>): Promise<boolean | undefined>;
getSelectedObjects(): Promise<SelectedObjectRef[]>;
resetSessionTimeout(): Promise<void>;
getWebclientApi(): WebclientApi;
getRichClientApi(): RichClientApi;
destroy(): void;
}
2. Mitglieder
| Mitglied | Art | Beschreibung |
|---|---|---|
|
Eigenschaft |
Das init-Promise — |
|
Methode |
Abo der Init-Emissionen — |
|
Methode |
Der vorgesehene Update-Slot — |
|
Methode |
Abo von Fehlern — |
|
Methode |
Der dünne Methoden-Durchgang — |
|
Methode |
Die Index-Daten eines Objekts öffnen — openIndexData. |
|
Methode |
Das Objekt in seiner natürlichen Ansicht öffnen — openObject. |
|
Methode |
Den Ort des Objekts öffnen — openLocation. |
|
Methode |
Eine gemischte Hit-Liste öffnen — openHitListByIds (die Fire-and-forget-Sonderheit steht dort). |
|
Methode |
Objekte in offenen Hit-Listen aktualisieren — refreshHitListObjects. |
|
Methode |
Die ausgewählten Objekte, in beiden Clients normalisiert — getSelectedObjects. |
|
Methode |
Den Sitzungstimeout zurücksetzen — resetSessionTimeout (dokumentiertes No-Op im Rich Client). |
|
Methode |
Der Webclient-Handle — getWebclientApi (die sieben Endpunkte + rohe |
|
Methode |
Der Rich-Client-Handle — getRichClientApi (die komplette |
|
Methode |
Hört das Polling auf, entfernt die Listener, trennt den Wire (unten beschrieben). |
Die sieben portablen Fassade-Methoden laufen durch denselben Dispatch-Kern
wie call(method, params) (eine einzige geteilte Tabelle), so dass die
typisierte Fassade und der zeichenkettenbasierte Aufruf nicht divergieren
können — die Wire-Posts, die Auflösungswerte und die Fehlerpfade sind
identisch.
3. destroy()
destroy(): void
Reißt das Dashlet ab: stoppt die Erkennungs-Polling- und die Warm-up-Zeitmesser, entfernt den Host-Callback-Handler, zerstört den Webclient-Wire und räumt den geteilten Message-Sink nur dann auf, wenn er noch zu dieser Instanz gehört (ein Geschwister-Dashlet im selben Fenster könnte ihn ersetzt haben).
Reihenfolge-Garantie: Wenn das Dashlet sich noch im Erkennungszustand
befindet, löst destroy das init-Promise zuerst als Standalone auf
(das Promise muss sich noch lösen — es hängt niemals) und schaltet erst
danach in den zerstörten Zustand um. Spätere Methodenaufrufe an einem
zerstörten Dashlet werden mit einem einfachen
Error('dashlet destroyed') abgelehnt.