/** * Label Studio Wrapper Component for Things Factory * * This component embeds Label Studio within Things Factory using an iframe. * It uses subdomain-based cookie sharing for SSO authentication, eliminating * the need for proxying. * * ## Key Features: * - Direct Label Studio access (no proxy needed) * - Automatic SSO cookie setup via shared domain * - Hidden header for seamless integration * - Floating Action Buttons (FAB) for Reload and Fullscreen * * ## Architecture: * 1. Client calls /label-studio/sso/setup * 2. Backend sets cookie with shared domain (e.g., .nubison.localhost) * 3. Browser → Label Studio (direct, with cookie) * * ## Configuration Requirements: * - Label Studio and Things Factory must use subdomain pattern (e.g., label.example.com, app.example.com) * - Label Studio .env must include: * - CSRF_TRUSTED_ORIGINS: Include Things Factory frontend domain * - ALLOWED_HOSTS: Include subdomain patterns * - JWT_SSO_* settings for SSO authentication * - Things Factory config must include: * - labelStudio.serverUrl: Label Studio URL * - labelStudio.cookieDomain: Shared cookie domain (e.g., .example.com) * * ## Usage: * ```html * * ``` * * The component automatically: * 1. Calls SSO setup endpoint to establish authentication * 2. Builds iframe URL pointing directly to Label Studio * 3. Adds ?hideHeader=true to hide Label Studio's header * 4. Provides FAB buttons for reload and fullscreen */ import { LitElement } from 'lit'; export declare class LabelStudioWrapper extends LitElement { static styles: import("lit").CSSResult; private loading; private error; private iframeUrl; private path; private iframeLoaded; private labelStudioUrl; private iframe; updated(changes: any): Promise; buildIframeUrl(): Promise; handleIframeLoad(): void; handleIframeError(): void; handleReload(): void; handleFullscreen(): void; render(): import("lit-html").TemplateResult<1>; }