@descope/sdk-component-drivers
Version:
Descope JavaScript SDK mixins
229 lines (208 loc) • 6.06 kB
TypeScript
type Empty = null | undefined;
type RefOrRefFn = Element | (() => HTMLElement | Empty) | Empty;
type Logger = {
error(...data: any[]): void;
warn(...data: any[]): void;
info(...data: any[]): void;
debug(...data: any[]): void;
};
declare class BaseDriver {
#private;
logger: Logger | undefined;
nodeName: string;
constructor(refOrRefFn: RefOrRefFn, config: {
logger: Logger;
});
get asyncEle(): Promise<Element>;
get ele(): Element;
get isExists(): boolean;
}
type Data$2 = {
name: string;
icon: string;
url: string;
}[];
declare class AppsListDriver extends BaseDriver {
nodeName: string;
set data(data: Data$2);
get data(): Data$2;
get ele(): Element & {
data: Data$2;
};
}
declare class AvatarDriver extends BaseDriver {
nodeName: string;
set displayName(name: string);
set image(imgUrl: string);
get flowId(): string;
onClick(cb: (e: Event) => void): () => void;
}
declare class ButtonDriver extends BaseDriver {
nodeName: string;
onClick(cb: (e: Event) => void): () => void;
disable(): void;
enable(): void;
}
declare class FlowDriver extends BaseDriver {
nodeName: string;
set projectId(projectId: string);
set baseUrl(baseUrl: string);
set flowId(flowId: string);
set theme(theme: string | null | undefined);
onSuccess(cb: () => void): () => void;
onPageUpdated(cb: () => void): () => void;
}
declare class GenericFlowButtonDriver extends ButtonDriver {
get flowId(): string;
get enableMode(): 'onlyOne' | 'oneOrMore' | 'always';
}
type Column = {
path: string;
header: string;
type: string;
attrs: Record<string, string>;
};
declare class GridDriver<T extends any> extends BaseDriver {
#private;
nodeName: string;
onSelectedItemsChange(cb: (e: CustomEvent<{
value: T[];
}>) => void): () => void;
get ele(): Element & {
data: T[];
columns: Column[];
renderColumn: ({ path, header, type, attrs }: Column) => string;
};
get data(): T[];
set data(data: T[]);
get columns(): any[];
filterColumns(filterFn: (col: Column) => boolean): void;
onColumnsChange(cb: (columns: Column[]) => void): void;
set renderColumn(renderFn: ({ path, header, type, attrs }: Column) => string);
}
declare class LinkDriver extends BaseDriver {
nodeName: string;
get ele(): Element & {
innerText: string;
getAttribute: (name: string) => string | null;
};
get href(): string;
set href(href: string);
}
declare class ModalDriver extends BaseDriver {
#private;
beforeOpen: undefined | (() => void | Promise<void>);
afterClose: undefined | (() => void);
nodeName: string;
close(): void;
open(): Promise<void>;
reset(): void;
setContent(template: HTMLTemplateElement): void;
remove(): void;
}
declare class MultiSelectDriver extends BaseDriver {
nodeName: string;
setData(data: {
label: string;
value: string;
}[]): Promise<void>;
}
declare class NotificationDriver extends BaseDriver {
nodeName: string;
close(): void;
show(): void;
setContent(template: HTMLTemplateElement): void;
remove(): void;
}
type Data$1 = {
id: string;
name: string;
description?: string;
logo?: string;
isConnected?: boolean;
}[];
type Detail$1 = {
id: string;
action: string;
};
declare class OutboundAppsListDriver extends BaseDriver {
nodeName: string;
set data(data: Data$1);
get data(): Data$1;
get ele(): Element & {
data: Data$1;
};
get connectFlowId(): string;
get disconnectFlowId(): string;
onConnectClick(cb: (detail: Detail$1) => void): () => void;
onDisconnectClick(cb: (detail: Detail$1) => void): () => void;
}
declare class SingleSelectDriver extends BaseDriver {
nodeName: string;
onInput(cb: (e: InputEvent) => void): () => void;
get value(): string;
set value(value: string);
setData(data: {
label: string;
value: string;
}[]): Promise<void>;
}
declare class TextDriver extends BaseDriver {
nodeName: string;
get ele(): Element & {
innerText: string;
};
get text(): string;
set text(content: string);
}
declare class TextFieldDriver extends BaseDriver {
nodeName: string;
onInput(cb: (e: InputEvent) => void): () => void;
get value(): string;
set value(value: string);
disable(): void;
enable(): void;
}
declare class UserAttributeDriver extends BaseDriver {
nodeName: string;
set value(value: string);
set badgeLabel(label: string);
get label(): string;
get editFlowId(): string;
get deleteFlowId(): string;
onEditClick(cb: (e: Event) => void): () => void;
onDeleteClick(cb: (e: Event) => void): () => void;
}
declare class UserAuthMethodDriver extends BaseDriver {
nodeName: string;
set fulfilled(isFulfilled: boolean);
onUnfulfilledButtonClick(cb: (e: Event) => void): () => void;
onFulfilledButtonClick(cb: (e: Event) => void): () => void;
get flowId(): string;
get fulfilledFlowId(): string;
}
type Data = {
id: string;
name: string;
lastLoginDate: number;
isCurrent: boolean;
}[];
type Detail = {
id: string;
action: string;
};
declare class DeviceListDriver extends BaseDriver {
nodeName: string;
set displayName(name: string);
get ele(): Element & {
data: Data;
};
get data(): Data;
set data(data: Data);
get flowId(): string;
onRemoveDeviceClick(cb: (detail: Detail) => void): () => void;
}
declare class FlowButtonDriver extends ButtonDriver {
get flowId(): string;
}
export { AppsListDriver, AvatarDriver, ButtonDriver, DeviceListDriver, FlowButtonDriver, FlowDriver, GenericFlowButtonDriver, GridDriver, LinkDriver, ModalDriver, MultiSelectDriver, NotificationDriver, OutboundAppsListDriver, SingleSelectDriver, TextDriver, TextFieldDriver, UserAttributeDriver, UserAuthMethodDriver };