UNPKG

@frontify/frontify-finder

Version:

Authenticate, search and access Frontify assets data from any secure web app.

126 lines (120 loc) 3.13 kB
import { PopupConfiguration } from '@frontify/frontify-authenticator'; type Token = { bearerToken: { tokenType: string; expiresIn: number; accessToken: string; refreshToken: string; domain: string; }; clientId: string; scopes: string[]; }; type FrontifyAsset = { id: string; externalId: string | null; title: string; description: string | null; creator: { name: string; }; createdAt: string; type: string; author: string | null; expiresAt: string | null; alternativeText: string | null; licenses: { title: string; text: string; }[] | null; copyright: { status: string; notice: string; } | null; tags: { value: string; source: string; }[] | null; customMetadata: { property: { id: string; name: string; type: { name: string; }; }; value?: { value: string | { optionId: string; text: string; }; }; values?: { value: { optionId: string; text: string; }; }[]; }[]; filename?: string | null; extension?: string; size?: number | null; downloadUrl?: string | null; previewUrl?: string; dynamicPreviewUrl?: string | null; thumbnailUrl?: string | null; icon?: string; focalPoint?: number[] | null; width?: number; height?: number; duration?: number; bitrate?: number; pageCount?: number | null; }; type FinderOptions = { allowMultiSelect?: boolean; autoClose?: boolean; filters?: FinderFilters; permanentDownloadUrls?: boolean; }; type FinderFilters = FinderFilter[] | []; type FinderFilter = { key: string; values: string[]; inverted: boolean; }; declare class FrontifyFinder { private token; private options; private onLogoutRequested; private parentNode; private readonly iFrame; private listeners; private unsubscribe; private static get VERSION(); constructor(token: Token, options: FinderOptions, onLogoutRequested: () => void); private subscribeToFinderEvents; private get origin(); private get domain(); private get accessToken(); private initialize; private handleFinderCancel; private handleAssetsChosen; onAssetsChosen(callback: (assets: FrontifyAsset[]) => void): FrontifyFinder; onCancel(callback: () => void): FrontifyFinder; mount(parentNode: HTMLElement): void; close(): void; } type ClientConfiguration = { clientId: string; domain?: string; }; type OpeningOptions = ClientConfiguration & { options?: FinderOptions; }; declare function create({ clientId, domain, options }: OpeningOptions, popupConfiguration?: PopupConfiguration): Promise<FrontifyFinder>; declare function logout({ clientId }: { clientId: string; }): Promise<void>; export { create, logout }; export type { FinderOptions, FrontifyAsset, OpeningOptions, Token };