@frontify/frontify-finder
Version:
Authenticate, search and access Frontify assets data from any secure web app.
126 lines (120 loc) • 3.13 kB
TypeScript
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 };