import { MyopMessageKey } from "../../common/MyopMessages"; import { BaseMyopMessage, Ref } from "../../messages"; import { CleanupHandler, IComponentDefinitionConfig } from "../../common"; import { loaderOptions } from "../hostSDK.ts"; /** * Result returned by observeAutoSize callback */ export interface AutoSizeResult { /** Current width (from content) */ width: number; /** Current height (from content) */ height: number; /** Whether width is being auto-sized */ autoSizingWidth: boolean; /** Whether height is being auto-sized */ autoSizingHeight: boolean; } /** * Options for observeAutoSize method */ export interface AutoSizeOptions { /** Callback called with size info whenever size changes */ onSizeChange?: (result: AutoSizeResult) => void; /** Minimum width constraint */ minWidth?: number | string; /** Maximum width constraint */ maxWidth?: number | string; /** Minimum height constraint */ minHeight?: number | string; /** Maximum height constraint */ maxHeight?: number | string; /** Explicit width set by host - if defined, don't auto-size width */ explicitWidth?: string | number; /** Explicit height set by host - if defined, don't auto-size height */ explicitHeight?: string | number; /** Force auto-size even if container has dimensions */ forceAutoSize?: boolean; /** Min height used by loader to detect collapse (default: 50) */ loaderMinHeight?: number; } type RefTypes = { [key: string]: IMyopComponent | Ref; }; export interface IMyopComponent
{
id: string;
isInitiated: boolean;
markedForDisposed: boolean;
setInitiated: () => void;
componentDefinition: IComponentDefinitionConfig;
container: HTMLElement;
element?: HTMLElement;
send: (msg: BaseMyopMessage) => CleanupHandler;
bind(messageType: MyopMessageKey, handler: () => boolean): void;
bind implements IMyopComponent {
componentDefinition: IComponentDefinitionConfig;
container: HTMLElement;
id: string;
messageHandlers: Record