@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
TypeScript
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