UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

75 lines 3.09 kB
import { NonCancelableEventHandler } from '../../events'; type DrawerVisibilityChange = (callback: (isVisible: boolean) => void) => void; interface MountContentContext { onVisibilityChange: DrawerVisibilityChange; } export interface DrawerStateChangeParams { isOpen: boolean; initiatedByUserAction?: boolean; } export interface DrawerConfig { id: string; type?: 'local' | 'global'; ariaLabels: { content?: string; closeButton?: string; triggerButton?: string; resizeHandle?: string; }; badge?: boolean; resizable?: boolean; defaultSize?: number; onResize?: NonCancelableEventHandler<{ size: number; id: string; }>; orderPriority?: number; defaultActive?: boolean; trigger?: { iconSvg: string; }; mountContent: (container: HTMLElement, mountContext: MountContentContext) => void; unmountContent: (container: HTMLElement) => void; preserveInactiveContent?: boolean; onToggle?: NonCancelableEventHandler<DrawerStateChangeParams>; } declare const updatableProperties: readonly ["badge", "resizable", "defaultSize", "orderPriority", "defaultActive", "onResize"]; export type UpdateDrawerConfig = { id: DrawerConfig['id']; } & Partial<Pick<DrawerConfig, (typeof updatableProperties)[number]>>; type DrawersRegistrationListener = (drawers: Array<DrawerConfig>) => void; export type DrawersToggledListener = (drawerId: string, params?: OpenCloseDrawerParams) => void; interface OpenCloseDrawerParams { initiatedByUserAction: boolean; } export interface DrawersApiPublic { registerDrawer(config: DrawerConfig): void; updateDrawer(config: UpdateDrawerConfig): void; openDrawer(drawerId: string, params?: OpenCloseDrawerParams): void; closeDrawer(drawerId: string, params?: OpenCloseDrawerParams): void; } export interface DrawersApiInternal { clearRegisteredDrawers(): void; onDrawersRegistered(listener: DrawersRegistrationListener): () => void; onDrawerOpened(listener: DrawersToggledListener): () => void; onDrawerClosed(listener: DrawersToggledListener): () => void; } export declare class DrawersController { private drawers; private drawersRegistrationListener; private drawerOpenedListener; private drawerClosedListener; scheduleUpdate: () => void; registerDrawer: (config: DrawerConfig) => void; updateDrawer: ({ id: drawerId, ...rest }: UpdateDrawerConfig) => void; onDrawersRegistered: (listener: DrawersRegistrationListener) => () => void; clearRegisteredDrawers: () => void; onDrawerOpened: (listener: DrawersToggledListener) => () => void; onDrawerClosed: (listener: DrawersToggledListener) => () => void; openDrawer: (drawerId: string, params?: OpenCloseDrawerParams) => void; closeDrawer: (drawerId: string, params?: OpenCloseDrawerParams) => void; installPublic(api?: Partial<DrawersApiPublic>): DrawersApiPublic; installInternal(internalApi?: Partial<DrawersApiInternal>): DrawersApiInternal; } export {}; //# sourceMappingURL=drawers.d.ts.map