eLabSDK2.UI.ExternalDialog

Hierarchy

  • default

    ExternalDialog

Methods

open

Static open(config): Promise<unknown>

Open a host-controlled or add-on-developer-hosted page in a popup and resolve with whatever the page postMessages back. Provider-agnostic transport for picker / config / wizard pages so eLab core does not carry provider-specific UI code.

Protocol:

  1. Host opens window.open(config.url, …).
  2. The dialog page sends { type: 'sdk:ready' } via window.opener.postMessage once mounted.
  3. Host replies with { type: 'sdk:init', data: config.init }.
  4. Dialog does its work, then sends { type: 'sdk:result', data: <value> }. Host resolves with data.
  5. Popup-close or 5-minute timeout resolve undefined, which add-ons can interpret as "user cancelled".

URL acceptance rules — see ExternalDialogConfig.url.

Origin checks: every inbound postMessage must come from the popup's exact origin and from the popup window — defends against forged messages from a co-resident frame.

Parameters

NameType
configExternalDialogConfig

Returns

Promise<unknown>

Example

const items = await eLabSDK2.UI.ExternalDialog.open({
  url: '/resources/boxcom/picker.html',
  width: 750,
  height: 700,
  init: { accessToken, extensions: ['jpg', 'png'] },
});

© 2026 eLabNext